/// <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" }); }
/// <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" }); }