From 4ecbfe74a8459dd81a7fb4aaa917d92277bfd0f0 Mon Sep 17 00:00:00 2001 From: yang chen Date: Fri, 14 Nov 2025 10:45:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E5=90=8C=E6=AD=A5=E4=B8=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=97=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E9=97=A8=E4=B8=8E=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 MasterUserReqVO 中新增 deptId、deptName、orgId、orgName 字段- 调整单元测试配置文件端口号及激活方式 - 修改 UserSyncServiceImpl 中 remark 生成逻辑,使用 getRemark 方法格式化备注信息 - 新增 MasterUserSyncTest 测试类验证字符串格式化功能-优化 WorkOrderSimpleTest 类引入服务并格式化 SQL 输出 --- .../test/alibaba/WorkOrderSimpleTest.java | 8 +++-- .../test/master/MasterUserSyncTest.java | 15 ++++++++++ .../test/resources/application-unit-test.yaml | 4 +-- .../vo/user/sync/MasterUserReqVO.java | 28 ++++++++++++++++++ .../service/impl/UserSyncServiceImpl.java | 29 +++++++++++++++++-- .../test/core/ut/BaseDbAndRedisUnitTest.java | 8 ++--- 6 files changed, 81 insertions(+), 11 deletions(-) create mode 100644 jeelowcode-admin/src/test/java/com/jeelowcode/test/master/MasterUserSyncTest.java diff --git a/jeelowcode-admin/src/test/java/com/jeelowcode/test/alibaba/WorkOrderSimpleTest.java b/jeelowcode-admin/src/test/java/com/jeelowcode/test/alibaba/WorkOrderSimpleTest.java index 332fcd4..a1a5578 100644 --- a/jeelowcode-admin/src/test/java/com/jeelowcode/test/alibaba/WorkOrderSimpleTest.java +++ b/jeelowcode-admin/src/test/java/com/jeelowcode/test/alibaba/WorkOrderSimpleTest.java @@ -1,19 +1,23 @@ package com.jeelowcode.test.alibaba; +import cn.hutool.db.sql.SqlUtil; import com.jeelowcode.module.biz.job.AlibabaWorkOrderJob; +import com.jeelowcode.module.biz.service.impl.AlibabaWorkOrderServiceImpl; import com.jeelowcode.tool.framework.test.core.ut.BaseDbAndRedisUnitTest; import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; import javax.annotation.Resource; +@Import({AlibabaWorkOrderServiceImpl.class}) public class WorkOrderSimpleTest extends BaseDbAndRedisUnitTest { @Resource - private AlibabaWorkOrderJob alibabaWorkOrderJob; + private AlibabaWorkOrderServiceImpl workOrderService; @Test public void testBuildSql() { - System.out.println(alibabaWorkOrderJob.buildSql(null, null)); + System.out.println(SqlUtil.formatSql(AlibabaWorkOrderJob.buildSql(null, null))); } } diff --git a/jeelowcode-admin/src/test/java/com/jeelowcode/test/master/MasterUserSyncTest.java b/jeelowcode-admin/src/test/java/com/jeelowcode/test/master/MasterUserSyncTest.java new file mode 100644 index 0000000..6b4b919 --- /dev/null +++ b/jeelowcode-admin/src/test/java/com/jeelowcode/test/master/MasterUserSyncTest.java @@ -0,0 +1,15 @@ +package com.jeelowcode.test.master; + +import cn.hutool.core.util.StrUtil; +import com.jeelowcode.tool.framework.test.core.ut.BaseMockitoUnitTest; +import org.junit.jupiter.api.Test; + +public class MasterUserSyncTest extends BaseMockitoUnitTest { + + @Test + public void testStringFormat() { + String description = "测试"; + System.out.println(StrUtil.format("备注:{}", description)); + } + +} diff --git a/jeelowcode-admin/src/test/resources/application-unit-test.yaml b/jeelowcode-admin/src/test/resources/application-unit-test.yaml index 0a56de7..f5901e9 100644 --- a/jeelowcode-admin/src/test/resources/application-unit-test.yaml +++ b/jeelowcode-admin/src/test/resources/application-unit-test.yaml @@ -28,10 +28,10 @@ spring: # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 redis: host: 127.0.0.1 # 地址 - port: 16379 # 端口(单元测试,使用 16379 端口) + port: 6379 # 端口(单元测试,使用 16379 端口) database: 0 # 数据库索引 -mybatis: +mybatis-plus: lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 # 芋道配置项,设置当前项目所有自定义的配置 diff --git a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/controller/vo/user/sync/MasterUserReqVO.java b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/controller/vo/user/sync/MasterUserReqVO.java index 9c4cc19..b0d657b 100644 --- a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/controller/vo/user/sync/MasterUserReqVO.java +++ b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/controller/vo/user/sync/MasterUserReqVO.java @@ -162,6 +162,34 @@ public class MasterUserReqVO { @Schema(description = "头像") private String empPhoto; + /** + * 所属部门ID + */ + @JsonProperty("dept_id") + @Schema(description = "所属部门ID") + private String deptId; + + /** + * 所属部门名称 + */ + @JsonProperty("dept_name") + @Schema(description = "所属部门名称") + private String deptName; + + /** + * 所属单位ID + */ + @JsonProperty("org_id") + @Schema(description = "所属单位ID") + private String orgId; + + /** + * 所属单位名称 + */ + @JsonProperty("org_name") + @Schema(description = "所属单位名称") + private String orgName; + /** * 子用户数据 */ diff --git a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/service/impl/UserSyncServiceImpl.java b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/service/impl/UserSyncServiceImpl.java index 74be6cd..d332f03 100644 --- a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/service/impl/UserSyncServiceImpl.java +++ b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/service/impl/UserSyncServiceImpl.java @@ -87,7 +87,7 @@ public class UserSyncServiceImpl implements IUserSyncService { try { UserSaveReqVO userSaveReqVO = new UserSaveReqVO() .setUsername(username).setNickname(md.getEmpName()) - .setRemark(md.getDescription()).setEmail(md.getEmail()) + .setRemark(getRemark(md)).setEmail(md.getEmail()) .setMobile(md.getMobile()).setPassword(username) .setSex(Convert.toInt(md.getSex(), 0)) .setTenantId(1L).setDeptInfoList(deptInfoList); @@ -102,7 +102,7 @@ public class UserSyncServiceImpl implements IUserSyncService { try { UserSaveReqVO userSaveReqVO = new UserSaveReqVO() .setId(adminUser.getId()).setUsername(username) - .setNickname(md.getEmpName()).setRemark(md.getDescription()) + .setNickname(md.getEmpName()).setRemark(getRemark(md)) .setEmail(md.getEmail()).setMobile(md.getMobile()) .setSex(Convert.toInt(md.getSex(), 0)) .setTenantId(1L); @@ -139,4 +139,29 @@ public class UserSyncServiceImpl implements IUserSyncService { return null; } + /** + * 根据主数据用户信息生成备注信息 + *

