securityFrameworkUtilsMock
- = mockStatic(SecurityFrameworkUtils.class)) {
- // 准备参数
- String tableName = "t_user";
- Alias tableAlias = new Alias("u");
- // mock 方法(LoginUser)
- LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L)
- .setUserType(UserTypeEnum.ADMIN.getValue()));
- securityFrameworkUtilsMock.when(SecurityFrameworkUtils::getLoginUser).thenReturn(loginUser);
- // mock 方法(DeptDataPermissionRespDTO)
- DeptDataPermissionRespDTO deptDataPermission = new DeptDataPermissionRespDTO()
- .setDeptIds(CollUtil.newLinkedHashSet(10L, 20L)).setSelf(true);
- when(permissionApi.getDeptDataPermission(same(1L))).thenReturn(deptDataPermission);
- // 添加 user 字段配置
- rule.addUserColumn("t_user", "id");
- // 添加 dept 字段配置
- rule.addDeptColumn("t_user", "dept_id");
-
- // 调用
- Expression expression = rule.getExpression(tableName, tableAlias);
- // 断言
- assertEquals("(u.dept_id IN (10, 20) OR u.id = 1)", expression.toString());
- assertSame(deptDataPermission, loginUser.getContext(DeptDataPermissionRule.CONTEXT_KEY, DeptDataPermissionRespDTO.class));
- }
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-data-permission/src/test/java/com/win/framework/datapermission/core/util/DataPermissionUtilsTest.java b/win-framework/win-spring-boot-starter-biz-data-permission/src/test/java/com/win/framework/datapermission/core/util/DataPermissionUtilsTest.java
deleted file mode 100644
index ce836dbc..00000000
--- a/win-framework/win-spring-boot-starter-biz-data-permission/src/test/java/com/win/framework/datapermission/core/util/DataPermissionUtilsTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.win.framework.datapermission.core.util;
-
-import com.win.framework.datapermission.core.aop.DataPermissionContextHolder;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class DataPermissionUtilsTest {
-
- @Test
- public void testExecuteIgnore() {
- DataPermissionUtils.executeIgnore(() -> assertFalse(DataPermissionContextHolder.get().enable()));
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-dict/src/main/java/com/win/framework/dict/core/util/DictFrameworkUtils.java b/win-framework/win-spring-boot-starter-biz-dict/src/main/java/com/win/framework/dict/core/util/DictFrameworkUtils.java
index 5ad1d722..081692be 100644
--- a/win-framework/win-spring-boot-starter-biz-dict/src/main/java/com/win/framework/dict/core/util/DictFrameworkUtils.java
+++ b/win-framework/win-spring-boot-starter-biz-dict/src/main/java/com/win/framework/dict/core/util/DictFrameworkUtils.java
@@ -15,7 +15,7 @@ import java.time.Duration;
/**
* 字典工具类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Slf4j
public class DictFrameworkUtils {
diff --git a/win-framework/win-spring-boot-starter-biz-dict/src/test/java/com/win/framework/dict/core/util/DictFrameworkUtilsTest.java b/win-framework/win-spring-boot-starter-biz-dict/src/test/java/com/win/framework/dict/core/util/DictFrameworkUtilsTest.java
deleted file mode 100644
index c0d941f5..00000000
--- a/win-framework/win-spring-boot-starter-biz-dict/src/test/java/com/win/framework/dict/core/util/DictFrameworkUtilsTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.win.framework.dict.core.util;
-
-import com.win.framework.common.enums.CommonStatusEnum;
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import com.win.module.system.api.dict.DictDataApi;
-import com.win.module.system.api.dict.dto.DictDataRespDTO;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mock;
-
-import static com.win.framework.test.core.util.RandomUtils.randomPojo;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.when;
-
-/**
- * {@link DictFrameworkUtils} 的单元测试
- */
-public class DictFrameworkUtilsTest extends BaseMockitoUnitTest {
-
- @Mock
- private DictDataApi dictDataApi;
-
- @BeforeEach
- public void setUp() {
- DictFrameworkUtils.init(dictDataApi);
- }
-
- @Test
- public void testGetDictDataLabel() {
- // mock 数据
- DictDataRespDTO dataRespDTO = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
- // mock 方法
- when(dictDataApi.getDictData(dataRespDTO.getDictType(), dataRespDTO.getValue())).thenReturn(dataRespDTO);
- // 断言返回值
- assertEquals(dataRespDTO.getLabel(), DictFrameworkUtils.getDictDataLabel(dataRespDTO.getDictType(), dataRespDTO.getValue()));
- }
-
- @Test
- public void testParseDictDataValue() {
- // mock 数据
- DictDataRespDTO resp = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
- // mock 方法
- when(dictDataApi.parseDictData(resp.getDictType(), resp.getLabel())).thenReturn(resp);
- // 断言返回值
- assertEquals(resp.getValue(), DictFrameworkUtils.parseDictDataValue(resp.getDictType(), resp.getLabel()));
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/config/WinErrorCodeConfiguration.java b/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/config/WinErrorCodeConfiguration.java
index 2e29f619..5b88fc39 100644
--- a/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/config/WinErrorCodeConfiguration.java
+++ b/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/config/WinErrorCodeConfiguration.java
@@ -15,7 +15,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 错误码配置类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@AutoConfiguration
@ConditionalOnProperty(prefix = "win.error-code", value = "enable", matchIfMissing = true) // 允许使用 win.error-code.enable=false 禁用访问日志
diff --git a/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/package-info.java b/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/package-info.java
index 3cbf38ba..3af3679c 100644
--- a/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/package-info.java
+++ b/win-framework/win-spring-boot-starter-biz-error-code/src/main/java/com/win/framework/errorcode/package-info.java
@@ -5,6 +5,6 @@
* 2. 自动更新:管理员在管理后台修数据库中的 ErrorCode 错误码时,项目自动从 system-service 服务加载最新的 ErrorCode 错误码;
* 3. 自动写入:项目启动时,将项目本地的错误码写到 system-server 服务中,方便管理员在管理后台编辑;
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
package com.win.framework.errorcode;
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/Area.java b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/Area.java
index b981541f..505c0149 100644
--- a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/Area.java
+++ b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/Area.java
@@ -12,7 +12,7 @@ import java.util.List;
*
* 数据可见 resources/area.csv 文件
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
@AllArgsConstructor
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/enums/AreaTypeEnum.java b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/enums/AreaTypeEnum.java
index 57c71440..dd2df2ba 100644
--- a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/enums/AreaTypeEnum.java
+++ b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/enums/AreaTypeEnum.java
@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* 区域类型枚举
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@AllArgsConstructor
@Getter
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/utils/AreaUtils.java b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/utils/AreaUtils.java
index b442a6eb..14926a87 100644
--- a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/utils/AreaUtils.java
+++ b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/core/utils/AreaUtils.java
@@ -17,7 +17,7 @@ import java.util.Map;
/**
* 区域工具类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Slf4j
public class AreaUtils {
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/package-info.java b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/package-info.java
index 5a89bd3b..d155e792 100644
--- a/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/package-info.java
+++ b/win-framework/win-spring-boot-starter-biz-ip/src/main/java/com/win/framework/ip/package-info.java
@@ -6,6 +6,6 @@
* 2. 城市功能:查询城市编码对应的城市信息
* 基于 https://github.com/modood/Administrative-divisions-of-China 实现
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
package com.win.framework.ip;
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/AreaUtilsTest.java b/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/AreaUtilsTest.java
deleted file mode 100644
index 03b83300..00000000
--- a/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/AreaUtilsTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.win.framework.ip.core.utils;
-
-
-import com.win.framework.ip.core.Area;
-import com.win.framework.ip.core.enums.AreaTypeEnum;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-/**
- * {@link AreaUtils} 的单元测试
- *
- * @author 芋道源码
- */
-public class AreaUtilsTest {
-
- @Test
- public void testGetArea() {
- // 调用:北京
- Area area = AreaUtils.getArea(110100);
- // 断言
- assertEquals(area.getId(), 110100);
- assertEquals(area.getName(), "北京市");
- assertEquals(area.getType(), AreaTypeEnum.CITY.getType());
- assertEquals(area.getParent().getId(), 110000);
- assertEquals(area.getChildren().size(), 16);
- }
-
- @Test
- public void testFormat() {
- assertEquals(AreaUtils.format(110105), "北京 北京市 朝阳区");
- assertEquals(AreaUtils.format(1), "中国");
- assertEquals(AreaUtils.format(2), "蒙古");
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/IPUtilsTest.java b/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/IPUtilsTest.java
deleted file mode 100644
index b43e030f..00000000
--- a/win-framework/win-spring-boot-starter-biz-ip/src/test/java/com/win/framework/ip/core/utils/IPUtilsTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.win.framework.ip.core.utils;
-
-import com.win.framework.ip.core.Area;
-import org.junit.jupiter.api.Test;
-import org.lionsoul.ip2region.xdb.Searcher;
-
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-/**
- * {@link IPUtils} 的单元测试
- *
- * @author wanglhup
- */
-public class IPUtilsTest {
-
- @Test
- public void testGetAreaId_string() {
- // 120.202.4.0|120.202.4.255|420600
- Integer areaId = IPUtils.getAreaId("120.202.4.50");
- assertEquals(420600, areaId);
- }
-
- @Test
- public void testGetAreaId_long() throws Exception {
- // 120.203.123.0|120.203.133.255|360900
- long ip = Searcher.checkIP("120.203.123.250");
- Integer areaId = IPUtils.getAreaId(ip);
- assertEquals(360900, areaId);
- }
-
- @Test
- public void testGetArea_string() {
- // 120.202.4.0|120.202.4.255|420600
- Area area = IPUtils.getArea("120.202.4.50");
- assertEquals("襄阳市", area.getName());
- }
-
- @Test
- public void testGetArea_long() throws Exception {
- // 120.203.123.0|120.203.133.255|360900
- long ip = Searcher.checkIP("120.203.123.252");
- Area area = IPUtils.getArea(ip);
- assertEquals("宜春市", area.getName());
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/annotations/OperateLog.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/annotations/OperateLog.java
index 79f21c27..de924788 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/annotations/OperateLog.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/annotations/OperateLog.java
@@ -12,7 +12,7 @@ import java.lang.annotation.Target;
/**
* 操作日志注解
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/aop/OperateLogAspect.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/aop/OperateLogAspect.java
index 67d2f238..bf6b8664 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/aop/OperateLogAspect.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/aop/OperateLogAspect.java
@@ -48,7 +48,7 @@ import static com.win.framework.common.exception.enums.GlobalErrorCodeConstants.
*
* 但是,如果声明 @OperateLog 注解时,将 enable 属性设置为 false 时,强制不记录。
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Aspect
@Slf4j
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLog.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLog.java
index 9ae6c500..7c5a9413 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLog.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLog.java
@@ -8,7 +8,7 @@ import java.util.Map;
/**
* 操作日志
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
public class OperateLog {
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkService.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkService.java
index e2db088a..f6f16310 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkService.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkService.java
@@ -3,7 +3,7 @@ package com.win.framework.operatelog.core.service;
/**
* 操作日志 Framework Service 接口
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public interface OperateLogFrameworkService {
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java
index 1005f753..bd523318 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java
@@ -11,7 +11,7 @@ import org.springframework.scheduling.annotation.Async;
*
* 基于 {@link OperateLogApi} 实现,记录操作日志
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@RequiredArgsConstructor
public class OperateLogFrameworkServiceImpl implements OperateLogFrameworkService {
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/util/OperateLogUtils.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/util/OperateLogUtils.java
index 50c5ec13..3042ad11 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/util/OperateLogUtils.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/core/util/OperateLogUtils.java
@@ -6,7 +6,7 @@ import com.win.framework.operatelog.core.aop.OperateLogAspect;
* 操作日志工具类
* 目前主要的作用,是提供给业务代码,记录操作明细和拓展字段
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class OperateLogUtils {
diff --git a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/package-info.java b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/package-info.java
index 8989d9d5..83db0ea5 100644
--- a/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/package-info.java
+++ b/win-framework/win-spring-boot-starter-biz-operatelog/src/main/java/com/win/framework/operatelog/package-info.java
@@ -1,6 +1,6 @@
/**
* 用户操作日志:记录用户的操作,用于对用户的操作的审计与追溯,永久保存。
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
package com.win.framework.operatelog;
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/config/WinSmsAutoConfiguration.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/config/WinSmsAutoConfiguration.java
index bd653f32..eb145975 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/config/WinSmsAutoConfiguration.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/config/WinSmsAutoConfiguration.java
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
/**
* 短信配置类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@AutoConfiguration
public class WinSmsAutoConfiguration {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCodeMapping.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCodeMapping.java
index 589e5f0d..670e91f3 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCodeMapping.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCodeMapping.java
@@ -11,7 +11,7 @@ import java.util.function.Function;
* @see SmsCommonResult
* @see SmsFrameworkErrorCodeConstants
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public interface SmsCodeMapping extends Function {
}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCommonResult.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCommonResult.java
index fc486519..43319d3f 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCommonResult.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/SmsCommonResult.java
@@ -16,7 +16,7 @@ import lombok.ToString;
*
* 另外,一些短信平台(例如说阿里云、腾讯云)会返回一个请求编号,用于排查请求失败的问题,我们设置到 {@link #apiRequestId} 字段
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsReceiveRespDTO.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsReceiveRespDTO.java
index d8b342eb..b7185d09 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsReceiveRespDTO.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsReceiveRespDTO.java
@@ -7,7 +7,7 @@ import java.time.LocalDateTime;
/**
* 消息接收 Response DTO
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
public class SmsReceiveRespDTO {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsSendRespDTO.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsSendRespDTO.java
index bc252497..3a95ce33 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsSendRespDTO.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsSendRespDTO.java
@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 短信发送 Response DTO
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
public class SmsSendRespDTO {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsTemplateRespDTO.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsTemplateRespDTO.java
index eb13b2c9..d43f476a 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsTemplateRespDTO.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/dto/SmsTemplateRespDTO.java
@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 短信模板 Response DTO
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
public class SmsTemplateRespDTO {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java
index 1af9d1d6..4dd5fa6e 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java
@@ -151,7 +151,7 @@ public class AliyunSmsClient extends AbstractSmsClient {
*
* 参见 https://help.aliyun.com/document_detail/101867.html 文档
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
public static class SmsReceiveStatus {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMapping.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMapping.java
index 55e7ba53..1c852430 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMapping.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMapping.java
@@ -10,7 +10,7 @@ import com.win.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
*
* 参见 https://help.aliyun.com/document_detail/101346.htm 文档
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class AliyunSmsCodeMapping implements SmsCodeMapping {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkCodeMapping.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkCodeMapping.java
index 7c558b9f..874c8bd5 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkCodeMapping.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkCodeMapping.java
@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* 钉钉的 SmsCodeMapping 实现类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class DebugDingTalkCodeMapping implements SmsCodeMapping {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClient.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClient.java
index 66123c9a..6a3d949d 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClient.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClient.java
@@ -27,7 +27,7 @@ import java.util.Map;
*
* 考虑到省钱,我们使用钉钉 WebHook 模拟发送短信,方便调试。
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class DebugDingTalkSmsClient extends AbstractSmsClient {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsFrameworkErrorCodeConstants.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsFrameworkErrorCodeConstants.java
index 0fd5e5f6..995862fe 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsFrameworkErrorCodeConstants.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsFrameworkErrorCodeConstants.java
@@ -7,7 +7,7 @@ import com.win.framework.common.exception.ErrorCode;
*
* 短信框架,使用 2-001-000-000 段
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public interface SmsFrameworkErrorCodeConstants {
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java
index f957bd65..84971217 100644
--- a/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java
+++ b/win-framework/win-spring-boot-starter-biz-sms/src/main/java/com/win/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 短信模板的审核状态枚举
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@AllArgsConstructor
@Getter
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientIntegrationTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientIntegrationTest.java
deleted file mode 100644
index 22247b2b..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientIntegrationTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.win.framework.sms.core.client.impl.aliyun;
-
-import com.win.framework.common.core.KeyValue;
-import com.win.framework.sms.core.client.SmsCommonResult;
-import com.win.framework.sms.core.client.dto.SmsSendRespDTO;
-import com.win.framework.sms.core.client.dto.SmsTemplateRespDTO;
-import com.win.framework.sms.core.client.impl.aliyun.AliyunSmsClient;
-import com.win.framework.sms.core.enums.SmsChannelEnum;
-import com.win.framework.sms.core.property.SmsChannelProperties;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * {@link AliyunSmsClient} 的集成测试
- */
-public class AliyunSmsClientIntegrationTest {
-
- private static AliyunSmsClient smsClient;
-
- @BeforeAll
- public static void before() {
- // 创建配置类
- SmsChannelProperties properties = new SmsChannelProperties();
- properties.setId(1L);
- properties.setSignature("Ballcat");
- properties.setCode(SmsChannelEnum.ALIYUN.getCode());
- properties.setApiKey(System.getenv("ALIYUN_ACCESS_KEY"));
- properties.setApiSecret(System.getenv("ALIYUN_SECRET_KEY"));
- // 创建客户端
- smsClient = new AliyunSmsClient(properties);
- smsClient.init();
- }
-
- @Test
- public void testSendSms() {
- List> templateParams = new ArrayList<>();
- templateParams.add(new KeyValue<>("code", "1024"));
-// templateParams.put("operation", "嘿嘿");
-// SmsResult result = smsClient.send(1L, "15601691399", "4372216", templateParams);
- SmsCommonResult result = smsClient.sendSms(1L, "15601691399",
- "SMS_207945135", templateParams);
- System.out.println(result);
- }
-
- @Test
- public void testGetSmsTemplate() {
- String apiTemplateId = "SMS_2079451351";
- SmsCommonResult result = smsClient.getSmsTemplate(apiTemplateId);
- System.out.println(result);
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClientIntegrationTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClientIntegrationTest.java
deleted file mode 100644
index 8af2693e..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test-integration/java/com/win/framework/sms/core/client/impl/debug/DebugDingTalkSmsClientIntegrationTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.win.framework.sms.core.client.impl.debug;
-
-import com.win.framework.common.core.KeyValue;
-import com.win.framework.sms.core.client.SmsCommonResult;
-import com.win.framework.sms.core.client.dto.SmsSendRespDTO;
-import com.win.framework.sms.core.client.impl.debug.DebugDingTalkSmsClient;
-import com.win.framework.sms.core.enums.SmsChannelEnum;
-import com.win.framework.sms.core.property.SmsChannelProperties;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * {@link DebugDingTalkSmsClient} 的集成测试
- */
-public class DebugDingTalkSmsClientIntegrationTest {
-
- private static DebugDingTalkSmsClient smsClient;
-
- @BeforeAll
- public static void init() {
- // 创建配置类
- SmsChannelProperties properties = new SmsChannelProperties();
- properties.setId(1L);
- properties.setSignature("芋道");
- properties.setCode(SmsChannelEnum.DEBUG_DING_TALK.getCode());
- properties.setApiKey("696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859");
- properties.setApiSecret("SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67");
- // 创建客户端
- smsClient = new DebugDingTalkSmsClient(properties);
- smsClient.init();
- }
-
- @Test
- public void testSendSms() {
- List> templateParams = new ArrayList<>();
- templateParams.add(new KeyValue<>("code", "1024"));
- templateParams.add(new KeyValue<>("operation", "嘿嘿"));
-// SmsResult result = smsClient.send(1L, "15601691399", "4372216", templateParams);
- SmsCommonResult result = smsClient.sendSms(1L, "15601691399", "4383920", templateParams);
- System.out.println(result);
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java
deleted file mode 100644
index 7fac50a2..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java
+++ /dev/null
@@ -1,225 +0,0 @@
-package com.win.framework.sms.core.client.impl.aliyun;
-
-import cn.hutool.core.util.ReflectUtil;
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import com.win.framework.common.core.KeyValue;
-import com.win.framework.common.exception.enums.GlobalErrorCodeConstants;
-import com.win.framework.sms.core.client.SmsCommonResult;
-import com.win.framework.sms.core.client.dto.SmsReceiveRespDTO;
-import com.win.framework.sms.core.client.dto.SmsSendRespDTO;
-import com.win.framework.sms.core.client.dto.SmsTemplateRespDTO;
-import com.win.framework.sms.core.enums.SmsTemplateAuditStatusEnum;
-import com.win.framework.sms.core.property.SmsChannelProperties;
-import com.win.framework.common.util.collection.MapUtils;
-import com.win.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
-import com.aliyuncs.AcsRequest;
-import com.aliyuncs.IAcsClient;
-import com.aliyuncs.dysmsapi.model.v20170525.QuerySmsTemplateRequest;
-import com.aliyuncs.dysmsapi.model.v20170525.QuerySmsTemplateResponse;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
-import com.aliyuncs.exceptions.ClientException;
-import com.google.common.collect.Lists;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentMatcher;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.function.Function;
-
-import static com.win.framework.common.util.json.JsonUtils.toJsonString;
-import static com.win.framework.test.core.util.RandomUtils.*;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.when;
-
-/**
- * {@link AliyunSmsClient} 的单元测试
- *
- * @author 芋道源码
- */
-public class AliyunSmsClientTest extends BaseMockitoUnitTest {
-
- private final SmsChannelProperties properties = new SmsChannelProperties()
- .setApiKey(randomString()) // 随机一个 apiKey,避免构建报错
- .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错
- .setSignature("芋道源码");
-
- @InjectMocks
- private final AliyunSmsClient smsClient = new AliyunSmsClient(properties);
-
- @Mock
- private IAcsClient client;
-
- @Test
- public void testDoInit() {
- // 准备参数
- // mock 方法
-
- // 调用
- smsClient.doInit();
- // 断言
- assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "acsClient"));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void testDoSendSms() throws ClientException {
- // 准备参数
- Long sendLogId = randomLongId();
- String mobile = randomString();
- String apiTemplateId = randomString();
- List> templateParams = Lists.newArrayList(
- new KeyValue<>("code", 1234), new KeyValue<>("op", "login"));
- // mock 方法
- SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> o.setCode("OK"));
- when(client.getAcsResponse(argThat((ArgumentMatcher) acsRequest -> {
- assertEquals(mobile, acsRequest.getPhoneNumbers());
- assertEquals(properties.getSignature(), acsRequest.getSignName());
- assertEquals(apiTemplateId, acsRequest.getTemplateCode());
- assertEquals(toJsonString(MapUtils.convertMap(templateParams)), acsRequest.getTemplateParam());
- assertEquals(sendLogId.toString(), acsRequest.getOutId());
- return true;
- }))).thenReturn(response);
-
- // 调用
- SmsCommonResult result = smsClient.doSendSms(sendLogId, mobile,
- apiTemplateId, templateParams);
- // 断言
- assertEquals(response.getCode(), result.getApiCode());
- assertEquals(response.getMessage(), result.getApiMsg());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg());
- assertEquals(response.getRequestId(), result.getApiRequestId());
- // 断言结果
- assertEquals(response.getBizId(), result.getData().getSerialNo());
- }
-
- @Test
- public void testDoTParseSmsReceiveStatus() throws Throwable {
- // 准备参数
- String text = "[\n" +
- " {\n" +
- " \"phone_number\" : \"13900000001\",\n" +
- " \"send_time\" : \"2017-01-01 11:12:13\",\n" +
- " \"report_time\" : \"2017-02-02 22:23:24\",\n" +
- " \"success\" : true,\n" +
- " \"err_code\" : \"DELIVERED\",\n" +
- " \"err_msg\" : \"用户接收成功\",\n" +
- " \"sms_size\" : \"1\",\n" +
- " \"biz_id\" : \"12345\",\n" +
- " \"out_id\" : \"67890\"\n" +
- " }\n" +
- "]";
- // mock 方法
-
- // 调用
- List statuses = smsClient.doParseSmsReceiveStatus(text);
- // 断言
- assertEquals(1, statuses.size());
- assertTrue(statuses.get(0).getSuccess());
- assertEquals("DELIVERED", statuses.get(0).getErrorCode());
- assertEquals("用户接收成功", statuses.get(0).getErrorMsg());
- assertEquals("13900000001", statuses.get(0).getMobile());
- assertEquals(LocalDateTime.of(2017, 2, 2, 22, 23, 24), statuses.get(0).getReceiveTime());
- assertEquals("12345", statuses.get(0).getSerialNo());
- assertEquals(67890L, statuses.get(0).getLogId());
- }
-
- @Test
- public void testDoGetSmsTemplate() throws ClientException {
- // 准备参数
- String apiTemplateId = randomString();
- // mock 方法
- QuerySmsTemplateResponse response = randomPojo(QuerySmsTemplateResponse.class, o -> {
- o.setCode("OK");
- o.setTemplateStatus(1); // 设置模板通过
- });
- when(client.getAcsResponse(argThat((ArgumentMatcher) acsRequest -> {
- assertEquals(apiTemplateId, acsRequest.getTemplateCode());
- return true;
- }))).thenReturn(response);
-
- // 调用
- SmsCommonResult result = smsClient.doGetSmsTemplate(apiTemplateId);
- // 断言
- assertEquals(response.getCode(), result.getApiCode());
- assertEquals(response.getMessage(), result.getApiMsg());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg());
- assertEquals(response.getRequestId(), result.getApiRequestId());
- // 断言结果
- assertEquals(response.getTemplateCode(), result.getData().getId());
- assertEquals(response.getTemplateContent(), result.getData().getContent());
- assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), result.getData().getAuditStatus());
- assertEquals(response.getReason(), result.getData().getAuditReason());
- }
-
- @Test
- public void testConvertSmsTemplateAuditStatus() {
- assertEquals(SmsTemplateAuditStatusEnum.CHECKING.getStatus(),
- smsClient.convertSmsTemplateAuditStatus(0));
- assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(),
- smsClient.convertSmsTemplateAuditStatus(1));
- assertEquals(SmsTemplateAuditStatusEnum.FAIL.getStatus(),
- smsClient.convertSmsTemplateAuditStatus(2));
- assertThrows(IllegalArgumentException.class, () -> smsClient.convertSmsTemplateAuditStatus(3),
- "未知审核状态(3)");
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void testInvoke_throwable() throws ClientException {
- // 准备参数
- QuerySmsTemplateRequest request = new QuerySmsTemplateRequest();
- // mock 方法
- ClientException ex = new ClientException("isv.INVALID_PARAMETERS", "参数不正确", randomString());
- when(client.getAcsResponse(any(AcsRequest.class))).thenThrow(ex);
-
- // 调用,并断言异常
- SmsCommonResult> result = smsClient.invoke(request, null);
- // 断言
- assertEquals(ex.getErrCode(), result.getApiCode());
- assertEquals(ex.getErrMsg(), result.getApiMsg());
- Assertions.assertEquals(SmsFrameworkErrorCodeConstants.SMS_API_PARAM_ERROR.getCode(), result.getCode());
- Assertions.assertEquals(SmsFrameworkErrorCodeConstants.SMS_API_PARAM_ERROR.getMsg(), result.getMsg());
- assertEquals(ex.getRequestId(), result.getApiRequestId());
- }
-
- @Test
- public void testInvoke_success() throws ClientException {
- // 准备参数
- QuerySmsTemplateRequest request = new QuerySmsTemplateRequest();
- Function responseConsumer = response -> {
- SmsTemplateRespDTO data = new SmsTemplateRespDTO();
- data.setId(response.getTemplateCode()).setContent(response.getTemplateContent());
- data.setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus()).setAuditReason(response.getReason());
- return data;
- };
- // mock 方法
- QuerySmsTemplateResponse response = randomPojo(QuerySmsTemplateResponse.class, o -> {
- o.setCode("OK");
- o.setTemplateStatus(1); // 设置模板通过
- });
- when(client.getAcsResponse(any(AcsRequest.class))).thenReturn(response);
-
- // 调用
- SmsCommonResult result = smsClient.invoke(request, responseConsumer);
- // 断言
- assertEquals(response.getCode(), result.getApiCode());
- assertEquals(response.getMessage(), result.getApiMsg());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg());
- assertEquals(response.getRequestId(), result.getApiRequestId());
- // 断言结果
- assertEquals(response.getTemplateCode(), result.getData().getId());
- assertEquals(response.getTemplateContent(), result.getData().getContent());
- assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), result.getData().getAuditStatus());
- assertEquals(response.getReason(), result.getData().getAuditReason());
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java
deleted file mode 100644
index b410ee05..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.win.framework.sms.core.client.impl.aliyun;
-
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import com.win.framework.common.exception.enums.GlobalErrorCodeConstants;
-import com.win.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-/**
- * {@link AliyunSmsCodeMapping} 的单元测试
- *
- * @author 芋道源码
- */
-public class AliyunSmsCodeMappingTest extends BaseMockitoUnitTest {
-
- @InjectMocks
- private AliyunSmsCodeMapping codeMapping;
-
- @Test
- public void testApply() {
- assertEquals(GlobalErrorCodeConstants.SUCCESS, codeMapping.apply("OK"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_INVALID, codeMapping.apply("MissingAccessKeyId"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_INVALID, codeMapping.apply("isv.ACCOUNT_NOT_EXISTS"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_INVALID, codeMapping.apply("isv.ACCOUNT_ABNORMAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_DAY_LIMIT_CONTROL, codeMapping.apply("isv.DAY_LIMIT_CONTROL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_CONTENT_INVALID, codeMapping.apply("isv.SMS_CONTENT_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SIGN_INVALID, codeMapping.apply("isv.SMS_SIGN_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SIGN_INVALID, codeMapping.apply("isv.SIGN_NAME_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_PERMISSION_DENY, codeMapping.apply("isp.RAM_PERMISSION_DENY"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_MONEY_NOT_ENOUGH, codeMapping.apply("isv.OUT_OF_SERVICE"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_MONEY_NOT_ENOUGH, codeMapping.apply("isv.AMOUNT_NOT_ENOUGH"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_INVALID, codeMapping.apply("isv.SMS_TEMPLATE_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SIGN_INVALID, codeMapping.apply("isv.SMS_SIGNATURE_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_API_PARAM_ERROR, codeMapping.apply("isv.INVALID_PARAMETERS"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_API_PARAM_ERROR, codeMapping.apply("isv.INVALID_JSON_PARAM"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_MOBILE_INVALID, codeMapping.apply("isv.MOBILE_NUMBER_ILLEGAL"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_PARAM_ERROR, codeMapping.apply("isv.TEMPLATE_MISSING_PARAMETERS"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_BUSINESS_LIMIT_CONTROL, codeMapping.apply("isv.BUSINESS_LIMIT_CONTROL"));
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsClientTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsClientTest.java
deleted file mode 100644
index 2713cd88..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsClientTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-package com.win.framework.sms.core.client.impl.tencent;
-
-import cn.hutool.core.util.ReflectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.win.framework.common.core.KeyValue;
-import com.win.framework.common.exception.enums.GlobalErrorCodeConstants;
-import com.win.framework.common.util.collection.ArrayUtils;
-import com.win.framework.common.util.collection.MapUtils;
-import com.win.framework.common.util.json.JsonUtils;
-import com.win.framework.sms.core.client.SmsCommonResult;
-import com.win.framework.sms.core.client.dto.SmsReceiveRespDTO;
-import com.win.framework.sms.core.client.dto.SmsSendRespDTO;
-import com.win.framework.sms.core.client.dto.SmsTemplateRespDTO;
-import com.win.framework.sms.core.enums.SmsTemplateAuditStatusEnum;
-import com.win.framework.sms.core.property.SmsChannelProperties;
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import com.google.common.collect.Lists;
-import com.tencentcloudapi.sms.v20210111.SmsClient;
-import com.tencentcloudapi.sms.v20210111.models.DescribeSmsTemplateListResponse;
-import com.tencentcloudapi.sms.v20210111.models.DescribeTemplateListStatus;
-import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
-import com.tencentcloudapi.sms.v20210111.models.SendStatus;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.win.framework.common.util.json.JsonUtils.toJsonString;
-import static com.win.framework.test.core.util.RandomUtils.*;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.when;
-
-/**
- * {@link TencentSmsClient} 的单元测试
- *
- * @author shiwp
- */
-public class TencentSmsClientTest extends BaseMockitoUnitTest {
-
- private final SmsChannelProperties properties = new SmsChannelProperties()
- .setApiKey(randomString() + " " + randomString()) // 随机一个 apiKey,避免构建报错
- .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错
- .setSignature("芋道源码");
-
- @InjectMocks
- private TencentSmsClient smsClient = new TencentSmsClient(properties);
-
- @Mock
- private SmsClient client;
-
- @Test
- public void testDoInit() {
- // 准备参数
- // mock 方法
-
- // 调用
- smsClient.doInit();
- // 断言
- assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "client"));
- }
-
- @Test
- public void testRefresh() {
- // 准备参数
- SmsChannelProperties p = new SmsChannelProperties()
- .setApiKey(randomString() + " " + randomString()) // 随机一个 apiKey,避免构建报错
- .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错
- .setSignature("芋道源码");
- // 调用
- smsClient.refresh(p);
- // 断言
- assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "client"));
- }
-
- @Test
- public void testDoSendSms() throws Throwable {
- // 准备参数
- Long sendLogId = randomLongId();
- String mobile = randomString();
- String apiTemplateId = randomString();
- List> templateParams = Lists.newArrayList(
- new KeyValue<>("1", 1234), new KeyValue<>("2", "login"));
- String requestId = randomString();
- String serialNo = randomString();
- // mock 方法
- SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> {
- o.setRequestId(requestId);
- SendStatus[] sendStatuses = new SendStatus[1];
- o.setSendStatusSet(sendStatuses);
- SendStatus sendStatus = new SendStatus();
- sendStatuses[0] = sendStatus;
- sendStatus.setCode(TencentSmsClient.API_SUCCESS_CODE);
- sendStatus.setMessage("send success");
- sendStatus.setSerialNo(serialNo);
- });
- when(client.SendSms(argThat(request -> {
- assertEquals(mobile, request.getPhoneNumberSet()[0]);
- assertEquals(properties.getSignature(), request.getSignName());
- assertEquals(apiTemplateId, request.getTemplateId());
- assertEquals(toJsonString(ArrayUtils.toArray(new ArrayList<>(MapUtils.convertMap(templateParams).values()), String::valueOf)),
- toJsonString(request.getTemplateParamSet()));
- assertEquals(sendLogId, ReflectUtil.getFieldValue(JsonUtils.parseObject(request.getSessionContext(), TencentSmsClient.SessionContext.class), "logId"));
- return true;
- }))).thenReturn(response);
-
- // 调用
- SmsCommonResult result = smsClient.doSendSms(sendLogId, mobile,
- apiTemplateId, templateParams);
- // 断言
- assertEquals(response.getSendStatusSet()[0].getCode(), result.getApiCode());
- assertEquals(response.getSendStatusSet()[0].getMessage(), result.getApiMsg());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg());
- assertEquals(response.getRequestId(), result.getApiRequestId());
- // 断言结果
- assertEquals(response.getSendStatusSet()[0].getSerialNo(), result.getData().getSerialNo());
- }
-
- @Test
- public void testDoTParseSmsReceiveStatus() throws Throwable {
- // 准备参数
- String text = "[\n" +
- " {\n" +
- " \"user_receive_time\": \"2015-10-17 08:03:04\",\n" +
- " \"nationcode\": \"86\",\n" +
- " \"mobile\": \"13900000001\",\n" +
- " \"report_status\": \"SUCCESS\",\n" +
- " \"errmsg\": \"DELIVRD\",\n" +
- " \"description\": \"用户短信送达成功\",\n" +
- " \"sid\": \"12345\",\n" +
- " \"ext\": {\"logId\":\"67890\"}\n" +
- " }\n" +
- "]";
- // mock 方法
-
- // 调用
- List statuses = smsClient.doParseSmsReceiveStatus(text);
- // 断言
- assertEquals(1, statuses.size());
- assertTrue(statuses.get(0).getSuccess());
- assertEquals("DELIVRD", statuses.get(0).getErrorCode());
- assertEquals("用户短信送达成功", statuses.get(0).getErrorMsg());
- assertEquals("13900000001", statuses.get(0).getMobile());
- assertEquals(LocalDateTime.of(2015, 10, 17, 8, 3, 4), statuses.get(0).getReceiveTime());
- assertEquals("12345", statuses.get(0).getSerialNo());
- assertEquals(67890L, statuses.get(0).getLogId());
- }
-
- @Test
- public void testDoGetSmsTemplate() throws Throwable {
- // 准备参数
- Long apiTemplateId = randomLongId();
- String requestId = randomString();
-
- // mock 方法
- DescribeSmsTemplateListResponse response = randomPojo(DescribeSmsTemplateListResponse.class, o -> {
- DescribeTemplateListStatus[] describeTemplateListStatuses = new DescribeTemplateListStatus[1];
- DescribeTemplateListStatus templateStatus = new DescribeTemplateListStatus();
- templateStatus.setTemplateId(apiTemplateId);
- templateStatus.setStatusCode(0L);// 设置模板通过
- describeTemplateListStatuses[0] = templateStatus;
- o.setDescribeTemplateStatusSet(describeTemplateListStatuses);
- o.setRequestId(requestId);
- });
- when(client.DescribeSmsTemplateList(argThat(request -> {
- assertEquals(apiTemplateId, request.getTemplateIdSet()[0]);
- return true;
- }))).thenReturn(response);
-
- // 调用
- SmsCommonResult result = smsClient.doGetSmsTemplate(apiTemplateId.toString());
- // 断言
- assertEquals(TencentSmsClient.API_SUCCESS_CODE, result.getApiCode());
- assertNull(result.getApiMsg());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode());
- assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg());
- assertEquals(response.getRequestId(), result.getApiRequestId());
- // 断言结果
- assertEquals(response.getDescribeTemplateStatusSet()[0].getTemplateId().toString(), result.getData().getId());
- assertEquals(response.getDescribeTemplateStatusSet()[0].getTemplateContent(), result.getData().getContent());
- assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), result.getData().getAuditStatus());
- assertEquals(response.getDescribeTemplateStatusSet()[0].getReviewReply(), result.getData().getAuditReason());
- }
-
- @Test
- public void testConvertSuccessTemplateStatus() {
- testTemplateStatus(SmsTemplateAuditStatusEnum.SUCCESS, 0L);
- }
-
- @Test
- public void testConvertCheckingTemplateStatus() {
- testTemplateStatus(SmsTemplateAuditStatusEnum.CHECKING, 1L);
- }
-
- @Test
- public void testConvertFailTemplateStatus() {
- testTemplateStatus(SmsTemplateAuditStatusEnum.FAIL, -1L);
- }
-
- @Test
- public void testConvertUnknownTemplateStatus() {
- DescribeTemplateListStatus templateStatus = new DescribeTemplateListStatus();
- templateStatus.setStatusCode(3L);
- Long templateId = randomLongId();
- // 调用,并断言结果
- assertThrows(IllegalStateException.class, () -> smsClient.convertTemplateStatusDTO(templateStatus),
- StrUtil.format("不能解析短信模版审核状态[3],模版id[{}]", templateId));
- }
-
- private void testTemplateStatus(SmsTemplateAuditStatusEnum expected, Long value) {
- DescribeTemplateListStatus templateStatus = new DescribeTemplateListStatus();
- templateStatus.setStatusCode(value);
- SmsTemplateRespDTO result = smsClient.convertTemplateStatusDTO(templateStatus);
- assertEquals(expected.getStatus(), result.getAuditStatus());
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsCodeMappingTest.java b/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsCodeMappingTest.java
deleted file mode 100644
index 0a2967f5..00000000
--- a/win-framework/win-spring-boot-starter-biz-sms/src/test/java/com/win/framework/sms/core/client/impl/tencent/TencentSmsCodeMappingTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.win.framework.sms.core.client.impl.tencent;
-
-import com.win.framework.common.exception.enums.GlobalErrorCodeConstants;
-import com.win.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-/**
- * {@link TencentSmsCodeMapping} 的单元测试
- *
- * @author : shiwp
- */
-public class TencentSmsCodeMappingTest extends BaseMockitoUnitTest {
-
- @InjectMocks
- private TencentSmsCodeMapping codeMapping;
-
- @Test
- public void testApply() {
- assertEquals(GlobalErrorCodeConstants.SUCCESS, codeMapping.apply(TencentSmsClient.API_SUCCESS_CODE));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_CONTENT_INVALID, codeMapping.apply("FailedOperation.ContainSensitiveWord"));
- assertEquals(GlobalErrorCodeConstants.BAD_REQUEST, codeMapping.apply("FailedOperation.JsonParseFail"));
- assertEquals(GlobalErrorCodeConstants.BAD_REQUEST, codeMapping.apply("MissingParameter.EmptyPhoneNumberSet"));
- assertEquals(GlobalErrorCodeConstants.BAD_REQUEST, codeMapping.apply("LimitExceeded.PhoneNumberCountLimit"));
- assertEquals(GlobalErrorCodeConstants.BAD_REQUEST, codeMapping.apply("FailedOperation.FailResolvePacket"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_MONEY_NOT_ENOUGH, codeMapping.apply("FailedOperation.InsufficientBalanceInSmsPackage"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_MARKET_LIMIT_CONTROL, codeMapping.apply("FailedOperation.MarketingSendTimeConstraint"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_MOBILE_BLACK, codeMapping.apply("FailedOperation.PhoneNumberInBlacklist"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SIGN_INVALID, codeMapping.apply("FailedOperation.SignatureIncorrectOrUnapproved"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_INVALID, codeMapping.apply("FailedOperation.MissingTemplateToModify"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_INVALID, codeMapping.apply("FailedOperation.TemplateIncorrectOrUnapproved"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_MOBILE_INVALID, codeMapping.apply("InvalidParameterValue.IncorrectPhoneNumber"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_APP_ID_INVALID, codeMapping.apply("InvalidParameterValue.SdkAppIdNotExist"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_PARAM_ERROR, codeMapping.apply("InvalidParameterValue.TemplateParameterLengthLimit"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_TEMPLATE_PARAM_ERROR, codeMapping.apply("InvalidParameterValue.TemplateParameterFormatError"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_DAY_LIMIT_CONTROL, codeMapping.apply("LimitExceeded.PhoneNumberDailyLimit"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_BUSINESS_LIMIT_CONTROL, codeMapping.apply("LimitExceeded.PhoneNumberThirtySecondLimit"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_SEND_BUSINESS_LIMIT_CONTROL, codeMapping.apply("LimitExceeded.PhoneNumberOneHourLimit"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_PERMISSION_DENY, codeMapping.apply("UnauthorizedOperation.RequestPermissionDeny"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_PERMISSION_DENY, codeMapping.apply("FailedOperation.ForbidAddMarketingTemplates"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_PERMISSION_DENY, codeMapping.apply("FailedOperation.NotEnterpriseCertification"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_PERMISSION_DENY, codeMapping.apply("UnauthorizedOperation.IndividualUserMarketingSmsPermissionDeny"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_IP_DENY, codeMapping.apply("UnauthorizedOperation.RequestIpNotInWhitelist"));
- assertEquals(SmsFrameworkErrorCodeConstants.SMS_ACCOUNT_INVALID, codeMapping.apply("AuthFailure.SecretIdNotFound"));
- }
-
-}
\ No newline at end of file
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/config/TenantProperties.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/config/TenantProperties.java
index 7817cd49..04b21395 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/config/TenantProperties.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/config/TenantProperties.java
@@ -9,7 +9,7 @@ import java.util.Set;
/**
* 多租户配置
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@ConfigurationProperties(prefix = "win.tenant")
@Data
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnore.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnore.java
index 1eb125a3..b8f8a0dc 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnore.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnore.java
@@ -9,7 +9,7 @@ import java.lang.annotation.*;
* 1、Redis 场景:因为是基于 Key 实现多租户的能力,所以忽略没有意义,不像 DB 是一个 column 实现的
* 2、MQ 场景:有点难以抉择,目前可以通过 Consumer 手动在消费的方法上,添加 @TenantIgnore 进行忽略
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnoreAspect.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnoreAspect.java
index 702ddfa8..abda3625 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnoreAspect.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/aop/TenantIgnoreAspect.java
@@ -14,7 +14,7 @@ import org.aspectj.lang.annotation.Aspect;
*
* 整体逻辑的实现,和 {@link TenantUtils#executeIgnore(Runnable)} 需要保持一致
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Aspect
@Slf4j
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/context/TenantContextHolder.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/context/TenantContextHolder.java
index f16655ee..9814f8a7 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/context/TenantContextHolder.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/context/TenantContextHolder.java
@@ -6,7 +6,7 @@ import com.alibaba.ttl.TransmittableThreadLocal;
/**
* 多租户上下文 Holder
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class TenantContextHolder {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantBaseDO.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantBaseDO.java
index cd4119dc..5968e3d1 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantBaseDO.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantBaseDO.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 拓展多租户的 BaseDO 基类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantDatabaseInterceptor.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantDatabaseInterceptor.java
index d19ac376..e893ae2b 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantDatabaseInterceptor.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/db/TenantDatabaseInterceptor.java
@@ -13,7 +13,7 @@ import java.util.Set;
/**
* 基于 MyBatis Plus 多租户的功能,实现 DB 层面的多租户的功能
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class TenantDatabaseInterceptor implements TenantLineHandler {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/job/TenantJobAspect.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/job/TenantJobAspect.java
index bf9a0b65..17ce4f15 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/job/TenantJobAspect.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/job/TenantJobAspect.java
@@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap;
*
* 注意,需要保证 JobHandler 的幂等性。因为 Job 因为某个租户执行失败重试时,之前执行成功的租户也会再次执行。
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Aspect
@RequiredArgsConstructor
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/mq/TenantRedisMessageInterceptor.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/mq/TenantRedisMessageInterceptor.java
index 0c4615fc..561030e0 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/mq/TenantRedisMessageInterceptor.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/mq/TenantRedisMessageInterceptor.java
@@ -13,7 +13,7 @@ import static com.win.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID
* 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中
* 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class TenantRedisMessageInterceptor implements RedisMessageInterceptor {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/security/TenantSecurityWebFilter.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/security/TenantSecurityWebFilter.java
index 36569eb4..f31135fd 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/security/TenantSecurityWebFilter.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/security/TenantSecurityWebFilter.java
@@ -28,7 +28,7 @@ import java.util.Objects;
* 2. 如果请求未带租户的编号,检查是否是忽略的 URL,否则也不允许访问。
* 3. 校验租户是合法,例如说被禁用、到期
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Slf4j
public class TenantSecurityWebFilter extends ApiRequestFilter {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkService.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkService.java
index 5a5751d5..df605efa 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkService.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkService.java
@@ -5,7 +5,7 @@ import java.util.List;
/**
* Tenant 框架 Service 接口,定义获取租户信息
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public interface TenantFrameworkService {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkServiceImpl.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkServiceImpl.java
index 1b526fe2..f8d91316 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkServiceImpl.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/service/TenantFrameworkServiceImpl.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* Tenant 框架 Service 实现类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@RequiredArgsConstructor
public class TenantFrameworkServiceImpl implements TenantFrameworkService {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/util/TenantUtils.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/util/TenantUtils.java
index 4516e278..232781a3 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/util/TenantUtils.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/util/TenantUtils.java
@@ -10,7 +10,7 @@ import static com.win.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID
/**
* 多租户 Util
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class TenantUtils {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/web/TenantContextWebFilter.java b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/web/TenantContextWebFilter.java
index 465bb005..a2d7b4c2 100644
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/web/TenantContextWebFilter.java
+++ b/win-framework/win-spring-boot-starter-biz-tenant/src/main/java/com/win/framework/tenant/core/web/TenantContextWebFilter.java
@@ -14,7 +14,7 @@ import java.io.IOException;
* 多租户 Context Web 过滤器
* 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public class TenantContextWebFilter extends OncePerRequestFilter {
diff --git a/win-framework/win-spring-boot-starter-biz-tenant/src/test/java/com/win/framework/tenant/core/job/TestJob.java b/win-framework/win-spring-boot-starter-biz-tenant/src/test/java/com/win/framework/tenant/core/job/TestJob.java
deleted file mode 100644
index fd8492c5..00000000
--- a/win-framework/win-spring-boot-starter-biz-tenant/src/test/java/com/win/framework/tenant/core/job/TestJob.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.win.framework.tenant.core.job;
-
-import cn.hutool.core.collection.CollUtil;
-import com.win.framework.quartz.core.handler.JobHandler;
-import com.win.framework.tenant.core.context.TenantContextHolder;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-@Component
-public class TestJob implements JobHandler {
-
- private final List tenantIds = new CopyOnWriteArrayList<>();
-
- @Override
- @TenantJob // 标记多租户
- public String execute(String param) throws Exception {
- tenantIds.add(TenantContextHolder.getTenantId());
- return "success";
- }
-
- public List getTenantIds() {
- CollUtil.sort(tenantIds, Long::compareTo);
- return tenantIds;
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/java/com/win/framework/weixin/WxMpServiceTest.java b/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/java/com/win/framework/weixin/WxMpServiceTest.java
deleted file mode 100644
index a9cf00f8..00000000
--- a/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/java/com/win/framework/weixin/WxMpServiceTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.win.framework.weixin;
-
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.mp.api.WxMpService;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import javax.annotation.Resource;
-
-@SpringBootTest(classes = WxMpServiceTest.Application.class)
-public class WxMpServiceTest {
-
- @Resource
- private WxMpService wxMpService;
-
- @Test
- public void testGetAccessToken() throws WxErrorException {
- String accessToken = wxMpService.getAccessToken();
- System.out.println(accessToken);
- }
-
- @Test
- public void testGet() throws WxErrorException {
- String jsapiTicket = wxMpService.getJsapiTicket();
- System.out.println(jsapiTicket);
- }
-
- @SpringBootApplication
- public static class Application {
-
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/resources/application.yml b/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/resources/application.yml
deleted file mode 100644
index 9b30060a..00000000
--- a/win-framework/win-spring-boot-starter-biz-weixin/src/test-integration/resources/application.yml
+++ /dev/null
@@ -1,11 +0,0 @@
---- #################### 微信公众号相关配置 ####################
-wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档
- mp:
- # 公众号配置(必填)
- app-id: wx041349c6f39b268b
- secret: 5abee519483bc9f8cb37ce280e814bd0
- # 存储配置,解决 AccessToken 的跨节点的共享
-# config-storage:
-# type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取
-# key-prefix: wx # Redis Key 的前缀 TODO 芋艿:解决下 Redis key 管理的配置
-# http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台
diff --git a/win-framework/win-spring-boot-starter-captcha/src/main/java/com/win/framework/captcha/core/enums/CaptchaRedisKeyConstants.java b/win-framework/win-spring-boot-starter-captcha/src/main/java/com/win/framework/captcha/core/enums/CaptchaRedisKeyConstants.java
index 55dbf802..5577db76 100644
--- a/win-framework/win-spring-boot-starter-captcha/src/main/java/com/win/framework/captcha/core/enums/CaptchaRedisKeyConstants.java
+++ b/win-framework/win-spring-boot-starter-captcha/src/main/java/com/win/framework/captcha/core/enums/CaptchaRedisKeyConstants.java
@@ -3,7 +3,7 @@ package com.win.framework.captcha.core.enums;
/**
* 验证码 Redis Key 枚举类
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
public interface CaptchaRedisKeyConstants {
diff --git a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/DesensitizeTest.java b/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/DesensitizeTest.java
deleted file mode 100644
index 496b4945..00000000
--- a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/DesensitizeTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.win.framework.desensitize.core;
-
-import com.win.framework.common.util.json.JsonUtils;
-import com.win.framework.desensitize.core.regex.annotation.EmailDesensitize;
-import com.win.framework.desensitize.core.regex.annotation.RegexDesensitize;
-import com.win.framework.desensitize.core.annotation.Address;
-import com.win.framework.desensitize.core.slider.annotation.BankCardDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.CarLicenseDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.ChineseNameDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.FixedPhoneDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.IdCardDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.PasswordDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.MobileDesensitize;
-import com.win.framework.desensitize.core.slider.annotation.SliderDesensitize;
-import com.win.framework.test.core.ut.BaseMockitoUnitTest;
-import lombok.Data;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * {@link DesensitizeTest} 的单元测试
- */
-public class DesensitizeTest extends BaseMockitoUnitTest {
-
- @Test
- public void test() {
- // 准备参数
- DesensitizeDemo desensitizeDemo = new DesensitizeDemo();
- desensitizeDemo.setNickname("芋道源码");
- desensitizeDemo.setBankCard("9988002866797031");
- desensitizeDemo.setCarLicense("粤A66666");
- desensitizeDemo.setFixedPhone("01086551122");
- desensitizeDemo.setIdCard("530321199204074611");
- desensitizeDemo.setPassword("123456");
- desensitizeDemo.setPhoneNumber("13248765917");
- desensitizeDemo.setSlider1("ABCDEFG");
- desensitizeDemo.setSlider2("ABCDEFG");
- desensitizeDemo.setSlider3("ABCDEFG");
- desensitizeDemo.setEmail("1@email.com");
- desensitizeDemo.setRegex("你好,我是芋道源码");
- desensitizeDemo.setAddress("北京市海淀区上地十街10号");
- desensitizeDemo.setOrigin("芋道源码");
-
- // 调用
- DesensitizeDemo d = JsonUtils.parseObject(JsonUtils.toJsonString(desensitizeDemo), DesensitizeDemo.class);
- // 断言
- assertNotNull(d);
- assertEquals("芋***", d.getNickname());
- assertEquals("998800********31", d.getBankCard());
- assertEquals("粤A6***6", d.getCarLicense());
- assertEquals("0108*****22", d.getFixedPhone());
- assertEquals("530321**********11", d.getIdCard());
- assertEquals("******", d.getPassword());
- assertEquals("132****5917", d.getPhoneNumber());
- assertEquals("#######", d.getSlider1());
- assertEquals("ABC*EFG", d.getSlider2());
- assertEquals("*******", d.getSlider3());
- assertEquals("1****@email.com", d.getEmail());
- assertEquals("你好,我是*", d.getRegex());
- assertEquals("北京市海淀区上地十街10号*", d.getAddress());
- assertEquals("芋道源码", d.getOrigin());
- }
-
- @Data
- public static class DesensitizeDemo {
-
- @ChineseNameDesensitize
- private String nickname;
- @BankCardDesensitize
- private String bankCard;
- @CarLicenseDesensitize
- private String carLicense;
- @FixedPhoneDesensitize
- private String fixedPhone;
- @IdCardDesensitize
- private String idCard;
- @PasswordDesensitize
- private String password;
- @MobileDesensitize
- private String phoneNumber;
- @SliderDesensitize(prefixKeep = 6, suffixKeep = 1, replacer = "#")
- private String slider1;
- @SliderDesensitize(prefixKeep = 3, suffixKeep = 3)
- private String slider2;
- @SliderDesensitize(prefixKeep = 10)
- private String slider3;
- @EmailDesensitize
- private String email;
- @RegexDesensitize(regex = "芋道源码", replacer = "*")
- private String regex;
- @Address
- private String address;
- private String origin;
-
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/annotation/Address.java b/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/annotation/Address.java
deleted file mode 100644
index 0dce39b4..00000000
--- a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/annotation/Address.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.win.framework.desensitize.core.annotation;
-
-import com.win.framework.desensitize.core.DesensitizeTest;
-import com.win.framework.desensitize.core.base.annotation.DesensitizeBy;
-import com.win.framework.desensitize.core.handler.AddressHandler;
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 地址
- *
- * 用于 {@link DesensitizeTest} 测试使用
- *
- * @author gaibu
- */
-@Documented
-@Target({ElementType.FIELD})
-@Retention(RetentionPolicy.RUNTIME)
-@JacksonAnnotationsInside
-@DesensitizeBy(handler = AddressHandler.class)
-public @interface Address {
-
- String replacer() default "*";
-
-}
diff --git a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/handler/AddressHandler.java b/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/handler/AddressHandler.java
deleted file mode 100644
index a4f23b58..00000000
--- a/win-framework/win-spring-boot-starter-desensitize/src/test/java/com/win/framework/desensitize/core/handler/AddressHandler.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.win.framework.desensitize.core.handler;
-
-import com.win.framework.desensitize.core.DesensitizeTest;
-import com.win.framework.desensitize.core.base.handler.DesensitizationHandler;
-import com.win.framework.desensitize.core.annotation.Address;
-
-/**
- * {@link Address} 的脱敏处理器
- *
- * 用于 {@link DesensitizeTest} 测试使用
- */
-public class AddressHandler implements DesensitizationHandler {
-
- @Override
- public String desensitize(String origin, Address annotation) {
- return origin + annotation.replacer();
- }
-
-}
diff --git a/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/DictConvert.java b/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/DictConvert.java
index d6862243..00369f47 100644
--- a/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/DictConvert.java
+++ b/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/DictConvert.java
@@ -14,7 +14,7 @@ import lombok.extern.slf4j.Slf4j;
/**
* Excel 数据字典转换器
*
- * @author 芋道源码
+ * @author 闻荫源码
*/
@Slf4j
public class DictConvert implements Converter