From 91a10d4d8d71bfe92cf1ecc58627825f8882b5b2 Mon Sep 17 00:00:00 2001 From: caoyiwen Date: Thu, 23 Nov 2023 21:32:35 +0800 Subject: [PATCH] fix --- .../diet/excel/BigDecimalStringConverter.java | 5 +- .../diet/service/MenuReleaseService.java | 2 +- .../diet/service/MenuReviewService.java | 152 +++++++++--------- .../mathvision/diet/domian/MenuStatus.java | 4 +- .../diet/aspect/GlobalRequestAspect.java | 1 + .../diet/controller/IconController.java | 10 +- .../diet/controller/MenuController.java | 34 ++-- .../diet/controller/MenuDishController.java | 12 +- .../controller/MenuReleaseController.java | 2 +- .../diet/controller/MenuReviewController.java | 122 +++++++------- diet-web/src/main/resources/static/icon.html | 2 +- .../src/main/resources/static/menu/menu.html | 10 +- doc/icon.md | 2 +- doc/menu/menu.md | 10 +- 14 files changed, 172 insertions(+), 196 deletions(-) diff --git a/diet-core/src/main/java/com/mathvision/diet/excel/BigDecimalStringConverter.java b/diet-core/src/main/java/com/mathvision/diet/excel/BigDecimalStringConverter.java index 102c4a0..4c7f385 100644 --- a/diet-core/src/main/java/com/mathvision/diet/excel/BigDecimalStringConverter.java +++ b/diet-core/src/main/java/com/mathvision/diet/excel/BigDecimalStringConverter.java @@ -10,7 +10,6 @@ import com.alibaba.excel.util.NumberUtils; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; -import java.text.ParseException; @Slf4j public class BigDecimalStringConverter implements Converter { @@ -25,7 +24,7 @@ public class BigDecimalStringConverter implements Converter { return CellDataTypeEnum.STRING; } - public BigDecimal convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws ParseException { + public BigDecimal convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { if(cellData == null) { return null; } @@ -36,7 +35,7 @@ public class BigDecimalStringConverter implements Converter { try { return NumberUtils.parseBigDecimal(cellData.getStringValue().trim(), contentProperty); } catch (Exception e) { - log.error("[BigDecimalStringConverter] convertToJavaData exception :" + e.getMessage(), e); + log.error("[BigDecimalStringConverter] convertToJavaData<" + cellData.getStringValue() + "> exception :" + e.getMessage(), e); return new BigDecimal(-1); } } diff --git a/diet-core/src/main/java/com/mathvision/diet/service/MenuReleaseService.java b/diet-core/src/main/java/com/mathvision/diet/service/MenuReleaseService.java index 2b81514..f6b9f55 100644 --- a/diet-core/src/main/java/com/mathvision/diet/service/MenuReleaseService.java +++ b/diet-core/src/main/java/com/mathvision/diet/service/MenuReleaseService.java @@ -38,7 +38,7 @@ public class MenuReleaseService { } public void cancel(Long id, String operator) { - menuRepository.updateStatusAndStartTimeAndEndTimeAndOperateById(MenuStatus.pass, null, null, operator, id); + menuRepository.updateStatusAndStartTimeAndEndTimeAndOperateById(MenuStatus.draft, null, null, operator, id); log.info("[MenuReleaseService] cancel id = " + id + ", operator = " + operator); } diff --git a/diet-core/src/main/java/com/mathvision/diet/service/MenuReviewService.java b/diet-core/src/main/java/com/mathvision/diet/service/MenuReviewService.java index 078a04f..acbad6c 100644 --- a/diet-core/src/main/java/com/mathvision/diet/service/MenuReviewService.java +++ b/diet-core/src/main/java/com/mathvision/diet/service/MenuReviewService.java @@ -26,80 +26,80 @@ import java.util.List; @Slf4j @Service public class MenuReviewService { - private static final List SUPPORTED_STATUS = Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject); - @Resource - private MenuRepository menuRepository; - - @Resource - private MenuApproveRepository menuApproveRepository; - - @PostConstruct - @Scheduled(cron = "0 0 0/6 * * *") - public void init() { - menuApproveRepository.scanExpired(); - } - - public void submit(Long id, String operator) { - menuRepository.updateStatusAndOperateById(MenuStatus.submit, operator, id); - } - - public void pass(Long id, String reason, String operator) { - Instant datetime = Instant.now(); - menuRepository.updateStatusAndApproveAndOperateById(MenuStatus.pass, reason, operator, id); - menuApproveRepository.save(MenuApprove.builder().menu(id).pass(true).approve(reason).operate(operator).created(datetime).modify(datetime).build()); - } - - public void reject(Long id, String reason, String operator) { - Instant datetime = Instant.now(); - menuRepository.updateStatusAndApproveAndOperateById(MenuStatus.reject, reason, operator, id); - menuApproveRepository.save(MenuApprove.builder().menu(id).pass(false).approve(reason).operate(operator).created(datetime).modify(datetime).build()); - } - - public void disable(Long id, String operator) { - menuRepository.updateStatusAndOperateById(MenuStatus.disabled, operator, id); - } - - public Object count() { - return menuRepository.count(Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject)); - } - - public Page list(Long vender, MenuStatus status, String name, Date startTime, Date endTime, PageRequest pageRequest) { - return menuRepository.findAll(toSpecification(vender, status, name, startTime, endTime), pageRequest); - } - - private Specification toSpecification(Long vender, MenuStatus status, String name, Date startTime, Date endTime) { - return (root, query, builder) -> { - List predicates = new ArrayList<>(); - - if (vender != null && vender > 0) { - predicates.add(builder.equal(root.get("vender"), vender)); - } - - if( status != null && SUPPORTED_STATUS.contains(status)) { - predicates.add(builder.equal(root.get("status"), status)); - } else { - CriteriaBuilder.In in = builder.in(root.get("status")); - Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject).forEach(in::value); - predicates.add(in); - } - - if (startTime != null) { - predicates.add(builder.greaterThanOrEqualTo(root.get("modify"), startTime.toInstant())); - } - - if (endTime != null) { - predicates.add(builder.lessThanOrEqualTo(root.get("modify"), endTime.toInstant())); - } - - if (StringUtils.isNotBlank(name)) { - predicates.add(builder.like(root.get("name"), "%" + name + "%")); - } - - if (predicates.size() > 1) { - return builder.and(predicates.toArray(new Predicate[0])); - } else { - return predicates.get(0); - } - }; - } +// private static final List SUPPORTED_STATUS = Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject); +// @Resource +// private MenuRepository menuRepository; +// +// @Resource +// private MenuApproveRepository menuApproveRepository; +// +// @PostConstruct +// @Scheduled(cron = "0 0 0/6 * * *") +// public void init() { +// menuApproveRepository.scanExpired(); +// } +// +// public void submit(Long id, String operator) { +// menuRepository.updateStatusAndOperateById(MenuStatus.submit, operator, id); +// } +// +// public void pass(Long id, String reason, String operator) { +// Instant datetime = Instant.now(); +// menuRepository.updateStatusAndApproveAndOperateById(MenuStatus.pass, reason, operator, id); +// menuApproveRepository.save(MenuApprove.builder().menu(id).pass(true).approve(reason).operate(operator).created(datetime).modify(datetime).build()); +// } +// +// public void reject(Long id, String reason, String operator) { +// Instant datetime = Instant.now(); +// menuRepository.updateStatusAndApproveAndOperateById(MenuStatus.reject, reason, operator, id); +// menuApproveRepository.save(MenuApprove.builder().menu(id).pass(false).approve(reason).operate(operator).created(datetime).modify(datetime).build()); +// } +// +// public void disable(Long id, String operator) { +// menuRepository.updateStatusAndOperateById(MenuStatus.disabled, operator, id); +// } +// +// public Object count() { +// return menuRepository.count(Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject)); +// } +// +// public Page list(Long vender, MenuStatus status, String name, Date startTime, Date endTime, PageRequest pageRequest) { +// return menuRepository.findAll(toSpecification(vender, status, name, startTime, endTime), pageRequest); +// } +// +// private Specification toSpecification(Long vender, MenuStatus status, String name, Date startTime, Date endTime) { +// return (root, query, builder) -> { +// List predicates = new ArrayList<>(); +// +// if (vender != null && vender > 0) { +// predicates.add(builder.equal(root.get("vender"), vender)); +// } +// +// if( status != null && SUPPORTED_STATUS.contains(status)) { +// predicates.add(builder.equal(root.get("status"), status)); +// } else { +// CriteriaBuilder.In in = builder.in(root.get("status")); +// Lists.newArrayList(MenuStatus.submit, MenuStatus.pass, MenuStatus.reject).forEach(in::value); +// predicates.add(in); +// } +// +// if (startTime != null) { +// predicates.add(builder.greaterThanOrEqualTo(root.get("modify"), startTime.toInstant())); +// } +// +// if (endTime != null) { +// predicates.add(builder.lessThanOrEqualTo(root.get("modify"), endTime.toInstant())); +// } +// +// if (StringUtils.isNotBlank(name)) { +// predicates.add(builder.like(root.get("name"), "%" + name + "%")); +// } +// +// if (predicates.size() > 1) { +// return builder.and(predicates.toArray(new Predicate[0])); +// } else { +// return predicates.get(0); +// } +// }; +// } } diff --git a/diet-dao/src/main/java/com/mathvision/diet/domian/MenuStatus.java b/diet-dao/src/main/java/com/mathvision/diet/domian/MenuStatus.java index 5dfd5ea..373c312 100644 --- a/diet-dao/src/main/java/com/mathvision/diet/domian/MenuStatus.java +++ b/diet-dao/src/main/java/com/mathvision/diet/domian/MenuStatus.java @@ -6,7 +6,9 @@ import java.util.Arrays; public enum MenuStatus { //0-草稿,1-提交审核,2-审核通过,3-审核失败,4-禁用,5-发布 - draft(0, "草稿"), submit(1,"审核中"), pass(2,"审核通过"), reject(3, "审核失败"), disabled(4, "禁用"), publish(5, "发布"); + draft(0, "草稿"), publish(5, "发布"), + //submit(1,"审核中"), pass(2,"审核通过"), reject(3, "审核失败"), disabled(4, "禁用") + ; @Getter private final int code; diff --git a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java index 6bd7954..8b33ac8 100644 --- a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java +++ b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java @@ -40,6 +40,7 @@ public class GlobalRequestAspect implements HandlerInterceptor, WebMvcConfigurer public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(this) .addPathPatterns("/api/**") + .excludePathPatterns("/api/icon/*.*") .excludePathPatterns("/api/login") .excludePathPatterns("/api/logout"); } diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/IconController.java b/diet-web/src/main/java/com/mathvision/diet/controller/IconController.java index 473454b..b62add9 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/IconController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/IconController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.nio.file.Paths; @@ -30,11 +31,14 @@ public class IconController extends BaseController { } @ResponseBody - @RequestMapping(value = "/icon/{filename}", method = RequestMethod.GET) + @RequestMapping(value = "/api/icon/{filename}", method = RequestMethod.GET) public void icon(@PathVariable("filename")String fileName) throws IOException { + File file = Paths.get(imagePath, fileName).toFile(); HttpServletResponse response = getResponse(); response.setContentType(IMAGE_JPEG_VALUE); - response.getOutputStream().write(FileUtils.readFileToByteArray(Paths.get(imagePath, fileName).toFile())); - response.flushBuffer(); + if (file.exists() && file.isFile() && file.canRead()) { + response.getOutputStream().write(FileUtils.readFileToByteArray(file)); + response.flushBuffer(); + } } } \ No newline at end of file diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java b/diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java index 53c0b8f..fc56f71 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.LongStream; @RequestMapping("/api/menu") @Controller @@ -45,17 +44,13 @@ public class MenuController extends BaseController { @ResponseBody @RequestMapping(method = RequestMethod.PUT) - public List add(@RequestParam String name, @RequestParam(required = false) List vendors, @RequestParam Long nutrient, @RequestParam Long day, @RequestParam(required = false) List days, @RequestParam List meals, @RequestParam List month, @RequestParam List crows) { + public List add(@RequestParam String name, @RequestParam(required = false) List vendors, @RequestParam Long nutrient, @RequestParam List day, @RequestParam List meals, @RequestParam List month, @RequestParam List crows) { Assert.isTrue(StringUtils.isNotBlank(name), "[参数错误]食谱名称必填!"); - Assert.isTrue(CollectionUtils.isNotEmpty(month) && month.stream().allMatch(x -> Range.closed(1, 12).contains(x)), "[参数错误]请选择正确的月份!"); + Assert.isTrue(!name.matches("[\\[\\]:?*/\\\\]") && name.length() < 31, "[参数错误]食谱名称小于31个字符,且不能包含特殊字符!"); + Assert.isTrue(CollectionUtils.isNotEmpty(day) && Range.closed(1L, 7L).containsAll(day), "[参数错误]星期取值[周一~周日]!"); + Assert.isTrue(CollectionUtils.isNotEmpty(month) && Range.closed(1, 12).containsAll(month), "[参数错误]请选择正确的月份!"); Assert.isTrue(CollectionUtils.isNotEmpty(meals), "[参数错误]餐次必填!"); Assert.isTrue(meals.stream().allMatch(x -> MealType.toType(x) != null), "[参数错误]餐次取值[早餐,午餐,晚餐]!"); - if (days == null || days.isEmpty()) { - Assert.isTrue(Range.closed(1L, 7L).contains(day), "[参数错误]星期取值[周一~周日]!"); - days = LongStream.rangeClosed(1L, day).boxed().collect(Collectors.toList()); - } else { - Assert.isTrue(Range.closed(1L, 7L).containsAll(days), "[参数错误]星期取值[周一~周日]!"); - } Nutrition nutrition = nutritionService.get(nutrient); Assert.notNull(nutrition, "[参数错误]营养计划必选!"); @@ -67,8 +62,7 @@ public class MenuController extends BaseController { Assert.isTrue(CollectionUtils.isNotEmpty(crows), "[参数错误]人群取值[参照营养计划]必填!"); Assert.isTrue(allCrows.containsAll(crows), "[参数错误]营养计划不包含所选的人群!"); Instant dateTime = Instant.now(); - List finalDays = days; - List menus = vendors.stream().map(v -> Menu.builder().name(name).meals(meals).crows(crows).scale(crows.stream().collect(Collectors.toMap(x -> x, x -> 0))).day(finalDays).nutrient(nutrient).month(month).vender(v).status(MenuStatus.draft).operate(getUid()).created(dateTime).modify(dateTime).build()).collect(Collectors.toList()); + List menus = vendors.stream().map(v -> Menu.builder().name(name).meals(meals).crows(crows).scale(crows.stream().collect(Collectors.toMap(x -> x, x -> 0))).day(day).nutrient(nutrient).month(month).vender(v).status(MenuStatus.draft).operate(getUid()).created(dateTime).modify(dateTime).build()).collect(Collectors.toList()); return menuService.add(menus).stream().map(Menu::getId).collect(Collectors.toList()); } @@ -84,28 +78,21 @@ public class MenuController extends BaseController { @ResponseBody @RequestMapping(method = RequestMethod.POST) - public void update(@RequestParam Long id, @RequestParam(required = false) String name, @RequestParam(required = false) List month, @RequestParam Long nutrient, @RequestParam(required = false) Long day, @RequestParam(required = false) List days, @RequestParam(required = false) List meals, @RequestParam(required = false) List crows) { + public void update(@RequestParam Long id, @RequestParam(required = false) String name, @RequestParam(required = false) List month, @RequestParam Long nutrient, @RequestParam(required = false) List day, @RequestParam(required = false) List meals, @RequestParam(required = false) List crows) { Menu menu = menuService.get(id); Assert.notNull(menu, "[参数错误]食谱不存在!"); Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); Assert.isTrue(menu.getStatus() != MenuStatus.publish, "[参数错误]该食谱已发布,不可编辑!"); - Assert.isTrue(CollectionUtils.isEmpty(month) || month.stream().allMatch(x -> Range.closed(1, 12).contains(x)), "[参数错误]请选择正确的月份!"); - if (days == null || days.isEmpty()) { - Assert.isTrue(day == null || Range.closed(1L, 7L).contains(day), "[参数错误]天数取值[1~7]!"); - if (day != null) { - days = LongStream.rangeClosed(1L, day).boxed().collect(Collectors.toList()); - } - } else { - Assert.isTrue(Range.closed(1L, 7L).containsAll(days), "[参数错误]星期取值[周一~周日]!"); - } boolean flag = false; boolean check = false; if (StringUtils.isNotBlank(name) && !StringUtils.equals(menu.getName(), name)) { + Assert.isTrue(!name.matches("[\\[\\]:?*/\\\\]") && name.length() < 31, "[参数错误]食谱名称小于31个字符,且不能包含特殊字符!"); menu.setName(name); flag = true; } if (CollectionUtils.isNotEmpty(month) && !menu.getMonth().equals(month)) { + Assert.isTrue(Range.closed(1, 12).containsAll(month), "[参数错误]请选择正确的月份!"); menu.setMonth(month); flag = true; } @@ -114,8 +101,9 @@ public class MenuController extends BaseController { menu.setMeals(meals); flag = true; } - if (days != null && !days.equals(menu.getDay())) { - menu.setDay(days); + if (day != null && !day.equals(menu.getDay())) { + Assert.isTrue(Range.closed(1L, 7L).containsAll(day), "[参数错误]星期取值[周一~周日]!"); + menu.setDay(day); flag = true; } if (nutrient != null && !nutrient.equals(menu.getNutrient())) { diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java b/diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java index 3d5b4c8..dcad95f 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java @@ -47,16 +47,16 @@ public class MenuDishController extends BaseController { @ResponseBody @RequestMapping(method = RequestMethod.PUT) public Long add(@RequestParam Long menuId, @RequestParam Long dishId, @RequestParam Long day, @RequestParam String meal, @RequestParam(required = false) String mark, @RequestParam(required = false) String poly, @RequestParam String ingredient) { - Menu menu = checkAndConvert(menuId, MenuStatus.pass, MenuStatus.publish); + Menu menu = checkAndConvert(menuId, MenuStatus.publish); return menuDishService.add(checkAndConvert(menu, checkAndConvert(dishId), day, meal, mark, poly, parseItems(ingredient, new HashSet<>(menu.getCrows())))).getId(); } @ResponseBody @RequestMapping(value = "batch", method = RequestMethod.PUT) public List addAll(@RequestBody MenuDishVO menuDishVO) { - menuDishVO.getMenuIds().forEach(menuId -> checkAndConvert(menuId, MenuStatus.pass, MenuStatus.publish)); + menuDishVO.getMenuIds().forEach(menuId -> checkAndConvert(menuId, MenuStatus.publish)); return menuDishService.addAll(menuDishVO.getMenuIds().stream().map(menuId -> { - Menu menu = checkAndConvert(menuId, MenuStatus.pass, MenuStatus.publish); + Menu menu = checkAndConvert(menuId, MenuStatus.publish); return menuDishVO.getDishes().stream().map(dish -> checkAndConvert(menu, checkAndConvert(dish.getDish()), dish.getDay(), dish.getMeal(), dish.getMark(), dish.getPoly(), dish.getItems().stream().map(item -> MenuDishItemDTO.builder().isMain(item.getIsMain()).key(item.getKey()).value(item.getValue()).build()).collect(Collectors.toList()))).collect(Collectors.toList()); }).flatMap(List::stream).collect(Collectors.toList())).stream().map(MenuDish::getId).collect(Collectors.toList()); } @@ -64,7 +64,7 @@ public class MenuDishController extends BaseController { @ResponseBody @RequestMapping(method = RequestMethod.DELETE) public void delete(@RequestParam(required = false) Long menuDishId, @RequestParam Long menuId) { - checkAndConvert(menuId, MenuStatus.pass, MenuStatus.publish); + checkAndConvert(menuId, MenuStatus.publish); if (menuDishId != null) { MenuDish dish = isAdmin() ? menuDishService.get(menuDishId) : menuDishService.get(menuDishId, getVender()); Assert.notNull(dish, "[参数错误]菜品不存在!"); @@ -77,7 +77,7 @@ public class MenuDishController extends BaseController { @ResponseBody @RequestMapping(method = RequestMethod.POST) public void update(@RequestParam Long menuDishId, @RequestParam Long menuId, @RequestParam(required = false) String mark, @RequestParam(required = false) String poly, @RequestParam(required = false) String ingredient) { - Menu menu = checkAndConvert(menuId, MenuStatus.pass, MenuStatus.publish); + Menu menu = checkAndConvert(menuId, MenuStatus.publish); MenuDish dish = isAdmin() ? menuDishService.get(menuDishId) : menuDishService.get(menuDishId, getVender()); Assert.notNull(dish, "[参数错误]菜品不存在!"); @@ -146,7 +146,7 @@ public class MenuDishController extends BaseController { Menu menu = isAdmin() ? menuService.get(menuId) : menuService.get(menuId, getVender()); Assert.notNull(menu, "[参数错误]食谱不存在, menuId:" + menuId); if (statuses != null && statuses.length > 0) { - Assert.isTrue(Arrays.stream(statuses).noneMatch(menuStatus -> menu.getStatus().equals(menuStatus)), "[参数错误]食谱已通过审核或者发布, menuId:" + menuId); + Assert.isTrue(Arrays.stream(statuses).noneMatch(menuStatus -> menu.getStatus().equals(menuStatus)), "[参数错误]食谱已发布, menuId:" + menuId); } return menu; } 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 caab131..9b4def8 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 @@ -33,7 +33,7 @@ public class MenuReleaseController extends BaseController { Menu menu = menuService.get(id); Assert.notNull(menu, "[参数错误]食谱不存在!"); Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getStatus() == MenuStatus.pass, "[参数错误]该食谱当前非审批通过状态,不可发布!"); + Assert.isTrue(menu.getStatus() == MenuStatus.draft, "[参数错误]该食谱当前非草稿状态,不可发布!"); 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()); } diff --git a/diet-web/src/main/java/com/mathvision/diet/controller/MenuReviewController.java b/diet-web/src/main/java/com/mathvision/diet/controller/MenuReviewController.java index 8c6e0ad..aa89cbd 100644 --- a/diet-web/src/main/java/com/mathvision/diet/controller/MenuReviewController.java +++ b/diet-web/src/main/java/com/mathvision/diet/controller/MenuReviewController.java @@ -1,77 +1,63 @@ package com.mathvision.diet.controller; -import com.mathvision.diet.domian.MenuStatus; -import com.mathvision.diet.entity.Menu; -import com.mathvision.diet.service.MenuReviewService; -import com.mathvision.diet.service.MenuService; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; import org.springframework.stereotype.Controller; -import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.annotation.Resource; @RequestMapping("/api/menu/review") @Controller public class MenuReviewController extends BaseController { - - @Resource - MenuService menuService; - - @Resource - MenuReviewService menuReviewService; - - @ResponseBody - @RequestMapping(method = RequestMethod.PUT) - public void submit(@RequestParam Long id) { - Menu menu = menuService.get(id); - Assert.notNull(menu, "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getStatus() == MenuStatus.draft || menu.getStatus() == MenuStatus.reject, "[参数错误]提交审核失败: 该食谱当前非草稿或者审核失败状态!"); - menuReviewService.submit(id, getUid()); - } - - @ResponseBody - @RequestMapping(method = RequestMethod.DELETE) - public void disable(@RequestParam Long id) { - Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); - Menu menu = menuService.get(id); - Assert.notNull(menu, "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getStatus() != MenuStatus.pass && menu.getStatus() != MenuStatus.publish, "[参数错误]禁用食谱失败: 该食谱当前非审批通过或者发布状态!"); - menuReviewService.disable(id, getUid()); - } - - @ResponseBody - @RequestMapping(method = RequestMethod.POST) - public void approve(@RequestParam Long id, @RequestParam boolean pass, @RequestParam(required = false) String reason) { - Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); - Menu menu = menuService.get(id); - Assert.notNull(menu, "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); - Assert.isTrue(menu.getStatus() == MenuStatus.submit || menu.getStatus() == MenuStatus.reject, "[参数错误]审批食谱失败: 该食谱当前非提交审核状态!"); - if(pass){ - menuReviewService.pass(id, reason, getUid()); - } else { - menuReviewService.reject(id, reason, getUid()); - } - } - - @ResponseBody - @RequestMapping(method = RequestMethod.GET) - public Page query(@RequestParam(required = false) String name, @RequestParam(required = false) Integer status, @RequestParam(required = false) Long vender, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false, defaultValue = "0") int pageNo, @RequestParam(required = false, defaultValue = "20") int pageSize) { - return menuReviewService.list(vender, MenuStatus.toType(status), name, parseDate(startTime), parseDate(endTime), PageRequest.of(pageNo, pageSize).withSort(Sort.by(Sort.Direction.DESC, "id"))); - } - - @ResponseBody - @RequestMapping(value = "count", method = RequestMethod.GET) - public Object count() { - Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); - return menuReviewService.count(); - } +// @Resource +// MenuService menuService; +// +// @Resource +// MenuReviewService menuReviewService; +// +// @ResponseBody +// @RequestMapping(method = RequestMethod.PUT) +// public void submit(@RequestParam Long id) { +// Menu menu = menuService.get(id); +// Assert.notNull(menu, "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getStatus() == MenuStatus.draft || menu.getStatus() == MenuStatus.reject, "[参数错误]提交审核失败: 该食谱当前非草稿或者审核失败状态!"); +// menuReviewService.submit(id, getUid()); +// } +// +// @ResponseBody +// @RequestMapping(method = RequestMethod.DELETE) +// public void disable(@RequestParam Long id) { +// Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); +// Menu menu = menuService.get(id); +// Assert.notNull(menu, "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getStatus() != MenuStatus.pass && menu.getStatus() != MenuStatus.publish, "[参数错误]禁用食谱失败: 该食谱当前非审批通过或者发布状态!"); +// menuReviewService.disable(id, getUid()); +// } +// +// @ResponseBody +// @RequestMapping(method = RequestMethod.POST) +// public void approve(@RequestParam Long id, @RequestParam boolean pass, @RequestParam(required = false) String reason) { +// Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); +// Menu menu = menuService.get(id); +// Assert.notNull(menu, "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getVender().equals(getVender()) || isAdmin(), "[参数错误]食谱不存在!"); +// Assert.isTrue(menu.getStatus() == MenuStatus.submit || menu.getStatus() == MenuStatus.reject, "[参数错误]审批食谱失败: 该食谱当前非提交审核状态!"); +// if(pass){ +// menuReviewService.pass(id, reason, getUid()); +// } else { +// menuReviewService.reject(id, reason, getUid()); +// } +// } +// +// @ResponseBody +// @RequestMapping(method = RequestMethod.GET) +// public Page query(@RequestParam(required = false) String name, @RequestParam(required = false) Integer status, @RequestParam(required = false) Long vender, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false, defaultValue = "0") int pageNo, @RequestParam(required = false, defaultValue = "20") int pageSize) { +// return menuReviewService.list(vender, MenuStatus.toType(status), name, parseDate(startTime), parseDate(endTime), PageRequest.of(pageNo, pageSize).withSort(Sort.by(Sort.Direction.DESC, "id"))); +// } +// +// @ResponseBody +// @RequestMapping(value = "count", method = RequestMethod.GET) +// public Object count() { +// Assert.isTrue(isAdmin(), "[参数错误]无审批权限!"); +// return menuReviewService.count(); +// } } \ No newline at end of file diff --git a/diet-web/src/main/resources/static/icon.html b/diet-web/src/main/resources/static/icon.html index f22c5ec..a037a7c 100644 --- a/diet-web/src/main/resources/static/icon.html +++ b/diet-web/src/main/resources/static/icon.html @@ -24,6 +24,6 @@ Content-Disposition: form-data; name="extraInfo";

2. ͼƬ(nginxĿ¼,ͨapi·,ʹǰ·)

-

GET /icon/12341234213.jpg

+

GET /api/icon/12341234213.jpg

diff --git a/diet-web/src/main/resources/static/menu/menu.html b/diet-web/src/main/resources/static/menu/menu.html index 955b13d..45bbb49 100644 --- a/diet-web/src/main/resources/static/menu/menu.html +++ b/diet-web/src/main/resources/static/menu/menu.html @@ -13,7 +13,7 @@ "", "" ], - "day": 1, + "day": [1,3,5], "id": 1, "meals": [ "", @@ -70,7 +70,7 @@ endTime=2024-03-01 "", "" ], - "day": 1, + "day": [1,3,5], "id": 1, "meals": [ "", @@ -118,8 +118,7 @@ endTime=2024-03-01
vendors=1,2,3  // Чҵ˲
 name=Ѽ   // 
 nutrient=1      // Ӫƻ
-day=7           // , 7ʶһ~
-days=[1,3,5]    // , һ,,,   daysdayѡһ
+day=1,3,5       // һ,,
 meals=,, // ʹ
 month=1,2,3,4,5,6,7,8,9,10,11,12  // ·
 crows=,  //Ⱥ  
@@ -144,8 +143,7 @@ crows=
 
id=1 // ʳID
 name=Ѽ   // 
 nutrient=1      // Ӫƻ
-day=7           // , 7ʶһ~
-days=[1,3,5]    // , һ,,,   daysdayѡһ
+day=1,3,5       // һ,,
 meals=,, // ʹ
 month=1,2,3,4,5,6,7,8,9,10,11,12  // ·
 crows=,  //Ⱥ  
diff --git a/doc/icon.md b/doc/icon.md
index c1d283e..70b85be 100644
--- a/doc/icon.md
+++ b/doc/icon.md
@@ -28,4 +28,4 @@ Content-Disposition: form-data; name="extraInfo";
 ```
 
 # 2. 访问图片(挂在nginx目录下,不用通过api路径访问,使用前端路径访问)
-> GET /icon/12341234213.jpg
\ No newline at end of file
+> GET /api/icon/12341234213.jpg
\ No newline at end of file
diff --git a/doc/menu/menu.md b/doc/menu/menu.md
index 5116da5..371df18 100644
--- a/doc/menu/menu.md
+++ b/doc/menu/menu.md
@@ -16,7 +16,7 @@ id=1
       "轻体力",
       "重体力"
     ],
-    "day": 1,
+    "day": [1,3,5],
     "id": 1,
     "meals": [
       "早餐",
@@ -78,7 +78,7 @@ endTime=2024-03-01
           "轻体力",
           "重体力"
         ],
-        "day": 1,
+        "day": [1,3,5],
         "id": 1,
         "meals": [
           "早餐",
@@ -129,8 +129,7 @@ endTime=2024-03-01
 vendors=1,2,3  // 管理端有效,业务端不用
 name=番茄鸡蛋汤   // 名称
 nutrient=1      // 营养计划编号
-day=7           // 天数, 如果传7则标识周一~周日
-days=[1,3,5]    // 天数, 代表周一,周三,周五,   days和day二选一
+day=1,3,5       // 代表周一,周三,周五
 meals=早餐,午餐,晚餐 // 餐次
 month=1,2,3,4,5,6,7,8,9,10,11,12  // 适用月份
 crows=重体力,轻体力  //人群  
@@ -160,8 +159,7 @@ crows=重体力,轻体力  //人群
 id=1 // 食谱ID
 name=番茄鸡蛋汤   // 名称
 nutrient=1      // 营养计划编号
-day=7           // 天数, 如果传7则标识周一~周日
-days=[1,3,5]    // 天数, 代表周一,周三,周五,   days和day二选一
+day=1,3,5       // 代表周一,周三,周五
 meals=早餐,午餐,晚餐 // 餐次
 month=1,2,3,4,5,6,7,8,9,10,11,12  // 适用月份
 crows=重体力,轻体力  //人群