+ * 将用户的相关信息格式化为字符串,主要用于运维关注的信息展示 + * + * @param masterUser 主数据用户信息对象 + * @return 格式化后的备注信息字符串 + */ + private String getRemark(MasterUserReqVO masterUser) { + // 备注里放一些运维关心的信息 + String description = masterUser.getDescription(); + String personType = masterUser.getCuncPersonType(); + String locationAddress = masterUser.getLocationAddress(); + String orgName = masterUser.getOrgName(); + String deptName = masterUser.getDeptName(); + StringBuilder remark = new StringBuilder(); + if (StrUtil.isNotEmpty(description)) remark.append(StrUtil.format("备注:{}", description)).append("\n"); + if (StrUtil.isNotEmpty(personType)) remark.append(StrUtil.format("人员类型:{}", personType)).append("\n"); + if (StrUtil.isNotEmpty(locationAddress)) + remark.append(StrUtil.format("办公地址:{}", locationAddress)).append("\n"); + if (StrUtil.isNotEmpty(orgName)) remark.append(StrUtil.format("所属单位名称:{}", orgName)).append("\n"); + if (StrUtil.isNotEmpty(deptName)) remark.append(StrUtil.format("所属部门名称:{}", deptName)).append("\n"); + return remark.toString(); + } + } diff --git a/jeelowcode-tool/tool-spring-boot-starter-test/src/main/java/com/jeelowcode/tool/framework/test/core/ut/BaseDbAndRedisUnitTest.java b/jeelowcode-tool/tool-spring-boot-starter-test/src/main/java/com/jeelowcode/tool/framework/test/core/ut/BaseDbAndRedisUnitTest.java index 7ccf8f8..e760112 100644 --- a/jeelowcode-tool/tool-spring-boot-starter-test/src/main/java/com/jeelowcode/tool/framework/test/core/ut/BaseDbAndRedisUnitTest.java +++ b/jeelowcode-tool/tool-spring-boot-starter-test/src/main/java/com/jeelowcode/tool/framework/test/core/ut/BaseDbAndRedisUnitTest.java @@ -1,18 +1,17 @@ package com.jeelowcode.tool.framework.test.core.ut; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; import com.jeelowcode.tool.framework.datasource.config.DataSourceAutoConfiguration; import com.jeelowcode.tool.framework.mybatis.config.MybatisAutoConfiguration; import com.jeelowcode.tool.framework.redis.config.RedisAutoConfiguration; import com.jeelowcode.tool.framework.test.config.RedisTestConfiguration; import com.jeelowcode.tool.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; import org.redisson.spring.starter.RedissonAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Import; import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; /** * 依赖内存 DB + Redis 的单元测试 @@ -22,8 +21,7 @@ import org.springframework.test.context.jdbc.Sql; * @author 芋道源码 */ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class) -@ActiveProfiles("local") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 public class BaseDbAndRedisUnitTest { @Import({