Merge branch 'development' of https://git.dlhis.com/liguoyang/jinko.yikatong into development

This commit is contained in:
cheche
2024-03-20 09:55:17 +08:00
32 changed files with 385 additions and 379 deletions

View File

@@ -7,7 +7,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.Basic.Dishes.Controller; namespace Dlhis.Basic.Dishes.Controller;
@@ -52,6 +51,20 @@ public class DishesMenusController : ControllerBase
return await _dishesMenuService.GetDishesMenuDetailAsync(businessPlaceCode, customCode, date); return await _dishesMenuService.GetDishesMenuDetailAsync(businessPlaceCode, customCode, date);
} }
/// <summary>
/// 根据参数获取菜品
/// </summary>
/// <param name="businessPlaceCode"></param>
/// <param name="date"></param>
/// <param name="shiftType"></param>
/// <param name="categoryCodes"></param>
/// <returns></returns>
[HttpGet("dishes-selections")]
public async Task<List<DishesDetailResponse>> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, [FromQuery] List<Guid> categoryCodes)
{
return await _dishesMenuService.GetDishesUnderCurrentMenuAsync(businessPlaceCode, date, shiftType, categoryCodes);
}
/// <summary> /// <summary>
/// 菜单保存/更改 /// 菜单保存/更改
/// </summary> /// </summary>

View File

@@ -8,9 +8,9 @@ public class DishesMenusBookingSettingResponse
public DateTime ServerTime { get; set; } public DateTime ServerTime { get; set; }
/// <summary> /// <summary>
/// 餐别-餐次信息 /// 订餐期限
/// </summary> /// </summary>
public List<BusinessShiftMealRelationshipResponse> ShiftInfos { get; set; } public DateTime Deadline { get; set; }
/// <summary> /// <summary>
/// 支付方式 /// 支付方式

View File

@@ -12,6 +12,8 @@ public interface IDishesMenuService : IScopeDependency
Task<DishesMenuSaveRequest> GetDishesMenuDetailAsync(Guid businessPlaceCode, string customCode, DateTime date); Task<DishesMenuSaveRequest> GetDishesMenuDetailAsync(Guid businessPlaceCode, string customCode, DateTime date);
Task<List<DishesDetailResponse>> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, List<Guid> categoryCodes);
Task SaveDishesMenuAsync(DishesMenuSaveRequest request); Task SaveDishesMenuAsync(DishesMenuSaveRequest request);
Task<DishesMenuDetailDto> GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode); Task<DishesMenuDetailDto> GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode);

View File

