From a6b29c5e9f0beb310643ce9ff99922f56670638e Mon Sep 17 00:00:00 2001 From: zhanglei Date: Mon, 6 Jul 2026 18:23:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/GbsUserSyncInterceptor.java | 3 +- .../config/LocalDevUserContextConfig.java | 34 +++++++++---------- .../adapter/web/AccountController.java | 17 ++++------ .../app/executor/AccountExecutor.java | 10 ++++++ .../app/executor/OrgInfoExecutor.java | 2 +- .../safetyeval/client/api/AccountApi.java | 3 ++ .../safetyeval/client/dto/AccountAddCmd.java | 3 ++ .../adapter/ThreadLocalUserInfoAdapter.java | 6 ++-- .../gatewayimpl/OrgInfoGatewayImpl.java | 6 ++-- .../infrastructure/remote/SmsRemote.java | 2 +- 10 files changed, 48 insertions(+), 38 deletions(-) diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/GbsUserSyncInterceptor.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/GbsUserSyncInterceptor.java index 9458d48..f6ca348 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/GbsUserSyncInterceptor.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/GbsUserSyncInterceptor.java @@ -35,7 +35,8 @@ public class GbsUserSyncInterceptor implements WebMvcConfigurer { private final String[] anonymousUrl = { "/**/account/syncUserToGBS/**", "/**/org-info/save/**", - "/**/account/save/**" + "/**/account/save/**", + "/**/account/sendMessage/**" }; @Override public void addInterceptors(InterceptorRegistry registry) { diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/LocalDevUserContextConfig.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/LocalDevUserContextConfig.java index b493b5d..04deac1 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/LocalDevUserContextConfig.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/config/LocalDevUserContextConfig.java @@ -21,23 +21,23 @@ public class LocalDevUserContextConfig implements WebMvcConfigurer { private Long defaultOrgId; private static final String[] LOCAL_DEV_PATHS = { - "/org-info/**", - "/org-department/**", - "/org-position/**", - "/org-qualification/**", - "/org-personnel/**", - "/org-personnel-cert/**", - "/org-personnel-change/**", - "/org-resign-apply/**", - "/org-equipment/**", - "/qual-filing/**", - "/qual-filing-change/**", - "/qual-filing-change-detail/**", - "/qual-filing-commitment/**", - "/qual-filing-equipment/**", - "/qual-filing-material/**", - "/qual-filing-personnel/**", - "/qual-filing-personnel-cert/**", + "/**/org-info/**", + "/**/org-department/**", + "/**/org-position/**", + "/**/org-qualification/**", + "/**/org-personnel/**", + "/**/org-personnel-cert/**", + "/**/org-personnel-change/**", + "/**/org-resign-apply/**", + "/**/org-equipment/**", + "/**/qual-filing/**", + "/**/qual-filing-change/**", + "/**/qual-filing-change-detail/**", + "/**/qual-filing-commitment/**", + "/**/qual-filing-equipment/**", + "/**/qual-filing-material/**", + "/**/qual-filing-personnel/**", + "/**/qual-filing-personnel-cert/**", }; @Override diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/AccountController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/AccountController.java index 59ccc5a..4909d82 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/AccountController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/AccountController.java @@ -1,28 +1,17 @@ package org.qinan.safetyeval.adapter.web; -import cn.hutool.json.JSONUtil; -import com.jjb.saas.message.client.message.request.MessageSendCmd; -import com.jjb.saas.message.client.message.request.MessageTargetCmd; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.qinan.safetyeval.client.api.AccountApi; import org.qinan.safetyeval.client.co.AccountCO; import org.qinan.safetyeval.client.dto.*; -import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.infrastructure.remote.SmsRemote; -import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import static org.qinan.safetyeval.domain.exception.ErrorCode.SMS_SOURCE_CODE_NOT_EXIST; /** * 用户适配层(Controller) @@ -84,4 +73,10 @@ public class AccountController { return accountApi.syncUserToGBS(account); } + @ApiOperation("验证码校验") + @GetMapping("/verificationCode") + public SingleResponse verificationCode(@ApiParam("手机号") @RequestParam String phone, @ApiParam("验证码") @RequestParam String code) { + return accountApi.verificationCode(phone, code); + } + } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/AccountExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/AccountExecutor.java index efbbab3..ca5d4ed 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/AccountExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/AccountExecutor.java @@ -12,6 +12,7 @@ import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.service.AccountDomainService; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient; +import org.qinan.safetyeval.infrastructure.remote.SmsRemote; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; @@ -35,10 +36,13 @@ public class AccountExecutor implements AccountApi { private String defPassword; @Value("${def.publicKey:0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee}") private String publicKey; + @Autowired + private SmsRemote smsRemote; @Override @Transactional(rollbackFor = Exception.class) public SingleResponse add(AccountAddCmd cmd) { + smsRemote.signValidCode(cmd.getPhone(), cmd.getVerificationCode()); AccountEntity entity = new AccountEntity(); entity.setUserName(cmd.getUserName()); entity.setAccount(cmd.getAccount()); @@ -112,6 +116,12 @@ public class AccountExecutor implements AccountApi { return SingleResponse.success(toCO(result)); } + @Override + public SingleResponse verificationCode(String phone, String code) { + smsRemote.signValidCode(phone, code); + return null; + } + private AccountCO toCO(AccountEntity entity) { if (entity == null) { return null; diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java index 01aac4d..062e349 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java @@ -32,7 +32,7 @@ public class OrgInfoExecutor implements OrgInfoApi { private OrgInfoDomainService orgInfoDomainService; @Override - public SingleResponse add(OrgInfoAddCmd cmd) { + public SingleResponse add(OrgInfoAddCmd cmd) { OrgInfoEntity entity = new OrgInfoEntity(); entity.setUnitName(cmd.getUnitName()); entity.setCreditCode(cmd.getCreditCode()); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/AccountApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/AccountApi.java index 8473d7d..eb2ea5b 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/AccountApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/AccountApi.java @@ -25,4 +25,7 @@ public interface AccountApi { PageResponse page(AccountPageQuery query); SingleResponse syncUserToGBS(String account); + + SingleResponse verificationCode(String phone, String code); + } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/AccountAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/AccountAddCmd.java index a7e774a..1ca09a4 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/AccountAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/AccountAddCmd.java @@ -26,6 +26,9 @@ public class AccountAddCmd { @ApiModelProperty(value = "头像地址") private String profileUrl; + @ApiModelProperty(value = "验证码") + private String verificationCode; + @ApiModelProperty(value = "类型(1机构端2监管端)") private Integer type = 1; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/adapter/ThreadLocalUserInfoAdapter.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/adapter/ThreadLocalUserInfoAdapter.java index d2a7405..fe43073 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/adapter/ThreadLocalUserInfoAdapter.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/adapter/ThreadLocalUserInfoAdapter.java @@ -1,9 +1,6 @@ package org.qinan.safetyeval.infrastructure.adapter; -import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil; -import org.springframework.web.context.request.RequestContextHolder; - /** * 基于 ThreadLocal 的用户信息适配器默认实现 *

@@ -18,7 +15,8 @@ public class ThreadLocalUserInfoAdapter { private static final ThreadLocal ORG_ID = new ThreadLocal<>(); public static Long get() { - return RequestHandlerUtil.getOrgId(); +// return RequestHandlerUtil.getOrgId(); + return ORG_ID.get(); } /** diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java index 5c4d7a1..26ef125 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java @@ -79,10 +79,10 @@ public class OrgInfoGatewayImpl implements OrgInfoGateway { dataObject.setState(0); } InsertFieldDefaults.apply(dataObject); - dataObject.setCreateId(entity.getCreateId()); - dataObject.setUpdateId(entity.getCreateId()); - entity.setCreateId(entity.getRegisterUserId()); + dataObject.setCreateId(entity.getRegisterUserId()); + dataObject.setUpdateId(entity.getRegisterUserId()); orgInfoMapper.insert(dataObject); + entity.setId(dataObject.getId()); return entity; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/remote/SmsRemote.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/remote/SmsRemote.java index 44a1ba6..5434147 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/remote/SmsRemote.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/remote/SmsRemote.java @@ -125,7 +125,7 @@ public class SmsRemote { if (code == null) { throw new BizException(SMS_CODE_EXPIRED); } - if (code.toString().equals(validCode)) { + if (!code.toString().equals(validCode)) { throw new BizException(SMS_CODE_NOT_RIGHT); } return true;