Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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();
            });
        }
Exemplo n.º 3
0
        /// <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();
            //});
        }
Exemplo n.º 4
0
        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("新建分组成功"));
        }
Exemplo n.º 5
0
        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("删除分组成功"));
        }
Exemplo n.º 6
0
        /// <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();
            });
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 12
0
        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);
 }