/// <summary> /// 用户信息新增 /// </summary> /// <param name="dto"></param> /// <returns></returns> public bool AddUser(UserOperate dto) { bool blResult = false; using (var tcdmse = new Entities.TCDMS_MasterDataEntities()) { //判断手机号 var pn = tcdmse.master_UserInfo.Where(p => p.PhoneNumber == dto.PhoneNumber).FirstOrDefault(); if (pn != null) { throw new Exception("该手机号已存在!"); } //用户 master_UserInfo user = new master_UserInfo(); Mapper.Map <UserOperate, master_UserInfo>(dto, user); tcdmse.master_UserInfo.Add(user); tcdmse.SaveChanges(); //用户权限 if (dto.UserAuthority != null) { foreach (var i in dto.UserAuthority) { if (i == null) { continue; } master_UserCustomerAuthority userauthority = new master_UserCustomerAuthority(); userauthority.UserID = user.UserID; userauthority.StructureID = i.StructureID; userauthority.UserButtonAuthority = i.UserButtonAuthority; tcdmse.master_UserCustomerAuthority.Add(userauthority); } } //用户角色 if (dto.UserRole != null) { var ur = tcdmse.master_RoleInfo.Where(r => dto.UserRole.Contains(r.RoleID)).ToList(); string rolestr = string.Join(",", ur.Select(s => s.RoleName).ToArray());//取得新增角色(日志) foreach (var u in ur) { user.master_RoleInfo.Add(u); } // 记录日志 if (!string.IsNullOrEmpty(rolestr)) { this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.ADD, LogDetails = "新增用户角色:" + "用户:" + dto.FullName + "角色:" + rolestr, OpratorName = dto.CreateUser }); } } //关联经销商 if (dto.UserDistributor != null) { var ur = tcdmse.master_DistributorInfo.Where(r => dto.UserDistributor.Contains(r.DistributorID)).ToList(); string disstr = string.Join(",", ur.Select(s => s.DistributorName).ToArray());//取得新增经销商(日志) foreach (var u in ur) { user.master_DistributorInfo.Add(u); } // 记录日志 if (!string.IsNullOrEmpty(disstr)) { this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.ADD, LogDetails = "新增用户关联经销商:" + "用户:" + dto.FullName + "经销商:" + disstr, OpratorName = dto.CreateUser }); } } // 记录日志 this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.ADD, LogDetails = "新增用户" + dto.FullName, OpratorName = dto.CreateUser }); blResult = tcdmse.SaveChanges() > 0; blResult = true; } return(blResult); }
/// <summary> /// 用户信息修改 /// </summary> /// <param name="dto"></param> /// <returns></returns> public bool UpdateUser(UserOperate dto) { bool blResult = false; using (var tcdmse = new Entities.TCDMS_MasterDataEntities()) { var pp = tcdmse.master_UserInfo.Where(p => p.UserID == dto.UserID).FirstOrDefault(); if (pp == null) { throw new Exception("此条信息不存在!"); } var pn = tcdmse.master_UserInfo.Where(p => p.UserID != dto.UserID && p.PhoneNumber == dto.PhoneNumber).FirstOrDefault(); if (pn != null) { throw new Exception("该手机号已存在!"); } //用户权限 var ww = tcdmse.master_UserCustomerAuthority.Where(w => w.UserID == pp.UserID); tcdmse.master_UserCustomerAuthority.RemoveRange(ww); if (dto.UserAuthority != null) { foreach (var i in dto.UserAuthority) { if (i == null) { continue; } master_UserCustomerAuthority userauthority = new master_UserCustomerAuthority(); userauthority.UserID = pp.UserID; userauthority.StructureID = i.StructureID; userauthority.UserButtonAuthority = i.UserButtonAuthority; tcdmse.master_UserCustomerAuthority.Add(userauthority); } } //用户角色 if (pp.master_AreaInfo.Count > 0) { if (dto.UserRole == null || dto.UserRole.Where(p => p.Value == 98).Count() == 0) { throw new Exception("已负责区域,无法去除客户管理员角色"); } } var OldRoleID = pp.master_RoleInfo.Select(q => q.RoleID).ToList(); var llRoleID = dto.UserRole != null?dto.UserRole.Select(p => p.Value).ToList() : new List <int>(); var ChangeRoleID = OldRoleID.Except(llRoleID).Union( llRoleID.Except(OldRoleID) ).ToList(); if (ChangeRoleID.Count > 0) { //记录日志 string roledelstr = string.Join(",", pp.master_RoleInfo.Select(s => s.RoleName).ToArray()); if (!string.IsNullOrEmpty(roledelstr)) { this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.DELETE, LogDetails = "删除用户角色:" + "用户:" + dto.FullName + "角色:" + roledelstr, OpratorName = dto.ModifyUser }); } pp.master_RoleInfo.Clear(); if (dto.UserRole != null) { var ur = tcdmse.master_RoleInfo.Where(r => dto.UserRole.Contains(r.RoleID)).ToList(); foreach (var u in ur) { pp.master_RoleInfo.Add(u); } //记录日志 string rolestr = string.Join(",", pp.master_RoleInfo.Select(s => s.RoleName).ToArray()); this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.ADD, LogDetails = "新增用户角色:" + "用户:" + dto.FullName + "角色:" + rolestr, OpratorName = dto.ModifyUser }); } } var OldID = pp.master_DistributorInfo.Select(q => q.DistributorID).ToList(); var llid = dto.UserDistributor != null?dto.UserDistributor.Select(p => p.Value).ToList() : new List <Guid>(); var Change = OldID.Except(llid).Union( llid.Except(OldID) ).ToList(); if (Change.Count > 0) { string disdelstr = string.Join(",", pp.master_DistributorInfo.Select(s => s.DistributorName).ToArray()); if (!string.IsNullOrEmpty(disdelstr)) { this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.DELETE, LogDetails = "删除用户关联经销商:" + "用户:" + dto.FullName + "经销商:" + disdelstr, OpratorName = dto.ModifyUser }); } //关联经销商 //记录日志 pp.master_DistributorInfo.Clear(); if (dto.UserDistributor != null) { var ur = tcdmse.master_DistributorInfo.Where(r => dto.UserDistributor.Contains(r.DistributorID)).ToList(); string disstr = string.Join(",", ur.Select(s => s.DistributorName).ToArray());//取得新增经销商(日志) foreach (var u in ur) { pp.master_DistributorInfo.Add(u); } // 记录日志 this.AddLog(tcdmse, new LogData { CurrentLogType = LogType.ADD, LogDetails = "新增用户关联经销商:" + "用户:" + dto.FullName + "经销商:" + disstr, OpratorName = dto.ModifyUser }); } } //用户 pp.UserType = dto.UserType; pp.UserCode = dto.UserCode; pp.PhoneNumber = dto.PhoneNumber; pp.FullName = dto.FullName; pp.Email = dto.Email; pp.DepartID = dto.DepartID; pp.StopTime = dto.StopTime; pp.ModifyTime = dto.ModifyTime; pp.ModifyUser = dto.ModifyUser; blResult = tcdmse.SaveChanges() > 0; blResult = true; } return(blResult); }
/// <summary> /// 用户审核(通过) /// </summary> /// <param name="dto"></param> /// <returns></returns> public bool AuditUserApplyAdopt(UserApplyOperateDTO dto) { bool blResult = false; using (var tcdmse = new Entities.TCDMS_MasterDataEntities()) { List <int?> ridlist = new List <int?>(); //审核的角色 List <string> modellist = new List <string>(); //审核的模块 if (dto != null) { var strauth = tcdmse.dict_Structure.ToList(); var qq = tcdmse.master_UserInfo.Where(p => p.PhoneNumber == dto.UserApplyTelNumber).FirstOrDefault(); if (qq == null) { //从用户申请表 => 用户表 master_UserInfo user = new master_UserInfo(); user.FullName = dto.UserApplyName; user.PhoneNumber = dto.UserApplyTelNumber; user.Email = dto.UserApplyEmail; user.UserType = dto.UserApplyType; user.IsActive = true; user.StopTime = dto.StopTime; user.DepartID = 1; user.CreateTime = dto.CreateTime; user.CreateUser = dto.CreateUser; tcdmse.master_UserInfo.Add(user); tcdmse.SaveChanges(); //用户申请表关联经销商str => 用户经销商表 if (dto.DistributorIDList != null) { List <string> Dlist = dto.DistributorIDList.Split(',').ToList(); List <Guid> Dguidlist = new List <Guid>(); foreach (var d in Dlist) { Guid g = Guid.Empty; if (Guid.TryParse(d, out g)) { Dguidlist.Add(Guid.Parse(d)); } } var dd = tcdmse.master_DistributorInfo.Where(w => Dguidlist.Contains(w.DistributorID)); foreach (var d in dd) { user.master_DistributorInfo.Add(d); } } } qq = tcdmse.master_UserInfo.Where(p => p.PhoneNumber == dto.UserApplyTelNumber).FirstOrDefault(); if (dto.UserChangeID == null)//新用户申请 { List <CurrentAuthorityDTO> uappa = new List <CurrentAuthorityDTO>(); foreach (var rl in dto.RoleIDlist) { if (dto.AuditRoleIDList.Contains("," + rl.Value.ToString() + ",")) { ridlist.Add(rl); //通过静态类取得角色对应的模块ID List <string> Sid = ModelRoleDTO.ModelRolelist.Where(p => p.RoleID == rl).Select(s => s.ModelID).ToList(); foreach (var s in Sid) { uappa.AddRange(dto.ApplyUserAuthority.Where(ua => ua.StructureID.StartsWith(s)).Select(sw => new CurrentAuthorityDTO { StructureID = sw.StructureID, BelongButton = sw.AppyUserButtonAuthority })); } } } //得到通过模块的权限 var userapplyaut = uappa.Select(s => new { s.StructureID, s.BelongButton }).Distinct().ToList(); modellist.AddRange(userapplyaut.Where(s => s.StructureID.Length == 3).Select(ss => ss.StructureID).ToList()); foreach (var q in userapplyaut) { master_UserCustomerAuthority userauthority = new master_UserCustomerAuthority(); userauthority.UserID = qq.UserID; userauthority.StructureID = q.StructureID; userauthority.UserButtonAuthority = q.BelongButton; tcdmse.master_UserCustomerAuthority.Add(userauthority); } } else { List <CurrentAuthorityDTO> uappa = new List <CurrentAuthorityDTO>(); foreach (var rl in dto.RoleIDlist) { if (dto.AuditRoleIDList.Contains("," + rl.Value.ToString() + ",")) { //通过静态类取得角色对应的模块ID List <string> Sid = ModelRoleDTO.ModelRolelist.Where(p => p.RoleID == rl).Select(s => s.ModelID).ToList(); foreach (var s in Sid) { tcdmse.master_UserCustomerAuthority.RemoveRange(qq.master_UserCustomerAuthority.Where(ua => ua.StructureID.StartsWith(s))); uappa.AddRange(dto.ApplyUserAuthority.Where(ua => ua.StructureID.StartsWith(s)).Select(sw => new CurrentAuthorityDTO { StructureID = sw.StructureID, BelongButton = sw.AppyUserButtonAuthority })); } } } //得到通过模块的权限 var userapplyaut = uappa.Select(s => new { s.StructureID, s.BelongButton }).Distinct().ToList(); modellist.AddRange(userapplyaut.Where(s => s.StructureID.Length == 3).Select(ss => ss.StructureID).ToList()); foreach (var q in userapplyaut) { master_UserCustomerAuthority userauthority = new master_UserCustomerAuthority(); userauthority.UserID = qq.UserID; userauthority.StructureID = q.StructureID; userauthority.UserButtonAuthority = q.BelongButton; tcdmse.master_UserCustomerAuthority.Add(userauthority); } } } blResult = tcdmse.SaveChanges() > 0; } return(blResult); }