Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }