public async Task UpdateAsync(long id, UpdateGroupDto updateGroupDto) { LinGroup group = await _groupRepository.Where(r => r.Id == id).FirstAsync(); Mapper.Map(updateGroupDto, group); await _groupRepository.UpdateAsync(group); }
/// <summary> /// 删除group拥有的权限、删除group表的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task DeleteAsync(long id) { LinGroup linGroup = await _groupRepository.Where(r => r.Id == id).FirstAsync(); if (linGroup.IsNull()) { throw new LinCmsException("分组不存在,删除失败", ErrorCode.NotFound, StatusCodes.Status404NotFound); } if (linGroup.IsStatic) { throw new LinCmsException("无法删除静态权限组!"); } bool exist = await _userGroupRepository.Select.AnyAsync(r => r.GroupId == id); if (exist) { throw new LinCmsException("分组下存在用户,不可删除", ErrorCode.Inoperable); } _freeSql.Transaction(() => { //_freeSql.Select<LinGroupPermission>(new { GroupId = id }).ToDelete().ExecuteDeleted(); //_freeSql.Select<LinGroup>().Where(r => r.Id == id).ToDelete().ExecuteDeleted(); _freeSql.Delete <LinGroupPermission>(new LinGroupPermission { GroupId = id }).ExecuteDeleted(); _freeSql.Delete <LinGroup>(new LinGroup { Id = id }).ExecuteDeleted(); }); }
/// <summary> /// 批量插入 /// </summary> /// <param name="inputDto"></param> /// <returns></returns> public async Task CreateAsync(CreateGroupDto inputDto) { bool exist = await _groupRepository.Select.AnyAsync(r => r.Name == inputDto.Name); if (exist) { throw new LinCmsException("分组已存在,不可创建同名分组", ErrorCode.RepeatField); } LinGroup linGroup = _mapper.Map <LinGroup>(inputDto); using var conn = _freeSql.Ado.MasterPool.Get(); DbTransaction transaction = conn.Value.BeginTransaction(); try { long groupId = _freeSql.Insert(linGroup).WithTransaction(transaction).ExecuteIdentity(); List <LinPermission> allPermissions = _freeSql.Select <LinPermission>().ToList(); List <LinGroupPermission> linPermissions = new List <LinGroupPermission>(); inputDto.PermissionIds.ForEach(r => { LinPermission pdDto = allPermissions.FirstOrDefault(u => u.Id == r); if (pdDto == null) { throw new LinCmsException($"不存在此权限:{r}", ErrorCode.NotFound); } linPermissions.Add(new LinGroupPermission(groupId, pdDto.Id)); }); _freeSql.Insert <LinGroupPermission>().WithTransaction(transaction).AppendData(linPermissions).ExecuteAffrows(); transaction.Commit(); } catch { transaction.Rollback(); throw; } //_freeSql.Transaction(() => //{ // long groupId = _freeSql.Insert(linGroup).ExecuteIdentity(); // List<LinPermission> allPermissions = _freeSql.Select<LinPermission>().ToList(); // List<LinGroupPermission> linPermissions = new List<LinGroupPermission>(); // inputDto.PermissionIds.ForEach(r => // { // LinPermission pdDto = allPermissions.FirstOrDefault(u => u.Id == r); // if (pdDto == null) // { // throw new LinCmsException($"不存在此权限:{r}", ErrorCode.NotFound); // } // linPermissions.Add(new LinGroupPermission(groupId, pdDto.Id)); // }); // _freeSql.Insert<LinGroupPermission>().AppendData(linPermissions).ExecuteAffrows(); //}); }
public ResultDto Post([FromBody] CreateGroupDto inputDto) { bool exist = _freeSql.Select <LinGroup>().Any(r => r.Name == inputDto.Name); if (exist) { throw new LinCmsException("分组已存在,不可创建同名分组", ErrorCode.RepeatField); } LinGroup linGroup = _mapper.Map <LinGroup>(inputDto); List <PermissionDto> permissionDtos = ReflexHelper.GeAssemblyLinCmsAttributes(); _freeSql.Transaction(() => { long groupId = _freeSql.Insert(linGroup).ExecuteIdentity(); //批量插入 List <LinAuth> linAuths = new List <LinAuth>(); inputDto.Auths.ForEach(r => { PermissionDto pdDto = permissionDtos.FirstOrDefault(u => u.Permission == r); if (pdDto == null) { throw new LinCmsException($"不存在此权限:{r}", ErrorCode.NotFound); } linAuths.Add(new LinAuth(r, pdDto.Module, (int)groupId)); }); _freeSql.Insert <LinAuth>().AppendData(linAuths).ExecuteAffrows(); }); return(ResultDto.Success("新建分组成功")); }
public ResultDto Delete(int id) { LinGroup linGroup = _freeSql.Select <LinGroup>(new { id = id }).First(); if (linGroup.IsNull()) { throw new LinCmsException("分组不存在,删除失败", ErrorCode.NotFound, StatusCodes.Status404NotFound); } if (linGroup.IsStatic) { throw new LinCmsException("无法删除静态角色!"); } bool exist = _freeSql.Select <LinUser>().Any(r => r.GroupId == id); if (exist) { throw new LinCmsException("分组下存在用户,不可删除", ErrorCode.Inoperable); } _freeSql.Transaction(() => { //删除group拥有的权限 _freeSql.Delete <LinAuth>().Where("group_id=?GroupId", new LinAuth() { GroupId = id }).ExecuteAffrows(); //删除group表 _freeSql.Delete <LinGroup>(new { id = id }).ExecuteAffrows(); }); return(ResultDto.Success("删除分组成功")); }
/// <summary> /// 批量插入 /// </summary> /// <param name="inputDto"></param> /// <returns></returns> public async Task CreateAsync(CreateGroupDto inputDto) { bool exist = await _groupRepository.Select.AnyAsync(r => r.Name == inputDto.Name); if (exist) { throw new LinCmsException("分组已存在,不可创建同名分组", ErrorCode.RepeatField); } LinGroup linGroup = _mapper.Map <LinGroup>(inputDto); _freeSql.Transaction(() => { long groupId = _freeSql.Insert(linGroup).ExecuteIdentity(); List <LinPermission> allPermissions = _freeSql.Select <LinPermission>().ToList(); List <LinGroupPermission> linPermissions = new List <LinGroupPermission>(); inputDto.PermissionIds.ForEach(r => { LinPermission pdDto = allPermissions.FirstOrDefault(u => u.Id == r); if (pdDto == null) { throw new LinCmsException($"不存在此权限:{r}", ErrorCode.NotFound); } linPermissions.Add(new LinGroupPermission(groupId, pdDto.Id)); }); _freeSql.Insert <LinGroupPermission>().AppendData(linPermissions).ExecuteAffrows(); }); }
public async Task <GroupDto> GetAsync(long id) { LinGroup group = await _groupRepository.Where(r => r.Id == id).FirstAsync(); GroupDto groupDto = _mapper.Map <GroupDto>(group); groupDto.Permissions = await _permissionService.GetPermissionByGroupIds(new List <long>() { id }); return(groupDto); }
public GroupDto Get(int id) { LinGroup group = _freeSql.Select <LinGroup>().Where(r => r.Id == id).First(); GroupDto groupDto = _mapper.Map <GroupDto>(group); List <LinAuth> listAuths = _freeSql.Select <LinAuth>().Where(r => r.GroupId == id).ToList(); groupDto.Auths = ReflexHelper.AuthsConvertToTree(listAuths); return(groupDto); }
public void IMapper() { CreateGroupDto inputDto = new CreateGroupDto() { Info = "11", Name = "11" }; UpdateGroupDto update = new UpdateGroupDto() { Info = "11", Name = "11" }; LinGroup d = _mapper.Map <LinGroup>(inputDto); LinGroup d2 = _mapper.Map <LinGroup>(update); }
/// <summary> /// 批量插入 /// </summary> /// <param name="inputDto"></param> /// <returns></returns> public async Task CreateAsync(CreateGroupDto inputDto) { bool exist = await _groupRepository.Select.AnyAsync(r => r.Name == inputDto.Name); if (exist) { throw new LinCmsException($"权限组标识符{inputDto.Name}已存在,不可创建同名权限组", ErrorCode.RepeatField); } LinGroup linGroup = Mapper.Map <LinGroup>(inputDto); using Object <DbConnection> conn = _freeSql.Ado.MasterPool.Get(); using DbTransaction transaction = await conn.Value.BeginTransactionAsync(); try { long groupId = await _freeSql.Insert(linGroup).WithTransaction(transaction).ExecuteIdentityAsync(); List <LinPermission> allPermissions = await _freeSql.Select <LinPermission>().WithTransaction(transaction).ToListAsync(); List <LinGroupPermission> linPermissions = new List <LinGroupPermission>(); inputDto.PermissionIds.ForEach(r => { LinPermission pdDto = allPermissions.FirstOrDefault(u => u.Id == r); if (pdDto == null) { throw new LinCmsException($"不存在此权限:{r}", ErrorCode.NotFound); } linPermissions.Add(new LinGroupPermission(groupId, pdDto.Id)); }); await _freeSql.Insert <LinGroupPermission>() .WithTransaction(transaction) .AppendData(linPermissions) .ExecuteAffrowsAsync(); await transaction.CommitAsync(); } catch { await transaction.RollbackAsync(); throw; } }
public void IMapper() { CreateGroupDto inputDto = new CreateGroupDto() { Auths = new List <string>() { "查询日志记录的用户" }, Info = "11", Name = "11" }; UpdateGroupDto update = new UpdateGroupDto() { Info = "11", Name = "11" }; LinGroup d = _mapper.Map <LinGroup>(inputDto); LinGroup d2 = _mapper.Map <LinGroup>(update); }
public async Task UpdateAsync(long id, UpdateGroupDto updateGroupDto) { LinGroup group = await _groupRepository.Where(r => r.Id == id).FirstAsync(); if (group.IsStatic) { if (group.Name != updateGroupDto.Name) { throw new LinCmsException("静态权限组标识符不修改!"); } } bool anyName = await _groupRepository.Where(r => r.Name == updateGroupDto.Name && r.Id != id).AnyAsync(); if (anyName) { throw new LinCmsException($"权限组标识符:{updateGroupDto.Name}已存在!", ErrorCode.RepeatField); } Mapper.Map(updateGroupDto, group); await _groupRepository.UpdateAsync(group); }
public void Delete(LinGroup group) { _linContext.Remove(group); }
public void Update(LinGroup group) { _linContext.Update(group); }
public void Add(LinGroup group) { _linContext.Add(group); }