From 8422734dd1dcb72fdeaf96bda5f7e9594ae63a9a Mon Sep 17 00:00:00 2001 From: liwenxuan <1298531568@qq.com> Date: Fri, 23 Jan 2026 14:06:43 +0800 Subject: [PATCH] =?UTF-8?q?sm4=20=E5=8A=A0=E8=A7=A3=E5=AF=86=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=20=E5=89=8D=E7=AB=AF=E5=92=8Cgo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 16 ++ .../controller/AssociatedFormsController.java | 3 +- .../AssociatedFormsSm4Controller.java | 219 ++++++++++++++++++ .../lowcode/controller/ManContController.java | 36 +-- .../lowcode/controller/QrCodeController.java | 3 +- .../controller/QrCodeSm4Controller.java | 178 ++++++++++++++ .../service/impl/CustomerFormServiceImpl.java | 23 +- .../hxgk/lowcode/utils/sm4/ApiResponse.java | 32 +++ .../utils/sm4/DecryptedArgumentResolver.java | 45 ++++ .../hxgk/lowcode/utils/sm4/DecryptedBody.java | 9 + .../lowcode/utils/sm4/EncryptedRequest.java | 20 ++ .../utils/sm4/EncryptedResponseAdvice.java | 113 +++++++++ .../com/hxgk/lowcode/utils/sm4/ErrorCode.java | 33 +++ .../utils/sm4/GlobalExceptionHandler.java | 24 ++ .../hxgk/lowcode/utils/sm4/GoApiClient.java | 162 +++++++++++++ .../lowcode/utils/sm4/RandomStringUtil.java | 48 ++++ .../lowcode/utils/sm4/SM4Interceptor.java | 99 ++++++++ .../com/hxgk/lowcode/utils/sm4/SM4Utils.java | 218 +++++++++++++++++ .../com/hxgk/lowcode/utils/sm4/WebConfig.java | 40 ++++ src/main/resources/application-dev.yml | 13 ++ src/main/resources/application-prod.yml | 13 ++ 21 files changed, 1323 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/hxgk/lowcode/controller/AssociatedFormsSm4Controller.java create mode 100644 src/main/java/com/hxgk/lowcode/controller/QrCodeSm4Controller.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/ApiResponse.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/DecryptedArgumentResolver.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/DecryptedBody.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/EncryptedRequest.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/EncryptedResponseAdvice.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/ErrorCode.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/GlobalExceptionHandler.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/GoApiClient.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/RandomStringUtil.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/SM4Interceptor.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/SM4Utils.java create mode 100644 src/main/java/com/hxgk/lowcode/utils/sm4/WebConfig.java diff --git a/pom.xml b/pom.xml index cb61c07..897048c 100644 --- a/pom.xml +++ b/pom.xml @@ -150,6 +150,22 @@ spring-aspects + + org.bouncycastle + bcprov-jdk15to18 + 1.76 + + + commons-codec + commons-codec + 1.15 + + + org.projectlombok + lombok + 1.18.28 + + diff --git a/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsController.java b/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsController.java index a318585..2c0dc3f 100644 --- a/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsController.java +++ b/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsController.java @@ -23,7 +23,8 @@ import java.util.Map; * 关联表单 * */ @RestController -@RequestMapping("/lowCode") +//@RequestMapping("/lowCode") +@RequestMapping("/lowCodeNoSm4") public class AssociatedFormsController { @Autowired diff --git a/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsSm4Controller.java b/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsSm4Controller.java new file mode 100644 index 0000000..4bdc9de --- /dev/null +++ b/src/main/java/com/hxgk/lowcode/controller/AssociatedFormsSm4Controller.java @@ -0,0 +1,219 @@ +package com.hxgk.lowcode.controller; + +import com.alibaba.fastjson2.JSON; + +import com.hxgk.lowcode.model.entity.AsfTableFillResult; +import com.hxgk.lowcode.model.entity.CustomerFormTableSingleFieldValue; +import com.hxgk.lowcode.model.entity.Option; +import com.hxgk.lowcode.model.entity.Tree; +import com.hxgk.lowcode.model.entity.requestParam.AsfDataTitlesByIdsQueryParam; +import com.hxgk.lowcode.model.entity.response.AsfDataTitlesByIdsResponseEntity; +import com.hxgk.lowcode.service.CustomerFormService; +import com.hxgk.lowcode.service.HrService; +import com.hxgk.lowcode.utils.JsonData; +import com.hxgk.lowcode.utils.sm4.ApiResponse; +import com.hxgk.lowcode.utils.sm4.DecryptedBody; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/* + * 关联表单 + * */ +@RestController +@RequestMapping("/lowCode") +public class AssociatedFormsSm4Controller { + + @Autowired + private CustomerFormService customerFormService; + + @Autowired + private AsfDataTitlesByIdsQueryParam asfDataTitlesByIdsQueryParam; + + @Autowired + private HrService hrService; + + public AssociatedFormsSm4Controller() { + } + + /*获取用户有权限的启用状态的表单列表树形结构*/ + @PostMapping(value = "/AssociatedForms/getCustomerFormList") + public ApiResponse getCustomerFormList(@RequestHeader(value = "User-Key") String key, + @RequestHeader(value = "User-Token") String token) { + Tree tree = customerFormService.getCustomerFormList(key, token); + if(tree == null){ + return ApiResponse.error(2000, "登录状态已失效,请退出重新登录"); + } + return ApiResponse.success(tree); + } + + /*获取组织架构人员树*/ + @RequestMapping(value = "transfer/getOrgAndManTree") + public ApiResponse getOrgAndManTree(@RequestParam(value = "transferMark", required = false) String transferMark) { + + Tree tree = hrService.getOrgAndManTree(); + ApiResponse success = ApiResponse.success(tree); + return success; + } + + /*根据主表id拿到表单字段信息*/ + @PostMapping(value = "/AssociatedForms/getFieldTree") + public ApiResponse getFieldTree(@RequestHeader(value = "User-Key") String key, + @RequestHeader(value = "User-Token") String token, + @DecryptedBody Map requestBody) { + String cfid = (String) requestBody.get("cfid"); + + Tree tree = customerFormService.getFieldTree(key, token, cfid); + if(tree.getId() == null){ + return ApiResponse.error(107, "查无此表单"); + } else { + if("cfid为空".equals(tree.getId())){ + return ApiResponse.error(102, "cfid为空"); + } else if("masterTable为null".equals(tree.getId())){ + return ApiResponse.error(105, "masterTable为null"); + } + return ApiResponse.success(tree); + } + } + + /*获取系统角色列表*/ + @PostMapping(value = "/AssociatedForms/getRoleList") + public ApiResponse getRoleList() { + Tree serviceRoleList = customerFormService.getRoleList(); + return ApiResponse.success(serviceRoleList); + } + + /*下拉,多选,单选,选项数据*/ + @PostMapping(value = "/AssociateOptionSettings/getOptions") + public ApiResponse getOptions() { + ArrayList