Exemple #1
0
        /// <summary>
        /// 微盟-查询订单列表(ec/order/queryOrderList)
        /// </summary>
        public void QueryOrderListFromWm(DateTime startDate, DateTime endDate)
        {
            string preMsg = "微盟 查询订单列表 ";

            QueryOrderListRequest request = new QueryOrderListRequest();

            request.pageNum        = 1;
            request.pageSize       = 100;
            request.queryParameter = new QueryOrderListRequest.QueryParameter
            {
                orderTypes = new List <int> {
                    1
                },
                orderStatuses = new List <int> {
                    1
                },
                channelTypes = new List <int> {
                    1
                },
                deliveryStatuses = new List <int> {
                    0
                }
            };

            QueryOrderListResponse response = HttpPostToWm <QueryOrderListResponse>("ec/order/queryOrderList", request, preMsg);
        }
Exemple #2
0
        public async Task <IActionResult> TradeSummary(QueryOrderListRequest req)
        {
            if (!await HttpContext.IsSystem())
            {
                req.createby = await HttpContext.LoginUserId();
            }

            var res = await cmsDaily.GetAgentTradeSummary(req);

            return(Ok(new { code = 0, msg = "success", count = res.data.TotalItems, data = res.data.Items }));
        }
Exemple #3
0
        public async Task <PageResult <IEnumerable <RefundOrder> > > Refund(QueryOrderListRequest req)
        {
            var res = new PageResult <IEnumerable <RefundOrder> >();

            if (req.start_time == null)
            {
                req.start_time = DateTime.Now.Date;
            }
            if (req.end_time == null)
            {
                req.end_time = DateTime.Now.AddDays(1).Date;
            }

            req.order_type = OrderType.退款单;

            var mch = await merchantService.GetModelAsync(p => p.out_sub_mch_id == req.out_sub_mch_id);

            if (mch == null || mch.data == null || mch.data.id == 0)
            {
                res.Code = ApiEnum.Error;
                res.Msg  = "请选择商户查询";
                return(res);
            }

            req.AuthenKey = mch.data.authen_key;

            var data = await wx.QueryAsync(req);

            if (data.Status != 0)
            {
                res.Msg  = data.Description;
                res.Code = ApiEnum.Error;

                return(res);
            }

            if (data.Data == null)
            {
                res.Msg  = "查询结果为空";
                res.Code = ApiEnum.Error;

                return(res);
            }

            res.Msg   = "success";
            res.Count = data.Data.total_count;

            if (data.Data.order_details != null)
            {
                res.Data = data.Data.order_details.Select(p => p.refund_order);
            }

            return(res);
        }
Exemple #4
0
        public async Task <PageResult <IEnumerable <CmsOrderOverview> > > DailyReport(QueryOrderListRequest req)
        {
            var res = new PageResult <IEnumerable <CmsOrderOverview> >();

            var mch = await merchantService.GetModelAsync(p => p.out_sub_mch_id == req.out_sub_mch_id);

            if (mch == null || mch.data == null || mch.data.id == 0)
            {
                res.Code = ApiEnum.Error;
                res.Msg  = "请选择商户查询";
                return(res);
            }

            req.createby = await HttpContext.LoginUserId();

            var data = await cmsDaily.GetShopDailyReport(req);

            if (data.statusCode != 200)
            {
                res.Msg  = data.message;
                res.Code = ApiEnum.Error;

                return(res);
            }

            if (data.data.Items == null)
            {
                res.Msg  = "查询结果为空";
                res.Code = ApiEnum.Error;

                return(res);
            }

            res.Msg   = "success";
            res.Count = data.data.TotalItems;
            res.Data  = data.data.Items;

            return(res);
        }
