/// <summary> /// 变更审核状态 /// </summary> /// <param name="appId"></param> /// <param name="userId"></param> /// <param name="distributeApplyStateEnum"></param> /// <returns></returns> public ResultDTO UpdateDistributionApplyStateExt(Guid appId, Guid userId, DistributeApplyStateEnum distributeApplyStateEnum) { var result = new ResultDTO { isSuccess = false }; var distributionApply = DistributionApply.ObjectSet().FirstOrDefault(t => t.UserId == userId && t.RuleId == appId); if (distributionApply != null) { distributionApply.State = distributeApplyStateEnum; distributionApply.ModifiedOn = DateTime.Now; distributionApply.EntityState = EntityState.Modified; } ContextFactory.CurrentThreadContext.SaveObject(distributionApply); int daCount = ContextFactory.CurrentThreadContext.SaveChanges(); if (daCount > 0) { result.isSuccess = true; LogHelper.Info("UpdateDistributionApplyState变更状态成功appId:" + appId + ",userId:" + userId + ",distributeApplyStateEnum:" + distributeApplyStateEnum + ""); } else { LogHelper.Info("UpdateDistributionApplyState变更状态失败appId:" + appId + ",userId:" + userId + ",distributeApplyStateEnum:" + distributeApplyStateEnum + ""); } return(result); }
/// <summary> /// 查询某个app符合条件的 分销商申请 列表 /// </summary> /// <param name="appId"></param> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="rowCount"></param> /// <param name="userName"></param> /// <param name="state"></param> /// <returns></returns> public List <DistributionApplyResultDTO> GetDistributionApplyListByWhereExt(Guid appId, int pageSize, int pageIndex, out int rowCount, string userName, int state) { //昵称的NameCategory var nameCategory_Name = 0; var query = from apply in DistributionApply.ObjectSet().Where(x => x.RuleId == appId) join setval in DistributionIdentity.ObjectSet().Where(x => x.NameCategory == nameCategory_Name) on apply.Id equals setval.ApplyId into setval2 from setval in setval2.DefaultIfEmpty() select new { Apply = apply, SetVal = setval }; if (state == 1) { query = query.Where(x => x.Apply.State.Value == 1 || x.Apply.State.Value == 4); } else if (state > 0) { query = query.Where(x => x.Apply.State.Value == state); } else { query = query.Where(x => x.Apply.State.Value != 0);//不显示0状态 } if (!string.IsNullOrWhiteSpace(userName)) { query = query.Where(x => x.Apply.UserName.Contains(userName) || x.Apply.UserCode.Contains(userName) || x.SetVal.Value.Contains(userName)); } rowCount = query.Count(); var queryOrdered = query.OrderByDescending(x => x.Apply.SubTime); var entities = queryOrdered.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); LogHelper.Debug(string.Format("GetDistributionApplyListByWhereExt(userName:{0},state:{1}),查询结果:{2}条记录。", userName, state, rowCount)); if (entities.Any()) { var applyIds = string.Join(",", entities.Select(x => "Guid'" + x.Apply.Id + "'").ToArray()); var allapplysIdentityVals = DistributionIdentity.ObjectSet() .Where("it.ApplyId in {" + applyIds + "}") .Where(x => !string.IsNullOrEmpty(x.Value))//排除value为空的设置 .ToList(); //根据applyId取identity Func <Guid, List <DistributionIdentityDTO> > identityVals = (Guid applyId) => allapplysIdentityVals.Where(x => x.ApplyId == applyId) .Select(x => x.ToEntityData()).ToList(); var dtos = entities.Select(x => new DistributionApplyResultDTO(x.Apply.ToEntityData(), identityVals(x.Apply.Id))).ToList(); return(dtos); } else { return(new List <DistributionApplyResultDTO>()); } }
/// <summary> /// 获取用户审核状态 /// </summary> /// <param name="appId"></param> /// <param name="userId"></param> /// <returns></returns> public ResultDTO GetDistributeStateExt(Guid appId, Guid userId) { ResultDTO result = new ResultDTO() { isSuccess = true }; var da = DistributionApply.ObjectSet().FirstOrDefault(t => t.RuleId == appId && t.UserId == userId); if (da != null) { result.ResultCode = da.State.Value; if (result.ResultCode == (int)DistributeApplyStateEnum.AuditRefuse) { result.Message = da.RefuseReason; } return(result); } result.ResultCode = -1; 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); } }
/// <summary> /// 查询一条 分销商申请 记录 /// </summary> /// <param name="ruleId"></param> /// <param name="userId"></param> /// <returns></returns> public DistributionApplyDTO GetDistributionApplyExt(Guid ruleId, Guid userId) { var applyEntity = DistributionApply.ObjectSet().FirstOrDefault(x => x.RuleId == ruleId && x.UserId == userId); return(applyEntity == null ? null : applyEntity.ToEntityData()); }
/// <summary> /// 查询一条 分销商申请 记录 /// </summary> /// <param name="applyId"></param> /// <returns></returns> public DistributionApplyDTO GetDistributionApplyExt(Guid applyId) { var applyEntity = DistributionApply.ObjectSet().FirstOrDefault(x => x.Id == applyId); return(applyEntity == null ? null : applyEntity.ToEntityData()); }
/// <summary> /// 更新DistributionApply表,插入DistributionApplyAudit记录 /// </summary> /// <param name="applyId"></param> /// <param name="isAuditing"></param> /// <param name="isAuditingPass"></param> /// <param name="txt"></param> /// <returns></returns> private ResultDTO <DistributionApply> UpdateDistributionApplyAndAudit(Guid applyId, bool isAuditing, bool isAuditingPass, string txt) { ContextSession contextSession = ContextFactory.CurrentThreadContext; var now = DateTime.Now; var apply = DistributionApply.ObjectSet().FirstOrDefault(t => t.Id == applyId); if (apply == null) { return new ResultDTO <DistributionApply> { isSuccess = false, ResultCode = 0, Message = "没有找到ID='" + applyId + "'的数据!", Data = null } } ; var refuseTxt = ""; var detailTxt = ""; if (isAuditing) { if (isAuditingPass) { if (apply.State.EnumValue == DistributeApplyStateEnum.Audit) { return new ResultDTO <DistributionApply> { isSuccess = false, ResultCode = 0, Message = "此申请已经通过审核,不能重复通过审核!", Data = null } } ; apply.State = new DistributionApplySate { EnumValue = DistributeApplyStateEnum.Audit, Value = (int)DistributeApplyStateEnum.Audit }; } else { apply.State = new DistributionApplySate { EnumValue = DistributeApplyStateEnum.AuditRefuse, Value = (int)DistributeApplyStateEnum.AuditRefuse }; apply.RefuseReason = txt; refuseTxt = txt; } } else { apply.Remarks = txt; detailTxt = txt; } apply.ModifiedOn = now; apply.EntityState = EntityState.Modified; //IsPass取当前entity的状态 var isPass = apply.State.EnumValue == DistributeApplyStateEnum.Audit; var audit = new DistributionApplyAudit { Id = Guid.NewGuid(), ApplyId = applyId, SubTime = now, SubId = ContextDTO.LoginUserID, Details = detailTxt, RefuseReason = refuseTxt, IsPass = isPass, EntityState = EntityState.Added }; contextSession.SaveObject(audit); contextSession.SaveChanges(); return(new ResultDTO <DistributionApply> { isSuccess = true, ResultCode = 1, Data = apply }); }
/// <summary> /// 获取分销商的所有身份设置 /// </summary> /// <param name="distributorList"></param> /// <returns></returns> public List <DistributorsHasIdentityResultDTO> GetDistributorsIdentitysExt(List <Guid> distributorList) { var result = new List <DistributorsHasIdentityResultDTO>(); var distributorIds = string.Join(",", distributorList.Select(x => "Guid'" + x + "'").ToArray()); if (distributorIds.Any()) { var distributorObjectSet = Distributor.ObjectSet() .Where("it.Id in {" + distributorIds + "}"); var stateAudit = (int)DistributeApplyStateEnum.Audit; var applyList = (from distributor in distributorObjectSet join apply in DistributionApply.ObjectSet() on new { UserId = distributor.UserId, AppId = distributor.EsAppId } equals new { UserId = apply.UserId, AppId = apply.RuleId } where apply.State.Value == stateAudit select new { DistributorId = distributor.Id, ApplyId = apply.Id, PicturePath = apply.PicturePath }) .Distinct() .ToList(); if (applyList.Any()) { var applyIds = string.Join(",", applyList.Select(x => x.ApplyId).Select(x => "Guid'" + x + "'").ToArray()); var identitysList = DistributionIdentity.ObjectSet().Where("it.ApplyId in {" + applyIds + "}").ToList(); Func <Guid, Guid> getApplyFunc = (distributorId) => { var first = applyList.FirstOrDefault(x => x.DistributorId == distributorId); return(first == null ? Guid.Empty : first.ApplyId); }; Func <Guid, string> getPicturePathFunc = (distributorId) => { var first = applyList.FirstOrDefault(x => x.DistributorId == distributorId); return(first == null ? "" : first.PicturePath); }; Func <Guid, bool> hasIdentityFunc = (applyId) => { var identitys = identitysList.Where(x => x.ApplyId == applyId); return(identitys.Any()); }; Func <Guid, List <DistributionIdentityDTO> > getIdentitysFunc = (applyId) => { var identitys = identitysList.Where(x => x.ApplyId == applyId); return(identitys.Select(x => x.ToEntityData()).ToList()); }; distributorList.ForEach(x => result.Add(new DistributorsHasIdentityResultDTO { DistributorId = x, ApplyId = getApplyFunc(x), PicturePath = getPicturePathFunc(x), HasIdentity = hasIdentityFunc(getApplyFunc(x)), Identitys = getIdentitysFunc(getApplyFunc(x)) })); } } return(result); }