Ejemplo n.º 1
0
        /// <summary>
        /// 获取众销统计信息
        /// </summary>
        /// <param name="search">查询类</param>
        /// <returns>结果</returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumDTO GetShareOrderMoneySumInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumSearchDTO search)
        {
            if (search == null || search.UseId == Guid.Empty || search.AppId == Guid.Empty)
            {
                return(null);
            }
            Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySumDTO result = new ShareOrderMoneySumDTO();

            //售中待收益
            var orderStates = new List <int>()
            {
                1, 2, 8, 9, 10, 12, 13, 14
            };
            //售后待收益
            var orderAfterStates = new List <int>()
            {
                3, 5, 10, 12, 13
            };

            //佣金总数(已收益佣金)
            var sumInfo = (from orderShare in OrderShare.ObjectSet()
                           join order in CommodityOrder.ObjectSet()
                           on orderShare.OrderId equals order.Id
                           join dataS in CommodityOrderService.ObjectSet()
                           on orderShare.OrderId equals dataS.Id
                           into tempS
                           from orderService in tempS.DefaultIfEmpty()
                           where
                           orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                           order.EsAppId == search.AppId && order.State == 3 && orderService.State == 15
                           select orderShare.Commission).ToList().Sum();

            //待收益佣金总数
            var sumUnPayInfo = (from orderShare in OrderShare.ObjectSet()
                                join order in CommodityOrder.ObjectSet()
                                on orderShare.OrderId equals order.Id
                                join dataS in CommodityOrderService.ObjectSet()
                                on orderShare.OrderId equals dataS.Id
                                into tempS
                                from orderService in tempS.DefaultIfEmpty()
                                where
                                orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                                order.EsAppId == search.AppId && (orderStates.Contains(order.State) ||
                                                                  order.State == 3 && orderService.State != null && orderAfterStates.Contains(orderService.State))
                                select orderShare.Commission).ToList().Sum();

            result.CommissionAmount = sumInfo;
            result.CommmissionUnPay = sumUnPayInfo;

            return(result);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 售后完成时,记录售后时间
 /// </summary>
 public static void AfterSalesEndOrder(ContextSession contextSession, CommodityOrderService commodityOrderService)
 {
     try
     {
         LogHelper.Info("结算单记录售后完成,订单ID:" + commodityOrderService.Id);
         var sad = SettleAccountsDetails.FindByID(commodityOrderService.Id);
         if (sad != null)
         {
             sad.AfterSalesEndTime = commodityOrderService.EndTime.Value;
             sad.EntityState       = EntityState.Modified;
             contextSession.SaveObject(sad);
         }
     }
     catch (Exception ex)
     {
         LogHelper.Error("结算单记录售后完成,订单ID:" + commodityOrderService.Id + ",错误:", ex);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 导入自营商家未设置结算价时的结算订单
        /// </summary>
        public static void ImportNotSettleOrder()
        {
            LogHelper.Info("SettleAccountHelper.ImportNotSettleOrder 开始导入未设置结算价的订单");
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                // 查询商城下APP
                var mallQuery        = MallApply.ObjectSet().Where(m => m.Type == 0 && (m.State.Value == 2 || m.State.Value == 4));
                var startDate        = new DateTime(2017, 9, 1);
                var hadAddOrderQuery = SettleAccountsDetails.ObjectSet().AsQueryable();
                foreach (var mall in mallQuery.ToList())
                {
                    var orderQuery = CommodityOrder.ObjectSet().Where(o =>
                                                                      o.AppId == mall.AppId &&
                                                                      o.EsAppId == mall.EsAppId &&
                                                                      o.PaymentTime > startDate &&
                                                                      o.Payment != 0);
                    var orders = orderQuery.Join(CommodityOrderService.ObjectSet()
                                                 .Where(s => (s.State == 3 || s.State == 7 || s.State == 15)), o => o.Id, s => s.Id, (o, s) => new { s.State, o })
                                 .Where(so => !hadAddOrderQuery.Where(h => h.EsAppId == mall.EsAppId && h.AppId == mall.AppId && h.OrderId == so.o.Id)
                                        .Any(h => h.Id == so.o.Id))
                                 .ToList();
                    if (orders.Count > 0)
                    {
                        // 生成结算项
                        foreach (var so in orders)
                        {
                            SettleAccountHelper.CreateSettleAccountDetails(contextSession, so.o, mall, so.State);
                        }
                    }
                }
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SettleAccountHelper.ImportNotSettleOrder 异常", ex));
            }
            LogHelper.Info("SettleAccountHelper.ImportNotSettleOrder 结束导入未设置结算价的订单");

            ImportNotSettleGoldOrder();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取众销入账信息
        /// </summary>
        /// <param name="search">查询类</param>
        /// <returns>结果</returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneyResultDTO GetShareOrderMoneyInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneySearchDTO search)
        {
            Jinher.AMP.BTP.Deploy.CustomDTO.ShareOrderMoneyResultDTO result = new ShareOrderMoneyResultDTO();

            if (search == null || search.UseId == Guid.Empty || search.AppId == Guid.Empty || search.PageIndex < 1 || search.PageSize < 1)
            {
                return(result);
            }

            //售中待收益
            var orderStates = new List <int>()
            {
                1, 2, 8, 9, 10, 12, 13, 14
            };
            //售后待收益
            var orderAfterStates = new List <int>()
            {
                3, 5, 10, 12, 13
            };

            //已收益
            if (search.SearchType == 1)
            {
                var query = from orderShare in OrderShare.ObjectSet()
                            join order in CommodityOrder.ObjectSet()
                            on orderShare.OrderId equals order.Id
                            join dataS in CommodityOrderService.ObjectSet()
                            on orderShare.OrderId equals dataS.Id
                            into tempS
                            from orderService in tempS.DefaultIfEmpty()
                            where
                            orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                            order.EsAppId == search.AppId && order.State == 3 && orderService.State == 15
                            select new ShareOrderMoneyDTO
                {
                    SortTime = orderService.EndTime.Value,
                    Money    = orderShare.Commission,
                    State    = 0,
                    SrcType  = order.SrcType
                };
                result.Count = query.Count();



                result.ShareOrderMoneyList = query.OrderByDescending(n => n.SortTime).Skip((search.PageIndex - 1) * search.PageSize).Take(search.PageSize).ToList();
            }
            //待收益
            else if (search.SearchType == 2)
            {
                var query = from orderShare in OrderShare.ObjectSet()
                            join order in CommodityOrder.ObjectSet()
                            on orderShare.OrderId equals order.Id
                            join dataS in CommodityOrderService.ObjectSet()
                            on orderShare.OrderId equals dataS.Id
                            into tempS
                            from orderService in tempS.DefaultIfEmpty()
                            where
                            orderShare.PayeeId == search.UseId && orderShare.PayeeType == search.PayeeType && orderShare.Commission > 0 &&
                            order.EsAppId == search.AppId && (orderStates.Contains(order.State) ||
                                                              order.State == 3 && orderService.State != null &&
                                                              orderAfterStates.Contains(orderService.State))
                            select new ShareOrderMoneyDTO
                {
                    SortTime = order.PaymentTime.Value,
                    Money    = orderShare.Commission,
                    State    = 1,
                    SrcType  = order.SrcType
                };
                result.Count = query.Count();
                result.ShareOrderMoneyList =
                    query.OrderByDescending(n => n.SortTime)
                    .Skip((search.PageIndex - 1) * search.PageSize)
                    .Take(search.PageSize)
                    .ToList();
            }
            else
            {
            }

            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 导入自营商家未设置结算价时的金币支付订单
        /// </summary>
        public static void ImportNotSettleGoldOrder()
        {
            LogHelper.Info("SettleAccountHelper.ImportNotSettleGoldOrder 开始导入未设置结算价的金币支付订单");
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                // 查询商城下APP
                var mallQuery = MallApply.ObjectSet().Where(m => m.Type == 0 && (m.State.Value == 2 || m.State.Value == 4));
                //var startDate = new DateTime(2017, 9, 1);
                var        hadAddOrderQuery = SettleAccountsDetails.ObjectSet().AsQueryable();
                ContextDTO contextDTO       = AuthorizeHelper.CoinInitAuthorizeInfo();
                // 生成结算项
                List <object> saveList = new List <object>();
                foreach (var mall in mallQuery.ToList())
                {
                    var orderQuery = CommodityOrder.ObjectSet().Where(o =>
                                                                      o.AppId == mall.AppId &&
                                                                      o.EsAppId == mall.EsAppId &&
                                                                      o.PaymentTime > mall.SubTime &&
                                                                      o.Payment == 0);
                    var orders = orderQuery.Join(CommodityOrderService.ObjectSet()
                                                 .Where(s => (s.State == 15)), o => o.Id, s => s.Id, (o, s) => o)
                                 .Where(o => !hadAddOrderQuery.Where(h => h.EsAppId == mall.EsAppId && h.AppId == mall.AppId && h.OrderId == o.Id)
                                        .Any(h => h.Id == o.Id))
                                 .ToList();
                    if (orders.Count > 0)
                    {
                        foreach (var o in orders)
                        {
                            LogHelper.Info("ImportNotSettleGoldOrder,导入自营商家未设置结算价时的金币支付订单,开始生成结算单,OrderId:" + o.Id);
                            var sa = SettleAccountHelper.CreateSettleAccount(contextSession, o, mall);
                            if (sa != null)
                            {
                                Jinher.AMP.App.Deploy.CustomDTO.AppIdOwnerIdTypeDTO applicationDTO = APPSV.Instance.GetAppOwnerInfo(o.AppId, contextDTO);
                                // 打款
                                var confirmDto = OrderSV.BuildConfirmPayDTOAfterSales(contextSession, o, out saveList, applicationDTO, isSaveObject: false);
                                LogHelper.Info("导入自营商家未设置结算价时的金币支付订单,开始打款,OrderId:" + o.Id + "ConfirmPayDTO: " + JsonHelper.JsonSerializer(confirmDto));
                                var goldPayResult = Jinher.AMP.BTP.TPS.FSPSV.Instance.ConfirmPay(confirmDto);
                                if (goldPayResult.Code != 0)
                                {
                                    // 打款失败
                                    sa.IsPaySuccess = false;
                                    LogHelper.Info("导入自营商家未设置结算价时的金币支付订单,结束打款,失败,OrderId:" + o.Id);

                                    var errorInfo = JsonHelper.JsonSerializer(goldPayResult);
                                    LogHelper.Error("OrderSV.CreateSettleAccount 生成结算单,打款异常,OrderId: " + o.Id + " ReturnInfoDTO: " + errorInfo);
                                    SettleAccountsException exception = new SettleAccountsException();
                                    exception.Id             = sa.Id;
                                    exception.OrderId        = o.Id;
                                    exception.OrderCode      = o.Code;
                                    exception.OrderRealPrice = o.RealPrice;
                                    exception.ClearingPrice  = sa.SellerAmount;
                                    exception.ExceptionInfo  = errorInfo;
                                    exception.AppId          = sa.AppId;
                                    exception.AppName        = sa.AppName;
                                    exception.EntityState    = EntityState.Added;
                                    contextSession.SaveObject(exception);
                                }
                                else
                                {
                                    // 打款成功
                                    sa.IsPaySuccess = true;
                                    LogHelper.Info("导入自营商家未设置结算价时的金币支付订单,结束打款,成功,OrderId:" + o.Id);
                                }
                                LogHelper.Info("ImportNotSettleGoldOrder,导入自营商家未设置结算价时的金币支付订单,结束生成结算单,OrderId:" + o.Id);
                            }
                        }
                    }
                }
                if (saveList != null && saveList.Any())
                {
                    foreach (var o in saveList)
                    {
                        contextSession.SaveObject(o);
                    }
                }
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SettleAccountHelper.ImportNotSettleGoldOrder 异常", ex));
            }
            LogHelper.Info("SettleAccountHelper.ImportNotSettleGoldOrder 结束导入未设置结算价的金币支付订单");
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 售后完成三级分销打积分
        /// </summary>
        /// <param name="contextSession"></param>
        /// <param name="commodityOrder"></param>
        /// <param name="commodityOrderService"></param>
        /// <returns></returns>
        public static bool DistributeSaleGiveScore(ContextSession contextSession, CommodityOrder commodityOrder, CommodityOrderService commodityOrderService)
        {
            if (!commodityOrder.EsAppId.HasValue)
            {
                return(true);
            }
            List <int> payeeTypeList = new List <int>()
            {
                9, 10, 11
            };
            //取得三级分销应分的积分记录
            var osQuery =
                OrderShare.ObjectSet()
                .Where(
                    t =>
                    t.OrderId == commodityOrder.Id && t.Commission > 0 && payeeTypeList.Contains(t.PayeeType))
                .ToList();

            //使用了积分
            if (osQuery.Any())
            {
                //获取当时的积分比例
                CostScoreInfoDTO scoreCostDto;
                if (new ScoreSV().GetScoreCost(commodityOrder.EsAppId.Value, out scoreCostDto, commodityOrder.SubTime))
                {
                    bool isAllSuccess = true;
                    foreach (var orderShare in osQuery)
                    {
                        int  srore             = (int)(orderShare.Commission * scoreCostDto.Cost);
                        bool refundScoreResult = SignSV.Instance.GiveScoreBtpShare(orderShare.PayeeId, commodityOrder.AppId, srore, commodityOrder.Id, commodityOrder.Code, Jinher.AMP.Sign.Deploy.Enum.ScoringType.BtpDistributeSale, orderShare.Commission, scoreCostDto.Cost, scoreCostDto.ScoreType);
                        if (!refundScoreResult)
                        {
                            isAllSuccess = false;
                            LogHelper.Error(string.Format("售售后完成三级分销打积分失败。UserId:{0},AppId:{1},srore:{2},OrderId:{3}", orderShare.PayeeId, commodityOrder.AppId, srore, commodityOrder.Id));
                            ErrorCommodityOrder errorOrder = new ErrorCommodityOrder();
                            errorOrder.Id           = Guid.NewGuid();
                            errorOrder.ErrorOrderId = commodityOrder.Id;
                            if (orderShare.PayeeType == 9)
                            {
                                errorOrder.ResourceType = 2;
                            }
                            else if (orderShare.PayeeType == 10)
                            {
                                errorOrder.ResourceType = 3;
                            }
                            else if (orderShare.PayeeType == 11)
                            {
                                errorOrder.ResourceType = 4;
                            }
                            errorOrder.Source      = 3;
                            errorOrder.State       = 0;
                            errorOrder.AppId       = commodityOrder.AppId;
                            errorOrder.UserId      = orderShare.PayeeId;
                            errorOrder.OrderCode   = commodityOrder.Code;
                            errorOrder.CouponId    = Guid.Empty;
                            errorOrder.Score       = srore;
                            errorOrder.SubTime     = DateTime.Now;
                            errorOrder.ModifiedOn  = DateTime.Now;
                            errorOrder.ScoreType   = (int)scoreCostDto.ScoreType;
                            errorOrder.EntityState = System.Data.EntityState.Added;
                            contextSession.SaveObject(errorOrder);
                        }
                    }

                    return(isAllSuccess);
                }
            }
            return(true);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 售后完成渠道打积分
        /// </summary>
        /// <param name="contextSession"></param>
        /// <param name="commodityOrder"></param>
        /// <param name="commodityOrderService"></param>
        /// <returns></returns>
        public static bool ChannelShareSaleGiveScore(ContextSession contextSession, CommodityOrder commodityOrder, CommodityOrderService commodityOrderService)
        {
            if (!commodityOrder.EsAppId.HasValue)
            {
                return(true);
            }
            //使用了积分
            if (commodityOrder.ChannelShareMoney > 0)
            {
                //取商货众销的收款人
                var shareModel = OrderShare.ObjectSet().FirstOrDefault(t => t.OrderId == commodityOrder.Id && t.PayeeType == 12);

                //没有收款人
                if (shareModel == null || shareModel.PayeeId == Guid.Empty)
                {
                    LogHelper.Error(string.Format("售后完成渠道打积,找不到收款人。OrderId:{0}", commodityOrder.Id));
                    return(false);
                }
                //获取当时的积分比例
                CostScoreInfoDTO scoreCostDto;
                if (new ScoreSV().GetScoreCost(commodityOrder.EsAppId.Value, out scoreCostDto, commodityOrder.SubTime))
                {
                    int  srore             = (int)(commodityOrder.ChannelShareMoney * scoreCostDto.Cost);
                    bool refundScoreResult = Instance.GiveScoreBtpShare(shareModel.PayeeId, commodityOrder.EsAppId.Value, srore, commodityOrder.Id, commodityOrder.Code, ScoringType.BtpChannelBrokerage, commodityOrder.ChannelShareMoney, scoreCostDto.Cost, scoreCostDto.ScoreType);
                    if (!refundScoreResult)
                    {
                        LogHelper.Error(string.Format("售后完成渠道打积分失败。UserId:{0},AppId:{1},srore:{2},OrderId:{3}", shareModel.PayeeId, commodityOrder.AppId, srore, commodityOrder.Id));
                        ErrorCommodityOrder errorOrder = new ErrorCommodityOrder
                        {
                            Id           = Guid.NewGuid(),
                            ErrorOrderId = commodityOrder.Id,
                            ResourceType = 6,
                            Source       = 3,
                            State        = 0,
                            AppId        = commodityOrder.EsAppId.Value,
                            UserId       = shareModel.PayeeId,
                            OrderCode    = commodityOrder.Code,
                            CouponId     = Guid.Empty,
                            Score        = srore,
                            SubTime      = DateTime.Now,
                            ModifiedOn   = DateTime.Now,
                            ScoreType    = (int)scoreCostDto.ScoreType,
                            EntityState  = System.Data.EntityState.Added
                        };
                        contextSession.SaveObject(errorOrder);
                    }
                    return(refundScoreResult);
                }
            }
            return(true);
        }
Ejemplo n.º 8
0
        public ResultDTO CreateExt(Guid orderId)
        {
            try
            {
                var order = CommodityOrder.ObjectSet().FirstOrDefault(p => p.Id == orderId);
                if (order == null)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "未找到订单"
                    }
                }
                ;
                if (order.EsAppId != YJB.Deploy.CustomDTO.YJBConsts.YJAppId)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷北京订单"
                    }
                }
                ;
                if (order.OrderType != 3)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷卡密订单"
                    }
                }
                ;
                if (order.State == 7)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "订单已退款"
                    }
                }
                ;
                if (YJBJCard.ObjectSet().Any(p => p.OrderId == orderId && p.Status == 2))
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "已获取卡信息"
                    }
                }
                ;
                var yjUserId = TPS.CBCSV.GetYJUserId(order.UserId);
                if (string.IsNullOrEmpty(yjUserId))
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "非易捷北京会员用户"
                    }
                }
                ;
                var isNoPhoneAccount = yjUserId == "NoPhoneAccount";
                //var yjUserId = "77fca49d080d4bcba3eca52e715e37f6";
                var orderItemList = OrderItem.ObjectSet()
                                    .Where(p => p.CommodityOrderId == orderId && p.Type == 1).Select(p => new { p.Id, p.CommodityId, p.Number, p.YJCouponActivityId, p.YJCouponType, }).ToList()
                                    .Where(p => !string.IsNullOrEmpty(p.YJCouponActivityId) && !string.IsNullOrEmpty(p.YJCouponType)).ToList();
                if (orderItemList.Count == 0)
                {
                    return new ResultDTO {
                               isSuccess = false, Message = "未找到易捷卡密订单项"
                    }
                }
                ;
                orderItemList.ForEach(p =>
                {
                    var list = isNoPhoneAccount ? new List <YJBJCard>() : CreateYingKeCoupon(p.YJCouponActivityId, p.YJCouponType, p.Number, yjUserId);
                    if (list.Count == 0)//接口调用失败后再调用一次
                    {
                        list = isNoPhoneAccount ? new List <YJBJCard>() : CreateYingKeCoupon(p.YJCouponActivityId, p.YJCouponType, p.Number, yjUserId);
                        #region 接口二次调用失败

                        if (list.Count == 0)
                        {
                            list.Add(new YJBJCard
                            {
                                CardName    = string.Empty,
                                CardNo      = string.Empty,
                                CheckCode   = string.Empty,
                                CouponUrl   = string.Empty,
                                EndTime     = DateTime.MaxValue,
                                Status      = isNoPhoneAccount ? 1 : 0,
                                Message     = isNoPhoneAccount ? "用户未绑定手机号" : "失败",
                                EntityState = EntityState.Added
                            });
                        }

                        #endregion
                    }
                    list.ForEach(x =>
                    {
                        x.Id          = Guid.NewGuid();
                        x.UserId      = order.UserId;
                        x.AppId       = order.AppId;
                        x.EsAppId     = (Guid)order.EsAppId;
                        x.OrderId     = order.Id;
                        x.OrderCode   = order.Code;
                        x.OrderItemId = p.Id;
                        x.CommodityId = p.CommodityId;
                        x.SubTime     = DateTime.Now;
                        ContextFactory.CurrentThreadContext.SaveObject(x);
                    });
                });
                DateTime now = DateTime.Now;
                #region CommodityOrderService

                var commodityOrderService = CommodityOrderService.FindByID(order.Id);
                if (commodityOrderService == null)
                {
                    commodityOrderService = new CommodityOrderService
                    {
                        Id          = order.Id,
                        Name        = order.Name,
                        Code        = order.Code,
                        State       = 3,
                        SubId       = order.UserId,
                        SubTime     = now,
                        ModifiedOn  = now,
                        EntityState = EntityState.Added
                    };

                    ContextFactory.CurrentThreadContext.SaveObject(commodityOrderService);
                }

                #endregion
                #region Journal

                var journal = new Journal
                {
                    Id               = Guid.NewGuid(),
                    Name             = "易捷卡密成功获取卡信息",
                    Code             = order.Code,
                    SubId            = order.UserId,
                    SubTime          = now,
                    Details          = "订单状态由" + order.State + "变为3",
                    StateFrom        = order.State,
                    StateTo          = 3,
                    IsPush           = false,
                    OrderType        = order.OrderType,
                    CommodityOrderId = order.Id,
                    EntityState      = EntityState.Added
                };
                ContextFactory.CurrentThreadContext.SaveObject(journal);

                #endregion
                #region CommodityOrder

                order.State      = 3;
                order.ModifiedOn = now;

                #endregion
                int count = ContextFactory.CurrentThreadContext.SaveChanges();
                return(count == 0
                    ? new ResultDTO {
                    isSuccess = false, Message = "数据库保存0行"
                }
                    : new ResultDTO {
                    isSuccess = true, Message = "成功"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("YJBJCardBP.CreateExt异常,orderId={0}", orderId), ex);
                return(new ResultDTO {
                    isSuccess = false, Message = "异常"
                });
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 获取分销商佣金入账信息
        /// </summary>
        /// <param name="distributeMoneySearch"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.DistributorMoneyResultDTO GetDistributorMoneyInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.DistributeMoneySearch distributeMoneySearch)
        {
            Jinher.AMP.BTP.Deploy.CustomDTO.DistributorMoneyResultDTO result = new DistributorMoneyResultDTO();

            if (distributeMoneySearch == null || distributeMoneySearch.DistributorId == Guid.Empty || distributeMoneySearch.PageIndex < 0 || distributeMoneySearch.PageSize < 1)
            {
                return(result);
            }
            var payeeType = new List <int>()
            {
                9, 10, 11
            };
            var orderStates = new List <int>()
            {
                1, 2, 8, 9, 10, 12, 13, 14
            };
            var orderAfterStates = new List <int>()
            {
                3, 5, 10, 12, 13
            };

            var distributorId = distributeMoneySearch.DistributorId.ToString();

            //佣金累计 查已收益佣金
            if (distributeMoneySearch.SearchType == 1)
            {
                var query = from os in OrderShare.ObjectSet()
                            join orderService in CommodityOrderService.ObjectSet()
                            on os.OrderId equals orderService.Id
                            where
                            payeeType.Contains(os.PayeeType) &&
                            os.ShareKey == distributorId && os.Commission > 0 &&
                            orderService.State == 15
                            select new DistributorMoneyDTO
                {
                    DistributorId = distributeMoneySearch.DistributorId,
                    SortTime      = orderService.EndTime.Value,
                    Money         = os.Commission,
                    State         = 0
                };
                result.Count = query.Count();
                result.DistributorMoneyList = query.OrderByDescending(n => n.SortTime).Skip((distributeMoneySearch.PageIndex - 1) * distributeMoneySearch.PageSize).Take(distributeMoneySearch.PageSize).ToList();
            }
            //待收益
            else if (distributeMoneySearch.SearchType == 2)
            {
                var query = from os in OrderShare.ObjectSet()
                            join order in CommodityOrder.ObjectSet()
                            on os.OrderId equals order.Id
                            join dataS in CommodityOrderService.ObjectSet()
                            on os.OrderId equals dataS.Id
                            into tempS
                            from orderService in tempS.DefaultIfEmpty()
                            where
                            payeeType.Contains(os.PayeeType) &&
                            os.ShareKey == distributorId && os.Commission > 0 &&
                            (orderStates.Contains(order.State) ||
                             (order.State == 3 && orderService.State != null && orderAfterStates.Contains(orderService.State)))
                            select new DistributorMoneyDTO
                {
                    DistributorId = distributeMoneySearch.DistributorId,
                    SortTime      = order.PaymentTime.Value,
                    Money         = os.Commission,
                    State         = 1
                };
                result.Count = query.Count();
                result.DistributorMoneyList = query.OrderByDescending(n => n.SortTime).Skip((distributeMoneySearch.PageIndex - 1) * distributeMoneySearch.PageSize).Take(distributeMoneySearch.PageSize).ToList();
            }
            else
            {
                //
            }
            return(result);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 查询分销统计信息
        /// </summary>
        /// <param name="search">查询类</param>
        /// <returns>结果</returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.DistributorProfitsResultDTO GetDistributorProfitsExt(Jinher.AMP.BTP.Deploy.CustomDTO.DistributorProfitsSearchDTO search)
        {
            Jinher.AMP.BTP.Deploy.CustomDTO.DistributorProfitsResultDTO result = new Deploy.CustomDTO.DistributorProfitsResultDTO();

            if (search == null)
            {
                return(result);
            }
            //查询等级。0:本人;1:一级;2:二级
            if (search.SearchType == 0)
            {
                var getResult = DSSBP.Instance.GetDistributorProfits(search);
                if (getResult != null && getResult.ResultCode == 200 && getResult.Data != null)
                {
                    result = getResult.Data;
                }
                if (result.DistributorProfitsInfoList == null || !result.DistributorProfitsInfoList.Any())
                {
                    result.DistributorProfitsInfoList = new List <DistributorProfitsInfoDTO>();
                    result.DistributorProfitsInfoList.Add(new DistributorProfitsInfoDTO());
                }
                //待收益佣金、已收益佣金改为btp实时计算
                //本人只返回一条数据,这里只处理第一条数据
                result.DistributorProfitsInfoList.First().CommmissionUnPay =
                    (from orderShare in OrderShare.ObjectSet()
                     join order in CommodityOrder.ObjectSet() on orderShare.OrderId equals order.Id
                     join os in CommodityOrderService.ObjectSet() on orderShare.OrderId equals os.Id into tmp
                     from orderService in tmp.DefaultIfEmpty()
                     where new[] { 9, 10, 11 }.Contains(orderShare.PayeeType)
                     &&
                     (
                         new[] { 1, 2, 8, 9, 10, 12, 13, 14 }.Contains(order.State)
                         ||
                         (
                             order.State == 3 && new[] { 3, 5, 10, 12, 13 }.Contains(orderService.State)
                         )
                     )
                     &&
                     orderShare.PayeeId == search.UserId
                     &&
                     order.AppId == search.AppId
                     select orderShare.Commission).ToList().Sum();

                result.DistributorProfitsInfoList.First().CommissionAmount =
                    (from orderShare in OrderShare.ObjectSet()
                     join order in CommodityOrder.ObjectSet() on orderShare.OrderId equals order.Id
                     join os in CommodityOrderService.ObjectSet() on orderShare.OrderId equals os.Id into tmp
                     from orderService in tmp.DefaultIfEmpty()
                     where new[] { 9, 10, 11 }.Contains(orderShare.PayeeType) && order.State == 3
                     &&
                     (
                         orderService.Id == null
                         ||
                         orderService.State == 15
                     )
                     &&
                     orderShare.PayeeId == search.UserId
                     &&
                     order.AppId == search.AppId
                     select orderShare.Commission).ToList().Sum();
            }
            else if (search.SearchType == 1)
            {
                var getResult = DSSBP.Instance.GetDistributorList(search);
                if (getResult != null && getResult.ResultCode == 200 && getResult.Data != null)
                {
                    result = getResult.Data;
                }
            }
            else if (search.SearchType == 2)
            {
                var getResult = DSSBP.Instance.GetDistributorList(search);
                if (getResult != null && getResult.ResultCode == 200 && getResult.Data != null)
                {
                    result = getResult.Data;
                }
            }

            return(result);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 获取导出的电子发票的详细数据
        /// </summary>
        public List <ElectronicInvoiceDTO> GetInvoiceExportDetailExt(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search)
        {
            var query = from t1 in Invoice.ObjectSet()
                        join t2 in CommodityOrder.ObjectSet()
                        on t1.CommodityOrderId equals t2.Id
                        join dataS in CommodityOrderService.ObjectSet()
                        on t1.CommodityOrderId equals dataS.Id
                        into tempS
                        from tbS in tempS.DefaultIfEmpty()
                        where t2.AppId == search.AppId && t2.State > 0 && t1.State > 0 && t2.State != 16 && t2.State != 17 && t2.IsDel != 2 && t2.IsDel != 3
                        select new
            {
                t1,
                t2.Id,
                CommodityOrder = new InvoiceCommodityOrderInfo()
                {
                    State           = t2.State,
                    Code            = t2.Code,
                    PaymentTime     = t2.PaymentTime.Value,
                    ReceiptUserName = t2.ReceiptUserName,
                    ReceiptPhone    = t2.ReceiptPhone,
                    ReceiptAddress  = t2.ReceiptAddress,
                    RealPrice       = t2.RealPrice.Value,
                    Payment         = t2.Payment,
                    GoldPrice       = t2.GoldPrice,
                    GoldCoupon      = t2.GoldCoupon,
                    Province        = t2.Province,
                    City            = t2.City,
                    District        = t2.District,
                    StateAfterSales = tbS.State == null ? -1 : tbS.State,
                    SelfTakeFlag    = t2.SelfTakeFlag
                },
                model = new ElectronicInvoiceDTO()
                {
                    AppId          = t2.AppId,
                    Code           = t2.Code,
                    ReceiptEmail   = t1.ReceiptEmail,
                    ReceiptPhone   = t1.ReceiptPhone,
                    InvoiceTitle   = t1.InvoiceTitle,
                    BuyerCode      = t1.Code,
                    ReceiptAddress = (t2.Province + t2.City + t2.District + t2.ReceiptAddress),
                    RealPrice      = t2.RealPrice,
                    Freight        = t2.Freight
                }
            };

            if (search.Category > -1)
            {
                query = query.Where(p => p.t1.Category == search.Category);
            }
            if (search.State > -1)
            {
                query = query.Where(p => p.t1.State == search.State);
            }
            if (!string.IsNullOrWhiteSpace(search.CommodityOrderState) && search.CommodityOrderState != "null" && search.CommodityOrderState != "-1")
            {
                if (search.CommodityOrderState.Contains(","))
                {
                    if (search.CommodityOrderState == "8,9,10,12,14")   //退款中
                    {
                        List <int> beforeState = new List <int>()
                        {
                            8, 9, 10, 12, 14
                        };
                        List <int> afterState = new List <int>()
                        {
                            5, 10, 12
                        };
                        query = query.Where(p => beforeState.Contains(p.CommodityOrder.State) || afterState.Contains(p.CommodityOrder.StateAfterSales));
                    }
                    else
                    {
                        int[] arrystate = Array.ConvertAll <string, int>(search.CommodityOrderState.Split(','), s => int.Parse(s));

                        //等发货且自提
                        if (arrystate.Contains(1) && arrystate.Contains(99))
                        {
                            int[] exceptTmp    = new int[] { 99 };
                            int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                            query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State));
                        }
                        else if (arrystate.Contains(1))
                        {
                            if (arrystate.Contains(11))
                            {
                                int[] exceptTmp    = new int[] { 1, 11 };
                                int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                                query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 0));
                            }
                            else
                            {
                                int[] exceptTmp    = new int[] { 1 };
                                int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                                query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || (a.CommodityOrder.State == 1 && a.CommodityOrder.SelfTakeFlag == 0));
                            }
                        }
                        else if (arrystate.Contains(99))
                        {
                            int[] exceptTmp    = new int[] { 99 };
                            int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                            query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 1));
                        }
                        else
                        {
                            query = query.Where(a => arrystate.Contains(a.CommodityOrder.State));
                        }
                    }
                }
                else
                {
                    if (search.CommodityOrderState != "-1" && search.CommodityOrderState != null && search.CommodityOrderState != "")
                    {
                        int _state = int.Parse(search.CommodityOrderState);
                        //待发货的
                        if (_state == 1)
                        {
                            query = query.Where(n => n.CommodityOrder.State == _state && n.CommodityOrder.SelfTakeFlag == 0);
                        }
                        //待自提的
                        else if (_state == 99)
                        {
                            query = query.Where(n => (n.CommodityOrder.State == 1 || n.CommodityOrder.State == 11) && n.CommodityOrder.SelfTakeFlag == 1);
                        }
                        else if (search.CommodityOrderState == "3") //交易成功
                        {
                            query = query.Where(n => n.CommodityOrder.State == 3 && (n.CommodityOrder.StateAfterSales == 3 || n.CommodityOrder.StateAfterSales == 15 || n.CommodityOrder.StateAfterSales == -1));
                        }
                        else if (search.CommodityOrderState == "7")
                        {
                            query = query.Where(n => n.CommodityOrder.State == 7 || n.CommodityOrder.StateAfterSales == 7);
                        }
                        else
                        {
                            query = query.Where(n => n.CommodityOrder.State == _state);
                        }
                    }
                }
            }
            if (!string.IsNullOrWhiteSpace(search.SeacrhContent))
            {
                query = query.Where(p => (p.CommodityOrder.Code.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent) || p.t1.InvoiceTitle.Contains(search.SeacrhContent)));
            }
            List <ElectronicInvoiceDTO> objlist = new List <ElectronicInvoiceDTO>();

            foreach (var item in query)
            {
                var serarch = from t1 in OrderItem.ObjectSet()
                              join t2 in Commodity.ObjectSet()
                              on t1.CommodityId equals t2.Id
                              where (t1.CommodityOrderId == item.Id)
                              select new {
                    t1.RealPrice,
                    t1.Name,
                    t1.Number,
                    t2.TaxClassCode,
                    t2.No_Code,
                    t2.CostPrice,
                    t2.TaxRate,
                    t2.InputRax
                };

                ElectronicInvoiceDTO model = new ElectronicInvoiceDTO();
                if (!string.IsNullOrEmpty(item.model.Code))
                {
                    model.Code = "jh" + item.model.Code;
                }
                else
                {
                    model.Code = null;
                }
                model.AppId               = item.model.AppId;
                model.ReceiptEmail        = item.model.ReceiptEmail;
                model.ReceiptPhone        = item.model.ReceiptPhone;
                model.InvoiceTitle        = item.model.InvoiceTitle;
                model.BuyerCode           = item.model.BuyerCode;
                model.ReceiptAddress      = item.model.ReceiptAddress;
                model.BuyerPhone          = item.model.BuyerPhone;
                model.BuyerBankNumber     = item.model.BuyerBankNumber;
                model.Specifications      = item.model.Specifications;
                model.ProjectUnit         = item.model.ProjectUnit;
                model.TallageMark         = 1;    //含税标志固定为1
                model.RealPrice           = item.model.RealPrice;
                model.TaxRate             = 0.16; //税率固定为0.17
                model.Remark              = item.model.Remark;
                model.InvoicelineProperty = 0;    //发票行性质国定为0
                model.PolicyMark          = 0;    //优惠政策国定为0
                model.ZeroTaxRateMark     = item.model.ZeroTaxRateMark;
                model.SpecialParticular   = item.model.SpecialParticular;
                model.Freight             = item.model.Freight;
                if (serarch.Count() > 0)
                {
                    List <SmallInvoiceDTO> objInvoice = new List <SmallInvoiceDTO>();
                    foreach (var _item in serarch.ToList())
                    {
                        SmallInvoiceDTO entity = new SmallInvoiceDTO();
                        entity.Price        = _item.RealPrice;
                        entity.Name         = _item.Name;
                        entity.Number       = _item.Number;
                        entity.TaxClassCode = _item.TaxClassCode;
                        //如果商品编号不为空截取0前面的数据
                        if (!string.IsNullOrWhiteSpace(_item.TaxClassCode))
                        {
                            entity.No_Code = _item.TaxClassCode.TrimEnd(new char[] { '0' });
                        }
                        if (string.IsNullOrWhiteSpace(_item.CostPrice.ToString()))
                        {
                            entity.CostPrice = 0;
                            entity.TaxRate   = _item.TaxRate;
                        }
                        else
                        {
                            entity.CostPrice = _item.CostPrice;
                        }
                        objInvoice.Add(entity);
                    }
                    model.SmallInvoice = objInvoice;
                }
                objlist.Add(model);
            }
            return(objlist);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 查询发票信息
        /// </summary>
        /// <param name="search">查询类</param>
        /// <returns>结果</returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceResultDTO> GetInvoiceInfoListExt(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search)
        {
            if (search == null || search.AppId == Guid.Empty || search.PageIndex < 0 || search.PageSize < 0)
            {
                return(new ResultDTO <InvoiceResultDTO>()
                {
                    ResultCode = 1, Message = "参数不能为空"
                });
            }
            var result = new ResultDTO <InvoiceResultDTO>();

            result.Data = new InvoiceResultDTO();

            var query = from invoice in Invoice.ObjectSet()
                        join commodityOrder in CommodityOrder.ObjectSet()
                        on invoice.CommodityOrderId equals commodityOrder.Id
                        join dataS in CommodityOrderService.ObjectSet()
                        on invoice.CommodityOrderId equals dataS.Id
                        into tempS
                        from tbS in tempS.DefaultIfEmpty()
                        where commodityOrder.AppId == search.AppId && commodityOrder.State > 0 && invoice.State > 0 && commodityOrder.State != 16 && commodityOrder.State != 17 && commodityOrder.IsDel != 2 && commodityOrder.IsDel != 3
                        select new
            {
                Invoice        = invoice,
                CommodityOrder = new InvoiceCommodityOrderInfo()
                {
                    State           = commodityOrder.State,
                    Code            = commodityOrder.Code,
                    PaymentTime     = commodityOrder.PaymentTime.Value,
                    ReceiptUserName = commodityOrder.ReceiptUserName,
                    ReceiptPhone    = commodityOrder.ReceiptPhone,
                    ReceiptAddress  = commodityOrder.ReceiptAddress,
                    RealPrice       = commodityOrder.RealPrice.Value,
                    Payment         = commodityOrder.Payment,
                    GoldPrice       = commodityOrder.GoldPrice,
                    GoldCoupon      = commodityOrder.GoldCoupon,
                    Province        = commodityOrder.Province,
                    City            = commodityOrder.City,
                    District        = commodityOrder.District,
                    StateAfterSales = tbS.State == null ? -1 : tbS.State,
                    SelfTakeFlag    = commodityOrder.SelfTakeFlag
                }
            };

            if (search.Category > -1)
            {
                query = query.Where(t => t.Invoice.Category == search.Category);
            }
            if (search.State > -1)
            {
                query = query.Where(t => t.Invoice.State == search.State);
            }
            if (!string.IsNullOrWhiteSpace(search.CommodityOrderState) && search.CommodityOrderState != "null" && search.CommodityOrderState != "-1")
            {
                if (search.CommodityOrderState.Contains(","))
                {
                    if (search.CommodityOrderState == "8,9,10,12,14")   //退款中
                    {
                        List <int> beforeState = new List <int>()
                        {
                            8, 9, 10, 12, 14
                        };
                        List <int> afterState = new List <int>()
                        {
                            5, 10, 12
                        };
                        query = query.Where(n => beforeState.Contains(n.CommodityOrder.State) || afterState.Contains(n.CommodityOrder.StateAfterSales));
                    }
                    else
                    {
                        int[] arrystate = Array.ConvertAll <string, int>(search.CommodityOrderState.Split(','), s => int.Parse(s));

                        //等发货且自提
                        if (arrystate.Contains(1) && arrystate.Contains(99))
                        {
                            int[] exceptTmp    = new int[] { 99 };
                            int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                            query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State));
                        }
                        else if (arrystate.Contains(1))
                        {
                            if (arrystate.Contains(11))
                            {
                                int[] exceptTmp    = new int[] { 1, 11 };
                                int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                                query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 0));
                            }
                            else
                            {
                                int[] exceptTmp    = new int[] { 1 };
                                int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                                query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || (a.CommodityOrder.State == 1 && a.CommodityOrder.SelfTakeFlag == 0));
                            }
                        }
                        else if (arrystate.Contains(99))
                        {
                            int[] exceptTmp    = new int[] { 99 };
                            int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray();
                            query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 1));
                        }
                        else
                        {
                            query = query.Where(a => arrystate.Contains(a.CommodityOrder.State));
                        }
                    }
                }
                else
                {
                    if (search.CommodityOrderState != "-1" && search.CommodityOrderState != null && search.CommodityOrderState != "")
                    {
                        int _state = int.Parse(search.CommodityOrderState);
                        //待发货的
                        if (_state == 1)
                        {
                            query = query.Where(n => n.CommodityOrder.State == _state && n.CommodityOrder.SelfTakeFlag == 0);
                        }
                        //待自提的
                        else if (_state == 99)
                        {
                            query = query.Where(n => (n.CommodityOrder.State == 1 || n.CommodityOrder.State == 11) && n.CommodityOrder.SelfTakeFlag == 1);
                        }
                        else if (search.CommodityOrderState == "3") //交易成功
                        {
                            query = query.Where(n => n.CommodityOrder.State == 3 && (n.CommodityOrder.StateAfterSales == 3 || n.CommodityOrder.StateAfterSales == 15 || n.CommodityOrder.StateAfterSales == -1));
                        }
                        else if (search.CommodityOrderState == "7")
                        {
                            query = query.Where(n => n.CommodityOrder.State == 7 || n.CommodityOrder.StateAfterSales == 7);
                        }
                        else
                        {
                            query = query.Where(n => n.CommodityOrder.State == _state);
                        }
                        //countquery = countquery.Where(n => n.State == _state);
                    }
                }
            }
            if (!string.IsNullOrWhiteSpace(search.SeacrhContent))
            {
                //if (System.Text.RegularExpressions.Regex.IsMatch(search.SeacrhContent, "^[0-9]+$"))
                //{
                //    if (search.SeacrhContent.Length>11)
                //    {
                //        query = query.Where(p => p.CommodityOrder.Code.Contains(search.SeacrhContent));
                //    }
                //    else
                //    {
                //        query = query.Where(p => p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent));
                //    }
                //}
                //else
                //{
                //    query = query.Where(p => p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent));
                //}
                query = query.Where(p => (p.CommodityOrder.Code.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent) || p.Invoice.InvoiceTitle.Contains(search.SeacrhContent)));
            }
            result.Data.Count = query.Count();
            var searchResult = query.OrderByDescending(n => n.CommodityOrder.PaymentTime).Skip((search.PageIndex - 1) * search.PageSize).Take(search.PageSize).ToList();

            //地址附值
            if (searchResult.Any())
            {
                foreach (var item in searchResult)
                {
                    item.CommodityOrder.Address = string.Format("{0}{1}{2}{3}", item.CommodityOrder.Province, item.CommodityOrder.City, item.CommodityOrder.District, item.CommodityOrder.ReceiptAddress);
                }
            }
            //由于优惠券与积分存在另一表,所以单独取
            if (searchResult.Any())
            {
                var orderIds = searchResult.Select(t => t.Invoice.CommodityOrderId).ToList();
                //优惠券与花费积分抵现金额 CouponValue SpendScoreCost
                var orderPayDetail = OrderPayDetail.ObjectSet().Where(t => orderIds.Contains(t.OrderId)).ToList();
                if (orderPayDetail.Count > 0)
                {
                    foreach (var item in searchResult)
                    {
                        var couponValue = orderPayDetail.Where(t => t.OrderId == item.Invoice.CommodityOrderId && t.ObjectType == 1).Select(t => t.Amount).FirstOrDefault();
                        item.CommodityOrder.CouponValue = couponValue;
                        var spendScoreMoney = orderPayDetail.Where(t => t.OrderId == item.Invoice.CommodityOrderId && t.ObjectType == 2).Select(t => t.Amount).FirstOrDefault();
                        item.CommodityOrder.SpendScoreMoney = spendScoreMoney;
                    }
                }
            }
            result.Data.InvoiceInfoList = new List <InvoiceInfoDTO>();
            foreach (var item in searchResult)
            {
                InvoiceInfoDTO model = new InvoiceInfoDTO();
                model.Id = item.Invoice.Id;
                model.CommodityOrderId = item.Invoice.CommodityOrderId;
                model.InvoiceTitle     = item.Invoice.InvoiceTitle;
                model.InvoiceContent   = item.Invoice.InvoiceContent;
                model.InvoiceType      = item.Invoice.InvoiceType;
                model.SubTime          = item.Invoice.SubTime;
                model.ModifiedOn       = item.Invoice.ModifiedOn;
                model.ReceiptPhone     = item.Invoice.ReceiptPhone;
                model.ReceiptEmail     = item.Invoice.ReceiptEmail;
                model.State            = item.Invoice.State;
                model.Remark           = item.Invoice.Remark;
                model.Category         = item.Invoice.Category;
                model.SubId            = item.Invoice.SubId;
                model.Code             = item.Invoice.Code;

                InvoiceCommodityOrderInfo orderInfo = new InvoiceCommodityOrderInfo();
                orderInfo.Code            = item.CommodityOrder.Code;
                orderInfo.Payment         = item.CommodityOrder.Payment;
                orderInfo.CouponValue     = item.CommodityOrder.CouponValue;
                orderInfo.GoldPrice       = item.CommodityOrder.GoldPrice;
                orderInfo.GoldCoupon      = item.CommodityOrder.GoldCoupon;
                orderInfo.PaymentTime     = item.CommodityOrder.PaymentTime;
                orderInfo.RealPrice       = item.CommodityOrder.RealPrice;
                orderInfo.ReceiptAddress  = item.CommodityOrder.ReceiptAddress;
                orderInfo.ReceiptPhone    = item.CommodityOrder.ReceiptPhone;
                orderInfo.ReceiptUserName = item.CommodityOrder.ReceiptUserName;
                orderInfo.Province        = item.CommodityOrder.Province;
                orderInfo.City            = item.CommodityOrder.City;
                orderInfo.District        = item.CommodityOrder.District;
                orderInfo.Address         = item.CommodityOrder.Address;
                orderInfo.State           = item.CommodityOrder.State;
                orderInfo.StateAfterSales = item.CommodityOrder.StateAfterSales;
                orderInfo.SelfTakeFlag    = item.CommodityOrder.SelfTakeFlag;

                model.commodityOrderInfo = orderInfo;
                result.Data.InvoiceInfoList.Add(model);
            }
            result.ResultCode = 0;
            result.Message    = "Success";
            return(result);
        }