yubin пре 1 недеља
родитељ
комит
a17c6566d3

+ 5 - 4
operating-service/src/main/java/com/txz/operating/configurer/MyWebMvcConfigurer.java

@@ -12,6 +12,7 @@ import com.txz.operating.core.ServiceException;
 import com.txz.operating.core.cache.CacheKey;
 import com.txz.operating.core.cache.CacheType;
 import com.txz.operating.result.Result;
+import com.txz.operating.util.I18nUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -115,17 +116,17 @@ public class MyWebMvcConfigurer implements WebMvcConfigurer {
                 logger.info(e.getMessage());
             } else if (e instanceof NoHandlerFoundException) {
                 result.setCode(ResultCode.NOT_FOUND.getCode()).setMessage(
-                    "接口 [" + request.getRequestURI() + "] 不存在");
+                        I18nUtil.get("interface")+" [" + request.getRequestURI() + "] "+I18nUtil.get("does.not.exist"));
             } else if (e instanceof ServletException) {
                 result.setCode(ResultCode.FAIL.getCode()).setMessage(e.getMessage());
             } else {
                 result.setCode(ResultCode.INTERNAL_SERVER_ERROR.getCode()).setMessage(
-                    "接口 [" + request.getRequestURI() + "] 内部错误,请联系管理员");
+                        I18nUtil.get("interface")+" [" + request.getRequestURI() + "] "+I18nUtil.get("internal.error.please.contact.the.administrator"));
                 String message;
                 if (handler instanceof HandlerMethod) {
                     HandlerMethod handlerMethod = (HandlerMethod) handler;
-                    message = String.format("接口 [%s] 出现异常,方法:%s.%s,异常摘要:%s",
-                        request.getRequestURI(), handlerMethod.getBean().getClass().getName(),
+                    message = String.format(I18nUtil.get("interface")+" [%s] "+I18nUtil.get("exception.occurred")+","+I18nUtil.get("method")+":%s.%s,"+I18nUtil.get("exception.summary")+":%s",
+                            request.getRequestURI(), handlerMethod.getBean().getClass().getName(),
                         handlerMethod.getMethod().getName(), e.getMessage());
                 } else {
                     message = e.getMessage();

+ 45 - 46
operating-service/src/main/java/com/txz/operating/controller/AddrController.java

@@ -1,4 +1,6 @@
 package com.txz.operating.controller;
+
+import com.txz.operating.core.ResultGenerator;
 import com.txz.operating.model.*;
 import com.txz.operating.result.Result;
 import com.txz.operating.service.*;
@@ -27,14 +29,14 @@ import java.util.List;
 
 
 /**
-* Created by CodeGenerator on 2025/09/19.
-*/
+ * Created by CodeGenerator on 2025/09/19.
+ */
 @Api(tags = "[后台]addr管理")
 @RestController
 @RequestMapping("/addr")
 public class AddrController {
 
-private static Logger log = LoggerFactory.getLogger(AddrController.class);
+    private static Logger log = LoggerFactory.getLogger(AddrController.class);
 
     @Resource
     private AddrService addrService;
@@ -43,7 +45,7 @@ private static Logger log = LoggerFactory.getLogger(AddrController.class);
     private DivisionsService divisionsService;
 
     @Resource
-    private DistrictsService  districtsService;
+    private DistrictsService districtsService;
 
     @Resource
     private UpazilasService upazilasService;
@@ -52,11 +54,10 @@ private static Logger log = LoggerFactory.getLogger(AddrController.class);
     private UnionsService unionsService;
 
 
-
     @PostMapping("/delData")
     @ApiOperation(value = "delData")
     public Result delData() {
-       List<Addr> addrList = new ArrayList<>();
+        List<Addr> addrList = new ArrayList<>();
 
 //        List<Divisions> allDivisions = divisionsService.findAll();
 //        for (Divisions divisions : allDivisions) {
@@ -136,90 +137,88 @@ private static Logger log = LoggerFactory.getLogger(AddrController.class);
 //        }
 
 
-
         for (Addr addr1 : addrList) {
-            try{
+            try {
                 addrService.save(addr1);
-            }catch(Exception e){
-                log.error(e+"");
+            } catch (Exception e) {
+                log.error(e + "");
             }
 
         }
 
-        return Result.success();
+        return ResultGenerator.genSuccessResult();
     }
 
 
-
     @PostMapping("/add")
     @ApiOperation(value = "addr新增")
     public Result add(@RequestBody Addr addr) {
-        if(addr == null){
-        return Result.fail(ResultCode.OBJECT_IS_NULL);
+        if (addr == null) {
+            return ResultGenerator.genFailResult(ResultCode.OBJECT_IS_NULL);
         }
         try {
 
-        //            addr.setCreateUserId(userId);
-        addrService.save(addr);
+            //            addr.setCreateUserId(userId);
+            addrService.save(addr);
         } catch (Exception e) {
-        log.error("新增对象操作异常e:{}",e);
-        return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+            log.error("新增对象操作异常e:{}", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success();
+        return ResultGenerator.genSuccessResult();
     }
 
     @PostMapping("/delete")
     @ApiOperation(value = "addr删除")
     public Result delete(@RequestParam Long id) {
-        if(id == null){
-        return Result.fail(ResultCode.ID_IS_NULL);
+        if (id == null) {
+            return ResultGenerator.genFailResult(ResultCode.ID_IS_NULL);
         }
         try {
-        Addr addr = new Addr();
+            Addr addr = new Addr();
 
 
-        addrService.update(addr);
+            addrService.update(addr);
         } catch (Exception e) {
-        log.error("删除对象操作异常e:{}",e);
-        return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+            log.error("删除对象操作异常e:{}", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success();
+        return ResultGenerator.genSuccessResult();
     }
 
     @PostMapping("/update")
     @ApiOperation(value = "addr更新")
     public Result update(@RequestBody Addr addr) {
-        if(addr == null){
-        return Result.fail(ResultCode.OBJECT_IS_NULL);
+        if (addr == null) {
+            return ResultGenerator.genFailResult(ResultCode.OBJECT_IS_NULL);
         }
-        if(addr.getId() == null){
-        return Result.fail(ResultCode.ID_IS_NULL);
+        if (addr.getId() == null) {
+            return ResultGenerator.genFailResult(ResultCode.ID_IS_NULL);
         }
         try {
 
-        //            addr.setUpdateUserId(userId);
-        addrService.update(addr);
+            //            addr.setUpdateUserId(userId);
+            addrService.update(addr);
         } catch (Exception e) {
-        log.error("更新对象操作异常e:{}",e);
-        return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+            log.error("更新对象操作异常e:{}", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success();
+        return ResultGenerator.genSuccessResult();
     }
 
     @PostMapping("/detail")
     @ApiOperation(value = "addr获取详情")
     public Result<Addr> detail(@RequestParam Long id) {
-        if(id == null){
-        return Result.fail(ResultCode.ID_IS_NULL);
+        if (id == null) {
+            return ResultGenerator.genFailResult(ResultCode.ID_IS_NULL);
         }
         Addr addr = null;
         try {
-        addr = addrService.findById(id);
+            addr = addrService.findById(id);
         } catch (Exception e) {
-        log.error("查询对象操作异常e:{}",e);
-        return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+            log.error("查询对象操作异常e:{}", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success(addr);
+        return ResultGenerator.genSuccessResult(addr);
     }
 
     @PostMapping("/list")
@@ -233,12 +232,12 @@ private static Logger log = LoggerFactory.getLogger(AddrController.class);
         condition.setOrderByClause("create_time DESC");
         PageInfo pageInfo = null;
         try {
-        List<Addr> list = addrService.findByCondition(condition);
-        pageInfo = new PageInfo(list);
+            List<Addr> list = addrService.findByCondition(condition);
+            pageInfo = new PageInfo(list);
         } catch (Exception e) {
-        log.error("查询对象操作异常e:{}",e);
-        return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+            log.error("查询对象操作异常e:{}", e);
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success(pageInfo);
+        return ResultGenerator.genSuccessResult(pageInfo);
     }
 }

+ 2 - 1
operating-service/src/main/java/com/txz/operating/controller/DivisionsController.java

@@ -3,6 +3,7 @@ package com.txz.operating.controller;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.txz.operating.core.ResultCode;
+import com.txz.operating.core.ResultGenerator;
 import com.txz.operating.model.Divisions;
 import com.txz.operating.result.Result;
 import com.txz.operating.service.DivisionsService;
@@ -130,6 +131,6 @@ public class DivisionsController {
             pid = 0;
         }
         List<AreaTreeVo> treedList = divisionsService.treeList(pid);
-        return Result.success(treedList);
+        return ResultGenerator.genSuccessResult(treedList);
     }
 }

+ 2 - 1
operating-service/src/main/java/com/txz/operating/controller/UploadController.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.txz.operating.config.minio.MinioUtil;
 import com.txz.operating.config.minio.SplitFileDto;
 import com.txz.operating.result.Result;
+import com.txz.operating.util.I18nUtil;
 import io.minio.ObjectWriteResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -37,7 +38,7 @@ public class UploadController {
     public Result fileUpload(@RequestParam MultipartFile file) throws Exception {
         String originalFilename = file.getOriginalFilename();
         if (originalFilename == null || originalFilename.isEmpty()) {
-            return Result.fail("文件名为空");
+            return Result.fail(I18nUtil.get("the.file.name.is.empty"));
         }
 
         // 提取文件后缀

+ 34 - 0
operating-service/src/main/java/com/txz/operating/controller/i18nTestController.java

@@ -0,0 +1,34 @@
+package com.txz.operating.controller;
+
+import com.txz.operating.util.I18nUtil;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/test")
+public class i18nTestController {
+
+
+
+
+    @ApiOperation(value = "demo")
+    @GetMapping(value = "/demo")
+    public String getMore() {
+
+        String lala = I18nUtil.get("order.does.not.exist");
+        System.out.println(I18nUtil.get("product.export.template"));
+//        if(true) {
+//            throw new ServiceException(I18nUtil.get("product.export.template"));
+//        }
+        return I18nUtil.get("product.export.template")+"3";
+    }
+
+
+
+
+}

+ 7 - 0
operating-service/src/main/java/com/txz/operating/core/ResultCode.java

@@ -1,5 +1,8 @@
 package com.txz.operating.core;
 
+import cn.hutool.core.util.StrUtil;
+import com.txz.operating.util.I18nUtil;
+
 /**
  * 响应码枚举,参考HTTP状态码的语义
  */
@@ -118,6 +121,10 @@ public enum ResultCode {
     }
 
     public String getMessage() {
+        String msg = I18nUtil.get(this.name());
+        if (StrUtil.isNotBlank(msg)) {
+            return msg;
+        }
         return message;
     }
 

+ 68 - 0
operating-service/src/main/java/com/txz/operating/util/I18nUtil.java

@@ -0,0 +1,68 @@
+package com.txz.operating.util;
+
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Locale;
+
+/**
+ * 描述: 3、国际化工具类
+ * 版权: Copyright (c) 2020
+ * 公司: XXXX
+ * 作者: yanghj
+ * 版本: 4.0
+ * 创建日期: 2020/9/18 10:31
+ */
+
+@Component
+public class I18nUtil
+{
+
+    @Resource
+    private MessageSource messageSource;
+
+    private static MessageSource staticMessageSource;
+
+    // 用 @PostConstruct 替代 InitializingBean 接口
+    @PostConstruct
+    public void init() {
+        if (staticMessageSource == null) {
+            I18nUtil.staticMessageSource = this.messageSource;
+        }
+    }
+
+    // 静态 get 方法(同上)
+    public static String get(String msgKey) {
+        try {
+            ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            String header = sra.getRequest().getHeader("accept-language");
+            LocaleContextHolder.setLocale(Locale.US);
+            if(!ObjectUtils.isEmpty(header)) {
+                if ("en".equals(header)) {
+                    LocaleContextHolder.setLocale(Locale.US);
+                } else if ("zh".equals(header)) {
+                    LocaleContextHolder.setLocale(Locale.SIMPLIFIED_CHINESE);
+                } else if ("bd".equals(header)) {
+                    Locale bengaliLocale = new Locale("bn", "BD"); //孟加拉文
+                    LocaleContextHolder.setLocale(bengaliLocale);
+                }
+            }
+
+            return staticMessageSource.getMessage(msgKey, null, LocaleContextHolder.getLocale());
+        } catch (Exception e) {
+            return msgKey;
+        }
+    }
+
+
+
+
+
+
+}

+ 6 - 1
operating-service/src/main/resources/bootstrap.properties

@@ -80,4 +80,9 @@ local.job=http://8.219.117.74/xxl-job-admin
 dev.job=http://124.220.229.80:9096/xxl-job-admin
 test.job=http://172.10.100.40:8080/xxl-job-admin
 pro.job=http://172.10.100.40:8080/xxl-job-admin
-dev.accessToken=
+dev.accessToken=
+
+
+spring.messages.basename=i18n/messages,i18n/messages_zh_CN
+spring.messages.encoding=UTF-8
+spring.messages.cache-duration=0

+ 16 - 0
operating-service/src/main/resources/i18n/error.properties

@@ -0,0 +1,16 @@
+BUSINESS_ERROR_001=\u8BF7\u68C0\u67E5\u624B\u673A\u53F7\u662F\u5426\u6B63\u786E
+BUSINESS_ERROR_002=\u624B\u673A\u53F7\u548C\u5BC6\u7801\u4E0D\u5339\u914D
+BUSINESS_ERROR_003=APP\u767B\u5F55\u6388\u6743\u5931\u8D25
+BUSINESS_ERROR_004=AccountKit \u767B\u5F55\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9A8C\u8BC1
+BUSINESS_ERROR_005=\u624B\u673A\u53F7\u5DF2\u6CE8\u518C
+BUSINESS_ERROR_006=\u9A8C\u8BC1\u5DF2\u8FC7\u671F
+BUSINESS_ERROR_007=\u9A8C\u8BC1\u7801\u9519\u8BEF
+BUSINESS_ERROR_008=\u8BBE\u7F6E\u5BC6\u7801\u5931\u8D25
+BUSINESS_ERROR_009=\u8BF7\u91CD\u65B0\u9A8C\u8BC1code
+BUSINESS_ERROR_010=Facebook \u767B\u5F55\u5931\u8D25
+BUSINESS_ERROR_011=\u6B64 Facebook \u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u4F7F\u7528
+BUSINESS_ERROR_012=\u8BF7\u60A8\u5148\u767B\u9646
+BUSINESS_ERROR_013=\u7CFB\u7EDF\u5185\u90E8\u5F02\u5E38\uFF0Csource \u8BF7\u6C42\u53C2\u6570\u4E0D\u5408\u6CD5
+BUSINESS_ERROR_014=\u624B\u673A\u53F7\u5DF2\u5173\u8054\u8FC7\u5176\u4ED6 Facebook \u8D26\u53F7\uFF0C\u8BF7\u6362\u4E00\u4E2A\u53F7\u7801\u8BD5\u8BD5
+
+PARAMETER_ERROR_001=\u65E0\u6548\u7684\u53C2\u6570

+ 16 - 0
operating-service/src/main/resources/i18n/error_in_ID.properties

@@ -0,0 +1,16 @@
+BUSINESS_ERROR_001=Silakan periksa apakah nomor telepon sudah benar
+BUSINESS_ERROR_002=Nomor telepon dan kata sandi tidak cocok
+BUSINESS_ERROR_003=Otorisasi login APP gagal
+BUSINESS_ERROR_004=Login Akun gagal, harap verifikasi ulang
+BUSINESS_ERROR_005=Nomor anda telah diregistrasi
+BUSINESS_ERROR_006=Verifikasi telah kedaluwarsa
+BUSINESS_ERROR_007=Kode verifikasi salah
+BUSINESS_ERROR_008=Gagal mengatur kata sandi
+BUSINESS_ERROR_009=Harap verifikasi ulang kodenya
+BUSINESS_ERROR_010=Verifikasi Facebook gagal
+BUSINESS_ERROR_011=Akun Facebook ini telah digunakan oleh akun lain
+BUSINESS_ERROR_012=Silahkan login
+BUSINESS_ERROR_013=Kesalahan internal sistem
+BUSINESS_ERROR_014=Nomor telepon ini telah terhubung dengan akun Facebook, silahkan ganti nomor untuk mencoba
+
+PARAMETER_ERROR_001=Parameter tidak valid

+ 0 - 0
operating-service/src/main/resources/i18n/messages.properties


+ 0 - 0
operating-service/src/main/resources/i18n/messages_bn_BD.properties


+ 35 - 0
operating-service/src/main/resources/i18n/messages_en_US.properties

@@ -0,0 +1,35 @@
+success=success
+failure=failure
+unauthenticated.signature.error=unauthenticated signature error
+api.does.not.exist=api does not exist
+internal.server.error=internal server error
+multiple.regions.exist.please.enter.the.superior.region=multiple regions exist please enter the superior region
+no.operation.permission=no operation permission
+gateway.exception=gateway exception
+application.id.cannot.be.empty=application id cannot be empty
+object.cannot.be.empty=object cannot be empty
+object.id.cannot.be.empty=object id cannot be empty
+code.cannot.be.empty=code cannot be empty
+name.cannot.be.empty=name cannot be empty
+sort.order.cannot.be.empty=sort order cannot be empty
+level.cannot.be.empty=level cannot be empty
+user.id.cannot.be.empty=user id cannot be empty
+query.result.is.empty=query result is empty
+type.cannot.be.empty=type cannot be empty
+database.exception=database exception
+id.card.cannot.be.empty=id card cannot be empty
+customer.number.cannot.be.empty=customer number cannot be empty
+no.user.information.found=no user information found
+query.failed.due.to.data.exception.please.contact.to.check.user.information=query failed due to data exception please contact to check user information
+id.card.front.photo.key.cannot.be.empty=id card front photo key cannot be empty
+verification.code.is.invalid=verification code is invalid
+token.cannot.be.empty=token cannot be empty
+the.file.name.is.empty=the file name is empty
+
+
+interface=interface
+does.not.exist=does not exist
+internal.error.please.contact.the.administrator=internal error please contact the administrator
+exception.occurred=exception occurred
+method=method
+exception.summary=exception summary:

+ 34 - 0
operating-service/src/main/resources/i18n/messages_zh_CN.properties

@@ -0,0 +1,34 @@
+success=\u6210\u529F
+failure=\u5931\u8D25
+unauthenticated.signature.error=\u672A\u8BA4\u8BC1\uFF08\u7B7E\u540D\u9519\u8BEF\uFF09
+api.does.not.exist=\u63A5\u53E3\u4E0D\u5B58\u5728
+internal.server.error=\u670D\u52A1\u5185\u90E8\u9519\u8BEF
+multiple.regions.exist.please.enter.the.superior.region=\u5F53\u524D\u5730\u533A\u6709\u591A\u4E2A\uFF0C\u8BF7\u8F93\u5165\u4E0A\u7EA7
+no.operation.permission=\u6CA1\u6709\u64CD\u4F5C\u6743\u9650
+gateway.exception=\u7F51\u5173\u5F02\u5E38
+application.id.cannot.be.empty=\u5E94\u7528\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A
+object.cannot.be.empty=\u5BF9\u8C61\u4E0D\u80FD\u4E3A\u7A7A
+object.id.cannot.be.empty=\u5BF9\u8C61ID\u4E0D\u80FD\u4E3A\u7A7A
+code.cannot.be.empty=\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A
+name.cannot.be.empty=\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
+sort.order.cannot.be.empty=\u6392\u5E8F\u4E0D\u80FD\u4E3A\u7A7A
+level.cannot.be.empty=\u7EA7\u522B\u4E0D\u80FD\u4E3A\u7A7A
+user.id.cannot.be.empty=\u7528\u6237id\u4E0D\u80FD\u4E3A\u7A7A
+query.result.is.empty=\u67E5\u8BE2\u7ED3\u679C\u4E3A\u7A7A
+type.cannot.be.empty=\u7C7B\u578B\u4E3A\u7A7A
+database.exception=\u6570\u636E\u5E93\u5F02\u5E38
+id.card.cannot.be.empty=\u8EAB\u4EFD\u8BC1\u4E0D\u80FD\u4E3A\u7A7A
+customer.number.cannot.be.empty=\u5BA2\u6237\u53F7\u4E0D\u80FD\u4E3A\u7A7A
+no.user.information.found=\u672A\u67E5\u8BE2\u5230\u7528\u6237\u4FE1\u606F
+query.failed.due.to.data.exception.please.contact.to.check.user.information=\u6570\u636E\u5F02\u5E38\u67E5\u8BE2\u5931\u8D25\uFF0C\u8BF7\u8054\u7CFB\u68C0\u67E5\u7528\u6237\u4FE1\u606F
+id.card.front.photo.key.cannot.be.empty=\u8EAB\u4EFD\u8BC1\u6B63\u9762\u7167\u7247key\u4E0D\u80FD\u4E3A\u7A7A
+verification.code.is.invalid=\u9A8C\u8BC1\u7801\u65E0\u6548
+token.cannot.be.empty=TOKEN\u4E0D\u80FD\u4E3A\u7A7A
+the.file.name.is.empty=\u6587\u4EF6\u540D\u4E3A\u7A7A
+
+interface=\u63A5\u53E3
+does.not.exist=\u4E0D\u5B58\u5728
+internal.error.please.contact.the.administrator=\u5185\u90E8\u5F02\u5E38\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+exception.occurred=\u53D1\u751F\u5F02\u5E38
+method=\u65B9\u6CD5
+exception.summary=\u5F02\u5E38\u6982\u8981: