/// <summary> /// 验证用户编辑的时候 时候后台规则有变化 /// </summary> /// <returns></returns> public bool CheckIsChange(Guid appId, Guid userId) { bool isChange = false; List <DistributionIdentitySetFullDTO> vDbIdentitySets = (from dis in DistributionIdentitySet.ObjectSet() join di in DistributionIdentity.ObjectSet() on dis.Id equals di.IdentitySetId where dis.RuleId == appId && di.SubId == userId 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, Value = di.Value }).ToList(); List <DistributionIdentitySetFullDTO> dbIdentitySets = (from dis in DistributionIdentitySet.ObjectSet() where dis.RuleId == 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, Value = "" }).ToList(); if (vDbIdentitySets.Count != dbIdentitySets.Count) { isChange = true; } else { //字段名字或者字段类型 做变更 if (vDbIdentitySets.Where((t, i) => t.Name != dbIdentitySets[i].Name || t.ValueType != dbIdentitySets[i].ValueType).Any()) { isChange = true; } } return(isChange); }
/// <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="ruleId"></param> /// <returns></returns> public List <DistributionIdentitySetDTO> GetDistributionIdentitySetsExt(Guid ruleId) { var setEntities = DistributionIdentitySet.ObjectSet() .Where(t => t.RuleId == ruleId) .OrderBy(x => x.NameCategory) .ToList(); var setDtos = setEntities.Select(x => x.ToEntityData()).ToList(); return(setDtos); }
/// <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); }
/// <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); } }