From 0f20d591ec8f5cf107d016432d6bae3cfc8c6ee4 Mon Sep 17 00:00:00 2001 From: caoyiwen Date: Mon, 25 Dec 2023 13:53:37 +0800 Subject: [PATCH] fix --- .../diet/repository/MenuRepository.java | 2 +- .../diet/controller/BaseController.java | 23 +++++++++++++++++++ .../controller/MenuReleaseController.java | 3 +-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java b/diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java index 4c1bc54..47686ad 100644 --- a/diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java +++ b/diet-dao/src/main/java/com/mathvision/diet/repository/MenuRepository.java @@ -24,7 +24,7 @@ public interface MenuRepository extends JpaRepository, JpaSpecificat List findCurrentMenu(Long vender); @Query(value = "select m from Menu m " + - "where m.vender = ?1 and m.status = 5 and WEEK(now()) between WEEK(m.startTime) and WEEK(m.endTime) and YEAR(now()) between YEAR(m.startTime) and YEAR(m.endTime)") + "where m.vender = ?1 and m.status = 5 and YEAR(now()) * 100 + WEEK(now()) between YEAR(m.startTime) * 100 + WEEK(m.startTime) and YEAR(m.endTime) * 100 + WEEK(m.endTime)") List findCurrentWeekMenu(Long vender); @Query("select new com.mathvision.diet.domian.MenuCountDTO(m.status, count(m)) from Menu m where m.status in ?1 group by m.status") diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/BaseController.java b/diet-web/src/main/java/com/mathvision/diet/controller/BaseController.java index 609d4e7..8031da5 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/BaseController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/BaseController.java @@ -14,6 +14,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Calendar; import java.util.Date; import java.util.Objects; @@ -80,4 +81,26 @@ public class BaseController { return null; } } + + public static Date getDefaultStartDay(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.WEEK_OF_MONTH, 0); + calendar.set(Calendar.DAY_OF_WEEK, 2); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + public static Date getDefaultEndDay(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK)); + calendar.add(Calendar.DAY_OF_WEEK, 1); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } } \ No newline at end of file diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/MenuReleaseController.java b/diet-web/src/main/java/com/mathvision/diet/controller/MenuReleaseController.java index dde1ee3..7f491c5 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/MenuReleaseController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/MenuReleaseController.java @@ -6,7 +6,6 @@ import com.mathvision.diet.service.MenuDishService; import com.mathvision.diet.service.MenuReleaseService; import com.mathvision.diet.service.MenuService; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.time.DateUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; @@ -40,7 +39,7 @@ public class MenuReleaseController extends BaseController { Assert.isTrue(menu.getStatus() == MenuStatus.draft, "[参数错误]该食谱当前非草稿状态,不可发布!"); Assert.isTrue(CollectionUtils.isNotEmpty(menuDishService.query(id)), "[参数错误]该食谱未添加任何菜品,不可发布!"); menu.getScale().entrySet().forEach(x -> x.setValue(scale.getOrDefault(x.getKey(), 0))); - menuReleaseService.publish(id, menu.getScale(), parseDate(startTime, new Date()), parseDate(endTime, DateUtils.addDays(new Date(), 7)), getUid()); + menuReleaseService.publish(id, menu.getScale(), parseDate(startTime, getDefaultStartDay(new Date())), parseDate(endTime, getDefaultEndDay(new Date())), getUid()); } @ResponseBody