caoyiwen 2 years ago
parent
commit
59da92be7d
  1. 4
      diet-core/src/main/java/com/mathvision/diet/service/IngredientService.java
  2. 27
      diet-dao/src/main/java/com/mathvision/diet/entity/Icon.java
  3. 7
      diet-dao/src/main/java/com/mathvision/diet/repository/IconRepository.java
  4. 5
      diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java
  5. 2
      diet-web/src/main/java/com/mathvision/diet/aspect/GlobalResponseAspect.java

4
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<IngredientModel>() {
final List<ResultModel> resultModels = Lists.newArrayList();
final List<Ingredient> ingredients = Lists.newArrayList();
final Map<String, String> 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;
}

27
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;
}

7
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<Icon, Long> {
}

5
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)) {

2
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<Object> {
if (result instanceof Result) {
return result;
}
Session.clear();
return new Result(ResultCode.success, result);
}
}
Loading…
Cancel
Save