Exemple #1
0
        public static DataTable ImportOrder()
        {
            var startDate  = new DateTime(2018, 4, 10);
            var endDate    = new DateTime(2018, 5, 10);
            var orderItems = OrderItem.ObjectSet().Where(_ => _.SubTime > startDate && _.SubTime < endDate && _.YJCouponPrice > 0).ToList();
            var orderIds   = orderItems.Select(_ => _.CommodityOrderId).ToList();

            var       orders = CommodityOrder.ObjectSet().Where(_ => orderIds.Contains(_.Id) && _.State != 5).OrderBy(_ => _.SubTime).ToList();
            DataTable dt     = new DataTable();

            dt.Columns.Add("APP名称", typeof(string));
            dt.Columns.Add("订单编号", typeof(string));
            dt.Columns.Add("订单金额", typeof(decimal));
            dt.Columns.Add("支付金额", typeof(decimal));
            dt.Columns.Add("运费金额  ", typeof(decimal));
            dt.Columns.Add("抵用券金额  ", typeof(decimal));
            foreach (var d in orders)
            {
                var yjcouponPrice = orderItems.Where(_ => _.CommodityOrderId == d.Id).Sum(_ => _.YJCouponPrice);

                var payPrice = d.Price - yjcouponPrice;

                if (d.RealPrice > (payPrice < 0 ? 0 : payPrice) + d.Freight)
                {
                    dt.Rows.Add(d.AppName, d.Code, d.Price, d.RealPrice, d.Freight, yjcouponPrice);
                }
            }
            return(dt);
        }
Exemple #2
0
        /// <summary>
        /// 获取极光数据
        /// </summary>
        /// <param name="orderExpressRoute"></param>
        /// <returns></returns>
        private string GetWuliuJson(string ExpOrderNo)
        {
            string        sappids    = CustomConfig.SappIds;
            List <string> Sappidlist = null;

            if (!string.IsNullOrEmpty(sappids))
            {
                Sappidlist = sappids.Split(new char[] { ',' }).ToList();
            }
            string appkey         = CustomConfig.zshappkey;
            string json           = null;
            string url            = null;
            Guid   AppId          = Guid.Empty;
            var    commodityOrder = CommodityOrder.ObjectSet().FirstOrDefault(p => p.ExpOrderNo == ExpOrderNo);

            if (commodityOrder != null)
            {
                AppId = commodityOrder.AppId;
            }

            if (Sappidlist.Contains(AppId.ToString().ToUpper()))
            {
                var orderExpressRoute = OrderExpressRoute.ObjectSet().FirstOrDefault(p => p.ExpOrderNo == ExpOrderNo);
                //苏宁易购
                url = string.Format("http://api.jisuapi.com/express/query?appkey={0}&type={1}&number={2}", appkey, orderExpressRoute.ShipperCode, ExpOrderNo);
            }
            else
            {
                //中石化
                url = string.Format("http://api.jisuapi.com/express/query?appkey={0}&type={1}&number={2}", appkey, "auto", ExpOrderNo);
            }
            json = WebRequestHelper.SendGetRequest(url);
            return(json.ToString());
        }
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <List <KeyValuePair <Guid, string> > > GetOrderInfoByCouponIdExt(Guid couponId)
        {
            var returnDto = new ResultDTO <List <KeyValuePair <Guid, string> > >()
            {
                isSuccess = true,
                Data      = new List <KeyValuePair <Guid, string> >()
            };

            try
            {
                var listOrder = OrderPayDetail.ObjectSet().Where(o => o.ObjectId == couponId && o.ObjectType == 1).Select(o => o.OrderId); //获取OrderId
                var orderInfo = CommodityOrder.ObjectSet().Where(o => listOrder.Contains(o.Id)).Select(o => new { o.Id, o.Code });
                foreach (var item in orderInfo)
                {
                    returnDto.Data.Add(new KeyValuePair <Guid, string>(item.Id, item.Code));
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("CouponRefundBP.GetOrderInfoByCouponIdExt 异常", ex);
                returnDto.isSuccess = false;
            }

            return(returnDto);
        }
        /// <summary>
        /// 获取应用统计信息
        /// </summary>
        /// <param name="appId">AppId</param>
        /// <returns>结果</returns>
        public AppStatisticsDTO GetAppStatisticsExt(System.Guid appId)
        {
            AppStatisticsDTO model = new AppStatisticsDTO();

            try
            {
                var order = CommodityOrder.ObjectSet().Where(p => p.EsAppId == appId && !new[] { 0, 4, 5, 6, 11, 17, 19, 21 }.Contains(p.State)).Select(p => new
                {
                    RealPrice = p.RealPrice ?? 0,
                }).ToList();
                var orderCount = order.Count();
                var totalMoney = (int)order.Sum(p => p.RealPrice) * 100;
                var query      = new ZPH.Deploy.CustomDTO.QueryPavilionAppParam
                {
                    Id        = appId,
                    pageIndex = 1,
                    pageSize  = int.MaxValue
                };
                var appIdList      = ZPHSV.Instance.GetPavilionApp(query).Data.Select(t => t.appId).ToList();
                var commodityCount = Commodity.ObjectSet().Count(p => appIdList.Contains(p.AppId));

                model.msg_salesvolume     = totalMoney.ToString();
                model.msg_ordernumber     = orderCount.ToString();
                model.msg_productquantity = commodityCount.ToString();
            }
            catch (Exception ex)
            {
                LogHelper.Error("获取应用统计信息AppExtensionBP.GetAppStatisticsExt异常," + appId, ex);
                model = null;
            }
            return(model);
        }
Exemple #5
0
        /// <summary>
        /// 严选物流绑单回调补偿机制
        /// </summary>
        public static void AutoDeliverOrder()
        {
            var yesterday = DateTime.Now.AddDays(-5);
            var ComOrders = (from co in CommodityOrder.ObjectSet()
                             join yo in YXOrder.ObjectSet() on co.Id equals yo.OrderId
                             where CustomConfig.YxAppIdList.Contains(co.AppId) && co.State == 1 && co.PaymentTime >= yesterday
                             select co.Id).ToList();

            LogHelper.Info("YXJob.AutoDeliverOrder 严选物流绑单回调补偿机制订单Id:" + string.Join(",", ComOrders.Select(c => c.ToString()).ToArray()));
            ComOrders.ForEach(p =>
            {
                string jsonstr = string.Empty;
                var orderOut   = YXSV.GetPaidOrder(p.ToString(), ref jsonstr);
                if (orderOut == null || orderOut.orderPackages == null)
                {
                    return;
                }
                var orderPackages = orderOut.orderPackages.Select(o => new JobOrderPackage
                {
                    orderId            = p.ToString(),
                    packageId          = long.Parse(o.packageId),
                    expressDetailInfos = o.expressDetailInfos,
                    expCreateTime      = ConvertDataTimeToLong(Convert.ToDateTime(o.expCreateTime))
                }).ToList();
                orderPackages.ForEach(op =>
                {
                    var package = SerializationHelper.JsonSerialize(op);
                    YXOrderHelper.DeliverOrder(new YXSign(), package, true);
                });
            });
        }
Exemple #6
0
        /// <summary>
        /// 待自提订单数量
        /// </summary>
        /// <param name="userId">自提点管理员</param>
        /// <returns>待自提订单数量</returns>
        public ResultDTO <int> GetSelfTakeManagerExt(Guid userId)
        {
            try
            {
                // 返回 是否管理员,待自提订单数量
                if (userId == Guid.Empty)
                {
                    return new ResultDTO <int> {
                               Data = 0, ResultCode = 1, Message = "管理员用户ID非法."
                    }
                }
                ;
                var managerInfo = (from p in AppStsManager.ObjectSet()
                                   join r in AppSelfTakeStation.ObjectSet() on p.SelfTakeStationId equals r.Id
                                   where p.UserId == userId && p.IsDel == false && r.IsDel == false
                                   select p.SelfTakeStationId
                                   ).Distinct();
                if (!managerInfo.Any())
                {
                    LogHelper.Info(string.Format("该用户不是自提点管理员或没有与自提点绑定,userId:{0}", userId));

                    return(new ResultDTO <int> {
                        Data = 0, ResultCode = -1, Message = "抱歉,您暂时没有权限查看此信息"
                    });
                }

                IQueryable <CommodityOrder> query = CommodityOrder.ObjectSet().Where(n => (n.State == 1 || n.State == 11) && n.IsDel != 1 && n.IsDel != 3);

                var commodityorderListCount = (from r in managerInfo
                                               join t in AppOrderPickUp.ObjectSet() on r equals t.SelfTakeStationId
                                               join p in query on t.Id equals p.Id
                                               select t.Id).Count();

                if (commodityorderListCount != 0)
                {
                    return(new ResultDTO <int> {
                        Data = commodityorderListCount, ResultCode = 0, Message = "sucess"
                    });
                }
                else
                {
                    return new ResultDTO <int> {
                               Data = 0, ResultCode = -2, Message = "订单数量为0"
                    }
                };
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("BTPUserSV.GetSelfTakeManagerExt获取待自提订单数量异常。userId:{0},ex:{1}", userId, ex));
                return(new ResultDTO <int> {
                    Data = 0, ResultCode = -3, Message = "Exception"
                });
            }
        }
