// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 // // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 using Admin.NET.Bodk.Core.Entities; using Admin.NET.Core; using Admin.NET.Core.Service; using Furion.DynamicApiController; using SqlSugar; namespace Admin.NET.Bodk.Core; public abstract class ServiceBase(UserManager userManager, SysOrgService sysOrgService, SysUserService sysUserService) : IDynamicApiController { protected readonly UserManager UserManager = userManager; protected readonly SysOrgService SysOrgService = sysOrgService; protected async Task> GetDataOutOfOrg(ISugarQueryable queryable, long orgId = 0) where T : OrgEntityBase { var userOrgIdList = await SysOrgService.GetUserOrgIdList(); List? orgList; if (orgId > 0) // 指定机构查询时 { orgList = await SysOrgService.GetChildIdListWithSelfById(orgId); orgList = UserManager.SuperAdmin ? orgList : orgList.Where(u => userOrgIdList.Contains(u)).ToList(); } else // 各管理员只能看到自己机构下的用户列表 { orgList = UserManager.SuperAdmin ? null : userOrgIdList; } return queryable.WhereIF(orgList != null, u => orgList != null && orgList.Contains(u.OrgId)); } //新增前置步骤 protected async Task AddBefore(T entity) where T : EntityBase { var user = await sysUserService.GetBaseInfo(); entity.CreateUser = user; entity.CreateTime = DateTime.Now; entity.CreateUserName = user.NickName; entity.CreateUserId = user.Id; return entity; } protected async Task AddOrgBefore(T entity) where T : OrgEntityBase { var user = await sysUserService.GetBaseInfo(); entity.CreateUser = user; entity.CreateTime = DateTime.Now; entity.CreateUserName = user.NickName; entity.CreateUserId = user.Id; entity.OrgId = UserManager.OrgId; return entity; } protected async Task UpdateBefore(T entity) where T : EntityBase { var user = await sysUserService.GetBaseInfo(); entity.UpdateUser = user; entity.UpdateTime = DateTime.Now; entity.UpdateUserName = user.NickName; entity.UpdateUserId = user.Id; return entity; } }