|
|
|
@ -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<LoginController> _logger;//日志 |
|
|
|
|
private readonly WechatMessagerClient wechatMessagerClient; |
|
|
|
|
private readonly IMapper _mapper; |
|
|
|
|
Result result = new Result(); |
|
|
|
|
public SystemControllerController(ILogger<LoginController> logger, SqlSugarClient db, WriteSysLog logs, User user, WechatMessagerClient _wechatMessagerClient) |
|
|
|
|
public SystemControllerController(IMapper mapper, ILogger<LoginController> 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<int> totalNumber = 0;//总数据 |
|
|
|
|
var userlist = new List<dynamic>(); |
|
|
|
|
|
|
|
|
|
//获取单位信息 |
|
|
|
|
var Unitlist = await _db.Queryable<App_Sys_UnitModel>().Where(q => q.IsDelete == 0).ToListAsync(); |
|
|
|
|
//获取部门信息 |
|
|
|
|
var Departlist = await _db.Queryable<App_Sys_DepartModel>().Where(q => q.IsDelete == 0).ToListAsync(); |
|
|
|
|
//获取角色信息 |
|
|
|
|
var RoleModel = _db.Queryable<App_Sys_RoleUserModel>().LeftJoin<App_Sys_RoleModel>((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<App_Sys_UserModel>() |
|
|
|
|
.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
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("AddUser0")] |
|
|
|
|
public async Task<Result> AddUser0(App_Sys_UserModel UserModel) |
|
|
|
|
public async Task<Result> AddUser0(App_Sys_UserDto UserModel) |
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
var data = await _db.Queryable<App_Sys_UserModel>().Where(q => q.IsDeleted == 0 && q.phone == UserModel.phone || q.cardId == UserModel.cardId).FirstAsync(); |
|
|
|
|
var UserDate = _mapper.Map<App_Sys_UserDto, App_Sys_UserModel>(UserModel); |
|
|
|
|
var data = await _db.Queryable<App_Sys_UserModel>().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
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("UpdateUser")] |
|
|
|
|
public async Task<Result> UpdateUser(App_Sys_UserModel UserModel) |
|
|
|
|
public async Task<Result> UpdateUser(App_Sys_UserDto UserModel) |
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
@ -257,9 +281,33 @@ namespace _24Hour.Controllers.system
|
|
|
|
|
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<App_Sys_RoleUserModel>().Any(x =>x.IsDelete == 0&& x.roleuserId == UserModel.Id)) |
|
|
|
|
{ |
|
|
|
|
//查询角色用户是否存在 |
|
|
|
|
var rolemodel = await _db.Queryable<App_Sys_RoleUserModel>().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 角色菜单管理 |
|
|
|
|
/// <summary> |
|
|
|
|
/// 获取角色下的所有菜单信息 |
|
|
|
|
/// 获取角色下的所有菜单Id |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="info"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
@ -753,11 +801,13 @@ namespace _24Hour.Controllers.system
|
|
|
|
|
var totalCount = 0; |
|
|
|
|
var list = await _db.Queryable<App_Sys_RoleMenuModel>() |
|
|
|
|
.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<App_Sys_RoleModel>(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<App_Sys_RoleMenuModel>().Where(q => q.roleId == RoleMenudata.Id).ToListAsync(); |
|
|
|
|
_db.BeginTran(); |
|
|
|
|
//删除角色下的菜单 |
|
|
|
|
await _db.Deleteable(list).ExecuteCommandAsync(); |
|
|
|
|
//添加角色菜单 |
|
|
|
|
RoleMenudata.RoleMenulist.ForEach(data => |
|
|
|
|
var RoleMenulist = RoleMenudata.RoleMenuIds.Split(","); |
|
|
|
|
var menulist = new List<App_Sys_RoleMenuModel>(); |
|
|
|
|
if (RoleMenulist.Length > 0) |
|
|
|
|
{ |
|
|
|
|
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(); |
|
|
|
|
//添加角色菜单 |
|
|
|
|
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<App_Sys_RoleMenuModel>().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<App_Sys_RoleUserModel>() |
|
|
|
|
.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<App_Sys_RoleMenuModel>(roledata, list); |
|
|
|
|
result.IsSucceed = true; |
|
|
|
@ -917,7 +983,7 @@ namespace _24Hour.Controllers.system
|
|
|
|
|
var userlist = await _db.Queryable<App_Sys_RoleUserModel>().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
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 单位树型查询 |
|
|
|
|
/// 菜单树型查询 |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="info"></param> |
|
|
|
|
/// <param name="Menudata"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("QueryMenuTree")] |
|
|
|
@ -1292,7 +1358,7 @@ namespace _24Hour.Controllers.system
|
|
|
|
|
var treelist = await _db.Queryable<App_Sys_MenuTree>() |
|
|
|
|
.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<dynamic>(); |
|
|
|
|
//获取父级菜单 |
|
|
|
|
var pidlist = await _db.Queryable<App_Sys_MenuModel>().Where(q => q.IsDelete == 0).ToListAsync(); |
|
|
|
|
var pidlist = await _db.Queryable<App_Sys_MenuModel>().Where(q => q.IsDelete == 0&&string.IsNullOrEmpty(q.pid)).ToListAsync(); |
|
|
|
|
//联表查询该用户菜单 |
|
|
|
|
var menulist = await _db.Queryable<App_Sys_RoleUserModel>().Where(q => q.roleuserId == _userdata.Id) |
|
|
|
|
var menulist = await _db.Queryable<App_Sys_RoleUserModel>().Where(x=> x.roleuserId == _userdata.Id) |
|
|
|
|
.LeftJoin<App_Sys_RoleMenuModel>((o, cus) => o.roleId == cus.roleId) |
|
|
|
|
.LeftJoin<App_Sys_MenuModel>((o, cus, menu) => o.roleId == cus.roleId) |
|
|
|
|
.Where((o, cus, menu) => o.IsDeleted == 0 && cus.IsDeleted == 0 && menu.IsDelete == 0) |
|
|
|
|
.LeftJoin<App_Sys_MenuModel>((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<App_Sys_MenuModel>().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 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) |
|
|
|
|
{ |
|
|
|
|
var data = pidlist.Where(q => q.Id == item.pid).FirstOrDefault(); |
|
|
|
|
if (data != null) |
|
|
|
|
{ |
|
|
|
|
pidlist.OrderBy(q => q.sortnum).ToList().ForEach(item => { |
|
|
|
|
var data = datalist.Where(q => q.pid == item.Id).FirstOrDefault(); |
|
|
|
|
var childrenlist = new List<dynamic>(); |
|
|
|
|
//添加子菜单 |
|
|
|
|
item.dalist.ForEach(it => |
|
|
|
|
if (data != null) |
|
|
|
|
{ |
|
|
|
|
childrenlist.Add(new |
|
|
|
|
//添加子菜单 |
|
|
|
|
data.dalist.ForEach(it => |
|
|
|
|
{ |
|
|
|
|
path = it.path, |
|
|
|
|
name = it.name, |
|
|
|
|
component = it.component, |
|
|
|
|
//redirect = it.redirect, |
|
|
|
|
meta = new |
|
|
|
|
childrenlist.Add(new |
|
|
|
|
{ |
|
|
|
|
title = it.title, |
|
|
|
|
//hideMenu = it.hideMenu, |
|
|
|
|
//hideBreadcrumb = it.hideBreadcrumb, |
|
|
|
|
//currentActiveMenu = it.currentActiveMenu, |
|
|
|
|
icon = it.icon, |
|
|
|
|
}, |
|
|
|
|
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 |
|
|
|
|
var fjdata = datalist.Where(q => string.IsNullOrEmpty(q.pid)).FirstOrDefault()?.dalist.FirstOrDefault(q=>q.Id== item.Id); |
|
|
|
|
if (childrenlist.Count>0|| fjdata!=null) |
|
|
|
|
{ |
|
|
|
|
path = data.path, |
|
|
|
|
name = data.name, |
|
|
|
|
component = data.component, |
|
|
|
|
//redirect = data.redirect, |
|
|
|
|
meta = new |
|
|
|
|
//添加父级菜单 |
|
|
|
|
list.Add(new |
|
|
|
|
{ |
|
|
|
|
title = data.title, |
|
|
|
|
//hideChildrenInMenu = data.hideChildrenInMenu, |
|
|
|
|
icon = data.icon, |
|
|
|
|
}, |
|
|
|
|
children = childrenlist |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
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; |
|
|
|
|