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); } }