Files
jinko.yikatong/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs
liguoyang 3ea432943f Squashed commit of the following:
commit afdd9e6f14
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:48:05 2024 +0800

    fix 价格默认获取菜单中的设置

commit a3cfc472c8
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:40:04 2024 +0800

    fix 时间范围逻辑

commit 83f8906f12
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:32:55 2024 +0800

    fix 时间范围逻辑

commit 35660b1d0c
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:29:36 2024 +0800

    fix 数据范围罗逻辑修改

commit 7407955bc5
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:14:06 2024 +0800

    fix 分类树增加营业点参数

commit ed5196d1a1
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 21:02:52 2024 +0800

    feat 用户创建

commit d25909a235
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 20:51:20 2024 +0800

    fix 菜单明细调整

commit 8915f9ff0f
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 20:42:08 2024 +0800

    fix 判断提前

commit 45aa52aa2a
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 20:34:22 2024 +0800

    fix 逻辑取反

commit 89904fead1
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 20:23:20 2024 +0800

    fix 菜单时效范围

commit 573911f907
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 19:13:33 2024 +0800

    fix 订单聚合返回状态

commit 93c38be18a
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 18:40:12 2024 +0800

    fix 订单查询

commit e256d18d36
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 18:14:33 2024 +0800

    fix 订单取消接口,分页权限控制

commit 1218aec811
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 17:32:45 2024 +0800

    fix 营业点权限控制优化

commit 226c61ee41
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 17:09:42 2024 +0800

    fix tenantId赋值

commit 28d2c1d8d4
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 17:05:37 2024 +0800

    fix ignoretenant

commit 5ae6dd97b4
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 16:53:40 2024 +0800

    fix ignoretenant

commit 4c866eaf3f
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 16:40:24 2024 +0800

    feat 获取所有地址

commit 2ca8f2db49
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 16:22:47 2024 +0800

    fix 优化查询

commit 212a1fa073
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 16:01:49 2024 +0800

    fix 临时数据模拟

commit 0eb76e878c
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 15:48:59 2024 +0800

    fix 处理删除缺少判断

commit c582fb40c0
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 15:40:22 2024 +0800

    fix 查询优化

commit 6d3a19b283
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 11:48:45 2024 +0800

    fix 错误值修改

commit c39f77008d
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 11:31:50 2024 +0800

    fix 营业点控制(admin),unit返回

commit a5dcab1d07
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 11:16:23 2024 +0800

    fix 营业点分页控制

commit 02084be82b
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 11:01:14 2024 +0800

    fix 分类控制菜品获取

commit 96c5c5feba
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 10:39:58 2024 +0800

    fix DI

commit 367ede2eeb
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Thu Mar 21 10:35:24 2024 +0800

    fix 订餐返回当前信息,增加数量入参和响应

commit 0e1f6cb4a0
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 16:40:10 2024 +0800

    fix 餐补查询代码调整

commit 21fc2f78d3
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 15:52:46 2024 +0800

    fix 支付批量操作

commit 878b44a146
Merge: a90d4e6 bf5c937
Author: cheche <717840555@qq.com>
Date:   Wed Mar 20 15:27:39 2024 +0800

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

commit a90d4e66a7
Author: cheche <717840555@qq.com>
Date:   Wed Mar 20 15:27:37 2024 +0800

    fix 餐补查询及日志删除

commit bf5c937037
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 15:12:30 2024 +0800

    fix 补充营业点分配权限接口

commit 07672f1d32
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 13:56:33 2024 +0800

    fix 优化changeDb

commit 7090ee4a33
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 13:41:25 2024 +0800

    fix 敏感信息混淆

commit 4366b68831
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 12:42:48 2024 +0800

    fix 代码优化

commit 03b73515b5
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Wed Mar 20 10:59:08 2024 +0800

    fix tree返回营业点

commit 1ce60bedc2
Merge: aba4fa7 2d83930
Author: cheche <717840555@qq.com>
Date:   Wed Mar 20 09:55:17 2024 +0800

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

commit aba4fa7ee9
Author: cheche <717840555@qq.com>
Date:   Wed Mar 20 09:55:13 2024 +0800

    fix 删除日志优化

commit 2d8393068f
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 20:53:16 2024 +0800

    feat 订单聚合接口

commit 0cde1d3d92
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 20:03:06 2024 +0800

    fix 表名称调整

commit f003e30169
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 19:51:56 2024 +0800

    fix 订餐null异常处理

commit f427338715
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 18:43:19 2024 +0800

    feat 获取菜品

commit 3a65d95701
Merge: 9a7091b 7432fae
Author: cheche <717840555@qq.com>
Date:   Tue Mar 19 18:36:16 2024 +0800

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