Exemple #5
0
        public async Task <ApiResult <Page <CmsOrderOverview> > > GetAgentTradeSummary(QueryOrderListRequest parm)
        {
            var res = new ApiResult <Page <CmsOrderOverview> >();

            var query = Db.Queryable <CmsOrderOverview, CmsMerchant>((ds, mch) =>
                                                                     new object[] { JoinType.Left, ds.out_sub_mch_id == mch.out_sub_mch_id });

            query.WhereIF(!string.IsNullOrEmpty(parm.createby), (ds, mch) => mch.agent_admin_guid == parm.createby)
            .WhereIF(!string.IsNullOrEmpty(parm.out_sub_mch_id), (ds, mch) => ds.out_sub_mch_id == parm.out_sub_mch_id)
            .WhereIF(parm.sub_pay_platforms.Length > 0, (ds, mch) => parm.sub_pay_platforms.Contains(ds.sub_pay_platform))
            .WhereIF(parm.start_time != null, (ds, mch) => ds.business_date >= parm.start_time)
            .WhereIF(parm.end_time != null, (ds, mch) => ds.business_date <= parm.end_time);

            var data = await query.Select((ds, mch) => new CmsOrderOverview
            {
                out_sub_mch_id       = ds.out_sub_mch_id,
                success_count        = SqlFunc.AggregateSum(ds.success_count),        //交易笔数
                success_amount       = SqlFunc.AggregateSum(ds.success_amount),       //交易金额
                refund_create_count  = SqlFunc.AggregateSum(ds.refund_create_count),  //退货笔数
                refund_create_amount = SqlFunc.AggregateSum(ds.refund_create_amount), //退货金额
                sub_mch_non_recharge_coupon_amount  = SqlFunc.AggregateSum(ds.sub_mch_non_recharge_coupon_amount),
                platform_non_recharge_coupon_amount = SqlFunc.AggregateSum(ds.platform_non_recharge_coupon_amount),
                others_non_recharge_coupon_amount   = SqlFunc.AggregateSum(ds.others_non_recharge_coupon_amount),
                sub_mch_recharge_coupon_amount      = SqlFunc.AggregateSum(ds.sub_mch_recharge_coupon_amount),
                platform_recharge_coupon_amount     = SqlFunc.AggregateSum(ds.platform_recharge_coupon_amount),
                others_recharge_coupon_amount       = SqlFunc.AggregateSum(ds.others_recharge_coupon_amount),
            }).GroupBy(ds => ds.out_sub_mch_id).ToPageAsync(parm.page_num, parm.page_size);

            if (data.Items.Count > 0)
            {
                var ids = data.Items.Select(p => p.out_sub_mch_id).ToArray();

                var shopInfos = await Db.Queryable <CmsMerchant>().In(p => p.out_sub_mch_id, ids).ToListAsync();

                data.Items.ForEach(shop =>
                {
                    var shopInfo = shopInfos.FirstOrDefault(m => shop.out_sub_mch_id == m.out_sub_mch_id);
                    if (shopInfo != null)
                    {
                        shop.shop_name = shopInfo.name;
                    }

                    //免充值优惠金额
                    shop.others_non_recharge_coupon_amount = shop.sub_mch_non_recharge_coupon_amount + shop.platform_non_recharge_coupon_amount + shop.others_non_recharge_coupon_amount;
                    //充值优惠金额
                    shop.others_recharge_coupon_amount = shop.sub_mch_recharge_coupon_amount + shop.platform_recharge_coupon_amount + shop.others_recharge_coupon_amount;
                    //参与结算交易净额
                    shop.pay_settle_amount = shop.success_amount - shop.refund_create_amount - shop.others_non_recharge_coupon_amount - shop.others_recharge_coupon_amount;
                });
            }

            res.data       = data;
            res.statusCode = (int)ApiEnum.Status;

            return(res);
        }