Exemple #7
0
        /// <summary>
        /// 获取发票历史数据
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="userId"></param>
        /// <param name="category">发票类型 1:增值税专用发票,2:电子发票,4:增值税专用发票</param>
        /// <returns></returns>
        public Deploy.CustomDTO.ResultDTO <List <InvoiceInfoDTO> > GetInvoiceInfoListExt(Guid appId, Guid userId, int category)
        {
            LogHelper.Debug("开始进入获取发票历史数据接口GetInvoiceInfoList:appId:" + appId + ",userId:" + userId + ",category:" + category);
            if (appId == null || userId == null || userId == Guid.Empty || appId == Guid.Empty)
            {
                return new ResultDTO <List <InvoiceInfoDTO> >()
                       {
                           isSuccess = false, Message = "参数为空"
                       }
            }
            ;
            //判断appId是否是馆 是的话获取所有的入驻app集合 不是的话只获取当前app下的发票集合
            var appids = TPS.ZPHSV.Instance.GetAppIdlist(new List <Guid>()
            {
                appId
            }).Select(t => t.AppId).ToList();

            appids.Add(appId);

            List <InvoiceInfoDTO> resultDto = new List <InvoiceInfoDTO>();

            var temp = (from c in CommodityOrder.ObjectSet()
                        join i in Invoice.ObjectSet() on c.Id equals i.CommodityOrderId
                        where appids.Contains(c.AppId) && i.SubId == userId && i.Category == category && i.InvoiceType == 2
                        orderby i.SubTime descending
                        select i).Distinct();

            LogHelper.Debug("开始进入获取发票历史数据接口GetInvoiceInfoList:temp:" + JsonHelper.JsSerializer(temp));

            foreach (var invoice in temp)
            {
                InvoiceInfoDTO rInfoDto = new InvoiceInfoDTO
                {
                    Id           = invoice.Id,
                    InvoiceTitle = invoice.InvoiceTitle,
                    Code         = invoice.Code,
                    SubTime      = invoice.SubTime
                };

                var tem = resultDto.Where(t => t.InvoiceTitle == invoice.InvoiceTitle && t.Code == invoice.Code);
                if (!tem.Any())
                {
                    resultDto.Add(rInfoDto);
                }
            }

            return(new ResultDTO <List <InvoiceInfoDTO> >
            {
                isSuccess = true,
                Data = resultDto.OrderByDescending(t => t.SubTime).ToList()
            });
        }
    }
Exemple #8
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);
        }
Exemple #9
0
        /// <summary>
        /// 保存打印发货单
        /// </summary>
        /// <param name="orders"></param>
        public ResultDTO SavePrintInvoiceOrdersExt(UpdatePrintDTO orders)
        {
            try
            {
                if (orders == null || orders.Orders == null || orders.Orders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "参数错误,参数不能为空!"
                           }
                }
                ;

                var tempOrderIds = orders.Orders.Select(r => r.OrderId).ToList();
                var newOrders    = (from n in CommodityOrder.ObjectSet()
                                    join o in tempOrderIds on n.Id equals o
                                    select n).ToList();


                if (newOrders == null || newOrders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "数据错误"
                           }
                }
                ;

                //记录打印日志,延迟提交库
                RecordPrintLog(newOrders, orders);

                if (ContextFactory.CurrentThreadContext.SaveChanges() > 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 0, Message = "保存成功"
                           }
                }
                ;
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("保存打印发货单。SavePrintInvoiceOrdersExt:{0}", JsonHelper.JsonSerializer(orders)), ex);
            }
            return(new ResultDTO()
            {
                ResultCode = 1, Message = "保存失败"
            });
        }
Exemple #10
0
        /// <summary>
        /// 妥投后自动确认收货
        /// </summary>
        /// <param name="orderId"></param>
        private void ConfirmOrder(Guid orderId)
        {
            var order = CommodityOrder.ObjectSet().FirstOrDefault(p => p.Id == orderId);

            if (order == null)
            {
                LogHelper.Error("进销存-妥投后自动确认收货:未找到订单,入参:" + orderId);
                return;
            }
            var result = new CommodityOrderSV().UpdateCommodityOrderExt(3, orderId, order.SubId, order.AppId, order.Payment, string.Empty, string.Empty);

            if (result.ResultCode != 0)
            {
                LogHelper.Error("进销存-妥投后自动确认收货失败:" + result.Message + ",入参:" + orderId);
            }
        }
Exemple #11
0
        /// <summary>
        /// 确认成团(必传参数DiyGoupId)
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO ConfirmDiyGroupExt(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupSearchDTO search)
        {
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                var            query          = (from diyGroup in DiyGroup.ObjectSet()
                                                 join diyGroupOrder in DiyGroupOrder.ObjectSet() on diyGroup.Id equals diyGroupOrder.DiyGroupId
                                                 join order in CommodityOrder.ObjectSet() on diyGroupOrder.OrderId equals order.Id
                                                 where diyGroup.Id == search.DiyGoupId && diyGroupOrder.State == 1
                                                 select order
                                                 ).ToList();
                if (query.Count > 0)
                {
                    foreach (var diyorder in query)
                    {
                        diyorder.State       = 1;
                        diyorder.ModifiedOn  = DateTime.Now;
                        diyorder.EntityState = System.Data.EntityState.Modified;
                        Jinher.AMP.BTP.BE.BELogic.AddMessage addmassage = new Jinher.AMP.BTP.BE.BELogic.AddMessage();
                        addmassage.AddMessages(diyorder.Id.ToString(), diyorder.UserId.ToString(), diyorder.AppId, diyorder.Code, diyorder.State, "", "order");

                        // 触发订单成功事件
                        OrderEventHelper.OnOrderPaySuccess(diyorder);
                    }
                }
                var diyquery = DiyGroup.ObjectSet().FirstOrDefault(n => n.Id == search.DiyGoupId && n.AppId == search.AppId);
                if (diyquery != null)
                {
                    diyquery.State       = 3;
                    diyquery.ModifiedOn  = DateTime.Now;
                    diyquery.EntityState = EntityState.Modified;
                }
                contextSession.SaveChange();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("异常。search:{0}", search), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
            return(new ResultDTO {
                ResultCode = 0, Message = "Success"
            });
        }
