diff --git a/win-dependencies/pom.xml b/win-dependencies/pom.xml
index fd388be8..b252bd6c 100644
--- a/win-dependencies/pom.xml
+++ b/win-dependencies/pom.xml
@@ -72,6 +72,7 @@
1.6.1
2.12.2
2.3.3
+ 2.1.1
@@ -629,6 +630,12 @@
spring-boot-starter-websocket
${spring.boot.version}
+
+
+ org.ssssssss
+ magic-api-spring-boot-starter
+ ${magic-api.version}
+
diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/admin/captcha/CaptchaController.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/admin/captcha/CaptchaController.java
index ef13c971..c476b7aa 100644
--- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/admin/captcha/CaptchaController.java
+++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/admin/captcha/CaptchaController.java
@@ -10,6 +10,7 @@ import com.win.framework.redis.util.RedisCache;
import com.win.module.system.enums.ErrorCodeConstants;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@@ -29,7 +30,8 @@ import static com.win.framework.common.pojo.CommonResult.success;
*
* @author win
*/
-@RestController
+@RestController("adminCaptchaController")
+@RequestMapping("/system/captcha")
public class CaptchaController {
@Resource(name = "captchaProducer")
private Producer captchaProducer;
diff --git a/win-module-wms/win-module-wms-biz/src/test/java/com/win/module/wms/service/itembasic/ItembasicServiceImplTest.java b/win-module-wms/win-module-wms-biz/src/test/java/com/win/module/wms/service/itembasic/ItembasicServiceImplTest.java
deleted file mode 100644
index 557ddecd..00000000
--- a/win-module-wms/win-module-wms-biz/src/test/java/com/win/module/wms/service/itembasic/ItembasicServiceImplTest.java
+++ /dev/null
@@ -1,367 +0,0 @@
-package com.win.module.wms.service.itembasic;
-
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.mock.mockito.MockBean;
-
-import javax.annotation.Resource;
-
-import com.win.framework.test.core.ut.BaseDbUnitTest;
-
-import com.win.module.wms.controller.admin.itembasic.vo.*;
-import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
-import com.win.module.wms.dal.mysql.itembasic.ItembasicMapper;
-import com.win.framework.common.pojo.PageResult;
-
-import javax.annotation.Resource;
-import org.springframework.context.annotation.Import;
-import java.util.*;
-import java.time.LocalDateTime;
-
-import static cn.hutool.core.util.RandomUtil.*;
-import static com.win.framework.test.core.util.AssertUtils.*;
-import static com.win.framework.test.core.util.RandomUtils.*;
-import static com.win.framework.common.util.date.LocalDateTimeUtils.*;
-import static com.win.framework.common.util.object.ObjectUtils.*;
-import static com.win.framework.common.util.date.DateUtils.*;
-import static com.win.module.wms.enums.itembasic.ErrorCodeConstants.ITEMBASIC_NOT_EXISTS;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-/**
- * {@link ItembasicServiceImpl} 的单元测试类
- *
- * @author 超级管理员
- */
-@Import(ItembasicServiceImpl.class)
-public class ItembasicServiceImplTest extends BaseDbUnitTest {
-
- @Resource
- private ItembasicServiceImpl itembasicService;
-
- @Resource
- private ItembasicMapper itembasicMapper;
-
- @Test
- public void testCreateItembasic_success() {
- // 准备参数
- ItembasicCreateReqVO reqVO = randomPojo(ItembasicCreateReqVO.class);
-
- // 调用
- Long itembasicId = itembasicService.createItembasic(reqVO);
- // 断言
- assertNotNull(itembasicId);
- // 校验记录的属性是否正确
- ItembasicDO itembasic = itembasicMapper.selectById(itembasicId);
- assertPojoEquals(reqVO, itembasic);
- }
-
- @Test
- public void testUpdateItembasic_success() {
- // mock 数据
- ItembasicDO dbItembasic = randomPojo(ItembasicDO.class);
- itembasicMapper.insert(dbItembasic);// @Sql: 先插入出一条存在的数据
- // 准备参数
- ItembasicUpdateReqVO reqVO = randomPojo(ItembasicUpdateReqVO.class, o -> {
- o.setId(dbItembasic.getId()); // 设置更新的 ID
- });
-
- // 调用
- itembasicService.updateItembasic(reqVO);
- // 校验是否更新正确
- ItembasicDO itembasic = itembasicMapper.selectById(reqVO.getId()); // 获取最新的
- assertPojoEquals(reqVO, itembasic);
- }
-
- @Test
- public void testUpdateItembasic_notExists() {
- // 准备参数
- ItembasicUpdateReqVO reqVO = randomPojo(ItembasicUpdateReqVO.class);
-
- // 调用, 并断言异常
- assertServiceException(() -> itembasicService.updateItembasic(reqVO), ITEMBASIC_NOT_EXISTS);
- }
-
- @Test
- public void testDeleteItembasic_success() {
- // mock 数据
- ItembasicDO dbItembasic = randomPojo(ItembasicDO.class);
- itembasicMapper.insert(dbItembasic);// @Sql: 先插入出一条存在的数据
- // 准备参数
- Long id = dbItembasic.getId();
-
- // 调用
- itembasicService.deleteItembasic(id);
- // 校验数据不存在了
- assertNull(itembasicMapper.selectById(id));
- }
-
- @Test
- public void testDeleteItembasic_notExists() {
- // 准备参数
- Long id = randomLongId();
-
- // 调用, 并断言异常
- assertServiceException(() -> itembasicService.deleteItembasic(id), ITEMBASIC_NOT_EXISTS);
- }
-
- @Test
- @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
- public void testGetItembasicPage() {
- // mock 数据
- ItembasicDO dbItembasic = randomPojo(ItembasicDO.class, o -> { // 等会查询到
- o.setCode(null);
- o.setName(null);
- o.setDesc1(null);
- o.setDesc2(null);
- o.setStatus(null);
- o.setUom(null);
- o.setAltUom(null);
- o.setIsStdPack(null);
- o.setEnableBuy(null);
- o.setEnableMake(null);
- o.setEnableOutsourcing(null);
- o.setIsRecycled(null);
- o.setIsPhantom(null);
- o.setAbcClass(null);
- o.setType(null);
- o.setCategory(null);
- o.setItemGroup(null);
- o.setColor(null);
- o.setConfiguration(null);
- o.setProject(null);
- o.setEqLevel(null);
- o.setValidityDays(null);
- o.setAvailable(null);
- o.setActiveTime(null);
- o.setExpireTime(null);
- o.setRemark(null);
- o.setCreateTime(null);
- o.setCreator(null);
- });
- itembasicMapper.insert(dbItembasic);
- // 测试 code 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCode(null)));
- // 测试 name 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setName(null)));
- // 测试 desc1 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc1(null)));
- // 测试 desc2 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc2(null)));
- // 测试 status 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setStatus(null)));
- // 测试 uom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setUom(null)));
- // 测试 altUom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAltUom(null)));
- // 测试 isStdPack 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsStdPack(null)));
- // 测试 enableBuy 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableBuy(null)));
- // 测试 enableMake 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableMake(null)));
- // 测试 enableOutsourcing 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableOutsourcing(null)));
- // 测试 isRecycled 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsRecycled(null)));
- // 测试 isPhantom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsPhantom(null)));
- // 测试 abcClass 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAbcClass(null)));
- // 测试 type 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setType(null)));
- // 测试 category 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCategory(null)));
- // 测试 itemGroup 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setItemGroup(null)));
- // 测试 color 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setColor(null)));
- // 测试 configuration 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setConfiguration(null)));
- // 测试 project 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setProject(null)));
- // 测试 eqLevel 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEqLevel(null)));
- // 测试 validityDays 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setValidityDays(null)));
- // 测试 available 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAvailable(null)));
- // 测试 activeTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setActiveTime(null)));
- // 测试 expireTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setExpireTime(null)));
- // 测试 remark 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setRemark(null)));
- // 测试 createTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreateTime(null)));
- // 测试 creator 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreator(null)));
- // 准备参数
- ItembasicPageReqVO reqVO = new ItembasicPageReqVO();
- reqVO.setCode(null);
- reqVO.setName(null);
- reqVO.setDesc1(null);
- reqVO.setDesc2(null);
- reqVO.setStatus(null);
- reqVO.setUom(null);
- reqVO.setAltUom(null);
- reqVO.setIsStdPack(null);
- reqVO.setEnableBuy(null);
- reqVO.setEnableMake(null);
- reqVO.setEnableOutsourcing(null);
- reqVO.setIsRecycled(null);
- reqVO.setIsPhantom(null);
- reqVO.setAbcClass(null);
- reqVO.setType(null);
- reqVO.setCategory(null);
- reqVO.setItemGroup(null);
- reqVO.setColor(null);
- reqVO.setConfiguration(null);
- reqVO.setProject(null);
- reqVO.setEqLevel(null);
- reqVO.setValidityDays(null);
- reqVO.setAvailable(null);
- reqVO.setActiveTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setExpireTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setRemark(null);
- reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setCreator(null);
-
- // 调用
- PageResult pageResult = itembasicService.getItembasicPage(reqVO);
- // 断言
- assertEquals(1, pageResult.getTotal());
- assertEquals(1, pageResult.getList().size());
- assertPojoEquals(dbItembasic, pageResult.getList().get(0));
- }
-
- @Test
- @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
- public void testGetItembasicList() {
- // mock 数据
- ItembasicDO dbItembasic = randomPojo(ItembasicDO.class, o -> { // 等会查询到
- o.setCode(null);
- o.setName(null);
- o.setDesc1(null);
- o.setDesc2(null);
- o.setStatus(null);
- o.setUom(null);
- o.setAltUom(null);
- o.setIsStdPack(null);
- o.setEnableBuy(null);
- o.setEnableMake(null);
- o.setEnableOutsourcing(null);
- o.setIsRecycled(null);
- o.setIsPhantom(null);
- o.setAbcClass(null);
- o.setType(null);
- o.setCategory(null);
- o.setItemGroup(null);
- o.setColor(null);
- o.setConfiguration(null);
- o.setProject(null);
- o.setEqLevel(null);
- o.setValidityDays(null);
- o.setAvailable(null);
- o.setActiveTime(null);
- o.setExpireTime(null);
- o.setRemark(null);
- o.setCreateTime(null);
- o.setCreator(null);
- });
- itembasicMapper.insert(dbItembasic);
- // 测试 code 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCode(null)));
- // 测试 name 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setName(null)));
- // 测试 desc1 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc1(null)));
- // 测试 desc2 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setDesc2(null)));
- // 测试 status 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setStatus(null)));
- // 测试 uom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setUom(null)));
- // 测试 altUom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAltUom(null)));
- // 测试 isStdPack 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsStdPack(null)));
- // 测试 enableBuy 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableBuy(null)));
- // 测试 enableMake 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableMake(null)));
- // 测试 enableOutsourcing 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEnableOutsourcing(null)));
- // 测试 isRecycled 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsRecycled(null)));
- // 测试 isPhantom 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setIsPhantom(null)));
- // 测试 abcClass 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAbcClass(null)));
- // 测试 type 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setType(null)));
- // 测试 category 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCategory(null)));
- // 测试 itemGroup 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setItemGroup(null)));
- // 测试 color 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setColor(null)));
- // 测试 configuration 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setConfiguration(null)));
- // 测试 project 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setProject(null)));
- // 测试 eqLevel 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setEqLevel(null)));
- // 测试 validityDays 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setValidityDays(null)));
- // 测试 available 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setAvailable(null)));
- // 测试 activeTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setActiveTime(null)));
- // 测试 expireTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setExpireTime(null)));
- // 测试 remark 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setRemark(null)));
- // 测试 createTime 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreateTime(null)));
- // 测试 creator 不匹配
- itembasicMapper.insert(cloneIgnoreId(dbItembasic, o -> o.setCreator(null)));
- // 准备参数
- ItembasicExportReqVO reqVO = new ItembasicExportReqVO();
- reqVO.setCode(null);
- reqVO.setName(null);
- reqVO.setDesc1(null);
- reqVO.setDesc2(null);
- reqVO.setStatus(null);
- reqVO.setUom(null);
- reqVO.setAltUom(null);
- reqVO.setIsStdPack(null);
- reqVO.setEnableBuy(null);
- reqVO.setEnableMake(null);
- reqVO.setEnableOutsourcing(null);
- reqVO.setIsRecycled(null);
- reqVO.setIsPhantom(null);
- reqVO.setAbcClass(null);
- reqVO.setType(null);
- reqVO.setCategory(null);
- reqVO.setItemGroup(null);
- reqVO.setColor(null);
- reqVO.setConfiguration(null);
- reqVO.setProject(null);
- reqVO.setEqLevel(null);
- reqVO.setValidityDays(null);
- reqVO.setAvailable(null);
- reqVO.setActiveTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setExpireTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setRemark(null);
- reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
- reqVO.setCreator(null);
-
- // 调用
- List list = itembasicService.getItembasicList(reqVO);
- // 断言
- assertEquals(1, list.size());
- assertPojoEquals(dbItembasic, list.get(0));
- }
-
-}
diff --git a/win-server/src/main/resources/application.yaml b/win-server/src/main/resources/application.yaml
index 507f5867..27b28132 100644
--- a/win-server/src/main/resources/application.yaml
+++ b/win-server/src/main/resources/application.yaml
@@ -140,8 +140,7 @@ win:
enable: true
ignore-urls:
- /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号
- - /admin-api/system/captcha/get # 获取图片验证码,和租户无关
- - /admin-api/system/captcha/check # 校验图片验证码,和租户无关
+ - /admin-api/system/captcha/captchaImage # 校验图片验证码,和租户无关
- /admin-api/infra/file/*/get/** # 获取图片,和租户无关
- /admin-api/system/sms/callback/* # 短信回调接口,无法带上租户编号
- /admin-api/pay/notify/** # 支付回调通知,不携带租户编号
@@ -205,3 +204,12 @@ debug: false
minidao :
base-package: org.jeecg.modules.jmreport.desreport.dao*
db-type: mysql
+
+# magic-api配置
+magic-api:
+ web: /magic/web
+ resource:
+ type: database # 配置接口存储方式,这里选择存在数据库中
+ table-name: magic_api_file_v2 # 数据库中的表名
+ prefix: /magic-api # 前缀
+ location: classpath:magic-api
\ No newline at end of file