diff --git a/diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java b/diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java index 92deff3..35155b7 100644 --- a/diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java +++ b/diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java @@ -59,6 +59,7 @@ public class IngredientService { EasyExcel.read(inputStream, IngredientModel.class, new ReadListener() { final List resultModels = Lists.newArrayList(); final List ingredients = Lists.newArrayList(); + final Map allItems = getByKeys(); @Override public void onException(Exception exception, AnalysisContext context) { @@ -68,6 +69,7 @@ public class IngredientService { @Override public void invoke(IngredientModel o, AnalysisContext analysisContext) { String resultKey = String.format("%s-%s-%s", o.getKey(), o.getName(), o.getType()); + try { Ingredient ingredient = Ingredient.builder().key(o.getKey()).name(o.getName()).type(o.getType()).nutrient(Arrays.stream(IngredientModel.class.getDeclaredFields()).filter(x -> BigDecimal.class.equals(x.getType())).peek(x -> x.setAccessible(true)).map(x -> { try { @@ -85,7 +87,7 @@ public class IngredientService { resultModels.add(ResultModel.builder().key(resultKey).result("食物名称为空").build()); return; } - if (ingredientRepository.existsByKeyOrName(ingredient.getKey(), ingredient.getName())) { + if (allItems.containsKey(ingredient.getKey()) || allItems.containsValue(ingredient.getName())) { resultModels.add(ResultModel.builder().key(resultKey).result("编号/名称已存在").build()); return; } diff --git a/diet-dao/src/main/java/com/mathvision/diet/entity/Icon.java b/diet-dao/src/main/java/com/mathvision/diet/entity/Icon.java new file mode 100644 index 0000000..ad6f49d --- /dev/null +++ b/diet-dao/src/main/java/com/mathvision/diet/entity/Icon.java @@ -0,0 +1,27 @@ +package com.mathvision.diet.entity; + +import lombok.*; + +import javax.persistence.*; + +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter +@Entity +@Table(name = "icon") +public class Icon { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "`key`", nullable = false, length = 64) + private String key; + + @Lob + @Column(name = "icon", nullable = false) + private String icon; + +} \ No newline at end of file diff --git a/diet-dao/src/main/java/com/mathvision/diet/repository/IconRepository.java b/diet-dao/src/main/java/com/mathvision/diet/repository/IconRepository.java new file mode 100644 index 0000000..aff0b8b --- /dev/null +++ b/diet-dao/src/main/java/com/mathvision/diet/repository/IconRepository.java @@ -0,0 +1,7 @@ +package com.mathvision.diet.repository; + +import com.mathvision.diet.entity.Icon; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface IconRepository extends JpaRepository { +} \ No newline at end of file diff --git a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java index ddd37bb..832da69 100644 --- a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java +++ b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java @@ -56,6 +56,11 @@ public class GlobalRequestAspect implements HandlerInterceptor, WebMvcConfigurer return verifySession(request, response); } + @Override + public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, Exception ex) { + Session.clear();; + } + private boolean verifySession(HttpServletRequest request, HttpServletResponse response) { String token = request.getHeader(Constant.TOKEN_HEADER_KEY); if (StringUtils.isBlank(token)) { diff --git a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalResponseAspect.java b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalResponseAspect.java index a9f384f..09c66a6 100644 --- a/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalResponseAspect.java +++ b/diet-web/src/main/java/com/mathvision/diet/aspect/GlobalResponseAspect.java @@ -6,7 +6,6 @@ import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import com.mathvision.diet.constant.Constant; import com.mathvision.diet.domain.Result; import com.mathvision.diet.domain.ResultCode; -import com.mathvision.diet.domain.Session; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; @@ -49,7 +48,6 @@ public class GlobalResponseAspect implements ResponseBodyAdvice { if (result instanceof Result) { return result; } - Session.clear(); return new Result(ResultCode.success, result); } } \ No newline at end of file