diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysRecipesController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysRecipesController.java index a6f196231..950b7c1cc 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysRecipesController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysRecipesController.java @@ -4,7 +4,8 @@ import com.stdiet.common.annotation.Log; import com.stdiet.common.core.controller.BaseController; import com.stdiet.common.core.domain.AjaxResult; import com.stdiet.common.enums.BusinessType; -import com.stdiet.custom.domain.SysDishes; +import com.stdiet.custom.domain.SysRecipes; +import com.stdiet.custom.domain.SysRecipesDailyDishes; import com.stdiet.custom.service.ISysRecipesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -16,36 +17,66 @@ public class SysRecipesController extends BaseController { @Autowired private ISysRecipesService sysRecipesService; + /** + * 获取食谱详情 + * + * @param resipesId + * @return + */ @GetMapping(value = "/{resipesId}") public AjaxResult getInfo(@PathVariable("resipesId") Long resipesId) { return AjaxResult.success(sysRecipesService.selectSysRecipesByRecipesId(resipesId)); } - /** - * 修改食谱菜品 - * - * @return - */ - @Log(title = "食谱", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysDishes sysDishes) { - return toAjax(sysRecipesService.updateDishesDetail(sysDishes)); - } - @Log(title = "食谱", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody SysDishes sysDishes) { - int rows = sysRecipesService.insertDishes(sysDishes); + public AjaxResult addRecipes(@RequestBody SysRecipes sysRecipes) { + int rows = sysRecipesService.addRecipes(sysRecipes); if (rows > 0) { - return AjaxResult.success(sysDishes.getId()); + return AjaxResult.success(sysRecipes.getId()); } else { return AjaxResult.error(); } } - @Log(title = "销售订单", businessType = BusinessType.DELETE) - @DeleteMapping("/dishes/{cId}") - public AjaxResult delete(@PathVariable Long cId) { - return toAjax(sysRecipesService.deleteDishes(cId)); + /** + * 修改食谱菜品 + * + * @param sysRecipesDailyDishes + * @return + */ + @Log(title = "食谱菜品", businessType = BusinessType.UPDATE) + @PutMapping(value = "/dishes") + public AjaxResult edit(@RequestBody SysRecipesDailyDishes sysRecipesDailyDishes) { + return toAjax(sysRecipesService.updateDishesDetail(sysRecipesDailyDishes)); + } + + /** + * 添加菜品 + * + * @param sysRecipesDailyDishes + * @return + */ + @Log(title = "食谱菜品", businessType = BusinessType.INSERT) + @PostMapping(value = "/dishes") + public AjaxResult add(@RequestBody SysRecipesDailyDishes sysRecipesDailyDishes) { + int rows = sysRecipesService.addDishes(sysRecipesDailyDishes); + if (rows > 0) { + return AjaxResult.success(sysRecipesDailyDishes.getId()); + } else { + return AjaxResult.error(); + } + } + + /** + * 删除菜品 + * + * @param id + * @return + */ + @Log(title = "食谱菜品", businessType = BusinessType.DELETE) + @DeleteMapping("/dishes/{id}") + public AjaxResult delete(@PathVariable Long id) { + return toAjax(sysRecipesService.deleteDishes(id)); } } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishes.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishes.java index d831bce8c..6d6f32c9f 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishes.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishes.java @@ -23,10 +23,6 @@ public class SysDishes { */ private Long id; - private Long cId; - - private Long menuId; - /** * 菜品名称 */ @@ -79,6 +75,4 @@ public class SysDishes { private List igdList; - private JSONArray detail; - } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipes.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipes.java index 9b727297d..40dc33b41 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipes.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipes.java @@ -1,47 +1,17 @@ package com.stdiet.custom.domain; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import java.util.Date; import java.util.List; @Data public class SysRecipes { - private static final long serialVersionUID = 1L; private Long id; - private Integer numDay; + private Long cusId; - private List dishes; + private Long planId; - private Integer reviewStatus; - - /** - * 创建者 - */ - private String createBy; - - /** - * 创建时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - /** - * 更新者 - */ - private String updateBy; - - /** - * 更新时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - - /** - * 备注 - */ - private String remark; + private List menus; } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDaily.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDaily.java new file mode 100644 index 000000000..057f25b21 --- /dev/null +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDaily.java @@ -0,0 +1,34 @@ +package com.stdiet.custom.domain; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class SysRecipesDaily { + private Long id; + + private Integer numDay; + + private Date date; + + private Long recipesId; + + private Long cusId; + + private Integer reviewStatus; + + private Date createTime; + + private String createBy; + + private Date updateTime; + + private String updateBy; + + private String remark; + + private List dishes; + +} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDailyDishes.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDailyDishes.java new file mode 100644 index 000000000..b4e5d5e77 --- /dev/null +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesDailyDishes.java @@ -0,0 +1,28 @@ +package com.stdiet.custom.domain; + +import com.alibaba.fastjson.JSONArray; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class SysRecipesDailyDishes { + private Long id; + + private Long menuId; + + private String name; + + private Long dishesId; + + private JSONArray detail; + + private String methods; + + private List igdList; + + private String type; + + private Integer isMain; +} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesMapper.java index 182589b86..b97792625 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesMapper.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysRecipesMapper.java @@ -1,17 +1,28 @@ package com.stdiet.custom.mapper; -import com.stdiet.custom.domain.SysDishes; import com.stdiet.custom.domain.SysRecipes; +import com.stdiet.custom.domain.SysRecipesDaily; +import com.stdiet.custom.domain.SysRecipesDailyDishes; import java.util.List; public interface SysRecipesMapper { + + public int addRecipes(SysRecipes sysRecipes); + + public int bashAddDishes(List dishes); + + public int bashAddMenus(List menus); + + + public int getNumDayByCusId(Long id); + public List selectSysRecipesByRecipesId(Long id); - public int updateDishesDetail(SysDishes sysDishes); + public int updateDishesDetail(SysRecipesDailyDishes sysRecipesDaily); - public int insertDishes(SysDishes sysDishes); + public int addDishes(SysRecipesDailyDishes sysRecipesDaily); - public int deleteDishes(Long cId); + public int deleteDishes(Long id); } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesService.java index 8b85509a2..b23c9b81c 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesService.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesService.java @@ -1,16 +1,20 @@ package com.stdiet.custom.service; -import com.stdiet.custom.domain.SysDishes; import com.stdiet.custom.domain.SysRecipes; +import com.stdiet.custom.domain.SysRecipesDaily; +import com.stdiet.custom.domain.SysRecipesDailyDishes; import java.util.List; public interface ISysRecipesService { + + public int addRecipes(SysRecipes sysRecipes); + public List selectSysRecipesByRecipesId(Long id); - public int updateDishesDetail(SysDishes sysDishes); + public int updateDishesDetail(SysRecipesDailyDishes sysRecipesDaily); - public int insertDishes(SysDishes sysDishes); + public int addDishes(SysRecipesDailyDishes sysRecipesDaily); - public int deleteDishes(Long cId); + public int deleteDishes(Long id); } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java index b9315178a..3ceaae40d 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java @@ -1,13 +1,18 @@ package com.stdiet.custom.service.impl; -import com.stdiet.custom.domain.SysDishes; import com.stdiet.custom.domain.SysRecipes; +import com.stdiet.custom.domain.SysRecipesDaily; +import com.stdiet.custom.domain.SysRecipesDailyDishes; +import com.stdiet.custom.domain.SysRecipesPlan; import com.stdiet.custom.mapper.SysRecipesMapper; +import com.stdiet.custom.mapper.SysRecipesPlanMapper; import com.stdiet.custom.service.ISysRecipesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Date; import java.util.List; @Service @@ -17,23 +22,64 @@ public class SysRecipesServiceImpl implements ISysRecipesService { @Autowired private SysRecipesMapper sysRecipesMapper; + @Autowired + private SysRecipesPlanMapper sysRecipesPlanMapper; + + + @Override + public int addRecipes(SysRecipes sysRecipes) { + int rows = sysRecipesMapper.addRecipes(sysRecipes); + if (rows > 0) { + int count = sysRecipesMapper.getNumDayByCusId(sysRecipes.getCusId()); + List menus = sysRecipes.getMenus(); + List dishes = new ArrayList<>(); + int size = menus.size(); + for (int i = 0; i < size; i++) { + SysRecipesDaily tarMenu = menus.get(i); + // 计算menuId + long dailyId = sysRecipes.getId() + new Date().getTime() + i; + tarMenu.setId(dailyId); + // 插入recipiesId + tarMenu.setRecipesId(sysRecipes.getId()); + // 插入numDay + tarMenu.setNumDay(count + i + 1); + for (SysRecipesDailyDishes tmpDishes : tarMenu.getDishes()) { + // 让菜品插入menuId + tmpDishes.setMenuId(dailyId); + dishes.add(tmpDishes); + } + } + // 插入每天食谱 + sysRecipesMapper.bashAddMenus(menus); + // 插入每天菜品 + sysRecipesMapper.bashAddDishes(dishes); + // 更新食谱计划 + SysRecipesPlan sysRecipesPlan = new SysRecipesPlan(); + sysRecipesPlan.setId(sysRecipes.getPlanId()); + sysRecipesPlan.setRecipesId(sysRecipes.getId()); + sysRecipesPlanMapper.updateSysRecipesPlan(sysRecipesPlan); + } + + return rows; + } + @Override public List selectSysRecipesByRecipesId(Long id) { return sysRecipesMapper.selectSysRecipesByRecipesId(id); } @Override - public int updateDishesDetail(SysDishes sysDishes) { - return sysRecipesMapper.updateDishesDetail(sysDishes); + public int updateDishesDetail(SysRecipesDailyDishes sysRecipesDailyDishes) { + return sysRecipesMapper.updateDishesDetail(sysRecipesDailyDishes); } @Override - public int insertDishes(SysDishes sysDishes) { - return sysRecipesMapper.insertDishes(sysDishes); + public int addDishes(SysRecipesDailyDishes sysRecipesDailyDishes) { + return sysRecipesMapper.addDishes(sysRecipesDailyDishes); } @Override - public int deleteDishes(Long cId) { - return sysRecipesMapper.deleteDishes(cId); + public int deleteDishes(Long id) { + return sysRecipesMapper.deleteDishes(id); } } diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml index 8c4a648bb..d29b1f7df 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -15,9 +15,10 @@ - - - + + + + @@ -78,26 +79,26 @@ - + update sys_customer_menu_dishes detail = #{detail, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler}, - where id = #{cId} + where id = #{id} - + insert into sys_customer_menu_dishes menu_id, - dishes_id, + dishes_id, type, detail, #{menuId}, - #{id}, + #{dishesId}, #{type}, #{detail, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler}, @@ -105,7 +106,39 @@ - delete from sys_customer_menu_dishes where id = #{cId} + delete from sys_customer_menu_dishes where id = #{id} + + + + + + insert into sys_customer_menu + + cus_id, + + + #{cusId}, + + + + + + insert into sys_customer_daily_menu (id, num_day, date, recipes_id, cus_id) values + + (#{item.id}, #{item.numDay}, #{item.date}, #{item.recipesId}, #{item.cusId}) + + + + + + insert into sys_customer_menu_dishes (menu_id, type, dishes_id, detail) values + + (#{item.menuId}, #{item.type}, #{item.dishesId}, #{item.detail, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler}) + + + \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml index fe546cb74..b14eca6a9 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml @@ -126,7 +126,7 @@