Ejemplo n.º 1
0
        public APIResult GetAuthorizerInfo([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);


            var model = db.Query <ShopWechatOpenAuthorizer>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopId == args.ShopId.Value)
                        .Select(m => new
            {
                AuthorizerAppId = m.WechatOpenAuthorizer.AuthorizerAppId
            })
                        .FirstOrDefault();

            if (model == null)
            {
                throw new Exception("指定的纪录不存在");
            }
            //  var authorizerInfoResult = AuthorizerContainer.GetAuthorizerInfoResult(wechatOpenOptions.AppId,
            //         model.AuthorizerAppId);
            AuthorizerInfo auth = GetAuthorizationInfo(model.AuthorizerAppId);

            return(Success(auth));
        }
Ejemplo n.º 2
0
        public APIResult UpdateAuthorizerInfo([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var model = db.Query <ShopWechatOpenAuthorizer>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopId == args.ShopId.Value)
                        .Select(m => m.WechatOpenAuthorizer)
                        .FirstOrDefault();

            if (model == null)
            {
                throw new Exception("指定的纪录不存在");
            }

            var authorizerInfoResult = AuthorizerContainer.GetAuthorizerInfoResult(wechatOpenOptions.AppId,
                                                                                   model.AuthorizerAppId);

            if (authorizerInfoResult.errcode != Senparc.Weixin.ReturnCode.请求成功)
            {
                throw new Exception("请求失败:" + authorizerInfoResult.errcode);
            }

            model.AuthorizerNickname = authorizerInfoResult.authorizer_info.nick_name;
            model.AuthorizerUsername = authorizerInfoResult.authorizer_info.user_name;
            db.SaveChanges();

            return(Success());
        }
Ejemplo n.º 3
0
        public async System.Threading.Tasks.Task <APIResult> GetTesters([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var model = db.Query <ShopWechatOpenAuthorizer>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopId == args.ShopId.Value)
                        .Select(m => new
            {
                AuthorizerAppId = m.WechatOpenAuthorizer.AuthorizerAppId
            })
                        .FirstOrDefault();

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);
            var result = TesterApiExt.GetList(authorizerAccessToken.authorizer_access_token);

            if (result.errcode != Senparc.Weixin.ReturnCode.请求成功)
            {
                throw new Exception($"请求失败:{result.errcode}-{result.errmsg}");
            }
            else
            {
                return(Success(result));
            }
        }
