caoyiwen 1 year ago
parent
commit
4568983acb
  1. 6
      diet-core/src/main/java/com/mathvision/diet/service/DishService.java
  2. 2
      diet-core/src/main/java/com/mathvision/diet/service/MenuDishService.java
  3. 4
      diet-core/src/main/java/com/mathvision/diet/service/MenuService.java
  4. 2
      diet-web/src/main/java/com/mathvision/diet/controller/DishController.java
  5. 2
      diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java

6
diet-core/src/main/java/com/mathvision/diet/service/DishService.java

@ -48,13 +48,13 @@ public class DishService {
@Resource @Resource
private DishRepository dishRepository; private DishRepository dishRepository;
@Scheduled(cron = "0/5 * * * * *") @Scheduled(cron = "0/2 * * * * *")
public void init() { public void init() {
if (!UPDATE_LABEL_LOCK.tryLock()) { if (!UPDATE_LABEL_LOCK.tryLock()) {
return; return;
} }
try { try {
List<Dish> dishes = UPDATE_LABEL_TIME == null ? dishRepository.findAll() : dishRepository.findByModifyGreaterThan(UPDATE_LABEL_TIME); List<Dish> dishes = UPDATE_LABEL_TIME == null ? dishRepository.findAll() : dishRepository.findByModifyGreaterThan(UPDATE_LABEL_TIME.minusMillis(1000));
if (dishes.isEmpty()) { if (dishes.isEmpty()) {
return; return;
} }
@ -99,7 +99,7 @@ public class DishService {
public void copy(Dish dish, List<Long> vendors, String operator) { public void copy(Dish dish, List<Long> vendors, String operator) {
Instant instant = Instant.now(); Instant instant = Instant.now();
List<Dish> dishes = vendors.stream().filter(vender -> exists(null, dish.getName(), vender)).map(vender -> Dish.builder().name(dish.getName()).vender(vender).marks(dish.getMarks()).poly(dish.getPoly()).label(dish.getLabel()).month(dish.getMonth()).icon(dish.getIcon()).ingredient(dish.getIngredient()).operate(operator).created(instant).modify(instant).build()).collect(Collectors.toList()); List<Dish> dishes = vendors.stream().filter(vender -> !exists(null, dish.getName(), vender)).map(vender -> Dish.builder().name(dish.getName()).vender(vender).marks(dish.getMarks()).poly(dish.getPoly()).label(dish.getLabel()).month(dish.getMonth()).icon(dish.getIcon()).ingredient(dish.getIngredient()).operate(operator).created(instant).modify(instant).build()).collect(Collectors.toList());
dishRepository.saveAll(dishes); dishRepository.saveAll(dishes);
log.info("[DishService] copy dishes count = " + dishes.size() + ", operator = " + operator); log.info("[DishService] copy dishes count = " + dishes.size() + ", operator = " + operator);
} }

2
diet-core/src/main/java/com/mathvision/diet/service/MenuDishService.java

@ -53,7 +53,7 @@ public class MenuDishService {
return; return;
} }
try { try {
List<MenuDish> dishes = UPDATE_LABEL_TIME == null ? menuDishRepository.findAll() : menuDishRepository.findByModifyGreaterThan(UPDATE_LABEL_TIME); List<MenuDish> dishes = UPDATE_LABEL_TIME == null ? menuDishRepository.findAll() : menuDishRepository.findByModifyGreaterThan(UPDATE_LABEL_TIME.minusMillis(1000));
if (dishes.isEmpty()) { if (dishes.isEmpty()) {
return; return;
} }

4
diet-core/src/main/java/com/mathvision/diet/service/MenuService.java

@ -45,9 +45,9 @@ public class MenuService {
public List<Long> copy(Menu menu, String name, List<Long> vendors, String operator) { public List<Long> copy(Menu menu, String name, List<Long> vendors, String operator) {
Instant dateTime = Instant.now(); Instant dateTime = Instant.now();
List<MenuDish> menuDishes= menuDishRepository.findByMenu(menu.getId()); List<MenuDish> menuDishes= menuDishRepository.findByMenu(menu.getId());
List<Menu> menus = vendors.stream().map(v -> Menu.builder().name(name).meals(menu.getMeals()).crows(menu.getCrows()).scale(menu.getCrows().stream().collect(Collectors.toMap(x -> x, x -> 0))).day(menu.getDay()).nutrient(menu.getNutrient()).month(menu.getMonth()).vender(v).status(MenuStatus.draft).operate(operator).created(dateTime).modify(dateTime).build()).collect(Collectors.toList()); List<Menu> menus = vendors.stream().map(vender -> Menu.builder().name(name).meals(menu.getMeals()).crows(menu.getCrows()).scale(menu.getCrows().stream().collect(Collectors.toMap(x -> x, x -> 0))).day(menu.getDay()).nutrient(menu.getNutrient()).month(menu.getMonth()).vender(vender).status(MenuStatus.draft).operate(operator).created(dateTime).modify(dateTime).build()).collect(Collectors.toList());
menus = add(menus); menus = add(menus);
List<MenuDish> dishes = menus.stream().map(v -> menuDishes.stream().map(dish -> MenuDish.builder().vender(v.getVender()).menu(v.getId()).dish(dish.getVender().equals(v.getVender()) ? dishService.copy(dish.getDish(), v.getVender(), operator, dateTime).getId() : dish.getDish()).day(dish.getDay()).meal(dish.getMeal()).name(dish.getName()).marks(dish.getMarks()).poly(dish.getPoly()).label(dish.getLabel()).ingredient(dish.getIngredient()).operate(operator).created(dateTime).modify(dateTime).build()).collect(Collectors.toList())).flatMap(List::stream).collect(Collectors.toList()); List<MenuDish> dishes = menus.stream().map(v -> menuDishes.stream().map(dish -> MenuDish.builder().vender(v.getVender()).menu(v.getId()).dish(dish.getVender().equals(v.getVender()) ? dish.getDish() : dishService.copy(dish.getDish(), v.getVender(), operator, dateTime).getId()).day(dish.getDay()).meal(dish.getMeal()).name(dish.getName()).marks(dish.getMarks()).poly(dish.getPoly()).label(dish.getLabel()).ingredient(dish.getIngredient()).operate(operator).created(dateTime).modify(dateTime).build()).collect(Collectors.toList())).flatMap(List::stream).collect(Collectors.toList());
menuDishRepository.saveAll(dishes); menuDishRepository.saveAll(dishes);
return menus.stream().map(Menu::getId).collect(Collectors.toList()); return menus.stream().map(Menu::getId).collect(Collectors.toList());
} }

2
diet-web/src/main/java/com/mathvision/diet/controller/DishController.java

@ -77,7 +77,7 @@ public class DishController extends BaseController {
Assert.notNull(dish, "[参数错误]菜品不存在, 复制失败!"); Assert.notNull(dish, "[参数错误]菜品不存在, 复制失败!");
if(isAdmin()) { if(isAdmin()) {
vendors = vendors == null ? Lists.newArrayList() : vendors.stream().filter(venderService::exists).collect(Collectors.toList()); vendors = vendors == null ? Lists.newArrayList() : vendors.stream().filter(venderService::exists).distinct().collect(Collectors.toList());
} else { } else {
vendors = Lists.newArrayList(getVender()); vendors = Lists.newArrayList(getVender());
} }

2
diet-web/src/main/java/com/mathvision/diet/controller/MenuController.java

@ -152,7 +152,7 @@ public class MenuController extends BaseController {
Assert.isTrue(!name.matches("[\\[\\]:?*/\\\\]") && name.length() < 31, "[参数错误]食谱名称小于30个字符,且不能包含特殊字符!"); Assert.isTrue(!name.matches("[\\[\\]:?*/\\\\]") && name.length() < 31, "[参数错误]食谱名称小于30个字符,且不能包含特殊字符!");
if(isAdmin()) { if(isAdmin()) {
vendors = vendors == null ? Lists.newArrayList() : vendors.stream().filter(venderService::exists).collect(Collectors.toList()); vendors = vendors == null ? Lists.newArrayList() : vendors.stream().filter(venderService::exists).distinct().collect(Collectors.toList());
} else { } else {
vendors = Lists.newArrayList(getVender()); vendors = Lists.newArrayList(getVender());
} }

Loading…
Cancel
Save