using Dlhis.Basic.BusinessPlace.Request; using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Entity.Basic.Entity; using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.User.Abstractions; using Kurisu.SqlSugar.Services; using Mapster; namespace Dlhis.Basic.BusinessPlace.Services.Implements; public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService { private readonly IDbContext _dbContext; private readonly ICurrentUser _currentUser; public BusinessPlacePermissionsService(IDbContext dbContext, ICurrentUser currentUser) { _dbContext = dbContext; _currentUser = currentUser; } public async Task> GetPageAsync(BusinessPlacePermissionPageRequest request) { throw new NotImplementedException(); } public async Task GetMyAsync() { var userId = _currentUser.GetIntSubjectId(); var guids = await _dbContext.Queryable() .Where(x => x.ManagerUserId == userId) .Select(x => x.BusinessPlaceCode) .Distinct() .ToListAsync(); var dtos = await _dbContext.Queryable() .Where(x => guids.Contains(x.Code)) .Select() .ToListAsync(); var myResponse = new GetMyResponse { dtos = dtos }; return myResponse; } public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request) { var userId = _currentUser.GetIntSubjectId(); if (request.Id.HasValue) { var entity = await _dbContext.Queryable() .Where(x => x.Id == request.Id).FirstAsync(); request.Adapt(entity); await _dbContext.UpdateAsync(entity); } else { var entity = request.Adapt(); entity.ManagerUserId = userId; await _dbContext.InsertAsync(entity); } } }