修改用户类型角色

This commit is contained in:
2023-07-04 11:30:29 +08:00
parent 5f158137dd
commit 75543f9bcf
3 changed files with 62 additions and 12 deletions
@@ -38,6 +38,8 @@ namespace IRaCIS.Core.Application.Contracts
public class UserTypeMenuAddOrEdit: UserTypeRoleAddOrEdit
{
public UserTypeEnum UserTypeEnum { get; set; }
public List<Guid> MenuIds { get; set; } = new List<Guid>();
}
@@ -53,6 +55,7 @@ namespace IRaCIS.Core.Application.Contracts
public int Order { get; set; }
public List<Guid> UserTypeGroupIdList { get; set; } = new List<Guid>();
@@ -6,6 +6,7 @@
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Application.Contracts;
namespace IRaCIS.Core.Application.Contracts
{
@@ -15,18 +16,18 @@ namespace IRaCIS.Core.Application.Contracts
[ApiExplorerSettings(GroupName = "Management")]
public class UserTypeRoleService : BaseService, IUserTypeService
{
private readonly IRepository<UserType> userTypeServiceRepository;
private readonly IRepository<UserType> _userTypeRepository;
public UserTypeRoleService(IRepository<UserType> userTypeServiceRepository)
public UserTypeRoleService(IRepository<UserType> userTypeRepository)
{
this.userTypeServiceRepository = userTypeServiceRepository;
_userTypeRepository = userTypeRepository;
}
[HttpPost]
public async Task<List<UserTypeRoleView>> GetUserTypeRoleList(UserTypeQuery userTypeQuery)
{
var userTypeRoleQueryable = userTypeServiceRepository
var userTypeRoleQueryable = _userTypeRepository
.WhereIf(!string.IsNullOrWhiteSpace(userTypeQuery.SearchFilter), t => t.Description.Contains(userTypeQuery.SearchFilter!) || t.UserTypeName.Contains(userTypeQuery.SearchFilter!) || t.UserTypeShortName.Contains(userTypeQuery.SearchFilter!))
.WhereIf(userTypeQuery.GroupId!=null,t=>t.UserTypeGroupList.Any(t=>t.DictionaryId== userTypeQuery.GroupId))
@@ -40,16 +41,22 @@ namespace IRaCIS.Core.Application.Contracts
public async Task<IResponseOutput> AddOrUpdateUserTypeRole(UserTypeMenuAddOrEdit addOrEditUserTypeRole)
{
var verifyExp1 = new EntityVerifyExp<UserType>()
{
VerifyExp = u => u.UserTypeEnum == addOrEditUserTypeRole.UserTypeEnum ,
VerifyMsg = "已存在该用户类型的角色。"
};
var entity = new UserType();
if (addOrEditUserTypeRole.Id == null)
{
entity = _mapper.Map<UserType>(addOrEditUserTypeRole);
entity.UserTypeEnum = userTypeServiceRepository.Select(t => t.UserTypeEnum).DefaultIfEmpty().Max() + 1;
await _repository.AddAsync(entity);
//entity.UserTypeEnum = userTypeServiceRepository.Select(t => t.UserTypeEnum).DefaultIfEmpty().Max() + 1;
await _userTypeRepository.InsertFromDTOAsync(addOrEditUserTypeRole,false, verifyExp1);
}
else
@@ -57,14 +64,17 @@ namespace IRaCIS.Core.Application.Contracts
if (addOrEditUserTypeRole.MenuIds.Count > 0)
{
entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).Include(t => t.UserTypeMenuList).Include(t=>t.UserTypeGroupList).FirstOrDefault().IfNullThrowException();
entity = _userTypeRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).Include(t => t.UserTypeMenuList).Include(t=>t.UserTypeGroupList).FirstOrDefault().IfNullThrowException();
}
else
{
entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).FirstOrDefault().IfNullThrowException();
entity = _userTypeRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).FirstOrDefault().IfNullThrowException();
}
_mapper.Map(addOrEditUserTypeRole, entity);
await _userTypeRepository.EntityVerifyAsync(entity.Id, verifyExp1);
}
var success = await _repository.SaveChangesAsync();
@@ -83,7 +93,7 @@ namespace IRaCIS.Core.Application.Contracts
return ResponseOutput.NotOk(_localizer["UserType_InUse"]);
}
var success = await userTypeServiceRepository.BatchDeleteNoTrackingAsync(t => t.Id == userTypeId);
var success = await _userTypeRepository.BatchDeleteNoTrackingAsync(t => t.Id == userTypeId);
return ResponseOutput.Result(success);
}
@@ -139,7 +149,7 @@ namespace IRaCIS.Core.Application.Contracts
var query = userTypeServiceRepository.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)
var query = _userTypeRepository.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)
.WhereIf(userTypeSelectEnum != UserTypeSelectEnum.None, t => userTypeEnums.Contains(t.UserTypeEnum))
.OrderBy(t => t.Order).ProjectTo<TrialUserType>(_mapper.ConfigurationProvider);
@@ -156,7 +166,7 @@ namespace IRaCIS.Core.Application.Contracts
/// <returns></returns>
public async Task<List<TrialUserType>> GetTrialUserTypeList()
{
var query = userTypeServiceRepository.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)
var query = _userTypeRepository.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)
.Where(t => !t.UserTypeGroupList.Any(t=> t.Group.Code=="3"))
.OrderBy(t => t.Order).ProjectTo<TrialUserType>(_mapper.ConfigurationProvider);