From 64c0b7c18324e1e905e5594fe346b419a0d889fb Mon Sep 17 00:00:00 2001 From: liujiaqiang <1448951783@qq.com> Date: Sun, 8 Oct 2023 16:08:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=AE=E6=94=B9=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=94=A8=E6=88=B7=E5=B9=B6=E4=B8=94=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E7=9A=84=E8=A7=92=E8=89=B2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E8=8E=B7=E5=8F=96=E8=A7=92=E8=89=B2=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E8=8F=9C=E5=8D=95=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=8F=9C=E5=8D=95=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=A0=91=E5=9E=8B=E8=8F=9C=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SystemControllerController.cs | 245 ++++++++++++------ Elight.Entity/AuthManageProfile.cs | 2 + Elight.Entity/SystemDto/App_Sys_RoleDto.cs | 33 +++ Elight.Entity/SystemDto/App_Sys_UserDto.cs | 145 +++++++++++ .../SystemModel/App_Sys_RoleMenuModel.cs | 2 +- .../SystemModel/App_Sys_RoleUserModel.cs | 2 +- Elight.Logic/SystemModel/App_Sys_MenuTree.cs | 2 +- .../SystemModel/App_Sys_RoleMenuAdd.cs | 2 +- 8 files changed, 344 insertions(+), 89 deletions(-) create mode 100644 Elight.Entity/SystemDto/App_Sys_RoleDto.cs create mode 100644 Elight.Entity/SystemDto/App_Sys_UserDto.cs diff --git a/24Hour/Controllers/system/SystemControllerController.cs b/24Hour/Controllers/system/SystemControllerController.cs index 243601f..4c02d23 100644 --- a/24Hour/Controllers/system/SystemControllerController.cs +++ b/24Hour/Controllers/system/SystemControllerController.cs @@ -1,4 +1,5 @@ -using com.sun.org.apache.bcel.@internal.generic; +using AutoMapper; +using com.sun.org.apache.bcel.@internal.generic; using com.sun.xml.@internal.ws.api.model; using Elight.Entity; using Elight.Entity.SystemModel; @@ -30,14 +31,16 @@ namespace _24Hour.Controllers.system App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly ILogger _logger;//日志 private readonly WechatMessagerClient wechatMessagerClient; + private readonly IMapper _mapper; Result result = new Result(); - public SystemControllerController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WechatMessagerClient _wechatMessagerClient) + public SystemControllerController(IMapper mapper, ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WechatMessagerClient _wechatMessagerClient) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); this.wechatMessagerClient = _wechatMessagerClient; + _mapper = mapper; } #endregion #region 用户管理 @@ -80,9 +83,12 @@ namespace _24Hour.Controllers.system { RefAsync totalNumber = 0;//总数据 var userlist = new List(); - - var Unitlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); - var Departlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); + //获取单位信息 + var Unitlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); + //获取部门信息 + var Departlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); + //获取角色信息 + var RoleModel = _db.Queryable().LeftJoin((o, i) => o.roleId == i.Id && o.IsDelete == 0&&i.IsDeleted == 0).Select((o,i)=> new App_Sys_RoleDto {Id=o.roleId,name=i.name,userId=o.roleuserId }).ToList(); var list = await _db.Queryable() .WhereIF(!UserModel.name.IsNull(), q => q.name.Contains(UserModel.name)) .WhereIF(!UserModel.phone.IsNull(), q => q.phone.Contains(UserModel.phone)) @@ -112,7 +118,9 @@ namespace _24Hour.Controllers.system q.identity, q.createtime, unitname = Unitdata?.unitname, - departname = Departdata?.departname + departname = Departdata?.departname, + roleId = RoleModel.FirstOrDefault(x=>x.userId==q.Id)?.Id, + roleName = RoleModel.FirstOrDefault(x => x.userId == q.Id)?.name, }); }); var data = new { Paging = UserModel, Data = userlist }; @@ -152,11 +160,12 @@ namespace _24Hour.Controllers.system /// [HttpPost] [Route("AddUser0")] - public async Task AddUser0(App_Sys_UserModel UserModel) + public async Task AddUser0(App_Sys_UserDto UserModel) { try - { - var data = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.phone == UserModel.phone || q.cardId == UserModel.cardId).FirstAsync(); + { + var UserDate = _mapper.Map(UserModel); + var data = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.phone == UserDate.phone || q.cardId == UserDate.cardId).FirstAsync(); if (data != null) { result.IsSucceed = false; @@ -164,13 +173,28 @@ namespace _24Hour.Controllers.system return result; } _db.BeginTran(); - UserModel.Id = Guid.NewGuid().ToString(); - UserModel.createuserId = _userdata.Id.ToString(); - UserModel.createusername = _userdata.name; - UserModel.usertype = 0; + UserDate.Id = Guid.NewGuid().ToString(); + UserDate.createuserId = _userdata.Id.ToString(); + UserDate.createusername = _userdata.name; + UserDate.usertype = 0; //默认密码 - UserModel.Password = string.IsNullOrEmpty(UserModel.Password) ? Elight.Utility.Encrypt.Md5.Encrypt32($"mr123456").ToLower() : Elight.Utility.Encrypt.Md5.Encrypt32(UserModel.Password).ToLower(); - var num = await _db.Insertable(UserModel).ExecuteCommandAsync(); + UserDate.Password = string.IsNullOrEmpty(UserDate.Password) ? Elight.Utility.Encrypt.Md5.Encrypt32($"mr123456").ToLower() : Elight.Utility.Encrypt.Md5.Encrypt32(UserDate.Password).ToLower(); + var roledata = new App_Sys_RoleUserModel(); + if (!string.IsNullOrEmpty(UserModel.roleId)) + { + //添加角色用户信息 + roledata = new App_Sys_RoleUserModel() + { + Id = Guid.NewGuid().ToString(), + roleId = UserModel.roleId, + roleuserId = UserDate.Id, + userId = _userdata.Id.ToString(), + username = _userdata.name, + }; + } + var num = await _db.Insertable(UserDate).ExecuteCommandAsync(); + if (roledata.Id != null) + await _db.Insertable(roledata).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { @@ -242,7 +266,7 @@ namespace _24Hour.Controllers.system /// [HttpPost] [Route("UpdateUser")] - public async Task UpdateUser(App_Sys_UserModel UserModel) + public async Task UpdateUser(App_Sys_UserDto UserModel) { try { @@ -256,10 +280,34 @@ namespace _24Hour.Controllers.system model.duties = UserModel.duties; model.phone = UserModel.phone; model.cardId = UserModel.cardId; - } + } + _db.BeginTran(); var num = await _db.Updateable(model).UpdateColumns(it => new { it.unitCode, it.department, it.name, it.sex, it.duties, it.phone, it.cardId }).ExecuteCommandAsync(); - //var num = await _db.Updateable(UserModel).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + //判断角色不等于空进 + if (!string.IsNullOrEmpty(UserModel.roleId)) + { + if (_db.Queryable().Any(x =>x.IsDelete == 0&& x.roleuserId == UserModel.Id)) + { + //查询角色用户是否存在 + var rolemodel = await _db.Queryable().Where(x => x.IsDelete == 0 && x.roleuserId == UserModel.Id).FirstAsync(); + rolemodel.roleId = UserModel.roleId; + await _db.Updateable(rolemodel).UpdateColumns(it => new { it.roleId }).ExecuteCommandAsync(); + } + else + { + var rolemodel = new App_Sys_RoleUserModel() + { + Id = Guid.NewGuid().ToString(), + roleId = UserModel.roleId, + roleuserId = UserModel.Id, + userId = _userdata.Id.ToString(), + username = _userdata.name, + }; + if (rolemodel != null) + await _db.Insertable(rolemodel).ExecuteCommandAsync(); + } + } _db.CommitTran(); if (num > 0) { @@ -742,7 +790,7 @@ namespace _24Hour.Controllers.system #region 角色菜单管理 /// - /// 获取角色下的所有菜单信息 + /// 获取角色下的所有菜单Id /// /// /// @@ -753,11 +801,13 @@ namespace _24Hour.Controllers.system var totalCount = 0; var list = await _db.Queryable() .WhereIF(!roledata.roleId.IsNull(), q => q.roleId == roledata.roleId) - .Where(q => q.IsDeleted == 0).Select(x => x.menuId).ToListAsync(); + .Where(q => q.IsDelete == 0).Select(x => x.menuId).ToListAsync(); //roledata.PageCount = totalCount; //var data = new QueryResult(roledata, list); + var ids = ""; + list.ForEach(x => ids += $"{x},"); result.IsSucceed = true; - result.result = list; + result.result = ids.Trim(',').Split(","); return result; } @@ -772,20 +822,36 @@ namespace _24Hour.Controllers.system { try { + if (string.IsNullOrEmpty(RoleMenudata.RoleMenuIds)) + { + result.IsSucceed = false; + result.result = "没有选中项"; + return result; + } //查询角色下的菜单 var list = await _db.Queryable().Where(q => q.roleId == RoleMenudata.Id).ToListAsync(); _db.BeginTran(); //删除角色下的菜单 await _db.Deleteable(list).ExecuteCommandAsync(); - //添加角色菜单 - RoleMenudata.RoleMenulist.ForEach(data => - { - data.Id = Guid.NewGuid().ToString(); - data.roleId = RoleMenudata.Id; - data.userId = _userdata.Id.ToString(); - data.username = _userdata.name; - }); - var num = await _db.Insertable(RoleMenudata.RoleMenulist).ExecuteCommandAsync(); + var RoleMenulist = RoleMenudata.RoleMenuIds.Split(","); + var menulist = new List(); + if (RoleMenulist.Length > 0) + { + //添加角色菜单 + for (int i = 0; i < RoleMenulist.Length; i++) + { + var App_Sys_RoleMenuModel = new App_Sys_RoleMenuModel() + { + Id = Guid.NewGuid().ToString(), + roleId = RoleMenudata.Id, + userId = _userdata.Id.ToString(), + username = _userdata.name, + menuId = RoleMenulist[i], + }; + menulist.Add(App_Sys_RoleMenuModel); + } + } + var num = await _db.Insertable(menulist).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { @@ -818,7 +884,7 @@ namespace _24Hour.Controllers.system var userlist = await _db.Queryable().Where(q => q.roleId == Currency.tyId).In(q => q.menuId, Currency.id).ToListAsync(); userlist.ForEach(q => { - q.IsDeleted = 1; + q.IsDelete = 1; }); var num = await _db.Updateable(userlist).ExecuteCommandAsync(); _db.CommitTran(); @@ -853,7 +919,7 @@ namespace _24Hour.Controllers.system //获取角色下得所有用户id var list = await _db.Queryable() .WhereIF(roledata.roleId.IsNull(), q => q.roleId == roledata.roleId) - .Where(q => q.IsDeleted == 0).Select(x => x.roleuserId).ToListAsync(); + .Where(q => q.IsDelete == 0).Select(x => x.roleuserId).ToListAsync(); //roledata.PageCount = totalCount; //var data = new QueryResult(roledata, list); result.IsSucceed = true; @@ -917,7 +983,7 @@ namespace _24Hour.Controllers.system var userlist = await _db.Queryable().Where(q => q.roleId == Currency.tyId).In(q => q.roleuserId, Currency.id).ToListAsync(); userlist.ForEach(q => { - q.IsDeleted = 1; + q.IsDelete = 1; }); var num = await _db.Updateable(userlist).ExecuteCommandAsync(); _db.CommitTran(); @@ -1281,9 +1347,9 @@ namespace _24Hour.Controllers.system } /// - /// 单位树型查询 + /// 菜单树型查询 /// - /// + /// /// [HttpPost] [Route("QueryMenuTree")] @@ -1292,7 +1358,7 @@ namespace _24Hour.Controllers.system var treelist = await _db.Queryable() .WhereIF(!Menudata.name.IsNull(), q => q.name.Contains(Menudata.name)) .WhereIF(!Menudata.title.IsNull(), q => q.title.Contains(Menudata.title)) - .Where(q => q.IsDelete == 0).OrderBy(q => q.sortnum, OrderByType.Desc).ToTreeAsync(it => it.children, it => it.pid, null); + .Where(q => q.IsDelete == 0).OrderBy(q => q.sortnum, OrderByType.Asc).ToTreeAsync(it => it.children, it => it.pid, null); result.IsSucceed = true; result.result = treelist; return result; @@ -1442,60 +1508,69 @@ namespace _24Hour.Controllers.system { var list = new List(); //获取父级菜单 - var pidlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); + var pidlist = await _db.Queryable().Where(q => q.IsDelete == 0&&string.IsNullOrEmpty(q.pid)).ToListAsync(); //联表查询该用户菜单 - var menulist = await _db.Queryable().Where(q => q.roleuserId == _userdata.Id) + var menulist = await _db.Queryable().Where(x=> x.roleuserId == _userdata.Id) .LeftJoin((o, cus) => o.roleId == cus.roleId) - .LeftJoin((o, cus, menu) => o.roleId == cus.roleId) - .Where((o, cus, menu) => o.IsDeleted == 0 && cus.IsDeleted == 0 && menu.IsDelete == 0) + .LeftJoin((o, cus, menu) => cus.menuId== menu.Id) + .Where((o, cus, menu) => o.IsDelete == 0 && cus.IsDelete == 0 && menu.IsDelete == 0) .Select((o, cus, menu) => menu) .ToListAsync(); + if (_userdata.phone=="admin") + { + menulist = await _db.Queryable().Where(x => x.IsDelete == 0).ToListAsync(); + } //通过分组父级菜单 - var datalist = menulist.GroupBy(q => q.pid).Select(q => new { pid = q.Key, dalist = q.ToList() }).ToList(); - - datalist.ForEach(item => - { - var data = pidlist.Where(q => q.Id == item.pid).FirstOrDefault(); - if (data != null) - { - var childrenlist = new List(); - //添加子菜单 - item.dalist.ForEach(it => - { - childrenlist.Add(new - { - path = it.path, - name = it.name, - component = it.component, - //redirect = it.redirect, - meta = new - { - title = it.title, - //hideMenu = it.hideMenu, - //hideBreadcrumb = it.hideBreadcrumb, - //currentActiveMenu = it.currentActiveMenu, - icon = it.icon, - }, - }); - }); - - //添加父级菜单 - list.Add(new - { - path = data.path, - name = data.name, - component = data.component, - //redirect = data.redirect, - meta = new - { - title = data.title, - //hideChildrenInMenu = data.hideChildrenInMenu, - icon = data.icon, - }, - children = childrenlist - }); - } - }); + var datalist = menulist.OrderBy(q=>q.sortnum).GroupBy(q => q.pid).Select(q => new { pid = q.Key, dalist = q.OrderBy(q=>q.sortnum).ToList() }).ToList(); + if (datalist.Count>0) + { + pidlist.OrderBy(q => q.sortnum).ToList().ForEach(item => { + var data = datalist.Where(q => q.pid == item.Id).FirstOrDefault(); + var childrenlist = new List(); + if (data != null) + { + //添加子菜单 + data.dalist.ForEach(it => + { + childrenlist.Add(new + { + path = it.path, + name = it.name, + component = it.component, + //redirect = it.redirect, + meta = new + { + title = it.title, + //hideMenu = it.hideMenu, + //hideBreadcrumb = it.hideBreadcrumb, + //currentActiveMenu = it.currentActiveMenu, + icon = it.icon, + }, + }); + }); + } + + var fjdata = datalist.Where(q => string.IsNullOrEmpty(q.pid)).FirstOrDefault()?.dalist.FirstOrDefault(q=>q.Id== item.Id); + if (childrenlist.Count>0|| fjdata!=null) + { + //添加父级菜单 + list.Add(new + { + path = item.path, + name = item.name, + component = item.component, + //redirect = data.redirect, + meta = new + { + title = item.title, + //hideChildrenInMenu = data.hideChildrenInMenu, + icon = item.icon, + }, + children = childrenlist + }); + } + }); + } result.IsSucceed = true; result.result = list; diff --git a/Elight.Entity/AuthManageProfile.cs b/Elight.Entity/AuthManageProfile.cs index d428ee6..7b4f39f 100644 --- a/Elight.Entity/AuthManageProfile.cs +++ b/Elight.Entity/AuthManageProfile.cs @@ -24,6 +24,8 @@ namespace Elight.Entity CreateMap(); CreateMap(); + //用户管理 + CreateMap(); } } } diff --git a/Elight.Entity/SystemDto/App_Sys_RoleDto.cs b/Elight.Entity/SystemDto/App_Sys_RoleDto.cs new file mode 100644 index 0000000..8c1c05a --- /dev/null +++ b/Elight.Entity/SystemDto/App_Sys_RoleDto.cs @@ -0,0 +1,33 @@ + +using SqlSugar; +using System; +using System.Runtime.Serialization; + +namespace Elight.Entity +{ + /// + /// 角色表(扩展) + /// + [DataContract] + public class App_Sys_RoleDto + { + /// + /// 角色Id + /// + [DataMember] + public string? Id { get; set; } + + /// + /// 角色名称 + /// + [DataMember] + public string? name { get; set; } + + /// + /// 角色用户 + /// + [DataMember] + public string? userId { get; set; } + } +} + diff --git a/Elight.Entity/SystemDto/App_Sys_UserDto.cs b/Elight.Entity/SystemDto/App_Sys_UserDto.cs new file mode 100644 index 0000000..80c0be1 --- /dev/null +++ b/Elight.Entity/SystemDto/App_Sys_UserDto.cs @@ -0,0 +1,145 @@ + +using SqlSugar; +using System; +using System.Runtime.Serialization; + +namespace Elight.Entity +{ + /// + /// 用户信息表(app_sys_user) + /// + [DataContract] + public class App_Sys_UserDto + { + /// + /// 表里用户唯一标识符,自增长Id + /// + [DataMember] + public string? Id { get; set; } + + /// + /// 单位编码 + /// + [DataMember] + public string? unitCode { get; set; } + + /// + /// 部门id + /// + [DataMember] + public string? department { get; set; } + + /// + /// 部门 + /// + [DataMember] + public string? departmentName { get; set; } + /// + /// 密码 + /// + [DataMember] + public string? Password { get; set; } + + /// + /// 名称 + /// + [DataMember] + public string? name { get; set; } + + /// + /// 职务 + /// + [DataMember] + public string? duties { get; set; } + + /// + /// 电话号码 + /// + [DataMember] + public string? phone { get; set; } + + /// + /// 身份证号码 + /// + [DataMember] + public string? cardId { get; set; } + /// + /// 身份(检察官,律师,当事人) + /// + [DataMember] + public string? identity { get; set; } + + /// + /// 微信Id + /// + [DataMember] + public string? wechatId { get; set; } + + /// + /// 账号类型0:系统,1:APP + /// + [DataMember] + public int? usertype { get; set; } + + /// + /// 是否停用 0:启用,1禁用 + /// + [DataMember] + public int? isdeactivate { get; set; } = 0; + + /// + /// 是否App通用:0:通用,1:不通用 + /// + [DataMember] + public int? becurrent { get; set; } + + /// + /// 头像地址 + /// + [DataMember] + public string? photo { get; set; } + + /// + /// 性别 0:女 1:男 + /// + [DataMember] + public int? sex { get; set; } + + /// + /// 是否删除 + /// + [DataMember] + public int? IsDeleted { get; set; } = 0; + /// + /// 审核状态 + /// + [DataMember] + public int? audit { get; set; } + /// + /// 审核描述 + /// + [DataMember] + public string? describe { get; set; } + /// + /// 创建人Id + /// + [DataMember] + public string? createuserId { get; set; } + /// + /// 创建人 + /// + [DataMember] + public string? createusername { get; set; } + /// + /// 角色ID + /// + [DataMember] + public string? roleId { get; set; } + /// + /// 创建时间 + /// + [DataMember] + public DateTime? createtime { get; set; } = DateTime.Now; + } +} + diff --git a/Elight.Entity/SystemModel/App_Sys_RoleMenuModel.cs b/Elight.Entity/SystemModel/App_Sys_RoleMenuModel.cs index 15289ac..3e449ef 100644 --- a/Elight.Entity/SystemModel/App_Sys_RoleMenuModel.cs +++ b/Elight.Entity/SystemModel/App_Sys_RoleMenuModel.cs @@ -54,7 +54,7 @@ namespace Elight.Entity /// 是否删除 /// [DataMember] - public int? IsDeleted { get; set; } = 0; + public int? IsDelete { get; set; } = 0; } } diff --git a/Elight.Entity/SystemModel/App_Sys_RoleUserModel.cs b/Elight.Entity/SystemModel/App_Sys_RoleUserModel.cs index 704c872..aa934b3 100644 --- a/Elight.Entity/SystemModel/App_Sys_RoleUserModel.cs +++ b/Elight.Entity/SystemModel/App_Sys_RoleUserModel.cs @@ -54,7 +54,7 @@ namespace Elight.Entity /// 是否删除 /// [DataMember] - public int? IsDeleted { get; set; } = 0; + public int? IsDelete { get; set; } = 0; } } diff --git a/Elight.Logic/SystemModel/App_Sys_MenuTree.cs b/Elight.Logic/SystemModel/App_Sys_MenuTree.cs index 4fb301b..a918db9 100644 --- a/Elight.Logic/SystemModel/App_Sys_MenuTree.cs +++ b/Elight.Logic/SystemModel/App_Sys_MenuTree.cs @@ -73,7 +73,7 @@ namespace Elight.Logic.SystemModel public int? IsDelete { get; set; } [SqlSugar.SugarColumn(IsIgnore = true)] - public List? children { get; set; } + public List? children { get; set; } } } diff --git a/Elight.Logic/SystemModel/App_Sys_RoleMenuAdd.cs b/Elight.Logic/SystemModel/App_Sys_RoleMenuAdd.cs index ef17308..1ca9a75 100644 --- a/Elight.Logic/SystemModel/App_Sys_RoleMenuAdd.cs +++ b/Elight.Logic/SystemModel/App_Sys_RoleMenuAdd.cs @@ -20,7 +20,7 @@ namespace Elight.Logic.SystemModel /// 角色菜单集合 /// [DataMember] - public List? RoleMenulist { get; set; } + public string? RoleMenuIds { get; set; } } }