fix 营业点权限调整

This commit is contained in:
2024-03-15 20:49:44 +08:00
parent 220ff2d963
commit 423d90bf3d
8 changed files with 151 additions and 99 deletions

View File

@@ -1,18 +1,12 @@
using Dlhis.Basic.Api.Request;
using Kurisu.Core.Result;
using Kurisu.Core.Result;
using Kurisu.RemoteCall.Attributes;
namespace Dlhis.Basic.Api
{
[EnableRemoteClient(Name = "basic-service", BaseUrl = "${InternalRequest:BasicRequestUrl}")]
public interface IBusinessPlacePermissionsApi
{
[Auth]
[Get("/api/businessplacepermissions/getPlaces")]
Task<DefaultApiResult<List<Guid>>> GetPlaceByUserIdAsync();
namespace Dlhis.Basic.Api;
[Auth]
[Post("/api/businessplacepermissions/savePlace")]
Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
}
[EnableRemoteClient(Name = "basic-service", BaseUrl = "${InternalRequest:BasicRequestUrl}")]
public interface IBusinessPlacePermissionsApi
{
[Auth]
[Get("/api/businessplacepermissions/my")]
Task<DefaultApiResult<List<Guid>>> GetMyBussinessPlacesAsync();
}

View File

@@ -1,48 +1,57 @@
using Dlhis.Basic.BusinessPlace.Request;
using Dlhis.Basic.BusinessPlace.Response;
using Dlhis.Basic.BusinessPlace.Services;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Org.BouncyCastle.Asn1.Ocsp;
namespace Dlhis.Basic.BusinessPlace.Controllers
namespace Dlhis.Basic.BusinessPlace.Controllers;
/// <summary>
/// 营业点管理
/// </summary>
[Authorize(Roles = "admin")]
[Route("api/[controller]")]
[ApiController]
public class BusinessPlacePermissionsController
{
/// <summary>
/// 营业点管理
/// </summary>
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class BusinessPlacePermissionsController
private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService;
public BusinessPlacePermissionsController(IBusinessPlacePermissionsService businessPlacePermissionsService)
{
private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService;
_businessPlacePermissionsService = businessPlacePermissionsService;
}
public BusinessPlacePermissionsController(IBusinessPlacePermissionsService businessPlacePermissionsService)
{
_businessPlacePermissionsService = businessPlacePermissionsService;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("page")]
public async Task<Pagination<BusinessPlacePermissionPageResponse>> GetPageAsync([FromQuery] BusinessPlacePermissionPageRequest request)
{
return await _businessPlacePermissionsService.GetPageAsync(request);
}
/// <summary>
/// 获取我的营业点
/// </summary>
/// <returns></returns>
[HttpGet("my")]
public async Task<List<Guid>> GetMy()
{
return await _businessPlacePermissionsService.GetMyAsync();
}
/// <summary>
/// 根据用户获取管理点
/// </summary>
/// <param name=""></param>
/// <returns></returns>
[HttpGet("getPlaces")]
public async Task<List<Guid>> GetPlaceByUserIdAsync()
{
return await _businessPlacePermissionsService.GetPlaceByUserIdAsync();
}
/// <summary>
/// 保存营业点
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("savePlace")]
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request);
}
/// <summary>
/// 保存营业点
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("save")]
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request);
}
}

View File

@@ -0,0 +1,7 @@
using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.BusinessPlace.Request;
public class BusinessPlacePermissionPageRequest : PageDto
{
}

View File