Exemple #6
0
        public async Task <ApiResult <Page <CmsOrderOverview> > > GetShopDailyReport(QueryOrderListRequest parm)
        {
            var res = new ApiResult <Page <CmsOrderOverview> >();

            var role_info = await roleService.GetRoleByAdminGuid(parm.createby);

            var query = Db.Queryable <CmsOrderOverview, AdminShopRel>((ds, rel) => new object[] { JoinType.Left, ds.out_shop_id == rel.out_shop_id });

            if (role_info.isSystem || role_info.isAgent || role_info.isSubAdmin)
            {
                //管理员不需要过滤
                //代理商没有该权限
                //商户管理员不过滤
            }
            else // 门店普通员工
            {
                query.Where((ds, rel) => rel.admin_guid == parm.createby);
            }

            query.WhereIF(!string.IsNullOrEmpty(parm.out_sub_mch_id), (ds, rel) => ds.out_sub_mch_id == parm.out_sub_mch_id)
            .WhereIF(!string.IsNullOrEmpty(parm.out_shop_id), (ds, rel) => ds.out_shop_id == parm.out_shop_id)
            .WhereIF(parm.sub_pay_platforms.Length > 0, (ds, rel) => parm.sub_pay_platforms.Contains(ds.sub_pay_platform))
            .WhereIF(parm.start_time != null, (ds, rel) => ds.business_date >= parm.start_time)
            .WhereIF(parm.end_time != null, (ds, rel) => ds.business_date <= parm.end_time);

            var data = await query.Select((ds, rel) => new CmsOrderOverview
            {
                business_date        = ds.business_date,
                out_shop_id          = ds.out_shop_id,
                success_count        = SqlFunc.AggregateSum(ds.success_count),        //交易笔数
                success_amount       = SqlFunc.AggregateSum(ds.success_amount),       //交易金额
                refund_create_count  = SqlFunc.AggregateSum(ds.refund_create_count),  //退货笔数
                refund_create_amount = SqlFunc.AggregateSum(ds.refund_create_amount), //订单已退金额
                discount_amount      = SqlFunc.AggregateSum(ds.discount_amount),      //优惠金额
                poundage             = SqlFunc.AggregateSum(ds.poundage),             //手续费
                income_amount        = SqlFunc.AggregateSum(ds.income_amount),        //入账金额
                sub_mch_non_recharge_coupon_amount  = SqlFunc.AggregateSum(ds.sub_mch_non_recharge_coupon_amount),
                platform_non_recharge_coupon_amount = SqlFunc.AggregateSum(ds.platform_non_recharge_coupon_amount),
                others_non_recharge_coupon_amount   = SqlFunc.AggregateSum(ds.others_non_recharge_coupon_amount),
                sub_mch_recharge_coupon_amount      = SqlFunc.AggregateSum(ds.sub_mch_recharge_coupon_amount),
                platform_recharge_coupon_amount     = SqlFunc.AggregateSum(ds.platform_recharge_coupon_amount),
                others_recharge_coupon_amount       = SqlFunc.AggregateSum(ds.others_recharge_coupon_amount)
            }).GroupBy(ds => new { ds.business_date, ds.out_shop_id }).ToPageAsync(parm.page_num, parm.page_size);

            if (data.Items.Count > 0)
            {
                var ids = data.Items.Select(p => p.out_shop_id).ToArray();

                var shopInfos = await Db.Queryable <ShopInfo>().In(p => p.out_shop_id, ids).ToListAsync();

                data.Items.ForEach(shop =>
                {
                    var shopInfo = shopInfos.FirstOrDefault(m => shop.out_shop_id == m.out_shop_id);
                    if (shopInfo != null)
                    {
                        shop.shop_name = shopInfo.shop_name;
                        shop.erp_org   = shopInfo.erp_org;
                    }

                    //免充值优惠金额
                    shop.others_non_recharge_coupon_amount = shop.sub_mch_non_recharge_coupon_amount + shop.platform_non_recharge_coupon_amount + shop.others_non_recharge_coupon_amount;
                    //充值优惠金额
                    shop.others_recharge_coupon_amount = shop.sub_mch_recharge_coupon_amount + shop.platform_recharge_coupon_amount + shop.others_recharge_coupon_amount;
                    //应收金额
                    shop.pay_settle_amount = shop.success_amount - shop.refund_create_amount;
                });
            }

            res.data       = data;
            res.statusCode = (int)ApiEnum.Status;

            return(res);
        }