Exemple #12
0
        /// <summary>
        /// 获取导出的Excel数据
        /// </summary>
        public List <InvoiceExportDTO> GetInvoiceExportExt(InvoiceExportDTO search)
        {
            var query = from t1 in Invoice.ObjectSet()
                        join t2 in CommodityOrder.ObjectSet()
                        on t1.CommodityOrderId equals t2.Id
                        join t3 in OrderItem.ObjectSet()
                        on t1.CommodityOrderId equals t3.CommodityOrderId
                        select new
            {
                t2.AppId, t1.State, t1.InvoiceType, t1.SubTime, t1.InvoiceTitle, t3.Name, t2.RealPrice, t2.Code
            };

            if (search.AppId != Guid.Empty)
            {
                query = query.Where(p => p.AppId == search.AppId);
            }
            if (search.StartTime.ToString() != "0001/1/1 0:00:00" && search.EndTime.ToString() != "0001/1/1 0:00:00")
            {
                query = query.Where(p => (p.SubTime >= search.StartTime && p.SubTime <= search.EndTime));
            }
            if (search.InvoiceState != 0)
            {
                query = query.Where(p => p.State == search.InvoiceState);
            }
            if (search.InvoiceType != 0)
            {
                query = query.Where(p => p.InvoiceType == search.InvoiceType);
            }
            List <InvoiceExportDTO> objlist = new List <InvoiceExportDTO>();

            foreach (var item in query.ToList())
            {
                InvoiceExportDTO model = new InvoiceExportDTO();
                model.Year         = int.Parse(item.SubTime.Year.ToString());
                model.Month        = int.Parse(item.SubTime.Month.ToString());
                model.SubTime      = DateTime.Parse(item.SubTime.ToString("yyyy-MM-dd"));
                model.InvoiceTitle = item.InvoiceTitle;
                model.Content      = item.Name;
                model.RealPrice    = item.RealPrice;
                model.Code         = item.Code;
                objlist.Add(model);
            }
            return(objlist);
        }
Exemple #13
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();
        }
