using Dlhis.Basic.BusinessShift.Services;
using Dlhis.Basic.Places.Request;
using Dlhis.Basic.Places.Response;
using Dlhis.Basic.Places.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.Places.Controllers;
///
/// 营业点
///
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class BusinessPlacesController : ControllerBase
{
private readonly IBusinessPlaceService _businessPlaceService;
private readonly IBusinessPlaceShiftService _businessPlaceShiftService;
public BusinessPlacesController(IBusinessPlaceService businessPlaceService,
IBusinessPlaceShiftService businessPlaceShiftService)
{
_businessPlaceService = businessPlaceService;
_businessPlaceShiftService = businessPlaceShiftService;
}
///
/// 营业点分页
///
///
///
[HttpGet("page")]
public async Task> GetPageAsync([FromQuery] BusinessPlacePageRequest request)
{
return await _businessPlaceService.GetPageAsync(request);
}
///
/// 获取启用的营业点
///
///
[HttpGet("list")]
public async Task> GetOpenedListAsync(Guid? placeCode)
{
return await _businessPlaceService.GetOpenedListAsync(placeCode);
}
///
/// 获取启用的营业点(所有基地)
///
///
[HttpGet("list-all")]
[IgnoreTenant]
public async Task> GetAllList(string tenant)
{
return await _businessPlaceService.GetOpenedListAsync(null, tenant);
}
///
/// 营业点保存
///
///
///
[Authorize(Roles = "admin,tenant-admin")]
[HttpPost("save")]
public async Task SaveAsync(BusinessPlaceSaveRequest request)
{
await _businessPlaceService.SaveAsync(request);
}
///
/// 营业点保存餐次
///
///
///
[HttpPost("shift/save")]
public async Task SaveShiftAsync(BusinessPlaceSaveShiftRequest request)
{
await _businessPlaceService.SaveShiftAsync(request);
}
///
/// 根据手工号获取餐别
///
///
///
[HttpPost("shifts")]
[IgnoreTenant]
public async Task GetShiftsByPlaceCustomCodeHttpPostAsync(BusinessPlaceGetShiftsRequest request)
{
return await _businessPlaceShiftService.GetShiftsByPlaceCustomCodeAsync(request.CustomCode);
}
///
/// 根据手工号获取餐别
///
///
///
[HttpGet("shifts")]
[IgnoreTenant]
public async Task GetShiftsByPlaceCustomCodeHttpGetAsync([FromQuery] BusinessPlaceGetShiftsRequest request)
{
return await _businessPlaceShiftService.GetShiftsByPlaceCustomCodeAsync(request.CustomCode);
}
///
/// 根据营业点获取下面的设备
///
///
///
[HttpGet("device/assignments")]
public async Task> GetAssignments(Guid code)
{
return await _businessPlaceShiftService.GetAssignmentsAsync(code);
}
///
/// 营业点增加配置设备
///
///
///
[HttpPost("device/assign")]
[Transactional]
[CrossTenant]
public async Task Assign(DispositionDeviceRequest request)
{
await _businessPlaceShiftService.AssignAsync(request);
}
}