mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	多模块重构 4:system 模块的调整,解决单元测试报错的问题
This commit is contained in:
		| @@ -5,12 +5,12 @@ import cn.iocoder.yudao.framework.security.config.SecurityProperties; | ||||
| import cn.iocoder.yudao.framework.security.core.LoginUser; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.auth.UserSessionMapper; | ||||
| import cn.iocoder.yudao.module.system.service.logger.LoginLogService; | ||||
| import cn.iocoder.yudao.module.system.service.user.AdminUserService; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.UserSessionDO; | ||||
| import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SexEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| @@ -49,13 +49,13 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|     private UserSessionServiceImpl userSessionService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysUserSessionMapper userSessionMapper; | ||||
|     private UserSessionMapper userSessionMapper; | ||||
|  | ||||
|     @MockBean | ||||
|     private AdminUserService userService; | ||||
|     @MockBean | ||||
|     private LoginLogService loginLogService; | ||||
|     @MockBean | ||||
|     @Resource | ||||
|     private LoginUserRedisDAO loginUserRedisDAO; | ||||
|  | ||||
|     @MockBean | ||||
| @@ -65,13 +65,13 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|     public void testGetUserSessionPage_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomPojo(AdminUserDO.class, o -> { | ||||
|             o.setSex(randomEle(SysSexEnum.values()).getSex()); | ||||
|             o.setSex(randomEle(SexEnum.values()).getSex()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
|         when(userService.getUsersByUsername(eq(dbUser.getUsername()))).thenReturn(singletonList(dbUser)); | ||||
|         // 插入可被查询到的数据 | ||||
|         String userIp = randomString(); | ||||
|         SysUserSessionDO dbSession = randomPojo(SysUserSessionDO.class, o -> { | ||||
|         UserSessionDO dbSession = randomPojo(UserSessionDO.class, o -> { | ||||
|             o.setUserId(dbUser.getId()); | ||||
|             o.setUserType(randomEle(UserTypeEnum.values()).getValue()); | ||||
|             o.setUserIp(userIp); | ||||
| @@ -93,7 +93,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         reqVO.setUserIp(userIp); | ||||
|  | ||||
|         // 调用 | ||||
|         PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO); | ||||
|         PageResult<UserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, pageResult.getTotal()); | ||||
|         assertEquals(1, pageResult.getList().size()); | ||||
| @@ -107,15 +107,15 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         int expectedTimeoutCount = 120, expectedTotal = 1; | ||||
|  | ||||
|         // 准备数据 | ||||
|         List<SysUserSessionDO> prepareData = Stream | ||||
|         List<UserSessionDO> prepareData = Stream | ||||
|                 .iterate(0, i -> i) | ||||
|                 .limit(expectedTimeoutCount) | ||||
|                 .map(i -> randomPojo(SysUserSessionDO.class, o -> { | ||||
|                 .map(i -> randomPojo(UserSessionDO.class, o -> { | ||||
|                     o.setUserType(randomEle(UserTypeEnum.values()).getValue()); | ||||
|                     o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1)); | ||||
|                 })) | ||||
|                 .collect(Collectors.toList()); | ||||
|         SysUserSessionDO sessionDO = randomPojo(SysUserSessionDO.class, o -> { | ||||
|         UserSessionDO sessionDO = randomPojo(UserSessionDO.class, o -> { | ||||
|             o.setUserType(randomEle(UserTypeEnum.values()).getValue()); | ||||
|             o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30)); | ||||
|         }); | ||||
| @@ -126,7 +126,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         long actualTimeoutCount = userSessionService.clearSessionTimeout(); | ||||
|         // 校验 | ||||
|         assertEquals(expectedTimeoutCount, actualTimeoutCount); | ||||
|         List<SysUserSessionDO> userSessionDOS = userSessionMapper.selectList(); | ||||
|         List<UserSessionDO> userSessionDOS = userSessionMapper.selectList(); | ||||
|         assertEquals(expectedTotal, userSessionDOS.size()); | ||||
|         assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime"); | ||||
|     } | ||||
| @@ -145,8 +145,8 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|  | ||||
|         // 调用 | ||||
|         String sessionId = userSessionService.createUserSession(loginUser, userIp, userAgent); | ||||
|         // 校验 SysUserSessionDO 记录 | ||||
|         SysUserSessionDO userSessionDO = userSessionMapper.selectById(sessionId); | ||||
|         // 校验 UserSessionDO 记录 | ||||
|         UserSessionDO userSessionDO = userSessionMapper.selectById(sessionId); | ||||
|         assertPojoEquals(loginUser, userSessionDO, "id", "updateTime"); | ||||
|         assertEquals(sessionId, userSessionDO.getId()); | ||||
|         assertEquals(userIp, userSessionDO.getUserIp()); | ||||
| @@ -171,7 +171,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         // mock 数据 | ||||
|         loginUser.setUpdateTime(date); | ||||
|         loginUserRedisDAO.set(sessionId, loginUser); | ||||
|         SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) | ||||
|         UserSessionDO userSession = UserSessionDO.builder().id(sessionId) | ||||
|                 .userId(loginUser.getId()).userType(loginUser.getUserType()) | ||||
|                 .userIp(userIp).userAgent(userAgent).username(userName) | ||||
|                 .sessionTimeout(addTime(Duration.ofMillis(timeLong))) | ||||
| @@ -183,8 +183,8 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         // 校验 LoginUser 缓存 | ||||
|         LoginUser redisLoginUser = loginUserRedisDAO.get(sessionId); | ||||
|         assertNotEquals(redisLoginUser.getUpdateTime(), date); | ||||
|         // 校验 SysUserSessionDO 记录 | ||||
|         SysUserSessionDO updateDO = userSessionMapper.selectById(sessionId); | ||||
|         // 校验 UserSessionDO 记录 | ||||
|         UserSessionDO updateDO = userSessionMapper.selectById(sessionId); | ||||
|         assertEquals(updateDO.getUsername(), loginUser.getUsername()); | ||||
|         assertNotEquals(updateDO.getUpdateTime(), userSession.getUpdateTime()); | ||||
|         assertNotEquals(updateDO.getSessionTimeout(), addTime(Duration.ofMillis(timeLong))); | ||||
| @@ -202,7 +202,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||||
|         when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1)); | ||||
|         // mock 数据 | ||||
|         loginUserRedisDAO.set(sessionId, loginUser); | ||||
|         SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) | ||||
|         UserSessionDO userSession = UserSessionDO.builder().id(sessionId) | ||||
|                 .userId(loginUser.getId()).userType(loginUser.getUserType()) | ||||
|                 .userIp(userIp).userAgent(userAgent).username(loginUser.getUsername()) | ||||
|                 .sessionTimeout(addTime(Duration.ofMillis(timeLong))) | ||||
|   | ||||
| @@ -4,8 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dept.DeptMapper; | ||||
| import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum; | ||||
| import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| @@ -43,7 +43,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Resource | ||||
|     private DeptServiceImpl deptService; | ||||
|     @Resource | ||||
|     private SysDeptMapper deptMapper; | ||||
|     private DeptMapper deptMapper; | ||||
|     @MockBean | ||||
|     private DeptProducer deptProducer; | ||||
|  | ||||
| @@ -51,20 +51,20 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @SuppressWarnings("unchecked") | ||||
|     void testInitLocalCache() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO deptDO1 = randomDeptDO(); | ||||
|         DeptDO deptDO1 = randomDeptDO(); | ||||
|         deptMapper.insert(deptDO1); | ||||
|         SysDeptDO deptDO2 = randomDeptDO(); | ||||
|         DeptDO deptDO2 = randomDeptDO(); | ||||
|         deptMapper.insert(deptDO2); | ||||
|  | ||||
|         // 调用 | ||||
|         deptService.initLocalCache(); | ||||
|         // 断言 deptCache 缓存 | ||||
|         Map<Long, SysDeptDO> deptCache = (Map<Long, SysDeptDO>) getFieldValue(deptService, "deptCache"); | ||||
|         Map<Long, DeptDO> deptCache = (Map<Long, DeptDO>) getFieldValue(deptService, "deptCache"); | ||||
|         assertEquals(2, deptCache.size()); | ||||
|         assertPojoEquals(deptDO1, deptCache.get(deptDO1.getId())); | ||||
|         assertPojoEquals(deptDO2, deptCache.get(deptDO2.getId())); | ||||
|         // 断言 parentDeptCache 缓存 | ||||
|         Multimap<Long, SysDeptDO> parentDeptCache = (Multimap<Long, SysDeptDO>) getFieldValue(deptService, "parentDeptCache"); | ||||
|         Multimap<Long, DeptDO> parentDeptCache = (Multimap<Long, DeptDO>) getFieldValue(deptService, "parentDeptCache"); | ||||
|         assertEquals(2, parentDeptCache.size()); | ||||
|         assertPojoEquals(deptDO1, parentDeptCache.get(deptDO1.getParentId())); | ||||
|         assertPojoEquals(deptDO2, parentDeptCache.get(deptDO2.getParentId())); | ||||
| @@ -76,7 +76,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testListDepts() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { // 等会查询到 | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { // 等会查询到 | ||||
|             o.setName("开发部"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -90,7 +90,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setName("开"); | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         // 调用 | ||||
|         List<SysDeptDO> sysDeptDOS = deptService.getSimpleDepts(reqVO); | ||||
|         List<DeptDO> sysDeptDOS = deptService.getSimpleDepts(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, sysDeptDOS.size()); | ||||
|         assertPojoEquals(dept, sysDeptDOS.get(0)); | ||||
| @@ -109,7 +109,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(deptId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysDeptDO deptDO = deptMapper.selectById(deptId); | ||||
|         DeptDO deptDO = deptMapper.selectById(deptId); | ||||
|         assertPojoEquals(reqVO, deptDO); | ||||
|         // 校验调用 | ||||
|         verify(deptProducer, times(1)).sendDeptRefreshMessage(); | ||||
| @@ -118,7 +118,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testUpdateDept_success() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO dbDeptDO = randomPojo(SysDeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         DeptDO dbDeptDO = randomPojo(DeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         deptMapper.insert(dbDeptDO);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         DeptUpdateReqVO reqVO = randomPojo(DeptUpdateReqVO.class, o -> { | ||||
| @@ -130,14 +130,14 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         deptService.updateDept(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysDeptDO deptDO = deptMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         DeptDO deptDO = deptMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         assertPojoEquals(reqVO, deptDO); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     void testDeleteDept_success() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO dbDeptDO = randomPojo(SysDeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         DeptDO dbDeptDO = randomPojo(DeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         deptMapper.insert(dbDeptDO);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         Long id = dbDeptDO.getId(); | ||||
| @@ -150,12 +150,12 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckDept_nameDuplicateForUpdate() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO deptDO = randomDeptDO(); | ||||
|         DeptDO deptDO = randomDeptDO(); | ||||
|         // 设置根节点部门 | ||||
|         deptDO.setParentId(DeptIdEnum.ROOT.getId()); | ||||
|         deptMapper.insert(deptDO); | ||||
|         // mock 数据 稍后模拟重复它的 name | ||||
|         SysDeptDO nameDeptDO = randomDeptDO(); | ||||
|         DeptDO nameDeptDO = randomDeptDO(); | ||||
|         // 设置根节点部门 | ||||
|         nameDeptDO.setParentId(DeptIdEnum.ROOT.getId()); | ||||
|         deptMapper.insert(nameDeptDO); | ||||
| @@ -192,10 +192,10 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckDept_exitsChildrenForDelete() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO parentDept = randomPojo(SysDeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         DeptDO parentDept = randomPojo(DeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         deptMapper.insert(parentDept);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         SysDeptDO childrenDeptDO = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO childrenDeptDO = randomPojo(DeptDO.class, o -> { | ||||
|             o.setParentId(parentDept.getId()); | ||||
|             o.setStatus(randomCommonStatus()); | ||||
|         }); | ||||
| @@ -208,7 +208,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckDept_parentErrorForUpdate() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO dbDeptDO = randomPojo(SysDeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         DeptDO dbDeptDO = randomPojo(DeptDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         deptMapper.insert(dbDeptDO); | ||||
|         // 准备参数 | ||||
|         DeptUpdateReqVO reqVO = randomPojo(DeptUpdateReqVO.class, | ||||
| @@ -225,7 +225,7 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckDept_notEnableForCreate() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO deptDO = randomPojo(SysDeptDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); | ||||
|         DeptDO deptDO = randomPojo(DeptDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); | ||||
|         deptMapper.insert(deptDO); | ||||
|         // 准备参数 | ||||
|         DeptCreateReqVO reqVO = randomPojo(DeptCreateReqVO.class, | ||||
| @@ -240,9 +240,9 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckDept_parentIsChildForUpdate() { | ||||
|         // mock 数据 | ||||
|         SysDeptDO parentDept = randomPojo(SysDeptDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); | ||||
|         DeptDO parentDept = randomPojo(DeptDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); | ||||
|         deptMapper.insert(parentDept); | ||||
|         SysDeptDO childDept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO childDept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|             o.setParentId(parentDept.getId()); | ||||
|         }); | ||||
| @@ -262,11 +262,11 @@ public class DeptServiceTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysDeptDO randomDeptDO(Consumer<SysDeptDO>... consumers) { | ||||
|         Consumer<SysDeptDO> consumer = (o) -> { | ||||
|     private static DeptDO randomDeptDO(Consumer<DeptDO>... consumers) { | ||||
|         Consumer<DeptDO> consumer = (o) -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|         }; | ||||
|         return randomPojo(SysDeptDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(DeptDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| package cn.iocoder.yudao.module.system.service.dept; | ||||
|  | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateRe | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dept.PostMapper; | ||||
| import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; | ||||
| import org.junit.jupiter.api.Test; | ||||
| import org.springframework.context.annotation.Import; | ||||
| @@ -32,12 +32,12 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     @Resource | ||||
|     private PostServiceImpl postService; | ||||
|     @Resource | ||||
|     private SysPostMapper postMapper; | ||||
|     private PostMapper postMapper; | ||||
|  | ||||
|     @Test | ||||
|     void testPagePosts() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPojo(SysPostDO.class, o -> { | ||||
|         PostDO postDO = randomPojo(PostDO.class, o -> { | ||||
|             o.setName("码仔"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -53,7 +53,7 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|  | ||||
|         // 调用 | ||||
|         PageResult<SysPostDO> pageResult = postService.getPostPage(reqVO); | ||||
|         PageResult<PostDO> pageResult = postService.getPostPage(reqVO); | ||||
|  | ||||
|         // 断言 | ||||
|         assertEquals(1, pageResult.getTotal()); | ||||
| @@ -64,7 +64,7 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testListPosts() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPojo(SysPostDO.class, o -> { | ||||
|         PostDO postDO = randomPojo(PostDO.class, o -> { | ||||
|             o.setName("码仔"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -79,7 +79,7 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|  | ||||
|         // 调用 | ||||
|         List<SysPostDO> list = postService.getPosts(reqVO); | ||||
|         List<PostDO> list = postService.getPosts(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, list.size()); | ||||
|         assertPojoEquals(postDO, list.get(0)); | ||||
| @@ -88,12 +88,12 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testGetPost() { | ||||
|         // mock 数据 | ||||
|         SysPostDO dbPostDO = randomPostDO(); | ||||
|         PostDO dbPostDO = randomPostDO(); | ||||
|         postMapper.insert(dbPostDO); | ||||
|         // 准备参数 | ||||
|         Long id = dbPostDO.getId(); | ||||
|         // 调用 | ||||
|         SysPostDO post = postService.getPost(id); | ||||
|         PostDO post = postService.getPost(id); | ||||
|         // 断言 | ||||
|         assertNotNull(post); | ||||
|         assertPojoEquals(dbPostDO, post); | ||||
| @@ -109,14 +109,14 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(postId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysPostDO post = postMapper.selectById(postId); | ||||
|         PostDO post = postMapper.selectById(postId); | ||||
|         assertPojoEquals(reqVO, post); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     void testUpdatePost_success() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPostDO(); | ||||
|         PostDO postDO = randomPostDO(); | ||||
|         postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, | ||||
| @@ -128,14 +128,14 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         postService.updatePost(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysPostDO post = postMapper.selectById(reqVO.getId());// 获取最新的 | ||||
|         PostDO post = postMapper.selectById(reqVO.getId());// 获取最新的 | ||||
|         assertPojoEquals(reqVO, post); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     void testDeletePost_success() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPostDO(); | ||||
|         PostDO postDO = randomPostDO(); | ||||
|         postMapper.insert(postDO); | ||||
|         // 准备参数 | ||||
|         Long id = postDO.getId(); | ||||
| @@ -155,7 +155,7 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckPost_nameDuplicateForCreate() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPostDO(); | ||||
|         PostDO postDO = randomPostDO(); | ||||
|         postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class, | ||||
| @@ -167,10 +167,10 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     void testCheckPost_codeDuplicateForUpdate() { | ||||
|         // mock 数据 | ||||
|         SysPostDO postDO = randomPostDO(); | ||||
|         PostDO postDO = randomPostDO(); | ||||
|         postMapper.insert(postDO); | ||||
|         // mock 数据 稍后模拟重复它的 code | ||||
|         SysPostDO codePostDO = randomPostDO(); | ||||
|         PostDO codePostDO = randomPostDO(); | ||||
|         postMapper.insert(codePostDO); | ||||
|         // 准备参数 | ||||
|         PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, | ||||
| @@ -185,10 +185,10 @@ public class PostServiceTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysPostDO randomPostDO(Consumer<SysPostDO>... consumers) { | ||||
|         Consumer<SysPostDO> consumer = (o) -> { | ||||
|     private static PostDO randomPostDO(Consumer<PostDO>... consumers) { | ||||
|         Consumer<PostDO> consumer = (o) -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|         }; | ||||
|         return randomPojo(SysPostDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(PostDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| package cn.iocoder.yudao.module.system.service.dict; | ||||
|  | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; | ||||
| @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExpo | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dict.SysDictDataMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; | ||||
| import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||||
| @@ -39,7 +39,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     private DictDataServiceImpl dictDataService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysDictDataMapper dictDataMapper; | ||||
|     private DictDataMapper dictDataMapper; | ||||
|     @MockBean | ||||
|     private DictTypeService dictTypeService; | ||||
|     @MockBean | ||||
| @@ -52,22 +52,22 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @SuppressWarnings("unchecked") | ||||
|     public void testInitLocalCache() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dictData01 = randomDictDataDO(); | ||||
|         DictDataDO dictData01 = randomDictDataDO(); | ||||
|         dictDataMapper.insert(dictData01); | ||||
|         SysDictDataDO dictData02 = randomDictDataDO(); | ||||
|         DictDataDO dictData02 = randomDictDataDO(); | ||||
|         dictDataMapper.insert(dictData02); | ||||
|  | ||||
|         // 调用 | ||||
|         dictDataService.initLocalCache(); | ||||
|         // 断言 labelDictDataCache 缓存 | ||||
|         ImmutableTable<String, String, SysDictDataDO> labelDictDataCache = | ||||
|                 (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "labelDictDataCache"); | ||||
|         ImmutableTable<String, String, DictDataDO> labelDictDataCache = | ||||
|                 (ImmutableTable<String, String, DictDataDO>) getFieldValue(dictDataService, "labelDictDataCache"); | ||||
|         assertEquals(2, labelDictDataCache.size()); | ||||
|         assertPojoEquals(dictData01, labelDictDataCache.get(dictData01.getDictType(), dictData01.getLabel())); | ||||
|         assertPojoEquals(dictData02, labelDictDataCache.get(dictData02.getDictType(), dictData02.getLabel())); | ||||
|         // 断言 valueDictDataCache 缓存 | ||||
|         ImmutableTable<String, String, SysDictDataDO> valueDictDataCache = | ||||
|                 (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "valueDictDataCache"); | ||||
|         ImmutableTable<String, String, DictDataDO> valueDictDataCache = | ||||
|                 (ImmutableTable<String, String, DictDataDO>) getFieldValue(dictDataService, "valueDictDataCache"); | ||||
|         assertEquals(2, valueDictDataCache.size()); | ||||
|         assertPojoEquals(dictData01, valueDictDataCache.get(dictData01.getDictType(), dictData01.getValue())); | ||||
|         assertPojoEquals(dictData02, valueDictDataCache.get(dictData02.getDictType(), dictData02.getValue())); | ||||
| @@ -79,7 +79,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetDictDataPage() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dbDictData = randomPojo(SysDictDataDO.class, o -> { // 等会查询到 | ||||
|         DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到 | ||||
|             o.setLabel("芋艿"); | ||||
|             o.setDictType("yunai"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
| @@ -98,7 +98,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|  | ||||
|         // 调用 | ||||
|         PageResult<SysDictDataDO> pageResult = dictDataService.getDictDataPage(reqVO); | ||||
|         PageResult<DictDataDO> pageResult = dictDataService.getDictDataPage(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, pageResult.getTotal()); | ||||
|         assertEquals(1, pageResult.getList().size()); | ||||
| @@ -108,7 +108,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetDictDataList() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dbDictData = randomPojo(SysDictDataDO.class, o -> { // 等会查询到 | ||||
|         DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到 | ||||
|             o.setLabel("芋艿"); | ||||
|             o.setDictType("yunai"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
| @@ -127,7 +127,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|  | ||||
|         // 调用 | ||||
|         List<SysDictDataDO> list = dictDataService.getDictDatas(reqVO); | ||||
|         List<DictDataDO> list = dictDataService.getDictDatas(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, list.size()); | ||||
|         assertPojoEquals(dbDictData, list.get(0)); | ||||
| @@ -146,7 +146,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(dictDataId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysDictDataDO dictData = dictDataMapper.selectById(dictDataId); | ||||
|         DictDataDO dictData = dictDataMapper.selectById(dictDataId); | ||||
|         assertPojoEquals(reqVO, dictData); | ||||
|         // 校验调用 | ||||
|         verify(dictDataProducer, times(1)).sendDictDataRefreshMessage(); | ||||
| @@ -155,7 +155,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateDictData_success() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dbDictData = randomDictDataDO(); | ||||
|         DictDataDO dbDictData = randomDictDataDO(); | ||||
|         dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         DictDataUpdateReqVO reqVO = randomPojo(DictDataUpdateReqVO.class, o -> { | ||||
| @@ -168,7 +168,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         dictDataService.updateDictData(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysDictDataDO dictData = dictDataMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         DictDataDO dictData = dictDataMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         assertPojoEquals(reqVO, dictData); | ||||
|         // 校验调用 | ||||
|         verify(dictDataProducer, times(1)).sendDictDataRefreshMessage(); | ||||
| @@ -177,7 +177,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteDictData_success() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dbDictData = randomDictDataDO(); | ||||
|         DictDataDO dbDictData = randomDictDataDO(); | ||||
|         dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         Long id = dbDictData.getId(); | ||||
| @@ -193,7 +193,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testCheckDictDataExists_success() { | ||||
|         // mock 数据 | ||||
|         SysDictDataDO dbDictData = randomDictDataDO(); | ||||
|         DictDataDO dbDictData = randomDictDataDO(); | ||||
|         dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 | ||||
|  | ||||
|         // 调用成功 | ||||
| @@ -273,18 +273,18 @@ public class DictDataServiceTest extends BaseDbUnitTest { | ||||
|     // ========== 随机对象 ========== | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysDictDataDO randomDictDataDO(Consumer<SysDictDataDO>... consumers) { | ||||
|         Consumer<SysDictDataDO> consumer = (o) -> { | ||||
|     private static DictDataDO randomDictDataDO(Consumer<DictDataDO>... consumers) { | ||||
|         Consumer<DictDataDO> consumer = (o) -> { | ||||
|             o.setStatus(randomCommonStatus()); // 保证 status 的范围 | ||||
|         }; | ||||
|         return randomPojo(SysDictDataDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(DictDataDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 生成一个有效的字典类型 | ||||
|      * | ||||
|      * @param type 字典类型 | ||||
|      * @return SysDictTypeDO 对象 | ||||
|      * @return DictTypeDO 对象 | ||||
|      */ | ||||
|     private static DictTypeDO randomDictTypeDO(String type) { | ||||
|         return randomPojo(DictTypeDO.class, o -> { | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeUpda | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dict.SysDictTypeMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||||
| import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; | ||||
| @@ -36,7 +36,7 @@ public class DictTypeServiceTest extends BaseDbUnitTest { | ||||
|     private DictTypeServiceImpl dictTypeService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysDictTypeMapper dictTypeMapper; | ||||
|     private DictTypeMapper dictTypeMapper; | ||||
|     @MockBean | ||||
|     private DictDataService dictDataService; | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeCre | ||||
| import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.errorcode.SysErrorCodeMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.errorcode.ErrorCodeMapper; | ||||
| import cn.iocoder.yudao.module.system.enums.errorcode.ErrorCodeTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||||
| @@ -36,7 +36,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { | ||||
|     private ErrorCodeServiceImpl errorCodeService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysErrorCodeMapper errorCodeMapper; | ||||
|     private ErrorCodeMapper errorCodeMapper; | ||||
|  | ||||
|     @Test | ||||
|     public void testCreateErrorCode_success() { | ||||
| @@ -200,7 +200,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 情况 2.1,错误码存在,但是是 SysErrorCodeTypeEnum.MANUAL_OPERATION 类型 | ||||
|      * 情况 2.1,错误码存在,但是是 ErrorCodeTypeEnum.MANUAL_OPERATION 类型 | ||||
|      */ | ||||
|     @Test | ||||
|     public void testAutoGenerateErrorCodes_021() { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.system.service.logger; | ||||
|  | ||||
| import cn.hutool.core.util.RandomUtil; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; | ||||
| @@ -38,7 +38,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { | ||||
|     public void testGetLoginLogPage() { | ||||
|         // 构造测试数据 | ||||
|         // 登录成功的 | ||||
|         SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { | ||||
|         LoginLogDO loginLogDO = RandomUtils.randomPojo(LoginLogDO.class, logDO -> { | ||||
|             logDO.setLogType(RandomUtil.randomEle(cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum.values()).getType()); | ||||
|             logDO.setTraceId(TracerUtils.getTraceId()); | ||||
|             logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue()); | ||||
| @@ -70,7 +70,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndTime(buildTime(2021, 3, 7)); | ||||
|  | ||||
|         // 调用service方法 | ||||
|         PageResult<SysLoginLogDO> pageResult = loginLogService.getLoginLogPage(reqVO); | ||||
|         PageResult<LoginLogDO> pageResult = loginLogService.getLoginLogPage(reqVO); | ||||
|  | ||||
|         // 断言,只查到了一条符合条件的 | ||||
|         assertEquals(1, pageResult.getTotal()); | ||||
| @@ -83,7 +83,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { | ||||
|         // 构造测试数据 | ||||
|  | ||||
|         // 登录成功的 | ||||
|         SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { | ||||
|         LoginLogDO loginLogDO = RandomUtils.randomPojo(LoginLogDO.class, logDO -> { | ||||
|             logDO.setLogType(RandomUtil.randomEle(cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum.values()).getType()); | ||||
|             logDO.setTraceId(TracerUtils.getTraceId()); | ||||
|             logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue()); | ||||
| @@ -116,7 +116,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { | ||||
|  | ||||
|  | ||||
|         // 调用service方法 | ||||
|         List<SysLoginLogDO> loginLogList = loginLogService.getLoginLogList(reqVO); | ||||
|         List<LoginLogDO> loginLogList = loginLogService.getLoginLogList(reqVO); | ||||
|  | ||||
|         // 断言 | ||||
|         assertEquals(1, loginLogList.size()); | ||||
| @@ -136,7 +136,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         loginLogService.createLoginLog(reqDTO); | ||||
|         // 断言,忽略基本字段 | ||||
|         SysLoginLogDO sysLoginLogDO = loginLogMapper.selectOne(null); | ||||
|         LoginLogDO sysLoginLogDO = loginLogMapper.selectOne(null); | ||||
|         assertPojoEquals(reqDTO, sysLoginLogDO); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; | ||||
| import cn.iocoder.yudao.module.system.service.user.AdminUserService; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SexEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| @@ -68,7 +68,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | ||||
|         // 先构造用户 | ||||
|         AdminUserDO user = RandomUtils.randomPojo(AdminUserDO.class, o -> { | ||||
|             o.setNickname("wangkai"); | ||||
|             o.setSex(SysSexEnum.MALE.getSex()); | ||||
|             o.setSex(SexEnum.MALE.getSex()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
|         when(userService.getUsersByNickname("wangkai")).thenReturn(Collections.singletonList(user)); | ||||
| @@ -119,7 +119,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { | ||||
|         // 先构造用户 | ||||
|         AdminUserDO user = RandomUtils.randomPojo(AdminUserDO.class, o -> { | ||||
|             o.setNickname("wangkai"); | ||||
|             o.setSex(SysSexEnum.MALE.getSex()); | ||||
|             o.setSex(SexEnum.MALE.getSex()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
|         when(userService.getUsersByNickname("wangkai")).thenReturn(Collections.singletonList(user)); | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeCreateReq | ||||
| import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.notice.SysNoticeMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper; | ||||
| import cn.iocoder.yudao.module.system.enums.notice.NoticeTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||||
| import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; | ||||
| @@ -32,7 +32,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     private NoticeServiceImpl sysNoticeService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysNoticeMapper sysNoticeMapper; | ||||
|     private NoticeMapper sysNoticeMapper; | ||||
|  | ||||
|     @Test | ||||
|     public void testPageNotices_success() { | ||||
| @@ -66,7 +66,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetNotice_success() { | ||||
|         // 插入前置数据 | ||||
|         NoticeDO dbNotice = randomSysNoticeDO(); | ||||
|         NoticeDO dbNotice = randomNoticeDO(); | ||||
|         sysNoticeMapper.insert(dbNotice); | ||||
|  | ||||
|         // 查询 | ||||
| @@ -80,7 +80,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testCreateNotice_success() { | ||||
|         // 准备参数 | ||||
|         NoticeCreateReqVO reqVO = randomSysNoticeCreateReqVO(); | ||||
|         NoticeCreateReqVO reqVO = randomNoticeCreateReqVO(); | ||||
|  | ||||
|         // 校验插入是否成功 | ||||
|         Long noticeId = sysNoticeService.createNotice(reqVO); | ||||
| @@ -94,11 +94,11 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateNotice_success() { | ||||
|         // 插入前置数据 | ||||
|         NoticeDO dbNoticeDO = randomSysNoticeDO(); | ||||
|         NoticeDO dbNoticeDO = randomNoticeDO(); | ||||
|         sysNoticeMapper.insert(dbNoticeDO); | ||||
|  | ||||
|         // 准备更新参数 | ||||
|         NoticeUpdateReqVO reqVO = randomSysNoticeUpdateReqVO(o -> o.setId(dbNoticeDO.getId())); | ||||
|         NoticeUpdateReqVO reqVO = randomNoticeUpdateReqVO(o -> o.setId(dbNoticeDO.getId())); | ||||
|  | ||||
|         // 更新 | ||||
|         sysNoticeService.updateNotice(reqVO); | ||||
| @@ -111,7 +111,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteNotice_success() { | ||||
|         // 插入前置数据 | ||||
|         NoticeDO dbNotice = randomSysNoticeDO(); | ||||
|         NoticeDO dbNotice = randomNoticeDO(); | ||||
|         sysNoticeMapper.insert(dbNotice); | ||||
|  | ||||
|         // 删除 | ||||
| @@ -124,7 +124,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void checkNoticeExists_success() { | ||||
|         // 插入前置数据 | ||||
|         NoticeDO dbNotice = randomSysNoticeDO(); | ||||
|         NoticeDO dbNotice = randomNoticeDO(); | ||||
|         sysNoticeMapper.insert(dbNotice); | ||||
|  | ||||
|         // 成功调用 | ||||
| @@ -137,7 +137,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static NoticeDO randomSysNoticeDO(Consumer<NoticeDO>... consumers) { | ||||
|     private static NoticeDO randomNoticeDO(Consumer<NoticeDO>... consumers) { | ||||
|         NoticeDO notice = randomPojo(NoticeDO.class, consumers); | ||||
|         notice.setType(randomEle(NoticeTypeEnum.values()).getType()); | ||||
|         notice.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
| @@ -145,14 +145,14 @@ class NoticeServiceImplTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static NoticeUpdateReqVO randomSysNoticeUpdateReqVO(Consumer<NoticeUpdateReqVO>... consumers) { | ||||
|     private static NoticeUpdateReqVO randomNoticeUpdateReqVO(Consumer<NoticeUpdateReqVO>... consumers) { | ||||
|         NoticeUpdateReqVO reqVO = randomPojo(NoticeUpdateReqVO.class, consumers); | ||||
|         reqVO.setType(randomEle(NoticeTypeEnum.values()).getType()); | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         return reqVO; | ||||
|     } | ||||
|  | ||||
|     private static NoticeCreateReqVO randomSysNoticeCreateReqVO() { | ||||
|     private static NoticeCreateReqVO randomNoticeCreateReqVO() { | ||||
|         NoticeCreateReqVO reqVO = randomPojo(NoticeCreateReqVO.class); | ||||
|         reqVO.setType(randomEle(NoticeTypeEnum.values()).getType()); | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.system.service.permission; | ||||
|  | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; | ||||
| @@ -194,7 +194,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { | ||||
|         RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_AND_CHILD.getScope())); | ||||
|         when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); | ||||
|         // mock 方法(部门) | ||||
|         SysDeptDO deptDO = randomPojo(SysDeptDO.class); | ||||
|         DeptDO deptDO = randomPojo(DeptDO.class); | ||||
|         when(deptService.getDeptsByParentIdFromCache(eq(loginUser.getDeptId()), eq(true))) | ||||
|                 .thenReturn(singletonList(deptDO)); | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper; | ||||
| import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| @@ -51,9 +51,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testInitLocalCache_success() { | ||||
|         // mock 数据 | ||||
|         SysSmsChannelDO smsChannelDO01 = randomSmsChannelDO(); | ||||
|         SmsChannelDO smsChannelDO01 = randomSmsChannelDO(); | ||||
|         smsChannelMapper.insert(smsChannelDO01); | ||||
|         SysSmsChannelDO smsChannelDO02 = randomSmsChannelDO(); | ||||
|         SmsChannelDO smsChannelDO02 = randomSmsChannelDO(); | ||||
|         smsChannelMapper.insert(smsChannelDO02); | ||||
|  | ||||
|         // 调用 | ||||
| @@ -78,7 +78,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(smsChannelId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysSmsChannelDO smsChannel = smsChannelMapper.selectById(smsChannelId); | ||||
|         SmsChannelDO smsChannel = smsChannelMapper.selectById(smsChannelId); | ||||
|         assertPojoEquals(reqVO, smsChannel); | ||||
|         // 校验调用 | ||||
|         verify(smsProducer, times(1)).sendSmsChannelRefreshMessage(); | ||||
| @@ -87,7 +87,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateSmsChannel_success() { | ||||
|         // mock 数据 | ||||
|         SysSmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         SmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> { | ||||
| @@ -99,7 +99,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         smsChannelService.updateSmsChannel(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysSmsChannelDO smsChannel = smsChannelMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         SmsChannelDO smsChannel = smsChannelMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         assertPojoEquals(reqVO, smsChannel); | ||||
|         // 校验调用 | ||||
|         verify(smsProducer, times(1)).sendSmsChannelRefreshMessage(); | ||||
| @@ -117,7 +117,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteSmsChannel_success() { | ||||
|         // mock 数据 | ||||
|         SysSmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         SmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         Long id = dbSmsChannel.getId(); | ||||
| @@ -142,7 +142,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteSmsChannel_hasChildren() { | ||||
|         // mock 数据 | ||||
|         SysSmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         SmsChannelDO dbSmsChannel = randomSmsChannelDO(); | ||||
|         smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         Long id = dbSmsChannel.getId(); | ||||
| @@ -156,7 +156,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetSmsChannelPage() { | ||||
|        // mock 数据 | ||||
|        SysSmsChannelDO dbSmsChannel = randomPojo(SysSmsChannelDO.class, o -> { // 等会查询到 | ||||
|        SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到 | ||||
|            o.setSignature("芋道源码"); | ||||
|            o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|            o.setCreateTime(buildTime(2020, 12, 12)); | ||||
| @@ -176,7 +176,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|        reqVO.setEndCreateTime(buildTime(2020, 12, 24)); | ||||
|  | ||||
|        // 调用 | ||||
|        PageResult<SysSmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO); | ||||
|        PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO); | ||||
|        // 断言 | ||||
|        assertEquals(1, pageResult.getTotal()); | ||||
|        assertEquals(1, pageResult.getList().size()); | ||||
| @@ -186,11 +186,11 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { | ||||
|     // ========== 随机对象 ========== | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysSmsChannelDO randomSmsChannelDO(Consumer<SysSmsChannelDO>... consumers) { | ||||
|         Consumer<SysSmsChannelDO> consumer = (o) -> { | ||||
|     private static SmsChannelDO randomSmsChannelDO(Consumer<SmsChannelDO>... consumers) { | ||||
|         Consumer<SmsChannelDO> consumer = (o) -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|         }; | ||||
|         return randomPojo(SysSmsChannelDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(SmsChannelDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -4,12 +4,12 @@ import cn.hutool.core.map.MapUtil; | ||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SysSmsTemplateTypeEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| @@ -44,13 +44,13 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetSmsLogPage() { | ||||
|        // mock 数据 | ||||
|        SysSmsLogDO dbSmsLog = randomSmsLogDO(o -> { // 等会查询到 | ||||
|        SmsLogDO dbSmsLog = randomSmsLogDO(o -> { // 等会查询到 | ||||
|            o.setChannelId(1L); | ||||
|            o.setTemplateId(10L); | ||||
|            o.setMobile("15601691300"); | ||||
|            o.setSendStatus(SysSmsSendStatusEnum.INIT.getStatus()); | ||||
|            o.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); | ||||
|            o.setSendTime(buildTime(2020, 11, 11)); | ||||
|            o.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()); | ||||
|            o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); | ||||
|            o.setReceiveTime(buildTime(2021, 11, 11)); | ||||
|        }); | ||||
|        smsLogMapper.insert(dbSmsLog); | ||||
| @@ -61,11 +61,11 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|        // 测试 mobile 不匹配 | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setMobile("18818260999"))); | ||||
|        // 测试 sendStatus 不匹配 | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SysSmsSendStatusEnum.IGNORE.getStatus()))); | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus()))); | ||||
|        // 测试 sendTime 不匹配 | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12)))); | ||||
|        // 测试 receiveStatus 不匹配 | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SysSmsReceiveStatusEnum.SUCCESS.getStatus()))); | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus()))); | ||||
|        // 测试 receiveTime 不匹配 | ||||
|        smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12)))); | ||||
|        // 准备参数 | ||||
| @@ -73,15 +73,15 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|        reqVO.setChannelId(1L); | ||||
|        reqVO.setTemplateId(10L); | ||||
|        reqVO.setMobile("156"); | ||||
|        reqVO.setSendStatus(SysSmsSendStatusEnum.INIT.getStatus()); | ||||
|        reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); | ||||
|        reqVO.setBeginSendTime(buildTime(2020, 11, 1)); | ||||
|        reqVO.setEndSendTime(buildTime(2020, 11, 30)); | ||||
|        reqVO.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()); | ||||
|        reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); | ||||
|        reqVO.setBeginReceiveTime(buildTime(2021, 11, 1)); | ||||
|        reqVO.setEndReceiveTime(buildTime(2021, 11, 30)); | ||||
|  | ||||
|        // 调用 | ||||
|        PageResult<SysSmsLogDO> pageResult = smsLogService.getSmsLogPage(reqVO); | ||||
|        PageResult<SmsLogDO> pageResult = smsLogService.getSmsLogPage(reqVO); | ||||
|        // 断言 | ||||
|        assertEquals(1, pageResult.getTotal()); | ||||
|        assertEquals(1, pageResult.getList().size()); | ||||
| @@ -91,13 +91,13 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetSmsLogList() { | ||||
|         // mock 数据 | ||||
|         SysSmsLogDO dbSmsLog = randomSmsLogDO(o -> { // 等会查询到 | ||||
|         SmsLogDO dbSmsLog = randomSmsLogDO(o -> { // 等会查询到 | ||||
|             o.setChannelId(1L); | ||||
|             o.setTemplateId(10L); | ||||
|             o.setMobile("15601691300"); | ||||
|             o.setSendStatus(SysSmsSendStatusEnum.INIT.getStatus()); | ||||
|             o.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); | ||||
|             o.setSendTime(buildTime(2020, 11, 11)); | ||||
|             o.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()); | ||||
|             o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); | ||||
|             o.setReceiveTime(buildTime(2021, 11, 11)); | ||||
|         }); | ||||
|         smsLogMapper.insert(dbSmsLog); | ||||
| @@ -108,11 +108,11 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         // 测试 mobile 不匹配 | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setMobile("18818260999"))); | ||||
|         // 测试 sendStatus 不匹配 | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SysSmsSendStatusEnum.IGNORE.getStatus()))); | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus()))); | ||||
|         // 测试 sendTime 不匹配 | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12)))); | ||||
|         // 测试 receiveStatus 不匹配 | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SysSmsReceiveStatusEnum.SUCCESS.getStatus()))); | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus()))); | ||||
|         // 测试 receiveTime 不匹配 | ||||
|         smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12)))); | ||||
|         // 准备参数 | ||||
| @@ -120,15 +120,15 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setChannelId(1L); | ||||
|         reqVO.setTemplateId(10L); | ||||
|         reqVO.setMobile("156"); | ||||
|         reqVO.setSendStatus(SysSmsSendStatusEnum.INIT.getStatus()); | ||||
|         reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); | ||||
|         reqVO.setBeginSendTime(buildTime(2020, 11, 1)); | ||||
|         reqVO.setEndSendTime(buildTime(2020, 11, 30)); | ||||
|         reqVO.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()); | ||||
|         reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); | ||||
|         reqVO.setBeginReceiveTime(buildTime(2021, 11, 1)); | ||||
|         reqVO.setEndReceiveTime(buildTime(2021, 11, 30)); | ||||
|  | ||||
|        // 调用 | ||||
|        List<SysSmsLogDO> list = smsLogService.getSmsLogList(reqVO); | ||||
|        List<SmsLogDO> list = smsLogService.getSmsLogList(reqVO); | ||||
|        // 断言 | ||||
|        assertEquals(1, list.size()); | ||||
|        assertPojoEquals(dbSmsLog, list.get(0)); | ||||
| @@ -141,8 +141,8 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         Long userId = randomLongId(); | ||||
|         Integer userType = randomEle(UserTypeEnum.values()).getValue(); | ||||
|         Boolean isSend = randomBoolean(); | ||||
|         SysSmsTemplateDO templateDO = randomPojo(SysSmsTemplateDO.class, | ||||
|                 o -> o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType())); | ||||
|         SmsTemplateDO templateDO = randomPojo(SmsTemplateDO.class, | ||||
|                 o -> o.setType(randomEle(SmsTemplateTypeEnum.values()).getType())); | ||||
|         String templateContent = randomString(); | ||||
|         Map<String, Object> templateParams = randomTemplateParams(); | ||||
|         // mock 方法 | ||||
| @@ -151,8 +151,8 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         Long logId = smsLogService.createSmsLog(mobile, userId, userType, isSend, | ||||
|                 templateDO, templateContent, templateParams); | ||||
|         // 断言 | ||||
|         SysSmsLogDO logDO = smsLogMapper.selectById(logId); | ||||
|         assertEquals(isSend ? SysSmsSendStatusEnum.INIT.getStatus() : SysSmsSendStatusEnum.IGNORE.getStatus(), | ||||
|         SmsLogDO logDO = smsLogMapper.selectById(logId); | ||||
|         assertEquals(isSend ? SmsSendStatusEnum.INIT.getStatus() : SmsSendStatusEnum.IGNORE.getStatus(), | ||||
|                 logDO.getSendStatus()); | ||||
|         assertEquals(mobile, logDO.getMobile()); | ||||
|         assertEquals(userType, logDO.getUserType()); | ||||
| @@ -164,14 +164,14 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         assertEquals(templateDO.getChannelCode(), logDO.getChannelCode()); | ||||
|         assertEquals(templateContent, logDO.getTemplateContent()); | ||||
|         assertEquals(templateParams, logDO.getTemplateParams()); | ||||
|         assertEquals(SysSmsReceiveStatusEnum.INIT.getStatus(), logDO.getReceiveStatus()); | ||||
|         assertEquals(SmsReceiveStatusEnum.INIT.getStatus(), logDO.getReceiveStatus()); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testUpdateSmsSendResult() { | ||||
|         // mock 数据 | ||||
|         SysSmsLogDO dbSmsLog = randomSmsLogDO( | ||||
|                 o -> o.setSendStatus(SysSmsSendStatusEnum.IGNORE.getStatus())); | ||||
|         SmsLogDO dbSmsLog = randomSmsLogDO( | ||||
|                 o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus())); | ||||
|         smsLogMapper.insert(dbSmsLog); | ||||
|         // 准备参数 | ||||
|         Long id = dbSmsLog.getId(); | ||||
| @@ -187,8 +187,8 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|                 apiSendCode, apiSendMsg, apiRequestId, apiSerialNo); | ||||
|         // 断言 | ||||
|         dbSmsLog = smsLogMapper.selectById(id); | ||||
|         assertEquals(CommonResult.isSuccess(sendCode) ? SysSmsSendStatusEnum.SUCCESS.getStatus() | ||||
|                 : SysSmsSendStatusEnum.FAILURE.getStatus(), dbSmsLog.getSendStatus()); | ||||
|         assertEquals(CommonResult.isSuccess(sendCode) ? SmsSendStatusEnum.SUCCESS.getStatus() | ||||
|                 : SmsSendStatusEnum.FAILURE.getStatus(), dbSmsLog.getSendStatus()); | ||||
|         assertNotNull(dbSmsLog.getSendTime()); | ||||
|         assertEquals(sendMsg, dbSmsLog.getSendMsg()); | ||||
|         assertEquals(apiSendCode, dbSmsLog.getApiSendCode()); | ||||
| @@ -200,8 +200,8 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateSmsReceiveResult() { | ||||
|         // mock 数据 | ||||
|         SysSmsLogDO dbSmsLog = randomSmsLogDO( | ||||
|                 o -> o.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus())); | ||||
|         SmsLogDO dbSmsLog = randomSmsLogDO( | ||||
|                 o -> o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus())); | ||||
|         smsLogMapper.insert(dbSmsLog); | ||||
|         // 准备参数 | ||||
|         Long id = dbSmsLog.getId(); | ||||
| @@ -214,8 +214,8 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|         smsLogService.updateSmsReceiveResult(id, success, receiveTime, apiReceiveCode, apiReceiveMsg); | ||||
|         // 断言 | ||||
|         dbSmsLog = smsLogMapper.selectById(id); | ||||
|         assertEquals(success ? SysSmsReceiveStatusEnum.SUCCESS.getStatus() | ||||
|                 : SysSmsReceiveStatusEnum.FAILURE.getStatus(), dbSmsLog.getReceiveStatus()); | ||||
|         assertEquals(success ? SmsReceiveStatusEnum.SUCCESS.getStatus() | ||||
|                 : SmsReceiveStatusEnum.FAILURE.getStatus(), dbSmsLog.getReceiveStatus()); | ||||
|         assertEquals(receiveTime, dbSmsLog.getReceiveTime()); | ||||
|         assertEquals(apiReceiveCode, dbSmsLog.getApiReceiveCode()); | ||||
|         assertEquals(apiReceiveMsg, dbSmsLog.getApiReceiveMsg()); | ||||
| @@ -224,15 +224,15 @@ public class SmsLogServiceTest extends BaseDbUnitTest { | ||||
|     // ========== 随机对象 ========== | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysSmsLogDO randomSmsLogDO(Consumer<SysSmsLogDO>... consumers) { | ||||
|         Consumer<SysSmsLogDO> consumer = (o) -> { | ||||
|     private static SmsLogDO randomSmsLogDO(Consumer<SmsLogDO>... consumers) { | ||||
|         Consumer<SmsLogDO> consumer = (o) -> { | ||||
|             o.setTemplateParams(randomTemplateParams()); | ||||
|             o.setTemplateType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 templateType 的范围 | ||||
|             o.setTemplateType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 templateType 的范围 | ||||
|             o.setUserType(randomEle(UserTypeEnum.values()).getValue()); // 保证 userType 的范围 | ||||
|             o.setSendStatus(randomEle(SysSmsSendStatusEnum.values()).getStatus()); // 保证 sendStatus 的范围 | ||||
|             o.setReceiveStatus(randomEle(SysSmsReceiveStatusEnum.values()).getStatus()); // 保证 receiveStatus 的范围 | ||||
|             o.setSendStatus(randomEle(SmsSendStatusEnum.values()).getStatus()); // 保证 sendStatus 的范围 | ||||
|             o.setReceiveStatus(randomEle(SmsReceiveStatusEnum.values()).getStatus()); // 保证 receiveStatus 的范围 | ||||
|         }; | ||||
|         return randomPojo(SysSmsLogDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(SmsLogDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.system.service.sms; | ||||
| 
 | ||||
| import cn.hutool.core.map.MapUtil; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; | ||||
| import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; | ||||
| import cn.iocoder.yudao.framework.common.core.KeyValue; | ||||
| @@ -30,7 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; | ||||
| import static org.mockito.ArgumentMatchers.eq; | ||||
| import static org.mockito.Mockito.*; | ||||
| 
 | ||||
| public class SysSmsSendServiceTest extends BaseMockitoUnitTest { | ||||
| public class SmsSendServiceTest extends BaseMockitoUnitTest { | ||||
| 
 | ||||
|     @InjectMocks | ||||
|     private SmsSendServiceImpl smsService; | ||||
| @@ -57,7 +57,7 @@ public class SysSmsSendServiceTest extends BaseMockitoUnitTest { | ||||
|         Map<String, Object> templateParams = MapUtil.<String, Object>builder().put("code", "1234") | ||||
|                 .put("op", "login").build(); | ||||
|         // mock SmsTemplateService 的方法 | ||||
|         SysSmsTemplateDO template = randomPojo(SysSmsTemplateDO.class, o -> { | ||||
|         SmsTemplateDO template = randomPojo(SmsTemplateDO.class, o -> { | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|             o.setContent("验证码为{code}, 操作为{op}"); | ||||
|             o.setParams(Lists.newArrayList("code", "op")); | ||||
| @@ -94,7 +94,7 @@ public class SysSmsSendServiceTest extends BaseMockitoUnitTest { | ||||
|         Map<String, Object> templateParams = MapUtil.<String, Object>builder().put("code", "1234") | ||||
|                 .put("op", "login").build(); | ||||
|         // mock SmsTemplateService 的方法 | ||||
|         SysSmsTemplateDO template = randomPojo(SysSmsTemplateDO.class, o -> { | ||||
|         SmsTemplateDO template = randomPojo(SmsTemplateDO.class, o -> { | ||||
|             o.setStatus(CommonStatusEnum.DISABLE.getStatus()); | ||||
|             o.setContent("验证码为{code}, 操作为{op}"); | ||||
|             o.setParams(Lists.newArrayList("code", "op")); | ||||
| @@ -131,7 +131,7 @@ public class SysSmsSendServiceTest extends BaseMockitoUnitTest { | ||||
|     @Test | ||||
|     public void testBuildTemplateParams_paramMiss() { | ||||
|         // 准备参数 | ||||
|         SysSmsTemplateDO template = randomPojo(SysSmsTemplateDO.class, | ||||
|         SmsTemplateDO template = randomPojo(SmsTemplateDO.class, | ||||
|                 o -> o.setParams(Lists.newArrayList("code"))); | ||||
|         Map<String, Object> templateParams = new HashMap<>(); | ||||
|         // mock 方法 | ||||
| @@ -4,11 +4,11 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsTemplateMapper; | ||||
| import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SysSmsTemplateTypeEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| @@ -64,15 +64,15 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     @SuppressWarnings("unchecked") | ||||
|     void testInitLocalCache() { | ||||
|         // mock 数据 | ||||
|         SysSmsTemplateDO smsTemplate01 = randomSmsTemplateDO(); | ||||
|         SmsTemplateDO smsTemplate01 = randomSmsTemplateDO(); | ||||
|         smsTemplateMapper.insert(smsTemplate01); | ||||
|         SysSmsTemplateDO smsTemplate02 = randomSmsTemplateDO(); | ||||
|         SmsTemplateDO smsTemplate02 = randomSmsTemplateDO(); | ||||
|         smsTemplateMapper.insert(smsTemplate02); | ||||
|  | ||||
|         // 调用 | ||||
|         smsTemplateService.initLocalCache(); | ||||
|         // 断言 deptCache 缓存 | ||||
|         Map<String, SysSmsTemplateDO> smsTemplateCache = (Map<String, SysSmsTemplateDO>) getFieldValue(smsTemplateService, "smsTemplateCache"); | ||||
|         Map<String, SmsTemplateDO> smsTemplateCache = (Map<String, SmsTemplateDO>) getFieldValue(smsTemplateService, "smsTemplateCache"); | ||||
|         assertEquals(2, smsTemplateCache.size()); | ||||
|         assertPojoEquals(smsTemplate01, smsTemplateCache.get(smsTemplate01.getCode())); | ||||
|         assertPojoEquals(smsTemplate02, smsTemplateCache.get(smsTemplate02.getCode())); | ||||
| @@ -100,10 +100,10 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         SmsTemplateCreateReqVO reqVO = randomPojo(SmsTemplateCreateReqVO.class, o -> { | ||||
|             o.setContent("正在进行登录操作{operation},您的验证码是{code}"); | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|             o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|         }); | ||||
|         // mock Channel 的方法 | ||||
|         SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> { | ||||
|         SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { | ||||
|             o.setId(reqVO.getChannelId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 | ||||
|         }); | ||||
| @@ -118,7 +118,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(smsTemplateId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId); | ||||
|         SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId); | ||||
|         assertPojoEquals(reqVO, smsTemplate); | ||||
|         assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams()); | ||||
|         assertEquals(channelDO.getCode(), smsTemplate.getChannelCode()); | ||||
| @@ -130,17 +130,17 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     @SuppressWarnings("unchecked") | ||||
|     public void testUpdateSmsTemplate_success() { | ||||
|         // mock 数据 | ||||
|         SysSmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); | ||||
|         SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); | ||||
|         smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         SmsTemplateUpdateReqVO reqVO = randomPojo(SmsTemplateUpdateReqVO.class, o -> { | ||||
|             o.setId(dbSmsTemplate.getId()); // 设置更新的 ID | ||||
|             o.setContent("正在进行登录操作{operation},您的验证码是{code}"); | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|             o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|         }); | ||||
|         // mock 方法 | ||||
|         SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> { | ||||
|         SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { | ||||
|             o.setId(reqVO.getChannelId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 | ||||
|         }); | ||||
| @@ -153,7 +153,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         smsTemplateService.updateSmsTemplate(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         assertPojoEquals(reqVO, smsTemplate); | ||||
|         assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams()); | ||||
|         assertEquals(channelDO.getCode(), smsTemplate.getChannelCode()); | ||||
| @@ -173,7 +173,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteSmsTemplate_success() { | ||||
|         // mock 数据 | ||||
|         SysSmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); | ||||
|         SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); | ||||
|         smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         Long id = dbSmsTemplate.getId(); | ||||
| @@ -198,8 +198,8 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetSmsTemplatePage() { | ||||
|        // mock 数据 | ||||
|        SysSmsTemplateDO dbSmsTemplate = randomPojo(SysSmsTemplateDO.class, o -> { // 等会查询到 | ||||
|            o.setType(SysSmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|        SmsTemplateDO dbSmsTemplate = randomPojo(SmsTemplateDO.class, o -> { // 等会查询到 | ||||
|            o.setType(SmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|            o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|            o.setCode("yudaoyuanma"); | ||||
|            o.setContent("芋道源码"); | ||||
| @@ -209,7 +209,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|        }); | ||||
|        smsTemplateMapper.insert(dbSmsTemplate); | ||||
|        // 测试 type 不匹配 | ||||
|        smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setType(SysSmsTemplateTypeEnum.VERIFICATION_CODE.getType()))); | ||||
|        smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setType(SmsTemplateTypeEnum.VERIFICATION_CODE.getType()))); | ||||
|        // 测试 status 不匹配 | ||||
|        smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | ||||
|        // 测试 code 不匹配 | ||||
| @@ -224,7 +224,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|        smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | ||||
|        // 准备参数 | ||||
|        SmsTemplatePageReqVO reqVO = new SmsTemplatePageReqVO(); | ||||
|        reqVO.setType(SysSmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|        reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|        reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|        reqVO.setCode("yudao"); | ||||
|        reqVO.setContent("芋道"); | ||||
| @@ -234,7 +234,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|        reqVO.setEndCreateTime(buildTime(2021, 12, 1)); | ||||
|  | ||||
|        // 调用 | ||||
|        PageResult<SysSmsTemplateDO> pageResult = smsTemplateService.getSmsTemplatePage(reqVO); | ||||
|        PageResult<SmsTemplateDO> pageResult = smsTemplateService.getSmsTemplatePage(reqVO); | ||||
|        // 断言 | ||||
|        assertEquals(1, pageResult.getTotal()); | ||||
|        assertEquals(1, pageResult.getList().size()); | ||||
| @@ -244,8 +244,8 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetSmsTemplateList() { | ||||
|         // mock 数据 | ||||
|         SysSmsTemplateDO dbSmsTemplate = randomPojo(SysSmsTemplateDO.class, o -> { // 等会查询到 | ||||
|             o.setType(SysSmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|         SmsTemplateDO dbSmsTemplate = randomPojo(SmsTemplateDO.class, o -> { // 等会查询到 | ||||
|             o.setType(SmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|             o.setCode("yudaoyuanma"); | ||||
|             o.setContent("芋道源码"); | ||||
| @@ -255,7 +255,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         }); | ||||
|         smsTemplateMapper.insert(dbSmsTemplate); | ||||
|         // 测试 type 不匹配 | ||||
|         smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setType(SysSmsTemplateTypeEnum.VERIFICATION_CODE.getType()))); | ||||
|         smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setType(SmsTemplateTypeEnum.VERIFICATION_CODE.getType()))); | ||||
|         // 测试 status 不匹配 | ||||
|         smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | ||||
|         // 测试 code 不匹配 | ||||
| @@ -270,7 +270,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12)))); | ||||
|         // 准备参数 | ||||
|         SmsTemplateExportReqVO reqVO = new SmsTemplateExportReqVO(); | ||||
|         reqVO.setType(SysSmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|         reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType()); | ||||
|         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         reqVO.setCode("yudao"); | ||||
|         reqVO.setContent("芋道"); | ||||
| @@ -280,7 +280,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndCreateTime(buildTime(2021, 12, 1)); | ||||
|  | ||||
|        // 调用 | ||||
|        List<SysSmsTemplateDO> list = smsTemplateService.getSmsTemplateList(reqVO); | ||||
|        List<SmsTemplateDO> list = smsTemplateService.getSmsTemplateList(reqVO); | ||||
|        // 断言 | ||||
|        assertEquals(1, list.size()); | ||||
|        assertPojoEquals(dbSmsTemplate, list.get(0)); | ||||
| @@ -291,14 +291,14 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         Long channelId = randomLongId(); | ||||
|         // mock 方法 | ||||
|         SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> { | ||||
|         SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { | ||||
|             o.setId(channelId); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 | ||||
|         }); | ||||
|         when(smsChannelService.getSmsChannel(eq(channelId))).thenReturn(channelDO); | ||||
|  | ||||
|         // 调用 | ||||
|         SysSmsChannelDO returnChannelDO = smsTemplateService.checkSmsChannel(channelId); | ||||
|         SmsChannelDO returnChannelDO = smsTemplateService.checkSmsChannel(channelId); | ||||
|         // 断言 | ||||
|         assertPojoEquals(returnChannelDO, channelDO); | ||||
|     } | ||||
| @@ -318,7 +318,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         Long channelId = randomLongId(); | ||||
|         // mock 方法 | ||||
|         SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> { | ||||
|         SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { | ||||
|             o.setId(channelId); | ||||
|             o.setStatus(CommonStatusEnum.DISABLE.getStatus()); // 保证 status 禁用,触发失败 | ||||
|         }); | ||||
| @@ -363,12 +363,12 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { | ||||
|     // ========== 随机对象 ========== | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static SysSmsTemplateDO randomSmsTemplateDO(Consumer<SysSmsTemplateDO>... consumers) { | ||||
|         Consumer<SysSmsTemplateDO> consumer = (o) -> { | ||||
|     private static SmsTemplateDO randomSmsTemplateDO(Consumer<SmsTemplateDO>... consumers) { | ||||
|         Consumer<SmsTemplateDO> consumer = (o) -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|             o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 | ||||
|         }; | ||||
|         return randomPojo(SysSmsTemplateDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|         return randomPojo(SmsTemplateDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.system.service.social; | ||||
|  | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.social.SysSocialUserMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO; | ||||
| import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| @@ -29,13 +29,13 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|     private SocialUserServiceImpl socialService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysSocialUserMapper socialUserMapper; | ||||
|     private SocialUserMapper socialUserMapper; | ||||
|  | ||||
|     @MockBean | ||||
|     private AuthRequestFactory authRequestFactory; | ||||
|  | ||||
|     /** | ||||
|      * 情况一,创建 SysSocialUserDO 的情况 | ||||
|      * 情况一,创建 SocialUserDO 的情况 | ||||
|      */ | ||||
|     @Test | ||||
|     public void testBindSocialUser_create() { | ||||
| @@ -49,18 +49,18 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|         // 调用 | ||||
|         socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser); | ||||
|         // 断言 | ||||
|         List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         List<SocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         assertEquals(1, socialUsers.size()); | ||||
|         assertBindSocialUser(socialUsers.get(0), authUser, userId, type); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 情况二,更新 SysSocialUserDO 的情况 | ||||
|      * 情况二,更新 SocialUserDO 的情况 | ||||
|      */ | ||||
|     @Test | ||||
|     public void testBindSocialUser_update() { | ||||
|         // mock 数据 | ||||
|         SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { | ||||
|         SocialUserDO dbSocialUser = randomPojo(SocialUserDO.class, socialUserDO -> { | ||||
|             socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); | ||||
|             socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType()); | ||||
|         }); | ||||
| @@ -74,7 +74,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|         // 调用 | ||||
|         socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser); | ||||
|         // 断言 | ||||
|         List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         List<SocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         assertEquals(1, socialUsers.size()); | ||||
|         assertBindSocialUser(socialUsers.get(0), authUser, userId, type); | ||||
|     } | ||||
| @@ -85,7 +85,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|     @Test | ||||
|     public void testBindSocialUser_userId() { | ||||
|         // mock 数据 | ||||
|         SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { | ||||
|         SocialUserDO dbSocialUser = randomPojo(SocialUserDO.class, socialUserDO -> { | ||||
|             socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); | ||||
|             socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType()); | ||||
|         }); | ||||
| @@ -99,12 +99,12 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|         // 调用 | ||||
|         socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser); | ||||
|         // 断言 | ||||
|         List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         List<SocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); | ||||
|         assertEquals(1, socialUsers.size()); | ||||
|     } | ||||
|  | ||||
|     private void assertBindSocialUser(SysSocialUserDO socialUser, AuthUser authUser, Long userId, | ||||
|                                              Integer type) { | ||||
|     private void assertBindSocialUser(SocialUserDO socialUser, AuthUser authUser, Long userId, | ||||
|                                       Integer type) { | ||||
|         assertEquals(authUser.getToken().getAccessToken(), socialUser.getToken()); | ||||
|         assertEquals(toJsonString(authUser.getToken()), socialUser.getRawTokenInfo()); | ||||
|         assertEquals(authUser.getNickname(), socialUser.getNickname()); | ||||
| @@ -123,7 +123,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|     @Test | ||||
|     public void testUnbindOldSocialUser_no() { | ||||
|         // mock 数据 | ||||
|         SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { | ||||
|         SocialUserDO oldSocialUser = randomPojo(SocialUserDO.class, socialUserDO -> { | ||||
|             socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); | ||||
|             socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType()); | ||||
|         }); | ||||
| @@ -146,7 +146,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest { | ||||
|     @Test | ||||
|     public void testUnbindOldSocialUser_yes() { | ||||
|         // mock 数据 | ||||
|         SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { | ||||
|         SocialUserDO oldSocialUser = randomPojo(SocialUserDO.class, socialUserDO -> { | ||||
|             socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); | ||||
|             socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType()); | ||||
|         }); | ||||
|   | ||||
| @@ -4,8 +4,8 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantCreateReq | ||||
| import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantMapper; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; | ||||
| @@ -30,7 +30,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|     private TenantServiceImpl tenantService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysTenantMapper tenantMapper; | ||||
|     private TenantMapper tenantMapper; | ||||
|  | ||||
|     @Test | ||||
|     public void testCreateTenant_success() { | ||||
| @@ -42,14 +42,14 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|         // 断言 | ||||
|         assertNotNull(tenantId); | ||||
|         // 校验记录的属性是否正确 | ||||
|         SysTenantDO tenant = tenantMapper.selectById(tenantId); | ||||
|         TenantDO tenant = tenantMapper.selectById(tenantId); | ||||
|         assertPojoEquals(reqVO, tenant); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testUpdateTenant_success() { | ||||
|         // mock 数据 | ||||
|         SysTenantDO dbTenant = randomPojo(SysTenantDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         TenantDO dbTenant = randomPojo(TenantDO.class, o -> o.setStatus(randomCommonStatus())); | ||||
|         tenantMapper.insert(dbTenant);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
|         TenantUpdateReqVO reqVO = randomPojo(TenantUpdateReqVO.class, o -> { | ||||
| @@ -60,7 +60,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|         // 调用 | ||||
|         tenantService.updateTenant(reqVO); | ||||
|         // 校验是否更新正确 | ||||
|         SysTenantDO tenant = tenantMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         TenantDO tenant = tenantMapper.selectById(reqVO.getId()); // 获取最新的 | ||||
|         assertPojoEquals(reqVO, tenant); | ||||
|     } | ||||
|  | ||||
| @@ -76,7 +76,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteTenant_success() { | ||||
|         // mock 数据 | ||||
|         SysTenantDO dbTenant = randomPojo(SysTenantDO.class, | ||||
|         TenantDO dbTenant = randomPojo(TenantDO.class, | ||||
|                 o -> o.setStatus(randomCommonStatus())); | ||||
|         tenantMapper.insert(dbTenant);// @Sql: 先插入出一条存在的数据 | ||||
|         // 准备参数 | ||||
| @@ -100,7 +100,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetTenantPage() { | ||||
|         // mock 数据 | ||||
|         SysTenantDO dbTenant = randomPojo(SysTenantDO.class, o -> { // 等会查询到 | ||||
|         TenantDO dbTenant = randomPojo(TenantDO.class, o -> { // 等会查询到 | ||||
|             o.setName("芋道源码"); | ||||
|             o.setContactName("芋艿"); | ||||
|             o.setContactMobile("15601691300"); | ||||
| @@ -128,7 +128,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndCreateTime(buildTime(2020, 12, 24)); | ||||
|  | ||||
|         // 调用 | ||||
|         PageResult<SysTenantDO> pageResult = tenantService.getTenantPage(reqVO); | ||||
|         PageResult<TenantDO> pageResult = tenantService.getTenantPage(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, pageResult.getTotal()); | ||||
|         assertEquals(1, pageResult.getList().size()); | ||||
| @@ -138,7 +138,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testGetTenantList() { | ||||
|         // mock 数据 | ||||
|         SysTenantDO dbTenant = randomPojo(SysTenantDO.class, o -> { // 等会查询到 | ||||
|         TenantDO dbTenant = randomPojo(TenantDO.class, o -> { // 等会查询到 | ||||
|             o.setName("芋道源码"); | ||||
|             o.setContactName("芋艿"); | ||||
|             o.setContactMobile("15601691300"); | ||||
| @@ -166,7 +166,7 @@ public class TenantServiceTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndCreateTime(buildTime(2020, 12, 24)); | ||||
|  | ||||
|         // 调用 | ||||
|         List<SysTenantDO> list = tenantService.getTenantList(reqVO); | ||||
|         List<TenantDO> list = tenantService.getTenantList(reqVO); | ||||
|         // 断言 | ||||
|         assertEquals(1, list.size()); | ||||
|         assertPojoEquals(dbTenant, list.get(0)); | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.user; | ||||
| import cn.hutool.core.util.RandomUtil; | ||||
| import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.exception.ServiceException; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||||
| @@ -10,11 +11,11 @@ import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; | ||||
| import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | ||||
| import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; | ||||
| import cn.iocoder.yudao.module.system.enums.common.SexEnum; | ||||
| import cn.iocoder.yudao.module.system.service.dept.DeptService; | ||||
| import cn.iocoder.yudao.module.system.service.dept.PostService; | ||||
| import cn.iocoder.yudao.module.system.service.permission.PermissionService; | ||||
| @@ -68,18 +69,18 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     public void testCreatUser_success() { | ||||
|         // 准备参数 | ||||
|         UserCreateReqVO reqVO = randomPojo(UserCreateReqVO.class, o -> { | ||||
|             o.setSex(RandomUtil.randomEle(SysSexEnum.values()).getSex()); | ||||
|             o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex()); | ||||
|             o.setMobile(randomString()); | ||||
|         }); | ||||
|         // mock deptService 的方法 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setId(reqVO.getDeptId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
|         when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); | ||||
|         // mock postService 的方法 | ||||
|         List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> | ||||
|                 randomPojo(SysPostDO.class, o -> { | ||||
|         List<PostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> | ||||
|                 randomPojo(PostDO.class, o -> { | ||||
|                     o.setId(postId); | ||||
|                     o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|                 })); | ||||
| @@ -99,23 +100,23 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUser_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> { | ||||
|             o.setId(dbUser.getId()); | ||||
|             o.setSex(RandomUtil.randomEle(SysSexEnum.values()).getSex()); | ||||
|             o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex()); | ||||
|             o.setMobile(randomString()); | ||||
|         }); | ||||
|         // mock deptService 的方法 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setId(reqVO.getDeptId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
|         when(deptService.getDept(eq(dept.getId()))).thenReturn(dept); | ||||
|         // mock postService 的方法 | ||||
|         List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> | ||||
|                 randomPojo(SysPostDO.class, o -> { | ||||
|         List<PostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> | ||||
|                 randomPojo(PostDO.class, o -> { | ||||
|                     o.setId(postId); | ||||
|                     o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|                 })); | ||||
| @@ -131,13 +132,13 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUserProfile_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
|         UserProfileUpdateReqVO reqVO = randomPojo(UserProfileUpdateReqVO.class, o -> { | ||||
|             o.setMobile(randomString()); | ||||
|             o.setSex(RandomUtil.randomEle(SysSexEnum.values()).getSex()); | ||||
|             o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex()); | ||||
|         }); | ||||
|  | ||||
|         // 调用 | ||||
| @@ -150,7 +151,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUserPassword_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(o -> o.setPassword("encode:yudao")); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(o -> o.setPassword("encode:yudao")); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
| @@ -173,7 +174,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUserAvatar_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
| @@ -193,7 +194,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUserPassword02_success() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
| @@ -212,7 +213,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testUpdateUserStatus() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
| @@ -228,7 +229,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testDeleteUser_success(){ | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         Long userId = dbUser.getId(); | ||||
| @@ -254,7 +255,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndTime(buildTime(2020, 12, 24)); | ||||
|         reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 | ||||
|         // mock 方法 | ||||
|         List<SysDeptDO> deptList = newArrayList(randomPojo(SysDeptDO.class, o -> o.setId(2L))); | ||||
|         List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); | ||||
|         when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); | ||||
|  | ||||
|         // 调用 | ||||
| @@ -278,7 +279,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         reqVO.setEndTime(buildTime(2020, 12, 24)); | ||||
|         reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 | ||||
|         // mock 方法 | ||||
|         List<SysDeptDO> deptList = newArrayList(randomPojo(SysDeptDO.class, o -> o.setId(2L))); | ||||
|         List<DeptDO> deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); | ||||
|         when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); | ||||
|  | ||||
|         // 调用 | ||||
| @@ -293,7 +294,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|      */ | ||||
|     private AdminUserDO initGetUserPageData() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(o -> { // 等会查询到 | ||||
|         AdminUserDO dbUser = randomAdminUserDO(o -> { // 等会查询到 | ||||
|             o.setUsername("yudaoyuanma"); | ||||
|             o.setMobile("15601691300"); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
| @@ -320,8 +321,10 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testImportUsers_01() { | ||||
|         // 准备参数 | ||||
|         UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class); | ||||
|         // mock 方法 | ||||
|         UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | ||||
|         }); | ||||
|         // mock 方法,模拟失败 | ||||
|         doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validDepts(any()); | ||||
|  | ||||
|         // 调用 | ||||
|         UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); | ||||
| @@ -340,10 +343,10 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|         }); | ||||
|         // mock deptService 的方法 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setId(importUser.getDeptId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -368,16 +371,16 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testImportUsers_03() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setUsername(dbUser.getUsername()); | ||||
|         }); | ||||
|         // mock deptService 的方法 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setId(importUser.getDeptId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -398,16 +401,16 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testImportUsers_04() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO dbUser = randomSysUserDO(); | ||||
|         AdminUserDO dbUser = randomAdminUserDO(); | ||||
|         userMapper.insert(dbUser); | ||||
|         // 准备参数 | ||||
|         UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setUsername(dbUser.getUsername()); | ||||
|         }); | ||||
|         // mock deptService 的方法 | ||||
|         SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { | ||||
|         DeptDO dept = randomPojo(DeptDO.class, o -> { | ||||
|             o.setId(importUser.getDeptId()); | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|         }); | ||||
| @@ -433,7 +436,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         String username = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setUsername(username))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkUsernameUnique(null, username), | ||||
| @@ -446,7 +449,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         Long id = randomLongId(); | ||||
|         String username = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setUsername(username))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setUsername(username))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkUsernameUnique(id, username), | ||||
| @@ -458,7 +461,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         String email = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setEmail(email))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkEmailUnique(null, email), | ||||
| @@ -471,7 +474,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         Long id = randomLongId(); | ||||
|         String email = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setEmail(email))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setEmail(email))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkEmailUnique(id, email), | ||||
| @@ -483,7 +486,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         // 准备参数 | ||||
|         String mobile = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setMobile(mobile))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkMobileUnique(null, mobile), | ||||
| @@ -496,7 +499,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|         Long id = randomLongId(); | ||||
|         String mobile = randomString(); | ||||
|         // mock 数据 | ||||
|         userMapper.insert(randomSysUserDO(o -> o.setMobile(mobile))); | ||||
|         userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile))); | ||||
|  | ||||
|         // 调用,校验异常 | ||||
|         assertServiceException(() -> userService.checkMobileUnique(id, mobile), | ||||
| @@ -512,7 +515,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     @Test | ||||
|     public void testCheckOldPassword_passwordFailed() { | ||||
|         // mock 数据 | ||||
|         AdminUserDO user = randomSysUserDO(); | ||||
|         AdminUserDO user = randomAdminUserDO(); | ||||
|         userMapper.insert(user); | ||||
|         // 准备参数 | ||||
|         Long id = user.getId(); | ||||
| @@ -530,13 +533,13 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
| //        // 准备参数 | ||||
| //        Collection<Long> postIds = asSet(10L, 20L); | ||||
| //        // mock 方法 | ||||
| //        SysUserDO user1 = randomSysUserDO(o -> o.setPostIds(asSet(10L, 30L))); | ||||
| //        AdminUserDO user1 = randomAdminUserDO(o -> o.setPostIds(asSet(10L, 30L))); | ||||
| //        userMapper.insert(user1); | ||||
| //        SysUserDO user2 = randomSysUserDO(o -> o.setPostIds(singleton(100L))); | ||||
| //        AdminUserDO user2 = randomAdminUserDO(o -> o.setPostIds(singleton(100L))); | ||||
| //        userMapper.insert(user2); | ||||
| // | ||||
| //        // 调用 | ||||
| //        List<SysUserDO> result = userService.getUsersByPostIds(postIds); | ||||
| //        List<AdminUserDO> result = userService.getUsersByPostIds(postIds); | ||||
| //        // 断言 | ||||
| //        assertEquals(1, result.size()); | ||||
| //        assertEquals(user1, result.get(0)); | ||||
| @@ -545,10 +548,10 @@ public class UserServiceImplTest extends BaseDbUnitTest { | ||||
|     // ========== 随机对象 ========== | ||||
|  | ||||
|     @SafeVarargs | ||||
|     private static AdminUserDO randomSysUserDO(Consumer<AdminUserDO>... consumers) { | ||||
|     private static AdminUserDO randomAdminUserDO(Consumer<AdminUserDO>... consumers) { | ||||
|         Consumer<AdminUserDO> consumer = (o) -> { | ||||
|             o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||||
|             o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|             o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围 | ||||
|         }; | ||||
|         return randomPojo(AdminUserDO.class, ArrayUtils.append(consumer, consumers)); | ||||
|     } | ||||
|   | ||||
| @@ -0,0 +1,55 @@ | ||||
| spring: | ||||
|   main: | ||||
|     lazy-initialization: true # 开启懒加载,加快速度 | ||||
|     banner-mode: off # 单元测试,禁用 Banner | ||||
|  | ||||
| --- #################### 数据库相关配置 #################### | ||||
|  | ||||
| spring: | ||||
|   # 数据源配置项 | ||||
|   datasource: | ||||
|     name: ruoyi-vue-pro | ||||
|     url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写 | ||||
|     driver-class-name: org.h2.Driver | ||||
|     username: sa | ||||
|     password: | ||||
|     schema: classpath:sql/create_tables.sql # MySQL 转 H2 的语句,使用 https://www.jooq.org/translate/ 工具 | ||||
|     druid: | ||||
|       async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度 | ||||
|       initial-size: 1 # 单元测试,配置为 1,提升启动速度 | ||||
|  | ||||
|   # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 | ||||
|   redis: | ||||
|     host: 127.0.0.1 # 地址 | ||||
|     port: 16379 # 端口(单元测试,使用 16379 端口) | ||||
|     database: 0 # 数据库索引 | ||||
|  | ||||
| mybatis: | ||||
|   lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 | ||||
|  | ||||
| --- #################### 定时任务相关配置 #################### | ||||
|  | ||||
| --- #################### 配置中心相关配置 #################### | ||||
|  | ||||
| --- #################### 服务保障相关配置 #################### | ||||
|  | ||||
| # Lock4j 配置项(单元测试,禁用 Lock4j) | ||||
|  | ||||
| # Resilience4j 配置项 | ||||
|  | ||||
| --- #################### 监控相关配置 #################### | ||||
|  | ||||
| --- #################### 芋道相关配置 #################### | ||||
|  | ||||
| # 芋道配置项,设置当前项目所有自定义的配置 | ||||
| yudao: | ||||
|   info: | ||||
|     base-package: cn.iocoder.yudao.module.member.dal.mysql | ||||
|     member-package: cn.iocoder.yudao.module.member # TODO 芋艿:要清理掉 | ||||
|     system-package: cn.iocoder.yudao.module.system # TODO 芋艿:要清理掉 | ||||
|   core-service: | ||||
|     base-package: cn.iocoder.yudao.module.member.dal.mysql # TODO 芋艿:要清理掉 | ||||
|   captcha: | ||||
|     timeout: 5m | ||||
|     width: 160 | ||||
|     height: 60 | ||||
| @@ -0,0 +1,4 @@ | ||||
| <configuration> | ||||
|     <!-- 引用 Spring Boot 的 logback 基础配置 --> | ||||
|     <include resource="org/springframework/boot/logging/logback/defaults.xml" /> | ||||
| </configuration> | ||||
| @@ -0,0 +1,18 @@ | ||||
| DELETE FROM "system_dept"; | ||||
| DELETE FROM "system_dict_data"; | ||||
| DELETE FROM "system_role"; | ||||
| DELETE FROM "system_role_menu"; | ||||
| DELETE FROM "system_menu"; | ||||
| DELETE FROM "system_user_role"; | ||||
| DELETE FROM "system_dict_type"; | ||||
| DELETE FROM "system_user_session"; | ||||
| DELETE FROM "system_post"; | ||||
| DELETE FROM "system_login_log"; | ||||
| DELETE FROM "system_operate_log"; | ||||
| DELETE FROM "system_user"; | ||||
| DELETE FROM "system_sms_channel"; | ||||
| DELETE FROM "system_sms_template"; | ||||
| DELETE FROM "system_sms_log"; | ||||
| DELETE FROM "system_error_code"; | ||||
| DELETE FROM "system_social_user"; | ||||
| DELETE FROM "system_tenant"; | ||||
| @@ -0,0 +1,405 @@ | ||||
| -- sys 开头的 DB | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_dept" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "name" varchar(30) NOT NULL DEFAULT '', | ||||
|     "parent_id" bigint NOT NULL DEFAULT '0', | ||||
|     "sort" int NOT NULL DEFAULT '0', | ||||
|     "leader_user_id" bigint DEFAULT NULL, | ||||
|     "phone" varchar(11) DEFAULT NULL, | ||||
|     "email" varchar(50) DEFAULT NULL, | ||||
|     "status" tinyint NOT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     "tenant_id" bigint not null default  '0', | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '部门表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_dict_data" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "sort" int NOT NULL DEFAULT '0', | ||||
|     "label" varchar(100) NOT NULL DEFAULT '', | ||||
|     "value" varchar(100) NOT NULL DEFAULT '', | ||||
|     "dict_type" varchar(100) NOT NULL DEFAULT '', | ||||
|     "status" tinyint NOT NULL DEFAULT '0', | ||||
|     "remark" varchar(500) DEFAULT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '字典数据表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_role" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "name" varchar(30) NOT NULL, | ||||
|     "code" varchar(100) NOT NULL, | ||||
|     "sort" int NOT NULL, | ||||
|     "data_scope" tinyint NOT NULL DEFAULT '1', | ||||
|     "data_scope_dept_ids" varchar(500) NOT NULL DEFAULT '', | ||||
|     "status" tinyint NOT NULL, | ||||
|     "type" tinyint NOT NULL, | ||||
|     "remark" varchar(500) DEFAULT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '角色信息表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_role_menu" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "role_id" bigint NOT NULL, | ||||
|     "menu_id" bigint NOT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '角色和菜单关联表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_menu" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "name" varchar(50) NOT NULL, | ||||
|     "permission" varchar(100) NOT NULL DEFAULT '', | ||||
|     "menu_type" tinyint NOT NULL, | ||||
|     "sort" int NOT NULL DEFAULT '0', | ||||
|     "parent_id" bigint NOT NULL DEFAULT '0', | ||||
|     "path" varchar(200) DEFAULT '', | ||||
|     "icon" varchar(100) DEFAULT '#', | ||||
|     "component" varchar(255) DEFAULT NULL, | ||||
|     "status" tinyint NOT NULL DEFAULT '0', | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '菜单权限表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_user_role" ( | ||||
|      "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|      "user_id" bigint NOT NULL, | ||||
|      "role_id" bigint NOT NULL, | ||||
|      "creator" varchar(64) DEFAULT '', | ||||
|      "create_time" timestamp DEFAULT NULL, | ||||
|      "updater" varchar(64) DEFAULT '', | ||||
|      "update_time" timestamp DEFAULT NULL, | ||||
|      "deleted" bit DEFAULT FALSE, | ||||
|      PRIMARY KEY ("id") | ||||
| ) COMMENT '用户和角色关联表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_dict_type" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "name" varchar(100) NOT NULL DEFAULT '', | ||||
|     "type" varchar(100) NOT NULL DEFAULT '', | ||||
|     "status" tinyint NOT NULL DEFAULT '0', | ||||
|     "remark" varchar(500) DEFAULT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '字典类型表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS `system_user_session` ( | ||||
|     `id` varchar(32) NOT NULL, | ||||
|     `user_id` bigint DEFAULT NULL, | ||||
|     "user_type" tinyint NOT NULL, | ||||
|     `username` varchar(50) NOT NULL DEFAULT '', | ||||
|     `user_ip` varchar(50) DEFAULT NULL, | ||||
|     `user_agent` varchar(512) DEFAULT NULL, | ||||
|     `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     `updater` varchar(64) DEFAULT '' , | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     "tenant_id" bigint not null default  '0', | ||||
|     PRIMARY KEY (`id`) | ||||
| ) COMMENT '用户在线 Session'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_post" ( | ||||
|     "id"          bigint      NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "code"        varchar(64) NOT NULL, | ||||
|     "name"        varchar(50) NOT NULL, | ||||
|     "sort"        integer     NOT NULL, | ||||
|     "status"      tinyint     NOT NULL, | ||||
|     "remark"      varchar(500)         DEFAULT NULL, | ||||
|     "creator"     varchar(64)          DEFAULT '', | ||||
|     "create_time" timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater"     varchar(64)          DEFAULT '', | ||||
|     "update_time" timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted"     bit         NOT NULL DEFAULT FALSE, | ||||
|     "tenant_id" bigint not null default  '0', | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '岗位信息表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_notice" ( | ||||
| 	"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
| 	"title" varchar(50) NOT NULL COMMENT '公告标题', | ||||
| 	"content" text NOT NULL COMMENT '公告内容', | ||||
| 	"notice_type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', | ||||
| 	"status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', | ||||
| 	"creator" varchar(64) DEFAULT '' COMMENT '创建者', | ||||
| 	"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||||
| 	"updater" varchar(64) DEFAULT '' COMMENT '更新者', | ||||
| 	"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||||
| 	"deleted" bit NOT NULL DEFAULT 0 COMMENT '是否删除', | ||||
|     "tenant_id" bigint not null default  '0', | ||||
|     PRIMARY KEY("id") | ||||
| ) COMMENT '通知公告表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS `system_login_log` ( | ||||
|     `id`          bigint(20)   NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     `log_type`    bigint(4)    NOT NULL, | ||||
|     "user_id" bigint not null default '0', | ||||
|     "user_type" tinyint NOT NULL, | ||||
|     `trace_id`    varchar(64)  NOT NULL DEFAULT '', | ||||
|     `username`    varchar(50)  NOT NULL DEFAULT '', | ||||
|     `result`      tinyint(4)   NOT NULL, | ||||
|     `user_ip`     varchar(50)  NOT NULL, | ||||
|     `user_agent`  varchar(512) NOT NULL, | ||||
|     `creator`   varchar(64)           DEFAULT '', | ||||
|     `create_time` datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     `updater`   varchar(64)           DEFAULT '', | ||||
|     `update_time` datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||||
|     `deleted`     bit(1)       NOT NULL DEFAULT '0', | ||||
|     PRIMARY KEY (`id`) | ||||
| ) COMMENT ='系统访问记录'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS `system_operate_log` ( | ||||
|     `id`               bigint(20)    NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     `trace_id`         varchar(64)   NOT NULL DEFAULT '', | ||||
|     `user_id`          bigint(20)    NOT NULL, | ||||
|     `module`           varchar(50)   NOT NULL, | ||||
|     `name`             varchar(50)   NOT NULL, | ||||
|     `operate_type`     bigint(4)     NOT NULL DEFAULT '0', | ||||
|     `content`          varchar(2000) NOT NULL DEFAULT '', | ||||
|     `exts`             varchar(512)  NOT NULL DEFAULT '', | ||||
|     `request_method`   varchar(16)            DEFAULT '', | ||||
|     `request_url`      varchar(255)           DEFAULT '', | ||||
|     `user_ip`          varchar(50)            DEFAULT NULL, | ||||
|     `user_agent`       varchar(200)           DEFAULT NULL, | ||||
|     `java_method`      varchar(512)  NOT NULL DEFAULT '', | ||||
|     `java_method_args` varchar(8000)          DEFAULT '', | ||||
|     `start_time`       datetime      NOT NULL, | ||||
|     `duration`         int(11)       NOT NULL, | ||||
|     `result_code`      int(11)       NOT NULL DEFAULT '0', | ||||
|     `result_msg`       varchar(512)           DEFAULT '', | ||||
|     `result_data`      varchar(4000)          DEFAULT '', | ||||
|     `creator`        varchar(64)            DEFAULT '', | ||||
|     `create_time`      datetime      NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     `updater`        varchar(64)            DEFAULT '', | ||||
|     `update_time`      datetime      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||||
|     `deleted`          bit(1)        NOT NULL DEFAULT '0', | ||||
|     "tenant_id"         bigint not null default  '0', | ||||
|     PRIMARY KEY (`id`) | ||||
| ) COMMENT ='操作日志记录'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_user" ( | ||||
|     "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "username" varchar(30) not null, | ||||
|     "password" varchar(100) not null default '', | ||||
|     "nickname" varchar(30) not null, | ||||
|     "remark" varchar(500) default null, | ||||
|     "dept_id" bigint default null, | ||||
|     "post_ids" varchar(255) default null, | ||||
|     "email" varchar(50) default '', | ||||
|     "mobile" varchar(11) default '', | ||||
|     "sex" tinyint default '0', | ||||
|     "avatar" varchar(100) default '', | ||||
|     "status" tinyint not null default '0', | ||||
|     "login_ip" varchar(50) default '', | ||||
|     "login_date" timestamp default null, | ||||
|     "creator" varchar(64) default '', | ||||
|     "create_time" timestamp not null default current_timestamp, | ||||
|     "updater" varchar(64) default '', | ||||
|     "update_time" timestamp not null default current_timestamp, | ||||
|     "deleted" bit not null default false, | ||||
|     "tenant_id" bigint not null default  '0', | ||||
|     primary key ("id") | ||||
| ) comment '用户信息表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "inf_api_access_log" ( | ||||
|   "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||||
|   "trace_id" varchar(64) not null default '', | ||||
|   "user_id" bigint not null default '0', | ||||
|   "user_type" tinyint not null default '0', | ||||
|   "application_name" varchar(50) not null, | ||||
|   "request_method" varchar(16) not null default '', | ||||
|   "request_url" varchar(255) not null default '', | ||||
|   "request_params" varchar(8000) not null default '', | ||||
|   "user_ip" varchar(50) not null, | ||||
|   "user_agent" varchar(512) not null, | ||||
|   "begin_time" timestamp not null, | ||||
|   "end_time" timestamp not null, | ||||
|   "duration" integer not null, | ||||
|   "result_code" integer not null default '0', | ||||
|   "result_msg" varchar(512) default '', | ||||
|   "creator" varchar(64) default '', | ||||
|   "create_time" timestamp not null default current_timestamp, | ||||
|   "updater" varchar(64) default '', | ||||
|   "update_time" timestamp not null default current_timestamp, | ||||
|   "deleted" bit not null default false, | ||||
|   "tenant_id" bigint not null default  '0', | ||||
|   primary key ("id") | ||||
| ) COMMENT 'API 访问日志表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "inf_api_error_log" ( | ||||
|  "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||||
|  "trace_id" varchar(64) not null, | ||||
|  "user_id" bigint not null default '0', | ||||
|  "user_type" tinyint not null default '0', | ||||
|  "application_name" varchar(50) not null, | ||||
|  "request_method" varchar(16) not null, | ||||
|  "request_url" varchar(255) not null, | ||||
|  "request_params" varchar(8000) not null, | ||||
|  "user_ip" varchar(50) not null, | ||||
|  "user_agent" varchar(512) not null, | ||||
|  "exception_time" timestamp not null, | ||||
|  "exception_name" varchar(128) not null default '', | ||||
|  "exception_message" clob not null, | ||||
|  "exception_root_cause_message" clob not null, | ||||
|  "exception_stack_trace" clob not null, | ||||
|  "exception_class_name" varchar(512) not null, | ||||
|  "exception_file_name" varchar(512) not null, | ||||
|  "exception_method_name" varchar(512) not null, | ||||
|  "exception_line_number" integer not null, | ||||
|  "process_status" tinyint not null, | ||||
|  "process_time" timestamp default null, | ||||
|  "process_user_id" bigint default '0', | ||||
|  "creator" varchar(64) default '', | ||||
|  "create_time" timestamp not null default current_timestamp, | ||||
|  "updater" varchar(64) default '', | ||||
|  "update_time" timestamp not null default current_timestamp, | ||||
|  "deleted" bit not null default false, | ||||
|  "tenant_id" bigint not null default  '0', | ||||
|  primary key ("id") | ||||
| ) COMMENT '系统异常日志'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_sms_channel" ( | ||||
|    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|    "signature" varchar(10) NOT NULL, | ||||
|    "code" varchar(63) NOT NULL, | ||||
|    "status" tinyint NOT NULL, | ||||
|    "remark" varchar(255) DEFAULT NULL, | ||||
|    "api_key" varchar(63) NOT NULL, | ||||
|    "api_secret" varchar(63) DEFAULT NULL, | ||||
|    "callback_url" varchar(255) DEFAULT NULL, | ||||
|    "creator" varchar(64) DEFAULT '', | ||||
|    "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "updater" varchar(64) DEFAULT '', | ||||
|    "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|    PRIMARY KEY ("id") | ||||
| ) COMMENT '短信渠道'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_sms_template" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "type" tinyint NOT NULL, | ||||
|     "status" tinyint NOT NULL, | ||||
|     "code" varchar(63) NOT NULL, | ||||
|     "name" varchar(63) NOT NULL, | ||||
|     "content" varchar(255) NOT NULL, | ||||
|     "params" varchar(255) NOT NULL, | ||||
|     "remark" varchar(255) DEFAULT NULL, | ||||
|     "api_template_id" varchar(63) NOT NULL, | ||||
|     "channel_id" bigint NOT NULL, | ||||
|     "channel_code" varchar(63) NOT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '短信模板'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_sms_log" ( | ||||
|    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|    "channel_id" bigint NOT NULL, | ||||
|    "channel_code" varchar(63) NOT NULL, | ||||
|    "template_id" bigint NOT NULL, | ||||
|    "template_code" varchar(63) NOT NULL, | ||||
|    "template_type" tinyint NOT NULL, | ||||
|    "template_content" varchar(255) NOT NULL, | ||||
|    "template_params" varchar(255) NOT NULL, | ||||
|    "api_template_id" varchar(63) NOT NULL, | ||||
|    "mobile" varchar(11) NOT NULL, | ||||
|    "user_id" bigint DEFAULT '0', | ||||
|    "user_type" tinyint DEFAULT '0', | ||||
|    "send_status" tinyint NOT NULL DEFAULT '0', | ||||
|    "send_time" timestamp DEFAULT NULL, | ||||
|    "send_code" int DEFAULT NULL, | ||||
|    "send_msg" varchar(255) DEFAULT NULL, | ||||
|    "api_send_code" varchar(63) DEFAULT NULL, | ||||
|    "api_send_msg" varchar(255) DEFAULT NULL, | ||||
|    "api_request_id" varchar(255) DEFAULT NULL, | ||||
|    "api_serial_no" varchar(255) DEFAULT NULL, | ||||
|    "receive_status" tinyint NOT NULL DEFAULT '0', | ||||
|    "receive_time" timestamp DEFAULT NULL, | ||||
|    "api_receive_code" varchar(63) DEFAULT NULL, | ||||
|    "api_receive_msg" varchar(255) DEFAULT NULL, | ||||
|    "creator" varchar(64) DEFAULT '', | ||||
|    "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "updater" varchar(64) DEFAULT '', | ||||
|    "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|    PRIMARY KEY ("id") | ||||
| ) COMMENT '短信日志'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_error_code" ( | ||||
|   "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|   "type" tinyint NOT NULL DEFAULT '0', | ||||
|   "application_name" varchar(50) NOT NULL, | ||||
|   "code" int NOT NULL DEFAULT '0', | ||||
|   "message" varchar(512) NOT NULL DEFAULT '', | ||||
|   "memo" varchar(512) DEFAULT '', | ||||
|   "creator" varchar(64) DEFAULT '', | ||||
|   "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|   "updater" varchar(64) DEFAULT '', | ||||
|   "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|   "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|   PRIMARY KEY ("id") | ||||
| ) COMMENT '错误码表'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_social_user" ( | ||||
|    "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|    "user_id" bigint NOT NULL, | ||||
|    "user_type" tinyint NOT NULL DEFAULT '0', | ||||
|    "type" tinyint NOT NULL, | ||||
|    "openid" varchar(32) NOT NULL, | ||||
|    "token" varchar(256) DEFAULT NULL, | ||||
|    "union_id" varchar(32) NOT NULL, | ||||
|    "raw_token_info" varchar(1024) NOT NULL, | ||||
|    "nickname" varchar(32) NOT NULL, | ||||
|    "avatar" varchar(255) DEFAULT NULL, | ||||
|    "raw_user_info" varchar(1024) NOT NULL, | ||||
|    "creator" varchar(64) DEFAULT '', | ||||
|    "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "updater" varchar(64) DEFAULT '', | ||||
|    "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|    "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|    PRIMARY KEY ("id") | ||||
| ) COMMENT '社交用户'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "system_tenant" ( | ||||
|     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||
|     "name" varchar(63) NOT NULL, | ||||
|     "contact_name" varchar(255) NOT NULL, | ||||
|     "contact_mobile" varchar(255), | ||||
|     "status" tinyint NOT NULL, | ||||
|     "creator" varchar(64) DEFAULT '', | ||||
|     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "updater" varchar(64) DEFAULT '', | ||||
|     "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY ("id") | ||||
| ) COMMENT '租户'; | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV