Esempio n. 1
0
        /// <summary>
        /// 成团自动退款 -- JOB调用
        /// </summary>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO VoluntarilyRefundDiyGroupExt()
        {
            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 == 4
                                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.IsRefund)
                    {
                        var query = DiyGroup.ObjectSet().FirstOrDefault(n => n.Id == diyGroupManageVm.DiyId && n.EsAppId == diyGroupManageVm.AppId);
                        if (query != null)
                        {
                            query.State       = 5;
                            query.ModifiedOn  = DateTime.Now;
                            query.EntityState = EntityState.Modified;
                        }
                    }
                }
                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"
            });
        }
Esempio n. 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"
            });
        }