Exemple #14
0
        /// <summary>
        /// 获得方正物流包裹信息
        /// </summary>
        public static List <ThirdOrderItemExpress> FangZheng_Logistics_Package(Guid OrderId)
        {
            var ReturnList = new List <ThirdOrderItemExpress>();

            FangZhengOrder.ObjectSet().Where(w => w.OrderId == OrderId)
            .ToList().ForEach(Item =>
            {
                var MyOrder = CommodityOrder.ObjectSet()
                              .Where(w => w.Id == Item.OrderId)
                              .FirstOrDefault();
                if (MyOrder != null)
                {
                    ReturnList.Add(new ThirdOrderItemExpress
                    {
                        OrderItemId = Item.OrderItemId,
                        ExpressNo   = MyOrder.ExpOrderNo
                    });
                }
            });
            return(ReturnList);
        }
        ///// <summary>
        /////  获取急速数据物流跟踪信息
        ///// </summary>
        public void GetOrderExpressForJsJobExt()
        {
            try
            {
                LogHelper.Info("GetOrderExpressForJsJobExt********开始执行");
                //为了避免接口重复调用我只同步30天内的数据
                DateTime startTime      = DateTime.Now.AddDays(-30);
                DateTime endTime        = DateTime.Now.AddDays(1);
                Guid     EsAppId        = Guid.Parse("8B4D3317-6562-4D51-BEF1-0C05694AC3A6");
                var      commodityOrder = CommodityOrder.ObjectSet().Where(p => p.EsAppId == EsAppId && (p.State == 3) && p.SubTime > startTime && p.SubTime < endTime && !string.IsNullOrEmpty(p.ExpOrderNo)).OrderByDescending(p => p.ModifiedOn).Select(p => new { p.ExpOrderNo, p.Id, p.AppId, p.ShipExpCo }).ToList();
                //var commodityOrder = CommodityOrder.ObjectSet().Where(p => p.EsAppId == EsAppId && (p.State != 0 || p.State != 1) && p.SubTime > startTime && p.SubTime < endTime && !string.IsNullOrEmpty(p.ExpOrderNo)).Select(p => new { p.ExpOrderNo, p.Id, p.AppId }).ToList();
                List <string> expOrdernolist = new List <string>();
                commodityOrder.ForEach(p =>
                {
                    expOrdernolist.Add(p.ExpOrderNo);
                });
                var orderexpressroutelist = OrderExpressRoute.ObjectSet().Where(p => expOrdernolist.Contains(p.ExpOrderNo) && string.IsNullOrEmpty(p.Deliverystatus)).ToList();
                LogHelper.Info("GetOrderExpressForJsJobExt********开始执行***orderexpressroutelist=[" + orderexpressroutelist.Count + "]");
                if (orderexpressroutelist.Any())
                {
                    foreach (var item in orderexpressroutelist)
                    {
                        var    order     = commodityOrder.FirstOrDefault(p => p.ExpOrderNo == item.ExpOrderNo);
                        Guid   AppId     = order.AppId;// commodityOrder.FirstOrDefault(p => p.ExpOrderNo == item.ExpOrderNo).AppId;
                        string ShipExpCo = order.ShipExpCo;
                        //添加快递100信息
                        GetExpress100Wuliu(item, AppId, ShipExpCo);
                        Thread.Sleep(200);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("GetOrderExpressForJsJobExt错误信息:{0}", ex.Message), ex);
            }

            LogHelper.Info("GetOrderExpressForJsJobExt********执行完成");
        }
Exemple #16
0
 public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <List <CommodityAndOrderItemDTO> > GetCommodityOrderItemByUserIdExt(string UserId, int PageSize, int PageIndex)
 {
     try
     {
         var userid = Guid.Parse(UserId);
         var query  = (from c in CommodityOrder.ObjectSet()
                       join it in OrderItem.ObjectSet()
                       on c.Id equals it.CommodityOrderId
                       orderby c.SubTime
                       where c.UserId.Equals(userid)
                       select new CommodityAndOrderItemDTO
         {
             OrderId = c.Id,
             Name = it.Name,
             Number = it.Number,
             Price = it.CurrentPrice,
             SubTime = c.SubTime,
             OrderState = c.State
         });
         var count = query.Count();
         var data  = query.Skip((PageIndex - 1) * PageSize).Take(PageSize).ToList();
         return(new ResultDTO <List <CommodityAndOrderItemDTO> >
         {
             isSuccess = true,
             Data = data,
             ResultCode = count
         });
     }
     catch (Exception ex)
     {
         LogHelper.Error("CommodityOrderItemBP.GetCommodityOrderItemByUserIdExt 异常", ex);
         return(new ResultDTO <List <CommodityAndOrderItemDTO> >
         {
             isSuccess = false,
             Message = ex.Message
         });
     }
 }
Exemple #17
0
        /// <summary>
        /// 获取子订单相关信息
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <List <CommodityAndOrderItemDTO> > GetCommodityOrderItemByOrderIdExt(Guid orderId)
        {
            try
            {
                var query = (from c in CommodityOrder.ObjectSet()
                             join it in OrderItem.ObjectSet()
                             on c.Id equals it.CommodityOrderId
                             orderby c.SubTime
                             where c.Id.Equals(orderId)
                             select new CommodityAndOrderItemDTO
                {
                    OrderId = c.Id,
                    Name = it.Name,
                    Number = it.Number,
                    Price = it.CurrentPrice,
                    SubTime = c.SubTime,
                    OrderState = c.State,
                    code = it.Code
                });

                return(new ResultDTO <List <CommodityAndOrderItemDTO> >
                {
                    isSuccess = true,
                    Data = query.ToList(),
                    ResultCode = query.Count()
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error("CommodityOrderItemBP.GetCommodityOrderItemByOrderExt 异常", ex);
                return(new ResultDTO <List <CommodityAndOrderItemDTO> >
                {
                    isSuccess = false,
                    Message = ex.Message
                });
            }
        }
Exemple #18
0
 /// <summary>
 /// 获得方正物流信息数据
 /// </summary>
 public static ThirdOrderPackageExpress FangZheng_Logistics_InfoList(Guid OrderId)
 {
     try
     {
         var OrderData = CommodityOrder.ObjectSet().Where(w => w.Id == OrderId).FirstOrDefault();
         if (string.IsNullOrWhiteSpace(OrderData.ExpOrderNo))
         {
             return(null);
         }
         var Logistics     = FangZheng_Logistics_Data(OrderData.ExpOrderNo);
         var LogisticsList = (from data in Logistics["result"]["list"].Children()
                              select new ThirdExpressTrace
         {
             Time = data["time"].ToString(),
             Desc = data["status"].ToString()
         }).ToList();
         return(new ThirdOrderPackageExpress
         {
             OrderId = OrderId.ToString(),
             ExpressCompany = OrderData.ShipExpCo,
             ExpressNo = OrderData.ExpOrderNo,
             ExpressTraceList = LogisticsList
         });
     }
     catch (Exception ex)
     {
         var LogInfo = new Jinher.AMP.BTP.Deploy.JdlogsDTO
         {
             Id                 = Guid.NewGuid(),
             Content            = "获得物流信息Exception:" + ex.Message,
             SubTime            = DateTime.Now,
             ThirdECommerceType = (int)ThirdECommerceTypeEnum.FangZheng
         };
         new JdlogsFacade().SaveJdlogs(LogInfo);
         return(null);
     }
 }
Exemple #19
0
        /// <summary>
        /// 获取拼团详情
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailDTO> GetDiyGroupDetailExt(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailSearchDTO search)
        {
            ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailDTO> result = new ResultDTO <DiyGroupDetailDTO>();

            if (search == null || search.DiyGoupId == Guid.Empty)
            {
                result.ResultCode = 1;
                result.Message    = "参数错误";
                return(result);
            }
            var query = (from dg in DiyGroup.ObjectSet()
                         join c in Commodity.ObjectSet() on dg.CommodityId equals c.Id
                         join p in Promotion.ObjectSet() on dg.PromotionId equals p.Id
                         where dg.Id == search.DiyGoupId
                         select new
            {
                DiyGroup = dg,
                Commodity = c,
                Promotion = p
            }).FirstOrDefault();

            if (query == null || query.Commodity == null || query.DiyGroup == null || query.Promotion == null)
            {
                result.ResultCode = 2;
                result.Message    = "没有获取到相应的拼团详情";
                return(result);
            }
            var commodity     = query.Commodity;
            var diyGroup      = query.DiyGroup;
            var promotion     = query.Promotion;
            var promotionItem = PromotionItems.ObjectSet().Where(t => t.PromotionId == diyGroup.PromotionId).FirstOrDefault();

            if (promotionItem == null)
            {
                result.ResultCode = 2;
                result.Message    = "没有获取到相应的拼团详情";
                return(result);
            }
            var productDetailPicture = ProductDetailsPicture.ObjectSet().Where(n => n.CommodityId == commodity.Id).OrderBy(n => n.Sort).Select(c => c.PicturesPath).FirstOrDefault();

            result.Data = new DiyGroupDetailDTO()
            {
                Id                 = diyGroup.Id,
                Name               = diyGroup.Name,
                Code               = diyGroup.Code,
                SubTime            = diyGroup.SubTime,
                SubId              = diyGroup.SubId,
                AppId              = diyGroup.AppId,
                CommodityId        = diyGroup.CommodityId,
                PromotionId        = diyGroup.PromotionId,
                ModifiedOn         = diyGroup.ModifiedOn,
                ExpireTime         = diyGroup.ExpireTime,
                State              = diyGroup.State,
                JoinNumber         = diyGroup.JoinNumber,
                SuccessProcessorId = diyGroup.SuccessProcessorId,
                SuccessTime        = diyGroup.SuccessTime,
                FailProcessorId    = diyGroup.FailProcessorId,
                FailTime           = diyGroup.FailTime,
                EsAppId            = diyGroup.EsAppId,
                //commodity
                PicturesPath         = commodity.PicturesPath,
                CommodityName        = commodity.Name,
                ProductDetailPicture = productDetailPicture,
                //promotion
                StartTime      = promotion.StartTime,
                EndTime        = promotion.EndTime,
                GroupMinVolume = promotion.GroupMinVolume ?? -1,
                ExpireSecond   = promotion.ExpireSecond ?? -1,
                Description    = promotion.Description,
                OutsideId      = promotion.OutsideId.Value,
                //promotionitem
                LimitBuyEach         = promotionItem.LimitBuyEach ?? -1,
                LimitBuyTotal        = promotionItem.LimitBuyTotal ?? -1,
                DiscountPrice        = promotionItem.DiscountPrice,
                SurplusLimitBuyTotal = promotionItem.SurplusLimitBuyTotal ?? -1
            };
            result.Data.DiyGroupOrderList = new List <DiyGroupOrderDetailDTO>();
            var diyGroupOrder = (from dgOrder in DiyGroupOrder.ObjectSet()
                                 join co in CommodityOrder.ObjectSet() on dgOrder.OrderId equals co.Id
                                 where dgOrder.DiyGroupId == search.DiyGoupId && (dgOrder.Role == 0 || dgOrder.Role == 1 && dgOrder.State == 1)
                                 orderby dgOrder.SubTime ascending
                                 select new DiyGroupOrderDetailDTO
            {
                Id = dgOrder.Id,
                SubTime = dgOrder.SubTime,
                SubId = dgOrder.SubId,
                AppId = dgOrder.AppId,
                OrderId = dgOrder.OrderId,
                OrderCode = dgOrder.OrderCode,
                Role = dgOrder.Role,
                DiyGroupId = dgOrder.DiyGroupId,
                SubCode = dgOrder.SubCode,
                ModifiedOn = dgOrder.ModifiedOn,
                DiyGroupPrice = (decimal)co.RealPrice
            }).ToList();

            result.Data.DiyGroupOrderList.AddRange(diyGroupOrder);

            //提取用户信息
            var userIdList   = result.Data.DiyGroupOrderList.Select(t => t.SubId).ToList();
            var userInfolist = CBCSV.Instance.GetUserInfoWithAccountList(userIdList);

            if (userInfolist != null && userInfolist.Count > 0)
            {
                foreach (var item in result.Data.DiyGroupOrderList)
                {
                    var tmpUserInfo = userInfolist.Where(t => t.UserId == item.SubId).FirstOrDefault();
                    if (tmpUserInfo != null)
                    {
                        item.UserCode    = CBCSV.EncodeUserCode(tmpUserInfo.Account);
                        item.UserPicture = tmpUserInfo.HeadIcon;
                    }
                }
            }

            //var diyHeadOrder = diyGroupOrder.Where(t => t.Role == 0).FirstOrDefault();
            //if (diyHeadOrder != null && diyHeadOrder.State == 0)
            //{
            //    result.Data.JoinNumber = result.Data.JoinNumber + 1;
            //}

            //系统当前时间,倒计时用
            result.Data.DateTimeNow = DateTime.Now;
            return(result);
        }
Exemple #20
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);
        }
Exemple #21
0
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO UpdateOrderSpreaderExt(Jinher.AMP.BTP.Deploy.CustomDTO.SpreaderAndBuyerWxDTO sbwxDto)
        {
            ResultDTO result = new ResultDTO();

            if (sbwxDto == null)
            {
                result.ResultCode = 1;
                result.Message    = "参数错误,参数不能为空!";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(sbwxDto.WxOpenId))
            {
                result.ResultCode = 2;
                result.Message    = "参数错误,微信OpenId不能为空!";
                return(result);
            }

            if (sbwxDto.BuyerId == Guid.Empty)
            {
                result.ResultCode = 3;
                result.Message    = "参数错误,买家用户Id不能为空!";
                return(result);
            }

            if (sbwxDto.OrderId == Guid.Empty)
            {
                result.ResultCode = 4;
                result.Message    = "参数错误,订单Id不能为空!";
                return(result);
            }

            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;

                //用户id相关 买家-推广者对照表。
                var usQuery = from us in UserSpreader.ObjectSet()
                              where us.UserId == sbwxDto.BuyerId
                              select us;

                //微信Id相关 买家-推广者对照表。
                var wxQuery = from u in UserSpreader.ObjectSet()
                              where u.WxOpenId == sbwxDto.WxOpenId
                              select u;
                //推广者用户id.
                Guid spreaderId = Guid.Empty;
                Guid spreadCode = Guid.Empty;
                //当前买家已有归属的推广主信息。
                if (usQuery.Any())
                {
                    //没有wxopenId信息,则更新。
                    var usFirst = usQuery.FirstOrDefault();
                    spreaderId = usFirst.SpreaderId;
                    spreadCode = usFirst.SpreadCode;
                    if (string.IsNullOrWhiteSpace(usFirst.WxOpenId))
                    {
                        usFirst.WxOpenId   = sbwxDto.WxOpenId;
                        usFirst.ModifiedOn = DateTime.Now;
                    }
                    //删除其它和当前wxOpenId相关的记录。
                    foreach (var uu in usQuery)
                    {
                        if (uu.Id == usFirst.Id)
                        {
                            continue;
                        }
                        uu.EntityState = System.Data.EntityState.Deleted;
                    }
                }
                else
                {
                    if (wxQuery.Any())
                    {
                        UserSpreader usRecord = wxQuery.FirstOrDefault();
                        usRecord.UserId     = sbwxDto.BuyerId;
                        usRecord.ModifiedOn = DateTime.Now;
                        spreaderId          = usRecord.SpreaderId;
                        spreadCode          = usRecord.SpreadCode;
                    }
                }

                //推广分成相关订单Id.
                List <Guid> orderIds = new List <Guid>();

                var moQuery = from mo in MainOrder.ObjectSet()
                              where mo.MainOrderId == sbwxDto.OrderId
                              select mo.SubOrderId;

                if (moQuery.Any())
                {
                    //传入的OrderId为主订单id,找出所有子订单。
                    orderIds = moQuery.ToList();
                }
                else
                {
                    orderIds.Add(sbwxDto.OrderId);
                }

                var coQuery = from co in CommodityOrder.ObjectSet()
                              where orderIds.Contains(co.Id)
                              select co;
                foreach (var cOrder in coQuery)
                {
                    cOrder.SpreaderId = spreaderId;
                    cOrder.ModifiedOn = DateTime.Now;
                    cOrder.SpreadCode = spreadCode;
                }

                contextSession.SaveChanges();

                result.ResultCode = 0;
                result.Message    = "成功!";
                return(result);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("UpdateOrderSpreaderExt异常。sbwxDto:{0}", JsonHelper.JsonSerializer(sbwxDto)), ex);

                result.ResultCode = 10;
                result.Message    = "接口异常,请稍后重试!";
                return(result);
            }
        }
Exemple #22
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 结束导入未设置结算价的金币支付订单");
        }
Exemple #23
0
        /// <summary>
        /// 打印快递单更新保存数据
        /// </summary>
        /// <param name="orders"></param>
        public ResultDTO SavePrintOrdersExt(UpdatePrintDTO orders)
        {
            #region 需求整理
            //订单状态(必填):未支付=0,未发货=1,
            //已发货=2,确认收货=3,
            //商家取消订单=4,客户取消订单=5,
            //超时交易关闭=6,已退款=7,
            //待发货退款中=8,已发货退款中=9,
            //已发货退款中商家同意退款,商家未收到货=10,付款中=11,
            //金和处理退款中=12,出库中=13,
            //出库中退款中=14,待审核=16,
            //待付款待审核=17,餐饮订单待处理=18,
            //餐饮订单已处理=19

            //判断是否更新订单状态。
            //更新订单物流信息
            //记录物流信息
            //更新打印次数。
            //记录打印日志
            //CancelTheOrderExt
            //ShipUpdataOrderExt
            //GetOrderStateList
            //OrderSV.CanChangeState
            //OrderSV.LockOrder

            //待发货、出库中、待发货退款中
            //    打印(自动发货)       更新物流信息,如果有退款拒绝退款
            //其他状态都不更新订单洗物流信息 也不更新订单状态,无论选择不选择自动发货
            #endregion
            try
            {
                if (orders == null || orders.Orders == null || orders.Orders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "参数错误,参数不能为空!"
                           }
                }
                ;

                var tempOrderIds = orders.Orders.Select(r => r.OrderId).ToList();
                var newOrders    = (from n in CommodityOrder.ObjectSet()
                                    join o in tempOrderIds on n.Id equals o
                                    select n).ToList();


                //var newOrders = (from o in orders.Orders
                //                 join n in tnewOrders on o.OrderId equals n.Id
                //                 select new
                //                  {
                //                      OldOrder = o,
                //                      NewOrder = n
                //                  }).ToList();

                if (newOrders == null || newOrders.Count == 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 1, Message = "数据错误"
                           }
                }
                ;

                var canToState2 = new List <int>()
                {
                    1, 8, 13
                };
                var updateStates = newOrders.Where(r => orders.AutoSend && canToState2.Contains(r.State)).Select(r => r).ToList();

                //记录打印日志,延迟提交库
                RecordPrintLog(newOrders, orders);

                if (updateStates.Count > 0)
                {
                    return(BatchUpdateOrderStateTo2(updateStates, orders, UpdateOrderStateTo2CallBack));
                }

                if (ContextFactory.CurrentThreadContext.SaveChanges() > 0)
                {
                    return new ResultDTO()
                           {
                               ResultCode = 0, Message = "保存成功"
                           }
                }
                ;
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("打印快递单更新保存数据。UpdatePrintOrderInfoExt:{0}", JsonHelper.JsonSerializer(orders)), ex);
            }
            return(new ResultDTO()
            {
                ResultCode = 1, Message = "保存失败"
            });
        }
Exemple #24
0
        /// <summary>
        /// 获取订单中的商品列表
        /// </summary>
        /// <param name="Code"></param>
        /// <returns></returns>
        public OrderForShareDTO GetOrderCommoditysExt(System.Guid orderId)
        {
            OrderForShareDTO orderForShareDTO = new OrderForShareDTO();

            //查询订单信息
            var order = CommodityOrder.ObjectSet().Where(o => o.Id == orderId).FirstOrDefault();

            if (order == null)
            {
                return(null);
            }

            Guid userId = order.UserId;
            Guid appId  = order.AppId;

            orderForShareDTO.AppId = appId;

            //查询购买者信息
            CommodityUser userInfo = CommodityUser.ObjectSet().Where(u => u.Id == userId && u.AppId == appId).FirstOrDefault();

            if (userInfo != null)
            {
                orderForShareDTO.UserName  = userInfo.Name;
                orderForShareDTO.UserPhoto = userInfo.HeadPic;
            }

            //查询订单中商品数量
            var count = OrderItem.ObjectSet().Where(o => o.CommodityOrderId == orderId).Sum(o => o.Number);

            orderForShareDTO.Count = count;

            //查询订单中随机的一件商品
            OrderItem orderitem = OrderItem.ObjectSet().Where(o => o.CommodityOrderId == orderId).FirstOrDefault();

            if (orderitem != null)
            {
                Commodity commodity = Commodity.ObjectSet().Where(o => o.Id == orderitem.CommodityId).FirstOrDefault();
                orderForShareDTO.RealPrice = orderitem.RealPrice;
                orderForShareDTO.Days      = 0;
                // 获取距离促销还剩下多少天
                var days = (from i in Promotion.ObjectSet()
                            join y in PromotionItems.ObjectSet()
                            on i.Id equals y.PromotionId
                            where DateTime.Now > i.StartTime && DateTime.Now < i.EndTime &&
                            y.CommodityId == orderitem.CommodityId && !i.IsDel && i.IsEnable
                            select new PromotionSDTO
                {
                    EndTime = i.EndTime
                }).ToList();

                if (days.Count > 0)
                {
                    TimeSpan ts = days[0].EndTime - DateTime.Now;
                    if (ts.TotalSeconds > 0)
                    {
                        if (ts.TotalSeconds % (3600 * 24) > 0)
                        {
                            orderForShareDTO.Days = ts.Days + 1;
                        }
                        else
                        {
                            orderForShareDTO.Days = ts.Days;
                        }
                    }
                }
                if (commodity != null)
                {
                    orderForShareDTO.CommodityDTO = commodity.ToEntityData();
                }
            }

            return(orderForShareDTO);
        }
Exemple #25
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 = "异常"
                });
            }
        }
