From 255f4b4a13452b01233997e60bdafc66613fb0da Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Fri, 15 Mar 2024 15:10:55 +0800
Subject: [PATCH 01/31] =?UTF-8?q?fix=20=E8=A1=A8=E5=A2=9E=E5=8A=A0ITenanti?=
=?UTF-8?q?d?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Request/GetMiniProgramOrderRequest.cs | 4 ----
.../Order/Response/GetDetailResponse.cs | 2 +-
.../Order/Response/GetDishesResponse.cs | 9 ++++----
.../Services/Implements/MenuDishesService.cs | 21 +++++++++++++------
.../MiniProgramOrderDetailService.cs | 5 ++---
.../appsettings.Development.json | 3 ++-
.../Canteen/Entities/CanteenDishesEntity.cs | 5 ++++-
.../Canteen/Entities/CanteenMenuEntity.cs | 4 +++-
.../Entities/MiniProgramOrderEntity.cs | 5 ++++-
.../Canteen/Entities/OrderDetailsEntity.cs | 5 ++++-
10 files changed, 40 insertions(+), 23 deletions(-)
diff --git a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
index 98bdea14..dbbbdea8 100644
--- a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
@@ -4,9 +4,5 @@ namespace Dlhis.Canteen.Order.Request
{
public class GetMiniProgramOrderRequest : PageDto
{
- ///
- /// 用餐日期
- ///
- public DateOnly? SysDate { get; set; }
}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
index 1b78423e..0017a076 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
@@ -15,7 +15,7 @@ namespace Dlhis.Canteen.Order.Response
///
/// 营业日
///
- public DateOnly BusinessDate { get; set; }
+ public DateOnly SysDate { get; set; }
///
/// 餐次
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
index 4d149b01..f8da22a9 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
@@ -1,13 +1,10 @@
using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Canteen.Order.Response
{
public class GetDishesResponse
{
-
///
/// 大类
///
@@ -53,7 +50,6 @@ namespace Dlhis.Canteen.Order.Response
///
public string Unit { get; set; }
-
///
/// 图片
///
@@ -63,5 +59,10 @@ namespace Dlhis.Canteen.Order.Response
/// 是否启用
///
public bool Enable { get; set; }
+
+ ///
+ /// 限售份数
+ ///
+ public int? RestrictedNum { get; set; } = null;
}
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
index a5965110..22aa2eb9 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
@@ -32,7 +32,6 @@ namespace Dlhis.Canteen.Order.Services.Implements
.Select((x,place) => new GetMenuResponse
{
ShiftTypesSrt = x.ShiftTypes.ToString(),
- //ShiftTypesSrt = string.Join(", ", x.ShiftTypes.Select(enumValue => enumValue.GetDescription())),
PlaceName = place.Name,
},true)
.ToPageListAsync(request);
@@ -70,14 +69,24 @@ namespace Dlhis.Canteen.Order.Services.Implements
}
else
{
- var disCodes = await _dbContext.Queryable()
- .Where(x => x.MenuCode == request.MenuCode)
- .Select(x => x.DishersCode)
+ var relas = await _dbContext.Queryable()
+ .Where(x => x.MenuCode == request.MenuCode)
.ToListAsync();
- return await _dbContext.Queryable()
- .Where(x => disCodes.Contains(x.Code))
+
+ var disCodes = relas.Select(x => x.DishersCode).ToList();
+
+ var page = await _dbContext.Queryable()
+ .Where(discher => disCodes.Contains(discher.Code))
.Select()
.ToPageListAsync(request);
+
+ foreach (var res in page.Data)
+ {
+ res.RestrictedNum = relas.Where(x => x.DishersCode == res.Code)
+ .Select(x => x.RestrictedNum)
+ .FirstOrDefault();
+ }
+ return page;
}
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
index 9c31e57e..7865befd 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
@@ -31,7 +31,6 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
.LeftJoin((order, place,dishers) => order.DishesCode == dishers.Code)
.LeftJoin((order, place, dishers,depart) => order.DepartmentNo == depart.No)
.WhereIF(!request.Search.IsEmpty(), order => order.Name == request.Search || order.Code == request.Search)
- .WhereIF(request.SysDate.HasValue,order=>order.SysDate == request.SysDate)
.OrderBy(order => order.CostDate,SqlSugar.OrderByType.Desc)
.Select((order, place, dishers, depart) => new GetMiniProgramOrderResponse
{
@@ -113,7 +112,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
flag.ThrowIfTrue($"工号:{request.UserCode} 姓名:{gainfo.Name} 已经定过{tomorrow}的{request.ShiftType.GetDescription()}!");
//支付方式
- /* var result = await _tenantApi.GetTenantTreeAsync();
+ var result = await _tenantApi.GetTenantTreeAsync();
var tree = result.Data;
var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault();
var codes = shanxi.Next.Select(x => x.Code).ToList();
@@ -123,7 +122,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
{
true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}");
}
- }*/
+ }
//生成订单
var order = new MiniProgramOrderEntity
diff --git a/Src/Dlhis.Canteen/appsettings.Development.json b/Src/Dlhis.Canteen/appsettings.Development.json
index 69b2958a..49e0aa9e 100644
--- a/Src/Dlhis.Canteen/appsettings.Development.json
+++ b/Src/Dlhis.Canteen/appsettings.Development.json
@@ -7,7 +7,8 @@
},
"InternalRequest": {
"CommonRequestUrl": "http://localhost:5001",
- "BasicRequestUrl": "http://localhost:5002"
+ "BasicRequestUrl": "http://localhost:5002",
+ "SysRequestUrl": "http://localhost:5003"
},
"SwaggerOptions": {
"Enable": true,
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
index 25dfd418..f313f008 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
@@ -1,4 +1,5 @@
using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
using SqlSugar.DbConvert;
@@ -14,7 +15,7 @@ namespace Dlhis.Entity.Canteen.Entities
/// 菜品表
///
[SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")]
- public class CanteenDishesEntity : SugarBaseEntity
+ public class CanteenDishesEntity : SugarBaseEntity, ITenantId
{
///
@@ -76,5 +77,7 @@ namespace Dlhis.Entity.Canteen.Entities
///
[SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")]
public bool Enable { get; set; }
+
+ public string TenantId { get; set; }
}
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
index 03461d3a..77b12057 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
@@ -1,4 +1,5 @@
using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
@@ -8,7 +9,7 @@ namespace Dlhis.Entity.Canteen.Entities;
/// 菜单表
///
[SugarTable(TableName = "CanteenMenu", TableDescription = "菜单表")]
-public class CanteenMenuEntity : SugarBaseEntity
+public class CanteenMenuEntity : SugarBaseEntity, ITenantId
{
///
@@ -53,6 +54,7 @@ public class CanteenMenuEntity : SugarBaseEntity
///
[SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")]
public bool Enable { get; set; }
+ public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
index 13ba9fed..91b3b525 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
@@ -1,4 +1,5 @@
using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
using SqlSugar.DbConvert;
@@ -9,7 +10,7 @@ namespace Dlhis.Entity.Canteen.Entities
/// 小程序订单表
///
[SugarTable(TableName = "MiniProgramOrder", TableDescription = "小程序订单表")]
- public class MiniProgramOrderEntity : SugarBaseEntity
+ public class MiniProgramOrderEntity : SugarBaseEntity, ITenantId
{
///
/// 订单号
@@ -118,5 +119,7 @@ namespace Dlhis.Entity.Canteen.Entities
///
[SugarColumn(ColumnDescription = "总金额")]
public decimal TotalAmount { get; set; }
+
+ public string TenantId { get; set; }
}
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
index 7ba082e5..518305cb 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
@@ -1,4 +1,5 @@
using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
using SqlSugar.DbConvert;
@@ -9,7 +10,7 @@ namespace Dlhis.Entity.Canteen.Entities
/// 订餐明细表
///
[SugarTable(TableName = "OrderDetails", TableDescription = "订餐明细表")]
- public class OrderDetailsEntity : SugarBaseEntity
+ public class OrderDetailsEntity : SugarBaseEntity, ITenantId
{
///
/// 订单号
@@ -70,5 +71,7 @@ namespace Dlhis.Entity.Canteen.Entities
///
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单明细状态")]
public OrderDetailsStatusEnumType OrderStatus { get; set; }
+
+ public string TenantId { get; set; }
}
}
From 328ef5f42c60c32c888d4b388147717a6f91f0ee Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Fri, 15 Mar 2024 15:13:53 +0800
Subject: [PATCH 02/31] =?UTF-8?q?fix=20=E6=8C=89=E5=9F=BA=E5=9C=B0?=
=?UTF-8?q?=E5=88=86=E9=85=8D=E8=8E=B7=E5=8F=96=E5=80=BC=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Device/Services/Implements/DevicePermissionService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
index f3c56a47..35c4d5a1 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
@@ -506,8 +506,8 @@ public class DevicePermissionService : IDevicePermissionService
//按厂区
var dt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Tenant, gainfo.Factory);
var gt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Tenant, gainfo.Factory);
- deviceCodes.AddRange(du);
- deviceGroupCodes.AddRange(gu);
+ deviceCodes.AddRange(dt);
+ deviceGroupCodes.AddRange(gt);
var groupCodes = deviceGroupCodes.SelectMany(x => x.Codes).Distinct().ToList();
var deveiceCodesByGroup = deviceGroupRelationships.Where(x => groupCodes.Contains(x.GroupCode)).GroupBy(x => x.TenantId)
From 9a841433151a31fca41f048e25a2944be9cf6cf5 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Fri, 15 Mar 2024 16:06:17 +0800
Subject: [PATCH 03/31] =?UTF-8?q?fix=20=E4=B8=B4=E6=97=B6=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E9=80=81=E9=A4=90=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Order/Request/DispositionDishesDto.cs | 2 +-
.../Order/Request/OrderRequest.cs | 2 +-
.../Order/Request/SaveDishesRequest.cs | 84 ++++++------
.../Order/Request/SaveMenuRequest.cs | 69 +++++-----
.../Order/Response/GetDishesResponse.cs | 4 +-
.../Response/GetMiniProgramOrderResponse.cs | 2 +-
.../Order/Services/IMenuDishesService.cs | 3 -
.../Services/Implements/MenuDishesService.cs | 75 ++---------
.../MiniProgramOrderDetailService.cs | 66 +++++-----
.../Canteen/Entities/CanteenDishesEntity.cs | 123 +++++++++---------
.../CanteenMenuDishersRelationshipEntity.cs | 32 -----
.../Canteen/Entities/CanteenMenuEntity.cs | 50 ++++---
.../Entities/MiniProgramOrderEntity.cs | 23 +---
.../Canteen/Entities/OrderDetailsEntity.cs | 96 +++++---------
.../Canteen/Enums/CanteenDishesEnumType.cs | 35 -----
.../Canteen/Enums/CanteenMenuEnumType.cs | 28 ++++
.../Canteen/Enums/CanteenPayEnumType.cs | 28 ----
17 files changed, 279 insertions(+), 443 deletions(-)
delete mode 100644 Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
delete mode 100644 Src/Dlhis.Entity/Canteen/Enums/CanteenDishesEnumType.cs
create mode 100644 Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
delete mode 100644 Src/Dlhis.Entity/Canteen/Enums/CanteenPayEnumType.cs
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
index 07863df5..c2abba2b 100644
--- a/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
+++ b/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
@@ -2,7 +2,7 @@
{
public class DispositionDishesDto
{
- public Guid DisherCode { get; set; }
+ public string DisherCode { get; set; }
public int RestrictedNum { get; set; }
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
index 4d8b9cc2..28481cb8 100644
--- a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
@@ -35,7 +35,7 @@ namespace Dlhis.Canteen.Order.Request
///
/// 菜品
///
- public Guid DishesCode { get; set; }
+ public string DishesCode { get; set; }
///
/// 数量
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
index f68b41e1..1e6ac4a3 100644
--- a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
@@ -1,59 +1,51 @@
-using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
-using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Order.Request;
+
+public class SaveDishesRequest
{
- public class SaveDishesRequest
- {
+ public long? Id { get; set; }
- public long? Id { get; set; }
+ ///
+ /// 大类
+ ///
+ public string PCategory { get; set; }
- ///
- /// 大类
- ///
- public string Categories { get; set; }
+ /// `
+ /// 小类
+ ///
+ [Required]
+ public string Category { get; set; }
- ///
- /// 小类
- ///
- public string SubCategories { get; set; }
+ ///
+ /// 菜品名称
+ ///
+ [Required]
+ public string Name { get; set; }
- ///
- /// 菜品名称
- ///
- public string Name { get; set; }
- ///
- /// 类型
- ///
- [EnumDataType(typeof(CanteenDishesEnumType))]
- public CanteenDishesEnumType Type { get; set; }
+ [Required]
+ public string CustomCode { get; set; }
- ///
- /// 描述
- ///
- public string Description { get; set; }
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
- ///
- /// 单价
- ///
- public decimal Amount { get; set; }
+ ///
+ /// 单价
+ ///
+ [Range(0, 10000)]
+ public decimal Price { get; set; }
- ///
- /// 单位
- ///
- public string Unit { get; set; }
- ///
- /// 图片
- ///
- public string Image { get; set; }
+ ///
+ /// 图片
+ ///
+ public string ImageUrl { get; set; }
- ///
- /// 是否启用
- ///
- public bool Enable { get; set; }
- }
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
}
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
index 76e7d66e..079707c4 100644
--- a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
@@ -1,44 +1,39 @@
using Dlhis.Entity.Canteen.Enums;
-using Dlhis.Entity.Device.Enums;
-using SqlSugar;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Order.Request;
+
+public class SaveMenuRequest : IValidatableObject
{
- public class SaveMenuRequest
+ ///
+ /// 所属营业点
+ ///
+ public Guid PlaceCode { get; set; }
+
+ ///
+ /// 菜单名称
+ ///
+ public string Name { get; set; }
+
+
+
+
+ ///
+ /// 营业日期,不能小于等于当天
+ ///
+ public DateTime Date { get; set; }
+
+
+ ///
+ /// 餐次段
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+
+
+
+ public IEnumerable Validate(ValidationContext validationContext)
{
- public long? Id { get; set; }
-
- ///
- /// 菜单名称
- ///
- public string Name { get; set; }
-
- ///
- /// 所属营业点
- ///
- [Required]
- public Guid PlaceCode { get; set; }
-
- ///
- /// 厂区
- ///
- public string Factory { get; set; }
-
- ///
- /// 营业日期
- ///
- public DateOnly StartDate { get; set; }
-
-
- ///
- /// 餐次段
- ///
- public List ShiftTypes { get; set; }
-
- ///
- /// 是否启用
- ///
- public bool Enable { get; set; }
+ throw new NotImplementedException();
}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
index f8da22a9..4705e15f 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
@@ -18,7 +18,7 @@ namespace Dlhis.Canteen.Order.Response
///
/// 菜品编码
///
- public Guid Code { get; set; }
+ public string Code { get; set; }
///
/// 菜品名称
@@ -28,7 +28,7 @@ namespace Dlhis.Canteen.Order.Response
///
/// 菜品类型
///
- public CanteenDishesEnumType Type { get; set; }
+ public CanteenMenuEnumType Type { get; set; }
///
/// 菜品类型描述
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
index 5fcd6a2b..a0a28732 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
@@ -120,7 +120,7 @@ namespace Dlhis.Canteen.Order.Response
///
/// 订单类型
///
- public CanteenDishesEnumType OrderType { get; set; }
+ public CanteenMenuEnumType OrderType { get; set; }
///
/// 订单类型CN
diff --git a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
index 020b5bed..025f0325 100644
--- a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
@@ -1,7 +1,6 @@
using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Kurisu.Core.DataAccess.Dto;
-using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Canteen.Order.Services
{
@@ -14,7 +13,5 @@ namespace Dlhis.Canteen.Order.Services
Task> GetDishesAsync(GetDishesRequest request);
Task SaveDishesAsync(SaveDishesRequest request);
-
- Task DispositionDishesAsync(DispositionDishesRequest request);
}
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
index 22aa2eb9..2fc79323 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
@@ -24,16 +24,16 @@ namespace Dlhis.Canteen.Order.Services.Implements
public async Task> GetMenuAsync(GetMenuRequest request)
{
+
var page = await _dbContext.Queryable()
- .LeftJoin((x,place) => x.PlaceCode == place.Code)
- .WhereIF(!request.Factory.IsEmpty(),x => x.Factory == request.Factory)
+ .LeftJoin((x, place) => x.PlaceCode == place.Code)
.WhereIF(request.PlaceCode.HasValue, x => request.PlaceCode == x.PlaceCode)
- .WhereIF(!request.Search.IsEmpty(),x => x.Name.Contains(request.Search))
- .Select((x,place) => new GetMenuResponse
+ .WhereIF(!request.Search.IsEmpty(), x => x.Name.Contains(request.Search))
+ .Select((x, place) => new GetMenuResponse
{
- ShiftTypesSrt = x.ShiftTypes.ToString(),
PlaceName = place.Name,
- },true)
+
+ }, true)
.ToPageListAsync(request);
return page;
}
@@ -44,50 +44,12 @@ namespace Dlhis.Canteen.Order.Services.Implements
.FirstAsync(x => x.Code == request.PlaceCode);
place.ThrowIfNull($"{request.PlaceCode}:该营业点不存在!");
- if (!request.Id.HasValue)
- {
- var entity = request.Adapt();
- entity.Code = Guid.NewGuid();
- await _dbContext.InsertAsync(entity);
- }
- else
- {
- var entity = await _dbContext.Queryable()
- .Where(x => x.Id == request.Id).FirstAsync();
- request.Adapt(entity);
- await _dbContext.UpdateAsync(entity);
- }
+
}
public async Task> GetDishesAsync(GetDishesRequest request)
{
- if (!request.MenuCode.HasValue)
- {
- return await _dbContext.Queryable()
- .Select()
- .ToPageListAsync(request);
- }
- else
- {
- var relas = await _dbContext.Queryable()
- .Where(x => x.MenuCode == request.MenuCode)
- .ToListAsync();
-
- var disCodes = relas.Select(x => x.DishersCode).ToList();
-
- var page = await _dbContext.Queryable()
- .Where(discher => disCodes.Contains(discher.Code))
- .Select()
- .ToPageListAsync(request);
-
- foreach (var res in page.Data)
- {
- res.RestrictedNum = relas.Where(x => x.DishersCode == res.Code)
- .Select(x => x.RestrictedNum)
- .FirstOrDefault();
- }
- return page;
- }
+ return null;
}
public async Task SaveDishesAsync(SaveDishesRequest request)
@@ -95,33 +57,18 @@ namespace Dlhis.Canteen.Order.Services.Implements
if (!request.Id.HasValue)
{
var dishers = request.Adapt();
- dishers.Code = Guid.NewGuid();
+ //todo 检验重复
+ dishers.CustomCode = request.CustomCode;
await _dbContext.InsertAsync(dishers);
}
else
{
var entity = await _dbContext.Queryable()
.Where(x => x.Id == request.Id).FirstAsync();
+
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
}
}
-
- public async Task DispositionDishesAsync(DispositionDishesRequest request)
- {
- var lst = new List();
-
- foreach (var dto in request.DishersDtos)
- {
- var entity = new CanteenMenuDishersRelationshipEntity
- {
- MenuCode = request.MenudCode,
- DishersCode = dto.DisherCode,
- RestrictedNum = dto.RestrictedNum,
- };
- lst.Add(entity);
- }
- await _dbContext.InsertAsync(lst);
- }
}
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
index 7865befd..414e6381 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
@@ -27,17 +27,18 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
public async Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request)
{
var page = await _dbContext.Queryable()
- .LeftJoin((order,place) => order.PlaceCode == place.Code)
- .LeftJoin((order, place,dishers) => order.DishesCode == dishers.Code)
- .LeftJoin((order, place, dishers,depart) => order.DepartmentNo == depart.No)
+ .LeftJoin((order, place) => order.PlaceCode == place.Code)
+ .LeftJoin((order, place, dishers) => order.DishesCode == dishers.CustomCode)
+ .LeftJoin((order, place, dishers, depart) => order.DepartmentNo == depart.No)
.WhereIF(!request.Search.IsEmpty(), order => order.Name == request.Search || order.Code == request.Search)
- .OrderBy(order => order.CostDate,SqlSugar.OrderByType.Desc)
+ .WhereIF(request.SysDate.HasValue, order => order.SysDate == request.SysDate)
+ .OrderBy(order => order.CostDate, OrderByType.Desc)
.Select((order, place, dishers, depart) => new GetMiniProgramOrderResponse
{
PlaceName = place.Name,
DepartmentName = depart.Name,
DishesName = dishers.Name,
- },true)
+ }, true)
.ToPageListAsync(request);
return page;
}
@@ -61,8 +62,8 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
public async Task> GetDetailAsync(GetDetailRequest request)
{
- var page = await _dbContext.Queryable()
- .WhereIF(!request.Search.IsEmpty(),x => x.ThirdNo == request.Search)
+ var page = await _dbContext.Queryable()
+ .WhereIF(!request.Search.IsEmpty(), x => x.ThirdNo == request.Search)
.Select()
.ToPageListAsync(request);
@@ -79,7 +80,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
true.ThrowIfTrue("20:30之后无法订餐!");
}
//判断营业日
- var dishes = await _dbContext.Queryable().Where(x => x.Code == request.DishesCode).FirstAsync();
+ var dishes = await _dbContext.Queryable().Where(x => x.CustomCode == request.DishesCode).FirstAsync();
dishes.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
var menu = await _dbContext.Queryable().Where(x => x.Code == request.MenuCode).FirstAsync();
@@ -92,7 +93,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!");
}
- var restricted= await _dbContext.Queryable< CanteenMenuDishersRelationshipEntity>()
+ var restricted = await _dbContext.Queryable()
.Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode).FirstAsync();
restricted.ThrowIfNull($"每日菜单:{menu.Name} 还没有配置菜品:{dishes.Name} 的限售数量!");
if (restricted.RestrictedNum < 0)
@@ -112,17 +113,17 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
flag.ThrowIfTrue($"工号:{request.UserCode} 姓名:{gainfo.Name} 已经定过{tomorrow}的{request.ShiftType.GetDescription()}!");
//支付方式
- var result = await _tenantApi.GetTenantTreeAsync();
- var tree = result.Data;
- var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault();
- var codes = shanxi.Next.Select(x => x.Code).ToList();
- if (!codes.Contains(gainfo.Factory))
- {
- if (request.PayType == CanteenPayEnumType.Repair)
- {
- true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}");
- }
- }
+ /* var result = await _tenantApi.GetTenantTreeAsync();
+ var tree = result.Data;
+ var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault();
+ var codes = shanxi.Next.Select(x => x.Code).ToList();
+ if (!codes.Contains(gainfo.Factory))
+ {
+ if (request.PayType == CanteenPayEnumType.Repair)
+ {
+ true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}");
+ }
+ }*/
//生成订单
var order = new MiniProgramOrderEntity
@@ -150,24 +151,25 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
{
ThirdNo = order.No,
SysDate = tomorrow,
- ShiftType= request.ShiftType,
- DishesCode= request.DishesCode,
+ ShiftType = request.ShiftType,
+ DishesCode = request.DishesCode,
DishesName = dishes.Name,
- Price = dishes.Amount,
+ Price = dishes.Price,
Unit = dishes.Unit,
- Num = request.DishesNum,
- Amount = request.DishesNum * dishes.Amount,
- OrderStatus = OrderDetailsStatusEnumType.I,
+ Number = request.DishesNum,
+ Amount = request.DishesNum * dishes.Price,
+ Status = OrderDetailsStatusEnumType.I,
};
- order.TotalAmount = detail.Amount;
+ order.Amount = detail.Amount;
await _dbContext.InsertAsync(order);
await _dbContext.InsertAsync(detail);
+
//扣减份数
- var effect = await _dbContext.Updateable()
- .SetColumns(x => x.RestrictedNum == restricted.RestrictedNum - request.DishesNum)
- .SetColumns(x => x.Version == x.Version + 1)
- .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode && x.Version == restricted.Version)
- .ExecuteCommandAsync();
+ var effect = await _dbContext.Updateable()
+ .SetColumns(x => x.RestrictedNum == restricted.RestrictedNum - request.DishesNum)
+ .SetColumns(x => x.Version == x.Version + 1)
+ .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode && x.Version == restricted.Version)
+ .ExecuteCommandAsync();
if (effect <= 0) throw new VersionExceptions("更新版本冲突");
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
index f313f008..b28482aa 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
@@ -1,83 +1,76 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.Core.DataAccess.Entity;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
+using Mapster;
using SqlSugar;
-using SqlSugar.DbConvert;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-namespace Dlhis.Entity.Canteen.Entities
+namespace Dlhis.Entity.Canteen.Entities;
+
+///
+/// 菜品表
+///
+[SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")]
+public class CanteenDishesEntity : SugarBaseEntity, ITenantId
{
///
- /// 菜品表
+ /// 大类
///
- [SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")]
- public class CanteenDishesEntity : SugarBaseEntity, ITenantId
- {
+ [SugarColumn(ColumnDescription = "父类")]
+ public string PCategory { get; set; }
- ///
- /// 大类
- ///
- [SugarColumn(ColumnDescription = "大类")]
- public string Categories { get; set; }
+ ///
+ /// 小类
+ ///
+ [SugarColumn(ColumnDescription = "分类", IsNullable = false)]
+ public string Category { get; set; }
- ///
- /// 小类
- ///
- [SugarColumn(ColumnDescription = "小类")]
- public string SubCategories { get; set; }
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
- ///
- /// 菜品编码
- ///
- [SugarColumn(ColumnDescription = "菜品编码")]
- public Guid Code { get; set; }
+ ///
+ /// 菜品编码
+ ///
+ [AdaptIgnore(MemberSide.Destination)]
+ [SugarColumn(ColumnDescription = "菜品编码", IsNullable = false)]
+ public string CustomCode { get; set; }
- ///
- /// 菜品名称
- ///
- [SugarColumn(ColumnDescription = "菜品名称")]
- public string Name { get; set; }
+ ///
+ /// 菜品名称
+ ///
+ [SugarColumn(ColumnDescription = "菜品名称", IsNullable = false)]
+ public string Name { get; set; }
- ///
- /// 类型
- ///
- [SugarColumn(ColumnDescription = "类型", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public CanteenDishesEnumType Type { get; set; }
+ /////
+ ///// 类型
+ /////
+ //[SugarColumn(ColumnDescription = "类型", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ //public CanteenDishesEnumType Type { get; set; }
- ///
- /// 描述
- ///
- [SugarColumn(ColumnDescription = "描述")]
- public string Description { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnDescription = "描述")]
+ public string Description { get; set; }
- ///
- /// 单价
- ///
- [SugarColumn(ColumnDescription = "单价")]
- public decimal Amount { get; set; }
+ ///
+ /// 单价
+ ///
+ [SugarColumn(ColumnDescription = "单价")]
+ public decimal Price { get; set; }
- ///
- /// 单位
- ///
- [SugarColumn(ColumnDescription = "单位")]
- public string Unit { get; set; }
+ ///
+ /// 图片
+ ///
+ [SugarColumn(ColumnDescription = "图片")]
+ public string ImageUrl { get; set; }
- ///
- /// 图片
- ///
- [SugarColumn(ColumnDescription = "图片")]
- public string Image { get; set; }
+ ///
+ /// 是否启用
+ ///
+ [SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")]
+ public bool Enable { get; set; }
- ///
- /// 是否启用
- ///
- [SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")]
- public bool Enable { get; set; }
- public string TenantId { get; set; }
- }
+ public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
deleted file mode 100644
index da94aa3b..00000000
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Kurisu.SqlSugar;
-using SqlSugar;
-
-namespace Dlhis.Entity.Canteen.Entities
-{
- ///
- /// 菜单菜品表
- ///
- [SugarTable(TableName = "CanteenMenuDishersRelationship", TableDescription = "菜单菜品表")]
- public class CanteenMenuDishersRelationshipEntity : SugarBaseEntity
- {
- ///
- /// 菜单code
- ///
- public Guid MenuCode { get; set; }
-
- ///
- /// 菜品code
- ///
- public Guid DishersCode { get; set; }
-
- ///
- /// 限售份数
- ///
- public int RestrictedNum { get; set; }
-
- ///
- /// 版本
- ///
- public int Version { get; set; }
- }
-}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
index 77b12057..e9168b4b 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
@@ -2,6 +2,7 @@
using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
+using SqlSugar.DbConvert;
namespace Dlhis.Entity.Canteen.Entities;
@@ -9,52 +10,63 @@ namespace Dlhis.Entity.Canteen.Entities;
/// 菜单表
///
[SugarTable(TableName = "CanteenMenu", TableDescription = "菜单表")]
-public class CanteenMenuEntity : SugarBaseEntity, ITenantId
+public class CanteenMenuEntity : SugarBaseEntity, ITenantId, IVersion
{
-
- ///
- /// 菜单编码
- ///
- [SugarColumn(ColumnDescription = "菜单编码")]
- public Guid Code { get; set; }
-
///
/// 菜单名称
///
[SugarColumn(ColumnDescription = "菜单名称")]
public string Name { get; set; }
+ ///
+ /// 菜单类型
+ ///
+ [SugarColumn(SqlParameterDbType = typeof(EnumToStringConvert))]
+ public CanteenMenuEnumType Type { get; set; }
+
///
/// 所属营业点
///
[SugarColumn(ColumnDescription = "所属营业点")]
public Guid PlaceCode { get; set; }
- ///
- /// 厂区
- ///
- [SugarColumn(ColumnDescription = "厂区")]
- public string Factory { get; set; }
-
///
/// 营业日期
///
- [SugarColumn(ColumnDescription = "营业日期")]
- public DateOnly StartDate { get; set; }
+ [SugarColumn(ColumnDataType = "date", ColumnDescription = "营业日期")]
+ public DateTime Date { get; set; }
///
- /// 餐次段
+ /// 餐次
///
- [SugarColumn(ColumnDataType = "varchar(150)", IsJson = true, ColumnDescription = "餐次段", DefaultValue = "[]")]
- public List ShiftTypes { get; set; }
+ [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "餐次")]
+ public ShiftEnumType ShiftType { get; set; }
+
+
+ ///
+ /// 菜品编码
+ ///
+ public string DishesCode { get; set; }
+
+ ///
+ /// 剩余数量
+ ///
+ public int Number { get; set; }
///
/// 是否启用
///
[SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")]
public bool Enable { get; set; }
+
+
public string TenantId { get; set; }
+
+ ///
+ /// 并发控制
+ ///
+ public int Version { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
index 91b3b525..4dff6803 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
@@ -72,12 +72,6 @@ namespace Dlhis.Entity.Canteen.Entities
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")]
public ShiftEnumType ShiftType { get; set; }
- ///
- /// 菜品
- ///
- [SugarColumn(ColumnDescription = "菜品")]
- public Guid DishesCode { get; set; }
-
///
/// 手机号码
///
@@ -88,19 +82,13 @@ namespace Dlhis.Entity.Canteen.Entities
/// 用餐日期
///
[SugarColumn(ColumnDescription = "用餐日期")]
- public DateOnly SysDate { get; set; }
-
- ///
- /// 下单时间
- ///
- [SugarColumn(ColumnDescription = "下单时间")]
- public DateTime CostDate { get; set; }
+ public DateTime UseDate { get; set; }
///
/// 支付方式
///
[SugarColumn(ColumnDescription = "支付方式", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public CanteenPayEnumType PayType { get; set; }
+ public BalanceRecordSourceEnumType PayType { get; set; }
///
/// 订单状态
@@ -112,13 +100,14 @@ namespace Dlhis.Entity.Canteen.Entities
/// 订单类型
///
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单类型")]
- public CanteenDishesEnumType OrderType { get; set; }
+ public CanteenMenuEnumType OrderType { get; set; }
///
/// 总金额
///
- [SugarColumn(ColumnDescription = "总金额")]
- public decimal TotalAmount { get; set; }
+ [SugarColumn(ColumnDescription = "金额")]
+ public decimal Amount { get; set; }
+
public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
index 518305cb..2f692ab9 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
@@ -4,74 +4,50 @@ using Kurisu.SqlSugar;
using SqlSugar;
using SqlSugar.DbConvert;
-namespace Dlhis.Entity.Canteen.Entities
+namespace Dlhis.Entity.Canteen.Entities;
+
+///
+/// 订餐明细表
+///
+[SugarTable(TableName = "OrderDetails", TableDescription = "订餐明细表")]
+public class OrderDetailsEntity : SugarBaseEntity, ITenantId
{
///
- /// 订餐明细表
+ /// 订单号
///
- [SugarTable(TableName = "OrderDetails", TableDescription = "订餐明细表")]
- public class OrderDetailsEntity : SugarBaseEntity, ITenantId
- {
- ///
- /// 订单号
- ///
- [SugarColumn(ColumnDescription = "订单号")]
- public string ThirdNo { get; set; }
+ [SugarColumn(ColumnDescription = "订单号")]
+ public string OrderNo { get; set; }
- ///
- /// 营业日(用餐日期)
- ///
- [SugarColumn(ColumnDescription = "营业日")]
- public DateOnly SysDate { get; set; }
+ ///
+ /// 菜品编码
+ ///
+ [SugarColumn(ColumnDescription = "菜品编码")]
+ public string DishesCode { get; set; }
- ///
- /// 餐次
- ///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")]
- public ShiftEnumType ShiftType { get; set; }
+ ///
+ /// 单价
+ ///
+ [SugarColumn(ColumnDescription = "单价")]
+ public decimal Price { get; set; }
- ///
- /// 菜品编码
- ///
- [SugarColumn(ColumnDescription = "菜品编码")]
- public Guid DishesCode { get; set; }
+ ///
+ /// 数量
+ ///
+ [SugarColumn(ColumnDescription = "数量")]
+ public int Number { get; set; }
- ///
- /// 菜品名称
- ///
- [SugarColumn(ColumnDescription = "菜品名称")]
- public string DishesName { get; set; }
+ ///
+ /// 单位
+ ///
+ [SugarColumn(ColumnDescription = "单位")]
+ public string Unit { get; set; }
- ///
- /// 单价
- ///
- [SugarColumn(ColumnDescription = "单价")]
- public decimal Price { get; set; }
- ///
- /// 单位
- ///
- [SugarColumn(ColumnDescription = "单位")]
- public string Unit { get; set; }
+ ///
+ /// 订单明细状态
+ ///
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单明细状态")]
+ public OrderDetailsStatusEnumType Status { get; set; }
- ///
- /// 数量
- ///
- [SugarColumn(ColumnDescription = "数量")]
- public int Num { get; set; }
-
- ///
- /// 金额
- ///
- [SugarColumn(ColumnDescription = "金额")]
- public decimal Amount { get; set; }
-
- ///
- /// 订单明细状态
- ///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单明细状态")]
- public OrderDetailsStatusEnumType OrderStatus { get; set; }
-
- public string TenantId { get; set; }
- }
+ public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenDishesEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenDishesEnumType.cs
deleted file mode 100644
index dc3ba103..00000000
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenDishesEnumType.cs
+++ /dev/null
@@ -1,35 +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
-{
- ///
- /// 菜品类型
- ///
- [Description("菜品类型")]
- public enum CanteenDishesEnumType
- {
-
- ///
- /// 订餐
- ///
- [Description("订餐")]
- Order = 1,
-
- ///
- /// 扫码点餐
- ///
- [Description("扫码点餐")]
- QrCode=2,
-
- ///
- /// 通用
- ///
- [Description("通用")]
- General = 3,
- }
-}
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
new file mode 100644
index 00000000..bdf956a9
--- /dev/null
+++ b/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace Dlhis.Entity.Canteen.Enums;
+
+///
+/// 菜品类型 CanteenMenuEnumType
+///
+[Description("菜品类型")]
+public enum CanteenMenuEnumType
+{
+ ///
+ /// 订餐
+ ///
+ [Description("订餐")]
+ Order = 1,
+
+ ///
+ /// 扫码点餐
+ ///
+ [Description("扫码点餐")]
+ QrCode=2,
+
+ ///
+ /// 通用
+ ///
+ [Description("通用")]
+ General = 3,
+}
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenPayEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenPayEnumType.cs
deleted file mode 100644
index 72218726..00000000
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenPayEnumType.cs
+++ /dev/null
@@ -1,28 +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
-{
- ///
- /// 支付方式
- ///
- [Description("支付方式")]
- public enum CanteenPayEnumType
- {
- ///
- /// 餐补
- ///
- [Description("餐补")]
- Repair = 1,
-
- ///
- /// 现场
- ///
- [Description("现场")]
- Scene = 2,
- }
-}
From 149660ca0f7ed6eb43ba1701f8d62d5ec346f3cb Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Fri, 15 Mar 2024 18:03:09 +0800
Subject: [PATCH 04/31] =?UTF-8?q?fix=20=E5=AE=9E=E4=BD=93=E5=8F=98?=
=?UTF-8?q?=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BusinessPlaceManagerRelationshipEntity.cs | 23 +++++++
.../Basic/Entity/BusinessShiftEntity.cs | 8 +--
.../Canteen/Entities/DishesCategoryEntity.cs | 35 +++++++++++
...CanteenDishesEntity.cs => DishesEntity.cs} | 20 ++----
.../Canteen/Enums/ShiftEnumType.cs | 61 +++++++++----------
5 files changed, 96 insertions(+), 51 deletions(-)
create mode 100644 Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
create mode 100644 Src/Dlhis.Entity/Canteen/Entities/DishesCategoryEntity.cs
rename Src/Dlhis.Entity/Canteen/Entities/{CanteenDishesEntity.cs => DishesEntity.cs} (71%)
diff --git a/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
new file mode 100644
index 00000000..8c9d1b07
--- /dev/null
+++ b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
@@ -0,0 +1,23 @@
+using Kurisu.SqlSugar;
+using SqlSugar;
+
+namespace Dlhis.Entity.Basic.Entity;
+
+///
+/// 营业点管理
+///
+[SugarTable(TableName = "BusinessPlaceManagerRelationship", TableDescription = "营业点管理关系")]
+public class BusinessPlaceManagerRelationshipEntity : SugarBaseEntity
+{
+ ///
+ /// 管理人员
+ ///
+ [SugarColumn(ColumnDescription = "管理人员", IsNullable = false)]
+ public int ManagerUserId { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ [SugarColumn(ColumnDescription = "营业点", IsNullable = false)]
+ public Guid BusinessPlaceCode { get; set; }
+}
diff --git a/Src/Dlhis.Entity/Basic/Entity/BusinessShiftEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BusinessShiftEntity.cs
index 8964221f..e80d81ee 100644
--- a/Src/Dlhis.Entity/Basic/Entity/BusinessShiftEntity.cs
+++ b/Src/Dlhis.Entity/Basic/Entity/BusinessShiftEntity.cs
@@ -6,9 +6,9 @@ using SqlSugar;
namespace Dlhis.Entity.Basic.Entity;
///
-/// 营业点餐次
+/// 营业点餐别
///
-[SugarTable(TableName = "BusinessShift", TableDescription = "营业点餐次")]
+[SugarTable(TableName = "BusinessShift", TableDescription = "营业点餐别")]
public class BusinessShiftEntity : SugarBaseEntity, ITenantId
{
///
@@ -25,9 +25,9 @@ public class BusinessShiftEntity : SugarBaseEntity, ITenantId
public string CustomCode { get; set; }
///
- /// 餐次名称
+ /// 餐别名称
///
- [SugarColumn(ColumnDescription = "餐次名称")]
+ [SugarColumn(ColumnDescription = "餐别名称")]
public string Name { get; set; }
public string TenantId { get; set; }
diff --git a/Src/Dlhis.Entity/Canteen/Entities/DishesCategoryEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesCategoryEntity.cs
new file mode 100644
index 00000000..0f40049f
--- /dev/null
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesCategoryEntity.cs
@@ -0,0 +1,35 @@
+using Kurisu.Core.DataAccess.Entity;
+using Kurisu.SqlSugar;
+using SqlSugar;
+
+namespace Dlhis.Entity.Canteen.Entities;
+
+[SugarTable(TableName = "DishesCategory", TableDescription = "菜品分类")]
+public class DishesCategoryEntity : SugarBaseEntity, ITenantId
+{
+ ///
+ /// PCode
+ ///
+ public Guid? PCode { get; set; }
+
+ ///
+ /// Code
+ ///
+ [SugarColumn(IsNullable = false)]
+ public Guid Code { get; set; }
+
+ ///
+ /// 分类名称
+ ///
+ [SugarColumn(IsNullable = false, ColumnDescription = "名称")]
+ public string Name { get; set; }
+
+ ///
+ /// 序号
+ ///
+ [SugarColumn(IsNullable = false, ColumnDescription = "序号", DefaultValue = "100")]
+ public int Sequence { get; set; } = 100;
+
+
+ public string TenantId { get; set; }
+}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
similarity index 71%
rename from Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
rename to Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
index b28482aa..b1c9977f 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
@@ -8,20 +8,14 @@ namespace Dlhis.Entity.Canteen.Entities;
///
/// 菜品表
///
-[SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")]
-public class CanteenDishesEntity : SugarBaseEntity, ITenantId
+[SugarTable(TableName = "Dishes", TableDescription = "菜品表")]
+public class DishesEntity : SugarBaseEntity, ITenantId
{
///
- /// 大类
- ///
- [SugarColumn(ColumnDescription = "父类")]
- public string PCategory { get; set; }
-
- ///
- /// 小类
+ /// 分类
///
[SugarColumn(ColumnDescription = "分类", IsNullable = false)]
- public string Category { get; set; }
+ public Guid CategoryCode { get; set; }
///
/// 营业点
@@ -41,12 +35,6 @@ public class CanteenDishesEntity : SugarBaseEntity, ITenantId
[SugarColumn(ColumnDescription = "菜品名称", IsNullable = false)]
public string Name { get; set; }
- /////
- ///// 类型
- /////
- //[SugarColumn(ColumnDescription = "类型", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
- //public CanteenDishesEnumType Type { get; set; }
-
///
/// 描述
///
diff --git a/Src/Dlhis.Entity/Canteen/Enums/ShiftEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/ShiftEnumType.cs
index d760412a..410b9f27 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/ShiftEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/ShiftEnumType.cs
@@ -1,41 +1,40 @@
using System.ComponentModel;
-namespace Dlhis.Entity.Canteen.Enums
+namespace Dlhis.Entity.Canteen.Enums;
+
+///
+/// 餐次 ShiftEnumType
+///
+[Description("餐次")]
+public enum ShiftEnumType
{
///
- /// 餐次
+ /// 早餐
///
- [Description("餐次")]
- public enum ShiftEnumType
- {
- ///
- /// 早餐
- ///
- [Description("早餐")]
- Breakfast = 1,
+ [Description("早餐")]
+ Breakfast = 1,
- ///
- /// 午餐
- ///
- [Description("午餐")]
- Lunch = 2,
+ ///
+ /// 午餐
+ ///
+ [Description("午餐")]
+ Lunch = 2,
- ///
- /// 晚餐
- ///
- [Description("晚餐")]
- Dinner = 3,
+ ///
+ /// 晚餐
+ ///
+ [Description("晚餐")]
+ Dinner = 3,
- ///
- /// 宵夜
- ///
- [Description("宵夜")]
- Nightsnack = 4,
+ ///
+ /// 宵夜
+ ///
+ [Description("宵夜")]
+ Nightsnack = 4,
- ///
- /// 凌晨餐
- ///
- [Description("凌晨餐")]
- Midnightsnack = 5,
- }
+ ///
+ /// 凌晨餐
+ ///
+ [Description("凌晨餐")]
+ Midnightsnack = 5,
}
\ No newline at end of file
From 72f93a59a662cf3eed13d7d8f8e3955492e3c4de Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Fri, 15 Mar 2024 18:47:33 +0800
Subject: [PATCH 05/31] fix api
---
.../IBusinessPlacePermissionsApi.cs | 18 +++++++
.../SaveBusinessPlacePermissionRequest.cs | 23 +++++++++
.../BusinessPlacePermissionsController.cs | 48 +++++++++++++++++++
.../SaveBusinessPlacePermissionRequest.cs | 19 ++++++++
.../IBusinessPlacePermissionsService.cs | 11 +++++
.../BusinessPlacePermissionsService.cs | 45 +++++++++++++++++
6 files changed, 164 insertions(+)
create mode 100644 Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
create mode 100644 Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
new file mode 100644
index 00000000..e9f31c56
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
@@ -0,0 +1,18 @@
+using Dlhis.Basic.Api.Request;
+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>> GetPlaceByUserIdAsync(int userId);
+
+ [Auth]
+ [Post("/api/businessplacepermissions/savePlace")]
+ Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
+ }
+}
diff --git a/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
new file mode 100644
index 00000000..f1f62866
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Dlhis.Basic.Api.Request
+{
+ public class SaveBusinessPlacePermissionRequest
+ {
+ public long? Id { get; set; }
+
+ ///
+ /// 管理人员
+ ///
+ public int ManagerUserId { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
new file mode 100644
index 00000000..8a34f65f
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
@@ -0,0 +1,48 @@
+using Dlhis.Basic.BusinessPlace.Request;
+using Dlhis.Basic.BusinessPlace.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Org.BouncyCastle.Asn1.Ocsp;
+
+namespace Dlhis.Basic.BusinessPlace.Controllers
+{
+ ///
+ /// 营业点管理
+ ///
+ [Authorize]
+ [Route("api/[controller]")]
+ [ApiController]
+ public class BusinessPlacePermissionsController
+ {
+ private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService;
+
+ public BusinessPlacePermissionsController(IBusinessPlacePermissionsService businessPlacePermissionsService)
+ {
+ _businessPlacePermissionsService = businessPlacePermissionsService;
+ }
+
+
+ ///
+ /// 根据用户获取管理点
+ ///
+ ///
+ ///
+ [HttpGet("getPlaces")]
+ public async Task> GetPlaceByUserIdAsync(int userId)
+ {
+ return await _businessPlacePermissionsService.GetPlaceByUserIdAsync(userId);
+ }
+
+
+ ///
+ /// 保存营业点
+ ///
+ ///
+ ///
+ [HttpPost("savePlace")]
+ public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
+ {
+ await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request);
+ }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
new file mode 100644
index 00000000..d5b7d7ed
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
@@ -0,0 +1,19 @@
+using SqlSugar;
+
+namespace Dlhis.Basic.BusinessPlace.Request
+{
+ public class SaveBusinessPlacePermissionRequest
+ {
+ public long? Id { get; set; }
+
+ ///
+ /// 管理人员
+ ///
+ public int ManagerUserId { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
new file mode 100644
index 00000000..cdc7d5d6
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
@@ -0,0 +1,11 @@
+using Dlhis.Basic.BusinessPlace.Request;
+
+namespace Dlhis.Basic.BusinessPlace.Services
+{
+ public interface IBusinessPlacePermissionsService : IScopeDependency
+ {
+ Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
+
+ Task> GetPlaceByUserIdAsync(int userId);
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
new file mode 100644
index 00000000..44f100ae
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
@@ -0,0 +1,45 @@
+using Dlhis.Basic.BusinessPlace.Request;
+using Dlhis.Entity.Basic.Entity;
+using Kurisu.SqlSugar.Services;
+using Mapster;
+
+namespace Dlhis.Basic.BusinessPlace.Services.Implements
+{
+ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
+ {
+ private readonly IDbContext _dbContext;
+ private readonly IBusinessPlaceService _businessPlaceService;
+
+ public BusinessPlacePermissionsService(IDbContext dbContext, IBusinessPlaceService businessPlaceService)
+ {
+ _dbContext = dbContext;
+ _businessPlaceService = businessPlaceService;
+ }
+
+ public async Task> GetPlaceByUserIdAsync(int userId)
+ {
+ return await _dbContext.Queryable()
+ .Where(x => x.ManagerUserId == userId)
+ .Select(x => x.BusinessPlaceCode)
+ .ToListAsync();
+ }
+
+ public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
+ {
+ 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();
+ await _dbContext.InsertAsync(entity);
+ }
+ }
+
+
+ }
+}
From 220ff2d96352f7c18d36b04c656be01b1ee53419 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Fri, 15 Mar 2024 18:54:15 +0800
Subject: [PATCH 06/31] =?UTF-8?q?fix=20=E4=BF=AE=E6=94=B9IBusinessPlacePer?=
=?UTF-8?q?missionsService?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs | 2 +-
.../Request/SaveBusinessPlacePermissionRequest.cs | 5 -----
.../Controllers/BusinessPlacePermissionsController.cs | 6 +++---
.../Request/SaveBusinessPlacePermissionRequest.cs | 5 -----
.../Services/IBusinessPlacePermissionsService.cs | 2 +-
.../Implements/BusinessPlacePermissionsService.cs | 11 +++++++----
6 files changed, 12 insertions(+), 19 deletions(-)
diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
index e9f31c56..64a43edd 100644
--- a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
+++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
@@ -9,7 +9,7 @@ namespace Dlhis.Basic.Api
{
[Auth]
[Get("/api/businessplacepermissions/getPlaces")]
- Task>> GetPlaceByUserIdAsync(int userId);
+ Task>> GetPlaceByUserIdAsync();
[Auth]
[Post("/api/businessplacepermissions/savePlace")]
diff --git a/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
index f1f62866..084b595e 100644
--- a/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
+++ b/Src/Dlhis.Basic.Api/Request/SaveBusinessPlacePermissionRequest.cs
@@ -10,11 +10,6 @@ namespace Dlhis.Basic.Api.Request
{
public long? Id { get; set; }
- ///
- /// 管理人员
- ///
- public int ManagerUserId { get; set; }
-
///
/// 营业点
///
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
index 8a34f65f..05c8003e 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
@@ -25,12 +25,12 @@ namespace Dlhis.Basic.BusinessPlace.Controllers
///
/// 根据用户获取管理点
///
- ///
+ ///
///
[HttpGet("getPlaces")]
- public async Task> GetPlaceByUserIdAsync(int userId)
+ public async Task> GetPlaceByUserIdAsync()
{
- return await _businessPlacePermissionsService.GetPlaceByUserIdAsync(userId);
+ return await _businessPlacePermissionsService.GetPlaceByUserIdAsync();
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
index d5b7d7ed..d0ab51f1 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
@@ -6,11 +6,6 @@ namespace Dlhis.Basic.BusinessPlace.Request
{
public long? Id { get; set; }
- ///
- /// 管理人员
- ///
- public int ManagerUserId { get; set; }
-
///
/// 营业点
///
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
index cdc7d5d6..7268363f 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
@@ -6,6 +6,6 @@ namespace Dlhis.Basic.BusinessPlace.Services
{
Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
- Task> GetPlaceByUserIdAsync(int userId);
+ Task> GetPlaceByUserIdAsync();
}
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
index 44f100ae..52161922 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
@@ -1,5 +1,6 @@
using Dlhis.Basic.BusinessPlace.Request;
using Dlhis.Entity.Basic.Entity;
+using Kurisu.Core.User.Abstractions;
using Kurisu.SqlSugar.Services;
using Mapster;
@@ -9,6 +10,7 @@ namespace Dlhis.Basic.BusinessPlace.Services.Implements
{
private readonly IDbContext _dbContext;
private readonly IBusinessPlaceService _businessPlaceService;
+ private readonly ICurrentUser _currentUser;
public BusinessPlacePermissionsService(IDbContext dbContext, IBusinessPlaceService businessPlaceService)
{
@@ -16,8 +18,9 @@ namespace Dlhis.Basic.BusinessPlace.Services.Implements
_businessPlaceService = businessPlaceService;
}
- public async Task> GetPlaceByUserIdAsync(int userId)
+ public async Task> GetPlaceByUserIdAsync()
{
+ var userId = _currentUser.GetIntSubjectId();
return await _dbContext.Queryable()
.Where(x => x.ManagerUserId == userId)
.Select(x => x.BusinessPlaceCode)
@@ -26,7 +29,8 @@ namespace Dlhis.Basic.BusinessPlace.Services.Implements
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
- if(request.Id.HasValue)
+ var userId = _currentUser.GetIntSubjectId();
+ if (request.Id.HasValue)
{
var entity =await _dbContext.Queryable()
.Where(x => x.Id == request.Id).FirstAsync();
@@ -36,10 +40,9 @@ namespace Dlhis.Basic.BusinessPlace.Services.Implements
else
{
var entity = request.Adapt();
+ entity.ManagerUserId = userId;
await _dbContext.InsertAsync(entity);
}
}
-
-
}
}
From 423d90bf3d7b0158ac9e6950958650177099a156 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Fri, 15 Mar 2024 20:49:44 +0800
Subject: [PATCH 07/31] =?UTF-8?q?fix=20=E8=90=A5=E4=B8=9A=E7=82=B9?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IBusinessPlacePermissionsApi.cs | 22 ++---
.../BusinessPlacePermissionsController.cs | 81 ++++++++++---------
.../BusinessPlacePermissionPageRequest.cs | 7 ++
.../SaveBusinessPlacePermissionRequest.cs | 24 +++---
.../BusinessPlacePermissionPageResponse.cs | 26 ++++++
.../IBusinessPlacePermissionsService.cs | 15 ++--
.../BusinessPlacePermissionsService.cs | 73 +++++++++--------
.../BusinessPlaceManagerRelationshipEntity.cs | 2 +
8 files changed, 151 insertions(+), 99 deletions(-)
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs
diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
index 64a43edd..6d7e32c4 100644
--- a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
+++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
@@ -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>> 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>> GetMyBussinessPlacesAsync();
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
index 05c8003e..6a1e5913 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
@@ -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;
+
+///
+/// 营业点管理
+///
+[Authorize(Roles = "admin")]
+[Route("api/[controller]")]
+[ApiController]
+public class BusinessPlacePermissionsController
{
- ///
- /// 营业点管理
- ///
- [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;
- }
+ ///
+ /// 分页
+ ///
+ ///
+ ///
+ [HttpGet("page")]
+ public async Task> GetPageAsync([FromQuery] BusinessPlacePermissionPageRequest request)
+ {
+ return await _businessPlacePermissionsService.GetPageAsync(request);
+ }
+
+ ///
+ /// 获取我的营业点
+ ///
+ ///
+ [HttpGet("my")]
+ public async Task> GetMy()
+ {
+ return await _businessPlacePermissionsService.GetMyAsync();
+ }
- ///
- /// 根据用户获取管理点
- ///
- ///
- ///
- [HttpGet("getPlaces")]
- public async Task> GetPlaceByUserIdAsync()
- {
- return await _businessPlacePermissionsService.GetPlaceByUserIdAsync();
- }
-
-
- ///
- /// 保存营业点
- ///
- ///
- ///
- [HttpPost("savePlace")]
- public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
- {
- await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request);
- }
+ ///
+ /// 保存营业点
+ ///
+ ///
+ ///
+ [HttpPost("save")]
+ public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
+ {
+ await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request);
}
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs
new file mode 100644
index 00000000..4efbd299
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs
@@ -0,0 +1,7 @@
+using Kurisu.Core.DataAccess.Dto;
+
+namespace Dlhis.Basic.BusinessPlace.Request;
+
+public class BusinessPlacePermissionPageRequest : PageDto
+{
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
index d0ab51f1..744ab2da 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs
@@ -1,14 +1,18 @@
using SqlSugar;
-namespace Dlhis.Basic.BusinessPlace.Request
-{
- public class SaveBusinessPlacePermissionRequest
- {
- public long? Id { get; set; }
+namespace Dlhis.Basic.BusinessPlace.Request;
- ///
- /// 营业点
- ///
- public Guid BusinessPlaceCode { get; set; }
- }
+public class SaveBusinessPlacePermissionRequest
+{
+ public long? Id { get; set; }
+
+ ///
+ /// 管理人员userId
+ ///
+ public int UserId { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs
new file mode 100644
index 00000000..cac2e41e
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs
@@ -0,0 +1,26 @@
+namespace Dlhis.Basic.BusinessPlace.Response;
+
+public class BusinessPlacePermissionPageResponse
+{
+ public long Id { get; set; }
+
+ ///
+ /// 用户id
+ ///
+ public string UserId { get; set; }
+
+ ///
+ /// 用户name
+ ///
+ public string UserName { get; set; }
+
+ ///
+ /// 营业点code
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
+ ///
+ /// 营业点名称
+ ///
+ public string BusinessPlaceName { get; set; }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
index 7268363f..ee6980f4 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
@@ -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> GetPageAsync(BusinessPlacePermissionPageRequest request);
- Task> GetPlaceByUserIdAsync();
- }
+ Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
+
+ Task> GetMyAsync();
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
index 52161922..87f9f422 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
@@ -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> GetPageAsync(BusinessPlacePermissionPageRequest request)
+ {
+ throw new NotImplementedException();
+ }
+
+ public async Task> GetMyAsync()
+ {
+ var userId = _currentUser.GetIntSubjectId();
+
+ return await _dbContext.Queryable()
+ .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()
+ .Where(x => x.Id == request.Id).FirstAsync();
+
+ request.Adapt(entity);
+ await _dbContext.UpdateAsync(entity);
}
-
- public async Task> GetPlaceByUserIdAsync()
+ else
{
- var userId = _currentUser.GetIntSubjectId();
- return await _dbContext.Queryable()
- .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()
- .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);
- }
+ var entity = request.Adapt();
+ entity.ManagerUserId = userId;
+ await _dbContext.InsertAsync(entity);
}
}
}
diff --git a/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
index 8c9d1b07..44fae7a8 100644
--- a/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
+++ b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs
@@ -1,4 +1,5 @@
using Kurisu.SqlSugar;
+using Mapster;
using SqlSugar;
namespace Dlhis.Entity.Basic.Entity;
@@ -12,6 +13,7 @@ public class BusinessPlaceManagerRelationshipEntity : SugarBaseEntity
///
/// 管理人员
///
+ [AdaptIgnore(MemberSide.Destination)]
[SugarColumn(ColumnDescription = "管理人员", IsNullable = false)]
public int ManagerUserId { get; set; }
From 6872518b65cf95f40759ab8daa2e0f3efb1070ad Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Sun, 17 Mar 2024 20:58:11 +0800
Subject: [PATCH 08/31] =?UTF-8?q?fix=20=E5=A4=84=E7=90=86next=E7=A9=BA?=
=?UTF-8?q?=E6=95=B0=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Response/DepartmentTreeResponse.cs | 13 +++++++++----
.../Services/Implements/DepartmentService.cs | 15 ++++++++++-----
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs
index 88aba019..b7cfe8fe 100644
--- a/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs
+++ b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs
@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using Kurisu.AspNetCore.Utils.Extensions;
+using Newtonsoft.Json;
namespace Dlhis.Basic.Organization.Response;
@@ -26,7 +27,7 @@ public class DepartmentTreeResponse
/// 下级部门
///
[JsonIgnore]
- public List _Next { get; set; } = new List();
+ public List CurrentNext { get; set; }
///
/// 下级部门
@@ -35,8 +36,12 @@ public class DepartmentTreeResponse
{
get
{
- _Next.ForEach(x => x.Tenant = Tenant);
- return _Next;
+ if (CurrentNext.IsPresent())
+ {
+ CurrentNext.ForEach(x => x.Tenant = Tenant);
+ }
+
+ return CurrentNext;
}
}
}
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs
index a7cfd72d..8a8a510b 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs
@@ -37,7 +37,7 @@ public class DepartmentService : IDepartmentService
No = x.Code,
PNo = null,
Tenant = x.Code,
- _Next = tops.Select(item =>
+ CurrentNext = tops.Select(item =>
{
var i = item.Adapt();
i.PNo = x.Code;
@@ -48,13 +48,18 @@ public class DepartmentService : IDepartmentService
.ToList();
}
- private void RecursionGetNext(DepartmentTreeResponse current, List data)
+ //***************************************************** help methods ****************************************************************
+
+ private static void RecursionGetNext(DepartmentTreeResponse current, List data)
{
var next = data.Where(x => x.PNo == current.No).ToList();
- current._Next = next;
- foreach (var item in next)
+ if (next.Any())
{
- RecursionGetNext(item, data);
+ current.CurrentNext = next;
+ foreach (var item in next)
+ {
+ RecursionGetNext(item, data);
+ }
}
}
}
From 6ba2d7d6a2fd7277734d7ca8b95559f1ffb6a664 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Sun, 17 Mar 2024 21:26:16 +0800
Subject: [PATCH 09/31] =?UTF-8?q?feat=20=E8=8E=B7=E5=8F=96=E6=9C=8D?=
=?UTF-8?q?=E5=8A=A1=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Sys/Dlhis.Sys.csproj | 6 ++++
.../Server/Controllers/ServerController.cs | 28 +++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 Src/Dlhis.Sys/Server/Controllers/ServerController.cs
diff --git a/Src/Dlhis.Sys/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj
index b14b421d..60ff68d5 100644
--- a/Src/Dlhis.Sys/Dlhis.Sys.csproj
+++ b/Src/Dlhis.Sys/Dlhis.Sys.csproj
@@ -24,4 +24,10 @@
+
+
+
+
+
+
diff --git a/Src/Dlhis.Sys/Server/Controllers/ServerController.cs b/Src/Dlhis.Sys/Server/Controllers/ServerController.cs
new file mode 100644
index 00000000..28cbe670
--- /dev/null
+++ b/Src/Dlhis.Sys/Server/Controllers/ServerController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Dlhis.Sys.Server.Controllers;
+
+///
+/// 服务器信息
+///
+[Authorize]
+[Route("api/[controller]")]
+[ApiController]
+public class ServerController : ControllerBase
+{
+ public ServerController()
+ {
+
+ }
+
+ ///
+ /// 当前时间
+ ///
+ ///
+ [HttpGet("datetime")]
+ public DateTime GetServerDateTime()
+ {
+ return DateTime.Now;
+ }
+}
From ab406adecfc284b95c1f2d88fa9d1d54d677f08a Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 10:01:03 +0800
Subject: [PATCH 10/31] =?UTF-8?q?feat=20=E8=8F=9C=E5=93=81/=E8=8F=9C?=
=?UTF-8?q?=E5=8D=95=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BusinessPlaceShiftSaveMealShiftRequest.cs | 6 +-
.../Response/MealShiftResponse.cs | 9 +-
.../Implements/BusinessPlaceShiftService.cs | 14 +-
.../Device/Controllers/DevicesController.cs | 2 -
.../Services/Implements/DeviceService.cs | 8 +-
.../Controller/DishesCategoriesController.cs | 44 ++++++
.../Dishes/Controller/DishesMenuController.cs | 84 +++++++++++
.../Dishes/Dto/DishesMenuDetailDto.cs | 18 +++
.../Dishes/Request/DisheMenuPageRequest.cs | 17 +++
.../Request/DishesCategorySaveRequest.cs | 24 ++++
.../Request/DishesMenuNameDateSaveRequest.cs | 39 ++++++
.../Dishes/Request/DishesMenuSaveRequest.cs | 18 +++
.../Request/DishesMenuShiftTypeSaveRequest.cs | 18 +++
.../Dishes/Request/DishesPageRequest.cs | 8 ++
.../Dishes/Request/DishesSaveRequest.cs | 47 +++++++
.../Dishes/Request/MenuDishesSaveRequest.cs | 24 ++++
.../Dishes/Response/DishesCategoryResponse.cs | 15 ++
.../Dishes/Response/DishesMenuPageResponse.cs | 6 +
.../Dishes/Response/DishesResponse.cs | 67 +++++++++
.../Dishes/Services/IDishesCategoryService.cs | 11 ++
.../Dishes/Services/IDishesMenuService.cs | 16 +++
.../Dishes/Services/IDishesService.cs | 12 ++
.../Implements/DishesCategoryService.cs | 66 +++++++++
.../Services/Implements/DishesMenuService.cs | 131 ++++++++++++++++++
.../Services/Implements/DishesService.cs | 51 +++++++
.../Services/Implements/GainfoPermissions.cs | 16 +--
.../BusinessShiftMealRelationshipEntity.cs | 16 ++-
.../Canteen/Entities/BalanceRecordEntity.cs | 12 +-
...nteenMenuEntity.cs => DishesMenuEntity.cs} | 18 ++-
.../Entities/MiniProgramOrderEntity.cs | 2 +-
.../Canteen/Enums/CanteenMenuEnumType.cs | 2 +-
.../Enums/CanteenSettingItemEnumType.cs | 6 +
32 files changed, 775 insertions(+), 52 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesCategorySaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesMenuNameDateSaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesMenuSaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesMenuShiftTypeSaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Request/MenuDishesSaveRequest.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Response/DishesCategoryResponse.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
create mode 100644 Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
rename Src/Dlhis.Entity/Canteen/Entities/{CanteenMenuEntity.cs => DishesMenuEntity.cs} (78%)
diff --git a/Src/Dlhis.Basic/BusinessShift/Request/BusinessPlaceShiftSaveMealShiftRequest.cs b/Src/Dlhis.Basic/BusinessShift/Request/BusinessPlaceShiftSaveMealShiftRequest.cs
index 98e63fae..a6512432 100644
--- a/Src/Dlhis.Basic/BusinessShift/Request/BusinessPlaceShiftSaveMealShiftRequest.cs
+++ b/Src/Dlhis.Basic/BusinessShift/Request/BusinessPlaceShiftSaveMealShiftRequest.cs
@@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
+using Dlhis.Entity.Canteen.Enums;
using Kurisu.Core.CustomClass;
namespace Dlhis.Basic.BusinessShift.Request;
@@ -13,9 +14,10 @@ public class BusinessPlaceShiftSaveMealShiftRequest : IValidatableObject
public Guid ShiftCode { get; set; }
///
- /// mealshift
+ /// 餐次 ShiftEnumType
///
- public string ShiftType { get; set; }
+ [EnumDataType(typeof(ShiftEnumType))]
+ public ShiftEnumType ShiftType { get; set; }
///
/// 序号
diff --git a/Src/Dlhis.Basic/BusinessShift/Response/MealShiftResponse.cs b/Src/Dlhis.Basic/BusinessShift/Response/MealShiftResponse.cs
index bf99cb6a..bd83ed7b 100644
--- a/Src/Dlhis.Basic/BusinessShift/Response/MealShiftResponse.cs
+++ b/Src/Dlhis.Basic/BusinessShift/Response/MealShiftResponse.cs
@@ -1,4 +1,7 @@
-namespace Dlhis.Basic.BusinessShift.Response
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
+
+namespace Dlhis.Basic.BusinessShift.Response
{
public class MealShiftResponse
{
@@ -6,9 +9,9 @@
public Guid ShiftCode { get; set; }
- public string ShiftType { get; set; }
+ public ShiftEnumType ShiftType { get; set; }
- public string Name { get; set; }
+ public string Name => ShiftType.GetDescription();
public TimeOnly Start { get; set; }
diff --git a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs
index de3fa555..dbf1d513 100644
--- a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs
+++ b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs
@@ -38,14 +38,12 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
//下级就餐时间段
var mealShifts = await _dbContext.Queryable()
- .LeftJoin((x, bt) => x.ShiftType == bt.Code)
.Where(x => shiftCodes.Contains(x.ShiftCode))
- .Select((x, bt) => new MealShiftResponse
+ .Select((x) => new MealShiftResponse
{
Id = x.Id,
ShiftCode = x.ShiftCode,
- ShiftType = bt.Code,
- Name = bt.Display,
+ ShiftType = x.ShiftType,
Start = x.Start,
End = x.End,
})
@@ -95,14 +93,11 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
public async Task SaveMealShiftsAsync(List requests)
{
- var mealShifts = await GetMealShiftAsync();
-
foreach (var request in requests)
{
var shift = await CheckExistsShiftAsync(request.ShiftCode);
await CheckExistsMealShiftAsync(request);
await DuplicateTimePeriodAsync(request);
- mealShifts.Contains(request.ShiftType).ThrowIfFalse($"{request.ShiftType}不存在");
if (!request.Id.HasValue)
{
@@ -312,11 +307,6 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
return shift;
}
- private async Task> GetMealShiftAsync()
- {
- return await _dbContext.Queryable().Where(x => x.Type == "mealshift").Select(x => x.Code).ToListAsync();
- }
-
private async Task CheckExistsMealShiftAsync(BusinessPlaceShiftSaveMealShiftRequest request)
{
var exists = await _dbContext.Queryable()
diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
index 3298137a..804e52d1 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
@@ -2,8 +2,6 @@
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
-using Kurisu.AspNetCore.EventBus.Abstractions;
-using Kurisu.AspNetCore.Scope;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
index c0020c88..2eb8f9df 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
@@ -48,19 +48,19 @@ public class DeviceService : IDeviceService
var deviceUniqueNos = page.Data.Select(x => x.UniqueNo).ToList();
var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out)
- .Where(x => deviceUniqueNos.Contains(x.DeviceInfo))
+ .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo))
.Select(x => new
{
- x.DeviceInfo,
+ x.DeviceUniqueNo,
Amount = SqlFunc.AggregateSum(x.Amount),
UserCount = SqlFunc.AggregateDistinctCount(x.UserCode)
})
- .GroupBy(x => x.DeviceInfo)
+ .GroupBy(x => x.DeviceUniqueNo)
.ToListAsync();
page.Data.ForEach(device =>
{
- var info = balanceInfos.FirstOrDefault(x => x.DeviceInfo == device.UniqueNo);
+ var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo);
if (info != null)
{
device.Amount = info.Amount;
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
new file mode 100644
index 00000000..9c9864d3
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
@@ -0,0 +1,44 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Dlhis.Canteen.Dishes.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Dlhis.Basic.Dishes.Controller;
+
+///
+/// 菜品分类
+///
+[Authorize]
+[Route("api/[controller]")]
+[ApiController]
+public class DishesCategoriesController : ControllerBase
+{
+ private readonly IDishesCategoryService _dishesCategoryService;
+
+ public DishesCategoriesController(IDishesCategoryService dishesCategoryService)
+ {
+ _dishesCategoryService = dishesCategoryService;
+ }
+
+ ///
+ /// 获取分类树
+ ///
+ ///
+ [HttpGet("tree")]
+ public async Task> TreeAsync()
+ {
+ return await _dishesCategoryService.TreeAsync();
+ }
+
+ ///
+ /// 保存分类
+ ///
+ ///
+ ///
+ [HttpPost("save")]
+ public async Task SaveAsync(DishesCategorySaveRequest request)
+ {
+ await _dishesCategoryService.SaveAsync(request);
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs
new file mode 100644
index 00000000..a5db6601
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs
@@ -0,0 +1,84 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Dlhis.Canteen.Dishes.Services;
+using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
+using Kurisu.Core.DataAccess.Dto;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Dlhis.Basic.Dishes.Controller;
+
+///
+/// 菜单菜品控制器
+///
+[Authorize]
+[Route("api/[controller]")]
+[ApiController]
+public class DishesMenuController : ControllerBase
+{
+ private readonly IDishesMenuService _dishesMenuService;
+ private readonly IDishesService _dishesService;
+
+ public DishesMenuController(IDishesMenuService dishesMenuService, IDishesService dishesService)
+ {
+ _dishesMenuService = dishesMenuService;
+ _dishesService = dishesService;
+ }
+
+ ///
+ /// 菜单分页
+ ///
+ ///
+ ///
+ [HttpGet("page")]
+ public async Task> GetDishesMenuPageAsync([FromQuery] DisheMenuPageRequest request)
+ {
+ return await _dishesMenuService.GetDishesMenuPageAsync(request);
+ }
+
+ ///
+ /// 菜单保存/更改
+ ///
+ ///
+ ///
+ [HttpPost("save")]
+ [Transactional]
+ public async Task SaveDishesMenuAsync(DishesMenuSaveRequest request)
+ {
+ await _dishesMenuService.SaveDishesMenuAsync(request);
+ }
+
+ ///
+ /// 菜品分页
+ ///
+ ///
+ ///
+ [HttpGet("dishes/page")]
+ public async Task> GetDishesAsync([FromQuery] DishesPageRequest request)
+ {
+ return await _dishesService.GetDishesPageAsync(request);
+ }
+
+ ///
+ /// 菜品保存/更改
+ ///
+ ///
+ ///
+ [HttpPost("dishes/save")]
+ public async Task SaveDishesAsync(DishesSaveRequest request)
+ {
+ await _dishesService.SaveDishesAsync(request);
+ }
+
+
+ ///
+ /// 获取预定送餐配置
+ ///
+ ///
+ [HttpGet("setting")]
+ public async Task GetDishesMenusBookingSetting()
+ {
+ //todo
+ }
+}
+
diff --git a/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs b/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
new file mode 100644
index 00000000..5850ee41
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
@@ -0,0 +1,18 @@
+namespace Dlhis.Basic.Dishes.Dto;
+
+public class DishesMenuDetailDto
+{
+ public long MenuId { get; set; }
+
+ public long DishesId { get; set; }
+
+ public string DishesCode { get; set; }
+
+ public string DishesName { get; set; }
+
+ public decimal Price { get; set; }
+
+ public int Number { get; set; }
+
+ public int Version { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
new file mode 100644
index 00000000..5977e98e
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
@@ -0,0 +1,17 @@
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Dto;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DisheMenuPageRequest : PageDto
+{
+ ///
+ /// 餐次
+ ///
+ public List ShiftTypes { get; set; }
+
+ ///
+ /// 分类
+ ///
+ public Guid? CategoryCode { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesCategorySaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesCategorySaveRequest.cs
new file mode 100644
index 00000000..80582418
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesCategorySaveRequest.cs
@@ -0,0 +1,24 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesCategorySaveRequest
+{
+ public long? Id { get; set; }
+
+ ///
+ /// PCode
+ ///
+ public Guid? PCode { get; set; }
+
+ ///
+ /// 分类名称
+ ///
+ [Required]
+ public string Name { get; set; }
+
+ ///
+ /// 序号
+ ///
+ public int Sequence { get; set; } = 100;
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesMenuNameDateSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesMenuNameDateSaveRequest.cs
new file mode 100644
index 00000000..54b3bb35
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesMenuNameDateSaveRequest.cs
@@ -0,0 +1,39 @@
+using System.ComponentModel.DataAnnotations;
+using Kurisu.AspNetCore.Utils.Extensions;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesMenuNameDateSaveRequest : IValidatableObject
+{
+ ///
+ /// 菜单编码
+ ///
+ public string CustomCode { get; set; }
+
+ ///
+ /// 菜单日期
+ ///
+ public DateTime Date { get; set; }
+
+ ///
+ /// 餐次数据
+ ///
+ public List ShiftTypes { get; set; }
+
+
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ if (Date < DateTime.Today)
+ {
+ yield return new ValidationResult("菜单日期不能小于当天");
+ }
+
+ //格式化
+ Date = Date.Date;
+
+ if (CustomCode.IsEmpty())
+ {
+ CustomCode = Date.ToString("yyyy-MM-dd");
+ }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesMenuSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesMenuSaveRequest.cs
new file mode 100644
index 00000000..bbece19f
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesMenuSaveRequest.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesMenuSaveRequest : IValidatableObject
+{
+ ///
+ /// 营业点code
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
+ public List Items { get; set; }
+
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ yield break;
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesMenuShiftTypeSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesMenuShiftTypeSaveRequest.cs
new file mode 100644
index 00000000..e76681b3
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesMenuShiftTypeSaveRequest.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+using Dlhis.Entity.Canteen.Enums;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesMenuShiftTypeSaveRequest
+{
+ ///
+ /// 餐次段
+ ///
+ [EnumDataType(typeof(ShiftEnumType))]
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 菜品
+ ///
+ public List Dishes { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
new file mode 100644
index 00000000..6d351367
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
@@ -0,0 +1,8 @@
+using Kurisu.Core.DataAccess.Dto;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesPageRequest : PageDto
+{
+
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
new file mode 100644
index 00000000..c2135cc9
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
@@ -0,0 +1,47 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class DishesSaveRequest
+{
+ public long? Id { get; set; }
+
+ ///
+ /// 分类
+ ///
+ [Required]
+ public Guid CategoryCode { get; set; }
+
+ ///
+ /// 菜品名称
+ ///
+ [Required]
+ public string Name { get; set; }
+
+ ///
+ /// 菜单编码
+ ///
+ [Required]
+ public string CustomCode { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ ///
+ /// 单价
+ ///
+ [Range(0, 10000)]
+ public decimal Price { get; set; }
+
+ ///
+ /// 图片
+ ///
+ public string ImageUrl { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Request/MenuDishesSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/MenuDishesSaveRequest.cs
new file mode 100644
index 00000000..601c9aaa
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/MenuDishesSaveRequest.cs
@@ -0,0 +1,24 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Dishes.Request;
+
+public class MenuDishesSaveRequest
+{
+ ///
+ /// 菜品编码
+ ///
+ [Required]
+ public string DishesCode { get; set; }
+
+ ///
+ /// 菜单价
+ ///
+ [Range(0, double.MaxValue)]
+ public decimal? Price { get; set; }
+
+ ///
+ /// 售额
+ ///
+ [Range(0, int.MaxValue)]
+ public int Number { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesCategoryResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesCategoryResponse.cs
new file mode 100644
index 00000000..fdaca520
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesCategoryResponse.cs
@@ -0,0 +1,15 @@
+namespace Dlhis.Basic.Dishes.Response;
+
+public class DishesCategoryTreeResponse
+{
+ public Guid? PCode { get; set; }
+
+ public Guid Code { get; set; }
+
+ ///
+ /// 分类名称
+ ///
+ public string Name { get; set; }
+
+ public List Next { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
new file mode 100644
index 00000000..4f2c3a1a
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
@@ -0,0 +1,6 @@
+namespace Dlhis.Basic.Dishes.Response;
+
+public class DishesMenuPageResponse
+{
+
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
new file mode 100644
index 00000000..520beaba
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
@@ -0,0 +1,67 @@
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
+
+namespace Dlhis.Basic.Dishes.Response;
+
+public class DishesResponse
+{
+ ///
+ /// 大类
+ ///
+ public string Categories { get; set; }
+
+ ///
+ /// 小类
+ ///
+ public string SubCategories { get; set; }
+
+ ///
+ /// 菜品编码
+ ///
+ public string Code { get; set; }
+
+ ///
+ /// 菜品名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 菜品类型
+ ///
+ public CanteenMenuEnumType Type { get; set; }
+
+ ///
+ /// 菜品类型描述
+ ///
+ public string TypeDescription => Type.GetDescription();
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ ///
+ /// 单价
+ ///
+ public decimal Amount { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 图片
+ ///
+ public string Image { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
+
+ ///
+ /// 限售份数
+ ///
+ public int? RestrictedNum { get; set; } = null;
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
new file mode 100644
index 00000000..d0b12322
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
@@ -0,0 +1,11 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+
+namespace Dlhis.Canteen.Dishes.Services;
+
+public interface IDishesCategoryService : IScopeDependency
+{
+ Task> TreeAsync();
+
+ Task SaveAsync(DishesCategorySaveRequest request);
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
new file mode 100644
index 00000000..f23afb72
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
@@ -0,0 +1,16 @@
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Dto;
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Dto;
+using Dlhis.Basic.Dishes.Response;
+
+namespace Dlhis.Canteen.Dishes.Services;
+
+public interface IDishesMenuService : IScopeDependency
+{
+ Task> GetDishesMenuPageAsync(DisheMenuPageRequest request);
+
+ Task SaveDishesMenuAsync(DishesMenuSaveRequest request);
+
+ Task CheckBookingAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCustomCode);
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
new file mode 100644
index 00000000..329d0e05
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -0,0 +1,12 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Kurisu.Core.DataAccess.Dto;
+
+namespace Dlhis.Canteen.Dishes.Services;
+
+public interface IDishesService : IScopeDependency
+{
+ Task> GetDishesPageAsync(DishesPageRequest request);
+
+ Task SaveDishesAsync(DishesSaveRequest request);
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
new file mode 100644
index 00000000..42530572
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
@@ -0,0 +1,66 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Dlhis.Canteen.Dishes.Services;
+using Dlhis.Entity.Canteen.Entities;
+using Kurisu.AspNetCore.Utils.Extensions;
+using Kurisu.SqlSugar.Services;
+using Mapster;
+
+namespace Dlhis.Basic.Dishes.Services.Implements;
+
+public class DishesCategoryService : IDishesCategoryService
+{
+ private readonly IDbContext _dbContext;
+
+ public DishesCategoryService(IDbContext dbContext)
+ {
+ _dbContext = dbContext;
+ }
+
+ public async Task> TreeAsync()
+ {
+ var categories = await _dbContext.Queryable().Select().ToListAsync();
+ var tops = categories.Where(x => !x.PCode.HasValue).ToList();
+
+ tops.ForEach(x =>
+ {
+ RecursionGetNext(x, categories);
+ });
+
+ return tops;
+ }
+
+ public async Task SaveAsync(DishesCategorySaveRequest request)
+ {
+ if (!request.Id.HasValue)
+ {
+ var entity = request.Adapt();
+ entity.Code = Guid.NewGuid();
+ await _dbContext.InsertAsync(entity);
+ }
+ else
+ {
+ var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).FirstAsync();
+ entity.ThrowIfNull("分类不存在,无法更新");
+ request.Adapt(entity);
+
+ await _dbContext.UpdateAsync(entity);
+ }
+ }
+
+
+ //************************************************************************************************************************
+
+ private static void RecursionGetNext(DishesCategoryTreeResponse current, List data)
+ {
+ var next = data.Where(x => x.PCode == current.Code).ToList();
+ if (next.Any())
+ {
+ current.Next = next;
+ foreach (var item in next)
+ {
+ RecursionGetNext(item, data);
+ }
+ }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
new file mode 100644
index 00000000..426479a3
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -0,0 +1,131 @@
+using Dlhis.Entity.Canteen.Entities;
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
+using Kurisu.Core.DataAccess.Dto;
+using Kurisu.SqlSugar.Extensions;
+using Kurisu.SqlSugar.Services;
+using SqlSugar;
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Dlhis.Basic.BusinessPlace.Services;
+using Dlhis.Basic.Dishes.Dto;
+
+namespace Dlhis.Canteen.Dishes.Services.Implements;
+
+public class DishesMenuService : IDishesMenuService
+{
+ private readonly IDbContext _dbContext;
+ private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService;
+
+ public DishesMenuService(IDbContext dbContext, IBusinessPlacePermissionsService businessPlacePermissionsService)
+ {
+ _dbContext = dbContext;
+ _businessPlacePermissionsService = businessPlacePermissionsService;
+ }
+
+ public async Task> GetDishesMenuPageAsync(DisheMenuPageRequest request)
+ {
+ return await _dbContext.Queryable()
+ .Select()
+ .ToPageListAsync(request);
+ }
+
+ public async Task SaveDishesMenuAsync(DishesMenuSaveRequest request)
+ {
+ //检验数据
+ CheckDuplicateData(request);
+
+ //检验权限
+ var myBps = await _businessPlacePermissionsService.GetMyAsync();
+ myBps.Contains(request.BusinessPlaceCode).ThrowIfFalse("当前经营营业点,无法保存菜单");
+
+ var entities = request.Items.SelectMany(item =>
+ {
+ var customCode = item.CustomCode;
+ var date = item.Date;
+
+ return item.ShiftTypes.SelectMany(shiftTypeItem =>
+ {
+ var shiftType = shiftTypeItem.ShiftType;
+
+ return shiftTypeItem.Dishes.Select(dishesItem =>
+ {
+ var dishesCode = dishesItem.DishesCode;
+ var number = dishesItem.Number;
+ var price = dishesItem.Price;
+
+ return new DishesMenuEntity
+ {
+ BusinessPlaceCode = request.BusinessPlaceCode,
+ CustomCode = customCode,
+ Date = date,
+ ShiftType = shiftType,
+ DishesCode = dishesCode,
+ Number = number,
+ Price = price,
+
+ Type = CanteenMenuEnumType.Booking,
+ Version = 0,
+ Enable = false,
+ };
+ });
+ });
+ }).ToList();
+
+ var keys = entities.DistinctBy(x => new { x.Date, x.ShiftType }).Select(x => new { x.Date, x.ShiftType }).ToList();
+ var where = LinqExpressionExtension.False();
+ keys.ForEach(x =>
+ {
+ where = where.Or(item => item.Date == x.Date && item.ShiftType == x.ShiftType);
+ });
+
+ await _dbContext.Client.Deleteable().Where(where).ExecuteCommandAsync();
+ await _dbContext.InsertAsync(entities);
+ }
+
+
+
+ public async Task CheckBookingAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCustomCode)
+ {
+ var detail = await _dbContext.Queryable()
+ .LeftJoin((x, d) => x.DishesCode == d.CustomCode)
+ .Where(x => x.Date == date)
+ .Where(x => x.BusinessPlaceCode == businessPlaceCode)
+ .Where(x => x.ShiftType == shiftType)
+ .Where(x => x.DishesCode == dishesCustomCode)
+ .Where((x, d) => d.Enable)
+ .Select((x, d) => new DishesMenuDetailDto
+ {
+ MenuId = x.Id,
+ DishesId = d.Id,
+ DishesCode = d.CustomCode,
+ DishesName = d.Name,
+ Price = x.Price == null || x.Price == 0 ? d.Price : x.Price.Value,
+ Number = x.Number,
+ Version = x.Version,
+ })
+ .SingleAsync();
+
+ return detail;
+ }
+
+ //*********************************************************help methods**********************************************************************
+
+ private static void CheckDuplicateData(DishesMenuSaveRequest request)
+ {
+ (request.Items.DistinctBy(x => new { x.CustomCode, x.Date }).Count() != request.Items.Count).ThrowIfTrue("菜单不可重复");
+
+ foreach (var item in request.Items)
+ {
+ var u = item.Date.ToString("yyyy-MM-dd") + "-" + item.CustomCode;
+
+ (item.ShiftTypes.DistinctBy(x => x.ShiftType).Count() != item.ShiftTypes.Count).ThrowIfTrue($"{u}的餐次不可重复添加");
+
+ foreach (var shiftTypeItem in item.ShiftTypes)
+ {
+ (shiftTypeItem.Dishes.DistinctBy(x => x.DishesCode).Count() != shiftTypeItem.Dishes.Count)
+ .ThrowIfTrue($"{u}的{shiftTypeItem.ShiftType.GetDescription()}下菜品不可重复");
+ }
+ }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
new file mode 100644
index 00000000..dad68a15
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -0,0 +1,51 @@
+using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Response;
+using Dlhis.Canteen.Dishes.Services;
+using Dlhis.Entity.Canteen.Entities;
+using Kurisu.AspNetCore.Utils.Extensions;
+using Kurisu.Core.DataAccess.Dto;
+using Kurisu.SqlSugar.Extensions;
+using Kurisu.SqlSugar.Services;
+using Mapster;
+
+namespace Dlhis.Canteen.Dishes.Services.Implements;
+
+public class DishesService : IDishesService
+{
+ private readonly IDbContext _dbContext;
+
+ public DishesService(IDbContext dbContext)
+ {
+ _dbContext = dbContext;
+ }
+
+ public async Task> GetDishesPageAsync(DishesPageRequest request)
+ {
+ //todo 营业点权限
+
+ return await _dbContext.Queryable()
+ .WhereIF(request.Search.IsPresent(), x => x.CustomCode == request.Search || x.Name.Contains(request.Search))
+ .OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc)
+ .Select()
+ .ToPageListAsync(request);
+ }
+
+
+ public async Task SaveDishesAsync(DishesSaveRequest request)
+ {
+ if (!request.Id.HasValue)
+ {
+ var dishers = request.Adapt();
+ dishers.CustomCode = request.CustomCode;
+ await _dbContext.InsertAsync(dishers);
+ }
+ else
+ {
+ var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).FirstAsync();
+ entity.ThrowIfNull("菜品不存在,无法更新");
+
+ request.Adapt(entity);
+ await _dbContext.UpdateAsync(entity);
+ }
+ }
+}
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
index fd8dbe9d..2e6644c4 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
@@ -119,19 +119,19 @@ public class GainfoPermissions : IGainfoPermissions
var deviceUniqueNos = page.Select(x => x.UniqueNo).ToList();
var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out)
- .Where(x => deviceUniqueNos.Contains(x.DeviceInfo))
+ .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo))
.Select(x => new
{
- x.DeviceInfo,
+ x.DeviceUniqueNo,
Amount = SqlFunc.AggregateSum(x.Amount),
UserCount = SqlFunc.AggregateDistinctCount(x.UserCode)
})
- .GroupBy(x => x.DeviceInfo)
+ .GroupBy(x => x.DeviceUniqueNo)
.ToListAsync();
page.ForEach(device =>
{
- var info = balanceInfos.FirstOrDefault(x => x.DeviceInfo == device.UniqueNo);
+ var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo);
if (info != null)
{
device.Amount = info.Amount;
@@ -172,19 +172,19 @@ public class GainfoPermissions : IGainfoPermissions
var deviceUniqueNos = page.Data.Select(x => x.UniqueNo).ToList();
var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out)
- .Where(x => deviceUniqueNos.Contains(x.DeviceInfo))
+ .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo))
.Select(x => new
{
- x.DeviceInfo,
+ x.DeviceUniqueNo,
Amount = SqlFunc.AggregateSum(x.Amount),
UserCount = SqlFunc.AggregateDistinctCount(x.UserCode)
})
- .GroupBy(x => x.DeviceInfo)
+ .GroupBy(x => x.DeviceUniqueNo)
.ToListAsync();
page.Data.ForEach(device =>
{
- var info = balanceInfos.FirstOrDefault(x => x.DeviceInfo == device.UniqueNo);
+ var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo);
if (info != null)
{
device.Amount = info.Amount;
diff --git a/Src/Dlhis.Entity/Basic/Entity/BusinessShiftMealRelationshipEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BusinessShiftMealRelationshipEntity.cs
index 6172c059..71912dd0 100644
--- a/Src/Dlhis.Entity/Basic/Entity/BusinessShiftMealRelationshipEntity.cs
+++ b/Src/Dlhis.Entity/Basic/Entity/BusinessShiftMealRelationshipEntity.cs
@@ -1,6 +1,8 @@
-using Kurisu.Core.DataAccess.Entity;
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
+using SqlSugar.DbConvert;
namespace Dlhis.Entity.Basic.Entity;
@@ -8,22 +10,22 @@ namespace Dlhis.Entity.Basic.Entity;
public class BusinessShiftMealRelationshipEntity : SugarBaseEntity, ITenantId
{
///
- /// 餐次组合Code
+ /// 餐别Code
///
- [SugarColumn(ColumnDescription = "餐次组合Code", UniqueGroupNameList = new[] { "idx_CanteenBusinessShiftRelationship_shiftcode_shifttype" })]
+ [SugarColumn(ColumnDescription = "餐别Code", UniqueGroupNameList = new[] { "idx_CanteenBusinessShiftRelationship_shiftcode_shifttype" })]
public Guid ShiftCode { get; set; }
///
- /// 餐次组合手工号
+ /// 餐别手工号
///
- [SugarColumn(ColumnDescription = "餐次组合手工号")]
+ [SugarColumn(ColumnDescription = "餐别编码")]
public string ShiftCustomCode { get; set; }
///
/// 餐次
///
- [SugarColumn(ColumnDescription = "餐次", UniqueGroupNameList = new[] { "idx_CanteenBusinessShiftRelationship_shiftcode_shifttype" })]
- public string ShiftType { get; set; }
+ [SugarColumn(ColumnDescription = "餐次", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), UniqueGroupNameList = new[] { "idx_CanteenBusinessShiftRelationship_shiftcode_shifttype" })]
+ public ShiftEnumType ShiftType { get; set; }
///
/// 经营开始时间
diff --git a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
index 9b69d0ce..868f7a44 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
@@ -68,16 +68,16 @@ public class BalanceRecordEntity : SugarBaseEntity, ITenantId
public Guid? BusinessPlaceCode { get; set; }
///
- /// 餐次
+ /// 餐别
///
- [SugarColumn(ColumnDescription = "餐次", IsNullable = true)]
+ [SugarColumn(ColumnDescription = "餐别", IsNullable = true)]
public Guid? BusinessShiftCode { get; set; }
///
- /// 餐次段
+ /// 餐次
///
- [SugarColumn(ColumnDescription = "餐次段", IsNullable = true)]
- public string ShiftType { get; set; }
+ [SugarColumn(ColumnDescription = "餐次", ColumnDataType = "varchar(50)", IsNullable = true, SqlParameterDbType = typeof(EnumToStringConvert))]
+ public ShiftEnumType? ShiftType { get; set; }
///
/// 所属成本日期
@@ -89,7 +89,7 @@ public class BalanceRecordEntity : SugarBaseEntity, ITenantId
/// 消费机器唯一信息
///
[SugarColumn(ColumnDescription = "消费机器唯一信息", IsNullable = true)]
- public string DeviceInfo { get; set; }
+ public string DeviceUniqueNo { get; set; }
///
/// 餐补月份
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
similarity index 78%
rename from Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
rename to Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
index e9168b4b..43780f04 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
@@ -9,14 +9,14 @@ namespace Dlhis.Entity.Canteen.Entities;
///
/// 菜单表
///
-[SugarTable(TableName = "CanteenMenu", TableDescription = "菜单表")]
-public class CanteenMenuEntity : SugarBaseEntity, ITenantId, IVersion
+[SugarTable(TableName = "DishesMenu", TableDescription = "菜单表")]
+public class DishesMenuEntity : SugarBaseEntity, ITenantId, IVersion
{
///
- /// 菜单名称
+ /// 菜单编码
///
- [SugarColumn(ColumnDescription = "菜单名称")]
- public string Name { get; set; }
+ [SugarColumn(ColumnDescription = "菜单编码")]
+ public string CustomCode { get; set; }
///
/// 菜单类型
@@ -28,7 +28,7 @@ public class CanteenMenuEntity : SugarBaseEntity, ITenantId, IVersion
/// 所属营业点
///
[SugarColumn(ColumnDescription = "所属营业点")]
- public Guid PlaceCode { get; set; }
+ public Guid BusinessPlaceCode { get; set; }
///
/// 营业日期
@@ -54,6 +54,12 @@ public class CanteenMenuEntity : SugarBaseEntity, ITenantId, IVersion
///
public int Number { get; set; }
+
+ ///
+ /// 单价
+ ///
+ public decimal? Price { get; set; }
+
///
/// 是否启用
///
diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
index 4dff6803..39975b22 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
@@ -81,7 +81,7 @@ namespace Dlhis.Entity.Canteen.Entities
///
/// 用餐日期
///
- [SugarColumn(ColumnDescription = "用餐日期")]
+ [SugarColumn(ColumnDescription = "用餐日期", IsNullable = true)]
public DateTime UseDate { get; set; }
///
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
index bdf956a9..e1710105 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
@@ -12,7 +12,7 @@ public enum CanteenMenuEnumType
/// 订餐
///
[Description("订餐")]
- Order = 1,
+ Booking = 1,
///
/// 扫码点餐
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenSettingItemEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenSettingItemEnumType.cs
index a5ac6a98..c9e33c4b 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenSettingItemEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/CanteenSettingItemEnumType.cs
@@ -14,6 +14,12 @@ public enum CanteenSettingItemEnumType
[Description("营业点切换时间(HH:00:00)")]
BusinessSwitchTime = 100,
+ ///
+ /// 订餐最晚时间
+ ///
+ [Description("订餐最晚时间(HH:mm:00)")]
+ BookingDeadline = 101,
+
//----------------------------------------------------------------[200,300)--------------------------------------------------------------------------------------
From e2cc31003fce970d3b69b8773cf6ab3859bafe61 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 10:27:46 +0800
Subject: [PATCH 11/31] =?UTF-8?q?fix=20=E6=9B=B4=E6=96=B0=E6=8E=A7?=
=?UTF-8?q?=E5=88=B6=E5=99=A8=E5=90=8D=E7=A7=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesCategoriesController.cs | 2 +-
...Controller.cs => DishesMenusController.cs} | 24 +++++++++++++++----
2 files changed, 21 insertions(+), 5 deletions(-)
rename Src/Dlhis.Basic/Dishes/Controller/{DishesMenuController.cs => DishesMenusController.cs} (70%)
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
index 9c9864d3..7370ebe9 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs
@@ -1,6 +1,6 @@
using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
-using Dlhis.Canteen.Dishes.Services;
+using Dlhis.Basic.Dishes.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
similarity index 70%
rename from Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs
rename to Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index a5db6601..297d4f9e 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenuController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -1,6 +1,8 @@
-using Dlhis.Basic.Dishes.Request;
+using Dlhis.Basic.Dishes.Dto;
+using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
-using Dlhis.Canteen.Dishes.Services;
+using Dlhis.Basic.Dishes.Services;
+using Dlhis.Entity.Canteen.Enums;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
@@ -14,12 +16,12 @@ namespace Dlhis.Basic.Dishes.Controller;
[Authorize]
[Route("api/[controller]")]
[ApiController]
-public class DishesMenuController : ControllerBase
+public class DishesMenusController : ControllerBase
{
private readonly IDishesMenuService _dishesMenuService;
private readonly IDishesService _dishesService;
- public DishesMenuController(IDishesMenuService dishesMenuService, IDishesService dishesService)
+ public DishesMenusController(IDishesMenuService dishesMenuService, IDishesService dishesService)
{
_dishesMenuService = dishesMenuService;
_dishesService = dishesService;
@@ -48,6 +50,20 @@ public class DishesMenuController : ControllerBase
await _dishesMenuService.SaveDishesMenuAsync(request);
}
+ ///
+ /// 菜单明细
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("detail")]
+ public async Task GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode)
+ {
+ return await _dishesMenuService.GetBookingDishesDetailAsync(date, businessPlaceCode, shiftType, dishesCode);
+ }
+
///
/// 菜品分页
///
From c1d84ae1c6a9d5bb7a70856c2c5fbfb2b9010329 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 10:28:56 +0800
Subject: [PATCH 12/31] =?UTF-8?q?fix=20=E5=91=BD=E5=90=8D=E7=A9=BA?=
=?UTF-8?q?=E9=97=B4=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs | 2 +-
Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs | 4 ++--
Src/Dlhis.Basic/Dishes/Services/IDishesService.cs | 2 +-
.../Dishes/Services/Implements/DishesCategoryService.cs | 1 -
.../Dishes/Services/Implements/DishesMenuService.cs | 6 +++---
Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs | 3 +--
6 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
index d0b12322..2164e5e0 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs
@@ -1,7 +1,7 @@
using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
-namespace Dlhis.Canteen.Dishes.Services;
+namespace Dlhis.Basic.Dishes.Services;
public interface IDishesCategoryService : IScopeDependency
{
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
index f23afb72..87c38925 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs
@@ -4,7 +4,7 @@ using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Dto;
using Dlhis.Basic.Dishes.Response;
-namespace Dlhis.Canteen.Dishes.Services;
+namespace Dlhis.Basic.Dishes.Services;
public interface IDishesMenuService : IScopeDependency
{
@@ -12,5 +12,5 @@ public interface IDishesMenuService : IScopeDependency
Task SaveDishesMenuAsync(DishesMenuSaveRequest request);
- Task CheckBookingAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCustomCode);
+ Task GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode);
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
index 329d0e05..8398263a 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -2,7 +2,7 @@
using Dlhis.Basic.Dishes.Response;
using Kurisu.Core.DataAccess.Dto;
-namespace Dlhis.Canteen.Dishes.Services;
+namespace Dlhis.Basic.Dishes.Services;
public interface IDishesService : IScopeDependency
{
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
index 42530572..8fda1dc2 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs
@@ -1,6 +1,5 @@
using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
-using Dlhis.Canteen.Dishes.Services;
using Dlhis.Entity.Canteen.Entities;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.SqlSugar.Services;
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index 426479a3..40ffc7cf 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -10,7 +10,7 @@ using Dlhis.Basic.Dishes.Response;
using Dlhis.Basic.BusinessPlace.Services;
using Dlhis.Basic.Dishes.Dto;
-namespace Dlhis.Canteen.Dishes.Services.Implements;
+namespace Dlhis.Basic.Dishes.Services.Implements;
public class DishesMenuService : IDishesMenuService
{
@@ -85,14 +85,14 @@ public class DishesMenuService : IDishesMenuService
- public async Task CheckBookingAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCustomCode)
+ public async Task GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode)
{
var detail = await _dbContext.Queryable()
.LeftJoin((x, d) => x.DishesCode == d.CustomCode)
.Where(x => x.Date == date)
.Where(x => x.BusinessPlaceCode == businessPlaceCode)
.Where(x => x.ShiftType == shiftType)
- .Where(x => x.DishesCode == dishesCustomCode)
+ .Where(x => x.DishesCode == dishesCode)
.Where((x, d) => d.Enable)
.Select((x, d) => new DishesMenuDetailDto
{
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index dad68a15..4c202176 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -1,6 +1,5 @@
using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
-using Dlhis.Canteen.Dishes.Services;
using Dlhis.Entity.Canteen.Entities;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
@@ -8,7 +7,7 @@ using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
-namespace Dlhis.Canteen.Dishes.Services.Implements;
+namespace Dlhis.Basic.Dishes.Services.Implements;
public class DishesService : IDishesService
{
From 0bed0bc97bd6b23dc2da85666d8e5a6f4138b908 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 10:54:28 +0800
Subject: [PATCH 13/31] =?UTF-8?q?fix=20=E8=8E=B7=E5=8F=96=E8=90=A5?=
=?UTF-8?q?=E4=B8=9A=E7=82=B9=E4=B8=8B=E9=9D=A2=E9=A4=90=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesMenusController.cs | 5 ++-
.../Response/GetDishesMenusBookingResponse.cs | 42 +++++++++++++++++++
.../Dishes/Services/IDishesService.cs | 3 ++
.../Services/Implements/DishesService.cs | 16 +++++++
.../Order/Request/OrderRequest.cs | 2 +-
.../Response/GetMiniProgramOrderResponse.cs | 2 +-
6 files changed, 66 insertions(+), 4 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index 297d4f9e..9c3289c4 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -7,6 +7,7 @@ using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Org.BouncyCastle.Asn1.Ocsp;
namespace Dlhis.Basic.Dishes.Controller;
@@ -92,9 +93,9 @@ public class DishesMenusController : ControllerBase
///
///
[HttpGet("setting")]
- public async Task GetDishesMenusBookingSetting()
+ public async Task> GetDishesMenusBookingSetting(Guid PLaceCode)
{
- //todo
+ return await _dishesService.GetDishesMenusBookingSetting(PLaceCode);
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
new file mode 100644
index 00000000..29fe46b4
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
@@ -0,0 +1,42 @@
+using Dlhis.Entity.Canteen.Enums;
+using SqlSugar.DbConvert;
+using SqlSugar;
+
+namespace Dlhis.Basic.Dishes.Response
+{
+ public class GetDishesMenusBookingResponse
+ {
+ ///
+ /// 餐别Code
+ ///
+ public Guid ShiftCode { get; set; }
+
+ ///
+ /// 餐别手工号
+ ///
+ public string ShiftCustomCode { get; set; }
+
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 经营开始时间
+ ///
+ public TimeOnly Start { get; set; }
+
+ ///
+ /// 经营结束时间
+ ///
+ public TimeOnly End { get; set; }
+
+ ///
+ /// 序号
+ ///
+ public int Sequence { get; set; }
+
+
+ public string TenantId { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
index 8398263a..6155d573 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -9,4 +9,7 @@ public interface IDishesService : IScopeDependency
Task> GetDishesPageAsync(DishesPageRequest request);
Task SaveDishesAsync(DishesSaveRequest request);
+
+ Task> GetDishesMenusBookingSetting(Guid PLaceCode);
+
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index 4c202176..f0520772 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -1,5 +1,6 @@
using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response;
+using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Canteen.Entities;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
@@ -47,4 +48,19 @@ public class DishesService : IDishesService
await _dbContext.UpdateAsync(entity);
}
}
+
+ public async Task> GetDishesMenusBookingSetting(Guid PLaceCode)
+ {
+ var shift = await _dbContext.Queryable()
+ .Where(x => x.PlaceCode == PLaceCode)
+ .FirstAsync();
+
+ var res= await _dbContext.Queryable()
+ .Where(x => x.ShiftCode == shift.ShiftCode)
+ .Select()
+ .ToListAsync();
+
+ return res;
+ }
+
}
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
index 28481cb8..a8bfac36 100644
--- a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
@@ -45,6 +45,6 @@ namespace Dlhis.Canteen.Order.Request
///
/// 支付方式
///
- public CanteenPayEnumType PayType { get; set; }
+ public BalanceRecordSourceEnumType PayType { get; set; }
}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
index a0a28732..bb4f4fbc 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
@@ -100,7 +100,7 @@ namespace Dlhis.Canteen.Order.Response
///
/// 支付方式
///
- public CanteenPayEnumType PayType { get; set; }
+ public BalanceRecordSourceEnumType PayType { get; set; }
///
/// 支付方式CN
From a2eca2cdebbfe60a96469e3ec96d2094d85f1e92 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 10:59:52 +0800
Subject: [PATCH 14/31] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0=E6=97=A5?=
=?UTF-8?q?=E6=9C=9F=E8=BF=94=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dtos/DishesMenuDetailDto.cs | 20 ++++++++++++++++++
Src/Dlhis.Basic.Api/IDisheMenuApi.cs | 21 +++++++++++++++++++
.../Dishes/Dto/DishesMenuDetailDto.cs | 2 ++
.../Services/Implements/DishesMenuService.cs | 1 +
4 files changed, 44 insertions(+)
create mode 100644 Src/Dlhis.Basic.Api/Dtos/DishesMenuDetailDto.cs
create mode 100644 Src/Dlhis.Basic.Api/IDisheMenuApi.cs
diff --git a/Src/Dlhis.Basic.Api/Dtos/DishesMenuDetailDto.cs b/Src/Dlhis.Basic.Api/Dtos/DishesMenuDetailDto.cs
new file mode 100644
index 00000000..cb960e51
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/Dtos/DishesMenuDetailDto.cs
@@ -0,0 +1,20 @@
+namespace Dlhis.Basic.Api.Dtos;
+
+public class DishesMenuDetailDto
+{
+ public DateTime Date { get; set; }
+
+ public long MenuId { get; set; }
+
+ public long DishesId { get; set; }
+
+ public string DishesCode { get; set; }
+
+ public string DishesName { get; set; }
+
+ public decimal Price { get; set; }
+
+ public int Number { get; set; }
+
+ public int Version { get; set; }
+}
diff --git a/Src/Dlhis.Basic.Api/IDisheMenuApi.cs b/Src/Dlhis.Basic.Api/IDisheMenuApi.cs
new file mode 100644
index 00000000..04482e6a
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/IDisheMenuApi.cs
@@ -0,0 +1,21 @@
+using Dlhis.Basic.Api.Dtos;
+using Kurisu.Core.Result;
+using Kurisu.RemoteCall.Attributes;
+
+namespace Dlhis.Basic.Api;
+
+[EnableRemoteClient(Name = "basic-service", BaseUrl = "${InternalRequest:BasicRequestUrl}")]
+public interface IDisheMenuApi
+{
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [Auth]
+ [Get("/api/dishesMenus/detail")]
+ Task> GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, int shiftType, string dishesCode);
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs b/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
index 5850ee41..d21e2ca9 100644
--- a/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
+++ b/Src/Dlhis.Basic/Dishes/Dto/DishesMenuDetailDto.cs
@@ -2,6 +2,8 @@
public class DishesMenuDetailDto
{
+ public DateTime Date { get; set; }
+
public long MenuId { get; set; }
public long DishesId { get; set; }
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index 40ffc7cf..249f22ad 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -96,6 +96,7 @@ public class DishesMenuService : IDishesMenuService
.Where((x, d) => d.Enable)
.Select((x, d) => new DishesMenuDetailDto
{
+ Date = x.Date,
MenuId = x.Id,
DishesId = d.Id,
DishesCode = d.CustomCode,
From 11a3a0aded6d8bf3a06bf0c0e09d857e440acc0f Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 11:01:31 +0800
Subject: [PATCH 15/31] =?UTF-8?q?fix=20GetDishesMenusBookingSetting?=
=?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BD=93=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesMenusController.cs | 2 +-
.../BusinessShiftMealRelationshipResponse.cs | 40 +++++++++++++++++++
.../Response/GetDishesMenusBookingResponse.cs | 33 +--------------
.../Dishes/Services/IDishesService.cs | 2 +-
.../Services/Implements/DishesService.cs | 11 +++--
5 files changed, 50 insertions(+), 38 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index 9c3289c4..5d22c254 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -93,7 +93,7 @@ public class DishesMenusController : ControllerBase
///
///
[HttpGet("setting")]
- public async Task> GetDishesMenusBookingSetting(Guid PLaceCode)
+ public async Task GetDishesMenusBookingSetting(Guid PLaceCode)
{
return await _dishesService.GetDishesMenusBookingSetting(PLaceCode);
}
diff --git a/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
new file mode 100644
index 00000000..85b71c88
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
@@ -0,0 +1,40 @@
+using Dlhis.Entity.Canteen.Enums;
+
+namespace Dlhis.Basic.Dishes.Response
+{
+ public class BusinessShiftMealRelationshipResponse
+ {
+ ///
+ /// 餐别Code
+ ///
+ public Guid ShiftCode { get; set; }
+
+ ///
+ /// 餐别手工号
+ ///
+ public string ShiftCustomCode { get; set; }
+
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 经营开始时间
+ ///
+ public TimeOnly Start { get; set; }
+
+ ///
+ /// 经营结束时间
+ ///
+ public TimeOnly End { get; set; }
+
+ ///
+ /// 序号
+ ///
+ public int Sequence { get; set; }
+
+
+ public string TenantId { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
index 29fe46b4..87c5b76d 100644
--- a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
@@ -6,37 +6,6 @@ namespace Dlhis.Basic.Dishes.Response
{
public class GetDishesMenusBookingResponse
{
- ///
- /// 餐别Code
- ///
- public Guid ShiftCode { get; set; }
-
- ///
- /// 餐别手工号
- ///
- public string ShiftCustomCode { get; set; }
-
- ///
- /// 餐次
- ///
- public ShiftEnumType ShiftType { get; set; }
-
- ///
- /// 经营开始时间
- ///
- public TimeOnly Start { get; set; }
-
- ///
- /// 经营结束时间
- ///
- public TimeOnly End { get; set; }
-
- ///
- /// 序号
- ///
- public int Sequence { get; set; }
-
-
- public string TenantId { get; set; }
+ public List BusinessShiftMealRelationships { get; set; }
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
index 6155d573..3d7338d0 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -10,6 +10,6 @@ public interface IDishesService : IScopeDependency
Task SaveDishesAsync(DishesSaveRequest request);
- Task> GetDishesMenusBookingSetting(Guid PLaceCode);
+ Task GetDishesMenusBookingSetting(Guid PLaceCode);
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index f0520772..bda18ed8 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -49,17 +49,20 @@ public class DishesService : IDishesService
}
}
- public async Task> GetDishesMenusBookingSetting(Guid PLaceCode)
+ public async Task GetDishesMenusBookingSetting(Guid PLaceCode)
{
var shift = await _dbContext.Queryable()
.Where(x => x.PlaceCode == PLaceCode)
.FirstAsync();
- var res= await _dbContext.Queryable()
+ var BusinessShiftMealRelationships= await _dbContext.Queryable()
.Where(x => x.ShiftCode == shift.ShiftCode)
- .Select()
+ .Select()
.ToListAsync();
-
+ var res = new GetDishesMenusBookingResponse
+ {
+ BusinessShiftMealRelationships = BusinessShiftMealRelationships,
+ };
return res;
}
From 5fe4104ff6af460f6cd1f1321580dab57457875b Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 11:03:43 +0800
Subject: [PATCH 16/31] =?UTF-8?q?fix=20=E6=8F=90=E4=BA=A4=E5=8F=AF?=
=?UTF-8?q?=E7=BC=96=E8=AF=91=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Order/Controllers/BalancesController.cs | 5 +-
.../Order/Controllers/MenuDishesController.cs | 81 --------
.../MiniProgramOrderDetailController.cs | 69 -------
.../Order/Controllers/OrdersController.cs | 40 +++-
.../CheckUserDeviceConsumeAttribute.cs | 14 --
.../Request/BalanceRecordAnalysisRequest.cs | 1 -
.../Request/BalanceRecordObsoluteRequest.cs | 2 +-
.../BalanceRecordPageByCostIdRequest.cs | 2 +-
...alanceRecordPageByDeviceUniqueNoRequest.cs | 2 +-
.../BalanceRecordPageDetailsRequest.cs | 2 +-
.../Order/Request/BalanceRecordPageRequest.cs | 6 +-
.../Request/BalanceRecordSummaryRequest.cs | 2 +-
.../Request/BalanceRecordUserPageRequest.cs | 2 +-
.../Order/Request/BookingMealRequest.cs | 46 +++++
.../Order/Request/ConsumeRequest.cs | 2 +-
.../Order/Request/ConsumptionTrendRequest.cs | 2 +-
.../Order/Request/DispositionDeviceRequest.cs | 9 -
.../Order/Request/DispositionDishesDto.cs | 10 -
.../Order/Request/DispositionDishesRequest.cs | 10 -
.../Order/Request/GetConsumeDeviceRequest.cs | 9 +-
.../Order/Request/GetDetailRequest.cs | 8 -
.../Order/Request/GetDishesRequest.cs | 9 -
.../Order/Request/GetMenuRequest.cs | 11 --
.../Request/GetMiniProgramOrderRequest.cs | 8 -
.../Request/OaEMealVoucherDetailRequest.cs | 2 +-
.../Order/Request/OaEMealVoucherRequest.cs | 2 +-
.../Order/Request/OrderPageRequest.cs | 2 +-
.../Order/Request/OrderRequest.cs | 50 -----
.../Order/Request/RechargeRequest.cs | 2 +-
.../Order/Request/SaveDishesRequest.cs | 51 -----
.../Order/Request/SaveMenuRequest.cs | 39 ----
.../Order/Request/SpendingDetailRequest.cs | 2 +-
.../Order/Response/AverageDailyResponse.cs | 39 ++--
.../Response/BalanceRecordAnalysisRespones.cs | 4 +-
.../Order/Response/GetDetailResponse.cs | 106 +++++-----
.../Order/Response/GetDishesResponse.cs | 68 -------
.../Order/Response/GetMenuResponse.cs | 60 ------
.../Response/GetMiniProgramOrderResponse.cs | 187 +++++++++---------
.../Order/Response/OaEMealVoucherResponse.cs | 153 +++++++-------
.../Order/Response/SpendingDetailResponse.cs | 55 +++---
.../Order/Services/IBalanceService.cs | 3 +-
.../Order/Services/IMenuDishesService.cs | 17 --
.../IMiniProgramOrderDetailService.cs | 18 --
.../Order/Services/IOrderService.cs | 16 +-
.../Services/Implements/BalanceService.cs | 169 ++++++----------
.../Services/Implements/MenuDishesService.cs | 74 -------
.../MiniProgramOrderDetailService.cs | 177 -----------------
.../Order/Services/Implements/OrderService.cs | 144 ++++++++++++--
.../Order/TimePeriodExtensions.cs | 2 +-
Src/Dlhis.Canteen/Program.cs | 10 +
.../Implements/CanteenSettingService.cs | 67 ++++---
Src/Dlhis.Canteen/SqlSugarPack.cs | 104 +---------
.../Entities/MiniProgramOrderEntity.cs | 114 -----------
...rDetailsEntity.cs => OrderDetailEntity.cs} | 7 +-
.../Enums/OrderDetailsStatusEnumType.cs | 9 +-
55 files changed, 629 insertions(+), 1476 deletions(-)
delete mode 100644 Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Filters/CheckUserDeviceConsumeAttribute.cs
create mode 100644 Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/DispositionDeviceRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/GetDetailRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/GetDishesRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
delete mode 100644 Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
delete mode 100644 Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
rename Src/Dlhis.Entity/Canteen/Entities/{OrderDetailsEntity.cs => OrderDetailEntity.cs} (84%)
diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
index 796f8e44..317fbe83 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
@@ -1,4 +1,5 @@
-using Dlhis.Canteen.Order.Request;
+using Dlhis.Canteen.Dishes.Request;
+using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Dlhis.Canteen.Order.Services;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
@@ -6,7 +7,7 @@ using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-namespace Dlhis.Canteen.Order.Controllers;
+namespace Dlhis.Canteen.Dishes.Controllers;
///
/// 充值/消费
diff --git a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
deleted file mode 100644
index b6ecc0d5..00000000
--- a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Dlhis.Canteen.Order.Services;
-using Kurisu.Core.DataAccess.Dto;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-
-namespace Dlhis.Canteen.Order.Controllers;
-
-///
-/// 菜单菜品控制器
-///
-[Authorize]
-[Route("api/[controller]")]
-[ApiController]
-public class MenuDishesController : ControllerBase
-{
- private readonly IMenuDishesService _menuDishesService;
-
- public MenuDishesController(IMenuDishesService menuDishesService)
- {
- _menuDishesService = menuDishesService;
- }
-
- ///
- /// 菜单分页
- ///
- ///
- ///
- [HttpGet("pageMenu")]
- public async Task> GetMenuAsync([FromQuery]GetMenuRequest request)
- {
- return await _menuDishesService.GetMenuAsync(request);
- }
-
- ///
- /// 菜单保存/更改
- ///
- ///
- ///
- [HttpPost("saveMenu")]
- public async Task SaveMenuAsync(SaveMenuRequest request)
- {
- await _menuDishesService.SaveMenuAsync(request);
- }
-
- ///
- /// 菜品分页
- ///
- ///
- ///
- [HttpGet("pageDishes")]
- public async Task> GetDishesAsync([FromQuery] GetDishesRequest request)
- {
- return await _menuDishesService.GetDishesAsync(request);
- }
-
- ///
- /// 菜品保存/更改
- ///
- ///
- ///
- [HttpPost("saveDishes")]
- public async Task SaveDishesAsync(SaveDishesRequest request)
- {
- await _menuDishesService.SaveDishesAsync(request);
- }
-
- ///
- /// 配置每日菜单菜品及限售
- ///
- ///
- ///
- [HttpPost("disposition")]
- public async Task DispositionDishesAsync(DispositionDishesRequest request)
- {
- await _menuDishesService.DispositionDishesAsync(request);
- }
-}
-
diff --git a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs b/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
deleted file mode 100644
index e26efc4b..00000000
--- a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Dlhis.Canteen.Order.Services;
-using Kurisu.Core.DataAccess.Dto;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-
-namespace Dlhis.Canteen.Order.Controllers;
-
-///
-///订单/明细控制器
-///
-[Authorize]
-[Route("api/[controller]")]
-[ApiController]
-public class MiniProgramOrderDetailController : ControllerBase
-{
- private readonly IMiniProgramOrderDetailService _miniProgramOrderDetailService;
-
- public MiniProgramOrderDetailController(IMiniProgramOrderDetailService miniProgramOrderDetailService)
- {
- _miniProgramOrderDetailService = miniProgramOrderDetailService;
- }
-
- ///
- /// 订单分页
- ///
- ///
- ///
- [HttpGet("pageOrder")]
- public async Task> GetMiniProgramOrderAsync([FromQuery]GetMiniProgramOrderRequest request)
- {
- return await _miniProgramOrderDetailService.GetMiniProgramOrderAsync(request);
- }
-
-
- ///
- /// 明细保存
- ///
- ///
- ///
- [HttpPost("saveDetail")]
- public async Task SaveDetailAsync(SaveDetailRequest request)
- {
- await _miniProgramOrderDetailService.SaveDetailAsync(request);
- }
-
- ///
- /// 明细分页
- ///
- ///
- ///
- [HttpGet("pageDetail")]
- public async Task> GetDetailAsync([FromQuery] GetDetailRequest request)
- {
- return await _miniProgramOrderDetailService.GetDetailAsync(request);
- }
-
- ///
- /// 下单
- ///
- ///
- [HttpPost("order")]
- public async Task OrderAsync(OrderRequest request)
- {
- await _miniProgramOrderDetailService.OrderAsync(request);
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs b/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
index da3d8d38..9d0f7b96 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
@@ -1,11 +1,13 @@
-using Dlhis.Canteen.Order.Request;
+using Dlhis.Canteen.Dishes.Request;
+using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Dlhis.Canteen.Order.Services;
+using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-namespace Dlhis.Canteen.Order.Controllers;
+namespace Dlhis.Canteen.Dishes.Controllers;
///
/// 订单
@@ -44,4 +46,38 @@ public class OrdersController : ControllerBase
{
return await _orderService.AddAsync(request);
}
+
+ ///
+ /// 设备发起订单
+ ///
+ ///
+ ///
+ [HttpPost("device")]
+ [IgnoreTenant]
+ public async Task DeviceConsume(OrderAddRequest request)
+ {
+ return await _orderService.AddAsync(request);
+ }
+
+
+ ///
+ /// 订餐
+ ///
+ ///
+ [IgnoreTenant]
+ [HttpPost("booking")]
+ public async Task Booking(BookingMealRequest request)
+ {
+ await _orderService.Booking(request);
+ }
+
+ ///
+ /// 充值
+ ///
+ ///
+ [HttpPost("recharge")]
+ public async Task ReCharge()
+ {
+
+ }
}
diff --git a/Src/Dlhis.Canteen/Order/Filters/CheckUserDeviceConsumeAttribute.cs b/Src/Dlhis.Canteen/Order/Filters/CheckUserDeviceConsumeAttribute.cs
deleted file mode 100644
index 8f8cd8a8..00000000
--- a/Src/Dlhis.Canteen/Order/Filters/CheckUserDeviceConsumeAttribute.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-//using Microsoft.AspNetCore.Mvc.Filters;
-
-//namespace Dlhis.Canteen.Order.Filters;
-
-/////
-///// 检查用户设备消费
-/////
-//public class CheckUserDeviceConsumeAttribute : IAsyncActionFilter
-//{
-// public Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
-// {
-
-// }
-//}
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
index ca02c0a9..9fe8e693 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
@@ -1,5 +1,4 @@
using Kurisu.Core.DataAccess.Dto;
-using SqlSugar;
namespace Dlhis.Canteen.Order.Request
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordObsoluteRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordObsoluteRequest.cs
index aa9dba9b..955b7aaa 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordObsoluteRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordObsoluteRequest.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request;
+namespace Dlhis.Canteen.Dishes.Request;
public class BalanceRecordObsoluteRequest
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByCostIdRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByCostIdRequest.cs
index c3660023..5ff829c8 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByCostIdRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByCostIdRequest.cs
@@ -1,7 +1,7 @@
using Kurisu.Core.DataAccess.Dto;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class BalanceRecordPageByCostIdRequest :PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByDeviceUniqueNoRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByDeviceUniqueNoRequest.cs
index ef9f89d1..ff402cb9 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByDeviceUniqueNoRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageByDeviceUniqueNoRequest.cs
@@ -1,7 +1,7 @@
using System.ComponentModel.DataAnnotations;
using Kurisu.Core.DataAccess.Dto;
-namespace Dlhis.Canteen.Order.Request;
+namespace Dlhis.Canteen.Dishes.Request;
public class BalanceRecordPageByDeviceUniqueNoRequest : PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailsRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailsRequest.cs
index 781776a5..597babea 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailsRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailsRequest.cs
@@ -4,7 +4,7 @@ using SqlSugar;
using SqlSugar.DbConvert;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class BalanceRecordPageDetailsRequest : PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs
index a456f22a..aa6b048c 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs
@@ -2,10 +2,8 @@
using System.ComponentModel.DataAnnotations;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.Core.CustomClass;
-using SqlSugar.DbConvert;
-using SqlSugar;
-namespace Dlhis.Canteen.Order.Request;
+namespace Dlhis.Canteen.Dishes.Request;
public class BalanceRecordPageRequest : PageDto, IValidatableObject
{
@@ -17,7 +15,7 @@ public class BalanceRecordPageRequest : PageDto, IValidatableObject
///
/// 餐次
///
- public List ShiftTypes { get; set; }
+ public List ShiftTypes { get; set; }
///
/// 充值/消费
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordSummaryRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordSummaryRequest.cs
index e0c54589..1bd4c913 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordSummaryRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordSummaryRequest.cs
@@ -1,7 +1,7 @@
using Kurisu.Core.DataAccess.Dto;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class BalanceRecordSummaryRequest : PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserPageRequest.cs
index aed5e86e..719f7e3f 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserPageRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserPageRequest.cs
@@ -3,7 +3,7 @@ using Kurisu.Core.CustomClass;
using System.ComponentModel.DataAnnotations;
using Kurisu.Core.DataAccess.Dto;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class BalanceRecordUserPageRequest : PageDto, IValidatableObject
{
diff --git a/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs b/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
new file mode 100644
index 00000000..d9649ab1
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
@@ -0,0 +1,46 @@
+using System.ComponentModel.DataAnnotations;
+using Dlhis.Entity.Canteen.Enums;
+
+namespace Dlhis.Canteen.Dishes.Request;
+
+///
+/// 订餐请求
+///
+public class BookingMealRequest : IValidatableObject
+{
+ ///
+ /// 订餐的日期
+ ///
+ public DateTime BookingDate { get; set; }
+
+ ///
+ /// 营业点/消费地点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
+ ///
+ /// 餐次
+ ///
+ [EnumDataType(typeof(ShiftEnumType))]
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 菜品编码
+ ///
+ [Required(ErrorMessage = "选菜不能为空")]
+ public string DishesCode { get; set; }
+
+ ///
+ /// 消费来源
+ ///
+ [EnumDataType(typeof(BalanceRecordSourceEnumType))]
+ public BalanceRecordSourceEnumType Source { get; set; }
+
+
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ BookingDate = BookingDate.Date;
+
+ yield break;
+ }
+}
diff --git a/Src/Dlhis.Canteen/Order/Request/ConsumeRequest.cs b/Src/Dlhis.Canteen/Order/Request/ConsumeRequest.cs
index 87159bb6..827f4ef7 100644
--- a/Src/Dlhis.Canteen/Order/Request/ConsumeRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/ConsumeRequest.cs
@@ -1,6 +1,6 @@
using Dlhis.Entity.Canteen.Enums;
-namespace Dlhis.Canteen.Order.Request;
+namespace Dlhis.Canteen.Dishes.Request;
public class ConsumeRequest
{
diff --git a/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs b/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs
index 7f223506..d87a3ff3 100644
--- a/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs
@@ -1,7 +1,7 @@
using Dlhis.Entity.Canteen.Enums;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class ConsumptionTrendRequest
{
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDeviceRequest.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDeviceRequest.cs
deleted file mode 100644
index aa76e8c5..00000000
--- a/Src/Dlhis.Canteen/Order/Request/DispositionDeviceRequest.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Dlhis.Canteen.Order.Request
-{
- public class DispositionDeviceRequest
- {
- public string PlaceCode { get; set; }
-
- public List UniqueNos { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
deleted file mode 100644
index c2abba2b..00000000
--- a/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Dlhis.Canteen.Order.Request
-{
- public class DispositionDishesDto
- {
- public string DisherCode { get; set; }
-
- public int RestrictedNum { get; set; }
-
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
deleted file mode 100644
index 070e8c42..00000000
--- a/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Dlhis.Canteen.Order.Request
-{
- public class DispositionDishesRequest
- {
- public Guid MenudCode { get; set; }
-
- public List DishersDtos { get; set; }
-
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetConsumeDeviceRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetConsumeDeviceRequest.cs
index ee74d2fb..03407004 100644
--- a/Src/Dlhis.Canteen/Order/Request/GetConsumeDeviceRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/GetConsumeDeviceRequest.cs
@@ -1,9 +1,8 @@
using Kurisu.Core.DataAccess.Dto;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request;
+
+public class GetConsumeDeviceRequest : PageDto
{
- public class GetConsumeDeviceRequest : PageDto
- {
- public bool IsOff { get; set; }
- }
+ public bool IsOff { get; set; }
}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetDetailRequest.cs
deleted file mode 100644
index 797deff3..00000000
--- a/Src/Dlhis.Canteen/Order/Request/GetDetailRequest.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Kurisu.Core.DataAccess.Dto;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class GetDetailRequest : PageDto
- {
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetDishesRequest.cs
deleted file mode 100644
index 6f741793..00000000
--- a/Src/Dlhis.Canteen/Order/Request/GetDishesRequest.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Kurisu.Core.DataAccess.Dto;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class GetDishesRequest : PageDto
- {
- public Guid? MenuCode { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
deleted file mode 100644
index 8f9c6b55..00000000
--- a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Kurisu.Core.DataAccess.Dto;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class GetMenuRequest : PageDto
- {
- public Guid? PlaceCode { get; set; }
-
- public string Factory { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
deleted file mode 100644
index dbbbdea8..00000000
--- a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Kurisu.Core.DataAccess.Dto;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class GetMiniProgramOrderRequest : PageDto
- {
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs
index 1a4d504b..75ce0571 100644
--- a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs
@@ -1,6 +1,6 @@
using Kurisu.Core.DataAccess.Dto;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class OaEMealVoucherDetailRequest : PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs
index a77865a7..ae1ffa86 100644
--- a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs
@@ -2,7 +2,7 @@
using Kurisu.Core.DataAccess.Dto;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request
+namespace Dlhis.Canteen.Dishes.Request
{
public class OaEMealVoucherRequest : PageDto
{
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderPageRequest.cs
index 95374cfa..ad268044 100644
--- a/Src/Dlhis.Canteen/Order/Request/OrderPageRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OrderPageRequest.cs
@@ -4,5 +4,5 @@ namespace Dlhis.Canteen.Order.Request;
public class OrderPageRequest : PageDto
{
-
+
}
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
deleted file mode 100644
index a8bfac36..00000000
--- a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class OrderRequest
- {
-
- ///
- /// 订餐人
- ///
- public string UserCode { get; set; }
-
- ///
- /// 食堂
- ///
- public Guid PlaceCode { get; set; }
-
- ///
- /// 餐次
- ///
- public ShiftEnumType ShiftType { get; set; }
-
- ///
- /// 配送地址
- ///
- public string Address { get; set; }
-
- ///
- /// 菜单
- ///
- public Guid MenuCode { get; set; }
-
- ///
- /// 菜品
- ///
- public string DishesCode { get; set; }
-
- ///
- /// 数量
- ///
- public int DishesNum { get; set; } = 1;
-
- ///
- /// 支付方式
- ///
- public BalanceRecordSourceEnumType PayType { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/RechargeRequest.cs b/Src/Dlhis.Canteen/Order/Request/RechargeRequest.cs
index 0d4c8a7a..1c0c5063 100644
--- a/Src/Dlhis.Canteen/Order/Request/RechargeRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/RechargeRequest.cs
@@ -1,7 +1,7 @@
using Dlhis.Entity.Canteen.Enums;
using System.ComponentModel.DataAnnotations;
-namespace Dlhis.Canteen.Order.Request;
+namespace Dlhis.Canteen.Dishes.Request;
public class RechargeRequest
{
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
deleted file mode 100644
index 1e6ac4a3..00000000
--- a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace Dlhis.Canteen.Order.Request;
-
-public class SaveDishesRequest
-{
- public long? Id { get; set; }
-
- ///
- /// 大类
- ///
- public string PCategory { get; set; }
-
- /// `
- /// 小类
- ///
- [Required]
- public string Category { get; set; }
-
- ///
- /// 菜品名称
- ///
- [Required]
- public string Name { get; set; }
-
-
- [Required]
- public string CustomCode { get; set; }
-
- ///
- /// 描述
- ///
- public string Description { get; set; }
-
- ///
- /// 单价
- ///
- [Range(0, 10000)]
- public decimal Price { get; set; }
-
-
- ///
- /// 图片
- ///
- public string ImageUrl { get; set; }
-
- ///
- /// 是否启用
- ///
- public bool Enable { get; set; }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
deleted file mode 100644
index 079707c4..00000000
--- a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using System.ComponentModel.DataAnnotations;
-
-namespace Dlhis.Canteen.Order.Request;
-
-public class SaveMenuRequest : IValidatableObject
-{
- ///
- /// 所属营业点
- ///
- public Guid PlaceCode { get; set; }
-
- ///
- /// 菜单名称
- ///
- public string Name { get; set; }
-
-
-
-
- ///
- /// 营业日期,不能小于等于当天
- ///
- public DateTime Date { get; set; }
-
-
- ///
- /// 餐次段
- ///
- public ShiftEnumType ShiftType { get; set; }
-
-
-
-
- public IEnumerable Validate(ValidationContext validationContext)
- {
- throw new NotImplementedException();
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/SpendingDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/SpendingDetailRequest.cs
index fcdcff5f..497fe859 100644
--- a/Src/Dlhis.Canteen/Order/Request/SpendingDetailRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/SpendingDetailRequest.cs
@@ -2,7 +2,7 @@
namespace Dlhis.Canteen.Order.Request
{
- public class SpendingDetailRequest:PageDto
+ public class SpendingDetailRequest : PageDto
{
}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs b/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
index 92541825..e16606a0 100644
--- a/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
@@ -1,25 +1,24 @@
-namespace Dlhis.Canteen.Order.Response
+namespace Dlhis.Canteen.Order.Response;
+
+public class AverageDailyResponse
{
- public class AverageDailyResponse
- {
- ///
- /// 档案号/QRCode
- ///
- public string UserNo { get; set; }
+ ///
+ /// 档案号/QRCode
+ ///
+ public string UserNo { get; set; }
- ///
- /// 姓名
- ///
- public string Name { get; set; }
+ ///
+ /// 姓名
+ ///
+ public string Name { get; set; }
- ///
- /// 学工号
- ///
- public string UserCode { get; set; }
+ ///
+ /// 学工号
+ ///
+ public string UserCode { get; set; }
- ///
- /// 日消费均额
- ///
- public int AverageAmount { get; set; }
- }
+ ///
+ /// 日消费均额
+ ///
+ public int AverageAmount { get; set; }
}
diff --git a/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisRespones.cs b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisRespones.cs
index 885c9684..e9e6ccb6 100644
--- a/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisRespones.cs
+++ b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisRespones.cs
@@ -1,6 +1,4 @@
-using SqlSugar;
-
-namespace Dlhis.Canteen.Order.Response
+namespace Dlhis.Canteen.Order.Response
{
public class BalanceRecordAnalysisRespones
{
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
index 0017a076..956a1ac6 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
@@ -1,71 +1,67 @@
using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
using Kurisu.AspNetCore.Utils.Extensions;
-namespace Dlhis.Canteen.Order.Response
+namespace Dlhis.Canteen.Order.Response;
+
+public class GetDetailResponse
{
- public class GetDetailResponse
- {
- ///
- /// 订单号
- ///
- public string ThirdNo { get; set; }
+ ///
+ /// 订单号
+ ///
+ public string ThirdNo { get; set; }
- ///
- /// 营业日
- ///
- public DateOnly SysDate { get; set; }
+ ///
+ /// 营业日
+ ///
+ public DateOnly SysDate { get; set; }
- ///
- /// 餐次
- ///
- public ShiftEnumType ShiftType { get; set; }
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
- ///
- /// 餐次CN
- ///
- public string ShiftTypeCN => ShiftType.GetDescription();
+ ///
+ /// 餐次CN
+ ///
+ public string ShiftTypeCN => ShiftType.GetDescription();
- ///
- /// 菜品编码
- ///
- public Guid DishesCode { get; set; }
+ ///
+ /// 菜品编码
+ ///
+ public Guid DishesCode { get; set; }
- ///
- /// 菜品名称
- ///
- public string DishesName { get; set; }
+ ///
+ /// 菜品名称
+ ///
+ public string DishesName { get; set; }
- ///
- /// 单价
- ///
- public decimal Price { get; set; }
+ ///
+ /// 单价
+ ///
+ public decimal Price { get; set; }
- ///
- /// 单位
- ///
- public string Unit { get; set; }
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; }
- ///
- /// 数量
- ///
- public int Num { get; set; }
+ ///
+ /// 数量
+ ///
+ public int Num { get; set; }
- ///
- /// 金额
- ///
- public decimal Amount { get; set; }
+ ///
+ /// 金额
+ ///
+ public decimal Amount { get; set; }
- ///
- /// 订单明细状态
- ///
- public OrderDetailsStatusEnumType OrderStatus { get; set; }
-
- ///
- /// 订单明细状态CN
- ///
- public string OrderStatusCN => OrderStatus.GetDescription();
- }
+ ///
+ /// 订单明细状态
+ ///
+ public OrderDetailsStatusEnumType OrderStatus { get; set; }
+ ///
+ /// 订单明细状态CN
+ ///
+ public string OrderStatusCN => OrderStatus.GetDescription();
}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
deleted file mode 100644
index 4705e15f..00000000
--- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.AspNetCore.Utils.Extensions;
-
-namespace Dlhis.Canteen.Order.Response
-{
- public class GetDishesResponse
- {
- ///
- /// 大类
- ///
- public string Categories { get; set; }
-
- ///
- /// 小类
- ///
- public string SubCategories { get; set; }
-
- ///
- /// 菜品编码
- ///
- public string Code { get; set; }
-
- ///
- /// 菜品名称
- ///
- public string Name { get; set; }
-
- ///
- /// 菜品类型
- ///
- public CanteenMenuEnumType Type { get; set; }
-
- ///
- /// 菜品类型描述
- ///
- public string TypeDescription => Type.GetDescription();
-
- ///
- /// 描述
- ///
- public string Description { get; set; }
-
- ///
- /// 单价
- ///
- public decimal Amount { get; set; }
-
- ///
- /// 单位
- ///
- public string Unit { get; set; }
-
- ///
- /// 图片
- ///
- public string Image { get; set; }
-
- ///
- /// 是否启用
- ///
- public bool Enable { get; set; }
-
- ///
- /// 限售份数
- ///
- public int? RestrictedNum { get; set; } = null;
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
deleted file mode 100644
index 111e0ecb..00000000
--- a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.AspNetCore.Utils.Extensions;
-
-namespace Dlhis.Canteen.Order.Response
-{
- public class GetMenuResponse
- {
-
- ///
- /// 菜单编码
- ///
- public Guid Code { get; set; }
-
- ///
- /// 菜单名称
- ///
- public string Name { get; set; }
-
- ///
- /// 所属营业点
- ///
- public Guid PlaceCode { get; set; }
-
- ///
- /// 所属营业点名称
- ///
- public string PlaceName { get; set; }
-
- ///
- /// 厂区
- ///
- public string Factory { get; set; }
-
- ///
- /// 营业日期
- ///
- public DateOnly StartDate { get; set; }
-
-
- ///
- /// 餐次段
- ///
- public List ShiftTypes
- {
- get
- {
- if (ShiftTypesSrt.IsEmpty()) ShiftTypesSrt = "[]";
-
- return ShiftTypesSrt.ToObject>();
- }
- }
-
- public string ShiftTypesSrt { get; set; }
-
- ///
- /// 是否启用
- ///
- public bool Enable { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
index bb4f4fbc..37998819 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
@@ -1,101 +1,99 @@
using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
using Kurisu.AspNetCore.Utils.Extensions;
-namespace Dlhis.Canteen.Order.Response
+namespace Dlhis.Canteen.Order.Response;
+
+public class GetMiniProgramOrderResponse
{
- public class GetMiniProgramOrderResponse
- {
- ///
- /// 订单号
- ///
- public string No { get; set; }
+ ///
+ /// 订单号
+ ///
+ public string No { get; set; }
- ///
- /// 姓名
- ///
- public string Name { get; set; }
+ ///
+ /// 姓名
+ ///
+ public string Name { get; set; }
- ///
- /// 工号
- ///
- public string Code { get; set; }
+ ///
+ /// 工号
+ ///
+ public string Code { get; set; }
- ///
- /// 人事范围
- ///
- public string Werks { get; set; }
+ ///
+ /// 人事范围
+ ///
+ public string Werks { get; set; }
- ///
- /// 部门编码
- ///
- public string DepartmentNo { get; set; }
+ ///
+ /// 部门编码
+ ///
+ public string DepartmentNo { get; set; }
- ///
- /// 部门名称
- ///
- public string DepartmentName { get; set; }
+ ///
+ /// 部门名称
+ ///
+ public string DepartmentName { get; set; }
- ///
- /// 成本中心
- ///
- public string CostId { get; set; }
+ ///
+ /// 成本中心
+ ///
+ public string CostId { get; set; }
- ///
- /// 工作地
- ///
- public string Workplace { get; set; }
+ ///
+ /// 工作地
+ ///
+ public string Workplace { get; set; }
- ///
- /// 厂区
- ///
- public string Factory { get; set; }
+ ///
+ /// 厂区
+ ///
+ public string Factory { get; set; }
- ///
- /// 营业点
- ///
- public Guid PlaceCode { get; set; }
+ ///
+ /// 营业点
+ ///
+ public Guid PlaceCode { get; set; }
- ///
- /// 营业名称
- ///
- public string PlaceName { get; set; }
+ ///
+ /// 营业名称
+ ///
+ public string PlaceName { get; set; }
- ///
- /// 餐次
- ///
- public ShiftEnumType ShiftType { get; set; }
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
- ///
- /// 餐次CN
- ///
- public string ShiftTypeCN => ShiftType.GetDescription();
+ ///
+ /// 餐次CN
+ ///
+ public string ShiftTypeCN => ShiftType.GetDescription();
- ///
- /// 菜品
- ///
- public Guid DishesCode { get; set; }
+ ///
+ /// 菜品
+ ///
+ public Guid DishesCode { get; set; }
- ///
- /// 菜品名称
- ///
- public string DishesName { get; set; }
+ ///
+ /// 菜品名称
+ ///
+ public string DishesName { get; set; }
- ///
- /// 手机号码
- ///
- public string Phone { get; set; }
+ ///
+ /// 手机号码
+ ///
+ public string Phone { get; set; }
- ///
- /// 用餐日期
- ///
- public DateOnly SysDate { get; set; }
+ ///
+ /// 用餐日期
+ ///
+ public DateOnly SysDate { get; set; }
- ///
- /// 下单时间
- ///
- public DateTime CostDate { get; set; }
+ ///
+ /// 下单时间
+ ///
+ public DateTime CostDate { get; set; }
///
/// 支付方式
@@ -112,25 +110,24 @@ namespace Dlhis.Canteen.Order.Response
///
public MiniProgramOrderStatusEnumType OrderStatus { get; set; }
- ///
- /// 订单状态CN
- ///
- public string OrderStatusCN => OrderStatus.GetDescription();
+ ///
+ /// 订单状态CN
+ ///
+ public string OrderStatusCN => OrderStatus.GetDescription();
- ///
- /// 订单类型
- ///
- public CanteenMenuEnumType OrderType { get; set; }
+ ///
+ /// 订单类型
+ ///
+ public CanteenMenuEnumType OrderType { get; set; }
- ///
- /// 订单类型CN
- ///
- public string OrderTypeCN => OrderType.GetDescription();
+ ///
+ /// 订单类型CN
+ ///
+ public string OrderTypeCN => OrderType.GetDescription();
+
+ ///
+ /// 总金额
+ ///
+ public decimal TotalAmount { get; set; }
- ///
- /// 总金额
- ///
- public decimal TotalAmount { get; set; }
-
-}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/OaEMealVoucherResponse.cs b/Src/Dlhis.Canteen/Order/Response/OaEMealVoucherResponse.cs
index 32ceaeb3..d21260fd 100644
--- a/Src/Dlhis.Canteen/Order/Response/OaEMealVoucherResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/OaEMealVoucherResponse.cs
@@ -1,100 +1,97 @@
-using SqlSugar;
+namespace Dlhis.Canteen.Order.Response;
-namespace Dlhis.Canteen.Order.Response
+public class OaEMealVoucherResponse
{
- public class OaEMealVoucherResponse
- {
- public long Id { get; set; }
+ public long Id { get; set; }
- ///
- /// 标题
- ///
- public string Title { get; set; }
+ ///
+ /// 标题
+ ///
+ public string Title { get; set; }
- ///
- /// 申请人工号
- ///
- public string UserCode { get; set; }
+ ///
+ /// 申请人工号
+ ///
+ public string UserCode { get; set; }
- ///
- /// 申请人名称
- ///
- public string Name { get; set; }
+ ///
+ /// 申请人名称
+ ///
+ public string Name { get; set; }
- ///
- /// 基地代码
- ///
- public string TenantId { get; set; }
+ ///
+ /// 基地代码
+ ///
+ public string TenantId { get; set; }
- ///
- /// 基地名称
- ///
- public string TenantName { get; set; }
+ ///
+ /// 基地名称
+ ///
+ public string TenantName { get; set; }
- ///
- /// 成本中心
- ///
- public string CostId { get; set; }
+ ///
+ /// 成本中心
+ ///
+ public string CostId { get; set; }
- ///
- /// 成本中心名称
- ///
- public string CostName { get; set; }
+ ///
+ /// 成本中心名称
+ ///
+ public string CostName { get; set; }
- ///
- /// 来宾公司
- ///
- public string Company { get; set; }
+ ///
+ /// 来宾公司
+ ///
+ public string Company { get; set; }
- ///
- /// 联系人
- ///
- public string Phone { get; set; }
+ ///
+ /// 联系人
+ ///
+ public string Phone { get; set; }
- ///
- /// 来宾人数
- ///
- public int Num { get; set; }
+ ///
+ /// 来宾人数
+ ///
+ public int Num { get; set; }
- ///
- /// 就餐食堂
- ///
- public string Canteen { get; set; }
+ ///
+ /// 就餐食堂
+ ///
+ public string Canteen { get; set; }
- ///
- /// 就餐事由
- ///
- public string Reason { get; set; }
+ ///
+ /// 就餐事由
+ ///
+ public string Reason { get; set; }
- ///
- /// 就餐次
- ///
- public string CanteenShift { get; set; }
+ ///
+ /// 就餐次
+ ///
+ public string CanteenShift { get; set; }
- ///
- /// oa流程id
- ///
- public string OaId { get; set; }
+ ///
+ /// oa流程id
+ ///
+ public string OaId { get; set; }
- ///
- /// 部门号
- ///
- public string DepartmentNo { get; set; }
+ ///
+ /// 部门号
+ ///
+ public string DepartmentNo { get; set; }
- ///
- /// 部门名称
- ///
- public string DepartmentName { get; set; }
+ ///
+ /// 部门名称
+ ///
+ public string DepartmentName { get; set; }
- ///
- /// 申请日期
- ///
- public DateTime LogDate { get; set; }
+ ///
+ /// 申请日期
+ ///
+ public DateTime LogDate { get; set; }
- ///
- /// 数据创建时间
- ///
- public DateTime CreateTime { get; set; }
- }
+ ///
+ /// 数据创建时间
+ ///
+ public DateTime CreateTime { get; set; }
}
diff --git a/Src/Dlhis.Canteen/Order/Response/SpendingDetailResponse.cs b/Src/Dlhis.Canteen/Order/Response/SpendingDetailResponse.cs
index 8ad95ac5..c81f720a 100644
--- a/Src/Dlhis.Canteen/Order/Response/SpendingDetailResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/SpendingDetailResponse.cs
@@ -1,38 +1,35 @@
-using SqlSugar;
+namespace Dlhis.Canteen.Order.Response;
-namespace Dlhis.Canteen.Order.Response
+public class SpendingDetailResponse
{
- public class SpendingDetailResponse
- {
- ///
- /// 档案号/QRCode
- ///
- public string UserNo { get; set; }
+ ///
+ /// 档案号/QRCode
+ ///
+ public string UserNo { get; set; }
- ///
- /// 姓名
- ///
- public string Name { get; set; }
+ ///
+ /// 姓名
+ ///
+ public string Name { get; set; }
- ///
- /// 学工号
- ///
- public string UserCode { get; set; }
+ ///
+ /// 学工号
+ ///
+ public string UserCode { get; set; }
- ///
- /// 部门号
- ///
- public string DepartmentNo { get; set; }
+ ///
+ /// 部门号
+ ///
+ public string DepartmentNo { get; set; }
- ///
- /// 成本中心
- ///
- public string CostId { get; set; }
+ ///
+ /// 成本中心
+ ///
+ public string CostId { get; set; }
- ///
- /// 消费者所在基地
- ///
- public string OriginTenantId { get; set; }
+ ///
+ /// 消费者所在基地
+ ///
+ public string OriginTenantId { get; set; }
- }
}
diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
index d7d55ca4..dfe66e07 100644
--- a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
@@ -1,4 +1,5 @@
-using Dlhis.Canteen.Order.Request;
+using Dlhis.Canteen.Dishes.Request;
+using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Mvc;
diff --git a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
deleted file mode 100644
index 025f0325..00000000
--- a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Kurisu.Core.DataAccess.Dto;
-
-namespace Dlhis.Canteen.Order.Services
-{
- public interface IMenuDishesService :IScopeDependency
- {
- Task> GetMenuAsync(GetMenuRequest request);
-
- Task SaveMenuAsync(SaveMenuRequest request);
-
- Task> GetDishesAsync(GetDishesRequest request);
-
- Task SaveDishesAsync(SaveDishesRequest request);
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
deleted file mode 100644
index 7bb8394d..00000000
--- a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Kurisu.Core.DataAccess.Dto;
-using Microsoft.AspNetCore.Mvc;
-
-namespace Dlhis.Canteen.Order.Services
-{
- public interface IMiniProgramOrderDetailService : IScopeDependency
- {
- Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request);
-
- Task SaveDetailAsync(SaveDetailRequest request);
-
- Task> GetDetailAsync( GetDetailRequest request);
-
- Task OrderAsync(OrderRequest request);
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Services/IOrderService.cs b/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
index d3bfb5d2..f78863cb 100644
--- a/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
@@ -1,4 +1,5 @@
-using Dlhis.Canteen.Order.Request;
+using Dlhis.Canteen.Dishes.Request;
+using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Kurisu.Core.DataAccess.Dto;
@@ -10,4 +11,17 @@ public interface IOrderService : IScopeDependency
Task AddAsync(OrderAddRequest request);
+ ///
+ /// 设备消费
+ ///
+ ///
+ ///
+ Task DeviceConsume(OrderAddRequest request);
+
+ ///
+ /// 订餐
+ ///
+ ///
+ ///
+ Task Booking(BookingMealRequest request);
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
index e5748cef..f216236b 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
@@ -1,4 +1,5 @@
-using Dlhis.Canteen.Order.Request;
+using Dlhis.Canteen.Dishes.Request;
+using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Canteen.Entities;
@@ -9,12 +10,10 @@ using Dlhis.Sys.Api;
using Kurisu.AspNetCore.UnifyResultAndValidation;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
-using Kurisu.Core.DataAccess.Entity;
using Kurisu.Core.User.Abstractions;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
-using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace Dlhis.Canteen.Order.Services.Implements;
@@ -26,7 +25,7 @@ public class BalanceService : IBalanceService
private readonly ILogger _logger;
private readonly ITenantApi _tenantApi;
- public BalanceService(IDbContext dbContext, ICurrentUser currentUser, ILogger logger ,ITenantApi tenantApi)
+ public BalanceService(IDbContext dbContext, ICurrentUser currentUser, ILogger logger, ITenantApi tenantApi)
{
_dbContext = dbContext;
_currentUser = currentUser;
@@ -41,18 +40,17 @@ public class BalanceService : IBalanceService
.LeftJoin((record, ga, department) => ga.DepartmentNo == department.No)
.LeftJoin((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code)
.LeftJoin((record, ga, department, bplace, bshift) => record.BusinessShiftCode == bshift.Code)
- .LeftJoin((record, ga, department, bplace, bshift, type) => record.ShiftType == type.Code && type.Type == "mealshift")
.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.BusinessplaceCodes.IsPresent(), record => request.BusinessplaceCodes.Contains(record.BusinessPlaceCode))
.WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType))
- .WhereIF(request.Type.HasValue,record => record.Type == request.Type)
+ .WhereIF(request.Type.HasValue, record => record.Type == request.Type)
.WhereIF(request.Search.IsPresent(), (record, ga) =>
ga.Name.Contains(request.Search)
|| ga.Code.Contains(request.Search)
)
.OrderBy(record => record.CreateTime, OrderByType.Desc)
- .Select((record, ga, department, bplace, bshift, type) => new BalanceRecordResponse
+ .Select((record, ga, department, bplace, bshift) => new BalanceRecordResponse
{
Id = record.Id,
Amount = record.Amount,
@@ -61,7 +59,7 @@ public class BalanceService : IBalanceService
CostDate = record.CostDate,
CostId = record.CostId,
DepartmentNo = record.DepartmentNo,
- DeviceInfo = record.DeviceInfo,
+ DeviceInfo = record.DeviceUniqueNo,
IP = record.IP,
UserNo = record.UserNo,
UserCode = record.UserCode,
@@ -75,7 +73,7 @@ public class BalanceService : IBalanceService
Name = record.Name,
DepartmentName = department.Name,
BusinessPlaceName = bplace.Name,
- BusinessShiftName = type.Display,
+ BusinessShiftName = bshift.Name,
CostDateTime = record.CostDateTime,
TenantId = record.TenantId,
})
@@ -109,8 +107,6 @@ public class BalanceService : IBalanceService
///
public async Task> RecordByCostIdAsync(BalanceRecordPageByCostIdRequest request)
{
- var shiftCodeDict = await GetShiftCode();
-
var paeginfos = await _dbContext.Queryable()
.WhereIF(!request.UserCode.IsEmpty(), record => record.UserCode == request.UserCode)
.WhereIF(!request.DepartmentNo.IsEmpty(), record => record.DepartmentNo == request.DepartmentNo)
@@ -132,24 +128,24 @@ public class BalanceService : IBalanceService
};
// 所有人次
- var BreakfastNumberOfPeople = costIdGroup.Count(x => x.ShiftType == shiftCodeDict["Breakfast"]);
+ var BreakfastNumberOfPeople = costIdGroup.Count(x => x.ShiftType == ShiftEnumType.Breakfast);
- var LunchNumberOfPeople = costIdGroup.Count(x => x.ShiftType == shiftCodeDict["Lunch"]);
+ var LunchNumberOfPeople = costIdGroup.Count(x => x.ShiftType == ShiftEnumType.Lunch);
- var DinnerNumberOfPeople = costIdGroup.Count(x => x.ShiftType == shiftCodeDict["Dinner"]);
+ var DinnerNumberOfPeople = costIdGroup.Count(x => x.ShiftType == ShiftEnumType.Dinner);
- var LateNightNumberOfPeople = costIdGroup.Count(x => x.ShiftType == shiftCodeDict["LateNight"]);
+ var LateNightNumberOfPeople = costIdGroup.Count(x => x.ShiftType == ShiftEnumType.Nightsnack);
// 每个餐次人数
- obj.BreakfastNumberOfPeople = costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Select(x => x.UserNo).Distinct().Count();
- obj.LunchNumberOfPeople = costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Select(x => x.UserNo).Distinct().Count();
- obj.DinnerNumberOfPeople = costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Select(x => x.UserNo).Distinct().Count();
- obj.LateNightNumberOfPeople = costIdGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Select(x => x.UserNo).Distinct().Count();
+ obj.BreakfastNumberOfPeople = costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Select(x => x.UserNo).Distinct().Count();
+ obj.LunchNumberOfPeople = costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Select(x => x.UserNo).Distinct().Count();
+ obj.DinnerNumberOfPeople = costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Select(x => x.UserNo).Distinct().Count();
+ obj.LateNightNumberOfPeople = costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Select(x => x.UserNo).Distinct().Count();
//餐次金额
- obj.BreakfastAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Sum(x => x.Amount));
- obj.LunchAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Sum(x => x.Amount));
- obj.DinnerAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Sum(x => x.Amount));
- obj.LateNightAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Sum(x => x.Amount));
+ obj.BreakfastAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Sum(x => x.Amount));
+ obj.LunchAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Sum(x => x.Amount));
+ obj.DinnerAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Sum(x => x.Amount));
+ obj.LateNightAmount = Math.Abs(costIdGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Sum(x => x.Amount));
// 每个餐次单价
@@ -210,7 +206,7 @@ public class BalanceService : IBalanceService
CostDate = record.CostDate,
CostId = record.CostId,
DepartmentNo = record.DepartmentNo,
- DeviceInfo = record.DeviceInfo,
+ DeviceInfo = record.DeviceUniqueNo,
IP = record.IP,
UserNo = record.UserNo,
UserCode = record.UserCode,
@@ -242,8 +238,6 @@ public class BalanceService : IBalanceService
///
public async Task> BalanceRecordSummaryByNoAsync(BalanceRecordSummaryRequest request)
{
- var shiftCodeDict = await GetShiftCode();
-
var paeginfos = await _dbContext.Queryable()
.WhereIF(!request.DepartmentNo.IsEmpty(), record => record.DepartmentNo == request.DepartmentNo)
.WhereIF(!request.UserCode.IsEmpty(), record => record.UserCode == request.UserCode)
@@ -267,24 +261,24 @@ public class BalanceService : IBalanceService
OriginTenantId = ""
};
// 所有人次
- var BreakfastNumberOfPeople = departmentGroup.Count(x => x.ShiftType == shiftCodeDict["Breakfast"]);
+ var BreakfastNumberOfPeople = departmentGroup.Count(x => x.ShiftType == ShiftEnumType.Breakfast);
- var LunchNumberOfPeople = departmentGroup.Count(x => x.ShiftType == shiftCodeDict["Lunch"]);
+ var LunchNumberOfPeople = departmentGroup.Count(x => x.ShiftType == ShiftEnumType.Lunch);
- var DinnerNumberOfPeople = departmentGroup.Count(x => x.ShiftType == shiftCodeDict["Dinner"]);
+ var DinnerNumberOfPeople = departmentGroup.Count(x => x.ShiftType == ShiftEnumType.Dinner);
- var LateNightNumberOfPeople = departmentGroup.Count(x => x.ShiftType == shiftCodeDict["LateNight"]);
+ var LateNightNumberOfPeople = departmentGroup.Count(x => x.ShiftType == ShiftEnumType.Nightsnack);
//每个餐次人数
- obj.BreakfastNumberOfPeople = departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Select(x => x.UserNo).Distinct().Count();
- obj.LunchNumberOfPeople = departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Select(x => x.UserNo).Distinct().Count();
- obj.DinnerNumberOfPeople = departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Select(x => x.UserNo).Distinct().Count();
- obj.LateNightNumberOfPeople = departmentGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Select(x => x.UserNo).Distinct().Count();
+ obj.BreakfastNumberOfPeople = departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Select(x => x.UserNo).Distinct().Count();
+ obj.LunchNumberOfPeople = departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Select(x => x.UserNo).Distinct().Count();
+ obj.DinnerNumberOfPeople = departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Select(x => x.UserNo).Distinct().Count();
+ obj.LateNightNumberOfPeople = departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Select(x => x.UserNo).Distinct().Count();
//餐次金额
- obj.BreakfastAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Sum(x => x.Amount));
- obj.LunchAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Sum(x => x.Amount));
- obj.DinnerAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Sum(x => x.Amount));
- obj.LateNightAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Sum(x => x.Amount));
+ obj.BreakfastAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Sum(x => x.Amount));
+ obj.LunchAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Sum(x => x.Amount));
+ obj.DinnerAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Sum(x => x.Amount));
+ obj.LateNightAmount = Math.Abs(departmentGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Sum(x => x.Amount));
// 每个餐次单价
obj.BreakfastPrice = BreakfastNumberOfPeople == 0 ? 0 : Math.Round(obj.BreakfastAmount / BreakfastNumberOfPeople, 2);
@@ -326,8 +320,6 @@ public class BalanceService : IBalanceService
///
public async Task> BalanceRecordSummaryByTidAsync(BalanceRecordSummaryRequest request)
{
- var shiftCodeDict = await GetShiftCode();
-
var paeginfos = await _dbContext.Queryable()
.WhereIF(!request.DepartmentNo.IsEmpty(), record => record.DepartmentNo == request.DepartmentNo)
.WhereIF(!request.UserCode.IsEmpty(), record => record.UserCode == request.UserCode)
@@ -352,24 +344,21 @@ public class BalanceService : IBalanceService
};
// 所有人次
- var BreakfastNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == shiftCodeDict["Breakfast"]);
-
- var LunchNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == shiftCodeDict["Lunch"]);
-
- var DinnerNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == shiftCodeDict["Dinner"]);
-
- var LateNightNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == shiftCodeDict["LateNight"]);
+ var BreakfastNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == ShiftEnumType.Breakfast);
+ var LunchNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == ShiftEnumType.Lunch);
+ var DinnerNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == ShiftEnumType.Dinner);
+ var LateNightNumberOfPeople = originTenantIdGroup.Count(x => x.ShiftType == ShiftEnumType.Nightsnack);
//每个餐次人数
- obj.BreakfastNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Select(x => x.UserNo).Distinct().Count();
- obj.LunchNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Select(x => x.UserNo).Distinct().Count();
- obj.DinnerNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Select(x => x.UserNo).Distinct().Count();
- obj.LateNightNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Select(x => x.UserNo).Distinct().Count();
+ obj.BreakfastNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Select(x => x.UserNo).Distinct().Count();
+ obj.LunchNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Select(x => x.UserNo).Distinct().Count();
+ obj.DinnerNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Select(x => x.UserNo).Distinct().Count();
+ obj.LateNightNumberOfPeople = originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Select(x => x.UserNo).Distinct().Count();
//餐次金额
- obj.BreakfastAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Sum(x => x.Amount));
- obj.LunchAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Sum(x => x.Amount));
- obj.DinnerAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Sum(x => x.Amount));
- obj.LateNightAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Sum(x => x.Amount));
+ obj.BreakfastAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Sum(x => x.Amount));
+ obj.LunchAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Lunch).Sum(x => x.Amount));
+ obj.DinnerAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Dinner).Sum(x => x.Amount));
+ obj.LateNightAmount = Math.Abs(originTenantIdGroup.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Sum(x => x.Amount));
// 每个餐次单价
@@ -405,9 +394,6 @@ public class BalanceService : IBalanceService
///
public async Task> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request)
{
- var shiftCodeDict = await GetShiftCode();
-
-
var pageinfo = await _dbContext.Queryable()
.WhereIF(request.StartDatetime.HasValue, record => record.CostDateTime >= request.StartDatetime)
.WhereIF(request.EndDatetime.HasValue, record => record.CostDateTime <= request.EndDatetime)
@@ -424,13 +410,13 @@ public class BalanceService : IBalanceService
};
//每个餐次人数
- obj.BreakfastNumberOfPeople = first.Where(x => x.ShiftType == shiftCodeDict["Breakfast"]).Select(x => x.UserNo).Distinct().Count();
- obj.LunchNumberOfPeople = first.Where(x => x.ShiftType == shiftCodeDict["Lunch"]).Select(x => x.UserNo).Distinct().Count();
- obj.DinnerNumberOfPeople = first.Where(x => x.ShiftType == shiftCodeDict["Dinner"]).Select(x => x.UserNo).Distinct().Count();
- obj.LateNightNumberOfPeople = first.Where(x => x.ShiftType == shiftCodeDict["LateNight"]).Select(x => x.UserNo).Distinct().Count();
+ obj.BreakfastNumberOfPeople = first.Where(x => x.ShiftType == ShiftEnumType.Breakfast).Select(x => x.UserNo).Distinct().Count();
+ obj.LunchNumberOfPeople = first.Where(x => x.ShiftType == ShiftEnumType.Lunch).Select(x => x.UserNo).Distinct().Count();
+ obj.DinnerNumberOfPeople = first.Where(x => x.ShiftType == ShiftEnumType.Lunch).Select(x => x.UserNo).Distinct().Count();
+ obj.LateNightNumberOfPeople = first.Where(x => x.ShiftType == ShiftEnumType.Nightsnack).Select(x => x.UserNo).Distinct().Count();
obj.TotalNumberOfPeople = first.Where(x => x.CostDate.ToString("yyyy-MM-dd") == first.Key).Select(x => x.UserNo).Distinct().Count();
-
+
lst.Add(obj);
}
// 分页操作
@@ -483,7 +469,7 @@ public class BalanceService : IBalanceService
.LeftJoin((record, ga, department, bplace, bshift, type) => record.BusinessShiftCode.ToString() == type.Code)
.WhereIF(request.SearchDate.HasValue, record => record.CostDate >= start)
.WhereIF(request.SearchDate.HasValue, record => record.CostDate <= end)
- .Where(record => record.TenantId == device.TenantId && (record.DeviceInfo == device.Code.ToString() || record.DeviceInfo == device.UniqueNo))
+ .Where(record => record.TenantId == device.TenantId && (record.DeviceUniqueNo == device.Code.ToString() || record.DeviceUniqueNo == device.UniqueNo))
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
.OrderBy(record => record.CreateTime, OrderByType.Desc)
.Select((record, ga, department, bplace, bshift, type) => new BalanceRecordResponse
@@ -495,7 +481,7 @@ public class BalanceService : IBalanceService
CostDate = record.CostDate,
CostId = record.CostId,
DepartmentNo = record.DepartmentNo,
- DeviceInfo = record.DeviceInfo,
+ DeviceInfo = record.DeviceUniqueNo,
IP = record.IP,
UserNo = record.UserNo,
UserCode = record.UserCode,
@@ -517,7 +503,7 @@ public class BalanceService : IBalanceService
var sum = await _dbContext.Queryable()
.WhereIF(request.SearchDate.HasValue, record => record.CostDate >= start)
.WhereIF(request.SearchDate.HasValue, record => record.CostDate <= end)
- .Where(record => record.TenantId == device.TenantId || (record.DeviceInfo == device.Code.ToString() || record.DeviceInfo == device.UniqueNo))
+ .Where(record => record.TenantId == device.TenantId || record.DeviceUniqueNo == device.Code.ToString() || record.DeviceUniqueNo == device.UniqueNo)
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
.SumAsync(record => SqlFunc.Abs(SqlFunc.IsNull(record.Amount, 0)));
@@ -610,7 +596,7 @@ public class BalanceService : IBalanceService
//可消费人数
var consumerable = bs.Select(x => x.UserCode).Distinct().Count();
- var dailyNumber = SameDay(bs,"");
+ var dailyNumber = SameDay(bs, "");
//消费走势
@@ -636,14 +622,14 @@ public class BalanceService : IBalanceService
///
///
///
- private int SameDay(List bs,string userCode)
+ private int SameDay(List bs, string userCode)
{
var time = DateTime.Now.ToString("yyyy-MM-dd");
var b = userCode.IsEmpty();
//当日消费数据
var monthbs = bs
.Where(x => x.CostDateTime.ToString("yyyy-MM-dd") == time)
- .WhereIF(!userCode.IsEmpty(),x => x.UserCode == userCode);
+ .WhereIF(!userCode.IsEmpty(), x => x.UserCode == userCode);
//当日消费额
var monthlySpending = monthbs.Sum(x => x.Amount);
//当日消费人数
@@ -694,9 +680,9 @@ public class BalanceService : IBalanceService
var lst = new List();
foreach (var code in codes)
{
- var br = brs.Where(x => x.UserCode == code).FirstOrDefault();
+ var br = brs.Where(x => x.UserCode == code).FirstOrDefault();
var res = br.Adapt();
- var dailyNumber = SameDay(brs,code);
+ var dailyNumber = SameDay(brs, code);
res.AverageAmount = dailyNumber;
lst.Add(res);
}
@@ -773,7 +759,7 @@ public class BalanceService : IBalanceService
.Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo))
.Select((x, d) => new
{
- UniqueNo = d.UniqueNo,
+ d.UniqueNo,
d.HeartbeatInterval,
x.LastHeartbeatTime
})
@@ -792,7 +778,7 @@ public class BalanceService : IBalanceService
})
.Select(x => new
{
- UniqueNo = x.UniqueNo,
+ x.UniqueNo,
})
.ToList();
var onlineUniqueNos = new List();
@@ -940,41 +926,4 @@ public class BalanceService : IBalanceService
throw new UserFriendlyException("操作失败,请重试");
}
-
- public async Task> GetShiftCode()
- {
- _dbContext.Client.QueryFilter.ClearAndBackup();
- try
- {
- var shiftCodeDict = new Dictionary();
-
- var typs = await _dbContext.Queryable()
- .Where(x => x.Type == "mealshift")
- .ToListAsync();
-
- var codeBreakfast = typs.Where(x => x.Display == "早餐").Select(x => x.Code).First();
- var codeLunch = typs.Where(x => x.Display == "午餐").Select(x => x.Code).First();
- var codeDinner = typs.Where(x => x.Display == "晚餐").Select(x => x.Code).First();
- var codeNightsnack = typs.Where(x => x.Display == "宵夜").Select(x => x.Code).First();
- var codeMidnightsnack = typs.Where(x => x.Display == "凌晨餐").Select(x => x.Code).First();
-
- shiftCodeDict.Add("Breakfast", codeBreakfast);
- shiftCodeDict.Add("Lunch", codeLunch);
- shiftCodeDict.Add("Dinner", codeDinner);
- shiftCodeDict.Add("LateNight", codeNightsnack);
- shiftCodeDict.Add("Midnightsnack", codeMidnightsnack);
-
- return shiftCodeDict;
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, $"生成{DeviceTaskEnumType.UploadRecord.GetDescription()}任务失败:" + ex.Message);
- return null;
- }
- finally
- {
- _dbContext.Client.QueryFilter.Restore();
- }
-
- }
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
deleted file mode 100644
index 2fc79323..00000000
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Dlhis.Entity.Basic.Entity;
-using Dlhis.Entity.Canteen.Entities;
-using Kurisu.AspNetCore.Utils.Extensions;
-using Kurisu.Core.DataAccess.Dto;
-using Kurisu.Core.User.Abstractions;
-using Kurisu.SqlSugar.Extensions;
-using Kurisu.SqlSugar.Services;
-using Mapster;
-
-namespace Dlhis.Canteen.Order.Services.Implements
-{
- public class MenuDishesService : IMenuDishesService
- {
- private readonly IDbContext _dbContext;
- private readonly ICurrentUser _currentUser;
-
- public MenuDishesService(IDbContext dbContext, ICurrentUser currentUser)
- {
- _dbContext = dbContext;
- _currentUser = currentUser;
- }
-
- public async Task> GetMenuAsync(GetMenuRequest request)
- {
-
- var page = await _dbContext.Queryable()
- .LeftJoin((x, place) => x.PlaceCode == place.Code)
- .WhereIF(request.PlaceCode.HasValue, x => request.PlaceCode == x.PlaceCode)
- .WhereIF(!request.Search.IsEmpty(), x => x.Name.Contains(request.Search))
- .Select((x, place) => new GetMenuResponse
- {
- PlaceName = place.Name,
-
- }, true)
- .ToPageListAsync(request);
- return page;
- }
-
- public async Task SaveMenuAsync(SaveMenuRequest request)
- {
- var place = await _dbContext.Queryable()
- .FirstAsync(x => x.Code == request.PlaceCode);
- place.ThrowIfNull($"{request.PlaceCode}:该营业点不存在!");
-
-
- }
-
- public async Task> GetDishesAsync(GetDishesRequest request)
- {
- return null;
- }
-
- public async Task SaveDishesAsync(SaveDishesRequest request)
- {
- if (!request.Id.HasValue)
- {
- var dishers = request.Adapt();
- //todo 检验重复
- dishers.CustomCode = request.CustomCode;
- await _dbContext.InsertAsync(dishers);
- }
- else
- {
- var entity = await _dbContext.Queryable()
- .Where(x => x.Id == request.Id).FirstAsync();
-
- request.Adapt(entity);
- await _dbContext.UpdateAsync(entity);
- }
- }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
deleted file mode 100644
index 414e6381..00000000
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
-using Dlhis.Entity.Basic.Entity;
-using Dlhis.Entity.Canteen.Entities;
-using Dlhis.Entity.Canteen.Enums;
-using Dlhis.Sys.Api;
-using Kurisu.AspNetCore.Utils;
-using Kurisu.AspNetCore.Utils.Extensions;
-using Kurisu.Core.DataAccess.Dto;
-using Kurisu.SqlSugar.Extensions;
-using Kurisu.SqlSugar.Services;
-using Mapster;
-using SqlSugar;
-
-namespace Dlhis.Canteen.Order.Services.Implements;
-
-public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
-{
- private readonly IDbContext _dbContext;
- private readonly ITenantApi _tenantApi;
- public MiniProgramOrderDetailService(IDbContext dbContext, ITenantApi tenantApi)
- {
- _dbContext = dbContext;
- _tenantApi = tenantApi;
- }
-
- public async Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request)
- {
- var page = await _dbContext.Queryable()
- .LeftJoin((order, place) => order.PlaceCode == place.Code)
- .LeftJoin((order, place, dishers) => order.DishesCode == dishers.CustomCode)
- .LeftJoin((order, place, dishers, depart) => order.DepartmentNo == depart.No)
- .WhereIF(!request.Search.IsEmpty(), order => order.Name == request.Search || order.Code == request.Search)
- .WhereIF(request.SysDate.HasValue, order => order.SysDate == request.SysDate)
- .OrderBy(order => order.CostDate, OrderByType.Desc)
- .Select((order, place, dishers, depart) => new GetMiniProgramOrderResponse
- {
- PlaceName = place.Name,
- DepartmentName = depart.Name,
- DishesName = dishers.Name,
- }, true)
- .ToPageListAsync(request);
- return page;
- }
-
- public async Task SaveDetailAsync(SaveDetailRequest request)
- {
- if (!request.Id.HasValue)
- {
- var entity = request.Adapt();
- await _dbContext.InsertAsync(entity);
- }
- else
- {
- var entity = await _dbContext.Queryable()
- .Where(x => x.Id == request.Id)
- .FirstAsync();
- request.Adapt(entity);
- await _dbContext.UpdateAsync(entity);
- }
- }
-
- public async Task> GetDetailAsync(GetDetailRequest request)
- {
- var page = await _dbContext.Queryable()
- .WhereIF(!request.Search.IsEmpty(), x => x.ThirdNo == request.Search)
- .Select()
- .ToPageListAsync(request);
-
- return page;
- }
-
- public async Task OrderAsync(OrderRequest request)
- {
- //判断时间
- DateTime currentTime = DateTime.Now;
- TimeSpan ninePM = new TimeSpan(20, 30, 0);
- if (currentTime.TimeOfDay > ninePM)
- {
- true.ThrowIfTrue("20:30之后无法订餐!");
- }
- //判断营业日
- var dishes = await _dbContext.Queryable().Where(x => x.CustomCode == request.DishesCode).FirstAsync();
- dishes.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
-
- var menu = await _dbContext.Queryable().Where(x => x.Code == request.MenuCode).FirstAsync();
- menu.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
-
- // 获取用餐日期
- DateOnly tomorrow = DateOnly.FromDateTime(DateTime.Today.AddDays(1));
- if (tomorrow != menu.StartDate)
- {
- true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!");
- }
-
- var restricted = await _dbContext.Queryable()
- .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode).FirstAsync();
- restricted.ThrowIfNull($"每日菜单:{menu.Name} 还没有配置菜品:{dishes.Name} 的限售数量!");
- if (restricted.RestrictedNum < 0)
- {
- true.ThrowIfTrue($"菜品:{dishes.Name}已售罄!");
- }
-
- var gainfo = await _dbContext.Queryable()
- .Where(x => x.Code == request.UserCode)
- .FirstAsync();
- gainfo.ThrowIfNull($"用户{request.UserCode}无档案信息,无法订餐!");
-
- //判断是否订过餐
- var flag = await _dbContext.Queryable()
- .Where(x => x.SysDate == tomorrow && x.ShiftType == request.ShiftType && x.Code == request.UserCode && x.OrderStatus == MiniProgramOrderStatusEnumType.I)
- .AnyAsync();
- flag.ThrowIfTrue($"工号:{request.UserCode} 姓名:{gainfo.Name} 已经定过{tomorrow}的{request.ShiftType.GetDescription()}!");
-
- //支付方式
- /* var result = await _tenantApi.GetTenantTreeAsync();
- var tree = result.Data;
- var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault();
- var codes = shanxi.Next.Select(x => x.Code).ToList();
- if (!codes.Contains(gainfo.Factory))
- {
- if (request.PayType == CanteenPayEnumType.Repair)
- {
- true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}");
- }
- }*/
-
- //生成订单
- var order = new MiniProgramOrderEntity
- {
- No = "O" + SnowFlakeHelper.Instance.NextId(),
- Name = gainfo.Name,
- Code = gainfo.Code,
- Werks = gainfo.Werks,
- DepartmentNo = gainfo.DepartmentNo,
- CostId = gainfo.CostId,
- Workplace = gainfo.Workplace,
- Factory = gainfo.Factory,
- PlaceCode = request.PlaceCode,
- ShiftType = request.ShiftType,
- DishesCode = request.DishesCode,
- Phone = gainfo.Phone,
- SysDate = tomorrow,
- CostDate = DateTime.Now,
- PayType = request.PayType,
- OrderStatus = MiniProgramOrderStatusEnumType.I,
- OrderType = dishes.Type,
- };
- //生成订单明细
- var detail = new OrderDetailsEntity
- {
- ThirdNo = order.No,
- SysDate = tomorrow,
- ShiftType = request.ShiftType,
- DishesCode = request.DishesCode,
- DishesName = dishes.Name,
- Price = dishes.Price,
- Unit = dishes.Unit,
- Number = request.DishesNum,
- Amount = request.DishesNum * dishes.Price,
- Status = OrderDetailsStatusEnumType.I,
- };
- order.Amount = detail.Amount;
- await _dbContext.InsertAsync(order);
- await _dbContext.InsertAsync(detail);
-
- //扣减份数
- var effect = await _dbContext.Updateable()
- .SetColumns(x => x.RestrictedNum == restricted.RestrictedNum - request.DishesNum)
- .SetColumns(x => x.Version == x.Version + 1)
- .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode && x.Version == restricted.Version)
- .ExecuteCommandAsync();
-
- if (effect <= 0) throw new VersionExceptions("更新版本冲突");
- }
-
-}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
index cb345396..2abe09aa 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
@@ -1,6 +1,5 @@
using Dlhis.Basic.Api;
-using Dlhis.Canteen.Order.Request;
-using Dlhis.Canteen.Order.Response;
+using Dlhis.Canteen.Dishes.Request;
using Dlhis.Canteen.Setting.Services;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Canteen.Entities;
@@ -11,10 +10,14 @@ using Kurisu.AspNetCore.Utils;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.CustomClass;
using Kurisu.Core.DataAccess.Dto;
+using Kurisu.Core.User.Abstractions;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
using SqlSugar;
+using Dlhis.Canteen.Order.Response;
+using Dlhis.Canteen.Dishes;
+using Dlhis.Canteen.Order.Request;
namespace Dlhis.Canteen.Order.Services.Implements;
@@ -23,16 +26,22 @@ public class OrderService : IOrderService
private readonly IDbContext _dbContext;
private readonly ICanteenSettingService _canteenSettingService;
private readonly IDevicePermissionApi _devicePermissionApi;
+ private readonly ICurrentUser _currentUser;
+ private readonly IDisheMenuApi _disheMenuApi;
private readonly ILogger _logger;
public OrderService(IDbContext dbContext,
ICanteenSettingService canteenSettingService,
IDevicePermissionApi devicePermissionApi,
+ ICurrentUser currentUser,
+ IDisheMenuApi disheMenuApi,
ILogger logger)
{
_dbContext = dbContext;
_canteenSettingService = canteenSettingService;
_devicePermissionApi = devicePermissionApi;
+ _currentUser = currentUser;
+ _disheMenuApi = disheMenuApi;
_logger = logger;
}
@@ -53,6 +62,117 @@ public class OrderService : IOrderService
uniqueNos.Contains(deviceUniqueNo).ThrowIfFalse("无消费权限");
}
+ public async Task Booking(BookingMealRequest request)
+ {
+ var jinkoCode = _currentUser.GetUserClaim("jinko-code");
+ var gainfo = await _dbContext.Queryable().Where(x => x.Code == jinkoCode).FirstAsync();
+
+ var businessPlace = await _dbContext.Queryable().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
+
+ //预定时间
+ var now = DateTime.Now;
+
+ var settings = await _canteenSettingService.GetUserSettingAsync(gainfo.Code);
+ var bookingDeadline = GetSetting(settings, CanteenSettingItemEnumType.BookingDeadline) ?? new TimeOnly(20, 30, 00);
+ var dealLine = DateTime.Today.Add(bookingDeadline.ToTimeSpan());
+ (now >= dealLine).ThrowIfTrue("超出订餐时间");
+
+ //菜单存在
+ var menuDetailResult = await _disheMenuApi.GetBookingDishesDetailAsync(request.BookingDate, request.BusinessPlaceCode, (int)request.ShiftType, request.DishesCode);
+ var menuDetail = menuDetailResult.Data;
+ menuDetail.ThrowIfNull("预定失败,菜品已经下架");
+
+ var order = new CanteenOrderEntity
+ {
+ RequestJson = request.ToJson(),
+ ThirdNo = string.Empty,
+ Type = BalanceRecordTypeEnumType.Out,
+ Name = gainfo.Name,
+ Source = request.Source,
+ UserNo = gainfo.No,
+ UserCode = gainfo.Code,
+ Amount = -Math.Abs(menuDetail.Price),
+ BusinessPlaceCode = request.BusinessPlaceCode,
+ BusinessShiftCode = null,
+ ShiftType = request.ShiftType,
+ CostDate = now.Date,
+ CostId = gainfo.CostId,
+ DepartmentNo = gainfo.DepartmentNo,
+ DeviceUniqueNo = string.Empty,
+
+ No = SnowFlakeHelper.Instance.NextId().ToString(),
+ SubsidiesFromMonth = now.ToString("yyyyMM"),
+ IsOffline = false,
+ IsCostCrossTenant = GetSetting(settings, CanteenSettingItemEnumType.AllowCrossTenant),
+
+ OriginTenantId = gainfo.Factory,//人员可能跨基地消费
+
+ Status = BalanceRecordStatusEnumType.Valid,
+ OrderStatus = CanteenOrderStatusEnumType.Successful,
+
+ CostDateTime = now,
+
+ //标识当前消费的基地
+ TenantId = businessPlace.TenantId,
+ };
+
+ var orderId = await _dbContext.InsertReturnIdentityAsync(order);
+ await ContinueUpdateAsync(async () =>
+ {
+ await _disheMenuApi.GetBookingDishesDetailAsync(request.BookingDate, request.BusinessPlaceCode, (int)request.ShiftType, request.DishesCode);
+ var menuDetail = menuDetailResult.Data;
+ menuDetail.ThrowIfNull("预定失败,菜品已经下架");
+ menuDetail.Number -= 1;
+
+ (menuDetail.Number < 0).ThrowIfTrue($"{menuDetail.DishesName}已售罄");
+
+ var canteenUser = await _dbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync();
+ //金额+-
+ canteenUser.Balance += order.Amount;
+ if (canteenUser.Balance < 0)
+ {
+ throw new UserFriendlyException("余额不足,无法消费");
+ }
+
+ var effect = await _dbContext.Updateable()
+ .SetColumns(x => x.Balance == canteenUser.Balance)
+ .SetColumns(x => x.Version == x.Version + 1)
+ .Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version)//必须与查询时的version一致
+ .ExecuteCommandAsync();
+
+ if (effect <= 0) throw new VersionExceptions("更新版本冲突");
+
+ effect = await _dbContext.Updateable()
+ .SetColumns(x => x.Number == menuDetail.Number)
+ .SetColumns(x => x.Version == x.Version + 1)
+ .SetColumns(x => x.ModifiedTime == now)
+ .Where(x => x.Date == menuDetail.Date && x.ShiftType == request.ShiftType && x.BusinessPlaceCode == request.BusinessPlaceCode && x.Version == menuDetail.Version)
+ .ExecuteCommandAsync();
+
+ if (effect <= 0) throw new VersionExceptions("更新版本冲突");
+
+ //写入记录
+ var balanceRecord = order.Adapt();
+ await _dbContext.InsertAsync(balanceRecord);
+
+ await _dbContext.InsertAsync(new OrderDetailEntity
+ {
+ OrderNo = order.No,
+ DishesCode = request.DishesCode,
+ Price = menuDetail.Price,
+ Status = OrderDetailsStatusEnumType.I,
+ //Unit
+ Number = 1,
+ });
+
+ }, 10);
+ }
+
+ public async Task DeviceConsume(OrderAddRequest request)
+ {
+ return await AddAsync(request);
+ }
+
public async Task AddAsync(OrderAddRequest request)
{
//尝试匹配userId
@@ -63,7 +183,7 @@ public class OrderService : IOrderService
.Where(x => x.No == request.UserUniqueNo || x.Code == request.UserUniqueNo || x.Id == userId || x.CardNo == request.UserUniqueNo)
.FirstAsync();
- gainfo.ThrowIfNull($"用户{request.UserUniqueNo}不存在,无法操作");
+ gainfo.ThrowIfNull($"无消费权限");
//消费权限控制
await CheckPAsync(gainfo.No, request.DeviceUniqueNo);
@@ -194,14 +314,14 @@ public class OrderService : IOrderService
CostDate = costDate.Date,
CostId = gainfo.CostId,
DepartmentNo = gainfo.DepartmentNo,
- DeviceInfo = request.DeviceUniqueNo,
+ DeviceUniqueNo = request.DeviceUniqueNo,
- No = "O" + SnowFlakeHelper.Instance.NextId(),
+ No = SnowFlakeHelper.Instance.NextId().ToString(),
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
IsOffline = request.IsOffline,
IsCostCrossTenant = GetSetting(settings, CanteenSettingItemEnumType.AllowCrossTenant),
- OriginTenantId = gainfo.Werks,//人员可能跨基地消费
+ OriginTenantId = gainfo.Factory,//人员可能跨基地消费
//餐别异常处理
Status = shift == null ? BalanceRecordStatusEnumType.Doubtful : BalanceRecordStatusEnumType.Valid,
@@ -264,13 +384,13 @@ public class OrderService : IOrderService
CostDate = DateTime.Now.Date,
CostId = gainfo.CostId,
DepartmentNo = gainfo.DepartmentNo,
- DeviceInfo = string.Empty,
+ DeviceUniqueNo = string.Empty,
- No = "O" + SnowFlakeHelper.Instance.NextId(),
+ No = SnowFlakeHelper.Instance.NextId().ToString(),
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
IsCostCrossTenant = GetSetting(settings, CanteenSettingItemEnumType.AllowCrossTenant),
- OriginTenantId = gainfo.Werks,//人员可能跨基地消费
+ OriginTenantId = gainfo.Factory,//人员可能跨基地消费
Status = BalanceRecordStatusEnumType.Valid,
@@ -279,7 +399,7 @@ public class OrderService : IOrderService
CostDateTime = request.CostDateTime,
//标识当前消费的基地
- TenantId = gainfo.Werks,
+ TenantId = gainfo.Factory,
};
var orderId = await _dbContext.InsertReturnIdentityAsync(order);
@@ -305,8 +425,6 @@ public class OrderService : IOrderService
}
-
-
//******************************************************* help methods ************************************************************/
@@ -355,7 +473,6 @@ public class OrderService : IOrderService
{
try
{
-
if (int.TryParse(v, out var n))
{
return n.Adapt();
@@ -526,5 +643,4 @@ public class OrderService : IOrderService
}, 5);
}
-
}
diff --git a/Src/Dlhis.Canteen/Order/TimePeriodExtensions.cs b/Src/Dlhis.Canteen/Order/TimePeriodExtensions.cs
index 2698f706..39b402b4 100644
--- a/Src/Dlhis.Canteen/Order/TimePeriodExtensions.cs
+++ b/Src/Dlhis.Canteen/Order/TimePeriodExtensions.cs
@@ -1,6 +1,6 @@
using Kurisu.Core.CustomClass;
-namespace Dlhis.Canteen.Order;
+namespace Dlhis.Canteen.Dishes;
///
diff --git a/Src/Dlhis.Canteen/Program.cs b/Src/Dlhis.Canteen/Program.cs
index ce855b85..b9710d07 100644
--- a/Src/Dlhis.Canteen/Program.cs
+++ b/Src/Dlhis.Canteen/Program.cs
@@ -23,6 +23,16 @@ public class Startup : DefaultStartup
public override void ConfigureServices(IServiceCollection services)
{
base.ConfigureServices(services);
+ //protected static string Obfuscate(string value)
+ //{
+ // var last4Chars = "****";
+ // if (value.IsPresent() && value.Length > 4)
+ // {
+ // last4Chars = value.Substring(value.Length - 4);
+ // }
+
+ // return "****" + last4Chars;
+ //}
services.AddRedis();
}
diff --git a/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs b/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs
index cb707ca8..3395fc7c 100644
--- a/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs
+++ b/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs
@@ -70,35 +70,7 @@ public class CanteenSettingService : ICanteenSettingService
}
}
- private void Inspection(CanteenSettingSaveRequest request)
- {
- var value = request.Value;
- var result = request.Item switch
- {
- //TimeOnly
- CanteenSettingItemEnumType.BusinessSwitchTime => IsValidFormat(value, request.Item),
-
- //int
- CanteenSettingItemEnumType.DayEVoucherUseCountMax => IsValidFormat(value),
-
- //decimal
- CanteenSettingItemEnumType.OnceCostMax => IsValidFormat(value),
- CanteenSettingItemEnumType.DayCostMax => IsValidFormat(value),
- CanteenSettingItemEnumType.DayMarketCostMax => IsValidFormat(value),
- CanteenSettingItemEnumType.Subsidies => IsValidFormat(value),
- CanteenSettingItemEnumType.InitBalance => IsValidFormat(value),
-
- //bool
- CanteenSettingItemEnumType.AllowNoBalance => IsValidFormat(value, request.Item),
- CanteenSettingItemEnumType.AllowSendAtMeal => IsValidFormat(value, request.Item),
- CanteenSettingItemEnumType.AllowRepeatInOneShift => IsValidFormat(value, request.Item),
- CanteenSettingItemEnumType.AllowCrossTenant => IsValidFormat(value, request.Item),
- _ => throw new NotImplementedException(),
- };
-
- result.ThrowIfFalse($"{request.Item.GetDescription()},参数值为[{value}],格式错误");
- }
public async Task SetEnableAsync(CanteenSettingSetEnableRequest request)
{
@@ -112,15 +84,15 @@ public class CanteenSettingService : ICanteenSettingService
public async Task> GetUserSettingAsync(string userNo)
{
- var setting = await _context.Queryable()
- .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Person && (x.UniqueValue == userNo) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant)
+ var settings = await _context.Queryable()
+ .Where(x => (x.UniqueType == CanteenSettingUnqiueEnumType.Person && x.UniqueValue == userNo) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant)
.ToListAsync();
//从基地 -> 个人,确保下面循环做到覆盖,并且以个人配置为主
- setting = setting.OrderBy(x => x.UniqueType).ToList();
+ settings = settings.OrderBy(x => x.UniqueType).ToList();
var result = new Dictionary();
- setting.ForEach(x =>
+ settings.ForEach(x =>
{
if (result.ContainsKey(x.Item))
{
@@ -197,4 +169,35 @@ public class CanteenSettingService : ICanteenSettingService
return true;
}
+
+ private static void Inspection(CanteenSettingSaveRequest request)
+ {
+ var value = request.Value;
+
+ var result = request.Item switch
+ {
+ //TimeOnly
+ CanteenSettingItemEnumType.BusinessSwitchTime => IsValidFormat(value, request.Item),
+ CanteenSettingItemEnumType.BookingDeadline => IsValidFormat(value, request.Item),
+
+ //int
+ CanteenSettingItemEnumType.DayEVoucherUseCountMax => IsValidFormat(value),
+
+ //decimal
+ CanteenSettingItemEnumType.OnceCostMax => IsValidFormat(value),
+ CanteenSettingItemEnumType.DayCostMax => IsValidFormat(value),
+ CanteenSettingItemEnumType.DayMarketCostMax => IsValidFormat(value),
+ CanteenSettingItemEnumType.Subsidies => IsValidFormat(value),
+ CanteenSettingItemEnumType.InitBalance => IsValidFormat(value),
+
+ //bool
+ CanteenSettingItemEnumType.AllowNoBalance => IsValidFormat(value, request.Item),
+ CanteenSettingItemEnumType.AllowSendAtMeal => IsValidFormat(value, request.Item),
+ CanteenSettingItemEnumType.AllowRepeatInOneShift => IsValidFormat(value, request.Item),
+ CanteenSettingItemEnumType.AllowCrossTenant => IsValidFormat(value, request.Item),
+ _ => throw new NotImplementedException(),
+ };
+
+ result.ThrowIfFalse($"{request.Item.GetDescription()},参数值为[{value}],格式错误");
+ }
}
diff --git a/Src/Dlhis.Canteen/SqlSugarPack.cs b/Src/Dlhis.Canteen/SqlSugarPack.cs
index f8d3a155..a05817df 100644
--- a/Src/Dlhis.Canteen/SqlSugarPack.cs
+++ b/Src/Dlhis.Canteen/SqlSugarPack.cs
@@ -1,9 +1,5 @@
using Kurisu.AspNetCore.Startup;
-using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar.Extensions;
-using Kurisu.SqlSugar.Services;
-using Microsoft.AspNetCore.Mvc.Filters;
-using SqlSugar;
namespace Dlhis.Canteen;
@@ -15,102 +11,4 @@ public class SqlSugarPack : BaseAppPack
{
services.AddSqlSugar();
}
-}
-
-
-
-
-
-///
-/// 日志
-///
-[AttributeUsage(AttributeTargets.Method)]
-public class LogAttribute : Attribute, IAsyncActionFilter
-{
- public LogAttribute(string title)
- {
- Title = title;
- }
-
- ///
- ///
- ///
- public string Title { get; set; }
-
- ///
- /// 是否处理差异
- ///
- public bool Diff { get; set; }
-
-
- public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
- {
- PreSetting(context.HttpContext);
- await next();
- }
-
- private void PreSetting(HttpContext httpContext)
- {
- var options = httpContext.RequestServices.GetService();
-
- options.Title = Title;
- options.Diff = Diff;
- options.BatchNo = Guid.NewGuid();
- options.RoutePath = httpContext.Request.Path.Value;
- options.RaiseTime = DateTime.Now;
- }
-}
-
-///
-/// 事务
-///
-[AttributeUsage(AttributeTargets.Method)]
-public class TransactionalAttribute : Attribute, IAsyncActionFilter
-{
- public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
- {
- var dbContext = context.HttpContext.RequestServices.GetRequiredService();
- await dbContext.Ado.BeginTranAsync();
- try
- {
- var result = await next();
- if (result.Exception != null)
- {
- throw result.Exception;
- }
- else
- {
- await dbContext.Ado.CommitTranAsync();
- }
- }
- catch (Exception)
- {
- await dbContext.Ado.RollbackTranAsync();
- throw;
- }
- }
-}
-
-///
-/// 忽略租户
-///
-[AttributeUsage(AttributeTargets.Method)]
-public class IgnoreTenantAttribute : Attribute, IAsyncActionFilter
-{
- public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
- {
- var dbContext = context.HttpContext.RequestServices.GetRequiredService();
- var options = context.HttpContext!.RequestServices.GetService();
- try
- {
- dbContext.QueryFilter.ClearAndBackup();
- options.IgnoreTenant = true;
- await next();
- }
- finally
- {
- options.IgnoreTenant = false;
- dbContext.QueryFilter.Restore();
- }
- }
-}
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
deleted file mode 100644
index 39975b22..00000000
--- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.Core.DataAccess.Entity;
-using Kurisu.SqlSugar;
-using SqlSugar;
-using SqlSugar.DbConvert;
-
-namespace Dlhis.Entity.Canteen.Entities
-{
- ///
- /// 小程序订单表
- ///
- [SugarTable(TableName = "MiniProgramOrder", TableDescription = "小程序订单表")]
- public class MiniProgramOrderEntity : SugarBaseEntity, ITenantId
- {
- ///
- /// 订单号
- ///
- [SugarColumn(ColumnDescription = "订单号")]
- public string No { get; set; }
-
- ///
- /// 姓名
- ///
- [SugarColumn(ColumnDescription = "姓名")]
- public string Name { get; set; }
-
- ///
- /// 工号
- ///
- [SugarColumn(ColumnDescription = "工号")]
- public string Code { get; set; }
-
- ///
- /// 人事范围
- ///
- [SugarColumn(ColumnDescription = "人事范围")]
- public string Werks { get; set; }
-
- ///
- /// 部门编码
- ///
- [SugarColumn(ColumnDescription = "部门编码")]
- public string DepartmentNo { get; set; }
-
- ///
- /// 成本中心
- ///
- [SugarColumn(ColumnDescription = "成本中心")]
- public string CostId { get; set; }
-
- ///
- /// 工作地
- ///
- [SugarColumn(ColumnDescription = "工作地")]
- public string Workplace { get; set; }
-
- ///
- /// 厂区
- ///
- [SugarColumn(ColumnDescription = "厂区")]
- public string Factory { get; set; }
-
- ///
- /// 营业点
- ///
- [SugarColumn(ColumnDescription = "营业点")]
- public Guid PlaceCode { get; set; }
-
- ///
- /// 餐次
- ///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")]
- public ShiftEnumType ShiftType { get; set; }
-
- ///
- /// 手机号码
- ///
- [SugarColumn(ColumnDescription = "手机号码")]
- public string Phone { get; set; }
-
- ///
- /// 用餐日期
- ///
- [SugarColumn(ColumnDescription = "用餐日期", IsNullable = true)]
- public DateTime UseDate { get; set; }
-
- ///
- /// 支付方式
- ///
- [SugarColumn(ColumnDescription = "支付方式", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public BalanceRecordSourceEnumType PayType { get; set; }
-
- ///
- /// 订单状态
- ///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单状态")]
- public MiniProgramOrderStatusEnumType OrderStatus { get; set; }
-
- ///
- /// 订单类型
- ///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单类型")]
- public CanteenMenuEnumType OrderType { get; set; }
-
- ///
- /// 总金额
- ///
- [SugarColumn(ColumnDescription = "金额")]
- public decimal Amount { get; set; }
-
-
- public string TenantId { get; set; }
- }
-}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailEntity.cs
similarity index 84%
rename from Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
rename to Src/Dlhis.Entity/Canteen/Entities/OrderDetailEntity.cs
index 2f692ab9..53b59bd9 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailEntity.cs
@@ -9,8 +9,8 @@ namespace Dlhis.Entity.Canteen.Entities;
///
/// 订餐明细表
///
-[SugarTable(TableName = "OrderDetails", TableDescription = "订餐明细表")]
-public class OrderDetailsEntity : SugarBaseEntity, ITenantId
+[SugarTable(TableName = "OrderDetail", TableDescription = "订单明细表")]
+public class OrderDetailEntity : SugarBaseEntity, ITenantId
{
///
/// 订单号
@@ -46,8 +46,9 @@ public class OrderDetailsEntity : SugarBaseEntity, ITenantId
///
/// 订单明细状态
///
- [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单明细状态")]
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "状态")]
public OrderDetailsStatusEnumType Status { get; set; }
+
public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Canteen/Enums/OrderDetailsStatusEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/OrderDetailsStatusEnumType.cs
index 0012812e..0b4eed43 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/OrderDetailsStatusEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/OrderDetailsStatusEnumType.cs
@@ -1,14 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.ComponentModel;
namespace Dlhis.Entity.Canteen.Enums
{
///
- /// 订单明细状态
+ /// 订单明细状态 OrderDetailsStatusEnumType
///
[Description("订单明细状态")]
public enum OrderDetailsStatusEnumType
From c743d2d1c5fb0dcfca1562b2ef3cc743df7d4849 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 11:48:38 +0800
Subject: [PATCH 17/31] =?UTF-8?q?fix=20GetDishesMenusBookingResponse?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesMenusController.cs | 4 +-
.../Request/GetDishesMenusBookingRequest.cs | 9 ++++
.../BusinessShiftMealRelationshipResponse.cs | 10 ----
.../Dishes/Response/DishesMenuPageResponse.cs | 52 ++++++++++++++++++-
.../Response/GetDishesMenusBookingResponse.cs | 4 ++
.../Dishes/Services/IDishesService.cs | 2 +-
.../Services/Implements/DishesService.cs | 24 +++++++--
Src/Dlhis.Basic/appsettings.Development.json | 1 +
Src/Dlhis.Basic/appsettings.json | 1 +
9 files changed, 90 insertions(+), 17 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Request/GetDishesMenusBookingRequest.cs
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index 5d22c254..2bbb924e 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -93,9 +93,9 @@ public class DishesMenusController : ControllerBase
///
///
[HttpGet("setting")]
- public async Task GetDishesMenusBookingSetting(Guid PLaceCode)
+ public async Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
{
- return await _dishesService.GetDishesMenusBookingSetting(PLaceCode);
+ return await _dishesService.GetDishesMenusBookingSetting(request);
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Request/GetDishesMenusBookingRequest.cs b/Src/Dlhis.Basic/Dishes/Request/GetDishesMenusBookingRequest.cs
new file mode 100644
index 00000000..af71ee69
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Request/GetDishesMenusBookingRequest.cs
@@ -0,0 +1,9 @@
+namespace Dlhis.Basic.Dishes.Request
+{
+ public class GetDishesMenusBookingRequest
+ {
+ public Guid PlaceCode { get; set; }
+
+ public string Factory { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
index 85b71c88..e36c7b28 100644
--- a/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
@@ -19,16 +19,6 @@ namespace Dlhis.Basic.Dishes.Response
///
public ShiftEnumType ShiftType { get; set; }
- ///
- /// 经营开始时间
- ///
- public TimeOnly Start { get; set; }
-
- ///
- /// 经营结束时间
- ///
- public TimeOnly End { get; set; }
-
///
/// 序号
///
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
index 4f2c3a1a..5fd05151 100644
--- a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
@@ -1,6 +1,56 @@
-namespace Dlhis.Basic.Dishes.Response;
+using Dlhis.Entity.Canteen.Enums;
+using SqlSugar.DbConvert;
+using SqlSugar;
+
+namespace Dlhis.Basic.Dishes.Response;
public class DishesMenuPageResponse
{
+ ///
+ /// 菜单编码
+ ///
+ public string CustomCode { get; set; }
+ ///
+ /// 菜单类型
+ ///
+ public CanteenMenuEnumType Type { get; set; }
+
+ ///
+ /// 所属营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
+ ///
+ /// 营业日期
+ ///
+ public DateTime Date { get; set; }
+
+
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+
+ ///
+ /// 菜品编码
+ ///
+ public string DishesCode { get; set; }
+
+ ///
+ /// 剩余数量
+ ///
+ public int Number { get; set; }
+
+
+ ///
+ /// 单价
+ ///
+ public decimal? Price { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
}
diff --git a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
index 87c5b76d..5d21e26f 100644
--- a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
@@ -7,5 +7,9 @@ namespace Dlhis.Basic.Dishes.Response
public class GetDishesMenusBookingResponse
{
public List BusinessShiftMealRelationships { get; set; }
+
+ public DateTime ServiceTime { get; set; }
+
+ public List PayType { get; set; }
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
index 3d7338d0..f4398736 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -10,6 +10,6 @@ public interface IDishesService : IScopeDependency
Task SaveDishesAsync(DishesSaveRequest request);
- Task GetDishesMenusBookingSetting(Guid PLaceCode);
+ Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request);
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index bda18ed8..e09fdeba 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -2,21 +2,25 @@
using Dlhis.Basic.Dishes.Response;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Canteen.Entities;
+using Dlhis.Entity.Canteen.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
+using System.Collections.Generic;
namespace Dlhis.Basic.Dishes.Services.Implements;
public class DishesService : IDishesService
{
private readonly IDbContext _dbContext;
+ private readonly IConfiguration _configuration;
- public DishesService(IDbContext dbContext)
+ public DishesService(IDbContext dbContext, IConfiguration configuration)
{
_dbContext = dbContext;
+ _configuration = configuration;
}
public async Task> GetDishesPageAsync(DishesPageRequest request)
@@ -49,19 +53,33 @@ public class DishesService : IDishesService
}
}
- public async Task GetDishesMenusBookingSetting(Guid PLaceCode)
+ public async Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
{
var shift = await _dbContext.Queryable()
- .Where(x => x.PlaceCode == PLaceCode)
+ .Where(x => x.PlaceCode == request.PlaceCode)
.FirstAsync();
+ shift.ThrowIfNull($"营业点{request.PlaceCode}吗,没有餐别!");
var BusinessShiftMealRelationships= await _dbContext.Queryable()
.Where(x => x.ShiftCode == shift.ShiftCode)
.Select()
.ToListAsync();
+
+ // 读取配置中的时间
+ var eightThirtyPmStr = _configuration["EightThirtyPM"];
+ DateTime.TryParseExact(eightThirtyPmStr, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out var dateTime);
+
+ var payTypes = new List { BalanceRecordSourceEnumType.Cash };
+ if (shift.TenantId == request.Factory)
+ {
+ payTypes.Add(BalanceRecordSourceEnumType.LocalTenantSubsidies);
+ }
+
var res = new GetDishesMenusBookingResponse
{
BusinessShiftMealRelationships = BusinessShiftMealRelationships,
+ ServiceTime = dateTime,
+ PayType = payTypes
};
return res;
}
diff --git a/Src/Dlhis.Basic/appsettings.Development.json b/Src/Dlhis.Basic/appsettings.Development.json
index 7d904fe7..0701613f 100644
--- a/Src/Dlhis.Basic/appsettings.Development.json
+++ b/Src/Dlhis.Basic/appsettings.Development.json
@@ -5,6 +5,7 @@
"Microsoft.AspNetCore": "Warning"
}
},
+ "EightThirtyPM": "20:30:00",
"InternalRequest": {
"CommonRequestUrl": "http://localhost:5001",
"SysRequestUrl": "http://localhost:5003"
diff --git a/Src/Dlhis.Basic/appsettings.json b/Src/Dlhis.Basic/appsettings.json
index 7c564ae2..2fb5ccec 100644
--- a/Src/Dlhis.Basic/appsettings.json
+++ b/Src/Dlhis.Basic/appsettings.json
@@ -5,6 +5,7 @@
"Microsoft.AspNetCore": "Warning"
}
},
+ "EightThirtyPM": "20:30:00",
"AllowedHosts": "*",
"InternalRequest": {
"CommonRequestUrl": "http://common",
From fcc1f134ed41c958e9855bba5bfdaa3ebdfc0128 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 12:14:06 +0800
Subject: [PATCH 18/31] fix currentUser
---
.../Services/Implements/BusinessPlacePermissionsService.cs | 3 ++-
Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs | 2 +-
.../Response/BusinessShiftMealRelationshipResponse.cs | 7 +++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
index 87f9f422..d8d22f27 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
@@ -13,9 +13,10 @@ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
- public BusinessPlacePermissionsService(IDbContext dbContext)
+ public BusinessPlacePermissionsService(IDbContext dbContext, ICurrentUser currentUser)
{
_dbContext = dbContext;
+ _currentUser = currentUser;
}
public async Task> GetPageAsync(BusinessPlacePermissionPageRequest request)
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index 2bbb924e..9b3ed209 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -93,7 +93,7 @@ public class DishesMenusController : ControllerBase
///
///
[HttpGet("setting")]
- public async Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
+ public async Task GetDishesMenusBookingSetting([FromQuery]GetDishesMenusBookingRequest request)
{
return await _dishesService.GetDishesMenusBookingSetting(request);
}
diff --git a/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
index e36c7b28..1c40fc37 100644
--- a/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/BusinessShiftMealRelationshipResponse.cs
@@ -1,4 +1,5 @@
using Dlhis.Entity.Canteen.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.Basic.Dishes.Response
{
@@ -20,11 +21,9 @@ namespace Dlhis.Basic.Dishes.Response
public ShiftEnumType ShiftType { get; set; }
///
- /// 序号
+ /// 餐次CN
///
- public int Sequence { get; set; }
+ public string ShiftTypeCN => ShiftType.GetDescription();
-
- public string TenantId { get; set; }
}
}
From b3b99623e353e41f0caaa5dd53260365be1b2482 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 13:42:35 +0800
Subject: [PATCH 19/31] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E8=8F=9C?=
=?UTF-8?q?=E5=93=81=E4=BF=9D=E5=AD=98=E5=92=8C=E5=88=86=E9=A1=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesMenusController.cs | 1 -
.../Dishes/Request/DishesSaveRequest.cs | 12 ++++++
.../Dishes/Response/DishesMenuPageResponse.cs | 7 ---
.../Dishes/Response/DishesResponse.cs | 43 ++++++++-----------
.../Services/Implements/DishesMenuService.cs | 2 +-
.../Services/Implements/DishesService.cs | 13 ++++--
Src/Dlhis.Common/ApiLog/ApiLogController.cs | 2 +-
Src/Dlhis.Common/appsettings.Development.json | 4 +-
Src/Dlhis.Common/appsettings.json | 4 +-
.../Canteen/Entities/BalanceRecordEntity.cs | 7 +++
.../Canteen/Entities/DishesEntity.cs | 9 +++-
.../Canteen/Entities/DishesMenuEntity.cs | 2 +-
...e.cs => CanteenApplicaitonTypeEnumType.cs} | 19 ++++----
.../Enums/CanteenOrderStatusEnumType.cs | 5 +++
Src/Dlhis.Entity/IImageUrl.cs | 6 +++
15 files changed, 80 insertions(+), 56 deletions(-)
rename Src/Dlhis.Entity/Canteen/Enums/{CanteenMenuEnumType.cs => CanteenApplicaitonTypeEnumType.cs} (55%)
create mode 100644 Src/Dlhis.Entity/IImageUrl.cs
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index 9b3ed209..d8dcb221 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -7,7 +7,6 @@ using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Org.BouncyCastle.Asn1.Ocsp;
namespace Dlhis.Basic.Dishes.Controller;
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
index c2135cc9..6fb0e1b3 100644
--- a/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesSaveRequest.cs
@@ -12,6 +12,12 @@ public class DishesSaveRequest
[Required]
public Guid CategoryCode { get; set; }
+ ///
+ /// 营业点
+ ///
+ [Required]
+ public Guid BusinessPlaceCode { get; set; }
+
///
/// 菜品名称
///
@@ -40,6 +46,12 @@ public class DishesSaveRequest
///
public string ImageUrl { get; set; }
+ ///
+ /// 单位
+ ///
+ [MinLength(1)]
+ public List Units { get; set; }
+
///
/// 是否启用
///
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
index 5fd05151..2db1f609 100644
--- a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
@@ -1,6 +1,4 @@
using Dlhis.Entity.Canteen.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
namespace Dlhis.Basic.Dishes.Response;
@@ -11,11 +9,6 @@ public class DishesMenuPageResponse
///
public string CustomCode { get; set; }
- ///
- /// 菜单类型
- ///
- public CanteenMenuEnumType Type { get; set; }
-
///
/// 所属营业点
///
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
index 520beaba..c2b58d8e 100644
--- a/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesResponse.cs
@@ -1,40 +1,35 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.AspNetCore.Utils.Extensions;
+using Kurisu.AspNetCore.Utils.Extensions;
+using Newtonsoft.Json;
namespace Dlhis.Basic.Dishes.Response;
public class DishesResponse
{
///
- /// 大类
+ /// 分类
///
- public string Categories { get; set; }
+ public Guid CategoryCode { get; set; }
///
- /// 小类
+ /// 分类
///
- public string SubCategories { get; set; }
+ public string CategoryName { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
///
/// 菜品编码
///
- public string Code { get; set; }
+ public string CustomCode { get; set; }
///
/// 菜品名称
///
public string Name { get; set; }
- ///
- /// 菜品类型
- ///
- public CanteenMenuEnumType Type { get; set; }
-
- ///
- /// 菜品类型描述
- ///
- public string TypeDescription => Type.GetDescription();
-
///
/// 描述
///
@@ -43,25 +38,23 @@ public class DishesResponse
///
/// 单价
///
- public decimal Amount { get; set; }
+ public decimal Price { get; set; }
///
/// 单位
///
- public string Unit { get; set; }
+ public List Units => CurrnetUnits.ToObject>();
+
+ [JsonIgnore]
+ public string CurrnetUnits { get; set; }
///
/// 图片
///
- public string Image { get; set; }
+ public string ImageUrl { get; set; }
///
/// 是否启用
///
public bool Enable { get; set; }
-
- ///
- /// 限售份数
- ///
- public int? RestrictedNum { get; set; } = null;
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index 249f22ad..79e4e9c8 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -64,7 +64,7 @@ public class DishesMenuService : IDishesMenuService
Number = number,
Price = price,
- Type = CanteenMenuEnumType.Booking,
+ Type = CanteenApplicaitonTypeEnumType.Booking,
Version = 0,
Enable = false,
};
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index e09fdeba..1f5f1e7d 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -8,7 +8,6 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
-using System.Collections.Generic;
namespace Dlhis.Basic.Dishes.Services.Implements;
@@ -28,9 +27,15 @@ public class DishesService : IDishesService
//todo 营业点权限
return await _dbContext.Queryable()
+ .LeftJoin((x, category) => x.CategoryCode == category.Code)
.WhereIF(request.Search.IsPresent(), x => x.CustomCode == request.Search || x.Name.Contains(request.Search))
.OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc)
- .Select()
+ .Select((x, category) => new DishesResponse
+ {
+ CurrnetUnits = x.Units.ToString(),
+ CategoryName = category.Name,
+
+ }, true)
.ToPageListAsync(request);
}
@@ -60,7 +65,7 @@ public class DishesService : IDishesService
.FirstAsync();
shift.ThrowIfNull($"营业点{request.PlaceCode}吗,没有餐别!");
- var BusinessShiftMealRelationships= await _dbContext.Queryable()
+ var BusinessShiftMealRelationships = await _dbContext.Queryable()
.Where(x => x.ShiftCode == shift.ShiftCode)
.Select()
.ToListAsync();
@@ -74,7 +79,7 @@ public class DishesService : IDishesService
{
payTypes.Add(BalanceRecordSourceEnumType.LocalTenantSubsidies);
}
-
+
var res = new GetDishesMenusBookingResponse
{
BusinessShiftMealRelationships = BusinessShiftMealRelationships,
diff --git a/Src/Dlhis.Common/ApiLog/ApiLogController.cs b/Src/Dlhis.Common/ApiLog/ApiLogController.cs
index 2a912ac4..355730be 100644
--- a/Src/Dlhis.Common/ApiLog/ApiLogController.cs
+++ b/Src/Dlhis.Common/ApiLog/ApiLogController.cs
@@ -3,7 +3,6 @@ using Dlhis.Common.Response;
using Dlhis.Common.Services.Implements;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Common.ApiLog
@@ -27,6 +26,7 @@ namespace Dlhis.Common.ApiLog
/// 获取api日志
///
///
+ [Authorize(Roles = "admin")]
[HttpGet("logs")]
public async Task> GetLogsAsync([FromQuery] ApiLogRequest request)
{
diff --git a/Src/Dlhis.Common/appsettings.Development.json b/Src/Dlhis.Common/appsettings.Development.json
index 11bc9e44..2b64c0f8 100644
--- a/Src/Dlhis.Common/appsettings.Development.json
+++ b/Src/Dlhis.Common/appsettings.Development.json
@@ -33,9 +33,9 @@
//服务器IP
"Endpoint": "http://192.168.199.124:9000",
//账号
- "AccessKey": "oQ7tD55EVNElIoO3D43r",
+ "AccessKey": "bmQOlK0COe5nL56kzGd3",
//密码
- "SecretKey": "3eWLaAFQ9fnFx8pOp5SgJogoF47ecAH6dcCWlyAp",
+ "SecretKey": "Udc5uBrGcT2yukfGXQtHKpqLQ27L1FmbrLyYunBr",
//默认存储桶
"DefaultBucket": "apk"
}
diff --git a/Src/Dlhis.Common/appsettings.json b/Src/Dlhis.Common/appsettings.json
index b73cd02e..9bcca65b 100644
--- a/Src/Dlhis.Common/appsettings.json
+++ b/Src/Dlhis.Common/appsettings.json
@@ -43,9 +43,9 @@
//服务器IP
"Endpoint": "http://192.168.199.124:9000",
//账号
- "AccessKey": "Zbjj05OFtR19e5TJopQU",
+ "AccessKey": "bmQOlK0COe5nL56kzGd3",
//密码
- "SecretKey": "UMXtNdZhufhAAyYJ3XND4cEgZNUsgOWtbUzksizK",
+ "SecretKey": "Udc5uBrGcT2yukfGXQtHKpqLQ27L1FmbrLyYunBr",
//apk默认存储桶
"DefaultBucket": "apk"
},
diff --git a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
index 868f7a44..4a95d47f 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs
@@ -139,5 +139,12 @@ public class BalanceRecordEntity : SugarBaseEntity, ITenantId
[SugarColumn(ColumnDescription = "备注")]
public string Remark { get; set; }
+ ///
+ /// 餐饮应用类型
+ ///
+ [SugarColumn(ColumnDescription = "餐饮应用类型", ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public CanteenApplicaitonTypeEnumType ApplicationType { get; set; }
+
+
public string TenantId { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
index b1c9977f..99fd60d5 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesEntity.cs
@@ -9,7 +9,7 @@ namespace Dlhis.Entity.Canteen.Entities;
/// 菜品表
///
[SugarTable(TableName = "Dishes", TableDescription = "菜品表")]
-public class DishesEntity : SugarBaseEntity, ITenantId
+public class DishesEntity : SugarBaseEntity, IImageUrl, ITenantId
{
///
/// 分类
@@ -20,6 +20,7 @@ public class DishesEntity : SugarBaseEntity, ITenantId
///
/// 营业点
///
+ [SugarColumn(ColumnDescription = "营业点", IsNullable = false)]
public Guid BusinessPlaceCode { get; set; }
///
@@ -47,6 +48,12 @@ public class DishesEntity : SugarBaseEntity, ITenantId
[SugarColumn(ColumnDescription = "单价")]
public decimal Price { get; set; }
+ ///
+ /// 单位
+ ///
+ [SugarColumn(ColumnDescription = "单位", IsJson = true, DefaultValue = "[]")]
+ public List Units { get; set; }
+
///
/// 图片
///
diff --git a/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
index 43780f04..5e1b0034 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
@@ -22,7 +22,7 @@ public class DishesMenuEntity : SugarBaseEntity, ITenantId, IVersion
/// 菜单类型
///
[SugarColumn(SqlParameterDbType = typeof(EnumToStringConvert))]
- public CanteenMenuEnumType Type { get; set; }
+ public CanteenApplicaitonTypeEnumType Type { get; set; }
///
/// 所属营业点
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenApplicaitonTypeEnumType.cs
similarity index 55%
rename from Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
rename to Src/Dlhis.Entity/Canteen/Enums/CanteenApplicaitonTypeEnumType.cs
index e1710105..00dcd22a 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenMenuEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/CanteenApplicaitonTypeEnumType.cs
@@ -3,26 +3,23 @@
namespace Dlhis.Entity.Canteen.Enums;
///
-/// 菜品类型 CanteenMenuEnumType
+/// 餐饮应用类型
///
-[Description("菜品类型")]
-public enum CanteenMenuEnumType
+[Description("餐饮应用类型")]
+public enum CanteenApplicaitonTypeEnumType
{
+ [Description("设备消费")]
+ Device = 100,
+
///
/// 订餐
///
[Description("订餐")]
- Booking = 1,
+ Booking = 200,
///
/// 扫码点餐
///
[Description("扫码点餐")]
- QrCode=2,
-
- ///
- /// 通用
- ///
- [Description("通用")]
- General = 3,
+ QrCode = 300,
}
diff --git a/Src/Dlhis.Entity/Canteen/Enums/CanteenOrderStatusEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/CanteenOrderStatusEnumType.cs
index 2a304386..9a670e93 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/CanteenOrderStatusEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/CanteenOrderStatusEnumType.cs
@@ -20,6 +20,11 @@ public enum CanteenOrderStatusEnumType
[Description("成功")]
Successful = 1,
+ ///
+ /// 取消
+ ///
+ [Description("取消")]
+ Cancel = 95,
///
/// 失败
diff --git a/Src/Dlhis.Entity/IImageUrl.cs b/Src/Dlhis.Entity/IImageUrl.cs
new file mode 100644
index 00000000..d08b1842
--- /dev/null
+++ b/Src/Dlhis.Entity/IImageUrl.cs
@@ -0,0 +1,6 @@
+namespace Dlhis.Entity;
+
+public interface IImageUrl
+{
+ public string ImageUrl { get; set; }
+}
From 2cbf894ea89cfc6af0ac2412f1967359a2819061 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 14:17:19 +0800
Subject: [PATCH 20/31] =?UTF-8?q?fix=20=20=E4=BF=AE=E6=94=B9=E8=90=A5?=
=?UTF-8?q?=E4=B8=9A=E7=82=B9=E8=BF=94=E5=9B=9E=E4=BD=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Basic.Api/Dlhis.Basic.Api.csproj | 4 ----
.../IBusinessPlacePermissionsApi.cs | 5 +++--
Src/Dlhis.Basic.Api/Response/BusinessPlaceDto.cs | 14 ++++++++++++++
Src/Dlhis.Basic.Api/Response/GetMyResponse.cs | 13 +++++++++++++
.../BusinessPlacePermissionsController.cs | 2 +-
.../BusinessPlace/Response/BusinessPlaceDto.cs | 8 ++++++++
.../BusinessPlace/Response/GetMyResponse.cs | 7 +++++++
.../Services/IBusinessPlacePermissionsService.cs | 2 +-
.../Implements/BusinessPlacePermissionsService.cs | 14 ++++++++++++--
.../Dishes/Services/Implements/DishesService.cs | 3 ++-
10 files changed, 61 insertions(+), 11 deletions(-)
create mode 100644 Src/Dlhis.Basic.Api/Response/BusinessPlaceDto.cs
create mode 100644 Src/Dlhis.Basic.Api/Response/GetMyResponse.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceDto.cs
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/GetMyResponse.cs
diff --git a/Src/Dlhis.Basic.Api/Dlhis.Basic.Api.csproj b/Src/Dlhis.Basic.Api/Dlhis.Basic.Api.csproj
index 2311965f..ae3784a1 100644
--- a/Src/Dlhis.Basic.Api/Dlhis.Basic.Api.csproj
+++ b/Src/Dlhis.Basic.Api/Dlhis.Basic.Api.csproj
@@ -10,8 +10,4 @@
-
-
-
-
diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
index 6d7e32c4..3b6be007 100644
--- a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
+++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs
@@ -1,4 +1,5 @@
-using Kurisu.Core.Result;
+using Dlhis.Basic.Api.Response;
+using Kurisu.Core.Result;
using Kurisu.RemoteCall.Attributes;
namespace Dlhis.Basic.Api;
@@ -8,5 +9,5 @@ public interface IBusinessPlacePermissionsApi
{
[Auth]
[Get("/api/businessplacepermissions/my")]
- Task>> GetMyBussinessPlacesAsync();
+ Task> GetMyAsync();
}
diff --git a/Src/Dlhis.Basic.Api/Response/BusinessPlaceDto.cs b/Src/Dlhis.Basic.Api/Response/BusinessPlaceDto.cs
new file mode 100644
index 00000000..cffafdb3
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/Response/BusinessPlaceDto.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Dlhis.Basic.Api.Response
+{
+ public class BusinessPlaceDto
+ {
+ public Guid Code { get; set; }
+ public string Name { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic.Api/Response/GetMyResponse.cs b/Src/Dlhis.Basic.Api/Response/GetMyResponse.cs
new file mode 100644
index 00000000..9e2df3ee
--- /dev/null
+++ b/Src/Dlhis.Basic.Api/Response/GetMyResponse.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Dlhis.Basic.Api.Response
+{
+ public class GetMyResponse
+ {
+ public List dtos { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
index 6a1e5913..1fe322e6 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
@@ -38,7 +38,7 @@ public class BusinessPlacePermissionsController
///
///
[HttpGet("my")]
- public async Task> GetMy()
+ public async Task GetMy()
{
return await _businessPlacePermissionsService.GetMyAsync();
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceDto.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceDto.cs
new file mode 100644
index 00000000..a5dd68f7
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceDto.cs
@@ -0,0 +1,8 @@
+namespace Dlhis.Basic.BusinessPlace.Response
+{
+ public class BusinessPlaceDto
+ {
+ public Guid Code { get; set; }
+ public string Name { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/GetMyResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/GetMyResponse.cs
new file mode 100644
index 00000000..1a3b6fd2
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/GetMyResponse.cs
@@ -0,0 +1,7 @@
+namespace Dlhis.Basic.BusinessPlace.Response
+{
+ public class GetMyResponse
+ {
+ public List dtos { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
index ee6980f4..cbae1cfc 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs
@@ -10,5 +10,5 @@ public interface IBusinessPlacePermissionsService : IScopeDependency
Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request);
- Task> GetMyAsync();
+ Task GetMyAsync();
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
index d8d22f27..55d1fdca 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs
@@ -24,15 +24,25 @@ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService
throw new NotImplementedException();
}
- public async Task> GetMyAsync()
+ public async Task GetMyAsync()
{
var userId = _currentUser.GetIntSubjectId();
- return await _dbContext.Queryable()
+ 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)
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index e09fdeba..57835236 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -9,6 +9,7 @@ using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
using System.Collections.Generic;
+using System.Globalization;
namespace Dlhis.Basic.Dishes.Services.Implements;
@@ -67,7 +68,7 @@ public class DishesService : IDishesService
// 读取配置中的时间
var eightThirtyPmStr = _configuration["EightThirtyPM"];
- DateTime.TryParseExact(eightThirtyPmStr, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out var dateTime);
+ DateTime.TryParseExact(eightThirtyPmStr, "HH:mm:ss", null, DateTimeStyles.None, out var dateTime);
var payTypes = new List { BalanceRecordSourceEnumType.Cash };
if (shift.TenantId == request.Factory)
From fd4a925b4ae858d54d5a3a4f64104bd7a1ce3fc6 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 14:21:19 +0800
Subject: [PATCH 21/31] =?UTF-8?q?fix=20=E6=A3=80=E9=AA=8C=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dishes/Services/Implements/DishesMenuService.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index 79e4e9c8..a3904276 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -36,7 +36,9 @@ public class DishesMenuService : IDishesMenuService
CheckDuplicateData(request);
//检验权限
- var myBps = await _businessPlacePermissionsService.GetMyAsync();
+ var res = await _businessPlacePermissionsService.GetMyAsync();
+ var myBps = res.dtos.Select(x => x.Code).ToList();
+
myBps.Contains(request.BusinessPlaceCode).ThrowIfFalse("当前经营营业点,无法保存菜单");
var entities = request.Items.SelectMany(item =>
From 0124fa4bc9b1ef9bdd3b70fbfe6b693911426b79 Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Mon, 18 Mar 2024 14:44:15 +0800
Subject: [PATCH 22/31] =?UTF-8?q?fix=20=E8=8E=B7=E5=8F=96=E8=AE=A2?=
=?UTF-8?q?=E9=A4=90=E6=9C=80=E6=99=9A=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Services/Implements/DishesService.cs | 54 ++++++++++++-------
Src/Dlhis.Basic/appsettings.json | 1 -
.../Response/GetMiniProgramOrderResponse.cs | 24 +++------
3 files changed, 42 insertions(+), 37 deletions(-)
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index dc6f7ea4..7a7245ce 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -8,6 +8,7 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
+using System;
namespace Dlhis.Basic.Dishes.Services.Implements;
@@ -60,33 +61,46 @@ public class DishesService : IDishesService
public async Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
{
- var shift = await _dbContext.Queryable()
+ try
+ {
+ var shift = await _dbContext.Queryable()
.Where(x => x.PlaceCode == request.PlaceCode)
.FirstAsync();
- shift.ThrowIfNull($"营业点{request.PlaceCode}吗,没有餐别!");
- var BusinessShiftMealRelationships = await _dbContext.Queryable()
- .Where(x => x.ShiftCode == shift.ShiftCode)
- .Select()
- .ToListAsync();
+ var BusinessShiftMealRelationships = await _dbContext.Queryable()
+ .Where(x => x.ShiftCode == shift.ShiftCode)
+ .Select()
+ .ToListAsync();
- // 读取配置中的时间
- var eightThirtyPmStr = _configuration["EightThirtyPM"];
- DateTime.TryParseExact(eightThirtyPmStr, "HH:mm:ss", null, DateTimeStyles.None, out var dateTime);
+ // 读取最晚订餐的时间
+ var strDatetime = await _dbContext.Queryable()
+ .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Tenant && x.Item == CanteenSettingItemEnumType.BookingDeadline && x.Enable)
+ .Select(x => x.Value)
+ .FirstAsync();
- var payTypes = new List { BalanceRecordSourceEnumType.Cash };
- if (shift.TenantId == request.Factory)
- {
- payTypes.Add(BalanceRecordSourceEnumType.LocalTenantSubsidies);
+ DateTime dateTime;
+ DateTime.TryParseExact(strDatetime, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out dateTime);
+
+
+ var payTypes = new List { BalanceRecordSourceEnumType.Cash };
+ if (shift.TenantId == request.Factory)
+ {
+ payTypes.Add(BalanceRecordSourceEnumType.LocalTenantSubsidies);
+ }
+
+ var res = new GetDishesMenusBookingResponse
+ {
+ BusinessShiftMealRelationships = BusinessShiftMealRelationships,
+ ServiceTime = dateTime,
+ PayType = payTypes
+ };
+ return res;
}
-
- var res = new GetDishesMenusBookingResponse
+ catch (Exception ex)
{
- BusinessShiftMealRelationships = BusinessShiftMealRelationships,
- ServiceTime = dateTime,
- PayType = payTypes
- };
- return res;
+ return new GetDishesMenusBookingResponse();
+ }
+
}
}
diff --git a/Src/Dlhis.Basic/appsettings.json b/Src/Dlhis.Basic/appsettings.json
index 2fb5ccec..7c564ae2 100644
--- a/Src/Dlhis.Basic/appsettings.json
+++ b/Src/Dlhis.Basic/appsettings.json
@@ -5,7 +5,6 @@
"Microsoft.AspNetCore": "Warning"
}
},
- "EightThirtyPM": "20:30:00",
"AllowedHosts": "*",
"InternalRequest": {
"CommonRequestUrl": "http://common",
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
index 37998819..423ddb92 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
@@ -110,24 +110,16 @@ public class GetMiniProgramOrderResponse
///
public MiniProgramOrderStatusEnumType OrderStatus { get; set; }
- ///
- /// 订单状态CN
- ///
- public string OrderStatusCN => OrderStatus.GetDescription();
+ ///
+ /// 订单状态CN
+ ///
+ public string OrderStatusCN => OrderStatus.GetDescription();
- ///
- /// 订单类型
- ///
- public CanteenMenuEnumType OrderType { get; set; }
- ///
- /// 订单类型CN
- ///
- public string OrderTypeCN => OrderType.GetDescription();
- ///
- /// 总金额
- ///
- public decimal TotalAmount { get; set; }
+ ///
+ /// 总金额
+ ///
+ public decimal TotalAmount { get; set; }
}
From 9ef57fba556c1da0796ea28e927ce4cd731e8554 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 15:09:16 +0800
Subject: [PATCH 23/31] =?UTF-8?q?fix=20=E6=9E=9A=E4=B8=BEcode=E8=BF=87?=
=?UTF-8?q?=E6=BB=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Common/EnumSetting/EnumsController.cs | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/Src/Dlhis.Common/EnumSetting/EnumsController.cs b/Src/Dlhis.Common/EnumSetting/EnumsController.cs
index fde3ebb5..f76610bf 100644
--- a/Src/Dlhis.Common/EnumSetting/EnumsController.cs
+++ b/Src/Dlhis.Common/EnumSetting/EnumsController.cs
@@ -33,8 +33,7 @@ public class EnumsController : ControllerBase
{
var types = Assembly.Load("Dlhis.Entity")
.GetTypes()
- .Where(x => x.IsEnum)
- .WhereIf(code.IsPresent(), x => x.Name == code);
+ .Where(x => x.IsEnum);
var result = types.Select(x =>
{
@@ -78,7 +77,7 @@ public class EnumsController : ControllerBase
result.Add(GetCurrentEnums("LogLevel", "日志级别", typeof(LogLevel)));
- return result;
+ return result.WhereIf(code.IsPresent(), x => x.Code == code).ToList();
}
From 805f0f83d1f71809d740c6f5f4ad7c4e64363d26 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 15:11:38 +0800
Subject: [PATCH 24/31] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2,=E5=A2=9E=E5=8A=A0=E8=AF=A6=E6=83=85=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controller/DishesMenusController.cs | 15 +++++-
.../Dishes/Request/DishesPageRequest.cs | 5 +-
.../Dishes/Response/DishesDetailResponse.cs | 51 +++++++++++++++++++
.../Dishes/Response/DishesMenuPageResponse.cs | 2 +
.../Dishes/Services/IDishesService.cs | 4 +-
.../Services/Implements/DishesMenuService.cs | 2 +-
.../Services/Implements/DishesService.cs | 8 +++
7 files changed, 82 insertions(+), 5 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Response/DishesDetailResponse.cs
diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
index d8dcb221..31c24e25 100644
--- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
+++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs
@@ -86,15 +86,26 @@ public class DishesMenusController : ControllerBase
await _dishesService.SaveDishesAsync(request);
}
+ ///
+ /// 根据id获取菜品详情
+ ///
+ ///
+ ///
+ [HttpGet("dishes/detail/{id}")]
+ public async Task GetDishesDetailByIdAsync(long id)
+ {
+ return await _dishesService.GetDishesDetailByIdAsync(id);
+ }
+
///
/// 获取预定送餐配置
///
///
[HttpGet("setting")]
- public async Task GetDishesMenusBookingSetting([FromQuery]GetDishesMenusBookingRequest request)
+ public async Task GetDishesMenusBookingSetting([FromQuery] GetDishesMenusBookingRequest request)
{
- return await _dishesService.GetDishesMenusBookingSetting(request);
+ return await _dishesService.GetDishesMenusBookingSetting(request);
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
index 6d351367..eb9eac9a 100644
--- a/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
+++ b/Src/Dlhis.Basic/Dishes/Request/DishesPageRequest.cs
@@ -4,5 +4,8 @@ namespace Dlhis.Basic.Dishes.Request;
public class DishesPageRequest : PageDto
{
-
+ ///
+ /// 营业点
+ ///
+ public List BusinessPlaceCodes { get; set; }
}
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesDetailResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesDetailResponse.cs
new file mode 100644
index 00000000..ce412352
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesDetailResponse.cs
@@ -0,0 +1,51 @@
+namespace Dlhis.Basic.Dishes.Response;
+
+public class DishesDetailResponse
+{
+ public long Id { get; set; }
+
+ ///
+ /// 分类
+ ///
+ public Guid CategoryCode { get; set; }
+
+ ///
+ /// 营业点
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
+ ///
+ /// 菜品编码
+ ///
+ public string CustomCode { get; set; }
+
+ ///
+ /// 菜品名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ ///
+ /// 单价
+ ///
+ public decimal Price { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public List Units { get; set; }
+
+ ///
+ /// 图片
+ ///
+ public string ImageUrl { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
index 2db1f609..3ccf7192 100644
--- a/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/DishesMenuPageResponse.cs
@@ -4,6 +4,8 @@ namespace Dlhis.Basic.Dishes.Response;
public class DishesMenuPageResponse
{
+ public long? Id { get; set; }
+
///
/// 菜单编码
///
diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
index f4398736..6d6830a9 100644
--- a/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/IDishesService.cs
@@ -10,6 +10,8 @@ public interface IDishesService : IScopeDependency
Task SaveDishesAsync(DishesSaveRequest request);
+ Task GetDishesDetailByIdAsync(long id);
+
Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request);
-
+
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index a3904276..7a97da7d 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -39,7 +39,7 @@ public class DishesMenuService : IDishesMenuService
var res = await _businessPlacePermissionsService.GetMyAsync();
var myBps = res.dtos.Select(x => x.Code).ToList();
- myBps.Contains(request.BusinessPlaceCode).ThrowIfFalse("当前经营营业点,无法保存菜单");
+ myBps.Contains(request.BusinessPlaceCode).ThrowIfFalse("非经营营业点,无法保存菜单");
var entities = request.Items.SelectMany(item =>
{
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index 7a7245ce..51be49b2 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -30,6 +30,7 @@ public class DishesService : IDishesService
return await _dbContext.Queryable()
.LeftJoin((x, category) => x.CategoryCode == category.Code)
.WhereIF(request.Search.IsPresent(), x => x.CustomCode == request.Search || x.Name.Contains(request.Search))
+ .WhereIF(request.BusinessPlaceCodes.IsPresent(), x => request.BusinessPlaceCodes.Contains(x.BusinessPlaceCode))
.OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc)
.Select((x, category) => new DishesResponse
{
@@ -103,4 +104,11 @@ public class DishesService : IDishesService
}
+ public async Task GetDishesDetailByIdAsync(long id)
+ {
+ return await _dbContext.Queryable()
+ .Where(x => x.Id == id)
+ .Select()
+ .SingleAsync();
+ }
}
From 068a5b9507fcc22407c4a25ca784126c118368a0 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 15:11:56 +0800
Subject: [PATCH 25/31] =?UTF-8?q?add=20=E8=A1=A5=E5=85=85=E5=AE=9E?=
=?UTF-8?q?=E4=BD=93=E5=8F=98=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
index 5e1b0034..928c9040 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/DishesMenuEntity.cs
@@ -21,7 +21,7 @@ public class DishesMenuEntity : SugarBaseEntity, ITenantId, IVersion
///
/// 菜单类型
///
- [SugarColumn(SqlParameterDbType = typeof(EnumToStringConvert))]
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
public CanteenApplicaitonTypeEnumType Type { get; set; }
///
From 8307d1d9419e2b04314263a891560fe97a0e6582 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 15:57:18 +0800
Subject: [PATCH 26/31] =?UTF-8?q?fix=20=E9=A4=90=E6=AC=A1=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E8=A1=A5=E5=85=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/BusinessPlacesController.cs | 6 +--
.../Response/BusinessPlaceListResponse.cs | 11 +++++
.../Response/BusinessPlaceResponse.cs | 4 +-
.../Services/IBusinessPlaceService.cs | 2 +-
.../Implements/BusinessPlaceService.cs | 40 +++++++++++++++++--
5 files changed, 53 insertions(+), 10 deletions(-)
create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
index 09b347a6..acbc9541 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
@@ -43,9 +43,9 @@ public class BusinessPlacesController : ControllerBase
///
///
[HttpGet("list")]
- public async Task> GetOpenedListAsync()
+ public async Task> GetOpenedListAsync(Guid? placeCode)
{
- return await _businessPlaceService.GetOpenedListAsync();
+ return await _businessPlaceService.GetOpenedListAsync(placeCode);
}
///
@@ -100,7 +100,7 @@ public class BusinessPlacesController : ControllerBase
///
///
[HttpGet("devicenos")]
- public async Task> GetDevicesByCode([FromQuery]BusinessPlaceGetByCodeRequest request)
+ public async Task> GetDevicesByCode([FromQuery] BusinessPlaceGetByCodeRequest request)
{
return await _businessPlaceShiftService.GetDevicesByCode(request);
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
new file mode 100644
index 00000000..8010fb57
--- /dev/null
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
@@ -0,0 +1,11 @@
+using Dlhis.Entity.Canteen.Enums;
+
+namespace Dlhis.Basic.BusinessPlace.Response;
+
+public class BusinessPlaceListResponse : BusinessPlaceResponse
+{
+ ///
+ /// 餐次
+ ///
+ public List ShiftTypes { get; set; }
+}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceResponse.cs
index ae186627..acc4bf9f 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceResponse.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceResponse.cs
@@ -50,12 +50,12 @@ public class BusinessPlaceResponse
///
- /// 餐次code
+ /// 餐别code
///
public Guid? ShiftCode { get; set; }
///
- /// 餐次名称
+ /// 餐别名称
///
public string ShiftName { get; set; }
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlaceService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlaceService.cs
index 2ada296c..7228c137 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlaceService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlaceService.cs
@@ -17,7 +17,7 @@ public interface IBusinessPlaceService : IScopeDependency
/// 获取可用的营业点
///
///
- Task> GetOpenedListAsync();
+ Task> GetOpenedListAsync(Guid? placeCode);
///
/// 保存营业点
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
index 17e4f88e..0baabf27 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
@@ -49,12 +49,44 @@ public class BusinessPlaceService : IBusinessPlaceService
}
- public async Task> GetOpenedListAsync()
+ public async Task> GetOpenedListAsync(Guid? placeCode)
{
- return await _dbContext.Queryable()
- .Where(x => x.Status == CanteenBusinessPlaceStatusEnumType.Opened)
- .Select()
+ var list = await _dbContext.Queryable()
+ .LeftJoin((x, ps) => x.Code == ps.PlaceCode)
+ .LeftJoin((x, ps, s) => s.Code == ps.ShiftCode)
+ .Where(x => x.Status == CanteenBusinessPlaceStatusEnumType.Opened)
+ .WhereIF(placeCode.HasValue, x => x.Code == placeCode)
+ .Select((x, ps, s) => new BusinessPlaceListResponse
+ {
+ Id = x.Id,
+ Code = x.Code,
+ Status = x.Status,
+ Name = x.Name,
+ Catalog = x.Catalog,
+ CustomCode = x.CustomCode,
+ Source = x.Source,
+ Supplier = x.Supplier,
+ ShiftCode = s.Code,
+ ShiftName = s.Name,
+ })
.ToListAsync();
+
+ var shiftCodes = list.Where(x => x.ShiftCode.HasValue).Select(x => x.ShiftCode.Value).ToList();
+
+ var shiftTypes = await _dbContext.Queryable()
+ .Where(x => shiftCodes.Contains(x.ShiftCode))
+ .Select(x => new { x.ShiftCode, x.ShiftType })
+ .ToListAsync();
+
+ list.ForEach(item =>
+ {
+ if (item.ShiftCode.HasValue)
+ {
+ item.ShiftTypes = shiftTypes.Where(x => x.ShiftCode == item.ShiftCode.Value).Select(x => x.ShiftType).ToList();
+ }
+ });
+
+ return list;
}
From 8f26e7e84bcbd1b7131b5ab06d022634112d9301 Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 16:11:45 +0800
Subject: [PATCH 27/31] =?UTF-8?q?fix=20=E5=8F=82=E6=95=B0=E7=BB=93?=
=?UTF-8?q?=E6=9E=84=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BusinessPlace/Response/BusinessPlaceListResponse.cs | 2 +-
.../BusinessPlace/Services/Implements/BusinessPlaceService.cs | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
index 8010fb57..e1ad436b 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceListResponse.cs
@@ -7,5 +7,5 @@ public class BusinessPlaceListResponse : BusinessPlaceResponse
///
/// 餐次
///
- public List ShiftTypes { get; set; }
+ public List> ShiftTypes { get; set; }
}
diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
index 0baabf27..79a25b9f 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs
@@ -82,7 +82,9 @@ public class BusinessPlaceService : IBusinessPlaceService
{
if (item.ShiftCode.HasValue)
{
- item.ShiftTypes = shiftTypes.Where(x => x.ShiftCode == item.ShiftCode.Value).Select(x => x.ShiftType).ToList();
+ item.ShiftTypes = shiftTypes.Where(x => x.ShiftCode == item.ShiftCode.Value)
+ .Select(x => new Dictionary() { [(int)x.ShiftType] = x.ShiftType.GetDescription() })
+ .ToList();
}
});
From c4b48131d2554961cafa3af908fb640ffcae640a Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Mon, 18 Mar 2024 16:59:45 +0800
Subject: [PATCH 28/31] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E9=80=81?=
=?UTF-8?q?=E9=A4=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BusinessPlacePermissionsController.cs | 4 +-
.../Dishes/Request/DisheMenuPageRequest.cs | 5 +
.../Order/Request/BookingMealRequest.cs | 5 +
.../Response/GetMiniProgramOrderResponse.cs | 125 ------------------
.../Order/Services/Implements/OrderService.cs | 31 ++++-
5 files changed, 40 insertions(+), 130 deletions(-)
delete mode 100644 Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
index 1fe322e6..99ac821c 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs
@@ -10,7 +10,7 @@ namespace Dlhis.Basic.BusinessPlace.Controllers;
///
/// 营业点管理
///
-[Authorize(Roles = "admin")]
+[Authorize]
[Route("api/[controller]")]
[ApiController]
public class BusinessPlacePermissionsController
@@ -27,6 +27,7 @@ public class BusinessPlacePermissionsController
///
///
///
+ [Authorize(Roles = "admin,tenant-admin")]
[HttpGet("page")]
public async Task> GetPageAsync([FromQuery] BusinessPlacePermissionPageRequest request)
{
@@ -49,6 +50,7 @@ public class BusinessPlacePermissionsController
///
///
///
+ [Authorize(Roles = "admin,tenant-admin")]
[HttpPost("save")]
public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request)
{
diff --git a/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs b/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
index 5977e98e..4494f433 100644
--- a/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
+++ b/Src/Dlhis.Basic/Dishes/Request/DisheMenuPageRequest.cs
@@ -5,6 +5,11 @@ namespace Dlhis.Basic.Dishes.Request;
public class DisheMenuPageRequest : PageDto
{
+ ///
+ /// 营业点code
+ ///
+ public Guid BusinessPlaceCode { get; set; }
+
///
/// 餐次
///
diff --git a/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs b/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
index d9649ab1..9872a497 100644
--- a/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BookingMealRequest.cs
@@ -41,6 +41,11 @@ public class BookingMealRequest : IValidatableObject
{
BookingDate = BookingDate.Date;
+ if (DateTime.Now.Date >= BookingDate)
+ {
+ yield return new ValidationResult("订餐日期小于当天", new[] { nameof(BookingDate) });
+ }
+
yield break;
}
}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
deleted file mode 100644
index 423ddb92..00000000
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using Kurisu.AspNetCore.Utils.Extensions;
-
-namespace Dlhis.Canteen.Order.Response;
-
-public class GetMiniProgramOrderResponse
-{
- ///
- /// 订单号
- ///
- public string No { get; set; }
-
- ///
- /// 姓名
- ///
- public string Name { get; set; }
-
- ///
- /// 工号
- ///
- public string Code { get; set; }
-
- ///
- /// 人事范围
- ///
- public string Werks { get; set; }
-
- ///
- /// 部门编码
- ///
- public string DepartmentNo { get; set; }
-
- ///
- /// 部门名称
- ///
- public string DepartmentName { get; set; }
-
- ///
- /// 成本中心
- ///
- public string CostId { get; set; }
-
- ///
- /// 工作地
- ///
- public string Workplace { get; set; }
-
- ///
- /// 厂区
- ///
- public string Factory { get; set; }
-
- ///
- /// 营业点
- ///
- public Guid PlaceCode { get; set; }
-
- ///
- /// 营业名称
- ///
- public string PlaceName { get; set; }
-
- ///
- /// 餐次
- ///
- public ShiftEnumType ShiftType { get; set; }
-
- ///
- /// 餐次CN
- ///
- public string ShiftTypeCN => ShiftType.GetDescription();
-
- ///
- /// 菜品
- ///
- public Guid DishesCode { get; set; }
-
- ///
- /// 菜品名称
- ///
- public string DishesName { get; set; }
-
- ///
- /// 手机号码
- ///
- public string Phone { get; set; }
-
- ///
- /// 用餐日期
- ///
- public DateOnly SysDate { get; set; }
-
- ///
- /// 下单时间
- ///
- public DateTime CostDate { get; set; }
-
- ///
- /// 支付方式
- ///
- public BalanceRecordSourceEnumType PayType { get; set; }
-
- ///
- /// 支付方式CN
- ///
- public string PayTypeCN => PayType.GetDescription();
-
- ///
- /// 订单状态
- ///
- public MiniProgramOrderStatusEnumType OrderStatus { get; set; }
-
- ///
- /// 订单状态CN
- ///
- public string OrderStatusCN => OrderStatus.GetDescription();
-
-
-
- ///
- /// 总金额
- ///
- public decimal TotalAmount { get; set; }
-
-}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
index 2abe09aa..e390d2ca 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
@@ -64,6 +64,8 @@ public class OrderService : IOrderService
public async Task Booking(BookingMealRequest request)
{
+ await CheckExistsMyBookingsAsync(request.BookingDate);
+
var jinkoCode = _currentUser.GetUserClaim("jinko-code");
var gainfo = await _dbContext.Queryable().Where(x => x.Code == jinkoCode).FirstAsync();
@@ -87,6 +89,7 @@ public class OrderService : IOrderService
RequestJson = request.ToJson(),
ThirdNo = string.Empty,
Type = BalanceRecordTypeEnumType.Out,
+ ApplicationType = CanteenApplicaitonTypeEnumType.Booking,
Name = gainfo.Name,
Source = request.Source,
UserNo = gainfo.No,
@@ -129,10 +132,7 @@ public class OrderService : IOrderService
var canteenUser = await _dbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync();
//金额+-
canteenUser.Balance += order.Amount;
- if (canteenUser.Balance < 0)
- {
- throw new UserFriendlyException("余额不足,无法消费");
- }
+ (canteenUser.Balance < 0).ThrowIfTrue("余额不足,无法消费");
var effect = await _dbContext.Updateable()
.SetColumns(x => x.Balance == canteenUser.Balance)
@@ -168,6 +168,7 @@ public class OrderService : IOrderService
}, 10);
}
+
public async Task DeviceConsume(OrderAddRequest request)
{
return await AddAsync(request);
@@ -303,6 +304,7 @@ public class OrderService : IOrderService
RequestJson = request.ToJson(),
ThirdNo = request.ThirdNo,
Type = BalanceRecordTypeEnumType.Out,
+ ApplicationType = CanteenApplicaitonTypeEnumType.Device,
Name = gainfo.Name,
Source = request.Source,
UserNo = gainfo.No,
@@ -643,4 +645,25 @@ public class OrderService : IOrderService
}, 5);
}
+
+ ///
+ /// 检查我的订餐是否存在,存在抛出异常
+ ///
+ ///
+ ///
+ private async Task CheckExistsMyBookingsAsync(DateTime bookingDate)
+ {
+ var jinkoCode = _currentUser.GetUserClaim("jinko-code");
+ var gainfo = await _dbContext.Queryable().Where(x => x.Code == jinkoCode).FirstAsync();
+
+ var start = bookingDate.Date;
+ var end = start.AddDays(1).AddSeconds(-1);
+
+ var exists = await _dbContext.Queryable().Where(x => x.ApplicationType == CanteenApplicaitonTypeEnumType.Booking)
+ .Where(x => x.UserNo == gainfo.No)
+ .Where(x => x.CreateTime >= start && x.CreateTime <= end)
+ .AnyAsync();
+
+ exists.ThrowIfTrue("不可重复订餐");
+ }
}
From ed25ab626ad5461e63e07c2ab9b4ddfa2e90cb6d Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Tue, 19 Mar 2024 09:58:31 +0800
Subject: [PATCH 29/31] =?UTF-8?q?fix=20=E8=BF=94=E5=9B=9E=E6=94=AF?=
=?UTF-8?q?=E4=BB=98=E6=96=B9=E5=BC=8F=E4=B8=AD=E6=96=87=E6=8F=8F=E8=BF=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Response/BalanceRecordSourceEnumDto.cs | 11 ++++
.../Response/GetDishesMenusBookingResponse.cs | 2 +-
.../Services/Implements/DishesService.cs | 64 ++++++++++---------
3 files changed, 47 insertions(+), 30 deletions(-)
create mode 100644 Src/Dlhis.Basic/Dishes/Response/BalanceRecordSourceEnumDto.cs
diff --git a/Src/Dlhis.Basic/Dishes/Response/BalanceRecordSourceEnumDto.cs b/Src/Dlhis.Basic/Dishes/Response/BalanceRecordSourceEnumDto.cs
new file mode 100644
index 00000000..9740a562
--- /dev/null
+++ b/Src/Dlhis.Basic/Dishes/Response/BalanceRecordSourceEnumDto.cs
@@ -0,0 +1,11 @@
+using Dlhis.Entity.Canteen.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
+
+namespace Dlhis.Basic.Dishes.Response
+{
+ public class BalanceRecordSourceEnumDto
+ {
+ public BalanceRecordSourceEnumType Type { get; set; }
+ public string TypeCN => Type.GetDescription();
+ }
+}
diff --git a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
index 5d21e26f..5473a443 100644
--- a/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
+++ b/Src/Dlhis.Basic/Dishes/Response/GetDishesMenusBookingResponse.cs
@@ -10,6 +10,6 @@ namespace Dlhis.Basic.Dishes.Response
public DateTime ServiceTime { get; set; }
- public List PayType { get; set; }
+ public List PayTypes { get; set; }
}
}
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
index 51be49b2..08b29ecd 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
@@ -62,47 +62,52 @@ public class DishesService : IDishesService
public async Task GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
{
- try
+ // 读取最晚订餐的时间
+ var strDatetime = await _dbContext.Queryable()
+ .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Tenant && x.Item == CanteenSettingItemEnumType.BookingDeadline && x.Enable)
+ .Select(x => x.Value)
+ .FirstAsync();
+
+ DateTime dateTime;
+ DateTime.TryParseExact(strDatetime, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out dateTime);
+
+ var res = new GetDishesMenusBookingResponse
{
- var shift = await _dbContext.Queryable()
+ ServiceTime = dateTime,
+ };
+
+ var shift = await _dbContext.Queryable()
.Where(x => x.PlaceCode == request.PlaceCode)
.FirstAsync();
- var BusinessShiftMealRelationships = await _dbContext.Queryable()
- .Where(x => x.ShiftCode == shift.ShiftCode)
- .Select()
- .ToListAsync();
+ var payTypes = new List();
+ var dto1 = new BalanceRecordSourceEnumDto
+ {
+ Type = BalanceRecordSourceEnumType.Cash
+ };
+ payTypes.Add(dto1);
- // 读取最晚订餐的时间
- var strDatetime = await _dbContext.Queryable()
- .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Tenant && x.Item == CanteenSettingItemEnumType.BookingDeadline && x.Enable)
- .Select(x => x.Value)
- .FirstAsync();
+ if (shift != null)
+ {
+ var businessShiftMealRelationships = await _dbContext.Queryable()
+ .Where(x => x.ShiftCode == shift.ShiftCode)
+ .Select()
+ .ToListAsync();
+ res.BusinessShiftMealRelationships = businessShiftMealRelationships;
- DateTime dateTime;
- DateTime.TryParseExact(strDatetime, "HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out dateTime);
-
-
- var payTypes = new List { BalanceRecordSourceEnumType.Cash };
if (shift.TenantId == request.Factory)
{
- payTypes.Add(BalanceRecordSourceEnumType.LocalTenantSubsidies);
+ var dto2 = new BalanceRecordSourceEnumDto
+ {
+ Type = BalanceRecordSourceEnumType.LocalTenantSubsidies
+ };
+ payTypes.Add(dto2);
}
- var res = new GetDishesMenusBookingResponse
- {
- BusinessShiftMealRelationships = BusinessShiftMealRelationships,
- ServiceTime = dateTime,
- PayType = payTypes
- };
- return res;
}
- catch (Exception ex)
- {
- return new GetDishesMenusBookingResponse();
+ res.PayTypes = payTypes;
+ return res;
}
-
- }
public async Task GetDishesDetailByIdAsync(long id)
{
@@ -112,3 +117,4 @@ public class DishesService : IDishesService
.SingleAsync();
}
}
+
From 1cd9b2467e6ac8d79a46d7ea8c9d8930a635b6cc Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Tue, 19 Mar 2024 10:24:41 +0800
Subject: [PATCH 30/31] Squashed commit of the following:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
commit d4ab7d407a141b80024f85eeaab0062bea016051
Author: liguoyang
Date: Tue Mar 19 10:23:30 2024 +0800
merge error
commit 6204fa4ed15e0be303f7eb62307476725b8e7e36
Merge: 7290f0b aaeacf4
Author: liguoyang
Date: Tue Mar 19 10:19:41 2024 +0800
Merge branch 'feat-PlacePermission' of https://git.dlhis.com/liguoyang/jinko.yikatong into feat-PlacePermission
commit 7290f0bd822c0e2bd957908fd58f6e99f22ad46b
Author: cheche <717840555@qq.com>
Date: Tue Mar 12 15:05:28 2024 +0800
fix 获取用户权限设备 优化
commit 41b94fa3a9596a38cda1b4bf4f345ce13fe5677a
Author: cheche <717840555@qq.com>
Date: Tue Mar 12 13:13:23 2024 +0800
fix 第一
commit aaeacf4ffa778eb6a6104e2349357644d038151b
Author: cheche <717840555@qq.com>
Date: Tue Mar 12 15:05:28 2024 +0800
fix 获取用户权限设备 优化
commit 9e6099c52d0318cba35e7c082cb4d3085b46b0fa
Author: cheche <717840555@qq.com>
Date: Tue Mar 12 14:00:53 2024 +0800
fix 营业点配置权限
commit b4565e34f48da0e5ef1d3dffa59d0ccf0d950920
Author: cheche <717840555@qq.com>
Date: Tue Mar 12 13:13:23 2024 +0800
fix 第一
---
.../Implements/DevicePermissionService.cs | 72 +++++++++++++++++--
.../Sys/Enums/DeviceAssignmentTypeEnumType.cs | 8 ++-
2 files changed, 73 insertions(+), 7 deletions(-)
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
index 35c4d5a1..d72d3f38 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
@@ -11,6 +11,7 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.Core.DataAccess.Entity;
using Kurisu.Core.User.Abstractions;
using Kurisu.SqlSugar.Services;
+using SqlSugar;
namespace Dlhis.Basic.Device.Services.Implements;
@@ -302,6 +303,9 @@ public class DevicePermissionService : IDevicePermissionService
///
public async Task> GetAssignDeviceCodesAsync(string userNo)
{
+ var devices = await _dbContext.Queryable().ToListAsync();
+ var deviceRegistries = await _dbContext.Queryable().ToListAsync();
+
var gainfo = await _dbContext.Queryable().Where(x => x.No == userNo).SingleAsync();
var gainfoGroups = await _dbContext.Queryable().ToListAsync();
@@ -309,7 +313,7 @@ public class DevicePermissionService : IDevicePermissionService
var deviceGroups = await _dbContext.Queryable().ToListAsync();
var deviceRelationships = await _dbContext.Queryable().ToListAsync();
- var result = GetAssignDeviceCodesInternal(gainfo, gainfoGroups, devicePermissions, deviceGroups, deviceRelationships);
+ var result = GetAssignDeviceCodesInternal(gainfo, gainfoGroups, devicePermissions, deviceGroups, deviceRelationships, deviceRegistries, devices);
return result.SelectMany(x => x.Codes).ToList();
}
@@ -321,13 +325,22 @@ public class DevicePermissionService : IDevicePermissionService
///
public async Task> GetAssigmentByCodeAsync(AssigmentByCodeRequest request)
{
+ var lst1 = new List();
//所有设备guid
var gds = await GetAssignmentsAsync(DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.User, request.No);
+ if (gds != null && gds.Count > 0)
+ {
+ lst1.AddRange(gds);
+ }
//所有设备组guid
var ggs = await GetAssignmentsAsync(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, request.No);
+ //所有营业点guid
+ var gps = await GetAssignmentsAsync(DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.User, request.No);
+
var devices = await _dbContext.Queryable().ToListAsync();
+ var regiss = await _dbContext.Queryable().ToListAsync();
if (ggs != null && ggs.Count > 0)
{
@@ -337,11 +350,23 @@ public class DevicePermissionService : IDevicePermissionService
.Where(x => x.GroupCode == gid)
.Select(x => x.DeviceCode)
.ToListAsync();
- gds.AddRange(ds);
+ lst1.AddRange(ds);
+ }
+ }
+ if (gps != null && gps.Count > 0)
+ {
+ foreach (var placeCode in gps)
+ {
+ var nos = regiss.Where(x => x.BusinessPlaceCode == placeCode)
+ .Select(x => x.DeviceUniqueNo).ToList();
+
+ var dcodes = devices.Where(d => nos.Contains(d.UniqueNo))
+ .Select(d => d.Code).ToList();
+ lst1.AddRange(dcodes);
}
}
- var dds = gds.Distinct().ToList();
+ var dds = lst1.Distinct().ToList();
var lst = devices.Where(x => dds.Contains(x.Code))
.Select(x => new AssigmentByCodeResponse
{
@@ -445,6 +470,9 @@ public class DevicePermissionService : IDevicePermissionService
private async Task>> GetAssignDeviceCodesInternalAsync(List userNos)
{
+ var devices = await _dbContext.Queryable().ToListAsync();
+ var regiss = await _dbContext.Queryable().Where(x => !SqlFunc.IsNullOrEmpty(x.BusinessPlaceCode)).ToListAsync();
+
var gainfos = await _dbContext.Queryable().Where(x => userNos.Contains(x.No)).ToListAsync();
if (!gainfos.Any())
{
@@ -460,23 +488,27 @@ public class DevicePermissionService : IDevicePermissionService
foreach (var gainfo in gainfos)
{
- var codes = GetAssignDeviceCodesInternal(gainfo, gainfoGroupRelationships, devicePermissions, deviceGroups, deviceRelationships);
+ var codes = GetAssignDeviceCodesInternal(gainfo, gainfoGroupRelationships, devicePermissions, deviceGroups, deviceRelationships, regiss, devices);
result.Add(gainfo.No, codes);
}
return result;
}
- private static List GetAssignDeviceCodesInternal(
+ private static List GetAssignDeviceCodesInternal(
GainfoEntity gainfo,
List gainfoGroupRelationships,
List devicePermissions,
List deviceGroups,
- List deviceGroupRelationships)
+ List deviceGroupRelationships,
+ List deviceRegistries,
+ List devices
+ )
{
var userNo = gainfo.No;
var deviceCodes = new List();
var deviceGroupCodes = new List();
+ var placeCodes = new List();
//获取人员的分组,跨基地
var gainfoGroups = gainfoGroupRelationships.Where(x => x.UserNo == userNo).Select(x => x.GroupCode).ToList();
@@ -484,32 +516,43 @@ public class DevicePermissionService : IDevicePermissionService
//按用户
var du = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.User, userNo);
var gu = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo);
+ var pu = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.User, userNo);
+
deviceCodes.AddRange(du);
deviceGroupCodes.AddRange(gu);
+ placeCodes.AddRange(pu);
//按用户组
foreach (var groupCode in gainfoGroups)
{
var dg = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Group, groupCode.ToString());
var gg = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Group, groupCode.ToString());
+ var pg = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.Group, groupCode.ToString());
deviceCodes.AddRange(dg);
deviceGroupCodes.AddRange(gg);
+ placeCodes.AddRange(pg);
}
//按部门
var gainfoFactoryDevicePermissions = devicePermissions.Where(x => x.TenantId == gainfo.Factory).ToList();
var dd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Department, gainfo.DepartmentNo);
var gd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Department, gainfo.DepartmentNo);
+ var pd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.Department, gainfo.DepartmentNo);
deviceCodes.AddRange(dd);
deviceGroupCodes.AddRange(gd);
+ placeCodes.AddRange(pd);
//按厂区
var dt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Tenant, gainfo.Factory);
var gt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Tenant, gainfo.Factory);
+ var pt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.Tenant, gainfo.Factory);
+ placeCodes.AddRange(pt);
deviceCodes.AddRange(dt);
deviceGroupCodes.AddRange(gt);
var groupCodes = deviceGroupCodes.SelectMany(x => x.Codes).Distinct().ToList();
+ var placecodes = placeCodes.SelectMany(x => x.Codes).Distinct().ToList();
+
var deveiceCodesByGroup = deviceGroupRelationships.Where(x => groupCodes.Contains(x.GroupCode)).GroupBy(x => x.TenantId)
.Select(x => new UserTenantDeviceCodeDto
{
@@ -517,7 +560,24 @@ public class DevicePermissionService : IDevicePermissionService
Codes = x.Select(item => item.DeviceCode).Distinct().ToList()
});
+ var placeGroup = deviceRegistries.Where(x => placecodes.Contains((Guid)x.BusinessPlaceCode)).GroupBy(x => x.TenantId)
+ .Select(x => new UserTenantDeviceCodeDto
+ {
+ Tenant = x.Key,
+ }).ToList();
+
+ placeGroup.ForEach(t =>
+ {
+ var nos = deviceRegistries.Where(x => placecodes.Contains((Guid)x.BusinessPlaceCode))
+ .Where(x => x.TenantId == t.Tenant)
+ .Select(x => x.DeviceUniqueNo)
+ .ToList();
+
+ t.Codes = devices.Where(d => nos.Contains(d.UniqueNo)).Select(d => d.Code).ToList();
+ });
+
deviceCodes.AddRange(deveiceCodesByGroup);
+ deviceCodes.AddRange(placeGroup);
return deviceCodes.GroupBy(x => x.Tenant).Select(x => new UserTenantDeviceCodeDto
{
diff --git a/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs b/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs
index d5614214..5302ddf8 100644
--- a/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs
+++ b/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs
@@ -18,5 +18,11 @@ public enum DeviceAssignmentTypeEnumType
/// 设备组
///
[Description("设备组")]
- Group = 2
+ Group = 2,
+
+ ///
+ /// 营业点
+ ///
+ [Description("营业点")]
+ BusinessPlace = 3,
}
From cd4888d900a59029cce42d6b970dafac0bafc2be Mon Sep 17 00:00:00 2001
From: liguoyang
Date: Tue, 19 Mar 2024 12:06:13 +0800
Subject: [PATCH 31/31] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E6=8E=A7=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Device/Controllers/DevicePermissionsController.cs | 2 +-
.../Dishes/Services/Implements/DishesMenuService.cs | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
index 7b1ab8ce..b021c5db 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
@@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.Device.Controllers;
-[Authorize]
+[Authorize(Roles = "admin,tenant-admin")]
[Route("api/[controller]")]
[ApiController]
public class DevicePermissionsController : ControllerBase
diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
index 7a97da7d..69ef56fb 100644
--- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
+++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs
@@ -37,7 +37,7 @@ public class DishesMenuService : IDishesMenuService
//检验权限
var res = await _businessPlacePermissionsService.GetMyAsync();
- var myBps = res.dtos.Select(x => x.Code).ToList();
+ var myBps = res.dtos.Select(x => x.Code).ToList();
myBps.Contains(request.BusinessPlaceCode).ThrowIfFalse("非经营营业点,无法保存菜单");
@@ -68,7 +68,7 @@ public class DishesMenuService : IDishesMenuService
Type = CanteenApplicaitonTypeEnumType.Booking,
Version = 0,
- Enable = false,
+ Enable = true,
};
});
});