diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/controller/CookRecipeH5Controller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/controller/CookRecipeH5Controller.java index 45ae185..aa0d31e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/controller/CookRecipeH5Controller.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/controller/CookRecipeH5Controller.java @@ -4,9 +4,11 @@ import cn.hutool.core.util.ObjectUtil; import com.bonus.canteen.core.basic.domain.AllocMobileCanteenQueryDTO; import com.bonus.canteen.core.cook.domain.CookRecipe; import com.bonus.canteen.core.cook.dto.*; +import com.bonus.canteen.core.cook.service.ICookDishesService; import com.bonus.canteen.core.cook.service.ICookRecipeH5Service; import com.bonus.canteen.core.cook.service.ICookRecipeService; import com.bonus.canteen.core.cook.vo.AllocRecipeStallVO; +import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO; import com.bonus.canteen.core.cook.vo.CookRecipeDetailVO; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; @@ -26,6 +28,8 @@ import javax.validation.Valid; import java.time.LocalDate; import java.util.List; +import static com.bonus.common.core.web.domain.AjaxResult.success; + /** * 菜品计划信息Controller * @@ -39,6 +43,8 @@ import java.util.List; public class CookRecipeH5Controller extends BaseController { @Autowired private ICookRecipeH5Service cookRecipeH5Service; + @Autowired + private ICookDishesService cookDishesService; @ApiOperation("获取预定餐食堂列表") @GetMapping({"/reserve/canteen/shopstall/list"}) @@ -81,4 +87,11 @@ public class CookRecipeH5Controller extends BaseController { return getDataTable(null); } } + + @PostMapping({"/dishes/detail"}) + @ApiOperation("根据菜品id获取菜品详情") + public AjaxResult getRecipeDetail(@RequestBody AppletDishesDetailDTO dto) { + AppletDishesDetailVO dishesDetailVO = this.cookDishesService.getDishesDetailByDishesId(dto); + return success(dishesDetailVO); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/enums/CookMealTypeEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/enums/CookMealTypeEnum.java new file mode 100644 index 0000000..5f526da --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/enums/CookMealTypeEnum.java @@ -0,0 +1,54 @@ +package com.bonus.canteen.core.cook.enums; + +public enum CookMealTypeEnum { + DISHES(1, "菜品"), + PACKAGE_MEAL(2, "套餐"), + PRODUCT(3, "商品"); + + private final Integer key; + private final String value; + + private CookMealTypeEnum(Integer key, String value) { + this.key = key; + this.value = value; + } + + public static Integer getKey(String value) { + CookMealTypeEnum[] enums = values(); + CookMealTypeEnum[] var2 = enums; + int var3 = enums.length; + + for(int var4 = 0; var4 < var3; ++var4) { + CookMealTypeEnum temp = var2[var4]; + if (temp.value().equals(value)) { + return temp.key(); + } + } + + return null; + } + + public static String getValue(Integer key) { + CookMealTypeEnum[] enums = values(); + CookMealTypeEnum[] var2 = enums; + int var3 = enums.length; + + for(int var4 = 0; var4 < var3; ++var4) { + CookMealTypeEnum temp = var2[var4]; + if (temp.key().equals(key)) { + return temp.value(); + } + } + + return null; + } + + public Integer key() { + return this.key; + } + + public String value() { + return this.value; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookCollectionDishesMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookCollectionDishesMapper.java index ece5e07..44162fc 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookCollectionDishesMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookCollectionDishesMapper.java @@ -62,4 +62,6 @@ public interface CookCollectionDishesMapper { * @return 结果 */ public int deleteCookCollectionDishesByDishesIds(Long[] ids); + + public Long getCountByUserIdAndDishesId(Long userId, Long dishesId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookDishesMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookDishesMapper.java index 1c3c27d..56be3e4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookDishesMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookDishesMapper.java @@ -3,6 +3,9 @@ package com.bonus.canteen.core.cook.mapper; import java.util.List; import com.bonus.canteen.core.cook.domain.*; +import com.bonus.canteen.core.cook.dto.AppletDishesDetailDTO; +import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO; +import com.bonus.canteen.core.cook.vo.CookMaterialBasVO; import com.bonus.canteen.core.utils.NutritionEntity; import org.apache.ibatis.annotations.Param; @@ -159,4 +162,8 @@ public interface CookDishesMapper { * @return 菜品材料类型信息 */ List getCookMaterialTypeMap(); + + AppletDishesDetailVO selectDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO); + + List getCookMaterialById(Long dishesId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/ICookDishesService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/ICookDishesService.java index 07f7ea8..eb403b4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/ICookDishesService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/ICookDishesService.java @@ -2,8 +2,10 @@ package com.bonus.canteen.core.cook.service; import java.util.List; import com.bonus.canteen.core.cook.domain.CookDishes; +import com.bonus.canteen.core.cook.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.cook.dto.DishesImportCheckResult; import com.bonus.canteen.core.cook.dto.MenuDishesImportDTO; +import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO; import org.springframework.web.multipart.MultipartFile; /** @@ -76,4 +78,6 @@ public interface ICookDishesService { * @return 是否成功 */ Boolean newImportDishes(List request); + + public AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java index befc007..1f146dd 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java @@ -6,30 +6,32 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson2.JSONObject; import com.bonus.canteen.core.common.utils.EasyExcelUtil; import com.bonus.canteen.core.common.utils.LogUtil; import com.bonus.canteen.core.cook.domain.*; +import com.bonus.canteen.core.cook.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.cook.dto.DishesImportCheckResult; import com.bonus.canteen.core.cook.dto.MenuDishesImportDTO; -import com.bonus.canteen.core.cook.enums.MenuDishesTypeDefaultFlagEnum; +import com.bonus.canteen.core.cook.enums.CookMealTypeEnum; import com.bonus.canteen.core.cook.enums.MenuMaterialTypeEnum; import com.bonus.canteen.core.cook.enums.MenuSalesTypeEnum; +import com.bonus.canteen.core.cook.mapper.CookCollectionDishesMapper; import com.bonus.canteen.core.cook.mapper.CookNutritionMapper; +import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO; +import com.bonus.canteen.core.cook.vo.AppletDishesSizeV2VO; import com.bonus.canteen.core.utils.Arith; import com.bonus.canteen.core.utils.NutritionEntity; import com.bonus.canteen.core.utils.NutritionEntityUtil; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.houqin.constant.DelFlagEnum; import com.bonus.common.security.utils.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -56,6 +58,8 @@ public class CookDishesServiceImpl implements ICookDishesService { private CookDishesMapper cookDishesMapper; @Autowired private CookNutritionMapper cookNutritionMapper; + @Autowired + private CookCollectionDishesMapper cookCollectionDishesMapper; @Lazy @Resource( name = "smartCanteenTaskExecutor" @@ -549,4 +553,34 @@ public class CookDishesServiceImpl implements ICookDishesService { dishesList.forEach(this::insertCookDishes); } + public AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO) { + //AppletDishesDetailDTO dishesDetailDTO = (AppletDishesDetailDTO)JSON.parseObject(content, AppletDishesDetailDTO.class); + dishesDetailDTO.setDelFlag(DelFlagEnum.DEL_FALSE.key()); + Long baseDishesId = dishesDetailDTO.getDishesId(); + Long userId = dishesDetailDTO.getUserID(); + if (!ObjectUtil.isNull(userId) && userId != -1L) { + AppletDishesDetailVO appletDishesDetailVO = cookDishesMapper.selectDishesDetailByDishesId(dishesDetailDTO); + Long countDishes = this.cookCollectionDishesMapper.getCountByUserIdAndDishesId(userId, baseDishesId); + if (ObjectUtil.isNotNull(countDishes) && countDishes > 0L) { + appletDishesDetailVO.setIsFavorites(1); + } else { + appletDishesDetailVO.setIsFavorites(2); + } + Long dishesId = ((AppletDishesSizeV2VO)appletDishesDetailVO.getDishesDetailList().get(0)).getDishesId(); + List materialList; + if (CookMealTypeEnum.DISHES.key().equals(appletDishesDetailVO.getMealType())) { + materialList = this.cookDishesMapper.getCookMaterialById(dishesId); + appletDishesDetailVO.setMaterialList(materialList); + } else { + //套餐信息 暂时删除不要 +// materialList = this.cookDishesMapper.selectDishesName(dishesId); +// appletDishesDetailVO.setPackageDishesList(materialList); + } + + return appletDishesDetailVO; + } else { + throw new ServiceException("菜单没有用户信息"); + } + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/AppletDishesDetailVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/AppletDishesDetailVO.java index a25fb26..e517773 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/AppletDishesDetailVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/AppletDishesDetailVO.java @@ -30,7 +30,7 @@ public class AppletDishesDetailVO { private Integer isFavorites; @ApiModelProperty("菜品规格") private List dishesDetailList; - List materialList; + List materialList; @ApiModelProperty("套餐菜品明细") private List packageDishesList; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/MenuMaterialBasVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/CookMaterialBasVO.java similarity index 97% rename from bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/MenuMaterialBasVO.java rename to bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/CookMaterialBasVO.java index 1651724..87fcbbb 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/MenuMaterialBasVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/vo/CookMaterialBasVO.java @@ -7,7 +7,7 @@ import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @ApiModel("菜品标签分页返回") -public class MenuMaterialBasVO implements Serializable { +public class CookMaterialBasVO implements Serializable { @ApiModelProperty("食材id") private Long materialId; @ApiModelProperty("食材名称") diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookCollectionDishesMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookCollectionDishesMapper.xml index 9651af5..6560ec1 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookCollectionDishesMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookCollectionDishesMapper.xml @@ -97,4 +97,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{dishesId} + + \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookDishesMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookDishesMapper.xml index 9cc2eba..92e9a31 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookDishesMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookDishesMapper.xml @@ -79,6 +79,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select dishes_id, meal_type, custom_id, inventory_id, dishes_name, alias_name, bar_code, intro, cook_id, type_id,cdt.dishes_type_name, classify_id, effect_id, style_id, if_local_feature, dishes_depart, sequence, pungency_degree, sales_mode, size_type, size_json, @@ -521,4 +550,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{detailId} + + + + + \ No newline at end of file