h5周菜谱
This commit is contained in:
parent
b23e27759b
commit
e42bcb884b
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -62,4 +62,6 @@ public interface CookCollectionDishesMapper {
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteCookCollectionDishesByDishesIds(Long[] ids);
|
||||
|
||||
public Long getCountByUserIdAndDishesId(Long userId, Long dishesId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<MapBean> getCookMaterialTypeMap();
|
||||
|
||||
AppletDishesDetailVO selectDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO);
|
||||
|
||||
List<CookMaterialBasVO> getCookMaterialById(Long dishesId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<MenuDishesImportDTO> request);
|
||||
|
||||
public AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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("菜单没有用户信息");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class AppletDishesDetailVO {
|
|||
private Integer isFavorites;
|
||||
@ApiModelProperty("菜品规格")
|
||||
private List<AppletDishesSizeV2VO> dishesDetailList;
|
||||
List<MenuMaterialBasVO> materialList;
|
||||
List<CookMaterialBasVO> materialList;
|
||||
@ApiModelProperty("套餐菜品明细")
|
||||
private List<String> packageDishesList;
|
||||
|
||||
|
|
|
|||
|
|
@ -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("食材名称")
|
||||
|
|
@ -97,4 +97,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{dishesId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="getCountByUserIdAndDishesId" resultType="Long">
|
||||
select count(1) from cook_collection_dishes
|
||||
where user_id = #{userId} and dishes_id = #{dishesId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -79,6 +79,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="dishesTypeName" column="dishes_type_name" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="appletDishesDetailVO" type="com.bonus.canteen.core.cook.vo.AppletDishesDetailVO">
|
||||
<result property="dishesId" column="dishes_id"/>
|
||||
<result property="mealType" column="meal_type"/>
|
||||
<result property="customId" column="custom_d"/>
|
||||
<result property="dishesName" column="dishes_name"/>
|
||||
<result property="aliasName" column="alias_name"/>
|
||||
<result property="imageUrl" column="image_url"/>
|
||||
<result property="intro" column="intro"/>
|
||||
<result property="particulars" column="particulars"/>
|
||||
<collection property="dishesDetailList" ofType="com.bonus.canteen.core.cook.vo.AppletDishesSizeV2VO">
|
||||
<result property="dishesId" column="dishes_id"/>
|
||||
<result property="dishesName" column="dishes_name"/>
|
||||
<result property="surplusNum" column="surplus_num"/>
|
||||
<result property="restrictNum" column="restrict_num"/>
|
||||
<result property="dishesPrice" column="dishes_price"/>
|
||||
<result property="prefPrice" column="pref_price"/>
|
||||
<result property="sizeType" column="size_type"/>
|
||||
<result property="sizeJson" column="size_json"/>
|
||||
<result property="calories" column="calories"/>
|
||||
<result property="protein" column="protein"/>
|
||||
<result property="fat" column="fat"/>
|
||||
<result property="carbohydrate" column="carbohydrate"/>
|
||||
<result property="dietaryFiber" column="dietary_fiber"/>
|
||||
<result property="cholesterol" column="cholesterol"/>
|
||||
<result property="calcium" column="calcium"/>
|
||||
<result property="sodium" column="sodium"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectCookDishesVo">
|
||||
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}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<!-- 根据菜品id获取菜品详情 -->
|
||||
<select id="selectDishesDetailByDishesId" resultMap="appletDishesDetailVO">
|
||||
select
|
||||
md.dishes_id,
|
||||
md.meal_type,
|
||||
md.custom_id,
|
||||
md.dishes_name,
|
||||
md.dishes_name as real_dishes_name,
|
||||
md.alias_name,
|
||||
md.image_url,
|
||||
md.intro,
|
||||
md.particulars,
|
||||
mrd.size_type,
|
||||
md.size_json,
|
||||
mrd.price as dishes_price,
|
||||
mrd.sale_price as pref_price,
|
||||
mrd.supply_num - mrd.surplus_num as sales_num,
|
||||
mrd.surplus_num,
|
||||
mrd.restrict_num,
|
||||
md.calories,
|
||||
md.protein,
|
||||
md.fat,
|
||||
md.carbohydrate,
|
||||
md.dietary_fiber,
|
||||
md.cholesterol,
|
||||
md.calcium,
|
||||
md.sodium
|
||||
from
|
||||
cook_dishes md
|
||||
left join cook_recipe_dishes mrd on md.dishes_id = mrd.dishes_id
|
||||
where
|
||||
mrd.detail_id = #{detailId} and md.del_flag = #{delFlag}
|
||||
</select>
|
||||
|
||||
<select id="getCookMaterialById" resultType="com.bonus.canteen.core.cook.vo.CookMaterialBasVO">
|
||||
SELECT cm.material_id,
|
||||
cm.material_name,
|
||||
cm.material_code,
|
||||
cm.img_url,
|
||||
cdm.weight,
|
||||
cdm.material_type,
|
||||
cn.nutrition_type_id as little_type
|
||||
FROM cook_material cm
|
||||
LEFT JOIN cook_dishes_material cdm ON cm.material_id = cdm.material_id
|
||||
LEFT JOIN cook_nutrition cn ON cn.nutrition_id = cm.nutrition_id
|
||||
WHERE cdm.dishes_id = #{dishesId}
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue