public ICalculationRuleProcess Create(DistributionRule distributionRule) { _batchStatusWriter.WriteBatchStatusMessage( string.Format("Applying {0} Rule", distributionRule.Descr)); //will crash if registration is not present return(_Registrations .FirstOrDefault(r => r.Name == distributionRule.Id.ToString()) .CreateLambda()); }
/// <summary> /// 获取分销商申请设置 后台 /// </summary> /// <returns></returns> public DistributRuleFullDTO GetDistributRuleFullExt(DistributionSearchDTO search) { DistributRuleFullDTO distributRuleFullDto = new DistributRuleFullDTO(); try { var temp = (from dr in DistributionRule.ObjectSet() where dr.Id == search.AppId select new DistributRuleFullDTO { Id = dr.Id, SubTime = dr.SubTime, ModifiedOn = dr.ModifiedOn, SubId = dr.SubId, ModifiedId = dr.ModifiedId, HasCondition = dr.HasCondition, NeedIdentity = dr.NeedIdentity, OrderTimeLimit = dr.OrderTimeLimit, OrderAmountLimit = dr.OrderAmountLimit, HasCustomComs = dr.HasCustomComs, Title = dr.Title, TiApprovalType = (ApprovalTypeEnum)dr.ApprovalType.Value, StartCalcState = (DistributeApplyStateEnum)dr.StartCalcState.Value, RuleDesc = dr.RuleDesc }); distributRuleFullDto = temp.FirstOrDefault(); if (distributRuleFullDto != null) { List <DistributionIdentitySetFullDTO> vDbIdentitySets = (from dis in DistributionIdentitySet.ObjectSet() where dis.RuleId == search.AppId && !dis.IsDel orderby dis.NameCategory select new DistributionIdentitySetFullDTO { Id = dis.Id, SubTime = dis.SubTime, ModifiedOn = dis.ModifiedOn, SubId = dis.SubId, ModifiedId = dis.ModifiedId, Name = dis.Name, IsRequired = dis.IsRequired, RuleId = dis.RuleId, ValueType = (ApplyInfoTypeEnum)dis.ValueType.Value, IsDel = dis.IsDel, NameCategory = dis.NameCategory, }).ToList(); distributRuleFullDto.DbIdentitySets = vDbIdentitySets; } } catch (Exception ex) { LogHelper.Error(ex.ToString()); } return(distributRuleFullDto); }
/// <summary> /// 删除相关的设置以及资料 /// </summary> /// <param name="drId"></param> /// <returns></returns> public ResultDTO DeleteDistributionRule(Guid drId) { var result = new ResultDTO { isSuccess = true }; var dis = DistributionIdentitySet.ObjectSet().Where(t => t.RuleId == drId); foreach (var d in dis) { d.IsDel = true; d.EntityState = EntityState.Modified; ContextFactory.CurrentThreadContext.SaveObject(d); } var dr = DistributionRule.ObjectSet().FirstOrDefault(t => t.Id == drId); if (dr != null) { dr.EntityState = EntityState.Deleted; ContextFactory.CurrentThreadContext.SaveObject(dr); } return(result); }
public ActionResult SubmitRule(ModuleDepositRules mdr) { DistributionRule dr = null; var percsToRemove = new List <DistributionPercentage>(); if (mdr.id == 0) { dr = new DistributionRule() { Name = mdr.nome, UserId = User.Identity.Name, DistributionPercentages = new List <DistributionPercentage>() }; foreach (var perc in mdr.regras) { var dp = new DistributionPercentage() { FundID = perc.fundo.id, ReserveID = perc.objetivo.id, Percentage = perc.porcentagem / 100, }; dr.DistributionPercentages.Add(dp); } using (var o = new FinancialOperations()) o.AddRule(dr); } else { using (var q = new FinancialQueries()) { dr = q.GetDistributionRule(mdr.id.Value); for (int i = 0; i < dr.DistributionPercentages.Count; i++) { var currPerc = dr.DistributionPercentages.ElementAt(i); if (mdr.regras.Any(r => r.fundo.id == currPerc.FundID && r.objetivo.id == currPerc.ReserveID) == false) { percsToRemove.Add(currPerc); } } dr.Name = mdr.nome; foreach (var perc in mdr.regras) { var dp = dr.DistributionPercentages.SingleOrDefault(p => p.FundID == perc.fundo.id && p.ReserveID == perc.objetivo.id); if (dp == null) { dp = new DistributionPercentage() { FundID = perc.fundo.id, ReserveID = perc.objetivo.id, Percentage = perc.porcentagem / 100 }; dr.DistributionPercentages.Add(dp); } else { dp.FundID = perc.fundo.id; dp.ReserveID = perc.objetivo.id; dp.Percentage = perc.porcentagem; } } using (var o = new FinancialOperations(q.Context)) o.UpdateRule(dr, percsToRemove); } } return(RulesPartial()); }
/// <summary> /// 添加或编辑申请成为分销商资料 /// </summary> /// <param name="userCode"></param> /// <param name="userId"></param> /// <param name="ruleId"></param> /// <param name="distributApplyFullDto"></param> /// <returns></returns> public ResultDTO AddDistributionIdentityInfoExt(string userCode, string userId, string ruleId, DistributApplyFullDTO distributApplyFullDto) { var result = new ResultDTO { isSuccess = false }; try { if (string.IsNullOrEmpty(userId) || (string.IsNullOrEmpty(ruleId) || distributApplyFullDto == null)) { result.Message = "参数不能为空"; return(result); } var drId = Guid.NewGuid(); var distributionApply = DistributionApply.ObjectSet().FirstOrDefault(t => t.RuleId == new Guid(ruleId) && t.UserId == new Guid(userId)); //新增 if (distributionApply == null) { var dr = DistributionRule.ObjectSet().FirstOrDefault(t => t.Id == new Guid(ruleId)); List <Guid> users = new List <Guid> { new Guid(userId) }; var user = CBCSV.Instance.GetUserInfoWithAccountList(users)[0]; var da = new DistributionApply() { Id = drId, SubTime = distributApplyFullDto.ModifiedOn = DateTime.Now, HasIdentity = dr != null && dr.NeedIdentity, RuleId = new Guid(ruleId), UserId = new Guid(userId), UserCode = userCode, UserName = user.Name, PicturePath = user.HeadIcon, Remarks = "", ParentId = distributApplyFullDto.ParentId, State = DistributeApplyStateEnum.Other, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(da); } //修改 else { drId = distributionApply.Id; } //先删除相关审核内容 var distributionIdentityList = DistributionIdentity.ObjectSet().Where(t => t.RuleId == new Guid(ruleId) && t.SubId == new Guid(userId)); foreach (var distributionIdentity in distributionIdentityList) { distributionIdentity.EntityState = EntityState.Deleted; ContextFactory.CurrentThreadContext.SaveObject(distributionIdentity); } if (distributApplyFullDto.DistributionIdentityFullDtos != null) { if (distributionApply != null) { distributionApply.State = !distributApplyFullDto.IsModified ? DistributeApplyStateEnum.PendingAudit : DistributeApplyStateEnum.AuditAgain; distributionApply.ModifiedOn = DateTime.Now; ContextFactory.CurrentThreadContext.SaveObject(distributionApply); } ResultDTO resultDto = SaveDistributionIdentity(drId, new Guid(ruleId), distributApplyFullDto.DistributionIdentityFullDtos); if (resultDto.isSuccess == false) { result.Message = "保存申请信息失败"; return(result); } } else { //添加不同用户的审核资料 var distributionIdentitySetList = DistributionIdentitySet.ObjectSet().Where(t => t.RuleId == new Guid(ruleId) && !t.IsDel); var i = 0; foreach (var distributionIdentitySet in distributionIdentitySetList) { var di = new DistributionIdentity { Id = Guid.NewGuid(), SubTime = DateTime.Now, ModifiedOn = DateTime.Now, SubId = ContextDTO.LoginUserID, ModifiedId = ContextDTO.LoginUserID, Name = distributionIdentitySet.Name, IdentitySetId = distributionIdentitySet.Id, RuleId = new Guid(ruleId), ApplyId = drId, ValueType = distributionIdentitySet.ValueType, Value = "", NameCategory = i, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(di); i++; } } int esActivityCount = ContextFactory.CurrentThreadContext.SaveChanges(); if (esActivityCount > 0) { result.isSuccess = true; result.Message = Convert.ToString(drId); } else { result.Message = "添加失败"; } return(result); } catch (Exception ex) { LogHelper.Error("AddDistributionIdentityInfoExt异常,异常信息:", ex); result.isSuccess = false; result.Message = "出现异常"; return(result); } }
/// <summary> /// 保存分销商申请设置 /// </summary> /// <returns></returns> public ResultDTO ModifyDistributRuleFullExt(DistributRuleFullDTO distributRuleFullDto) { var result = new ResultDTO { isSuccess = false }; try { if (distributRuleFullDto == null) { result.Message = "参数不能为空"; return(result); } //先处理该appid下的历史数据 ResultDTO ddr = DeleteDistributionRule(distributRuleFullDto.Id); if (ddr.isSuccess == false) { result.Message = ddr.Message; return(result); } ApprovalTypeVO approval = new ApprovalTypeVO() { Value = (int)distributRuleFullDto.TiApprovalType }; CalcOrderStateVO calc = new CalcOrderStateVO() { Value = (int)distributRuleFullDto.StartCalcState }; var distributionRule = new DistributionRule { Id = distributRuleFullDto.Id, SubTime = DateTime.Now, ModifiedOn = DateTime.Now, SubId = ContextDTO.LoginUserID, ModifiedId = ContextDTO.LoginUserID, HasCondition = distributRuleFullDto.HasCondition, NeedIdentity = distributRuleFullDto.NeedIdentity, OrderTimeLimit = distributRuleFullDto.OrderTimeLimit, OrderAmountLimit = distributRuleFullDto.OrderAmountLimit, HasCustomComs = distributRuleFullDto.HasCustomComs, Title = distributRuleFullDto.Title ?? "", ApprovalType = approval, StartCalcState = calc, RuleDesc = distributRuleFullDto.RuleDesc, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(distributionRule); if (distributRuleFullDto.DbIdentitySets != null) { ResultDTO resultDto = SaveDistributionIdentitySet(distributRuleFullDto.Id, distributRuleFullDto.DbIdentitySets); if (resultDto.isSuccess == false) { result.Message = resultDto.Message; return(result); } } int esActivityCount = ContextFactory.CurrentThreadContext.SaveChanges(); if (esActivityCount > 0) { result.isSuccess = true; result.Message = "添加成功"; } else { result.Message = "添加失败"; } return(result); } catch (Exception ex) { LogHelper.Error("ModifyDistributRuleFullExt异常,异常信息:", ex); result.isSuccess = false; result.Message = "出现异常"; return(result); } }
public void UpdateRule(DistributionRule dr, List <DistributionPercentage> percsToRemove) { Context.DistributionPercentages.RemoveRange(percsToRemove); Context.SaveChanges(); }
public void AddRule(DistributionRule rule) { Context.DistributionRules.Add(rule); Context.SaveChanges(); }
/// <summary> /// 查询一条 分销商申请资料设置 记录 /// </summary> /// <param name="ruleId"></param> /// <returns></returns> public DistributionRuleDTO GetDistributionRuleExt(Guid ruleId) { var applyEntity = DistributionRule.ObjectSet().FirstOrDefault(x => x.Id == ruleId); return(applyEntity == null ? null : applyEntity.ToEntityData()); }