fix 代码优化

This commit is contained in:
2024-03-20 12:42:48 +08:00
parent fc73435e6c
commit 9c3f14eb95
9 changed files with 52 additions and 81 deletions

View File

@@ -1,8 +0,0 @@
namespace Dlhis.Basic.BusinessPlace.Response
{
public class BusinessPlaceDto
{
public Guid Code { get; set; }
public string Name { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
namespace Dlhis.Basic.BusinessPlace.Response
{
public class GetMyResponse
{
public List<BusinessPlaceDto> dtos { get; set; }
}
}

View File

@@ -1,6 +1,7 @@
using Dlhis.Basic.Places.Request; using Dlhis.Basic.Places.Request;
using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Basic.BusinessPlace.Response;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Dlhis.Basic.Places.Dtos;
namespace Dlhis.Basic.BusinessPlace.Services; namespace Dlhis.Basic.BusinessPlace.Services;
@@ -10,5 +11,5 @@ public interface IBusinessPlacePermissionsService : IScopeDependency
Task SaveBusinessPlacePermissionAsync(BusinessPlacePermissionSaveRequest request); Task SaveBusinessPlacePermissionAsync(BusinessPlacePermissionSaveRequest request);
Task<GetMyResponse> GetMyAsync(); Task<List<BusinessPlaceDto>> GetMyAsync();
} }

View File

@@ -5,6 +5,7 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.Core.User.Abstractions; using Kurisu.Core.User.Abstractions;
using Kurisu.SqlSugar.Services; using Kurisu.SqlSugar.Services;
using Mapster; using Mapster;
using Dlhis.Basic.Places.Dtos;
namespace Dlhis.Basic.BusinessPlace.Services.Implements; namespace Dlhis.Basic.BusinessPlace.Services.Implements;
@@ -24,7 +25,7 @@ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
throw new NotImplementedException(); throw new NotImplementedException();
} }
public async Task<GetMyResponse> GetMyAsync() public async Task<List<BusinessPlaceDto>> GetMyAsync()
{ {
var userId = _currentUser.GetIntSubjectId(); var userId = _currentUser.GetIntSubjectId();
@@ -34,15 +35,10 @@ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
.Distinct() .Distinct()
.ToListAsync(); .ToListAsync();
var dtos = await _dbContext.Queryable<BusinessPlaceEntity>() return await _dbContext.Queryable<BusinessPlaceEntity>()
.Where(x => guids.Contains(x.Code)) .Where(x => guids.Contains(x.Code))
.Select<BusinessPlaceDto>() .Select<BusinessPlaceDto>()
.ToListAsync(); .ToListAsync();
var myResponse = new GetMyResponse
{
dtos = dtos
};
return myResponse;
} }
public async Task SaveBusinessPlacePermissionAsync(BusinessPlacePermissionSaveRequest request) public async Task SaveBusinessPlacePermissionAsync(BusinessPlacePermissionSaveRequest request)

View File

@@ -6,7 +6,6 @@ using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Org.BouncyCastle.Asn1.Ocsp;
namespace Dlhis.Canteen.Dishes.Controllers; namespace Dlhis.Canteen.Dishes.Controllers;
@@ -93,7 +92,7 @@ public class OrdersController : ControllerBase
//************************************************************** 订餐功能 ********************************************************************************** //************************************************************** 订餐功能 **********************************************************************************
/// <summary> /// <summary>
/// 订餐 /// 订单聚合数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost("booking")] [HttpPost("booking")]
@@ -104,16 +103,7 @@ public class OrdersController : ControllerBase
return await _bookingOrderService.BookingAsync(request); return await _bookingOrderService.BookingAsync(request);
} }
///// <summary> //************************************************************** 订餐功能 **********************************************************************************
///// 获取详情
///// </summary>
///// <param name="no"></param>
///// <returns></returns>
//[HttpGet("details")]
//public async Task<List<OrderDetailResponse>> GetDetailsAsync(string no)
//{
// return await _orderService.GetDetailsAsync(no);
//}
/// <summary> /// <summary>
/// 订单分页 /// 订单分页
@@ -127,12 +117,13 @@ public class OrdersController : ControllerBase
} }
/// <summary> /// <summary>
/// 订单聚合数据 /// 订单分页
/// </summary> /// </summary>
/// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("aggregation")] [HttpGet("booking/page")]
public async Task<Pagination<OrderAggregationResponse>> GetOrdersAggregationAsync([FromQuery] PageDto page) public async Task<Pagination<OrderBookingResponse>> GetBookingPageAsync([FromQuery] OrderBookingPageRequest request)
{ {
return await _orderService.GetOrdersAggregationAsync(page); return await _bookingOrderService.GetBookingPageAsync(request);
} }
} }

View File

@@ -1,14 +1,8 @@
using System.ComponentModel.DataAnnotations; using Kurisu.Core.DataAccess.Dto;
using Dlhis.Entity.Canteen.Enums;
using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Canteen.Order.Request; namespace Dlhis.Canteen.Order.Request;
public class OrderBookingPageRequest : PageDto public class OrderBookingPageRequest : PageDto
{ {
/// <summary>
/// 订单状态 CanteenOrderStatusEnumType
/// </summary>
[EnumDataType(typeof(CanteenOrderStatusEnumType))]
public CanteenOrderStatusEnumType? OrderStatus { get; set; }
} }

View File

@@ -33,6 +33,10 @@ public abstract class BaseOrderService
_logger = logger; _logger = logger;
} }
protected BaseOrderService(ICanteenSettingService canteenSettingService)
{
_canteenSettingService = canteenSettingService;
}
protected IDbContext DbContext => _dbContext; protected IDbContext DbContext => _dbContext;

