|
|
|
@ -1,5 +1,6 @@ |
|
|
|
using ATS.NonCustodial.Application.Base; |
|
|
|
using ATS.NonCustodial.Application.Base; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.AppDictionaries; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.AppDictionaries; |
|
|
|
|
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.AppDictionaries.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Auth.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Auth.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Menu.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Menu.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Role.Output; |
|
|
|
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Role.Output; |
|
|
|
@ -12,7 +13,6 @@ using ATS.NonCustodial.Domain.Shared.OrmRepositories.Basic.EfCore; |
|
|
|
using ATS.NonCustodial.DynamicApi; |
|
|
|
using ATS.NonCustodial.DynamicApi; |
|
|
|
using ATS.NonCustodial.DynamicApi.Attributes; |
|
|
|
using ATS.NonCustodial.DynamicApi.Attributes; |
|
|
|
using ATS.NonCustodial.Shared.Common.Attributes; |
|
|
|
using ATS.NonCustodial.Shared.Common.Attributes; |
|
|
|
using ATS.NonCustodial.Shared.Common.Auth; |
|
|
|
|
|
|
|
using ATS.NonCustodial.Shared.Common.Constants; |
|
|
|
using ATS.NonCustodial.Shared.Common.Constants; |
|
|
|
using ATS.NonCustodial.Shared.Common.Dtos; |
|
|
|
using ATS.NonCustodial.Shared.Common.Dtos; |
|
|
|
using ATS.NonCustodial.Shared.Common.Dtos.Query; |
|
|
|
using ATS.NonCustodial.Shared.Common.Dtos.Query; |
|
|
|
@ -27,10 +27,7 @@ using AutoMapper.QueryableExtensions; |
|
|
|
using Castle.Components.DictionaryAdapter; |
|
|
|
using Castle.Components.DictionaryAdapter; |
|
|
|
using Microsoft.AspNetCore.Http; |
|
|
|
using Microsoft.AspNetCore.Http; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.AspNetCore.Routing; |
|
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
|
|
using System.Xml.Linq; |
|
|
|
|
|
|
|
using Yitter.IdGenerator; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
|
|
|
|
namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
@ -111,7 +108,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
public async Task<IResultOutput> GetuserroleAsync(long id) |
|
|
|
public async Task<IResultOutput> GetuserroleAsync(long id) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var userrole = await _userRoleRepository.AsQueryable(false, true).Where(q=>q.RoleId== id).Select(q=>q.UserId).ToListAsync(); |
|
|
|
var userrole = await _userRoleRepository.AsQueryable(false, true).Where(q => q.RoleId == id).Select(q => q.UserId).ToListAsync(); |
|
|
|
return ResultOutput.Ok(userrole); |
|
|
|
return ResultOutput.Ok(userrole); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -134,16 +131,16 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
// select new {urpm}).ToListAsync(); |
|
|
|
// select new {urpm}).ToListAsync(); |
|
|
|
var usermenulis = await _MenuRepository.AsQueryable(false, true).ToListAsync(); |
|
|
|
var usermenulis = await _MenuRepository.AsQueryable(false, true).ToListAsync(); |
|
|
|
var menulist = Mapper.Map<List<MenuListOutput>>(usermenulis); |
|
|
|
var menulist = Mapper.Map<List<MenuListOutput>>(usermenulis); |
|
|
|
foreach (var item in menulist.Distinct().Where(q => q.pid == 0||q.pid==null).OrderBy(q=>q.sort).ToList()) |
|
|
|
foreach (var item in menulist.Distinct().Where(q => q.pid == 0 || q.pid == null).OrderBy(q => q.sort).ToList()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
rtnlist.Add(new |
|
|
|
rtnlist.Add(new |
|
|
|
{ |
|
|
|
{ |
|
|
|
Id=item.Id, |
|
|
|
Id = item.Id, |
|
|
|
name = item.menuName, |
|
|
|
name = item.menuName, |
|
|
|
route = item.menuUrl, |
|
|
|
route = item.menuUrl, |
|
|
|
icon=item.icon, |
|
|
|
icon = item.icon, |
|
|
|
iconName = item.iconName, |
|
|
|
iconName = item.iconName, |
|
|
|
Sublevel= menulist.Where(q=>q.pid== item.Id).ToList().OrderBy(q=> q.sort).Select(q=>new { q.Id, name=q.menuName, route=q.menuUrl}).ToList() |
|
|
|
Sublevel = menulist.Where(q => q.pid == item.Id).ToList().OrderBy(q => q.sort).Select(q => new { q.Id, name = q.menuName, route = q.menuUrl }).ToList() |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
return ResultOutput.Ok(rtnlist); |
|
|
|
return ResultOutput.Ok(rtnlist); |
|
|
|
@ -159,20 +156,28 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
{ |
|
|
|
{ |
|
|
|
var rtnlist = new List<dynamic>(); |
|
|
|
var rtnlist = new List<dynamic>(); |
|
|
|
//查找当前用户角色权限菜单 |
|
|
|
//查找当前用户角色权限菜单 |
|
|
|
var usermenulist = await (from ur in _userRoleRepository.AsQueryable(false, true).Where(q=>q.UserId==User.Id) |
|
|
|
var usermenulist = await (from ur in _userRoleRepository.AsQueryable(false, true).Where(q => q.UserId == User.Id) |
|
|
|
join urp in _rolePermissionRepository.AsQueryable(false, true) on ur.RoleId equals urp.RoleId |
|
|
|
join urp in _rolePermissionRepository.AsQueryable(false, true) on ur.RoleId equals urp.RoleId |
|
|
|
join urpm in _MenuRepository.AsQueryable(false, true) on urp.PermissionId equals urpm.Id |
|
|
|
join urpm in _MenuRepository.AsQueryable(false, true) on urp.PermissionId equals urpm.Id |
|
|
|
select new App_Menu{ Id=urpm.Id, menuName=urpm.menuName, icon=urpm.icon, iconName=urpm.iconName, pid=urpm.pid, sort=urpm.sort, |
|
|
|
select new App_Menu |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Id = urpm.Id, |
|
|
|
|
|
|
|
menuName = urpm.menuName, |
|
|
|
|
|
|
|
icon = urpm.icon, |
|
|
|
|
|
|
|
iconName = urpm.iconName, |
|
|
|
|
|
|
|
pid = urpm.pid, |
|
|
|
|
|
|
|
sort = urpm.sort, |
|
|
|
route = urpm.route, |
|
|
|
route = urpm.route, |
|
|
|
menuUrl =urpm.menuUrl }).ToListAsync(); |
|
|
|
menuUrl = urpm.menuUrl |
|
|
|
|
|
|
|
}).ToListAsync(); |
|
|
|
var menulist = Mapper.Map<List<MenuListOutput>>(usermenulist); |
|
|
|
var menulist = Mapper.Map<List<MenuListOutput>>(usermenulist); |
|
|
|
if (User.Name.Contains("aks")) |
|
|
|
if (User.Name.Contains("aks")) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var list = await _MenuRepository.AsQueryable(false, true).ToListAsync(); |
|
|
|
var list = await _MenuRepository.AsQueryable(false, true).ToListAsync(); |
|
|
|
menulist = Mapper.Map<List<MenuListOutput>>(list); |
|
|
|
menulist = Mapper.Map<List<MenuListOutput>>(list); |
|
|
|
} |
|
|
|
} |
|
|
|
menulist= menulist.Where((x, i) => menulist.FindIndex(s => s.Id == x.Id) == i).ToList(); |
|
|
|
menulist = menulist.Where((x, i) => menulist.FindIndex(s => s.Id == x.Id) == i).ToList(); |
|
|
|
foreach (var item in menulist.Distinct().Where((q,x) => q.pid == 0 || q.pid == null).OrderBy(q => q.sort).ToList()) |
|
|
|
foreach (var item in menulist.Distinct().Where((q, x) => q.pid == 0 || q.pid == null).OrderBy(q => q.sort).ToList()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
rtnlist.Add(new |
|
|
|
rtnlist.Add(new |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -180,7 +185,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
name = item.menuName, |
|
|
|
name = item.menuName, |
|
|
|
route = item.menuUrl, |
|
|
|
route = item.menuUrl, |
|
|
|
icon = item.icon, |
|
|
|
icon = item.icon, |
|
|
|
routes=item.route, |
|
|
|
routes = item.route, |
|
|
|
iconName = item.iconName, |
|
|
|
iconName = item.iconName, |
|
|
|
Sublevel = menulist.Distinct().Where(q => q.pid == item.Id).ToList().OrderBy(q => q.sort).Select(q => new { q.Id, name = q.menuName, route = q.menuUrl, routes = q.route }).ToList() |
|
|
|
Sublevel = menulist.Distinct().Where(q => q.pid == item.Id).ToList().OrderBy(q => q.sort).Select(q => new { q.Id, name = q.menuName, route = q.menuUrl, routes = q.route }).ToList() |
|
|
|
}); |
|
|
|
}); |
|
|
|
@ -196,7 +201,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
[HttpPost] |
|
|
|
[HttpPost] |
|
|
|
public async Task<IResultOutput> GetPageAsync(UserGetPageDto input) |
|
|
|
public async Task<IResultOutput> GetPageAsync(UserGetPageDto input) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var express = GetExpression(input, _userRepository.AsQueryable(false, true).Where(q=>!q.UserName.Contains("aks"))); |
|
|
|
var express = GetExpression(input, _userRepository.AsQueryable(false, true).Where(q => !q.UserName.Contains("aks"))); |
|
|
|
var pageData = await base.GetPageAsync<AppUser, UserGetPageDto, UserListOutput>(input, express); |
|
|
|
var pageData = await base.GetPageAsync<AppUser, UserGetPageDto, UserListOutput>(input, express); |
|
|
|
|
|
|
|
|
|
|
|
var userIds = pageData.Data.Select(w => w.Id).ToList(); |
|
|
|
var userIds = pageData.Data.Select(w => w.Id).ToList(); |
|
|
|
@ -336,7 +341,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
.FirstOrDefault(w => w.Id == userUpdateBasic.PositionId) |
|
|
|
.FirstOrDefault(w => w.Id == userUpdateBasic.PositionId) |
|
|
|
?.Name; |
|
|
|
?.Name; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResultOutput.Ok(userUpdateBasic); |
|
|
|
return ResultOutput.Ok(userUpdateBasic); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -416,13 +421,13 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
var userRole = await IsAdmin(null); |
|
|
|
var userRole = await IsAdmin(null); |
|
|
|
if (inputlist == null) return ResultOutput.Ok(); |
|
|
|
if (inputlist == null) return ResultOutput.Ok(); |
|
|
|
else |
|
|
|
else |
|
|
|
await _userRoleRepository.DeleteAsync(q=>q.RoleId== inputlist[0].RoleId);//删除所有用户角色 |
|
|
|
await _userRoleRepository.DeleteAsync(q => q.RoleId == inputlist[0].RoleId);//删除所有用户角色 |
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in inputlist) |
|
|
|
foreach (var item in inputlist) |
|
|
|
{ |
|
|
|
{ |
|
|
|
item.Id = YitIdHelper.NextId(); |
|
|
|
item.Id = YitIdHelper.NextId(); |
|
|
|
} |
|
|
|
} |
|
|
|
await _userRoleRepository.InsertAsync(Mapper.Map<List<UserRoleAddInput>,List<AppUserRole>>(inputlist)); |
|
|
|
await _userRoleRepository.InsertAsync(Mapper.Map<List<UserRoleAddInput>, List<AppUserRole>>(inputlist)); |
|
|
|
return ResultOutput.Ok(); |
|
|
|
return ResultOutput.Ok(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -531,7 +536,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
w => w.DeptcodeId!, |
|
|
|
w => w.DeptcodeId!, |
|
|
|
w => w.Deptcodename!, |
|
|
|
w => w.Deptcodename!, |
|
|
|
w => w.DataStatus)!); |
|
|
|
w => w.DataStatus)!); |
|
|
|
if (input.RoleIds != null && input.RoleIds.Count() > 0) |
|
|
|
if (input.RoleIds != null && input.RoleIds.Count() > 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && input.RoleIds.Contains(a.RoleId)); |
|
|
|
await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && input.RoleIds.Contains(a.RoleId)); |
|
|
|
|
|
|
|
|
|
|
|
@ -837,14 +842,25 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// 根据当前登录用户查询下拉列表 |
|
|
|
/// 根据当前登录用户查询下拉列表 |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
|
|
|
|
/// <param name="isCourt">移交给检察院 0 移交法院 1</param> |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<ResultOutput<List<KeyValueDto>>> GetUserSelectList() |
|
|
|
public async Task<ResultOutput<List<KeyValueDto>>> GetUserSelectList(int isCourt = 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var userRoles = await this.IsAdmin(null); |
|
|
|
var userRoles = await this.IsAdmin(null); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var dataDict = await _appDictionaryService.GetListNoApiAsync("job_position"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 安全地处理可能的空值 |
|
|
|
|
|
|
|
var codeList = dataDict?.FirstOrDefault()?.Dictionaries? |
|
|
|
|
|
|
|
.Where(w => w.Code == (isCourt == 0 ? "inquisitor" : "judge")) |
|
|
|
|
|
|
|
.ToList() ?? new List<DictionaryGetOutput>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var rtn = await _userRepository.AsQueryable(false, true) |
|
|
|
var rtn = await _userRepository.AsQueryable(false, true) |
|
|
|
.Where(w => w.ChatPersonType != ChatPersonTypeEnum.SupervisedPerson && w.DataStatus != DataStatusEnum.Disable&&!w.UserName.Contains("_aks")) |
|
|
|
.Where(w => w.ChatPersonType != ChatPersonTypeEnum.SupervisedPerson && w.DataStatus != DataStatusEnum.Disable && !w.UserName.Contains("_aks")) |
|
|
|
// .WhereIf(!userRoles.IsAdmin, w => w.Id == User.Id) 2025 -10-20 段肖确认修改 |
|
|
|
.WhereIf(codeList.Count>0,w=> w.PositionId == codeList.FirstOrDefault().Id) |
|
|
|
|
|
|
|
// .WhereIf(!userRoles.IsAdmin, w => w.Id == User.Id) 2025 -10-20 段肖确认修改 |
|
|
|
.Select(w => new KeyValueDto() |
|
|
|
.Select(w => new KeyValueDto() |
|
|
|
{ |
|
|
|
{ |
|
|
|
Id = w.Id, |
|
|
|
Id = w.Id, |
|
|
|
@ -862,9 +878,9 @@ namespace ATS.NonCustodial.Application.Impl.Admins |
|
|
|
public async Task<ResultOutput<List<KeyValueDto>>> GetNewUserSelectList() |
|
|
|
public async Task<ResultOutput<List<KeyValueDto>>> GetNewUserSelectList() |
|
|
|
{ |
|
|
|
{ |
|
|
|
var userRoles = await this.IsAdmin(null); |
|
|
|
var userRoles = await this.IsAdmin(null); |
|
|
|
// var limits = User.UnitId; |
|
|
|
// var limits = User.UnitId; |
|
|
|
var rtn = await _userRepository.AsQueryable(false, true) |
|
|
|
var rtn = await _userRepository.AsQueryable(false, true) |
|
|
|
.Where(w => w.ChatPersonType != ChatPersonTypeEnum.SupervisedPerson && w.DataStatus != DataStatusEnum.Disable && !w.UserName.Contains("_aks")&& w.UnitId == User.UnitId) |
|
|
|
.Where(w => w.ChatPersonType != ChatPersonTypeEnum.SupervisedPerson && w.DataStatus != DataStatusEnum.Disable && !w.UserName.Contains("_aks") && w.UnitId == User.UnitId) |
|
|
|
.Select(w => new KeyValueDto() |
|
|
|
.Select(w => new KeyValueDto() |
|
|
|
{ |
|
|
|
{ |
|
|
|
Id = w.Id, |
|
|
|
Id = w.Id, |
|
|
|
|