diff --git a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/config/WebConfig.java b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/config/WebConfig.java new file mode 100644 index 00000000..370cf4b0 --- /dev/null +++ b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/config/WebConfig.java @@ -0,0 +1,21 @@ +package com.nflg.mobilebroken.product.config; + +import com.nflg.mobilebroken.product.interceptor.LanguageInterceptor; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.annotation.Resource; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Resource + private LanguageInterceptor languageInterceptor; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + // 注册拦截器并指定拦截路径 + registry.addInterceptor(languageInterceptor).addPathPatterns("/**"); + } +} diff --git a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/MobilebrokenController.java b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/MobilebrokenController.java index 19c0e1c3..e1c35fbc 100644 --- a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/MobilebrokenController.java +++ b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/MobilebrokenController.java @@ -60,10 +60,21 @@ public class MobilebrokenController extends BaseController{ */ @GetMapping("/getType") public ApiResult> getType(@Valid @RequestParam @NotNull Integer moduleId - ,@Valid @RequestParam @NotNull String seriesName){ + ,@RequestParam(required = false) String seriesName){ return ApiResult.success(productTypeService.get(moduleId,seriesName,MultilingualUtil.getLanguage())); } + /** + * 获取产品类型文件列表 + * @param moduleId 产品模块id + * @param seriesName 产品系列名称 + */ + @GetMapping + public ApiResult> getFiles(@Valid @RequestParam @NotNull Integer moduleId + ,@RequestParam(required = false) String seriesName){ + return ApiResult.success(productTypeService.getFilesByLanguage(moduleId,seriesName,MultilingualUtil.getLanguage())); + } + /** * 获取产品机型列表 * @param moduleId 产品模块id @@ -88,7 +99,7 @@ public class MobilebrokenController extends BaseController{ * 机型比较 * @param request 请求参数 */ - @GetMapping("/getModelCompareInfo") + @PostMapping("/getModelCompareInfo") public ApiResult> getModelCompareInfo(@Valid @RequestBody BatchDeleteRequest request){ return ApiResult.success(productModelService.getModelCompareInfo(request,MultilingualUtil.getLanguage())); } diff --git a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/interceptor/LanguageInterceptor.java b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/interceptor/LanguageInterceptor.java new file mode 100644 index 00000000..122261be --- /dev/null +++ b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/interceptor/LanguageInterceptor.java @@ -0,0 +1,28 @@ +package com.nflg.mobilebroken.product.interceptor; + +import cn.hutool.core.util.StrUtil; +import com.nflg.mobilebroken.common.util.MultilingualUtil; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Component +public class LanguageInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // 从请求头中获取 language 参数 + String language = request.getHeader("language"); + if(StrUtil.isNotBlank(language)){ + MultilingualUtil.setLanguage(language); + } + return true; + } + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + // 请求完成后清理 ThreadLocal,防止内存泄漏 + MultilingualUtil.clear(); + } +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductTypeMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductTypeMapper.java index 1a6cc8a6..a9d0e53c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductTypeMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.mobilebroken.common.pojo.request.ProductTypeSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.FrontendProductTypeSearchVO; +import com.nflg.mobilebroken.common.pojo.vo.ProductFileVO; import com.nflg.mobilebroken.common.pojo.vo.ProductTypeSearchVO; import com.nflg.mobilebroken.common.pojo.vo.ProductTypeVO; import com.nflg.mobilebroken.repository.entity.ProductType; @@ -28,4 +29,6 @@ public interface ProductTypeMapper extends BaseMapper { void copyItems(@NotNull Integer oldId, Integer newId); Page search(String name, String language, Page page); + + List getFilesByLanguage(Integer moduleId, String seriesNo, String language); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductTypeService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductTypeService.java index 4b59990f..1c3a881a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductTypeService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductTypeService.java @@ -3,10 +3,7 @@ package com.nflg.mobilebroken.repository.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.request.*; -import com.nflg.mobilebroken.common.pojo.vo.FrontendProductTypeSearchVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeInfoVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeSearchVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeVO; +import com.nflg.mobilebroken.common.pojo.vo.*; import com.nflg.mobilebroken.repository.entity.ProductType; import javax.validation.Valid; @@ -49,4 +46,6 @@ public interface IProductTypeService extends IService { void saveSort(SortSaveRequest request); Page search(@Valid ProductSeriesSearchRequest request, String language); + + List getFilesByLanguage(@Valid @NotNull Integer moduleId, String seriesName, String language); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductTypeServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductTypeServiceImpl.java index d1f6a088..2b8b7516 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductTypeServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductTypeServiceImpl.java @@ -11,10 +11,7 @@ import com.nflg.mobilebroken.common.constant.PublishState; import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.exception.NflgException; import com.nflg.mobilebroken.common.pojo.request.*; -import com.nflg.mobilebroken.common.pojo.vo.FrontendProductTypeSearchVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeInfoVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeSearchVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductTypeVO; +import com.nflg.mobilebroken.common.pojo.vo.*; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.ProductType; @@ -277,6 +274,11 @@ public class ProductTypeServiceImpl extends ServiceImpl getFilesByLanguage(Integer moduleId, String seriesName, String language) { + return baseMapper.getFilesByLanguage(moduleId, seriesName, language); + } + private void delete(Integer typeId){ ProductType info=getById(typeId); removeById(typeId); diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductTypeMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductTypeMapper.xml index 5f12d179..7c7af5ec 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductTypeMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductTypeMapper.xml @@ -35,8 +35,11 @@ @@ -61,4 +64,15 @@ AND pti.`name` LIKE CONCAT('%', #{name}, '%') ORDER BY pt.sort,pt.id DESC + +