diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysDishesController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysDishesController.java index 513f585d4..af5b66e53 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysDishesController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysDishesController.java @@ -37,16 +37,7 @@ public class SysDishesController extends BaseController { @GetMapping("/list") public TableDataInfo list(SysDishes sysDishes) { startPage(); - List<SysDishes> list = sysDishesService.selectSysDishesList(sysDishes); - for (SysDishes dishes : list) { - List<SysDishesIngredient> ingredients = sysDishesService.selectSysIngreditentsById(dishes.getId()); - if (StringUtils.isNull(ingredients)) { - dishes.setIgdList(new ArrayList<>()); - } else { - dishes.setIgdList(ingredients); - } - } - return getDataTable(list); + return getDataTable(sysDishesService.selectSysDishesList(sysDishes)); } /** 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 8473a063d..68d0f41b4 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 @@ -89,4 +89,10 @@ public class SysDishes { private Integer[] dishClass; + private Long[] notRecIds; + + private Long[] recIds; + + private String physical; + } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java index 092dce023..87ee817fe 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java @@ -31,5 +31,8 @@ public class SysDishesIngredient extends SysIngredient { private String cus_weight; + private String recIdsStr; + + private String notRecIdsStr; } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredient.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredient.java index 0898611a0..296723132 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredient.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredient.java @@ -101,7 +101,6 @@ public class SysIngredient { */ private String remark; - private Long[] recIds; private Long[] notRecIds; diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientNotRec.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientNotRec.java deleted file mode 100644 index 059347528..000000000 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientNotRec.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.stdiet.custom.domain; - -public class SysIngredientNotRec { - private Long ingredientId; - private Long notRecommandId; - - public Long getIngredientId() { - return ingredientId; - } - - public void setIngredientId(Long ingredientId) { - this.ingredientId = ingredientId; - } - - public Long getRecommandId() { - return notRecommandId; - } - - public void setRecommandId(Long recommandId) { - this.notRecommandId = recommandId; - } - - @Override - public String toString() { - return "SysIngredientRec{" + - "ingredientId=" + ingredientId + - ", notRecommandId=" + notRecommandId + - '}'; - } -} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientRec.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientRec.java deleted file mode 100644 index c1cb0ec09..000000000 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysIngredientRec.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.stdiet.custom.domain; - -public class SysIngredientRec { - private Long ingredientId; - private Long recommandId; - - public Long getIngredientId() { - return ingredientId; - } - - public void setIngredientId(Long ingredientId) { - this.ingredientId = ingredientId; - } - - public Long getRecommandId() { - return recommandId; - } - - public void setRecommandId(Long recommandId) { - this.recommandId = recommandId; - } - - @Override - public String toString() { - return "SysIngredientRec{" + - "ingredientId=" + ingredientId + - ", recommandId=" + recommandId + - '}'; - } -} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSigns.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSigns.java index b5a70c8a9..6b633c702 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSigns.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSigns.java @@ -1,9 +1,7 @@ package com.stdiet.custom.domain; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.stdiet.common.annotation.Excel; -import com.stdiet.common.core.domain.BaseEntity; +import lombok.Data; /** * 体征对象 sys_physical_signs @@ -11,56 +9,27 @@ import com.stdiet.common.core.domain.BaseEntity; * @author wonder * @date 2020-12-23 */ -public class SysPhysicalSigns extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** id */ +@Data +public class SysPhysicalSigns { + /** + * id + */ private Long id; - /** 体征名称 */ + /** + * 体征名称 + */ @Excel(name = "体征名称") private String name; - /** 体征类别 */ - @Excel(name = "体征类别") + /** + * 体征类别 + */ private Long typeId; - public void setId(Long id) - { - this.id = id; - } + @Excel(name = "体征类别") + private String typeName; - public Long getId() - { - return id; - } - public void setName(String name) - { - this.name = name; - } + private String remark; - public String getName() - { - return name; - } - public void setTypeId(Long typeId) - { - this.typeId = typeId; - } - - public Long getTypeId() - { - return typeId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("name", getName()) - .append("typeId", getTypeId()) - .append("remark", getRemark()) - .toString(); - } } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSignsObj.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSignsObj.java new file mode 100644 index 000000000..ff5066c4a --- /dev/null +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysPhysicalSignsObj.java @@ -0,0 +1,11 @@ +package com.stdiet.custom.domain; + +import lombok.Data; + +@Data +public class SysPhysicalSignsObj { + + Long targetId; + + Long physicalSignsId; +} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysDishesMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysDishesMapper.java index 29d909707..58cea23e5 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysDishesMapper.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysDishesMapper.java @@ -1,23 +1,22 @@ package com.stdiet.custom.mapper; -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.List; import com.stdiet.custom.domain.SysDishes; import com.stdiet.custom.domain.SysDishesIngredient; -import com.stdiet.custom.domain.SysIngredient; +import com.stdiet.custom.domain.SysPhysicalSignsObj; + +import java.util.ArrayList; +import java.util.List; /** * 菜品Mapper接口 - * + * * @author wonder * @date 2020-12-28 */ -public interface SysDishesMapper -{ +public interface SysDishesMapper { /** * 查询菜品 - * + * * @param id 菜品ID * @return 菜品 */ @@ -27,7 +26,7 @@ public interface SysDishesMapper /** * 查询菜品列表 - * + * * @param sysDishes 菜品 * @return 菜品集合 */ @@ -35,7 +34,7 @@ public interface SysDishesMapper /** * 新增菜品 - * + * * @param sysDishes 菜品 * @return 结果 */ @@ -43,7 +42,7 @@ public interface SysDishesMapper /** * 修改菜品 - * + * * @param sysDishes 菜品 * @return 结果 */ @@ -51,7 +50,7 @@ public interface SysDishesMapper /** * 删除菜品 - * + * * @param id 菜品ID * @return 结果 */ @@ -59,7 +58,7 @@ public interface SysDishesMapper /** * 批量删除菜品 - * + * * @param ids 需要删除的数据ID * @return 结果 */ @@ -72,4 +71,13 @@ public interface SysDishesMapper public int bashInsertDishesIngredent(List<SysDishesIngredient> sysDishesIngredients); String getDishesMenuTypeById(Long id); + + int batchInsertDishesRec(List<SysPhysicalSignsObj> sysPhysicalSignsObj); + + int batchInsertDishesNotRec(List<SysPhysicalSignsObj> sysPhysicalSignsObj); + + int deleteDishesRecByDishesId(Long dishesId); + + int deleteDishesNotRecByDishesId(Long dishesId); + } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysIngredientMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysIngredientMapper.java index 063113307..fc4586508 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysIngredientMapper.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysIngredientMapper.java @@ -2,8 +2,7 @@ package com.stdiet.custom.mapper; import com.stdiet.custom.domain.SysIngredentFile; import com.stdiet.custom.domain.SysIngredient; -import com.stdiet.custom.domain.SysIngredientNotRec; -import com.stdiet.custom.domain.SysIngredientRec; +import com.stdiet.custom.domain.SysPhysicalSignsObj; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -63,9 +62,9 @@ public interface SysIngredientMapper { */ // int deleteSysIngredientByIds(Long[] ids); - int batchIngredientRec(List<SysIngredientRec> ingredientRecList); + int batchIngredientRec(List<SysPhysicalSignsObj> ingredientRecList); - int batchIngredientNotRec(List<SysIngredientNotRec> ingredientNotRecList); + int batchIngredientNotRec(List<SysPhysicalSignsObj> ingredientNotRecList); int deleteIngredientRecByIngredientId(Long recId); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysDishesService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysDishesService.java index d10d38c01..03f058e11 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysDishesService.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysDishesService.java @@ -4,6 +4,7 @@ import java.util.List; import com.stdiet.custom.domain.SysDishes; import com.stdiet.custom.domain.SysDishesIngredient; import com.stdiet.custom.domain.SysIngredient; +import com.stdiet.custom.domain.SysPhysicalSignsObj; /** * 菜品Service接口 @@ -64,4 +65,5 @@ public interface ISysDishesService public int deleteSysDishesById(Long id); public String getDishesMenuTypeById(Long id); + } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysDishesServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysDishesServiceImpl.java index 322b978ba..906493262 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysDishesServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysDishesServiceImpl.java @@ -2,8 +2,7 @@ package com.stdiet.custom.service.impl; import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.StringUtils; -import com.stdiet.custom.domain.SysDishes; -import com.stdiet.custom.domain.SysDishesIngredient; +import com.stdiet.custom.domain.*; import com.stdiet.custom.mapper.SysDishesMapper; import com.stdiet.custom.service.ISysDishesService; import org.springframework.beans.factory.annotation.Autowired; @@ -71,6 +70,10 @@ public class SysDishesServiceImpl implements ISysDishesService { sysDishes.setCreateTime(DateUtils.getNowDate()); int rows = sysDishesMapper.insertSysDishes(sysDishes); // + insertRecommand(sysDishes); + // + insertNotRecommand(sysDishes); + // insertDishesIngredient(sysDishes); return rows; } @@ -96,11 +99,61 @@ public class SysDishesServiceImpl implements ISysDishesService { public int updateSysDishes(SysDishes sysDishes) { sysDishes.setUpdateTime(DateUtils.getNowDate()); Long dishesId = sysDishes.getId(); + // + sysDishesMapper.deleteDishesRecByDishesId(dishesId); + insertRecommand(sysDishes); + // + sysDishesMapper.deleteDishesNotRecByDishesId(dishesId); + insertNotRecommand(sysDishes); + // sysDishesMapper.deleteIngredientById(dishesId); insertDishesIngredient(sysDishes); + // return sysDishesMapper.updateSysDishes(sysDishes); } + /** + * 新增推荐标签 + * + * @param sysDishes + */ + public void insertRecommand(SysDishes sysDishes) { + Long[] recIds = sysDishes.getRecIds(); + if (StringUtils.isNotNull(recIds)) { + List<SysPhysicalSignsObj> list = new ArrayList<>(); + for (Long recId : recIds) { + SysPhysicalSignsObj rec = new SysPhysicalSignsObj(); + rec.setTargetId(sysDishes.getId()); + rec.setPhysicalSignsId(recId); + list.add(rec); + } + if (list.size() > 0) { + sysDishesMapper.batchInsertDishesRec(list); + } + } + } + + /** + * 新增不推荐标签 + * + * @param sysDishes + */ + public void insertNotRecommand(SysDishes sysDishes) { + Long[] notRecIds = sysDishes.getNotRecIds(); + if (StringUtils.isNotNull(notRecIds)) { + List<SysPhysicalSignsObj> list = new ArrayList<>(); + for (Long recId : notRecIds) { + SysPhysicalSignsObj notRec = new SysPhysicalSignsObj(); + notRec.setTargetId(sysDishes.getId()); + notRec.setPhysicalSignsId(recId); + list.add(notRec); + } + if (list.size() > 0) { + sysDishesMapper.batchInsertDishesNotRec(list); + } + } + } + /** * 批量删除菜品 * @@ -129,4 +182,5 @@ public class SysDishesServiceImpl implements ISysDishesService { public String getDishesMenuTypeById(Long id) { return sysDishesMapper.getDishesMenuTypeById(id); } + } \ No newline at end of file diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysIngredientServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysIngredientServiceImpl.java index 50cb3f521..1b1635d13 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysIngredientServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysIngredientServiceImpl.java @@ -6,8 +6,7 @@ import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.oss.AliyunOSSUtils; import com.stdiet.custom.domain.SysIngredentFile; import com.stdiet.custom.domain.SysIngredient; -import com.stdiet.custom.domain.SysIngredientNotRec; -import com.stdiet.custom.domain.SysIngredientRec; +import com.stdiet.custom.domain.SysPhysicalSignsObj; import com.stdiet.custom.mapper.SysIngredientMapper; import com.stdiet.custom.service.ISysIngredientService; import org.springframework.beans.factory.annotation.Autowired; @@ -96,11 +95,11 @@ public class SysIngredientServiceImpl implements ISysIngredientService { public void insertRecommand(SysIngredient ingredient) { Long[] recIds = ingredient.getRecIds(); if (StringUtils.isNotNull(recIds)) { - List<SysIngredientRec> list = new ArrayList<SysIngredientRec>(); + List<SysPhysicalSignsObj> list = new ArrayList<SysPhysicalSignsObj>(); for (Long recId : recIds) { - SysIngredientRec rec = new SysIngredientRec(); - rec.setIngredientId(ingredient.getId()); - rec.setRecommandId(recId); + SysPhysicalSignsObj rec = new SysPhysicalSignsObj(); + rec.setTargetId(ingredient.getId()); + rec.setPhysicalSignsId(recId); list.add(rec); } if (list.size() > 0) { @@ -117,11 +116,11 @@ public class SysIngredientServiceImpl implements ISysIngredientService { public void insertNotRecommand(SysIngredient ingredient) { Long[] notRecIds = ingredient.getNotRecIds(); if (StringUtils.isNotNull(notRecIds)) { - List<SysIngredientNotRec> list = new ArrayList<SysIngredientNotRec>(); + List<SysPhysicalSignsObj> list = new ArrayList<SysPhysicalSignsObj>(); for (Long recId : notRecIds) { - SysIngredientNotRec notRec = new SysIngredientNotRec(); - notRec.setIngredientId(ingredient.getId()); - notRec.setRecommandId(recId); + SysPhysicalSignsObj notRec = new SysPhysicalSignsObj(); + notRec.setTargetId(ingredient.getId()); + notRec.setPhysicalSignsId(recId); list.add(notRec); } if (list.size() > 0) { @@ -160,12 +159,16 @@ public class SysIngredientServiceImpl implements ISysIngredientService { public int updateSysIngredient(SysIngredient sysIngredient) { sysIngredient.setUpdateTime(DateUtils.getNowDate()); Long ingredientId = sysIngredient.getId(); + // sysIngredientMapper.deleteIngredientNotRecByIngredientId(ingredientId); insertNotRecommand(sysIngredient); + // sysIngredientMapper.deleteIngredientRecByIngredientId(ingredientId); insertRecommand(sysIngredient); + // sysIngredientMapper.deleteIngredientImageById(ingredientId); insertImageFiles(sysIngredient); + // return sysIngredientMapper.updateSysIngredient(sysIngredient); } diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml index a9a167234..d19bc5ef0 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml @@ -21,6 +21,7 @@ <!-- 非持久化字段 --> <result property="bigClassName" column="bigClassName"/> <result property="smallClassName" column="smallClassName"/> + <association property="igdList" column="id" select="selectSysIngreditentsById"/> </resultMap> <resultMap type="SysDishesIngredient" id="SysDishesIngredientResult"> @@ -32,7 +33,9 @@ <result property="carbonRatio" column="carbon_ratio"/> <result property="area" column="area"/> <result property="rec" column="rec"/> + <result property="recIdsStr" column="rec_ids"/> <result property="notRec" column="not_rec"/> + <result property="notRecIdsStr" column="not_rec_ids"/> <result property="cusWeight" column="cus_weight"/> <result property="cusUnit" column="cus_unit"/> <result property="weight" column="weight"/> @@ -47,6 +50,9 @@ <where> <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if> <if test="type != null and type != ''">and FIND_IN_SET(#{type}, type)</if> + <if test="physical != null and physical != ''"> + and id in(SELECT DISTINCT(dishes_id) FROM sys_dishes_rec WHERE physical_signs_id = #{physical}) + </if> <if test="bigClass != null">and big_class = #{bigClass}</if> <if test="smallClass != null">and small_class = #{smallClass}</if> <if test="reviewStatus != null and type != ''">and review_status = #{reviewStatus}</if> @@ -63,17 +69,17 @@ WHERE dishes_id = #{id} ) dishes LEFT JOIN ( - SELECT id, name, type, protein_ratio, fat_ratio, carbon_ratio, area, not_rec, rec + SELECT id, name, type, protein_ratio, fat_ratio, carbon_ratio, area, not_rec, not_rec_ids, rec, rec_ids FROM sys_ingredient igd LEFT JOIN ( - SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') not_rec FROM( + SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') not_rec, GROUP_CONCAT(notRec.id SEPARATOR ',') not_rec_ids FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_not_rec ) notRec JOIN sys_physical_signs phy USING(id) GROUP BY id ) notRecT USING(id) LEFT JOIN ( - SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') rec FROM( + SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') rec, GROUP_CONCAT(rec.id SEPARATOR ',') rec_ids FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_rec ) rec JOIN sys_physical_signs phy USING(id) @@ -175,4 +181,27 @@ select type from sys_dishes where id=#{id} </select> + <!-- 推荐,不推荐--> + <insert id="batchInsertDishesRec"> + insert into sys_dishes_rec(dishes_id, physical_signs_id) values + <foreach collection="list" separator="," item="item" index="index"> + (#{item.targetId},#{item.physicalSignsId}) + </foreach> + </insert> + + <insert id="batchInsertDishesNotRec"> + insert into sys_dishes_not_rec(dishes_id, physical_signs_id) values + <foreach collection="list" separator="," item="item" index="index"> + (#{item.targetId},#{item.physicalSignsId}) + </foreach> + </insert> + + <delete id="deleteDishesRecByDishesId" parameterType="Long"> + delete from sys_dishes_rec where dishes_id=#{dishesId} + </delete> + + <delete id="deleteDishesNotRecByDishesId" parameterType="Long"> + delete from sys_dishes_not_rec where dishes_id=#{dishesId} + </delete> + </mapper> \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysIngredientMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysIngredientMapper.xml index c5d659d78..60ac3c111 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysIngredientMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysIngredientMapper.xml @@ -149,14 +149,14 @@ <insert id="batchIngredientRec"> insert into sys_ingredient_rec(ingredient_id, physical_signs_id) values <foreach collection="list" separator="," item="item" index="index"> - (#{item.ingredientId},#{item.recommandId}) + (#{item.targetId},#{item.physicalSignsId}) </foreach> </insert> <insert id="batchIngredientNotRec"> insert into sys_ingredient_not_rec(ingredient_id, physical_signs_id) values <foreach collection="list" separator="," item="item" index="index"> - (#{item.ingredientId},#{item.notRecommandId}) + (#{item.targetId},#{item.physicalSignsId}) </foreach> </insert> diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysPhysicalSignsMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysPhysicalSignsMapper.xml index 45466aca3..0c6493d6b 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysPhysicalSignsMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysPhysicalSignsMapper.xml @@ -5,27 +5,30 @@ <mapper namespace="com.stdiet.custom.mapper.SysPhysicalSignsMapper"> <resultMap type="SysPhysicalSigns" id="SysPhysicalSignsResult"> - <result property="id" column="id" /> - <result property="name" column="name" /> - <result property="typeId" column="type_id" /> - <result property="remark" column="remark" /> + <result property="id" column="id"/> + <result property="name" column="name"/> + <result property="typeId" column="type_id"/> + <result property="typeName" column="type_name"/> + <result property="remark" column="remark"/> </resultMap> <sql id="selectSysPhysicalSignsVo"> - select id, name, type_id, remark from sys_physical_signs + SELECT name, id, sdd.dict_label AS type_name, type_id FROM sys_physical_signs + LEFT JOIN (SELECT * FROM sys_dict_data WHERE dict_type = 'cus_signs_type') AS sdd ON sdd.dict_value = type_id </sql> <select id="selectSysPhysicalSignsList" parameterType="SysPhysicalSigns" resultMap="SysPhysicalSignsResult"> <include refid="selectSysPhysicalSignsVo"/> <where> - <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> - <if test="typeId != null "> and type_id = #{typeId}</if> + <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if> + <if test="typeId != null ">and type_id = #{typeId}</if> </where> + ORDER BY type_id ASC </select> <select id="selectSysPhysicalSignsById" parameterType="Long" resultMap="SysPhysicalSignsResult"> <include refid="selectSysPhysicalSignsVo"/> - where id = #{id} + where sps.id = #{id} </select> <insert id="insertSysPhysicalSigns" parameterType="SysPhysicalSigns" useGeneratedKeys="true" keyProperty="id"> @@ -63,4 +66,5 @@ </foreach> </delete> + </mapper> \ No newline at end of file diff --git a/stdiet-ui/src/components/OrderDrawer/index.vue b/stdiet-ui/src/components/OrderDrawer/index.vue index 2d8237515..2d7af068a 100644 --- a/stdiet-ui/src/components/OrderDrawer/index.vue +++ b/stdiet-ui/src/components/OrderDrawer/index.vue @@ -33,6 +33,7 @@ :data="orderList" v-loading="loading" row-key="orderId" + height="700" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" > diff --git a/stdiet-ui/src/store/modules/recipes.js b/stdiet-ui/src/store/modules/recipes.js index 2724e3c44..1fbe644f8 100644 --- a/stdiet-ui/src/store/modules/recipes.js +++ b/stdiet-ui/src/store/modules/recipes.js @@ -14,6 +14,7 @@ import { getRecipesPlan, updateRecipesPlan } from "@/api/custom/recipesPlan"; import { getDicts } from "@/api/system/dict/data"; import { addShortCut } from "@/utils/shortCutUtils"; import { messageTypes } from "@/utils"; +import { listPhysicalSigns } from "@/api/custom/physicalSigns"; const oriState = { cusId: undefined, @@ -46,6 +47,7 @@ const oriState = { notRecIgds: [], avoidFoodIds: [], igdTypeOptions: [], + physicalSignsOptions: [], // curShortCutObj: {} }; @@ -175,6 +177,31 @@ const actions = { getDicts("cus_ing_type").then(response => { commit("updateStateData", { igdTypeOptions: response.data }); }); + listPhysicalSigns().then(response => { + commit("updateStateData", { + physicalSignsOptions: response.rows.reduce((arr, cur) => { + const tarTypeObj = arr.find(obj => obj.value === cur.typeId); + if (!tarTypeObj) { + arr.push({ + value: cur.typeId, + label: cur.typeName, + children: [ + { + value: cur.id, + label: cur.name + } + ] + }); + } else { + tarTypeObj.children.push({ + value: cur.id, + label: cur.name + }); + } + return arr; + }, []) + }); + }); return new Promise((res, rej) => { // 健康数据 diff --git a/stdiet-ui/src/views/custom/dishes/EditDishesDrawer/index.vue b/stdiet-ui/src/views/custom/dishes/EditDishesDrawer/index.vue index 2a0b99129..3e5377105 100644 --- a/stdiet-ui/src/views/custom/dishes/EditDishesDrawer/index.vue +++ b/stdiet-ui/src/views/custom/dishes/EditDishesDrawer/index.vue @@ -149,7 +149,10 @@ </el-table-column> <el-table-column label="操作" align="center"> <template slot-scope="scope"> - <el-button type="text" size="mini" @click="handleOnDelete(scope.row)" + <el-button + type="text" + size="mini" + @click="handleOnDelete(scope.row)" >删除</el-button > </template> @@ -252,6 +255,8 @@ export default { // selRec: [], selNotRec: [], + selRecIds: [], + selNotRecIds: [], }; }, props: [ @@ -265,24 +270,41 @@ export default { "form.igdList": function (val) { const selRec = []; const selNotRec = []; + const selRecIds = []; + const selNotRecIds = []; val.forEach((obj) => { if (obj.rec) { - obj.rec.split(",").forEach((rec) => { - if (!selRec.includes(rec)) { - selRec.push(rec); - } - }); + obj.rec + .split(",") + .forEach((rec) => !selRec.includes(rec) && selRec.push(rec)); } if (obj.notRec) { - obj.notRec.split(",").forEach((notRec) => { - if (!selNotRec.includes(notRec)) { - selNotRec.push(notRec); - } - }); + obj.notRec + .split(",") + .forEach( + (notRec) => !selNotRec.includes(notRec) && selNotRec.push(notRec) + ); + } + if (obj.recIdsStr) { + obj.recIdsStr + .split(",") + .forEach( + (recId) => !selRecIds.includes(recId) && selRecIds.push(recId) + ); + } + if (obj.notRecIdsStr) { + obj.notRecIdsStr + .split(",") + .forEach( + (notRecId) => + !selNotRecIds.includes(notRecId) && selNotRecIds.push(notRecId) + ); } }); this.selRec = selRec; this.selNotRec = selNotRec; + this.selRecIds = selRecIds; + this.selNotRecIds = selNotRecIds; }, showNotRec() { @@ -362,6 +384,8 @@ export default { const data = JSON.parse(JSON.stringify(this.form)); // console.log({ data }); data.type = data.type.join(","); + data.recIds = this.selRecIds; + data.notRecIds = this.selNotRecIds; if (data.id != null) { updateDishes(data).then((response) => { if (response.code === 200) { diff --git a/stdiet-ui/src/views/custom/dishes/index.vue b/stdiet-ui/src/views/custom/dishes/index.vue index cd0424756..1690b4d8a 100644 --- a/stdiet-ui/src/views/custom/dishes/index.vue +++ b/stdiet-ui/src/views/custom/dishes/index.vue @@ -137,7 +137,11 @@ <autohideinfo :data="scope.row.notRecTags" /> </template> </el-table-column> - <el-table-column label="做法" align="center" prop="methods" /> + <el-table-column label="做法" align="center" prop="methods"> + <template slot-scope="scope"> + <auto-hide-message :data="scope.row.methods" :maxLength="20" /> + </template> + </el-table-column> <el-table-column label="操作" align="center" @@ -188,12 +192,14 @@ <script> import { delDishes, exportDishes, listDishes } from "@/api/custom/dishes"; import AutoHideInfo from "@/components/AutoHideInfo"; +import AutoHideMessage from "@/components/AutoHideMessage"; import EditDishesDrawer from "./EditDishesDrawer"; export default { name: "Dishes", components: { autohideinfo: AutoHideInfo, + AutoHideMessage, EditDishesDrawer, }, data() { @@ -374,7 +380,7 @@ export default { }, /** 删除按钮操作 */ handleDelete(row) { - this.$confirm('是否确认删除菜品「' + row.name + '」的数据项?', "警告", { + this.$confirm("是否确认删除菜品「" + row.name + "」的数据项?", "警告", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/SelectDishes.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/SelectDishes.vue index 6da82ef87..4dd62b3e1 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/SelectDishes.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/SelectDishes.vue @@ -52,6 +52,20 @@ </el-select> </el-form-item> </el-col> + <el-col :span="6"> + <el-form-item label="推荐体征" prop="physical"> + <el-cascader + :disabled="lockType" + v-model="queryParams.physical" + placeholder="请选择推荐体征" + clearable + :options="physicalSignsOptions" + size="mini" + width="120px" + @change="handleOnPhysicalSignsChange" + /> + </el-form-item> + </el-col> <el-form-item> <el-button type="cyan" @@ -71,7 +85,7 @@ v-loading="loading" size="mini" :data="dishesList" - height="600" + height="550" highlight-current-row @current-change="handleCurrentChange" > @@ -141,6 +155,7 @@ export default { smallClass: null, bigClass: null, reviewStatus: "yes", + physical: null, }, //菜品种类查询参数 dishClassQueryParam: [], @@ -155,6 +170,7 @@ export default { "typeOptions", "dishBigClassOptions", "dishSmallClassOptions", + "physicalSignsOptions", ]), ...mapGetters(["dishClassOptions"]), }, @@ -174,7 +190,13 @@ export default { this.queryParams.smallClass = null; } this.loading = true; - listDishes(this.queryParams).then((result) => { + const qParams = { + ...this.queryParams, + }; + if (this.queryParams.physical) { + qParams.physical = this.queryParams.physical[1]; + } + listDishes(qParams).then((result) => { this.dishesList = result.rows.map((d) => { const recTags = [], notRecTags = []; @@ -249,6 +271,10 @@ export default { } return ""; }, + handleOnPhysicalSignsChange(val) { + const [typeId, id] = val; + console.log(val); + }, }, }; </script>