Exemple #26
0
        /// <summary>
        /// 添加评价
        /// </summary>
        /// <param name="reviewSDTO">评价实体</param>
        /// <param name="appId">appId</param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO SaveReviewExt
            (Jinher.AMP.BTP.Deploy.CustomDTO.ReviewSDTO reviewSDTO, System.Guid appId)
        {
            try
            {
                if (reviewSDTO == null || reviewSDTO.UserId == Guid.Empty || reviewSDTO.OrderItemId == Guid.Empty)
                {
                    return new ResultDTO {
                               ResultCode = 1, Message = "参数错误!"
                    }
                }
                ;

                if (string.IsNullOrWhiteSpace(reviewSDTO.Details))
                {
                    return(new ResultDTO {
                        ResultCode = 1, Message = "参数错误,评价内容不能为空!"
                    });
                }
                if (Review.ObjectSet().Any(c => c.UserId == reviewSDTO.UserId && c.OrderItemId == reviewSDTO.OrderItemId))
                {
                    return(new ResultDTO {
                        ResultCode = 1, Message = "已评价!"
                    });
                }

                var orderitem = OrderItem.ObjectSet().FirstOrDefault(n => n.Id == reviewSDTO.OrderItemId);
                if (orderitem != null)
                {
                    ContextSession contextSession = ContextFactory.CurrentThreadContext;

                    Review review = new Review();
                    review.Id                  = Guid.NewGuid();
                    review.EntityState         = System.Data.EntityState.Added;
                    review.Name                = "评价";
                    review.UserId              = reviewSDTO.UserId;
                    review.UserName            = reviewSDTO.Name ?? string.Empty;
                    review.UserHeader          = reviewSDTO.UserHead;
                    review.Content             = reviewSDTO.Details;
                    review.CommodityId         = orderitem.CommodityId;
                    review.AppId               = appId;
                    review.OrderItemId         = orderitem.Id;
                    review.CommodityName       = orderitem.Name;
                    review.CommodityPicture    = orderitem.PicturesPath;
                    review.CommodityAttributes = orderitem.CommodityAttributes;
                    contextSession.SaveObject(review);

                    orderitem.AlreadyReview = true;
                    contextSession.SaveObject(orderitem);

                    //增加商品评价数
                    Commodity com = Commodity.ObjectSet().FirstOrDefault(n => n.Id == orderitem.CommodityId);
                    if (com != null)
                    {
                        com.TotalReview += 1;
                        contextSession.SaveObject(com);
                    }

                    contextSession.SaveChanges();

                    if (com != null)
                    {
                        com.RefreshCache(EntityState.Modified);
                    }
                    var esAppId = CommodityOrder.ObjectSet().Where(t => t.Id == orderitem.CommodityOrderId).Select(t => t.EsAppId).FirstOrDefault();
                    if (esAppId.HasValue)
                    {
                        bool giveResult = SignSV.Instance.GiveScoreBtpComment(review.UserId, esAppId.Value, reviewSDTO.SourceUrl, orderitem.CommodityOrderId, orderitem.Code, review.Id);
                        if (!giveResult)
                        {
                            return(new ResultDTO {
                                ResultCode = 1, Message = "评价加积分错误"
                            });
                        }
                    }
                }
                else
                {
                    return(new ResultDTO {
                        ResultCode = 1, Message = "Error"
                    });
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("添加评价服务异常。reviewSDTO:{0},appId:{1}", JsonHelper.JsonSerializer(reviewSDTO), appId), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
            return(new ResultDTO {
                ResultCode = 0, Message = "Success"
            });
        }
Exemple #27
0
        /// <summary>
        /// 自动确认成团 -- JOB调用
        /// </summary>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO VoluntarilyConfirmDiyGroupExt()
        {
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                //获取所有组团成功,但是没有手动成团的拼团订单
                var diyQuery = (from diy in DiyGroup.ObjectSet()
                                join c in Commodity.ObjectSet() on diy.CommodityId equals c.Id
                                join ps in PromotionItems.ObjectSet() on c.Id equals ps.CommodityId
                                join p in Promotion.ObjectSet() on ps.PromotionId equals p.Id
                                where diy.JoinNumber != 0 && diy.PromotionId == p.Id && diy.State == 2
                                select new DiyGroupManageVM
                {
                    DiyId = diy.Id,
                    AppId = diy.EsAppId
                });
                diyQuery = diyQuery.Distinct();

                List <DiyGroupConfig> list = new List <DiyGroupConfig>();
                foreach (var diyGroupManageVm in diyQuery)
                {
                    DiyGroupConfigCDTO diyGroupConfig;
                    if (list.Count > 0 && list.Any(t => t.EsAppId == diyGroupManageVm.AppId))
                    {
                        diyGroupConfig = list.FirstOrDefault(t => t.EsAppId == diyGroupManageVm.AppId).DiyGroupConfigCdto;
                    }
                    else
                    {
                        diyGroupConfig = TPS.ZPHSV.Instance.GetDiyGroupConfig(diyGroupManageVm.AppId);
                        DiyGroupConfig diyGroupConfigBp = new DiyGroupConfig
                        {
                            EsAppId            = diyGroupManageVm.AppId,
                            DiyGroupConfigCdto = diyGroupConfig
                        };
                        list.Add(diyGroupConfigBp);
                    }

                    if (diyGroupConfig.IsClustering)
                    {
                        var query = (from diyGroup in DiyGroup.ObjectSet()
                                     join diyGroupOrder in DiyGroupOrder.ObjectSet() on diyGroup.Id equals diyGroupOrder.DiyGroupId
                                     join order in CommodityOrder.ObjectSet() on diyGroupOrder.OrderId equals order.Id
                                     where diyGroup.Id == diyGroupManageVm.DiyId && diyGroupOrder.State == 1 && diyGroup.State == 2
                                     select order
                                     ).ToList();

                        if (query.Count > 0)
                        {
                            foreach (var diyorder in query)
                            {
                                diyorder.State       = 1;
                                diyorder.ModifiedOn  = DateTime.Now;
                                diyorder.EntityState = System.Data.EntityState.Modified;
                                contextSession.SaveObject(diyorder);
                                Jinher.AMP.BTP.BE.BELogic.AddMessage addmassage = new Jinher.AMP.BTP.BE.BELogic.AddMessage();
                                addmassage.AddMessages(diyorder.Id.ToString(), diyorder.UserId.ToString(), diyorder.AppId, diyorder.Code, diyorder.State, "", "order");
                                // 触发订单成功事件
                                OrderEventHelper.OnOrderPaySuccess(diyorder);
                            }
                        }
                        var diyquery = DiyGroup.ObjectSet().FirstOrDefault(n => n.Id == diyGroupManageVm.DiyId && n.EsAppId == diyGroupManageVm.AppId && n.State == 2);
                        if (diyquery != null)
                        {
                            diyquery.State       = 3;
                            diyquery.ModifiedOn  = DateTime.Now;
                            diyquery.EntityState = EntityState.Modified;
                            contextSession.SaveObject(diyquery);
                        }
                    }
                }
                contextSession.SaveChange();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("自动确认成团 -- JOB调用异常"), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
            return(new ResultDTO {
                ResultCode = 0, Message = "Success"
            });
        }
Exemple #28
0
        /// <summary>
        /// 我的拼团订单列表
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupOrderListDTO> GetDiyGroupListExt(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupSearchDTO search)
        {
            List <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupOrderListDTO> resultlist = new List <DiyGroupOrderListDTO>();

            if (search == null)
            {
                return(resultlist);
            }
            search.PageIndex = search.PageIndex == 0 ? 1 : search.PageIndex;
            search.PageSize  = search.PageSize == 0 ? 20 : search.PageSize;

            var diyList = (from diy in DiyGroup.ObjectSet()
                           join pro in PromotionItems.ObjectSet() on diy.PromotionId equals pro.PromotionId
                           join p in Promotion.ObjectSet() on pro.PromotionId equals p.Id
                           join diyo in DiyGroupOrder.ObjectSet() on diy.Id equals diyo.DiyGroupId
                           join com in CommodityOrder.ObjectSet() on diyo.OrderId equals com.Id
                           where diy.EsAppId == search.EsAppId && com.UserId == search.UserId && diyo.State == 1 && diy.State != 0
                           orderby diyo.SubTime descending
                           select new DiyGroupOrderListDTO
            {
                Price = com.RealPrice,
                DiyGroupPrice = pro.DiscountPrice,
                SubTime = diyo.SubTime,
                DiyGroupState = diy.State,
                GroupMinVolume = p.GroupMinVolume ?? -1,
                JoinNumber = diy.JoinNumber,
                DiyGroupId = diy.Id,
                EsAppId = diy.EsAppId,
                OrderId = diyo.OrderId,
                DiyOrderSubTime = diyo.SubTime,
                ModifiedOn = diyo.ModifiedOn,
                EndTime = p.EndTime
            }).Skip((search.PageIndex - 1) * search.PageSize).Take(search.PageSize).ToList();

            var diyorderIds = diyList.Select(n => n.OrderId).ToList();

            if (diyList.Any())
            {
                var diyorderList = (from ord in OrderItem.ObjectSet()
                                    where diyorderIds.Contains(ord.CommodityOrderId)
                                    select new DiyGroupManageMM
                {
                    Pic = ord.PicturesPath,
                    Name = ord.Name,
                    DiyNumber = ord.Number,
                    DiyGroupOrderId = ord.CommodityOrderId,
                    attributes = ord.CommodityAttributes
                }).ToList();
                Dictionary <Guid, List <DiyGroupManageMM> > csdtoList = diyorderList.GroupBy(c => c.DiyGroupOrderId, (key, group) =>
                                                                                             new { DiyGroupOrderId = key, CommodityList = group })
                                                                        .ToDictionary(c => c.DiyGroupOrderId, c => c.CommodityList.ToList());
                var listAppIds = (from co in diyList select co.EsAppId).Distinct().ToList();
                Dictionary <Guid, string> dictAppName = APPSV.GetAppNameListByIds(listAppIds);

                foreach (var diyGroupOrder in diyList)
                {
                    if (csdtoList.ContainsKey(diyGroupOrder.OrderId))
                    {
                        var commodityDtoList = csdtoList[diyGroupOrder.OrderId];
                        diyGroupOrder.OrderDataList = commodityDtoList;
                    }
                    if (dictAppName != null && dictAppName.Count > 0 && dictAppName.ContainsKey(diyGroupOrder.EsAppId))
                    {
                        var appNameDto = dictAppName[diyGroupOrder.EsAppId];
                        diyGroupOrder.AppName = appNameDto;
                    }
                    resultlist.Add(diyGroupOrder);
                }
            }
            return(resultlist);
        }
Exemple #29
0
        /// <summary>
        /// 众筹股东订单列表
        /// </summary>
        /// <param name="crowdfundingId">众筹Id</param>
        /// <param name="userId">用户Id</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">每页数量</param>
        public CommodityOrderVMDTO GetUserCrowdfundingOrdersExt(System.Guid crowdfundingId, System.Guid userId, int pageIndex, int pageSize)
        {
            CommodityOrderVMDTO CommodityOrderVMDTO = new CommodityOrderVMDTO();

            try
            {
                var query = from data in CommodityOrder.ObjectSet()
                            join CrowdfundingData in Crowdfunding.ObjectSet()
                            on data.AppId equals CrowdfundingData.AppId
                            join data1 in OrderRefund.ObjectSet()
                            on data.Id equals data1.OrderId
                            into tempT
                            from tb3 in tempT.DefaultIfEmpty()
                            join cf in CfOrderDividend.ObjectSet()
                            on data.Id equals cf.CommodityOrderId into CfOrderDividends
                            from cfOrderDividend in CfOrderDividends.DefaultIfEmpty()
                            where
                            data.UserId == userId && data.IsCrowdfunding != 0 && data.State != 0 &&
                            CrowdfundingData.Id == crowdfundingId
                            &&
                            (tb3.RefundMoney == null ? 0 : tb3.RefundMoney) <
                            (data.IsModifiedPrice ? data.RealPrice : data.Price) &&
                            tb3.State != 2 && tb3.State != 3 && tb3.State != 4 && tb3.State != 13
                            select new CommodityOrderVM
                {
                    AppId              = data.AppId,
                    UserId             = data.UserId,
                    CommodityOrderId   = data.Id,
                    CurrentPrice       = data.RealPrice,
                    State              = data.State,
                    CommodityOrderCode = data.Code,
                    SubTime            = data.SubTime,
                    ReceiptUserName    = data.ReceiptUserName,
                    Payment            = data.Payment,
                    PaymentTime        = data.PaymentTime,
                    ShipmentsTime      = data.ShipmentsTime,
                    ConfirmTime        = data.ConfirmTime,
                    ModifiedOn         = data.ModifiedOn,
                    Price              = data.Price,
                    MessageToBuyer     = data.MessageToBuyer,
                    IsModifiedPrice    = data.IsModifiedPrice,
                    ReceiptPhone       = data.ReceiptPhone,
                    RefundTime         = data.RefundTime,
                    AgreementTime      = data.AgreementTime,
                    Freight            = data.Freight,
                    Commission         = data.Commission,
                    IsCrowdfunding     = true,
                    CfDividend         = cfOrderDividend.Gold
                };

                var result = query.OrderByDescending(q => q.SubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

                #region 查询订单商品信息(优化)

                //构建订单id数组
                List <Guid> commodityOrderIdList = new List <Guid>();
                for (int i = 0; i < result.Count; i++)
                {
                    commodityOrderIdList.Add(result[i].CommodityOrderId);
                }

                CommodityCategory cc = new CommodityCategory();

                //取出所有订单的所有商品
                var orderItems = (from data in OrderItem.ObjectSet()
                                  //join data1 in Commodity.ObjectSet() on data.CommodityId equals data1.Id
                                  where commodityOrderIdList.Contains(data.CommodityOrderId)
                                  select new
                {
                    CommodityOrderId = data.CommodityOrderId,
                    CommodityId = data.CommodityId,
                    CommodityIdName = data.Name,
                    PicturesPath = data.PicturesPath,
                    Price = data.CurrentPrice,                  //取订单商品列表中的价格
                    Number = data.Number,
                    CommodityAttributes = data.CommodityAttributes,
                    CategoryName = data.CategoryNames,
                    RealPrice = data.RealPrice
                }).ToList();

                List <OrderItemsVM> orderItemsVMList = (from data in orderItems
                                                        select new OrderItemsVM
                {
                    CommodityOrderId = data.CommodityOrderId,
                    CommodityId = data.CommodityId,
                    CommodityIdName = data.CommodityIdName,
                    PicturesPath = data.PicturesPath,
                    Price = data.Price,                                       //取订单商品列表中的价格
                    RealPrice = data.RealPrice,
                    Number = data.Number,
                    SizeAndColorId = data.CommodityAttributes,
                    CommodityCategorys =
                        data.CategoryName == null ? new List <string>() : data.CategoryName.Split(',').ToList()
                }).ToList();

                Collection collect = new Collection();

                //遍历订单
                foreach (CommodityOrderVM v in result)
                {
                    List <OrderItemsVM> orderItemslist = new List <OrderItemsVM>();
                    //遍历订单中的商品,获取每个商品对应的颜色、尺寸属性
                    foreach (OrderItemsVM model in orderItemsVMList)
                    {
                        if (model.CommodityOrderId == v.CommodityOrderId)
                        {
                            orderItemslist.Add(model);
                        }
                    }
                    v.OrderItems = orderItemslist;
                }

                #endregion


                if (result != null && result.Count > 0)
                {
                    CommodityOrderVMDTO.List  = result;
                    CommodityOrderVMDTO.Total = query.Count();
                }
                else
                {
                    CommodityOrderVMDTO.Total = 0;
                }

                return(CommodityOrderVMDTO);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("获取众筹列表服务异常。crowdfundingId:{0},userId:{1},pageIndex:{2},pageSize:{3}", crowdfundingId, userId, pageIndex, pageSize), ex);
                return(null);
            }


            return(CommodityOrderVMDTO);
        }
Exemple #30
0
        /// <summary>
        /// 金采支付 京东订单补发job
        /// </summary>
        //[Obsolete("没有符合SupplierCode=43266570的订单")]
        public static void SynchroJdForJC()
        {
            //return;
            try
            {
                //var orders = CommodityOrder.ObjectSet().Where(_ => _.State == 1 && _.Payment == 2001 && _.SupplierCode == "43266570").ToList();
                var orders = CommodityOrder.ObjectSet().Where(_ => _.State == 1 && _.SupplierCode == "43266570").ToList();
                foreach (var order in orders)
                {
                    //如果更新成功 京东下单
                    CommodityOrderFacade commodityorderfacade = new CommodityOrderFacade {
                        ContextDTO = AuthorizeHelper.InitAuthorizeInfo()
                    };
                    JdOrderItemFacade jdorderitemfacade = new JdOrderItemFacade {
                        ContextDTO = AuthorizeHelper.InitAuthorizeInfo()
                    };
                    JdJournalFacade jdjournalfacade = new JdJournalFacade {
                        ContextDTO = AuthorizeHelper.InitAuthorizeInfo()
                    };

                    var            commodityorder = commodityorderfacade.GetMainOrderInfo(order.Id);
                    JdOrderItemDTO model          = new JdOrderItemDTO
                    {
                        State            = 1,
                        CommodityOrderId = order.Id.ToString()
                    };

                    //获取最早的京东数据模型
                    var jdorderitem = jdorderitemfacade.GetJdOrderItemList(model).ToList().FirstOrDefault();
                    if (jdorderitem != null)
                    {
                        //京东确认下单
                        bool flag = JdHelper.confirmOrder(jdorderitem.JdPorderId);
                        if (flag)
                        {
                            jdorderitem.StateContent = "确认预占";
                            jdorderitem.MainOrderId  = commodityorder.MainOrderId.ToString();
                            var res = jdorderitemfacade.UpdateJdOrderItem(jdorderitem);
                            if (res.isSuccess)
                            {
                                JdJournalDTO jdjournaldto = new JdJournalDTO()
                                {
                                    Id               = Guid.NewGuid(),
                                    JdPorderId       = jdorderitem.JdPorderId,
                                    TempId           = jdorderitem.TempId,
                                    JdOrderId        = Guid.Empty.ToString(),
                                    MainOrderId      = commodityorder.MainOrderId.ToString(),
                                    CommodityOrderId = jdorderitem.CommodityOrderId,
                                    Name             = "京东确认预占库存订单接口",
                                    Details          = "京东确认预占库存订单接口",
                                    SubTime          = DateTime.Now
                                };
                                //添加明细记录
                                jdjournalfacade.SaveJdJournal(jdjournaldto);
                            }
                        }
                    }
                    else
                    {
                        LogHelper.Info("SynchroJdForJC方法,jdorderitem为空");
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("SynchroJdForJC方法异常", ex);
            }
        }