caoyiwen 2 years ago
parent
commit
d98b72df00
  1. 2
      diet-core/src/main/java/com/mathvision/diet/service/DishService.java
  2. 8
      diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java
  3. 2
      diet-core/src/main/java/com/mathvision/diet/service/MenuReleaseService.java
  4. 20
      diet-core/src/main/java/com/mathvision/diet/service/MenuReportService.java
  5. 2
      diet-core/src/main/java/com/mathvision/diet/service/MenuReviewService.java
  6. 2
      diet-core/src/main/java/com/mathvision/diet/service/MenuService.java
  7. 5
      diet-core/src/main/java/com/mathvision/diet/service/NutritionService.java
  8. 3
      diet-core/src/main/java/com/mathvision/diet/service/VenderService.java
  9. 23
      diet-dao/src/main/java/com/mathvision/diet/convert/RuleItemConvert.java
  10. 5
      diet-dao/src/main/java/com/mathvision/diet/domian/MeasurementType.java
  11. 41
      diet-dao/src/main/java/com/mathvision/diet/domian/RuleItemDTO.java
  12. 4
      diet-dao/src/main/java/com/mathvision/diet/repository/IngredientDTORepository.java
  13. 12
      diet-dao/src/main/java/com/mathvision/diet/repository/IngredientRepository.java
  14. 2
      diet-dao/src/main/java/com/mathvision/diet/repository/NutritionRepository.java
  15. 6
      diet-web/src/main/java/com/mathvision/diet/controller/AuthController.java
  16. 5
      diet-web/src/main/java/com/mathvision/diet/controller/DishController.java
  17. 36
      diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java
  18. 4
      diet-web/src/main/java/com/mathvision/diet/controller/NutritionController.java
  19. 2
      diet-web/src/main/java/com/mathvision/diet/utils/JWTUtils.java
  20. 3
      diet-web/src/main/resources/static/basic.html
  21. 3
      doc/basic.md

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

