Пример #1
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var token  = context.HttpContext.Request.Headers["token"];
            var openid = context.HttpContext.Request.Headers["openid"];

            if (string.IsNullOrWhiteSpace(token) || string.IsNullOrWhiteSpace(openid))
            {
                context.HttpContext.Response.StatusCode  = 401;
                context.HttpContext.Response.ContentType = "application/json";
                //context.HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(
                //    new { authenticated = false, tokenExpired = true }
                //));
                context.Result = new ContentResult();
                return;
            }
            var account = new DbsAccount().ByOpenId(openid, ValidityState.Enabled);

            if (account == null || string.IsNullOrWhiteSpace(account.Session_Key))
            {
                context.HttpContext.Response.StatusCode  = 401;
                context.HttpContext.Response.ContentType = "application/json";
                context.Result = new EmptyResult();
                return;
            }
            var basetoken = new WeChatService().GetToken(new WeChatRes(openid, account.Session_Key));

            if (basetoken != token)
            {
                context.HttpContext.Response.StatusCode  = 401;
                context.HttpContext.Response.ContentType = "application/json";
                context.Result = new ContentResult();
                return;
            }
        }
Пример #2
0
        public IWsModel <ReqAccount, ResAccount> AccountSimple([FromBody] WsModel <ReqAccount, ResAccount> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAccount, ResAccount>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (string.IsNullOrWhiteSpace(model.Request.OpenId))
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数OpenId为空"));
            }
            // var  wxlog=  WxLogFactory.GetWxLogger(typeof(QueryAccountService));
            //Account account = new DbsAccount().ById(model.Request.AccountId);
            Account account = new DbsAccount().ByOpenId(model.Request.OpenId, ValidityState.Enabled);

            if (account == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "用户不存在"));
            }
            LogDebug($"找到用户{account.Name}");
            LogInfo($"找到用户{account.Name}");
            LogError($"找到用户{account.Name}");
            var res = new ResAccount(account);

            return(model.Ok(res));
        }
Пример #3
0
        public IWsModel <ReqAddAccount, ResAccount> UpdateAccount([FromBody] WsModel <ReqAddAccount, ResAccount> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAddAccount, ResAccount>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (string.IsNullOrWhiteSpace(model.Request.OpenId))
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            var retAccount = new DbsAccount().GetAccount(model.Request.OpenId);

            if (retAccount == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "数据不存在"));
            }
            if (AlterModel(ref retAccount, model.Request))
            {
                var result = new DbaAccount().UpdateAccount(retAccount);
                if (result == 0)
                {
                    return(model.Fail(ErrorCode.DB_SAVE_FAILED, "修改失败"));
                }
            }
            var ret = new ResAccount(retAccount);

            return(model.Ok(ret));
        }
Пример #4
0
        public IWsModel <ReqAddCorporation, ResCorporation> UpdateCorporation([FromBody] WsModel <ReqAddCorporation, ResCorporation> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAddCorporation, ResCorporation>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (string.IsNullOrWhiteSpace(model.Request.CorporationId))
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            var retCorporation = new DbsAccount().GetCorporationInfo(model.Request.CorporationId);

            if (retCorporation == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "数据不存在"));
            }
            if (AlterModel(ref retCorporation, model.Request))
            {
                var result = new DbaAccount().UpdateCorporation(retCorporation);
                if (result == 0)
                {
                    return(model.Fail(ErrorCode.DB_SAVE_FAILED, "修改失败"));
                }
            }

            var ret = new ResCorporation(retCorporation);

            return(model.Ok(ret));
        }
Пример #5
0
        public IWsModel <ReqAddCar, ResCarConciseInfo> AddCarInfo([FromBody] WsModel <ReqAddCar, ResCarConciseInfo> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAddCar, ResCarConciseInfo>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (!model.Request.Valid4Enum())
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "枚举参数无效"));
            }
            if (!model.Request.Valid4AddCar())
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数无效"));
            }
            var dbscar = new DBsCar();

            if (dbscar.GetBrandSeriesDetail(model.Request.BrandId, ValidityState.Enabled) == null)
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数BrandId无效"));
            }
            if (dbscar.GetBrandSeriesDetail(model.Request.SeriesId, ValidityState.Enabled) == null)
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数SeriesId无效"));
            }
            var dbsaccount = new DbsAccount();

            if (dbsaccount.ByOpenId(model.Request.AccountId, ValidityState.Enabled) == null)
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数AccountId无效"));
            }
            if (dbsaccount.GetCorporationInfo(model.Request.CorporationId, ValidityState.Enabled) == null)
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数CorporationId无效"));
            }
            var carDetail = new CarsDetails(model.Request.CarDrive, model.Request.CarEnergy, model.Request.CarGearbox, model.Request.CarSeat,
                                            model.Request.CarEmissionStandard, model.Request.Appearance, model.Request.Interior, model.Request.CarConfig, model.Request.CarLicenseTime, model.Request.CarAge,
                                            model.Request.Mileage, model.Request.Emission, model.Request.Images);
            var retDetail = new DBaCar().AddCarDetail(carDetail);

            if (retDetail == 0)
            {
                return(model.Fail(ErrorCode.DB_SAVE_FAILED, "添加失败"));
            }
            var carConcise = new CarsConcise(model.Request.AccountId, carDetail.Id, model.Request.CorporationId, model.Request.Name, model.Request.BrandId, model.Request.SeriesId, model.Request.GuidePrice,
                                             model.Request.SellingPrice, model.Request.BasePrice, ValidityState.Enabled, (carDetail.Images == null)?"":carDetail.Images[0], CarSell.Sale, model.Request.CarActivity);
            var retConcise = new DBaCar().AddCarConcise(carConcise);

            if (retConcise == 0)
            {
                return(model.Fail(ErrorCode.DB_SAVE_FAILED, "添加失败"));
            }
            var ret = new ResCarConciseInfo(carConcise, carDetail.CarLicenseTime, carDetail.Mileage);

            return(model.Ok(ret));
        }
Пример #6
0
        public IWsModel <ReqAccount, ResToken> Login([FromBody] WsModel <ReqAccount, ResToken> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAccount, ResToken>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request.Valid4Login())
            {
                return(model.Fail(ErrorCode.PARAM_INVALID, "参数无效"));
            }
            var wechat = new WeChatService().GetOpenIdSeeeionKey(model.Request.Code);

            if (wechat == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "Code错误"));
            }
            var account = new DbsAccount().GetAccount(wechat.openid);

            if (account == null)
            {
                var addaccount = new Account(model.Request.WechatName, wechat.openid, wechat.session_key, model.Request.Sex, ValidityState.Enabled, Identity.Visitor, model.Request.Logo, DateTime.Now);
                var addret     = new DbaAccount().AddAccount(addaccount);
                if (addret == 0)
                {
                    return(model.Fail(ErrorCode.DB_SAVE_FAILED, "添加失败"));
                }
                else
                {
                    var token = new WeChatService().GetToken(wechat);
                    var ret   = new ResToken(token, addaccount.OpenId);
                    return(model.Ok(ret));
                }
            }
            else
            {
                if (account.State != ValidityState.Enabled)
                {
                    return(model.Fail(ErrorCode.USER_DISABLE, "账户不可用"));
                }
                var token = new WeChatService().GetToken(wechat);
                var ret   = new ResToken(token, account.OpenId, account.Corporation);
                return(model.Ok(ret));
            }
        }
Пример #7
0
        public IWsModel <ReqAccount, ResCorporation> Corporation([FromBody] WsModel <ReqAccount, ResCorporation> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAccount, ResCorporation>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (string.IsNullOrWhiteSpace(model.Request.OpenId))
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数OpenId为空"));
            }
            var ret = new DbsAccount().GetCorporation(model.Request.OpenId, ValidityState.Enabled);

            if (ret == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "公司不存在"));
            }
            return(model.Ok(ret));
        }
Пример #8
0
        public IWsModel <ReqAccount, ResAccount> AccountInfo([FromBody] WsModel <ReqAccount, ResAccount> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAccount, ResAccount>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (string.IsNullOrWhiteSpace(model.Request.OpenId))
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数OpenId为空"));
            }
            var result = new DbsAccount().GetAccountInfo(model.Request.OpenId, ValidityState.Enabled);

            if (result == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "用户不存在"));
            }
            result.DescIdentity = result.Identity.GetIdentityDescription();
            result.DescSex      = result.Sex.GetGenderDescription();
            return(model.Ok(result));
        }
Пример #9
0
        public IWsModel <ReqAddAccount, ResAccount> AddAccount([FromBody] WsModel <ReqAddAccount, ResAccount> model)
        {
            if (model == null)
            {
                return(new WsModel <ReqAddAccount, ResAccount>().Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (model.Request == null)
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            if (!model.Request.Valid4AddAccount())
            {
                return(model.Fail(ErrorCode.PARAM_NULL, "参数为空"));
            }
            var dbs = new DbsAccount();

            if (dbs.GetAccount(model.Request.OpenId) != null)
            {
                return(model.Fail(ErrorCode.DB_EXISTED, "数据已存在"));
            }
            //验证公司是否存在
            if (dbs.GetCorporationInfo(model.Request.Corporation, ValidityState.Enabled) == null)
            {
                return(model.Fail(ErrorCode.DB_NOTEXISTED, "公司不存在"));
            }
            var account = new Account(model.Request.Wechat, model.Request.WechatName, model.Request.OpenId, model.Request.Corporation, model.Request.Sex, model.Request.Email, model.Request.Phone, model.Request.Name, ValidityState.Disabled, Identity.Staff, model.Request.Logo, DateTime.Now);
            var result  = new DbaAccount().AddAccount(account);

            if (result == 0)
            {
                return(model.Fail(ErrorCode.DB_SAVE_FAILED, "添加失败"));
            }
            var ret = new ResAccount(account);

            return(model.Ok(ret));
        }
Пример #10
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            //获取context
            //var result = string.Empty;
            //var bo = context.HttpContext.Request.Body.CanRead;
            //context.HttpContext.Request.Body.Position = 0;
            //result = new StreamReader(context.HttpContext.Request.Body, UTF8Encoding.UTF8).ReadToEnd();
            //获取header
            //var keys = context.HttpContext.Request.Headers.Keys;
            //var values = context.HttpContext.Request.Headers.Values;
            var openid = context.HttpContext.Request.Headers["openid"];

            if (string.IsNullOrWhiteSpace(openid))
            {
                context.HttpContext.Response.StatusCode  = 403;
                context.HttpContext.Response.ContentType = "application/json";
                //context.HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(
                //    new { authenticated = false, tokenExpired = true }
                //));
                context.Result = new ContentResult();
                return;
            }
            var account = new DbsAccount().ByOpenId(openid, ValidityState.Enabled);

            //var bo = account.Identity & _needIdentity;
            if (account == null || account.Identity != _needIdentity)
            {
                if (account.Identity != Identity.admin)
                {
                    context.HttpContext.Response.StatusCode  = 403;
                    context.HttpContext.Response.ContentType = "application/json";
                    context.Result = new EmptyResult();
                    return;
                }
            }
        }