using System.Threading.Tasks;
using ZhonTai.Admin.Core.Attributes;
using ZhonTai.Admin.Core.Dto;
using ZhonTai.Admin.Services.RoleGroup.Dto;
using ZhonTai.Admin.Domain.RoleGroup;
using ZhonTai.DynamicApi;
using ZhonTai.DynamicApi.Attributes;
using ZhonTai.Admin.Core.Consts;
using ZhonTai.Admin.Domain.Role;
namespace ZhonTai.Admin.Services.RoleGroup;
///
/// 角色分组服务
///
[DynamicApi(Area = AdminConsts.AreaName)]
public class RoleGroupService : BaseService, IRoleGroupService, IDynamicApi
{
private readonly IRoleGroupRepository _RoleGroupRepository;
private readonly IRoleRepository _roleRepository;
public RoleGroupService(IRoleGroupRepository RoleGroupRepository, IRoleRepository roleRepository)
{
_RoleGroupRepository = RoleGroupRepository;
_roleRepository = roleRepository;
}
///
/// 新增
///
///
///
public async Task AddAsync(RoleGroupAddInput input)
{
var RoleGroup = Mapper.Map(input);
var id = (await _RoleGroupRepository.InsertAsync(RoleGroup)).Id;
return ResultOutput.Result(id > 0);
}
///
/// 修改
///
///
///
public async Task UpdateAsync(RoleGroupUpdateInput input)
{
if (!(input?.Id > 0))
{
return ResultOutput.NotOk();
}
var entity = await _RoleGroupRepository.GetAsync(input.Id);
if (!(entity?.Id > 0))
{
return ResultOutput.NotOk("角色分组不存在!");
}
Mapper.Map(input, entity);
await _RoleGroupRepository.UpdateAsync(entity);
return ResultOutput.Ok();
}
///
/// 彻底删除
///
///
///
[Transaction]
public async Task DeleteAsync(long id)
{
//判断角色下是否有用户
//删除角色数据
await _roleRepository.DeleteAsync(a => a.RoleGroupId == id);
//删除角色分组
await _RoleGroupRepository.DeleteAsync(a => a.Id == id);
return ResultOutput.Ok();
}
}