commit 9a7091b4e0
Author: cheche <717840555@qq.com>
Date:   Tue Mar 19 18:36:14 2024 +0800

    fix 删除日志try

commit 7432fae103
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 18:02:31 2024 +0800

    fix 配送点增加

commit ecd162c7af
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 17:51:15 2024 +0800

    fix 预定就餐送货地点

commit 1c7a054ed4
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 15:53:22 2024 +0800

    feat 获取所有营业点接口

commit 84398a566e
Merge: 217d9f7 84b4025
Author: cheche <717840555@qq.com>
Date:   Tue Mar 19 15:26:42 2024 +0800

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

commit 217d9f7770
Author: cheche <717840555@qq.com>
Date:   Tue Mar 19 15:26:40 2024 +0800

    feat  配送点管理

commit 84b402538e
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 14:59:21 2024 +0800

    fix 菜单分页响应调整,增加详情接口

commit 098d7c7e9d
Author: liguoyang <Ligy.97@foxmail.com>
Date:   Tue Mar 19 14:26:24 2024 +0800

    fix 代码优化
2024-03-21 22:04:52 +08:00

130 lines
4.7 KiB
C#

using Dlhis.Basic.BusinessPlace.Services;
using Dlhis.Basic.Dishes.Request;
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.Core.User.Abstractions;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
namespace Dlhis.Basic.Dishes.Services.Implements;
public class DishesService : IDishesService
{
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService;
public DishesService(IDbContext dbContext, ICurrentUser currentUser, IBusinessPlacePermissionsService businessPlacePermissionsService)
{
_dbContext = dbContext;
_currentUser = currentUser;
_businessPlacePermissionsService = businessPlacePermissionsService;
}
public async Task<Pagination<DishesResponse>> GetDishesPageAsync(DishesPageRequest request)
{
var myCodes = await GetMyBusinessPlaceCodesAsync();
return await _dbContext.Queryable<DishesEntity>()
.LeftJoin<DishesCategoryEntity>((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))
.Where(x => myCodes.Contains(x.BusinessPlaceCode))
.OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc)
.Select((x, category) => new DishesResponse
{
Id = x.Id,
CurrnetUnits = x.Units.ToString(),
CategoryName = category.Name,
}, true)
.ToPageListAsync(request);
}
public async Task SaveDishesAsync(DishesSaveRequest request)
{
if (!request.Id.HasValue)
{
var dishers = request.Adapt<DishesEntity>();
dishers.CustomCode = request.CustomCode;
await _dbContext.InsertAsync(dishers);
}
else
{
var entity = await _dbContext.Queryable<DishesEntity>().Where(x => x.Id == request.Id).FirstAsync();
entity.ThrowIfNull("菜品不存在,无法更新");
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
}
}
public async Task<DishesMenusBookingSettingResponse> GetDishesMenusBookingSetting(GetDishesMenusBookingRequest request)
{
var subjectId = _currentUser.GetIntSubjectId();
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdentityUserId == subjectId).FirstAsync();
var jinkoCode = _currentUser.GetUserClaim("jinko-code") ?? string.Empty;
if (jinkoCode.IsPresent())
{
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == jinkoCode).FirstAsync();
}
// 读取最晚订餐的时间
var value = await _dbContext.Queryable<CanteenSettingEntity>()
.Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Tenant && x.Item == CanteenSettingItemEnumType.BookingDeadline && x.Enable)
.Select(x => x.Value)
.FirstAsync();
if (!TimeOnly.TryParse(value, out var deadline))
deadline = new TimeOnly(8, 30);
var payTypes = new List<BalanceRecordSourceEnumDto>() { new() { Type = BalanceRecordSourceEnumType.Cash } };
var selectTenantId = await _dbContext.Queryable<BusinessPlaceEntity>()
.Where(x => x.Code == request.BusinessPlaceCode)
.Select(x => x.TenantId)
.FirstAsync();
if (gainfo.Factory == selectTenantId)
{
payTypes.Add(new BalanceRecordSourceEnumDto { Type = BalanceRecordSourceEnumType.LocalTenantSubsidies });
}
return new DishesMenusBookingSettingResponse
{
ServerTime = DateTime.Now,
Deadline = DateTime.Today.Add(deadline.ToTimeSpan()),
PayTypes = payTypes
};
}
public async Task<DishesDetailResponse> GetDishesDetailByIdAsync(long id)
{
return await _dbContext.Queryable<DishesEntity>()
.Where(x => x.Id == id)
.Select<DishesDetailResponse>()
.SingleAsync();
}
/// <summary>
/// 获取我的营业点
/// </summary>
/// <returns></returns>
private async Task<List<Guid>> GetMyBusinessPlaceCodesAsync()
{
return (await _businessPlacePermissionsService.GetMyAsync()).Select(x => x.Code).ToList();
}
}