コード例 #1
0
ファイル: DiyGroupBPExt.cs プロジェクト: GSIL-Monitor/BTP
        /// <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"
            });
        }
コード例 #2
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"
            });
        }