namespace Admin.NET.Core.Service;
///
/// 系统用户附属机构职位服务
///
public class SysUserExtOrgPosService : ITransient
{
private readonly SqlSugarRepository _sysEmpExtOrgPosRep;
public SysUserExtOrgPosService(SqlSugarRepository sysEmpExtOrgPosRep)
{
_sysEmpExtOrgPosRep = sysEmpExtOrgPosRep;
}
///
/// 保存或编辑附属机构信息
///
///
///
///
[SqlSugarUnitOfWork]
public async Task AddOrUpdate(long userId, List extIdList)
{
await DeleteEmpExtByUserId(userId); // 先删除
var extOrgPos = extIdList.Select(u => new SysUserExtOrgPos
{
UserId = userId,
OrgId = u.OrgId,
PosId = u.PosId
}).ToList();
await _sysEmpExtOrgPosRep.InsertRangeAsync(extOrgPos);
}
///
/// 根据用户Id获取附属机构和职位信息
///
///
///
public async Task> GetEmpExtOrgPosList(long userId)
{
return await _sysEmpExtOrgPosRep.AsQueryable()
.Mapper(u => u.SysOrg, u => u.OrgId)
.Mapper(u => u.SysPos, u => u.PosId)
.Where(u => u.UserId == userId)
.Select(u => new UserExtOrgPosOutput
{
OrgId = u.SysOrg.Id,
OrgCode = u.SysOrg.Code,
OrgName = u.SysOrg.Name,
PosId = u.SysPos.Id,
PosCode = u.SysPos.Code,
PosName = u.SysPos.Name
}).ToListAsync();
}
///
/// 根据附属机构Id判断是否有用户
///
///
///
public async Task HasExtOrgEmp(long orgId)
{
return await _sysEmpExtOrgPosRep.IsAnyAsync(u => u.OrgId == orgId);
}
///
/// 根据附属职位Id判断是否有用户
///
///
///
public async Task HasExtPosEmp(long posId)
{
return await _sysEmpExtOrgPosRep.IsAnyAsync(u => u.PosId == posId);
}
///
/// 根据用户Id删除用户附属
///
///
///
public async Task DeleteEmpExtByUserId(long userId)
{
await _sysEmpExtOrgPosRep.DeleteAsync(u => u.UserId == userId);
}
}