Ejemplo n.º 4
0
        public APIResult GetBookTotal([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var viewModel = new GetBookingModel();

            viewModel.BookTotal = db.Query <ShopBooking>()
                                  .Where(m => !m.IsDel)
                                  .Where(m => m.ShopId == args.ShopId.Value)
                                  .Where(m => m.Status == ShopBookingStatus.确认成功)
                                  .Count();

            viewModel.BookAndUse = db.Query <ShopBooking>()
                                   .Where(m => !m.IsDel)
                                   .Where(m => m.ShopId == args.ShopId.Value)
                                   .Where(m => m.IsUsed)
                                   .Count();

            //客户数量
            viewModel.MemberCount = db.Query <ShopBooking>()
                                    .Where(m => !m.IsDel)
                                    .Where(m => m.ShopId == args.ShopId.Value)
                                    .Where(m => m.IsUsed)
                                    .Select(m => m.MemberId)
                                    .Distinct()
                                    .Count();

            return(Success(viewModel));
        }
Ejemplo n.º 5
0
        public APIResult QRCodeJumpGet([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);

            var result = CodeApiExt.QRCodeJumpGet(authorizerAccessToken.authorizer_access_token);

            return(Success(result));
        }
Ejemplo n.º 6
0
        //  [Authorize]
        public APIResult GetCategory([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);

            var result = Senparc.Weixin.Open.WxaAPIs.CodeApi.GetCategory(authorizerAccessToken.authorizer_access_token);

            return(Success(result));
        }
Ejemplo n.º 7
0
        public APIResult GetShopOAuthList([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("shopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var list = db.Query <ShopOrderReceiver>()
                       .Where(m => !m.IsDel)
                       .Where(m => m.ShopId == args.ShopId.Value)
                       .ToList();

            return(Success(list));
        }
Ejemplo n.º 8
0
        public APIResult GetDomain([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);

            //注意参数 ModifyDomainAction.get 表示获取的意思
            var result = Senparc.Weixin.Open.WxaAPIs.ModifyDomainApi.ModifyDomain(authorizerAccessToken.authorizer_access_token, Senparc.Weixin.Open.ModifyDomainAction.get, null, null, null, null);

            return(Success(result));
        }
Ejemplo n.º 9
0
        public APIResult <bool> GetIsBind([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var isBind = db.Query <ShopWechatOpenAuthorizer>()
                         .Where(m => !m.IsDel)
                         .Where(m => m.ShopId == args.ShopId.Value)
                         .Count() > 0;

            return(Success(isBind));
        }
Ejemplo n.º 10
0
        public APIResult <ShopWechatOpenAuthorizer> GetSingleByShopId([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var model = db.Query <ShopWechatOpenAuthorizer>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopId == args.ShopId.Value)
                        .FirstOrDefault();

            if (model == null)
            {
                throw new Exception("指定的纪录不存在");
            }

            return(Success(model));
        }
Ejemplo n.º 11
0
        public APIResult RefreshToken([FromBody] ShopIdArgsModel args)
        {
            //if (!args.ShopId.HasValue) throw new ArgumentNullException("ShopId");
            //CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            //var shopWechatOpenAuthorizer = db.Query<ShopWechatOpenAuthorizer>()
            //    .Where(m => !m.IsDel)
            //    .Where(m => m.ShopId == args.ShopId.Value)
            //    .Select(m => new
            //    {
            //        AuthorizerAppId = m.WechatOpenAuthorizer.AuthorizerAppId
            //    })
            //    .FirstOrDefault();
            //if (shopWechatOpenAuthorizer == null) throw new Exception("指定的纪录不存在");
            //Senparc.Weixin.Open.Containers.AuthorizerContainer.RemoveFromCache(shopWechatOpenAuthorizer.AuthorizerAppId);
            //Senparc.Weixin.Open.Containers.AuthorizerContainer.TryGetAuthorizerAccessToken(wechatOpenOptions.AppId, shopWechatOpenAuthorizer.AuthorizerAppId, true);



            return(Success());
        }
Ejemplo n.º 12
0
        public APIResult GetTotal([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);
            var brandId = db.Query <Shop>()
                          .Where(m => m.Id == args.ShopId.Value)
                          .Select(m => m.ShopBrandId)
                          .FirstOrDefault();

            var viewModel = new GetTotalModel()
            {
            };

            viewModel.OrderCount = db.Query <ShopOrder>()
                                   .Where(m => !m.IsDel)
                                   .Where(m => m.ShopId == args.ShopId.Value)
                                   .Count();

            viewModel.CommodityCount = db.Query <ShopBrandCommodity>()
                                       .Where(m => !m.IsDel)
                                       .Where(m => m.ShopBrandId == brandId)
                                       .Count();

            //客户数量,这里读取的是已经下过单的客户数量
            viewModel.MemberCount = db.Query <ShopOrder>()
                                    .Where(m => !m.IsDel)
                                    .Where(m => m.ShopId == args.ShopId.Value)
                                    .Select(m => m.MemberId)
                                    .Distinct()
                                    .Count();

            return(Success(viewModel));
        }
Ejemplo n.º 13
0
        public async System.Threading.Tasks.Task <APIResult <CodeResultJson> > ReleaseAsync([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);
            var result = await CodeApi.ReleaseAsync(authorizerAccessToken.authorizer_access_token);


            //如果请求成功,则将请求的结果写入到数据库中
            if (result.errcode == Senparc.Weixin.ReturnCode.请求成功)
            {
                var authorizer = db.Query <ShopWechatOpenAuthorizer>()
                                 .Where(m => !m.IsDel)
                                 .Where(m => m.ShopId == args.ShopId.Value)
                                 .FirstOrDefault();

                authorizer.IsRelease = true;
                await db.SaveChangesAsync();

                //这里尝试添加二唯码规则
                try
                {
                    CodeApiExt.QRCodeJumpAddPublish(args.ShopId.Value, authorizerAccessToken.authorizer_access_token, hostingEnvironment);
                }
                catch (Exception)
                {
                }
            }
            return(Success(result));
        }
Ejemplo n.º 14
0
        public async System.Threading.Tasks.Task <APIResult <GetAuditStatusResultJson> > GetLatestAuditStatus([FromBody] ShopIdArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new ArgumentNullException("ShopId");
            }
            CheckShopActor(args.ShopId.Value, ShopActorType.超级管理员);

            var authorizerAccessToken = GetAuthorizerAccessToken(args.ShopId.Value);

            var result = await Senparc.Weixin.Open.WxaAPIs.CodeApi.GetLatestAuditStatusAsync(authorizerAccessToken.authorizer_access_token);

            //如果请求成功,则将请求的结果写入到数据库中
            if (result.errcode == Senparc.Weixin.ReturnCode.请求成功)
            {
                var authorizer = db.Query <ShopWechatOpenAuthorizer>()
                                 .Where(m => !m.IsDel)
                                 .Where(m => m.ShopId == args.ShopId.Value)
                                 .FirstOrDefault();
                if (authorizer.CurrentAuditId == int.Parse(result.auditid))
                {
                    authorizer.CurrentAuditStatus = result.status;
                    if (result.status == 1)//审核状态,其中0为审核成功,1为审核失败,2为审核中
                    {
                        authorizer.CurrentAuditFailReason = result.reason;
                    }
                    await db.SaveChangesAsync();
                }
            }

            return(Success(result));
        }