View File

@@ -19,6 +19,8 @@ namespace Dlhis.Canteen.Order.Services.Implements;
public class BookingOrderService : BaseOrderService, IBookingOrderService public class BookingOrderService : BaseOrderService, IBookingOrderService
{ {
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
private readonly IDisheMenuApi _disheMenuApi; private readonly IDisheMenuApi _disheMenuApi;
private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi; private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi;
@@ -101,45 +103,45 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
{ {
var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync(); var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
if (mealInfo == null) if (mealInfo == null)
{ {
await DbContext.InsertAsync(new GainfoMealEntity await DbContext.InsertAsync(new GainfoMealEntity
{ {
Balance = 0, Balance = 0,
BalanceOfRecharge = 0, BalanceOfRecharge = 0,
BalanceOfSubsidies = 0, BalanceOfSubsidies = 0,
UserCode = gainfo.Code, UserCode = gainfo.Code,
UserNo = gainfo.No, UserNo = gainfo.No,
Version = 0, Version = 0,
}); });
(mealInfo == null).ThrowIfTrue("余额不足,无法消费"); (mealInfo == null).ThrowIfTrue("余额不足,无法消费");
} }
//金额+- //金额+-
mealInfo.Balance += order.Amount; mealInfo.Balance += order.Amount;
(mealInfo.Balance < 0).ThrowIfTrue("余额不足,无法消费"); (mealInfo.Balance < 0).ThrowIfTrue("余额不足,无法消费");
var effectMeal = await DbContext.Updateable<GainfoMealEntity>() var effectMeal = await DbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == mealInfo.Balance) .SetColumns(x => x.Balance == mealInfo.Balance)
.SetColumns(x => x.Version == x.Version + 1) .SetColumns(x => x.Version == x.Version + 1)
.Where(x => x.UserNo == order.UserNo && x.Version == mealInfo.Version)//必须与查询时的version一致 .Where(x => x.UserNo == order.UserNo && x.Version == mealInfo.Version)//必须与查询时的version一致
.ExecuteCommandAsync(); .ExecuteCommandAsync();
if (effectMeal <= 0) throw new VersionExceptions("更新版本冲突"); if (effectMeal <= 0) throw new VersionExceptions("更新版本冲突");
} }
var effectMenu = await DbContext.Updateable<DishesMenuEntity>() var effectMenu = await DbContext.Updateable<DishesMenuEntity>()
.SetColumns(x => x.Number == menuDetail.Number) .SetColumns(x => x.Number == menuDetail.Number)
.SetColumns(x => x.Version == x.Version + 1) .SetColumns(x => x.Version == x.Version + 1)
.SetColumns(x => x.ModifiedTime == now) .SetColumns(x => x.ModifiedTime == now)
.Where(x => x.StartDate <= menuDetail.Date && menuDetail.Date <= x.EndDate .Where(x => x.StartDate <= menuDetail.Date && menuDetail.Date <= x.EndDate
&& x.ShiftType == request.ShiftType && x.ShiftType == request.ShiftType
&& x.BusinessPlaceCode == request.BusinessPlaceCode && x.BusinessPlaceCode == request.BusinessPlaceCode
&& x.DishesCode == request.DishesCode && x.DishesCode == request.DishesCode
&& x.Version == menuDetail.Version && x.Version == menuDetail.Version
) )
.ExecuteCommandAsync(); .ExecuteCommandAsync();
if (effectMenu <= 0) throw new VersionExceptions("更新版本冲突"); if (effectMenu <= 0) throw new VersionExceptions("更新版本冲突");
@@ -176,7 +178,7 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
var myCodes = (await _businessPlacePermissionsApi.GetMyAsync()).Data.Select(x => (Guid?)x.Code).ToList(); var myCodes = (await _businessPlacePermissionsApi.GetMyAsync()).Data.Select(x => (Guid?)x.Code).ToList();
var page = await DbContext.Queryable<CanteenOrderEntity>() var page = await DbContext.Queryable<CanteenOrderEntity>()
.LeftJoin<GainfoEntity>((x, ga) => x.UserNo == ga.No) .LeftJoin<GainfoEntity>((x, ga) => x.UserNo == ga.No)
.Where(x => myCodes.Contains(x.BusinessPlaceCode)) .Where(x => myCodes.Contains(x.BusinessPlaceCode))
.WhereIF(request.OrderStatus.HasValue, x => x.OrderStatus == request.OrderStatus) .WhereIF(request.OrderStatus.HasValue, x => x.OrderStatus == request.OrderStatus)
.WhereIF(request.Search.IsPresent(), (x, ga) => x.UserCode == request.Search || ga.Name.Contains(request.Search)) .WhereIF(request.Search.IsPresent(), (x, ga) => x.UserCode == request.Search || ga.Name.Contains(request.Search))
@@ -242,9 +244,9 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
.ExecuteCommandAsync(); .ExecuteCommandAsync();
if (effect <= 0) if (effect <= 0)
{ {
throw new VersionExceptions("取消订单失败!"); throw new VersionExceptions("取消订单失败!");
} }
}, 5); }, 5);
} }

View File

@@ -18,8 +18,6 @@ using SqlSugar;
using Dlhis.Canteen.Order.Response; using Dlhis.Canteen.Order.Response;
using Dlhis.Canteen.Dishes; using Dlhis.Canteen.Dishes;
using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Request;
using System.Numerics;
using MySqlX.XDevAPI.Relational;
namespace Dlhis.Canteen.Order.Services.Implements; namespace Dlhis.Canteen.Order.Services.Implements;