From 8ae56758897a1144265a1738cd292163864af221 Mon Sep 17 00:00:00 2001 From: zhanglei Date: Wed, 8 Jul 2026 09:26:26 +0800 Subject: [PATCH 1/4] bug --- .../adapter/config/GbsUserSyncInterceptor.java | 3 ++- .../adapter/web/OrgDepartmentController.java | 14 ++++---------- 2 files changed, 6 insertions(+), 11 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 036fde8..1621cd5 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 @@ -37,7 +37,8 @@ public class GbsUserSyncInterceptor implements WebMvcConfigurer { "/**/org-info/save/**", "/**/account/save/**", "/**/account/sendMessage/**", - "/**/file/**" + "/**/file/**", + "/**/tree/**" }; @Override public void addInterceptors(InterceptorRegistry registry) { diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgDepartmentController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgDepartmentController.java index 3df95e2..d6e84a3 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgDepartmentController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgDepartmentController.java @@ -1,18 +1,12 @@ package org.qinan.safetyeval.adapter.web; import io.swagger.annotations.Api; -import org.qinan.safetyeval.client.dto.PageResponse; -import org.qinan.safetyeval.client.dto.SingleResponse; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.qinan.safetyeval.client.api.OrgDepartmentApi; import org.qinan.safetyeval.client.co.OrgDepartmentCO; -import org.qinan.safetyeval.client.dto.OrgDepartmentAddCmd; -import org.qinan.safetyeval.client.dto.OrgDepartmentModifyCmd; -import org.qinan.safetyeval.client.dto.OrgDepartmentPageQuery; -import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; -import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserInfo; -import org.springframework.beans.factory.annotation.Autowired; +import org.qinan.safetyeval.client.dto.*; +import org.qinan.safetyeval.infrastructure.dataobject.base.Req; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -53,8 +47,8 @@ public class OrgDepartmentController { @ApiOperation("删除部门") @PostMapping("/delete") - public SingleResponse delete(@ApiParam("主键ID") @RequestParam String id) { - return orgDepartmentApi.delete(Long.parseLong(id)); + public SingleResponse delete(@ApiParam("主键ID") @RequestBody Req req) { + return orgDepartmentApi.delete(req.getData()); } @ApiOperation("分页查询部门") From e07fa28963514d5f767a828577d61371e9c6d759 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Wed, 8 Jul 2026 11:31:02 +0800 Subject: [PATCH 2/4] fix bug orgId not send --- .../src/main/resources/templates/{index.html => safetyEval.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename safety-eval-start/src/main/resources/templates/{index.html => safetyEval.html} (100%) diff --git a/safety-eval-start/src/main/resources/templates/index.html b/safety-eval-start/src/main/resources/templates/safetyEval.html similarity index 100% rename from safety-eval-start/src/main/resources/templates/index.html rename to safety-eval-start/src/main/resources/templates/safetyEval.html From 9d1150beb1b23e10a523053bace2435a94fed421 Mon Sep 17 00:00:00 2001 From: zhanglei Date: Wed, 8 Jul 2026 11:52:35 +0800 Subject: [PATCH 3/4] bug --- .../app/executor/AccountExecutor.java | 19 ++++++++++++++++++- .../app/executor/OrgPersonnelExecutor.java | 15 ++++----------- .../domain/exception/ErrorCode.java | 1 + .../domain/service/AccountDomainService.java | 10 +++++----- 4 files changed, 28 insertions(+), 17 deletions(-) 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 2a7e2d6..3b8b66b 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 @@ -1,5 +1,6 @@ package org.qinan.safetyeval.app.executor; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jjb.saas.system.client.user.request.UserAddCmd; import com.zcloud.gbscommon.utils.MD5; import com.zcloud.gbscommon.utils.Sm2Util; @@ -14,6 +15,8 @@ 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.dataobject.OrgInfoDO; +import org.qinan.safetyeval.infrastructure.mapper.OrgInfoMapper; import org.qinan.safetyeval.infrastructure.remote.SmsRemote; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -40,6 +43,8 @@ public class AccountExecutor implements AccountApi { private String publicKey; @Autowired private SmsRemote smsRemote; + @Autowired + private OrgInfoMapper orgInfoMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -104,6 +109,7 @@ public class AccountExecutor implements AccountApi { } @Override + @Transactional(rollbackFor = Exception.class) public SingleResponse syncUserToGBS(String account) { AccountEntity result = accountDomainService.syncUserToGBS(account); // 同步gbs用户 @@ -112,9 +118,20 @@ public class AccountExecutor implements AccountApi { userAddCmd.setAccount(result.getAccount()); userAddCmd.setTenantId(result.getTenantId()); userAddCmd.setName(result.getUserName()); + if (result.getPassword() != null) { + defPassword = result.getPassword(); + } String encrypt = Sm2Util.encryptHex(MD5.md5(defPassword), publicKey); userAddCmd.setPassword(encrypt); - gbsUserFacadeClient.add(userAddCmd); + try { + gbsUserFacadeClient.add(userAddCmd); + } catch (Exception e) { + // 回滚数据, 清除account表示数据,orgInfo数据 + orgInfoMapper.delete(new LambdaQueryWrapper() + .eq(OrgInfoDO::getCreateId, result.getId())); + accountDomainService.delete(result.getId()); + throw new BizException(ErrorCode.GBS_USER_SYNC_ERROR); + } return SingleResponse.success(toCO(result)); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java index b28677d..300c3f5 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java @@ -1,24 +1,14 @@ package org.qinan.safetyeval.app.executor; -import com.jjb.saas.system.client.user.facade.UserFacade; -import com.jjb.saas.system.client.user.request.FacadeUserAddCmd; import com.jjb.saas.system.client.user.request.UserAddCmd; import com.jjb.saas.system.client.user.request.UserUpdatePasswordCmd; -import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.zcloud.gbscommon.utils.MD5; import com.zcloud.gbscommon.utils.Sm2Util; -import org.apache.dubbo.config.annotation.DubboReference; import org.qinan.safetyeval.app.support.OrgPersonnelChangeRecorder; import org.qinan.safetyeval.app.support.OrgPersonnelViewEnricher; import org.qinan.safetyeval.client.api.OrgPersonnelApi; import org.qinan.safetyeval.client.co.OrgPersonnelCO; -import org.qinan.safetyeval.client.dto.OrgPersonnelAddCmd; -import org.qinan.safetyeval.client.dto.OrgPersonnelModifyCmd; -import org.qinan.safetyeval.client.dto.OrgPersonnelPageQuery; -import org.qinan.safetyeval.client.dto.PageResponse; -import org.qinan.safetyeval.client.dto.SingleResponse; +import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.ErrorCode; @@ -26,8 +16,11 @@ import org.qinan.safetyeval.domain.gateway.OrgResignApplyGateway; import org.qinan.safetyeval.domain.query.OrgPersonnelQuery; import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.service.OrgPersonnelDomainService; +import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java index 764f6a8..be48c00 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java @@ -101,6 +101,7 @@ public enum ErrorCode { // gbs GBS_USER_ERROR("04-01-001", "gbs用户未登录"), + GBS_USER_SYNC_ERROR("04-01-002", "gbs用户同步错误"), /** diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/AccountDomainService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/AccountDomainService.java index a020aa8..250c44a 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/AccountDomainService.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/AccountDomainService.java @@ -65,11 +65,11 @@ public class AccountDomainService { // throw new BizException(ErrorCode.ACCOUNT_EXISTS); return found; } - AccountEntity foundByPhone = accountGateway.foundByPhone(phone); - if (foundByPhone != null && !excludeId.equals(foundByPhone.getId())) { -// throw new BizException(ErrorCode.PHONE_EXISTS, foundByPhone.getAccount()); - return foundByPhone; - } +// AccountEntity foundByPhone = accountGateway.foundByPhone(phone); +// if (foundByPhone != null && (excludeId == null || !excludeId.equals(foundByPhone.getId()))) { +//// throw new BizException(ErrorCode.PHONE_EXISTS, foundByPhone.getAccount()); +// return foundByPhone; +// } return null; } From 1c3f7c19c67296995c71320e7f6b6f0a6726cbc0 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Wed, 8 Jul 2026 11:55:48 +0800 Subject: [PATCH 4/4] fix bug orgId not send --- .../start/config/WebCorsConfig.java | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 safety-eval-start/src/main/java/org/qinan/safetyeval/start/config/WebCorsConfig.java diff --git a/safety-eval-start/src/main/java/org/qinan/safetyeval/start/config/WebCorsConfig.java b/safety-eval-start/src/main/java/org/qinan/safetyeval/start/config/WebCorsConfig.java deleted file mode 100644 index 43598e0..0000000 --- a/safety-eval-start/src/main/java/org/qinan/safetyeval/start/config/WebCorsConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.qinan.safetyeval.start.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; - -/** - * 本地联调跨域配置 - */ -@Configuration -public class WebCorsConfig { - - @Bean - public CorsFilter corsFilter() { - CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOriginPattern("*"); - config.addAllowedHeader("*"); - config.addAllowedMethod("*"); - config.setAllowCredentials(true); - - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - source.registerCorsConfiguration("/**", config); - return new CorsFilter(source); - } -}