@@ -9,7 +9,7 @@ using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response; using Dlhis.Basic.Dishes.Response;
using Dlhis.Basic.BusinessPlace.Services; using Dlhis.Basic.BusinessPlace.Services;
using Dlhis.Basic.Dishes.Dto; using Dlhis.Basic.Dishes.Dto;
using Org.BouncyCastle.Asn1.Ocsp; using Mapster;
namespace Dlhis.Basic.Dishes.Services.Implements; namespace Dlhis.Basic.Dishes.Services.Implements;
@@ -49,7 +49,7 @@ public class DishesMenuService : IDishesMenuService
BusinessPlaceCode = businessPlaceCode, BusinessPlaceCode = businessPlaceCode,
Items = new List<DishesMenuNameDateSaveRequest> Items = new List<DishesMenuNameDateSaveRequest>
{ {
new() new()
{ {
CustomCode = customCode, CustomCode = customCode,
Date = date, Date = date,
@@ -74,6 +74,21 @@ public class DishesMenuService : IDishesMenuService
}; };
} }
public async Task<List<DishesDetailResponse>> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, List<Guid> categoryCodes)
{
var data = await _dbContext.Queryable<DishesMenuEntity>()
.LeftJoin<DishesEntity>((x, dishes) => x.DishesCode == dishes.CustomCode)
.Where(x => x.BusinessPlaceCode == businessPlaceCode)
.Where(x => SqlFunc.DateIsSame(x.Date, date, DateType.Day))
.Where((x, dishes) => dishes.Enable)
.WhereIF(shiftType.HasValue, x => x.ShiftType == shiftType)
.WhereIF(categoryCodes.IsPresent(), (x, dishes) => categoryCodes.Contains(dishes.CategoryCode))
.Select((x, dishes) => dishes)
.ToListAsync();
return data.Adapt<List<DishesDetailResponse>>();
}
public async Task SaveDishesMenuAsync(DishesMenuSaveRequest request) public async Task SaveDishesMenuAsync(DishesMenuSaveRequest request)
{ {
//检验数据 //检验数据
@@ -163,7 +178,7 @@ public class DishesMenuService : IDishesMenuService
foreach (var item in request.Items) foreach (var item in request.Items)
{ {
var u = item.Date.ToString("yyyy-MM-dd") + "-" + item.CustomCode; var u = item.Date.ToString("yyyy-MM-dd") + ". " + item.CustomCode;
(item.ShiftTypes.DistinctBy(x => x.ShiftType).Count() != item.ShiftTypes.Count).ThrowIfTrue($"{u}的餐次不可重复添加"); (item.ShiftTypes.DistinctBy(x => x.ShiftType).Count() != item.ShiftTypes.Count).ThrowIfTrue($"{u}的餐次不可重复添加");

View File

@@ -66,12 +66,13 @@ public class DishesService : IDishesService
.Select(x => x.Value) .Select(x => x.Value)
.FirstAsync(); .FirstAsync();
DateTime dateTime; if (!TimeOnly.TryParse(strDatetime, out var deadline))
DateTime.TryParseExact(strDatetime, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out dateTime); deadline = new TimeOnly(8, 30);
var res = new DishesMenusBookingSettingResponse var res = new DishesMenusBookingSettingResponse
{ {
ServerTime = dateTime, ServerTime = DateTime.Now,
Deadline = DateTime.Today.Add(deadline.ToTimeSpan())
}; };
var shift = await _dbContext.Queryable<BusinessPlaceShiftRelationshipEntity>() var shift = await _dbContext.Queryable<BusinessPlaceShiftRelationshipEntity>()
@@ -87,11 +88,7 @@ public class DishesService : IDishesService
if (shift != null) if (shift != null)
{ {
var businessShiftMealRelationships = await _dbContext.Queryable<BusinessShiftMealRelationshipEntity>()
.Where(x => x.ShiftCode == shift.ShiftCode)
.Select<BusinessShiftMealRelationshipResponse>()
.ToListAsync();
res.ShiftInfos = businessShiftMealRelationships;
if (shift.TenantId == request.Factory) if (shift.TenantId == request.Factory)
{ {
@@ -104,6 +101,7 @@ public class DishesService : IDishesService
} }
res.PayTypes = payTypes; res.PayTypes = payTypes;
return res; return res;
} }

View File

@@ -27,6 +27,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="MealUser\Request\" />
<Folder Include="Summary\Request\" /> <Folder Include="Summary\Request\" />
</ItemGroup> </ItemGroup>

View File

@@ -1,5 +1,4 @@
using Dlhis.Basic.MealUser.Request; using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.MealUser.Services; using Dlhis.Basic.MealUser.Services;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
@@ -28,19 +27,8 @@ public class MealUsersController : ControllerBase
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("page")] [HttpGet("page")]
public async Task<Pagination<MealUserResponse>> GetPageAsync([FromQuery] MealUserPageRequest request) public async Task<Pagination<MealUserResponse>> GetPageAsync([FromQuery] PageDto request)
{ {
return await _mealUserService.GetPageAsync(request); return await _mealUserService.GetPageAsync(request);
} }
/// <summary>
/// 就餐人员保存
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public async Task AddAsync(MealUserAddRequest request)
{
await _mealUserService.AddAsync(request);
}
} }

View File

@@ -1,20 +0,0 @@
using System.ComponentModel.DataAnnotations;
using Dlhis.Entity.Canteen.Enums;
namespace Dlhis.Basic.MealUser.Request;
public class MealUserAddRequest
{
/// <summary>
/// 档案号
/// </summary>
[Required(ErrorMessage = "档案号不能为空")]
public string UserNo { get; set; }
/// <summary>
/// 用户类型
/// </summary>
[EnumDataType(typeof(CanteenUserEnumType))]
public CanteenUserEnumType UserType { get; set; }
}

View File

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

View File

@@ -1,6 +1,4 @@
using Dlhis.Entity.Canteen.Enums; namespace Dlhis.Basic.MealUser.Response;
namespace Dlhis.Basic.MealUser.Response;
public class MealUserResponse public class MealUserResponse
{ {
@@ -15,13 +13,6 @@ public class MealUserResponse
/// </summary> /// </summary>
public string UserCode { get; set; } public string UserCode { get; set; }
/// <summary>
/// 消费人员类型
/// </summary>
public CanteenUserEnumType UserType { get; set; }
/// <summary> /// <summary>
/// 卡号 /// 卡号
/// </summary> /// </summary>

View File

@@ -1,12 +1,9 @@
using Dlhis.Basic.MealUser.Request; using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.MealUser.Response;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.MealUser.Services; namespace Dlhis.Basic.MealUser.Services;
public interface IMealUserService : IScopeDependency public interface IMealUserService : IScopeDependency
{ {
Task<Pagination<MealUserResponse>> GetPageAsync(MealUserPageRequest request); Task<Pagination<MealUserResponse>> GetPageAsync(PageDto request);
Task AddAsync(MealUserAddRequest request);
} }

View File

@@ -1,9 +1,5 @@
using Dlhis.Basic.MealUser.Request; using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.Organization.Services;
using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Basic.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services; using Kurisu.SqlSugar.Services;
@@ -13,17 +9,15 @@ namespace Dlhis.Basic.MealUser.Services.Implements;
public class MealUserService : IMealUserService public class MealUserService : IMealUserService
{ {
private readonly IDbContext _dbContext; private readonly IDbContext _dbContext;
private readonly IGainfoStore _gainfoStore;
public MealUserService(IDbContext dbContext, IGainfoStore gainfoStore) public MealUserService(IDbContext dbContext)
{ {
_dbContext = dbContext; _dbContext = dbContext;
_gainfoStore = gainfoStore;
} }
public async Task<Pagination<MealUserResponse>> GetPageAsync(MealUserPageRequest request) public async Task<Pagination<MealUserResponse>> GetPageAsync(PageDto request)
{ {
var page = await _dbContext.Queryable<CanteenUserEntity>() var page = await _dbContext.Queryable<GainfoMealEntity>()
.LeftJoin<GainfoEntity>((x, ga) => x.UserNo == ga.No) .LeftJoin<GainfoEntity>((x, ga) => x.UserNo == ga.No)
.Select((x, ga) => new MealUserResponse .Select((x, ga) => new MealUserResponse
{ {
@@ -32,32 +26,9 @@ public class MealUserService : IMealUserService
BalanceOfSubsidies = x.BalanceOfSubsidies, BalanceOfSubsidies = x.BalanceOfSubsidies,
UserCode = ga.Code, UserCode = ga.Code,
UserNo = ga.No, UserNo = ga.No,
UserType = x.UserType
}) })
.ToPageListAsync(request); .ToPageListAsync(request);
return page; return page;
} }
public async Task AddAsync(MealUserAddRequest request)
{
//todo 获取档案信息
var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
.Where(x => x.No.ToString() == request.UserNo)
.FirstAsync();
gainfoEntity.ThrowIfNull($"档案[{request.UserNo}]不存在");
var entity = new CanteenUserEntity
{
UserNo = request.UserNo,
UserType = request.UserType,
Balance = 0,
BalanceOfRecharge = 0,
BalanceOfSubsidies = 0,
Version = 0,
};
await _dbContext.InsertAsync(entity);
}
} }

View File

@@ -169,7 +169,7 @@ public class GainfoService : IGainfoService
var info = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) var info = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
.LeftJoin<DepartmentEntity>((ga, department) => ga.DepartmentNo == department.No) .LeftJoin<DepartmentEntity>((ga, department) => ga.DepartmentNo == department.No)
.LeftJoin<CanteenUserEntity>((ga, department, mealUser) => ga.No == mealUser.UserNo) .LeftJoin<GainfoMealEntity>((ga, department, mealUser) => ga.No == mealUser.UserNo)
.Where((ga, department) => ga.Id == gainfo.Id) .Where((ga, department) => ga.Id == gainfo.Id)
.Select((ga, department, mealUser) => new GainfoCurrentResponse .Select((ga, department, mealUser) => new GainfoCurrentResponse
{ {

View File

@@ -6,6 +6,7 @@ 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;
@@ -64,13 +65,24 @@ public class OrdersController : ControllerBase
/// 订餐 /// 订餐
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[IgnoreTenant]
[HttpPost("booking")] [HttpPost("booking")]
[Transactional]
public async Task Booking(BookingMealRequest request) public async Task Booking(BookingMealRequest request)
{ {
await _orderService.Booking(request); await _orderService.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>
/// 充值 /// 充值
/// </summary> /// </summary>
@@ -80,4 +92,14 @@ public class OrdersController : ControllerBase
{ {
} }
/// <summary>
/// 订单聚合数据
/// </summary>
/// <returns></returns>
[HttpGet("aggregation")]
public async Task<Pagination<OrderAggregationResponse>> GetOrdersAggregationAsync([FromQuery] PageDto page)
{
return await _orderService.GetOrdersAggregationAsync(page);
}
} }

View File

@@ -3,7 +3,7 @@ using Kurisu.Core.CustomClass;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Canteen.Dishes.Request namespace Dlhis.Canteen.Order.Request
{ {
public class BalanceRecordUserPageRequest : PageDto, IValidatableObject public class BalanceRecordUserPageRequest : PageDto, IValidatableObject
{ {
@@ -13,11 +13,17 @@ namespace Dlhis.Canteen.Dishes.Request
[EnumDataType(typeof(DateTimeSearchEnumType))] [EnumDataType(typeof(DateTimeSearchEnumType))]
public DateTimeSearchEnumType? SearchDateTimeDimension { get; set; } public DateTimeSearchEnumType? SearchDateTimeDimension { get; set; }
/// <summary>
/// 消费应用类型
/// </summary>
public CanteenApplicaitonTypeEnumType? ApplicationType { get; set; }
/// <summary> /// <summary>
/// 日期范围查询 /// 日期范围查询
/// </summary> /// </summary>
public DateTimePeriod SearchDateTimePeriod { get; set; } public DateTimePeriod SearchDateTimePeriod { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
var now = DateTime.Now; var now = DateTime.Now;
@@ -43,8 +49,8 @@ namespace Dlhis.Canteen.Dishes.Request
} }
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Season) else if (SearchDateTimeDimension == DateTimeSearchEnumType.Season)
{ {
SearchDateTimePeriod.Start = now.AddMonths(0 - ((now.Month - 1) % 3)); SearchDateTimePeriod.Start = now.AddMonths(0 - (now.Month - 1) % 3);
SearchDateTimePeriod.End = now.AddMonths(3 - ((now.Month - 1) % 3)).AddMonths(1).AddDays(-1); SearchDateTimePeriod.End = now.AddMonths(3 - (now.Month - 1) % 3).AddMonths(1).AddDays(-1);
} }
else if (SearchDateTimeDimension == DateTimeSearchEnumType.HalfOfYear) else if (SearchDateTimeDimension == DateTimeSearchEnumType.HalfOfYear)
{ {

View File

@@ -1,61 +0,0 @@
using Dlhis.Entity.Canteen.Enums;
using SqlSugar.DbConvert;
using SqlSugar;
namespace Dlhis.Canteen.Order.Request
{
public class SaveDetailRequest
{
public long? Id { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string ThirdNo { get; set; }
/// <summary>
/// 营业日
/// </summary>
public DateOnly BusinessDate { get; set; }
/// <summary>
/// 餐次
/// </summary>
public ShiftEnumType ShiftType { get; set; }
/// <summary>
/// 菜品编码
/// </summary>
public Guid DishesCode { get; set; }
/// <summary>
/// 菜品名称
/// </summary>
public Guid DishesName { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Num { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 订单明细状态
/// </summary>
public OrderDetailsStatusEnumType OrderStatus { get; set; }
}
}

View File

@@ -49,4 +49,15 @@ public class BalanceRecordUserResponse
/// 记录产生日期 /// 记录产生日期
/// </summary> /// </summary>
public DateTime CostDateTime { get; set; } public DateTime CostDateTime { get; set; }
/// <summary>
/// 消费应用类型
/// </summary>
public CanteenApplicaitonTypeEnumType ApplicationType { get; set; }
/// <summary>
/// 消费应用类型
/// </summary>
public string ApplicationTypeDesc => ApplicationType.GetDescription();
} }

View File

@@ -0,0 +1,34 @@
using Newtonsoft.Json;
namespace Dlhis.Canteen.Order.Response;
public class DishesDto
{
[JsonIgnore]
public string No { get; set; }
/// <summary>
/// 菜品编码
/// </summary>
public string DishesCode { get; set; }
/// <summary>
/// 菜品名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 购买单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 购买数量
/// </summary>
public int Number { get; set; }
/// <summary>
/// 图片
/// </summary>
public string ImageUrl { get; set; }
}

View File

@@ -1,67 +0,0 @@
using Dlhis.Entity.Canteen.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Canteen.Order.Response;
public class GetDetailResponse
{
/// <summary>
/// 订单号
/// </summary>
public string ThirdNo { get; set; }
/// <summary>
/// 营业日
/// </summary>
public DateOnly SysDate { get; set; }
/// <summary>
/// 餐次
/// </summary>
public ShiftEnumType ShiftType { get; set; }
/// <summary>
/// 餐次CN
/// </summary>
public string ShiftTypeCN => ShiftType.GetDescription();
/// <summary>
/// 菜品编码
/// </summary>
public Guid DishesCode { get; set; }
/// <summary>
/// 菜品名称
/// </summary>
public string DishesName { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Num { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; set; }
/// <summary>
/// 订单明细状态
/// </summary>
public OrderDetailsStatusEnumType OrderStatus { get; set; }
/// <summary>
/// 订单明细状态CN
/// </summary>
public string OrderStatusCN => OrderStatus.GetDescription();
}

View File

@@ -0,0 +1,51 @@
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Canteen.Order.Response;
public class OrderAggregationResponse
{
public string No { get; set; }
/// <summary>
/// 营业点
/// </summary>
public string BusinessPlaceName { get; set; }
/// <summary>
/// 购买菜品
/// </summary>
public List<DishesDto> Dishes { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount
{
get
{
if (Dishes.IsPresent())
{
return Dishes.Sum(x => x.Number * x.Price);
}
return 0;
}
}
/// <summary>
/// 共计数量
/// </summary>
public int Count
{
get
{
if (Dishes.IsPresent())
{
return Dishes.Count;
}
return 0;
}
}
}

View File

@@ -0,0 +1,34 @@
//namespace Dlhis.Canteen.Order.Response;
//public class OrderDetailResponse
//{
// /// <summary>
// /// 菜品编码
// /// </summary>
// public string DishesCode { get; set; }
// /// <summary>
// /// 菜品名称
// /// </summary>
// public string Name { get; set; }
// /// <summary>
// /// 单价
// /// </summary>
// public decimal Price { get; set; }
// /// <summary>
// /// 数量
// /// </summary>
// public int Number { get; set; }
// /// <summary>
// /// 单位
// /// </summary>
// public string Unit { get; set; }
// /// <summary>
// /// 图片
// /// </summary>
// public string ImageUrl { get; set; }
//}

View File

@@ -9,6 +9,7 @@ public interface IOrderService : IScopeDependency
{ {
Task<Pagination<OrderResponse>> GetPageAsync(OrderPageRequest request); Task<Pagination<OrderResponse>> GetPageAsync(OrderPageRequest request);
Task<OrderResultResponse> AddAsync(OrderAddRequest request); Task<OrderResultResponse> AddAsync(OrderAddRequest request);
/// <summary> /// <summary>
@@ -23,5 +24,15 @@ public interface IOrderService : IScopeDependency
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
Task Booking(BookingMealRequest request); Task BookingAsync(BookingMealRequest request);
///// <summary>
///// 获取订单详情
///// </summary>
///// <param name="no"></param>
///// <returns></returns>
//Task<List<OrderDetailResponse>> GetDetailsAsync(string no);
Task<Pagination<OrderAggregationResponse>> GetOrdersAggregationAsync(PageDto page);
} }

View File

@@ -521,13 +521,14 @@ public class BalanceService : IBalanceService
.LeftJoin<GainfoEntity>((record, ga) => record.UserNo == ga.No) .LeftJoin<GainfoEntity>((record, ga) => record.UserNo == ga.No)
.LeftJoin<DepartmentEntity>((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin<DepartmentEntity>((record, ga, department) => ga.DepartmentNo == department.No)
.LeftJoin<BusinessPlaceEntity>((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code) .LeftJoin<BusinessPlaceEntity>((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code)
.LeftJoin<BusinessShiftEntity>((record, ga, department, bplace, bshift) => record.BusinessShiftCode == bshift.Code) .LeftJoin<BusinessPlaceShiftRelationshipEntity>((record, ga, department, bplace, bshiftR) => bplace.Code == bshiftR.PlaceCode)
.LeftJoin<BasicTypeEntity>((record, ga, department, bplace, bshift, type) => record.BusinessShiftCode.ToString() == type.Code) .LeftJoin<BusinessShiftEntity>((record, ga, department, bplace, bshiftR, shift) => shift.Code == bshiftR.ShiftCode)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDate <= request.SearchDateTimePeriod.End) .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDate <= request.SearchDateTimePeriod.End)
.WhereIF(request.ApplicationType.HasValue, record => record.ApplicationType == request.ApplicationType)
.Where((record, ga) => ga.IdentityUserId == userId) .Where((record, ga) => ga.IdentityUserId == userId)
.OrderBy(record => record.CreateTime, OrderByType.Desc) .OrderBy(record => record.CreateTime, OrderByType.Desc)
.Select((record, ga, department, bplace, bshift, type) => new BalanceRecordUserResponse .Select((record, ga, department, bplace, bshiftR, shift) => new BalanceRecordUserResponse
{ {
Id = record.Id, Id = record.Id,
Amount = record.Amount, Amount = record.Amount,
@@ -536,8 +537,9 @@ public class BalanceService : IBalanceService
Source = record.Source, Source = record.Source,
No = record.No, No = record.No,
BusinessPlaceName = bplace.Name, BusinessPlaceName = bplace.Name,
BusinessShiftName = type.Display, BusinessShiftName = shift.Name,
CostDateTime = record.CostDateTime CostDateTime = record.CostDateTime,
ApplicationType = record.ApplicationType,
}) })
.ToPageListAsync(request); .ToPageListAsync(request);
@@ -558,12 +560,12 @@ public class BalanceService : IBalanceService
await ContinueUpdateAsync(async () => await ContinueUpdateAsync(async () =>
{ {
//重算金额 //重算金额
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserNo == balanceRecord.UserNo).SingleAsync(); var canteenUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == balanceRecord.UserNo).SingleAsync();
//金额 + //金额 +
canteenUser.Balance += Math.Abs(balanceRecord.Amount); canteenUser.Balance += Math.Abs(balanceRecord.Amount);
var effect = await _dbContext.Updateable<CanteenUserEntity>() var effect = await _dbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == canteenUser.Balance) .SetColumns(x => x.Balance == canteenUser.Balance)
.SetColumns(x => x.Version == x.Version + 1) .SetColumns(x => x.Version == x.Version + 1)
.Where(x => x.UserNo == balanceRecord.UserNo && x.Version == canteenUser.Version) .Where(x => x.UserNo == balanceRecord.UserNo && x.Version == canteenUser.Version)

View File

@@ -18,6 +18,8 @@ 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;
@@ -62,12 +64,9 @@ public class OrderService : IOrderService
uniqueNos.Contains(deviceUniqueNo).ThrowIfFalse("无消费权限"); uniqueNos.Contains(deviceUniqueNo).ThrowIfFalse("无消费权限");
} }
public async Task Booking(BookingMealRequest request) public async Task BookingAsync(BookingMealRequest request)
{ {
await CheckExistsMyBookingsAsync(request.BookingDate); var gainfo = await CheckExistsMyBookingsAsync(request.BookingDate, request.ShiftType);
var jinkoCode = _currentUser.GetUserClaim("jinko-code");
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == jinkoCode).FirstAsync();
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync(); var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
@@ -130,15 +129,29 @@ public class OrderService : IOrderService
(menuDetail.Number < 0).ThrowIfTrue($"{menuDetail.DishesName}已售罄"); (menuDetail.Number < 0).ThrowIfTrue($"{menuDetail.DishesName}已售罄");
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync(); var mealInfo = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
//金额+- if (mealInfo == null)
canteenUser.Balance += order.Amount; {
(canteenUser.Balance < 0).ThrowIfTrue("余额不足,无法消费"); await _dbContext.InsertAsync(new GainfoMealEntity
{
Balance = 0,
BalanceOfRecharge = 0,
BalanceOfSubsidies = 0,
UserCode = gainfo.Code,
UserNo = gainfo.No,
Version = 0,
});
var effect = await _dbContext.Updateable<CanteenUserEntity>() (mealInfo == null).ThrowIfTrue("余额不足,无法消费");
.SetColumns(x => x.Balance == canteenUser.Balance) }
//金额+-
mealInfo.Balance += order.Amount;
(mealInfo.Balance < 0).ThrowIfTrue("余额不足,无法消费");
var effect = await _dbContext.Updateable<GainfoMealEntity>()
.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 == canteenUser.Version)//必须与查询时的version一致 .Where(x => x.UserNo == order.UserNo && x.Version == mealInfo.Version)//必须与查询时的version一致
.ExecuteCommandAsync(); .ExecuteCommandAsync();
if (effect <= 0) throw new VersionExceptions("更新版本冲突"); if (effect <= 0) throw new VersionExceptions("更新版本冲突");
@@ -147,7 +160,12 @@ public class OrderService : IOrderService
.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.Date == menuDetail.Date && x.ShiftType == request.ShiftType && x.BusinessPlaceCode == request.BusinessPlaceCode && x.Version == menuDetail.Version) .Where(x => x.Date == menuDetail.Date
&& x.ShiftType == request.ShiftType
&& x.BusinessPlaceCode == request.BusinessPlaceCode
&& x.DishesCode == request.DishesCode
&& x.Version == menuDetail.Version
)
.ExecuteCommandAsync(); .ExecuteCommandAsync();
if (effect <= 0) throw new VersionExceptions("更新版本冲突"); if (effect <= 0) throw new VersionExceptions("更新版本冲突");
@@ -156,12 +174,11 @@ public class OrderService : IOrderService
var balanceRecord = order.Adapt<BalanceRecordEntity>(); var balanceRecord = order.Adapt<BalanceRecordEntity>();
await _dbContext.InsertAsync(balanceRecord); await _dbContext.InsertAsync(balanceRecord);
await _dbContext.InsertAsync(new OrderDetailEntity await _dbContext.InsertAsync(new CanteenOrderDetailEntity
{ {
OrderNo = order.No, OrderNo = order.No,
DishesCode = request.DishesCode, DishesCode = request.DishesCode,
Price = menuDetail.Price, Price = menuDetail.Price,
Status = OrderDetailsStatusEnumType.I,
//Unit //Unit
Number = 1, Number = 1,
}); });
@@ -170,6 +187,24 @@ public class OrderService : IOrderService
} }
//public async Task<List<OrderDetailResponse>> GetDetailsAsync(string no)
//{
// return await _dbContext.Queryable<CanteenOrderDetailEntity>()
// .LeftJoin<DishesEntity>((x, d) => x.DishesCode == d.CustomCode)
// .Where(x => x.OrderNo == no)
// .Select((x, d) => new OrderDetailResponse
// {
// DishesCode = x.DishesCode,
// Price = x.Price,
// Name = d.Name,
// Number = x.Number,
// Unit = x.Unit,
// ImageUrl = d.ImageUrl,
// })
// .ToListAsync();
//}
public async Task<OrderResultResponse> DeviceConsume(OrderAddRequest request) public async Task<OrderResultResponse> DeviceConsume(OrderAddRequest request)
{ {
return await AddAsync(request); return await AddAsync(request);
@@ -189,19 +224,18 @@ public class OrderService : IOrderService
//消费权限控制 //消费权限控制
await CheckPAsync(gainfo.No, request.DeviceUniqueNo); await CheckPAsync(gainfo.No, request.DeviceUniqueNo);
var canteenUserExists = await _dbContext.Queryable<CanteenUserEntity>() var canteenUserExists = await _dbContext.Queryable<GainfoMealEntity>()
.Where(x => x.UserNo == gainfo.No) .Where(x => x.UserNo == gainfo.No)
.AnyAsync(); .AnyAsync();
if (!canteenUserExists) if (!canteenUserExists)
{ {
await _dbContext.InsertAsync(new CanteenUserEntity await _dbContext.InsertAsync(new GainfoMealEntity
{ {
UserNo = gainfo.No, UserNo = gainfo.No,
Balance = 0, Balance = 0,
BalanceOfRecharge = 0, BalanceOfRecharge = 0,
BalanceOfSubsidies = 0, BalanceOfSubsidies = 0,
UserType = CanteenUserEnumType.LocalTenant,
TenantId = gainfo.Factory, TenantId = gainfo.Factory,
Version = 0, Version = 0,
@@ -226,7 +260,7 @@ public class OrderService : IOrderService
//获取人员余额 //获取人员余额
return await _dbContext.Queryable<GainfoEntity>() return await _dbContext.Queryable<GainfoEntity>()
.LeftJoin<DepartmentEntity>((ga, department) => ga.DepartmentNo == department.No) .LeftJoin<DepartmentEntity>((ga, department) => ga.DepartmentNo == department.No)
.LeftJoin<CanteenUserEntity>((ga, department, mealUser) => ga.No == mealUser.UserNo) .LeftJoin<GainfoMealEntity>((ga, department, mealUser) => ga.No == mealUser.UserNo)
.Where(ga => ga.Id == gainfo.Id) .Where(ga => ga.Id == gainfo.Id)
.Select((ga, department, mealUser) => new OrderResultResponse .Select((ga, department, mealUser) => new OrderResultResponse
{ {
@@ -428,6 +462,53 @@ public class OrderService : IOrderService
} }
public async Task<Pagination<OrderAggregationResponse>> GetOrdersAggregationAsync(PageDto page)
{
var subjectId = _currentUser.GetIntSubjectId();
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdentityUserId == subjectId).FirstAsync();
var jinkoCode = _currentUser.GetUserClaim("jinko-code") ?? string.Empty;
if (jinkoCode.IsPresent())
{
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == jinkoCode).FirstAsync();
}
var pageResult = await _dbContext.Queryable<CanteenOrderEntity>().Where(x => x.UserNo == gainfo.No)
.LeftJoin<BusinessPlaceEntity>((x, bplace) => x.BusinessPlaceCode == bplace.Code)
.Where(x => x.ApplicationType == CanteenApplicaitonTypeEnumType.Booking)
.Select((x, bplace) => new OrderAggregationResponse
{
No = x.No,
BusinessPlaceName = bplace.Name,
})
.ToPageListAsync(page);
//.LeftJoin<CanteenOrderDetailEntity>((x, bplace, detail) => x.No == detail.OrderNo)
var nos = pageResult.Data.Select(x => x.No).ToList();
var dtos = await _dbContext.Queryable<CanteenOrderDetailEntity>()
.LeftJoin<DishesEntity>((x, d) => x.DishesCode == d.CustomCode)
.Where(x => nos.Contains(x.OrderNo))
.Select((x, d) => new DishesDto
{
No = x.OrderNo,
DishesCode = x.DishesCode,
Name = d.Name,
ImageUrl = d.ImageUrl,
Number = x.Number,
Price = x.Price
})
.ToListAsync();
pageResult.Data.ForEach(item =>
{
item.Dishes = dtos.Where(x => x.No == item.No).ToList();
});
return pageResult;
}
//******************************************************* help methods ************************************************************/ //******************************************************* help methods ************************************************************/
@@ -582,11 +663,11 @@ public class OrderService : IOrderService
await ContinueUpdateAsync(async () => await ContinueUpdateAsync(async () =>
{ {
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync(); var canteenUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
//金额+- //金额+-
canteenUser.Balance += order.Amount; canteenUser.Balance += order.Amount;
var effect = await _dbContext.Updateable<CanteenUserEntity>() var effect = await _dbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == canteenUser.Balance) .SetColumns(x => x.Balance == canteenUser.Balance)
.SetColumns(x => x.Version == x.Version + 1) .SetColumns(x => x.Version == x.Version + 1)
.Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version) .Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version)
@@ -623,7 +704,7 @@ public class OrderService : IOrderService
{ {
if (!allowNoBalance) if (!allowNoBalance)
{ {
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync(); var canteenUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
//金额+- //金额+-
canteenUser.Balance += order.Amount; canteenUser.Balance += order.Amount;
if (canteenUser.Balance < 0) if (canteenUser.Balance < 0)
@@ -631,7 +712,7 @@ public class OrderService : IOrderService
throw new UserFriendlyException("余额不足,无法消费"); throw new UserFriendlyException("余额不足,无法消费");
} }
var effect = await _dbContext.Updateable<CanteenUserEntity>() var effect = await _dbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == canteenUser.Balance) .SetColumns(x => x.Balance == canteenUser.Balance)
.SetColumns(x => x.Version == x.Version + 1) .SetColumns(x => x.Version == x.Version + 1)
.Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version)//必须与查询时的version一致 .Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version)//必须与查询时的version一致
@@ -651,20 +732,30 @@ public class OrderService : IOrderService
/// 检查我的订餐是否存在,存在抛出异常 /// 检查我的订餐是否存在,存在抛出异常
/// </summary> /// </summary>
/// <param name="bookingDate"></param> /// <param name="bookingDate"></param>
/// <param name="shiftType"></param>
/// <returns></returns> /// <returns></returns>
private async Task CheckExistsMyBookingsAsync(DateTime bookingDate) private async Task<GainfoEntity> CheckExistsMyBookingsAsync(DateTime bookingDate, ShiftEnumType shiftType)
{ {
var jinkoCode = _currentUser.GetUserClaim("jinko-code"); var subjectId = _currentUser.GetIntSubjectId();
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == jinkoCode).FirstAsync(); var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdentityUserId == subjectId).FirstAsync();
var jinkoCode = _currentUser.GetUserClaim("jinko-code") ?? string.Empty;
if (jinkoCode.IsPresent())
{
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == jinkoCode).FirstAsync();
}
var start = bookingDate.Date; var start = bookingDate.Date.AddDays(-1);
var end = start.AddDays(1).AddSeconds(-1); var end = start.AddDays(1).AddSeconds(-1);
var exists = await _dbContext.Queryable<CanteenOrderEntity>().Where(x => x.ApplicationType == CanteenApplicaitonTypeEnumType.Booking) var exists = await _dbContext.Queryable<CanteenOrderEntity>()
.Where(x => x.ApplicationType == CanteenApplicaitonTypeEnumType.Booking)
.Where(x => x.ShiftType == shiftType)
.Where(x => x.UserNo == gainfo.No) .Where(x => x.UserNo == gainfo.No)
.Where(x => x.CreateTime >= start && x.CreateTime <= end) .Where(x => x.CreateTime >= start && x.CreateTime <= end)
.AnyAsync(); .AnyAsync();
exists.ThrowIfTrue("不可重复订餐"); exists.ThrowIfTrue("不可重复订餐");
return gainfo;
} }
} }

View File

@@ -10,6 +10,13 @@
"BasicRequestUrl": "http://localhost:5002", "BasicRequestUrl": "http://localhost:5002",
"SysRequestUrl": "http://localhost:5003" "SysRequestUrl": "http://localhost:5003"
}, },
"SqlSugarOptions": {
"DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;",
"SlaveConnectionString": [],
"Timeout": 30,
"SlowSqlTime": 1,
"EnableSqlLog": true
},
"SwaggerOptions": { "SwaggerOptions": {
"Enable": true, "Enable": true,
"Authority": "https://yikatong.isawesome.cn/oauth2", "Authority": "https://yikatong.isawesome.cn/oauth2",

View File

@@ -4,14 +4,14 @@ using SqlSugar;
namespace Dlhis.Entity.Basic.Entity; namespace Dlhis.Entity.Basic.Entity;
[SugarTable(TableName = "BusinessPlaceShiftRelationship", TableDescription = "营业点餐次关系")] [SugarTable(TableName = "BusinessPlaceShiftRelationship", TableDescription = "营业点餐别关系")]
public class BusinessPlaceShiftRelationshipEntity : SugarBaseEntity, ITenantId public class BusinessPlaceShiftRelationshipEntity : SugarBaseEntity, ITenantId
{ {
[SugarColumn(ColumnDescription = "营业点code")] [SugarColumn(ColumnDescription = "营业点code")]
public Guid PlaceCode { get; set; } public Guid PlaceCode { get; set; }
[SugarColumn(ColumnDescription = "餐次code")] [SugarColumn(ColumnDescription = "餐别code")]
public Guid ShiftCode { get; set; } public Guid ShiftCode { get; set; }
public string TenantId { get; set; } public string TenantId { get; set; }

View File

@@ -1,16 +1,14 @@
using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity;
using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar; using Kurisu.SqlSugar;
using SqlSugar; using SqlSugar;
using SqlSugar.DbConvert;
namespace Dlhis.Entity.Basic.Entity; namespace Dlhis.Entity.Basic.Entity;
/// <summary> /// <summary>
/// 就餐人员 /// 就餐人员
/// </summary> /// </summary>
[SugarTable(TableName = "CanteenUser", TableDescription = "就餐人员")] [SugarTable(TableName = "GainfoMeal", TableDescription = "就餐人员")]
public class CanteenUserEntity : SugarBaseEntity, IVersion, ITenantId public class GainfoMealEntity : SugarBaseEntity, IVersion, ITenantId
{ {
/// <summary> /// <summary>
/// 档案号 /// 档案号
@@ -19,10 +17,10 @@ public class CanteenUserEntity : SugarBaseEntity, IVersion, ITenantId
public string UserNo { get; set; } public string UserNo { get; set; }
/// <summary> /// <summary>
/// 消费人员类型 /// 工号
/// </summary> /// </summary>
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "消费人员类型")] [SugarColumn(IsNullable = false, ColumnDescription = "工号", UniqueGroupNameList = new[] { "idx_CanteenUser_UserCode" })]
public CanteenUserEnumType UserType { get; set; } public string UserCode { get; set; }
/// <summary> /// <summary>
/// 余额 /// 余额

View File

@@ -28,6 +28,17 @@ public class MealSupplementRecordEntity : MealSupplementRequestRecordEntity
/// </summary> /// </summary>
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
public MealSupplementStatusEnumtype Status { get; set; } public MealSupplementStatusEnumtype Status { get; set; }
/// <summary>
/// 处理结果
/// </summary>
[SugarColumn(ColumnDescription = "处理结果", ColumnDataType = "varchar(2000)")]
public string Result { get; set; }
/// <summary>
/// 状态同步
/// </summary>
public bool Sync { get; set; }
} }
[SugarTable(TableName = "MealSupplementRequestRecord", TableDescription = "餐补请求记录")] [SugarTable(TableName = "MealSupplementRequestRecord", TableDescription = "餐补请求记录")]

View File

@@ -1,16 +1,14 @@
using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity;
using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar; using Kurisu.SqlSugar;
using SqlSugar; using SqlSugar;
using SqlSugar.DbConvert;
namespace Dlhis.Entity.Canteen.Entities; namespace Dlhis.Entity.Canteen.Entities;
/// <summary> /// <summary>
/// 订餐明细表 /// 订餐明细表
/// </summary> /// </summary>
[SugarTable(TableName = "OrderDetail", TableDescription = "订单明细表")] [SugarTable(TableName = "CanteenOrderDetail", TableDescription = "订单明细表")]
public class OrderDetailEntity : SugarBaseEntity, ITenantId public class CanteenOrderDetailEntity : SugarBaseEntity, ITenantId
{ {
/// <summary> /// <summary>
/// 订单号 /// 订单号
@@ -42,13 +40,5 @@ public class OrderDetailEntity : SugarBaseEntity, ITenantId
[SugarColumn(ColumnDescription = "单位")] [SugarColumn(ColumnDescription = "单位")]
public string Unit { get; set; } public string Unit { get; set; }
/// <summary>
/// 订单明细状态
/// </summary>
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "状态")]
public OrderDetailsStatusEnumType Status { get; set; }
public string TenantId { get; set; } public string TenantId { get; set; }
} }

View File

@@ -1,30 +0,0 @@

using System.ComponentModel;
namespace Dlhis.Entity.Canteen.Enums;
/// <summary>
/// 就餐人员类型
/// </summary>
[Description("就餐人员类型")]
public enum CanteenUserEnumType
{
/// <summary>
/// 本基地
/// </summary>
[Description("本基地人员")]
LocalTenant = 1,
/// <summary>
/// 其他基地
/// </summary>
[Description("其他基地人员")]
OtherTenant,
/// <summary>
/// 外部人员
/// </summary>
[Description("外部人员")]
External
}

View File

@@ -1,36 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dlhis.Entity.Canteen.Enums
{
public enum MiniProgramOrderStatusEnumType
{
/// <summary>
/// 有效
/// </summary>
[Description("有效")]
I = 1,
/// <summary>
/// 取消
/// </summary>
[Description("取消")]
C = 2,
/// <summary>
/// 退单
/// </summary>
[Description("退单")]
X = 3,
/// <summary>
/// 免单
/// </summary>
[Description("免单")]
Z = 4,
}
}

View File

@@ -1,17 +0,0 @@
using System.ComponentModel;
namespace Dlhis.Entity.Canteen.Enums
{
/// <summary>
/// 订单明细状态 OrderDetailsStatusEnumType
/// </summary>
[Description("订单明细状态")]
public enum OrderDetailsStatusEnumType
{
/// <summary>
/// 有效
/// </summary>
[Description("有效")]
I = 1,
}
}