This commit is contained in:
zt
2025-05-20 10:52:52 +08:00
parent acba88ade0
commit 0cc91a0894
18 changed files with 620 additions and 46 deletions

View File

@ -198,6 +198,8 @@ public interface ErrorCodeConstants {
ErrorCode FACE_DEVICE_INFO_EXISTS = new ErrorCode(1_002_040_003, "设备码已存在");
ErrorCode DISH_IMAGE_NOT_EXISTS = new ErrorCode(1_002_040_004, "本周菜单不存在");
ErrorCode START_DATE_EXISTS = new ErrorCode(1_002_040_004, "开始时间已存在菜单");
ErrorCode END_DATE_EXISTS = new ErrorCode(1_002_040_004, "结束时间已存在菜单");
ErrorCode CASH_REGISTER_INFO_NOT_EXISTS = new ErrorCode(1_002_040_005, "收银机信息关联门店不存在");
ErrorCode CASH_REGISTER_INFO_EXISTS = new ErrorCode(1_002_040_006, "收银机已存在");

View File

@ -1,9 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.dishimage.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 本周菜单新增/修改 Request VO")
@Data
@ -16,17 +17,21 @@ public class DishImageSaveReqVO {
private String name;
@Schema(description = "开始日期")
@NotBlank(message = "开始日期不能为空")
private String startDate;
@Schema(description = "结束日期")
@NotBlank(message = "结束日期不能为空")
private String endDate;
@Schema(description = "地址", example = "https://www.iocoder.cn")
@NotBlank(message = "图片不能为空")
private String imageUrl;
@Schema(description = "备注", example = "随便")
private String remark;
@NotNull(message = "门店不能为空")
private Long carteenId;
}

View File

@ -2,29 +2,23 @@ package cn.iocoder.yudao.module.system.service.dishimage;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.dishimage.vo.DishImagePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishimage.vo.DishImageSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishimage.DishImageDO;
import cn.iocoder.yudao.module.system.dal.mysql.dishimage.DishImageMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.DayOfWeek;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.DISH_IMAGE_NOT_EXISTS;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
/**
@ -43,6 +37,7 @@ public class DishImageServiceImpl implements DishImageService {
public Integer createDishImage(DishImageSaveReqVO createReqVO) {
// 插入
DishImageDO dishImage = BeanUtils.toBean(createReqVO, DishImageDO.class);
validateDishImageExists(dishImage);
dishImageMapper.insert(dishImage);
// 返回
return dishImage.getId();
@ -54,6 +49,7 @@ public class DishImageServiceImpl implements DishImageService {
validateDishImageExists(updateReqVO.getId());
// 更新
DishImageDO updateObj = BeanUtils.toBean(updateReqVO, DishImageDO.class);
validateDishImageExists(updateObj);
dishImageMapper.updateById(updateObj);
}
@ -70,6 +66,26 @@ public class DishImageServiceImpl implements DishImageService {
throw exception(DISH_IMAGE_NOT_EXISTS);
}
}
private void validateDishImageExists(DishImageDO dishImage) {
List<DishImageDO> dishImageDOS = dishImageMapper.selectList(Wrappers.<DishImageDO>lambdaQuery()
.eq(DishImageDO::getCarteenId, dishImage.getCarteenId())
.le(DishImageDO::getStartDate, dishImage.getStartDate())
.ge(DishImageDO::getEndDate, dishImage.getStartDate())
.ne(dishImage.getId()!=null,DishImageDO::getId, dishImage.getId())
);
if(CollectionUtil.isNotEmpty(dishImageDOS)){
throw exception(START_DATE_EXISTS);
}
List<DishImageDO> dishImageDOList = dishImageMapper.selectList(Wrappers.<DishImageDO>lambdaQuery()
.eq(DishImageDO::getCarteenId, dishImage.getCarteenId())
.le(DishImageDO::getStartDate, dishImage.getEndDate())
.ge(DishImageDO::getEndDate, dishImage.getEndDate())
.ne(dishImage.getId()!=null,DishImageDO::getId, dishImage.getId())
);
if(CollectionUtil.isNotEmpty(dishImageDOList)){
throw exception(END_DATE_EXISTS);
}
}
@Override
public DishImageDO getDishImage(Integer id) {
@ -85,23 +101,25 @@ public class DishImageServiceImpl implements DishImageService {
public DishImageDO getThisWeekDishImage(Long carteenId,String time) {
// 获取今天的日期
LocalDate today = LocalDate.now();
if(StrUtil.isNotBlank(time)){
today= LocalDate.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
// 获取本周的开始日期(周一)
LocalDate weekStart = today.with(DayOfWeek.MONDAY);
// 获取本周的结束日期(周日)
LocalDate weekEnd = today.with(DayOfWeek.SUNDAY);
// 格式化日期(年-月-日)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startTime = today.format(formatter);
if(StrUtil.isNotBlank(time)){
startTime= time;
}
// // 获取本周的开始日期(周一)
// LocalDate weekStart = today.with(DayOfWeek.MONDAY);
//
// // 获取本周的结束日期(周日)
// LocalDate weekEnd = today.with(DayOfWeek.SUNDAY);
//
// // 格式化日期(年-月-日)
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startTime = weekStart.format(formatter);
String endTime = weekEnd.format(formatter);
// String startTime = weekStart.format(formatter);
// String endTime = weekEnd.format(formatter);
List<DishImageDO> dishImageDOS = dishImageMapper.selectList(Wrappers.<DishImageDO>lambdaQuery()
.eq(DishImageDO::getStartDate, startTime)
.eq(DishImageDO::getEndDate, endTime)
.le(DishImageDO::getStartDate, startTime)
.ge(DishImageDO::getEndDate, startTime)
.eq(DishImageDO::getCarteenId, carteenId));
if(CollectionUtil.isNotEmpty(dishImageDOS)){
return dishImageDOS.get(0);