@ -101,7 +101,7 @@ public class DishService {
}
if (StringUtils.isNotBlank(name)) {
predicates.add(builder.like(root.get("name"), name + "%"));
predicates.add(builder.like(root.get("name"), "%" + name + "%"));
}
if (predicates.size() > 1) {

8
diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java

@ -174,7 +174,7 @@ public class IngredientService {
}
public List<Ingredient> getByKeyword(String keyword) {
return ingredientRepository.findByKeyStartsWithOrNameStartsWithOrderByKeyAsc(keyword);
return ingredientRepository.findByKeyLikeOrNameStartsWithOrderByKeyAsc(keyword);
}
public List<Ingredient> getFullByKeys(Collection<String> keys) {
@ -187,9 +187,9 @@ public class IngredientService {
return StringUtils.isBlank(type) ? ingredientRepository.findAll(pageRequest) : ingredientRepository.findByTypeOrderByIdDesc(type, pageRequest);
}
if (StringUtils.isNumeric(key)) {
return StringUtils.isBlank(type) ? ingredientRepository.findByKeyStartsWithOrderByIdDesc(key, pageRequest) : ingredientRepository.findByTypeAndKeyStartsWithOrderByIdDesc(type, key, pageRequest);
return StringUtils.isBlank(type) ? ingredientRepository.findByKeyLikeOrderByIdDesc("%" + key + "%", pageRequest) : ingredientRepository.findByTypeAndKeyLikeOrderByIdDesc(type, "%" + key + "%", pageRequest);
} else {
return StringUtils.isBlank(type) ? ingredientRepository.findByNameStartsWithOrderByIdDesc(key, pageRequest) : ingredientRepository.findByTypeAndNameStartsWithOrderByIdDesc(type, key, pageRequest);
return StringUtils.isBlank(type) ? ingredientRepository.findByNameLikeOrderByIdDesc("%" + key + "%", pageRequest) : ingredientRepository.findByTypeAndNameLikeOrderByIdDesc(type, "%" + key + "%", pageRequest);
}
} else {
return ingredientDTORepository.findByVenderAndTypeAndMarkAndKey(vender, type, mark, key, pageRequest);
@ -208,7 +208,7 @@ public class IngredientService {
public void addMark(MarkType mark, String ingredient, Long vender, String operator) {
if (ingredientMarkRepository.updateMarkAndOperateByVenderAndIngredient(mark, operator, vender, ingredient) <= 0) {
Instant dateTime = Instant.now();
ingredientMarkRepository.save(IngredientMark.builder().mark(mark).ingredient(ingredient).vender(vender).created(dateTime).modify(dateTime).build());
ingredientMarkRepository.save(IngredientMark.builder().mark(mark).ingredient(ingredient).vender(vender).operate(operator).created(dateTime).modify(dateTime).build());
}
log.info("[IngredientService] addMark ingredient = " + ingredient + ", mark = " + mark + ", operator = " + operator);
}

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

@ -65,7 +65,7 @@ public class MenuReleaseService {
}
if (StringUtils.isNotBlank(name)) {
predicates.add(builder.like(root.get("name"), name + "%"));
predicates.add(builder.like(root.get("name"), "%" + name + "%"));
}
if (predicates.size() > 1) {

20
diet-core/src/main/java/com/mathvision/diet/service/MenuReportService.java

@ -61,8 +61,8 @@ public class MenuReportService {
BigDecimal max = standard == null ? null : standard.get("max");
BigDecimal min = standard == null ? null : standard.get("min");
BigDecimal ul = standard == null ? null : standard.get("ul");
if (max == null) {
if (min == null) {
if (max == null || max.compareTo(BigDecimal.ZERO) == 0) {
if (min == null || min.compareTo(BigDecimal.ZERO) == 0) {
content.put("standard", "-");
content.put("ul", ul == null ? "-" : ul.toString());
content.put("overload", "-");
@ -83,7 +83,7 @@ public class MenuReportService {
}
}
} else {
if (min == null) {
if (min == null || min.compareTo(BigDecimal.ZERO) == 0) {
content.put("standard", "≤" + max);
content.put("ul", ul == null ? "-" : ul.toString());
if (max.compareTo(value) < 0) {
@ -91,7 +91,7 @@ public class MenuReportService {
if(ul != null && value.compareTo(ul) > 0) {
content.put("conclusion", "严重超标");
} else {
content.put("conclusion", "量");
content.put("conclusion", "量");
}
} else {
content.put("conclusion", "适量");
@ -117,7 +117,7 @@ public class MenuReportService {
if(ul != null && value.compareTo(ul) > 0) {
content.put("conclusion", "严重超标");
} else {
content.put("conclusion", "量");
content.put("conclusion", "量");
}
} else {
content.put("conclusion", "适量");
@ -195,14 +195,14 @@ public class MenuReportService {
return result;
}
JSONArray contents = new JSONArray();
contents.add(toEnergyContent(energy, "protein", Range.closed(10, 20), items, ingredientMap));
contents.add(toEnergyContent(energy, "fat", Range.closed(20, 30), items, ingredientMap));
contents.add(toEnergyContent(energy, "carbs", Range.closed(50, 60), items, ingredientMap));
contents.add(toEnergyContent(energy, "protein", Range.closed(10, 20), items));
contents.add(toEnergyContent(energy, "fat", Range.closed(20, 30), items));
contents.add(toEnergyContent(energy, "carbs", Range.closed(50, 60), items));
result.put("energy", contents);
return result;
}
private JSONObject toEnergyContent(BigDecimal energy, String key, Range<Integer> standard, Map<String, BigDecimal> items, Map<String, Ingredient> ingredientMap) {
private JSONObject toEnergyContent(BigDecimal energy, String key, Range<Integer> standard, Map<String, BigDecimal> items) {
double value = items.getOrDefault(key, BigDecimal.ZERO).divide(energy, RoundingMode.FLOOR).multiply(new BigDecimal(100)).doubleValue();
JSONObject result = JSONObject.of("name", enumService.getNutrient(key).getValue() + "/总能量");
result.put("standard", String.format("%s~%s", standard.lowerEndpoint(), standard.upperEndpoint()));
@ -210,4 +210,4 @@ public class MenuReportService {
result.put("conclusion", standard.lowerEndpoint() > value ? "略低" : standard.upperEndpoint() < value ? "略高" : "合适");
return result;
}
}
}

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

@ -92,7 +92,7 @@ public class MenuReviewService {
}
if (StringUtils.isNotBlank(name)) {
predicates.add(builder.like(root.get("name"), name + "%"));
predicates.add(builder.like(root.get("name"), "%" + name + "%"));
}
if (predicates.size() > 1) {

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

@ -112,7 +112,7 @@ public class MenuService {
}
if (StringUtils.isNotBlank(name)) {
predicates.add(builder.like(root.get("name"), name + "%"));
predicates.add(builder.like(root.get("name"), "%" + name + "%"));
}
if (predicates.size() > 1) {

5
diet-core/src/main/java/com/mathvision/diet/service/NutritionService.java

@ -45,7 +45,6 @@ public class NutritionService {
public Nutrition update(Nutrition nutrition, String operator) {
check(nutrition, operator);
Assert.isTrue(CollectionUtils.isEmpty(menuService.getByNutrition(nutrition.getId())), "[参数错误]该营养计划使用中不可删除!");
log.info("[NutritionService] update name = " + nutrition.getName() + ", operator = " + operator);
return nutritionRepository.save(nutrition);
}
@ -71,7 +70,7 @@ public class NutritionService {
}
public Page<Nutrition> list(String name, PageRequest pageRequest) {
return StringUtils.isBlank(name) ? nutritionRepository.findAll(pageRequest) : nutritionRepository.findByNameStartsWithOrderByIdDesc(name, pageRequest);
return StringUtils.isBlank(name) ? nutritionRepository.findAll(pageRequest) : nutritionRepository.findByNameLikeOrderByIdDesc('%' + name + '%', pageRequest);
}
private void check(Nutrition nutrition, String operator) {
@ -79,8 +78,6 @@ public class NutritionService {
Assert.isTrue(StringUtils.isNotBlank(nutrition.getName()) &&
CollectionUtils.isNotEmpty(nutrition.getVendors()) &&
nutrition.getOverflow() != null &&
(nutrition.getFoodCategoryDay() == null || nutrition.getFoodCategoryDay().keySet().stream().allMatch(x -> enumService.checkCategory(x))) &&
(nutrition.getFoodCategoryWeek() == null || nutrition.getFoodCategoryWeek().keySet().stream().allMatch(x -> enumService.checkCategory(x))) &&
(nutrition.getIngredient() == null || nutrition.getIngredient().entrySet().stream().allMatch(x -> x.getValue().keySet().stream().allMatch(n -> enumService.checkNutrient(n))))
, "[参数错误]必填参数未填写,或者单位类别为空、类型和营养素不在取值范围内!");

3
diet-core/src/main/java/com/mathvision/diet/service/VenderService.java

@ -102,7 +102,7 @@ public class VenderService {
vender.setCreated(dateTime);
vender.setModify(dateTime);
Vender _vender = venderRepository.save(vender);
venderConfigRepository.save(VenderConfig.builder().vender(vender.getId()).breakfast(new BigDecimal(0)).lunch(new BigDecimal(0)).dinner(new BigDecimal(0)).operate(operator).created(dateTime).modify(dateTime).build());
venderConfigRepository.save(VenderConfig.builder().vender(vender.getId()).breakfast(new BigDecimal(30)).lunch(new BigDecimal(35)).dinner(new BigDecimal(35)).operate(operator).created(dateTime).modify(dateTime).build());
userService.addUser(_vender.getAccount(), _vender.getName(), password, userService.addRole(_vender.getId()).getId(), _vender.getId(), operator);
log.info("[VenderService] addVender venderId = " + vender.getName() + ", operator = " + operator);
}
@ -136,5 +136,4 @@ public class VenderService {
public boolean checkAccount(String account) {
return userService.checkUser(account);
}
}

23
diet-dao/src/main/java/com/mathvision/diet/convert/RuleItemConvert.java

@ -0,0 +1,23 @@
package com.mathvision.diet.convert;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSON;
import com.mathvision.diet.domian.RuleItemDTO;
import javax.persistence.Converter;
import javax.persistence.AttributeConverter;
import java.util.List;
@Converter(autoApply = true)
public class RuleItemConvert implements AttributeConverter<List<RuleItemDTO>, String> {
@Override
public String convertToDatabaseColumn(List<RuleItemDTO> ruleItemDTO) {
return JSON.toJSONString(ruleItemDTO);
}
@Override
public List<RuleItemDTO> convertToEntityAttribute(String string) {
return JSONArray.parseArray(string, RuleItemDTO.class);
}
}

5
diet-dao/src/main/java/com/mathvision/diet/domian/MeasurementType.java

@ -0,0 +1,5 @@
package com.mathvision.diet.domian;
public enum MeasurementType {
weight, quantity
}

41
diet-dao/src/main/java/com/mathvision/diet/domian/RuleItemDTO.java

@ -0,0 +1,41 @@
package com.mathvision.diet.domian;
import lombok.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.List;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
public class RuleItemDTO {
/**
* 规则名称
*/
String name;
/**
* 计量单位
*/
MeasurementType type;
/**
* 食材种类
*/
List<String> category;
/**
* 最大值
*/
BigDecimal max;
/**
* 最小值
*/
BigDecimal min;
public boolean check() {
return StringUtils.isNotBlank(name) && type != null && CollectionUtils.isNotEmpty(category) && (max != null || min != null);
}
}

4
diet-dao/src/main/java/com/mathvision/diet/repository/IngredientDTORepository.java

@ -9,8 +9,8 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
public interface IngredientDTORepository extends JpaRepository<IngredientDTO, String> , JpaSpecificationExecutor<IngredientMark> {
@Query(countQuery = "SELECT count(1) FROM ingredient a left join (select ingredient as `key`, mark from ingredient_mark where vender = ?1) b on a.key = b.key where 1=1 and if(IFNULL(?2,'') ='', 1=1, a.type = ?2) and if(IFNULL(?3,'') ='', 1=1, b.mark = ?3) and if(IFNULL(?4,'') ='', 1=1, (a.key like concat(?4, '%') or a.name like concat(?4, '%') ))",
value = "SELECT a.key, a.name, a.type, a.nutrient, b.mark, a.modify FROM ingredient a left join (select ingredient as `key`, mark from ingredient_mark where vender = ?1) b on a.key = b.key where 1=1 and if(IFNULL(?2,'') ='', 1=1, a.type = ?2) and if(IFNULL(?3,'') ='', 1=1, b.mark = ?3) and if(IFNULL(?4,'') ='', 1=1, (a.key like concat(?4, '%') or a.name like concat(?4, '%') )) order by a.id DESC", nativeQuery = true)
@Query(countQuery = "SELECT count(1) FROM ingredient a left join (select ingredient as `key`, mark from ingredient_mark where vender = ?1) b on a.key = b.key where 1=1 and if(IFNULL(?2,'') ='', 1=1, a.type = ?2) and if(IFNULL(?3,'') ='', 1=1, b.mark = ?3) and if(IFNULL(?4,'') ='', 1=1, (a.key like concat('%', ?4, '%') or a.name like concat('%', ?4, '%') ))",
value = "SELECT a.key, a.name, a.type, a.nutrient, b.mark, a.modify FROM ingredient a left join (select ingredient as `key`, mark from ingredient_mark where vender = ?1) b on a.key = b.key where 1=1 and if(IFNULL(?2,'') ='', 1=1, a.type = ?2) and if(IFNULL(?3,'') ='', 1=1, b.mark = ?3) and if(IFNULL(?4,'') ='', 1=1, (a.key like concat('%', ?4, '%') or a.name like concat('%', ?4, '%') )) order by a.id DESC", nativeQuery = true)
Page<IngredientDTO> findByVenderAndTypeAndMarkAndKey(Long vender, String type, String mark, String key, Pageable pageable);
}

12
diet-dao/src/main/java/com/mathvision/diet/repository/IngredientRepository.java

@ -12,8 +12,8 @@ import java.util.Collection;
import java.util.List;
public interface IngredientRepository extends JpaRepository<Ingredient, Long>, JpaSpecificationExecutor<Ingredient> {
@Query("select new Ingredient(i.key,i.name,i.type) from Ingredient i where i.key like concat(?1, '%') or i.name like concat(?1, '%') order by i.key")
List<Ingredient> findByKeyStartsWithOrNameStartsWithOrderByKeyAsc(String keyword);
@Query("select new Ingredient(i.key,i.name,i.type) from Ingredient i where i.key like concat('%', ?1, '%') or i.name like concat('%', ?1, '%') order by i.key")
List<Ingredient> findByKeyLikeOrNameStartsWithOrderByKeyAsc(String keyword);
@Query("select new Ingredient(i.key,i.name,i.type) from Ingredient i where i.key in ?1 order by i.key")
List<Ingredient> findByKeyInOrderByKeyAsc(Collection<String> keys);
@Query("select new Ingredient(i.key,i.name) from Ingredient i")
@ -28,13 +28,13 @@ public interface IngredientRepository extends JpaRepository<Ingredient, Long>, J
Page<Ingredient> findByTypeOrderByIdDesc(String type, Pageable pageable);
Page<Ingredient> findByKeyStartsWithOrderByIdDesc(String key, Pageable pageable);
Page<Ingredient> findByKeyLikeOrderByIdDesc(String key, Pageable pageable);
Page<Ingredient> findByNameStartsWithOrderByIdDesc(String name, Pageable pageable);
Page<Ingredient> findByNameLikeOrderByIdDesc(String name, Pageable pageable);
Page<Ingredient> findByTypeAndKeyStartsWithOrderByIdDesc(String type, String key, Pageable pageable);
Page<Ingredient> findByTypeAndKeyLikeOrderByIdDesc(String type, String key, Pageable pageable);
Page<Ingredient> findByTypeAndNameStartsWithOrderByIdDesc(String type, String name, Pageable pageable);
Page<Ingredient> findByTypeAndNameLikeOrderByIdDesc(String type, String name, Pageable pageable);
@Query("select (count(i) > 0) from Ingredient i where i.id <> ?1 and (i.key = ?2 or i.name = ?3)")
boolean existsByIdNotAndKeyOrName(Long id, String key, String name);

2
diet-dao/src/main/java/com/mathvision/diet/repository/NutritionRepository.java

@ -7,7 +7,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface NutritionRepository extends JpaRepository<Nutrition, Long>, JpaSpecificationExecutor<Nutrition> {
Page<Nutrition> findByNameLikeOrderByIdDesc(String name, Pageable pageable);
boolean existsByName(String name);
Page<Nutrition> findByNameStartsWithOrderByIdDesc(String name, Pageable pageable);
Nutrition findByName(String name);
}

6
diet-web/src/main/java/com/mathvision/diet/controller/AuthController.java

@ -25,12 +25,12 @@ public class AuthController extends BaseController {
@ResponseBody
@RequestMapping("login")
public UserDO login(@RequestParam String uid, @RequestParam String pwd, @RequestParam(required = false, defaultValue = "WEB") String clientType, @RequestParam(required = false, defaultValue = "1.0") String clientVersion) {
public UserDO login(@RequestParam String uid, @RequestParam String pwd, @RequestParam(required = false, defaultValue = "false") Boolean admin, @RequestParam(required = false, defaultValue = "WEB") String clientType, @RequestParam(required = false, defaultValue = "1.0") String clientVersion) {
if(StringUtils.isBlank(uid) || StringUtils.isBlank(pwd)) {
throw new DietException(Result.ILLEGAL_ARGUMENT);
}
UserDO userDO = userService.login(uid, pwd, ClientType.valueOf(clientType), clientVersion);
if (userDO == null) {
if (userDO == null || userDO.isAdmin() && !admin || !userDO.isAdmin() && admin) {
throw new DietException(Result.INVALID_USER_PASS);
}
Vender vender = userDO.getVender();
@ -43,7 +43,7 @@ public class AuthController extends BaseController {
@ResponseBody
@RequestMapping(value = "password", method = RequestMethod.POST)
public void modUser(@RequestParam String oldPassword, @RequestParam String password) {
public void password(@RequestParam String oldPassword, @RequestParam String password) {
Assert.isTrue(userService.checkUser(getUid(), oldPassword), "[参数错误]用户名密码错误!");
userService.changeUser(getUid(), null, password, null, getVender(), getUid());
delSession();

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

@ -7,7 +7,6 @@ import com.google.common.collect.Range;
import com.mathvision.diet.domain.DishLabelDO;
import com.mathvision.diet.domian.DishItemDTO;
import com.mathvision.diet.entity.Dish;
import com.mathvision.diet.entity.Ingredient;
import com.mathvision.diet.service.DishService;
import com.mathvision.diet.service.EnumService;
import com.mathvision.diet.service.IngredientService;
@ -115,11 +114,11 @@ public class DishController extends BaseController {
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public Object query(@RequestParam(required = false) String keyword, @RequestParam(required = false) Long id, @RequestParam(required = false) String mark, @RequestParam(required = false, defaultValue = "0") int pageNo, @RequestParam(required = false, defaultValue = "20") int pageSize) {
public Object query(@RequestParam(required = false) String keyword, @RequestParam(required = false) Long id, @RequestParam(required = false) Long vendors, @RequestParam(required = false) String mark, @RequestParam(required = false, defaultValue = "0") int pageNo, @RequestParam(required = false, defaultValue = "20") int pageSize) {
if (id != null) {
return isAdmin() ? dishService.get(id) : dishService.get(id, getVender());
}
return dishService.list(getVender(), keyword, mark, PageRequest.of(pageNo, pageSize).withSort(Sort.by(Sort.Direction.DESC, "id")));
return dishService.list(!isAdmin() || vendors == null ? getVender() : vendors, keyword, mark, PageRequest.of(pageNo, pageSize).withSort(Sort.by(Sort.Direction.DESC, "id")));
}
@ResponseBody

36
diet-web/src/main/java/com/mathvision/diet/controller/MenuDishController.java

@ -1,7 +1,6 @@
package com.mathvision.diet.controller;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Range;
import com.mathvision.diet.domian.MenuDishItemDTO;
import com.mathvision.diet.domian.MenuStatus;
@ -46,10 +45,6 @@ public class MenuDishController extends BaseController {
@Resource
private IngredientService ingredientService;
// TODO
@Resource
MenuReportService menuReportService;
@ResponseBody
@RequestMapping(method = RequestMethod.PUT)
public Long add(@RequestParam Long menuId, @RequestParam Long dishId, @RequestParam Integer day, @RequestParam String meal, @RequestParam(required = false) String mark, @RequestParam String ingredient) {
@ -119,37 +114,6 @@ public class MenuDishController extends BaseController {
menuDishService.export(menu, response.getOutputStream());
}
@ResponseBody
@RequestMapping(value = "analysis", method = RequestMethod.GET)
public JSONObject analysis(@RequestParam Long id, @RequestParam(required = false) Long day, @RequestParam(required = false) String crow) {
Menu menu = isAdmin() ? menuService.get(id) : menuService.get(id, getVender());
Assert.notNull(menu, "[参数错误]食谱不存在!");
day = (day == null || day < 1 || day > menu.getDay()) ? (long) LocalDate.now().getDayOfWeek().getValue() : day;
crow = StringUtils.isBlank(crow) || !menu.getCrows().contains(crow) ? menu.getCrows().get(0) : crow;
List<MenuDish> dishes = menuDishService.query(id, menu.getVender(), day);
return menuReportService.assess(menu, day, crow, dishes);
}
@ResponseBody
@RequestMapping(value = "analysis/types", method = RequestMethod.GET)
public JSONObject types(@RequestParam Long id) {
Menu menu = isAdmin() ? menuService.get(id) : menuService.get(id, getVender());
Assert.notNull(menu, "[参数错误]食谱不存在!");
List<MenuDish> dishes = menuDishService.query(id, menu.getVender());
return menuReportService.types(menu, dishes);
}
@ResponseBody
@RequestMapping(value = "analysis/energy", method = RequestMethod.GET)
public JSONObject energy(@RequestParam Long id, @RequestParam(required = false) Long day, @RequestParam(required = false) String crow) {
Menu menu = isAdmin() ? menuService.get(id) : menuService.get(id, getVender());
Assert.notNull(menu, "[参数错误]食谱不存在!");
day = (day == null || day < 1 || day > menu.getDay()) ? (long) LocalDate.now().getDayOfWeek().getValue() : day;
crow = StringUtils.isBlank(crow) || !menu.getCrows().contains(crow) ? menu.getCrows().get(0) : crow;
List<MenuDish> dishes = menuDishService.query(id, menu.getVender(), day);
return menuReportService.energy(day, crow, dishes);
}
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public List<MenuDish> query(@RequestParam(required = false) Long menuId) {

4
diet-web/src/main/java/com/mathvision/diet/controller/NutritionController.java

@ -80,10 +80,6 @@ public class NutritionController extends BaseController {
nutrition.setFoodCategoryWeek(JSON.parseObject(foodCategoryWeek, new TypeReference<Map<String, BigDecimal>>(){}));
flag = true;
}
if (JSON.isValid(foodCategoryWeek)) {
nutrition.setFoodCategoryWeek(JSON.parseObject(foodCategoryWeek, new TypeReference<Map<String, BigDecimal>>(){}));
flag = true;
}
if (JSON.isValid(ingredient)) {
nutrition.setIngredient(JSON.parseObject(ingredient, new TypeReference<Map<String, Map<String, Map<String, BigDecimal>>>>(){}));
flag = true;

2
diet-web/src/main/java/com/mathvision/diet/utils/JWTUtils.java

@ -42,7 +42,7 @@ public class JWTUtils {
UserDO userDO = UserDO.builder().uid(uid).roleId(rid).roleItems(roleItems).vender(vender).build();
return userDO == null || isAdmin != userDO.isAdmin() ? null : userDO;
} catch (Exception e) {
log.error("[JWTUtils] verify exception :" + e.getMessage(), e);
log.error("[JWTUtils] verify exception :" + e.getMessage());
return null;
}
}

3
diet-web/src/main/resources/static/basic.html

@ -1,6 +1,6 @@
<h1>基础部分</h1>
<h1>1. 登录</h1>
<h3>GET /user/login?uid=xxx&amp;pwd=BE56E057F20F883E</h3>
<h3>GET /user/login?uid=xxx&amp;pwd=BE56E057F20F883E&amp;admin=true</h3>
<blockquote>
<p>MD5加密后大写取后16位,示例原密码为123456</p>
</blockquote>
@ -9,7 +9,6 @@
&quot;body&quot;: {
&quot;roleName&quot;: &quot;超级管理员&quot;,
&quot;uid&quot;: &quot;xxx&quot;,
&quot;admin&quot;: false, // 是否管理端,true-是管理端, false-业务端
&quot;name&quot;: &quot;业务端测试账号&quot;,
&quot;phone&quot;: &quot;13919103409&quot;,
&quot;roleId&quot;: 2,

3
doc/basic.md

@ -2,7 +2,7 @@
# 1. 登录
### GET /user/login?uid=xxx&pwd=BE56E057F20F883E
### GET /user/login?uid=xxx&pwd=BE56E057F20F883E&admin=true
>
> MD5加密后大写取后16位,示例原密码为123456
@ -12,7 +12,6 @@
"body": {
"roleName": "超级管理员",
"uid": "xxx",
"admin": false, // 是否管理端,true-是管理端, false-业务端
"name": "业务端测试账号",
"phone": "13919103409",
"roleId": 2,

Loading…
Cancel
Save