@@ -1,14 +1,18 @@
using SqlSugar;
namespace Dlhis.Basic.BusinessPlace.Request
{
public class SaveBusinessPlacePermissionRequest
{
public long? Id { get; set; }
namespace Dlhis.Basic.BusinessPlace.Request;
/// <summary>
/// 营业点
/// </summary>
public Guid BusinessPlaceCode { get; set; }
}
public class SaveBusinessPlacePermissionRequest
{
public long? Id { get; set; }
/// <summary>
/// 管理人员userId
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 营业点
/// </summary>
public Guid BusinessPlaceCode { get; set; }
}

View File

@@ -0,0 +1,26 @@
namespace Dlhis.Basic.BusinessPlace.Response;
public class BusinessPlacePermissionPageResponse
{
public long Id { get; set; }
/// <summary>
/// 用户id
/// </summary>
public string UserId { get; set; }
/// <summary>
/// 用户name
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 营业点code
/// </summary>
public Guid BusinessPlaceCode { get; set; }
/// <summary>
/// 营业点名称
/// </summary>
public string BusinessPlaceName { get; set; }
}

View File

@@ -1,11 +1,14 @@
using Dlhis.Basic.BusinessPlace.Request;
using Dlhis.Basic.BusinessPlace.Response;
using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.BusinessPlace.Services
namespace Dlhis.Basic.BusinessPlace.Services;
public interface IBusinessPlacePermissionsService : IScopeDependency
{
public interface IBusinessPlacePermissionsService : IScopeDependency
{
Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
Task<Pagination<BusinessPlacePermissionPageResponse>> GetPageAsync(BusinessPlacePermissionPageRequest request);
Task<List<Guid>> GetPlaceByUserIdAsync();
}
Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
Task<List<Guid>> GetMyAsync();
}

View File

@@ -1,48 +1,55 @@
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
namespace Dlhis.Basic.BusinessPlace.Services.Implements;
public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
{
public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
public BusinessPlacePermissionsService(IDbContext dbContext)
{
private readonly IDbContext _dbContext;
private readonly IBusinessPlaceService _businessPlaceService;
private readonly ICurrentUser _currentUser;
_dbContext = dbContext;
}
public BusinessPlacePermissionsService(IDbContext dbContext, IBusinessPlaceService businessPlaceService)
public async Task<Pagination<BusinessPlacePermissionPageResponse>> GetPageAsync(BusinessPlacePermissionPageRequest request)
{
throw new NotImplementedException();
}
public async Task<List<Guid>> GetMyAsync()
{
var userId = _currentUser.GetIntSubjectId();
return await _dbContext.Queryable<BusinessPlaceManagerRelationshipEntity>()
.Where(x => x.ManagerUserId == userId)
.Select(x => x.BusinessPlaceCode)
.Distinct()
.ToListAsync();
}
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
var userId = _currentUser.GetIntSubjectId();
if (request.Id.HasValue)
{
_dbContext = dbContext;
_businessPlaceService = businessPlaceService;
var entity = await _dbContext.Queryable<BusinessPlaceManagerRelationshipEntity>()
.Where(x => x.Id == request.Id).FirstAsync();
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
}
public async Task<List<Guid>> GetPlaceByUserIdAsync()
else
{
var userId = _currentUser.GetIntSubjectId();
return await _dbContext.Queryable<BusinessPlaceManagerRelationshipEntity>()
.Where(x => x.ManagerUserId == userId)
.Select(x => x.BusinessPlaceCode)
.ToListAsync();
}
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
var userId = _currentUser.GetIntSubjectId();
if (request.Id.HasValue)
{
var entity =await _dbContext.Queryable<BusinessPlaceManagerRelationshipEntity>()
.Where(x => x.Id == request.Id).FirstAsync();
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
}
else
{
var entity = request.Adapt<BusinessPlaceManagerRelationshipEntity>();
entity.ManagerUserId = userId;
await _dbContext.InsertAsync(entity);
}
var entity = request.Adapt<BusinessPlaceManagerRelationshipEntity>();
entity.ManagerUserId = userId;
await _dbContext.InsertAsync(entity);
}
}
}

View File

@@ -1,4 +1,5 @@
using Kurisu.SqlSugar;
using Mapster;
using SqlSugar;
namespace Dlhis.Entity.Basic.Entity;
@@ -12,6 +13,7 @@ public class BusinessPlaceManagerRelationshipEntity : SugarBaseEntity
/// <summary>
/// 管理人员
/// </summary>
[AdaptIgnore(MemberSide.Destination)]
[SugarColumn(ColumnDescription = "管理人员", IsNullable = false)]
public int ManagerUserId { get; set; }