From 54728b6dba49e935df94a86663d131241e3b3e6b Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Mon, 7 Apr 2025 13:42:25 +0800 Subject: [PATCH] 11 --- .../cloudapi/property/PropertySetEnum.java | 36 +-- dk-example/demo/README.md | 2 - dk-example/demo/pom.xml | 127 ---------- .../dromara/demo/RuoYiDemoApplication.java | 20 -- .../demo/controller/EsCrudController.java | 89 ------- .../demo/controller/MailController.java | 52 ---- .../demo/controller/RedisCacheController.java | 95 -------- .../demo/controller/RedisLockController.java | 71 ------ .../controller/RedisPubSubController.java | 47 ---- .../demo/controller/SmsController.java | 82 ------- .../controller/Swagger3DemoController.java | 31 --- .../demo/controller/TestBatchController.java | 89 ------- .../demo/controller/TestBusController.java | 31 --- .../demo/controller/TestDemoController.java | 146 ------------ .../controller/TestEncryptController.java | 55 ----- .../demo/controller/TestExcelController.java | 160 ------------- .../demo/controller/TestI18nController.java | 71 ------ .../controller/TestSensitiveController.java | 75 ------ .../controller/TestShardingController.java | 46 ---- .../demo/controller/TestTreeController.java | 104 -------- .../dromara/demo/controller/package-info.java | 1 - .../org/dromara/demo/domain/Document.java | 25 -- .../dromara/demo/domain/ShardingOrder.java | 16 -- .../demo/domain/ShardingOrderItem.java | 17 -- .../org/dromara/demo/domain/TestDemo.java | 69 ------ .../dromara/demo/domain/TestDemoEncrypt.java | 29 --- .../org/dromara/demo/domain/TestTree.java | 66 ------ .../dromara/demo/domain/bo/TestDemoBo.java | 61 ----- .../demo/domain/bo/TestDemoImportVo.java | 53 ----- .../dromara/demo/domain/bo/TestTreeBo.java | 54 ----- .../org/dromara/demo/domain/package-info.java | 1 - .../dromara/demo/domain/vo/ExportDemoVo.java | 118 ---------- .../dromara/demo/domain/vo/TestDemoVo.java | 89 ------- .../dromara/demo/domain/vo/TestTreeVo.java | 64 ----- .../dromara/demo/esmapper/DocumentMapper.java | 7 - .../demo/listener/ExportDemoListener.java | 68 ------ .../demo/mapper/ShardingOrderItemMapper.java | 14 -- .../demo/mapper/ShardingOrderMapper.java | 15 -- .../demo/mapper/TestDemoEncryptMapper.java | 13 - .../dromara/demo/mapper/TestDemoMapper.java | 61 ----- .../dromara/demo/mapper/TestTreeMapper.java | 21 -- .../org/dromara/demo/mapper/package-info.java | 1 - .../demo/service/IExportExcelService.java | 18 -- .../demo/service/ITestDemoService.java | 71 ------ .../demo/service/ITestTreeService.java | 52 ---- .../service/impl/ExportExcelServiceImpl.java | 222 ------------------ .../service/impl/SensitiveServiceImpl.java | 46 ---- .../service/impl/TestDemoServiceImpl.java | 116 --------- .../service/impl/TestTreeServiceImpl.java | 88 ------- .../demo/service/impl/package-info.java | 1 - .../dromara/demo/service/package-info.java | 1 - .../demo/src/main/resources/application.yml | 116 --------- dk-example/demo/src/main/resources/banner.txt | 10 - .../src/main/resources/excel/单列表.xlsx | Bin 10787 -> 0 bytes .../main/resources/excel/多sheet列表.xlsx | Bin 13359 -> 0 bytes .../src/main/resources/excel/多列表.xlsx | Bin 10761 -> 0 bytes .../demo/src/main/resources/logback-plus.xml | 23 -- .../mapper/demo/ShardingOrderItemMapper.xml | 7 - .../mapper/demo/ShardingOrderMapper.xml | 7 - .../resources/mapper/demo/TestDemoMapper.xml | 26 -- .../resources/mapper/demo/TestTreeMapper.xml | 22 -- .../src/main/resources/mapper/package-info.md | 3 - .../java/org/dromara/demo/AssertUnitTest.java | 45 ---- .../java/org/dromara/demo/DemoUnitTest.java | 69 ------ .../java/org/dromara/demo/ParamUnitTest.java | 72 ------ .../java/org/dromara/demo/TOrderTest.java | 49 ---- .../java/org/dromara/demo/TagUnitTest.java | 54 ----- dk-example/pom.xml | 1 - 68 files changed, 18 insertions(+), 3393 deletions(-) delete mode 100644 dk-example/demo/README.md delete mode 100644 dk-example/demo/pom.xml delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/RuoYiDemoApplication.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/EsCrudController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/MailController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/RedisLockController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/SmsController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestBatchController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestBusController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestDemoController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestExcelController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestI18nController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestShardingController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/TestTreeController.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/controller/package-info.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/Document.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrder.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrderItem.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/TestTree.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/package-info.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/esmapper/DocumentMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderItemMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/mapper/package-info.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/IExportExcelService.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/ITestDemoService.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/ITestTreeService.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/impl/SensitiveServiceImpl.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/impl/package-info.java delete mode 100644 dk-example/demo/src/main/java/org/dromara/demo/service/package-info.java delete mode 100644 dk-example/demo/src/main/resources/application.yml delete mode 100644 dk-example/demo/src/main/resources/banner.txt delete mode 100644 dk-example/demo/src/main/resources/excel/单列表.xlsx delete mode 100644 dk-example/demo/src/main/resources/excel/多sheet列表.xlsx delete mode 100644 dk-example/demo/src/main/resources/excel/多列表.xlsx delete mode 100644 dk-example/demo/src/main/resources/logback-plus.xml delete mode 100644 dk-example/demo/src/main/resources/mapper/demo/ShardingOrderItemMapper.xml delete mode 100644 dk-example/demo/src/main/resources/mapper/demo/ShardingOrderMapper.xml delete mode 100644 dk-example/demo/src/main/resources/mapper/demo/TestDemoMapper.xml delete mode 100644 dk-example/demo/src/main/resources/mapper/demo/TestTreeMapper.xml delete mode 100644 dk-example/demo/src/main/resources/mapper/package-info.md delete mode 100644 dk-example/demo/src/test/java/org/dromara/demo/AssertUnitTest.java delete mode 100644 dk-example/demo/src/test/java/org/dromara/demo/DemoUnitTest.java delete mode 100644 dk-example/demo/src/test/java/org/dromara/demo/ParamUnitTest.java delete mode 100644 dk-example/demo/src/test/java/org/dromara/demo/TOrderTest.java delete mode 100644 dk-example/demo/src/test/java/org/dromara/demo/TagUnitTest.java diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/property/PropertySetEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/property/PropertySetEnum.java index 6533267..0ad31cc 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/property/PropertySetEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/property/PropertySetEnum.java @@ -16,41 +16,41 @@ import java.util.Set; */ public enum PropertySetEnum { - NIGHT_LIGHTS_STATE("night_lights_state", NightLightsStateSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + NIGHT_LIGHTS_STATE("night_lights_state", NightLightsStateSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - HEIGHT_LIMIT("height_limit", HeightLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + HEIGHT_LIMIT("height_limit", HeightLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - DISTANCE_LIMIT_STATUS("distance_limit_status", DistanceLimitStatusSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + DISTANCE_LIMIT_STATUS("distance_limit_status", DistanceLimitStatusSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - OBSTACLE_AVOIDANCE("obstacle_avoidance", ObstacleAvoidanceSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + OBSTACLE_AVOIDANCE("obstacle_avoidance", ObstacleAvoidanceSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - RTH_ALTITUDE("rth_altitude", RthAltitudeSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + RTH_ALTITUDE("rth_altitude", RthAltitudeSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - OUT_OF_CONTROL_ACTION("rc_lost_action", RcLostActionSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + OUT_OF_CONTROL_ACTION("rc_lost_action", RcLostActionSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - EXIT_WAYLINE_WHEN_RC_LOST("exit_wayline_when_rc_lost", ExitWaylineWhenRcLostSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2), true), + EXIT_WAYLINE_WHEN_RC_LOST("exit_wayline_when_rc_lost", ExitWaylineWhenRcLostSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3), true), - THERMAL_CURRENT_PALETTE_STYLE("thermal_current_palette_style", ThermalCurrentPaletteStyleSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + THERMAL_CURRENT_PALETTE_STYLE("thermal_current_palette_style", ThermalCurrentPaletteStyleSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - THERMAL_GAIN_MODE("thermal_gain_mode", ThermalGainModeSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + THERMAL_GAIN_MODE("thermal_gain_mode", ThermalGainModeSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - THERMAL_ISOTHERM_STATE("thermal_isotherm_state", ThermalIsothermStateSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + THERMAL_ISOTHERM_STATE("thermal_isotherm_state", ThermalIsothermStateSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - THERMAL_ISOTHERM_UPPER_LIMIT("thermal_isotherm_upper_limit", ThermalIsothermUpperLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + THERMAL_ISOTHERM_UPPER_LIMIT("thermal_isotherm_upper_limit", ThermalIsothermUpperLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - THERMAL_ISOTHERM_LOWER_LIMIT("thermal_isotherm_lower_limit", ThermalIsothermLowerLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + THERMAL_ISOTHERM_LOWER_LIMIT("thermal_isotherm_lower_limit", ThermalIsothermLowerLimitSet.class, CloudSDKVersionEnum.V0_0_1, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - RTH_MODE("rth_mode", DockDroneRthMode.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK2)), + RTH_MODE("rth_mode", DockDroneRthMode.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK,GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - USER_EXPERIENCE_IMPROVEMENT("user_experience_improvement", UserExperienceImprovementSet.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + USER_EXPERIENCE_IMPROVEMENT("user_experience_improvement", UserExperienceImprovementSet.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - COMMANDER_MODE_LOST_ACTION("commander_mode_lost_action", DockDroneCommanderModeLostAction.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + COMMANDER_MODE_LOST_ACTION("commander_mode_lost_action", DockDroneCommanderModeLostAction.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - COMMANDER_FLIGHT_HEIGHT("commander_flight_height", DockDroneCommanderFlightHeight.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2)), + COMMANDER_FLIGHT_HEIGHT("commander_flight_height", DockDroneCommanderFlightHeight.class, CloudSDKVersionEnum.V1_0_0, Set.of(GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - OFFLINE_MAP_ENABLE("offline_map_enable", DockDroneOfflineMapEnable.class, CloudSDKVersionEnum.V1_0_1, Set.of(GatewayTypeEnum.DOCK2)), + OFFLINE_MAP_ENABLE("offline_map_enable", DockDroneOfflineMapEnable.class, CloudSDKVersionEnum.V1_0_1, Set.of(GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), - SILENT_MODE("silent_mode", DockSilentMode.class, CloudSDKVersionEnum.V1_0_2, Set.of(GatewayTypeEnum.DOCK)), + SILENT_MODE("silent_mode", DockSilentMode.class, CloudSDKVersionEnum.V1_0_2, Set.of(GatewayTypeEnum.DOCK,GatewayTypeEnum.DOCK2, GatewayTypeEnum.DOCK3)), ; diff --git a/dk-example/demo/README.md b/dk-example/demo/README.md deleted file mode 100644 index 5ac83c8..0000000 --- a/dk-example/demo/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# 使用说明 -需要在 `ry-cloud` 数据库内执行 `test.sql` 文件 初始化测试数据 \ No newline at end of file diff --git a/dk-example/demo/pom.xml b/dk-example/demo/pom.xml deleted file mode 100644 index 0ec1690..0000000 --- a/dk-example/demo/pom.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - org.dromara - dk-example - ${revision} - - 4.0.0 - - demo - - - demo 演示模块 - - - - - - org.dromara - common-nacos - - - - org.dromara - common-sentinel - - - - org.dromara - common-log - - - - org.dromara - common-doc - - - - org.dromara - common-security - - - - org.dromara - common-web - - - - org.dromara - common-mybatis - - - - org.dromara - common-dubbo - - - - org.dromara - common-idempotent - - - - org.dromara - common-mail - - - - org.dromara - common-sms - - - - org.dromara - common-encrypt - - - - org.dromara - common-tenant - - - - org.dromara - common-elasticsearch - - - - org.dromara - common-sensitive - - - - - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - ${spring-boot.version} - - - - repackage - - - - - - - - diff --git a/dk-example/demo/src/main/java/org/dromara/demo/RuoYiDemoApplication.java b/dk-example/demo/src/main/java/org/dromara/demo/RuoYiDemoApplication.java deleted file mode 100644 index c62aa66..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/RuoYiDemoApplication.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.dromara.demo; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; - -/** - * 演示模块 - * - * @author Lion Li - */ -@SpringBootApplication -public class RuoYiDemoApplication { - public static void main(String[] args) { - SpringApplication application = new SpringApplication(RuoYiDemoApplication.class); - application.setApplicationStartup(new BufferingApplicationStartup(2048)); - application.run(args); - System.out.println("(♥◠‿◠)ノ゙ 演示模块启动成功 ლ(´ڡ`ლ)゙ "); - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/EsCrudController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/EsCrudController.java deleted file mode 100644 index d3a1548..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/EsCrudController.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.dromara.demo.controller; - -import lombok.RequiredArgsConstructor; -import org.dromara.common.core.domain.R; -import org.dromara.demo.domain.Document; -import org.dromara.demo.esmapper.DocumentMapper; -import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 搜索引擎 crud 演示案例 - * - * @author Lion Li - */ -@ConditionalOnProperty(value = "easy-es.enable", havingValue = "true") -@RequiredArgsConstructor -@RestController -@RequestMapping("/es") -public class EsCrudController { - - private final DocumentMapper documentMapper; - - /** - * 查询(指定) - * - * @param title 标题 - */ - @GetMapping("/select") - public Document select(String title) { - LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); - wrapper.eq(Document::getTitle, title); - return documentMapper.selectOne(wrapper); - } - - /** - * 搜索(模糊) - * - * @param key 搜索关键字 - */ - @GetMapping("/search") - public List search(String key) { - LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); - wrapper.like(Document::getTitle, key); - return documentMapper.selectList(wrapper); - } - - /** - * 插入 - */ - @PostMapping("/insert") - public Integer insert(@RequestBody Document document) { - return documentMapper.insert(document); - } - - /** - * 更新 - */ - @PutMapping("/update") - public R update(@RequestBody Document document) { - // 测试更新 更新有两种情况 分别演示如下: - // case1: 已知id, 根据id更新 (为了演示方便,此id是从上一步查询中复制过来的,实际业务可以自行查询) - documentMapper.updateById(document); - - // case2: id未知, 根据条件更新 -// LambdaEsUpdateWrapper wrapper = new LambdaEsUpdateWrapper<>(); -// wrapper.like(Document::getTitle, document.getTitle()); -// Document document2 = new Document(); -// document2.setTitle(document.getTitle()); -// document2.setContent(document.getContent()); -// documentMapper.update(document2, wrapper); - - return R.ok(); - } - - /** - * 删除 - * - * @param id 主键 - */ - @DeleteMapping("/delete/{id}") - public R delete(@PathVariable String id) { - // 测试删除数据 删除有两种情况:根据id删或根据条件删 - return R.ok(documentMapper.deleteById(id)); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/MailController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/MailController.java deleted file mode 100644 index 7f3e3b7..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/MailController.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.dromara.common.mail.utils.MailUtils; -import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.File; - - -/** - * 邮件发送案例 - * - * @author Michelle.Chung - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/mail") -public class MailController { - - /** - * 发送邮件 - * - * @param to 接收人 - * @param subject 标题 - * @param text 内容 - */ - @GetMapping("/sendSimpleMessage") - public R sendSimpleMessage(String to, String subject, String text) { - MailUtils.sendText(to, subject, text); - return R.ok(); - } - - /** - * 发送邮件(带附件) - * - * @param to 接收人 - * @param subject 标题 - * @param text 内容 - * @param filePath 附件路径 - */ - @GetMapping("/sendMessageWithAttachment") - public R sendMessageWithAttachment(String to, String subject, String text, String filePath) { - MailUtils.sendText(to, subject, text, new File(filePath)); - return R.ok(); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java deleted file mode 100644 index 9a6508a..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.constant.CacheNames; -import org.dromara.common.core.domain.R; -import org.dromara.common.redis.utils.RedisUtils; -import lombok.RequiredArgsConstructor; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.CachePut; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.time.Duration; - -/** - * spring-cache 演示案例 - * - * @author Lion Li - */ -// 类级别 缓存统一配置 -//@CacheConfig(cacheNames = CacheNames.DEMO_CACHE) -@RequiredArgsConstructor -@RestController -@RequestMapping("/cache") -public class RedisCacheController { - - /** - * 测试 @Cacheable - *

- * 表示这个方法有了缓存的功能,方法的返回值会被缓存下来 - * 下一次调用该方法前,会去检查是否缓存中已经有值 - * 如果有就直接返回,不调用方法 - * 如果没有,就调用方法,然后把结果缓存起来 - * 这个注解「一般用在查询方法上」 - *

- * 重点说明: 缓存注解严禁与其他筛选数据功能一起使用 - * 例如: 数据权限注解 会造成 缓存击穿 与 数据不一致问题 - *

- * cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数 - */ - @Cacheable(cacheNames = "demo:cache#60s#10m#20", key = "#key", condition = "#key != null") - @GetMapping("/test1") - public R test1(String key, String value) { - return R.ok("操作成功", value); - } - - /** - * 测试 @CachePut - *

- * 加了@CachePut注解的方法,会把方法的返回值put到缓存里面缓存起来,供其它地方使用 - * 它「通常用在新增或者实时更新方法上」 - *

- * cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数 - */ - @CachePut(cacheNames = CacheNames.DEMO_CACHE, key = "#key", condition = "#key != null") - @GetMapping("/test2") - public R test2(String key, String value) { - return R.ok("操作成功", value); - } - - /** - * 测试 @CacheEvict - *

- * 使用了CacheEvict注解的方法,会清空指定缓存 - * 「一般用在删除的方法上」 - *

- * cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数 - */ - @CacheEvict(cacheNames = CacheNames.DEMO_CACHE, key = "#key", condition = "#key != null") - @GetMapping("/test3") - public R test3(String key, String value) { - return R.ok("操作成功", value); - } - - /** - * 测试设置过期时间 - * 手动设置过期时间10秒 - * 11秒后获取 判断是否相等 - */ - @GetMapping("/test6") - public R test6(String key, String value) { - RedisUtils.setCacheObject(key, value); - boolean flag = RedisUtils.expire(key, Duration.ofSeconds(10)); - System.out.println("***********" + flag); - try { - Thread.sleep(11 * 1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - Object obj = RedisUtils.getCacheObject(key); - return R.ok(value.equals(obj)); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisLockController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisLockController.java deleted file mode 100644 index 1cf0542..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisLockController.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.dromara.demo.controller; - -import com.baomidou.lock.LockInfo; -import com.baomidou.lock.LockTemplate; -import com.baomidou.lock.annotation.Lock4j; -import com.baomidou.lock.executor.RedissonLockExecutor; -import org.dromara.common.core.domain.R; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.time.LocalTime; - - -/** - * 测试分布式锁的样例 - * - * @author shenxinquan - */ -@Slf4j -@RestController -@RequestMapping("/redisLock") -public class RedisLockController { - - @Autowired - private LockTemplate lockTemplate; - - /** - * 测试lock4j 注解 - */ - @Lock4j(keys = {"#key"}) - @GetMapping("/testLock4j") - public R testLock4j(String key, String value) { - System.out.println("start:" + key + ",time:" + LocalTime.now()); - try { - Thread.sleep(10000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - System.out.println("end :" + key + ",time:" + LocalTime.now()); - return R.ok("操作成功", value); - } - - /** - * 测试lock4j 工具 - */ - @GetMapping("/testLock4jLockTemplate") - public R testLock4jLockTemplate(String key, String value) { - final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class); - if (null == lockInfo) { - throw new RuntimeException("业务处理中,请稍后再试"); - } - // 获取锁成功,处理业务 - try { - try { - Thread.sleep(8000); - } catch (InterruptedException e) { - // - } - System.out.println("执行简单方法1 , 当前线程:" + Thread.currentThread().getName()); - } finally { - //释放锁 - lockTemplate.releaseLock(lockInfo); - } - //结束 - return R.ok("操作成功", value); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java deleted file mode 100644 index 5b19610..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.dromara.common.redis.utils.RedisUtils; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * Redis 发布订阅 演示案例 - * - * @author Lion Li - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/redis/pubsub") -public class RedisPubSubController { - - /** - * 发布消息 - * - * @param key 通道Key - * @param value 发送内容 - */ - @GetMapping("/pub") - public R pub(String key, String value) { - RedisUtils.publish(key, value, consumer -> { - System.out.println("发布通道 => " + key + ", 发送值 => " + value); - }); - return R.ok("操作成功"); - } - - /** - * 订阅消息 - * - * @param key 通道Key - */ - @GetMapping("/sub") - public R sub(String key) { - RedisUtils.subscribe(key, String.class, msg -> { - System.out.println("订阅通道 => " + key + ", 接收值 => " + msg); - }); - return R.ok("操作成功"); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/SmsController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/SmsController.java deleted file mode 100644 index ff36ebe..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/SmsController.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.dromara.demo.controller; - -import lombok.RequiredArgsConstructor; -import org.dromara.common.core.domain.R; -import org.dromara.sms4j.api.SmsBlend; -import org.dromara.sms4j.api.entity.SmsResponse; -import org.dromara.sms4j.core.factory.SmsFactory; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.LinkedHashMap; - -/** - * 短信演示案例 - * 请先阅读文档 否则无法使用 - * - * @author Lion Li - * @version 4.2.0 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/sms") -public class SmsController { - /** - * 发送短信Aliyun - * - * @param phones 电话号 - * @param templateId 模板ID - */ - @GetMapping("/sendAliyun") - public R sendAliyun(String phones, String templateId) { - LinkedHashMap map = new LinkedHashMap<>(1); - map.put("code", "1234"); - SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); - SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); - return R.ok(smsResponse); - } - - /** - * 发送短信Tencent - * - * @param phones 电话号 - * @param templateId 模板ID - */ - @GetMapping("/sendTencent") - public R sendTencent(String phones, String templateId) { - LinkedHashMap map = new LinkedHashMap<>(1); -// map.put("2", "测试测试"); - map.put("1", "1234"); - SmsBlend smsBlend = SmsFactory.getSmsBlend("config2"); - SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); - return R.ok(smsResponse); - } - - /** - * 添加黑名单 - * - * @param phone 手机号 - */ - @GetMapping("/addBlacklist") - public R addBlacklist(String phone){ - SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); - smsBlend.joinInBlacklist(phone); - return R.ok(); - } - - /** - * 移除黑名单 - * - * @param phone 手机号 - */ - @GetMapping("/removeBlacklist") - public R removeBlacklist(String phone){ - SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); - smsBlend.removeFromBlacklist(phone); - return R.ok(); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java deleted file mode 100644 index bb02f98..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; - -/** - * swagger3 用法示例 - * - * @author Lion Li - */ -@RestController -@RequestMapping("/swagger/demo") -public class Swagger3DemoController { - - /** - * 上传请求 - * 必须使用 @RequestPart 注解标注为文件 - * - * @param file 文件 - */ - @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R upload(@RequestPart("file") MultipartFile file) { - return R.ok("操作成功", file.getOriginalFilename()); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBatchController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBatchController.java deleted file mode 100644 index 2c49b4d..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBatchController.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.dromara.demo.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.dromara.common.core.domain.R; -import org.dromara.common.web.core.BaseController; -import org.dromara.demo.domain.TestDemo; -import org.dromara.demo.mapper.TestDemoMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.List; - -/** - * 测试批量方法 - * - * @author Lion Li - * @date 2021-05-30 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/batch") -public class TestBatchController extends BaseController { - - /** - * 为了便于测试 直接引入mapper - */ - private final TestDemoMapper testDemoMapper; - - /** - * 新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大) - *

- * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 - */ - @PostMapping("/add") -// @DS("slave") - public R add() { - List list = new ArrayList<>(); - for (int i = 0; i < 1000; i++) { - TestDemo testDemo = new TestDemo(); - testDemo.setOrderNum(-1); - testDemo.setTestKey("批量新增"); - testDemo.setValue("测试新增"); - list.add(testDemo); - } - return toAjax(testDemoMapper.insertBatch(list)); - } - - /** - * 新增或更新 可完美替代 saveOrUpdateBatch 高性能 - *

- * 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度 - */ - @PostMapping("/addOrUpdate") -// @DS("slave") - public R addOrUpdate() { - List list = new ArrayList<>(); - for (int i = 0; i < 1000; i++) { - TestDemo testDemo = new TestDemo(); - testDemo.setOrderNum(-1); - testDemo.setTestKey("批量新增"); - testDemo.setValue("测试新增"); - list.add(testDemo); } - testDemoMapper.insertBatch(list); - for (int i = 0; i < list.size(); i++) { - TestDemo testDemo = list.get(i); - testDemo.setTestKey("批量新增或修改"); - testDemo.setValue("批量新增或修改"); - if (i % 2 == 0) { - testDemo.setId(null); - } - } - return toAjax(testDemoMapper.insertOrUpdateBatch(list)); - } - - /** - * 删除批量方法 - */ - @DeleteMapping() -// @DS("slave") - public R remove() { - return toAjax(testDemoMapper.delete(new LambdaQueryWrapper() - .eq(TestDemo::getOrderNum, -1L))); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBusController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBusController.java deleted file mode 100644 index 3d2fe3c..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestBusController.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.dromara.demo.controller; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - - -/** - * 测试消息总线 - *

- * 需要在pom引入 ruoyi-api-workflow 模块 并解除下方代码注释 - * 然后提交请假申请即可看到监听器输出日志 - * - * @author Lion Li - */ -@Slf4j -@RestController -@RequestMapping("/bus") -public class TestBusController { - -// @EventListener(condition = "#processEvent.key.startsWith('leave')") -// public void processHandler(ProcessEvent processEvent) { -// log.info(processEvent.toString()); -// } -// -// @EventListener(condition = "#processTaskEvent.key=='leave1' && #processTaskEvent.taskDefinitionKey=='Activity_14633hx'") -// public void processTaskHandler(ProcessTaskEvent processTaskEvent) { -// log.info(processTaskEvent.toString()); -// } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestDemoController.java deleted file mode 100644 index 93b4687..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestDemoController.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.dromara.demo.controller; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.bean.BeanUtil; -import org.dromara.common.core.domain.R; -import org.dromara.common.core.utils.ValidatorUtils; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.core.validate.QueryGroup; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.excel.core.ExcelResult; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.demo.domain.TestDemo; -import org.dromara.demo.domain.bo.TestDemoBo; -import org.dromara.demo.domain.bo.TestDemoImportVo; -import org.dromara.demo.domain.vo.TestDemoVo; -import org.dromara.demo.service.ITestDemoService; -import lombok.RequiredArgsConstructor; -import org.springframework.http.MediaType; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.TimeUnit; - -/** - * 测试单表Controller - * - * @author Lion Li - * @date 2021-07-26 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/demo") -public class TestDemoController extends BaseController { - - private final ITestDemoService iTestDemoService; - - /** - * 查询测试单表列表 - */ - @SaCheckPermission("demo:demo:list") - @GetMapping("/list") - public TableDataInfo list(TestDemoBo bo, PageQuery pageQuery) { - return iTestDemoService.queryPageList(bo, pageQuery); - } - - /** - * 自定义分页查询 - */ - @SaCheckPermission("demo:demo:list") - @GetMapping("/page") - public TableDataInfo page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { - return iTestDemoService.customPageList(bo, pageQuery); - } - - /** - * 导入测试-校验 - * - * @param file 导入文件 - */ - @Log(title = "测试单表", businessType = BusinessType.IMPORT) - @SaCheckPermission("demo:demo:import") - @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R importData(@RequestPart("file") MultipartFile file) throws Exception { - ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); - List volist = excelResult.getList(); - List list = BeanUtil.copyToList(volist, TestDemo.class); - iTestDemoService.saveBatch(list); - return R.ok(excelResult.getAnalysis()); - } - - /** - * 导出测试单表列表 - */ - @SaCheckPermission("demo:demo:export") - @Log(title = "测试单表", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(@Validated TestDemoBo bo, HttpServletResponse response) { - List list = iTestDemoService.queryList(bo); - // 测试雪花id导出 -// for (TestDemoVo vo : list) { -// vo.setId(1234567891234567893L); -// } - ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, response); - } - - /** - * 获取测试单表详细信息 - * - * @param id 测试ID - */ - @SaCheckPermission("demo:demo:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { - return R.ok(iTestDemoService.queryById(id)); - } - - /** - * 新增测试单表 - */ - @SaCheckPermission("demo:demo:add") - @Log(title = "测试单表", businessType = BusinessType.INSERT) - @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}") - @PostMapping() - public R add(@RequestBody TestDemoBo bo) { - // 使用校验工具对标 @Validated(AddGroup.class) 注解 - // 用于在非 Controller 的地方校验对象 - ValidatorUtils.validate(bo, AddGroup.class); - return toAjax(iTestDemoService.insertByBo(bo)); - } - - /** - * 修改测试单表 - */ - @SaCheckPermission("demo:demo:edit") - @Log(title = "测试单表", businessType = BusinessType.UPDATE) - @RepeatSubmit - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) { - return toAjax(iTestDemoService.updateByBo(bo)); - } - - /** - * 删除测试单表 - * - * @param ids 测试ID串 - */ - @SaCheckPermission("demo:demo:remove") - @Log(title = "测试单表", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true)); - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java deleted file mode 100644 index de32a43..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.dromara.demo.domain.TestDemoEncrypt; -import org.dromara.demo.mapper.TestDemoEncryptMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.HashMap; -import java.util.Map; - - -/** - * 测试数据库加解密功能 - * - * @author Lion Li - */ -@Validated -@RestController -@RequestMapping("/encrypt") -public class TestEncryptController { - - @Autowired - private TestDemoEncryptMapper mapper; - @Value("${mybatis-encryptor.enable}") - private Boolean encryptEnable; - - /** - * 测试数据库加解密 - * - * @param key 测试key - * @param value 测试value - */ - @GetMapping() - public R> test(String key, String value) { - if (!encryptEnable) { - throw new RuntimeException("加密功能未开启!"); - } - Map map = new HashMap<>(2); - TestDemoEncrypt demo = new TestDemoEncrypt(); - demo.setTestKey(key); - demo.setValue(value); - mapper.insert(demo); - map.put("加密", demo); - TestDemoEncrypt testDemo = mapper.selectById(demo.getId()); - map.put("解密", testDemo); - return R.ok(map); - } - - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestExcelController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestExcelController.java deleted file mode 100644 index d82ea3b..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestExcelController.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.dromara.demo.controller; - -import cn.hutool.core.collection.CollUtil; -import jakarta.servlet.http.HttpServletResponse; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.RequiredArgsConstructor; -import org.dromara.common.excel.core.ExcelResult; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.demo.domain.vo.ExportDemoVo; -import org.dromara.demo.listener.ExportDemoListener; -import org.dromara.demo.service.IExportExcelService; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 测试Excel功能 - * - * @author Lion Li - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/excel") -public class TestExcelController { - - private final IExportExcelService exportExcelService; - - /** - * 单列表多数据 - */ - @GetMapping("/exportTemplateOne") - public void exportTemplateOne(HttpServletResponse response) { - Map map = new HashMap<>(); - map.put("title", "单列表多数据"); - map.put("test1", "数据测试1"); - map.put("test2", "数据测试2"); - map.put("test3", "数据测试3"); - map.put("test4", "数据测试4"); - map.put("testTest", "666"); - List list = new ArrayList<>(); - list.add(new TestObj("单列表测试1", "列表测试1", "列表测试2", "列表测试3", "列表测试4")); - list.add(new TestObj("单列表测试2", "列表测试5", "列表测试6", "列表测试7", "列表测试8")); - list.add(new TestObj("单列表测试3", "列表测试9", "列表测试10", "列表测试11", "列表测试12")); - ExcelUtil.exportTemplate(CollUtil.newArrayList(map, list), "单列表.xlsx", "excel/单列表.xlsx", response); - } - - /** - * 多列表多数据 - */ - @GetMapping("/exportTemplateMuliti") - public void exportTemplateMuliti(HttpServletResponse response) { - Map map = new HashMap<>(); - map.put("title1", "标题1"); - map.put("title2", "标题2"); - map.put("title3", "标题3"); - map.put("title4", "标题4"); - map.put("author", "Lion Li"); - List list1 = new ArrayList<>(); - list1.add(new TestObj1("list1测试1", "list1测试2", "list1测试3")); - list1.add(new TestObj1("list1测试4", "list1测试5", "list1测试6")); - list1.add(new TestObj1("list1测试7", "list1测试8", "list1测试9")); - List list2 = new ArrayList<>(); - list2.add(new TestObj1("list2测试1", "list2测试2", "list2测试3")); - list2.add(new TestObj1("list2测试4", "list2测试5", "list2测试6")); - List list3 = new ArrayList<>(); - list3.add(new TestObj1("list3测试1", "list3测试2", "list3测试3")); - List list4 = new ArrayList<>(); - list4.add(new TestObj1("list4测试1", "list4测试2", "list4测试3")); - list4.add(new TestObj1("list4测试4", "list4测试5", "list4测试6")); - list4.add(new TestObj1("list4测试7", "list4测试8", "list4测试9")); - list4.add(new TestObj1("list4测试10", "list4测试11", "list4测试12")); - Map multiListMap = new HashMap<>(); - multiListMap.put("map", map); - multiListMap.put("data1", list1); - multiListMap.put("data2", list2); - multiListMap.put("data3", list3); - multiListMap.put("data4", list4); - ExcelUtil.exportTemplateMultiList(multiListMap, "多列表.xlsx", "excel/多列表.xlsx", response); - } - - /** - * 导出下拉框 - * - * @param response / - */ - @GetMapping("/exportWithOptions") - public void exportWithOptions(HttpServletResponse response) { - exportExcelService.exportWithOptions(response); - } - - /** - * 多个sheet导出 - */ - @GetMapping("/exportTemplateMultiSheet") - public void exportTemplateMultiSheet(HttpServletResponse response) { - List list1 = new ArrayList<>(); - list1.add(new TestObj1("list1测试1", "list1测试2", "list1测试3")); - list1.add(new TestObj1("list1测试4", "list1测试5", "list1测试6")); - List list2 = new ArrayList<>(); - list2.add(new TestObj1("list2测试1", "list2测试2", "list2测试3")); - list2.add(new TestObj1("list2测试4", "list2测试5", "list2测试6")); - List list3 = new ArrayList<>(); - list3.add(new TestObj1("list3测试1", "list3测试2", "list3测试3")); - list3.add(new TestObj1("list3测试4", "list3测试5", "list3测试6")); - List list4 = new ArrayList<>(); - list4.add(new TestObj1("list4测试1", "list4测试2", "list4测试3")); - list4.add(new TestObj1("list4测试4", "list4测试5", "list4测试6")); - - List> list = new ArrayList<>(); - Map sheetMap1 = new HashMap<>(); - sheetMap1.put("data1", list1); - Map sheetMap2 = new HashMap<>(); - sheetMap2.put("data2", list2); - Map sheetMap3 = new HashMap<>(); - sheetMap3.put("data3", list3); - Map sheetMap4 = new HashMap<>(); - sheetMap4.put("data4", list4); - - list.add(sheetMap1); - list.add(sheetMap2); - list.add(sheetMap3); - list.add(sheetMap4); - ExcelUtil.exportTemplateMultiSheet(list, "多sheet列表", "excel/多sheet列表.xlsx", response); - } - - /** - * 导入表格 - */ - @PostMapping(value = "/importWithOptions", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public List importWithOptions(@RequestPart("file") MultipartFile file) throws Exception { - // 处理解析结果 - ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), ExportDemoVo.class, new ExportDemoListener()); - return excelResult.getList(); - } - - @Data - @AllArgsConstructor - static class TestObj1 { - private String test1; - private String test2; - private String test3; - } - - @Data - @AllArgsConstructor - static class TestObj { - private String name; - private String list1; - private String list2; - private String list3; - private String list4; - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestI18nController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestI18nController.java deleted file mode 100644 index d618512..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestI18nController.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.dromara.common.core.utils.MessageUtils; -import lombok.Data; -import org.hibernate.validator.constraints.Range; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - - -/** - * 测试国际化 - * - * @author Lion Li - */ -@Validated -@RestController -@RequestMapping("/i18n") -public class TestI18nController { - - /** - * 通过code获取国际化内容 - * code为 messages.properties 中的 key - *

- * 测试使用 user.register.success - * - * @param code 国际化code - */ - @GetMapping() - public R get(String code) { - return R.ok(MessageUtils.message(code)); - } - - /** - * Validator 校验国际化 - * 不传值 分别查看异常返回 - *

- * 测试使用 not.null - */ - @GetMapping("/test1") - public R test1(@NotBlank(message = "{not.null}") String str) { - return R.ok(str); - } - - /** - * Bean 校验国际化 - * 不传值 分别查看异常返回 - *

- * 测试使用 not.null - */ - @GetMapping("/test2") - public R test2(@Validated TestI18nBo bo) { - return R.ok(bo); - } - - @Data - public static class TestI18nBo { - - @NotBlank(message = "{not.null}") - private String name; - - @NotNull(message = "{not.null}") - @Range(min = 0, max = 100, message = "{length.not.valid}") - private Integer age; - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java deleted file mode 100644 index 1feaf1b..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.dromara.demo.controller; - -import org.dromara.common.core.domain.R; -import org.dromara.common.sensitive.annotation.Sensitive; -import org.dromara.common.sensitive.core.SensitiveStrategy; -import org.dromara.common.web.core.BaseController; -import lombok.Data; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 测试数据脱敏控制器 - *

- * 默认管理员不过滤 - * 需自行根据业务重写实现 - * - * @author Lion Li - * @version 3.6.0 - * @see org.dromara.common.sensitive.core.SensitiveService - */ -@RestController -@RequestMapping("/sensitive") -public class TestSensitiveController extends BaseController { - - /** - * 测试数据脱敏 - */ - @GetMapping("/test") - public R test() { - TestSensitive testSensitive = new TestSensitive(); - testSensitive.setIdCard("210397198608215431"); - testSensitive.setPhone("17640125371"); - testSensitive.setAddress("北京市朝阳区某某四合院1203室"); - testSensitive.setEmail("17640125371@163.com"); - testSensitive.setBankCard("6226456952351452853"); - return R.ok(testSensitive); - } - - @Data - static class TestSensitive { - - /** - * 身份证 - */ - @Sensitive(strategy = SensitiveStrategy.ID_CARD) - private String idCard; - - /** - * 电话 - */ - @Sensitive(strategy = SensitiveStrategy.PHONE, roleKey = "common") - private String phone; - - /** - * 地址 - */ - @Sensitive(strategy = SensitiveStrategy.ADDRESS, perms = "system:user:query") - private String address; - - /** - * 邮箱 - */ - @Sensitive(strategy = SensitiveStrategy.EMAIL, roleKey = "common", perms = "system:user:query1") - private String email; - - /** - * 银行卡 - */ - @Sensitive(strategy = SensitiveStrategy.BANK_CARD, roleKey = "common1", perms = "system:user:query") - private String bankCard; - - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestShardingController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestShardingController.java deleted file mode 100644 index 81bb2a7..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestShardingController.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.dromara.demo.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.dromara.common.core.domain.R; -import org.dromara.demo.domain.ShardingOrder; -import org.dromara.demo.mapper.ShardingOrderMapper; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 使用方式 看官网文档扩展项目 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/sharding") -public class TestShardingController { - - private final ShardingOrderMapper torderMapper; - - @GetMapping("/page") - public R> page() { - Page page = new Page<>(); - page.setCurrent(3L); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.orderByAsc(ShardingOrder::getOrderId); - torderMapper.selectPage(page, lqw); - return R.ok(page); - } - - @GetMapping("/insert") - public R insert() { - for (Long i = 1L; i <= 100L; i++) { - ShardingOrder torder = new ShardingOrder(); - torder.setUserId(i); - torder.setTotalMoney(100 + Integer.parseInt(i + "")); - torderMapper.insert(torder); - } - - return R.ok("分库分表数据批量插入成功!"); - - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestTreeController.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/TestTreeController.java deleted file mode 100644 index 178a4b8..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/TestTreeController.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.dromara.demo.controller; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.log.enums.BusinessType; -import org.dromara.demo.domain.bo.TestTreeBo; -import org.dromara.demo.domain.vo.TestTreeVo; -import org.dromara.demo.service.ITestTreeService; -import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import java.util.Arrays; -import java.util.List; - -/** - * 测试树表Controller - * - * @author Lion Li - * @date 2021-07-26 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/tree") -public class TestTreeController extends BaseController { - - private final ITestTreeService iTestTreeService; - - /** - * 查询测试树表列表 - */ - @SaCheckPermission("demo:tree:list") - @GetMapping("/list") - public R> list(TestTreeBo bo) { - List list = iTestTreeService.queryList(bo); - return R.ok(list); - } - - /** - * 导出测试树表列表 - */ - @SaCheckPermission("demo:tree:export") - @Log(title = "测试树表", businessType = BusinessType.EXPORT) - @GetMapping("/export") - public void export(@Validated TestTreeBo bo, HttpServletResponse response) { - List list = iTestTreeService.queryList(bo); - ExcelUtil.exportExcel(list, "测试树表", TestTreeVo.class, response); - } - - /** - * 获取测试树表详细信息 - * - * @param id 测试树ID - */ - @SaCheckPermission("demo:tree:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { - return R.ok(iTestTreeService.queryById(id)); - } - - /** - * 新增测试树表 - */ - @SaCheckPermission("demo:tree:add") - @Log(title = "测试树表", businessType = BusinessType.INSERT) - @RepeatSubmit - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody TestTreeBo bo) { - return toAjax(iTestTreeService.insertByBo(bo)); - } - - /** - * 修改测试树表 - */ - @SaCheckPermission("demo:tree:edit") - @Log(title = "测试树表", businessType = BusinessType.UPDATE) - @RepeatSubmit - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody TestTreeBo bo) { - return toAjax(iTestTreeService.updateByBo(bo)); - } - - /** - * 删除测试树表 - * - * @param ids 测试树ID串 - */ - @SaCheckPermission("demo:tree:remove") - @Log(title = "测试树表", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(iTestTreeService.deleteWithValidByIds(Arrays.asList(ids), true)); - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/controller/package-info.java b/dk-example/demo/src/main/java/org/dromara/demo/controller/package-info.java deleted file mode 100644 index 16c30f8..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/controller/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.demo.controller; diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/Document.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/Document.java deleted file mode 100644 index 71c77ee..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/Document.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.dromara.demo.domain; - -import lombok.Data; - -/** - * 文档实体 - */ -@Data -public class Document { - - /** - * es中的唯一id - */ - private String id; - - /** - * 文档标题 - */ - private String title; - - /** - * 文档内容 - */ - private String content; -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrder.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrder.java deleted file mode 100644 index 6190e9c..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrder.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.dromara.demo.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -@TableName("t_order") -@Data -public class ShardingOrder { - - - private Long orderId; - - private Long userId; - - private int totalMoney; -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrderItem.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrderItem.java deleted file mode 100644 index 83fde7c..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/ShardingOrderItem.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.dromara.demo.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -@TableName("t_order_item") -@Data -public class ShardingOrderItem { - - private Long orderItemId; - - private Long orderId; - - private Long userId; - - private int totalMoney; -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemo.java deleted file mode 100644 index ada6d2b..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemo.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.dromara.demo.domain; - -import com.baomidou.mybatisplus.annotation.*; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serial; - -/** - * 测试单表对象 test_demo - * - * @author Lion Li - * @date 2021-07-26 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("test_demo") -public class TestDemo extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 部门id - */ - private Long deptId; - - /** - * 用户id - */ - private Long userId; - - /** - * 排序号 - */ - @OrderBy(asc = false, sort = 1) - private Integer orderNum; - - /** - * key键 - */ - private String testKey; - - /** - * 值 - */ - private String value; - - /** - * 版本 - */ - @Version - private Long version; - - /** - * 删除标志 - */ - @TableLogic - private Long delFlag; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java deleted file mode 100644 index bdcd596..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.dromara.demo.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import org.dromara.common.encrypt.annotation.EncryptField; -import org.dromara.common.encrypt.enumd.AlgorithmType; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("test_demo") -public class TestDemoEncrypt extends TestDemo { - - /** - * key键 - */ - // @EncryptField(algorithm=AlgorithmType.SM2, privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgZSlOvw8FBiH+aFJWLYZP/VRjg9wjfRarTkGBZd/T3N+gCgYIKoEcz1UBgi2hRANCAAR5DGuQwJqkxnbCsP+iPSDoHWIF4RwcR5EsSvT8QPxO1wRkR2IhCkzvRb32x2CUgJFdvoqVqfApFDPZzShqzBwX", publicKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEeQxrkMCapMZ2wrD/oj0g6B1iBeEcHEeRLEr0/ED8TtcEZEdiIQpM70W99sdglICRXb6KlanwKRQz2c0oaswcFw==") - @EncryptField(algorithm = AlgorithmType.RSA, privateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANBBEeueWlXlkkj2+WY5l+IWe42d8b5K28g+G/CFKC/yYAEHtqGlCsBOrb+YBkG9mPzmuYA/n9k0NFIc8E8yY5vZQaroyFBrTTWEzG9RY2f7Y3svVyybs6jpXSUs4xff8abo7wL1Y/wUaeatTViamxYnyTvdTmLm3d+JjRij68rxAgMBAAECgYAB0TnhXraSopwIVRfmboea1b0upl+BUdTJcmci412UjrKr5aE695ZLPkXbFXijVu7HJlyyv94NVUdaMACV7Ku/S2RuNB70M7YJm8rAjHFC3/i2ZeIM60h1Ziy4QKv0XM3pRATlDCDNhC1WUrtQCQSgU8kcp6eUUppruOqDzcY04QJBAPm9+sBP9CwDRgy3e5+V8aZtJkwDstb0lVVV/KY890cydVxiCwvX3fqVnxKMlb+x0YtH0sb9v+71xvK2lGobaRECQQDVePU6r/cCEfpc+nkWF6osAH1f8Mux3rYv2DoBGvaPzV2BGfsLed4neRfCwWNCKvGPCdW+L0xMJg8+RwaoBUPhAkAT5kViqXxFPYWJYd1h2+rDXhMdH3ZSlm6HvDBDdrwlWinr0Iwcx3iSjPV93uHXwm118aUj4fg3LDJMCKxOwBxhAkByrQXfvwOMYygBprRBf/j0plazoWFrbd6lGR0f1uI5IfNnFRPdeFw1DEINZ2Hw+6zEUF44SqRMC+4IYJNc02dBAkBCgy7RvfyV/A7N6kKXxTHauY0v6XwSSvpeKtRJkbIcRWOdIYvaHO9L7cklj3vIEdwjSUp9K4VTBYYlmAz1xh03", publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQQRHrnlpV5ZJI9vlmOZfiFnuNnfG+StvIPhvwhSgv8mABB7ahpQrATq2/mAZBvZj85rmAP5/ZNDRSHPBPMmOb2UGq6MhQa001hMxvUWNn+2N7L1csm7Oo6V0lLOMX3/Gm6O8C9WP8FGnmrU1YmpsWJ8k73U5i5t3fiY0Yo+vK8QIDAQAB") - private String testKey; - - /** - * 值 - */ - // @EncryptField // 什么也不写走默认yml配置 - // @EncryptField(algorithm = AlgorithmType.SM4, password = "10rfylhtccpuyke5") - @EncryptField(algorithm = AlgorithmType.AES, password = "10rfylhtccpuyke5") - private String value; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestTree.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/TestTree.java deleted file mode 100644 index 6cd3109..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/TestTree.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.dromara.demo.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.Version; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 测试树表对象 test_tree - * - * @author Lion Li - * @date 2021-07-26 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("test_tree") -public class TestTree extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 父ID - */ - private Long parentId; - - /** - * 部门id - */ - private Long deptId; - - /** - * 用户id - */ - private Long userId; - - /** - * 树节点名 - */ - private String treeName; - - /** - * 版本 - */ - @Version - private Long version; - - /** - * 删除标志 - */ - @TableLogic - private Long delFlag; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java deleted file mode 100644 index 2896f6c..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.dromara.demo.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.demo.domain.TestDemo; - -/** - * 测试单表业务对象 test_demo - * - * @author Lion Li - * @date 2021-07-26 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = TestDemo.class, reverseConvertGenerate = false) -public class TestDemoBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = {EditGroup.class}) - private Long id; - - /** - * 部门id - */ - @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long deptId; - - /** - * 用户id - */ - @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long userId; - - /** - * 排序号 - */ - @NotNull(message = "排序号不能为空", groups = {AddGroup.class, EditGroup.class}) - private Integer orderNum; - - /** - * key键 - */ - @NotBlank(message = "key键不能为空", groups = {AddGroup.class, EditGroup.class}) - private String testKey; - - /** - * 值 - */ - @NotBlank(message = "值不能为空", groups = {AddGroup.class, EditGroup.class}) - private String value; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java deleted file mode 100644 index c066118..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.dromara.demo.domain.bo; - -import com.alibaba.excel.annotation.ExcelProperty; -import lombok.Data; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - -/** - * 测试单表业务对象 test_demo - * - * @author Lion Li - * @date 2021-07-26 - */ -@Data -public class TestDemoImportVo { - - /** - * 部门id - */ - @NotNull(message = "部门id不能为空") - @ExcelProperty(value = "部门id") - private Long deptId; - - /** - * 用户id - */ - @NotNull(message = "用户id不能为空") - @ExcelProperty(value = "用户id") - private Long userId; - - /** - * 排序号 - */ - @NotNull(message = "排序号不能为空") - @ExcelProperty(value = "排序号") - private Long orderNum; - - /** - * key键 - */ - @NotBlank(message = "key键不能为空") - @ExcelProperty(value = "key键") - private String testKey; - - /** - * 值 - */ - @NotBlank(message = "值不能为空") - @ExcelProperty(value = "值") - private String value; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java deleted file mode 100644 index a0a765a..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.dromara.demo.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.demo.domain.TestTree; - -/** - * 测试树表业务对象 test_tree - * - * @author Lion Li - * @date 2021-07-26 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = TestTree.class, reverseConvertGenerate = false) -public class TestTreeBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = {EditGroup.class}) - private Long id; - - /** - * 父ID - */ - private Long parentId; - - /** - * 部门id - */ - @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long deptId; - - /** - * 用户id - */ - @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long userId; - - /** - * 树节点名 - */ - @NotBlank(message = "树节点名不能为空", groups = {AddGroup.class, EditGroup.class}) - private String treeName; - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/package-info.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/package-info.java deleted file mode 100644 index cb7d83f..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.demo.domain; diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java deleted file mode 100644 index 95fa0d1..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.dromara.demo.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.dromara.common.core.enums.UserStatus; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.annotation.ExcelEnumFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; -import org.dromara.common.excel.convert.ExcelEnumConvert; - -/** - * 带有下拉选的Excel导出 - * - * @author Emil.Zhang - */ -@Data -@ExcelIgnoreUnannotated -@AllArgsConstructor -@NoArgsConstructor -public class ExportDemoVo { - - private static final long serialVersionUID = 1L; - - /** - * 用户昵称 - */ - @ExcelProperty(value = "用户名", index = 0) - @NotEmpty(message = "用户名不能为空", groups = AddGroup.class) - private String nickName; - - /** - * 用户类型 - *

- * 使用ExcelEnumFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) - @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") - @NotEmpty(message = "用户类型不能为空", groups = AddGroup.class) - private String userStatus; - - /** - * 性别 - *

- * 使用ExcelDictFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "性别", index = 2, converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - @NotEmpty(message = "性别不能为空", groups = AddGroup.class) - private String gender; - - /** - * 手机号 - */ - @ExcelProperty(value = "手机号", index = 3) - @NotEmpty(message = "手机号不能为空", groups = AddGroup.class) - private String phoneNumber; - - /** - * Email - */ - @ExcelProperty(value = "Email", index = 4) - @NotEmpty(message = "Email不能为空", groups = AddGroup.class) - private String email; - - /** - * 省 - *

- * 级联下拉,仅判断是否选了 - */ - @ExcelProperty(value = "省", index = 5) - @NotNull(message = "省不能为空", groups = AddGroup.class) - private String province; - - /** - * 数据库中的省ID - *

- * 处理完毕后再判断是否市正确的值 - */ - @NotNull(message = "请勿手动输入", groups = EditGroup.class) - private Integer provinceId; - - /** - * 市 - *

- * 级联下拉 - */ - @ExcelProperty(value = "市", index = 6) - @NotNull(message = "市不能为空", groups = AddGroup.class) - private String city; - - /** - * 数据库中的市ID - */ - @NotNull(message = "请勿手动输入", groups = EditGroup.class) - private Integer cityId; - - /** - * 县 - *

- * 级联下拉 - */ - @ExcelProperty(value = "县", index = 7) - @NotNull(message = "县不能为空", groups = AddGroup.class) - private String area; - - /** - * 数据库中的县ID - */ - @NotNull(message = "请勿手动输入", groups = EditGroup.class) - private Integer areaId; -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java deleted file mode 100644 index 3eb072f..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.dromara.demo.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.dromara.demo.domain.TestDemo; - -import java.io.Serial; -import java.io.Serializable; -import java.util.Date; - - -/** - * 测试单表视图对象 test_demo - * - * @author Lion Li - * @date 2021-07-26 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = TestDemo.class) -public class TestDemoVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 部门id - */ - @ExcelProperty(value = "部门id") - private Long deptId; - - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - - /** - * 排序号 - */ - @ExcelProperty(value = "排序号") - private Integer orderNum; - - /** - * key键 - */ - @ExcelProperty(value = "key键") - private String testKey; - - /** - * 值 - */ - @ExcelProperty(value = "值") - private String value; - - /** - * 创建时间 - */ - @ExcelProperty(value = "创建时间") - private Date createTime; - - /** - * 创建人 - */ - @ExcelProperty(value = "创建人") - private String createBy; - - /** - * 更新时间 - */ - @ExcelProperty(value = "更新时间") - private Date updateTime; - - /** - * 更新人 - */ - @ExcelProperty(value = "更新人") - private String updateBy; - - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java deleted file mode 100644 index aac6033..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.dromara.demo.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.dromara.demo.domain.TestTree; - -import java.io.Serial; -import java.io.Serializable; -import java.util.Date; - - -/** - * 测试树表视图对象 test_tree - * - * @author Lion Li - * @date 2021-07-26 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = TestTree.class) -public class TestTreeVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - private Long id; - - /** - * 父id - */ - @ExcelProperty(value = "父id") - private Long parentId; - - /** - * 部门id - */ - @ExcelProperty(value = "部门id") - private Long deptId; - - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - - /** - * 树节点名 - */ - @ExcelProperty(value = "树节点名") - private String treeName; - - /** - * 创建时间 - */ - @ExcelProperty(value = "创建时间") - private Date createTime; - - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/esmapper/DocumentMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/esmapper/DocumentMapper.java deleted file mode 100644 index 63c9823..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/esmapper/DocumentMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.dromara.demo.esmapper; - -import org.dromara.demo.domain.Document; -import org.dromara.easyes.core.kernel.BaseEsMapper; - -public interface DocumentMapper extends BaseEsMapper { -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java b/dk-example/demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java deleted file mode 100644 index 7bd4e1e..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.dromara.demo.listener; - -import cn.hutool.core.util.NumberUtil; -import com.alibaba.excel.context.AnalysisContext; -import org.dromara.common.core.utils.ValidatorUtils; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.core.DefaultExcelListener; -import org.dromara.common.excel.core.DropDownOptions; -import org.dromara.demo.domain.vo.ExportDemoVo; - -import java.util.List; - -/** - * Excel带下拉框的解析处理器 - * - * @author Emil.Zhang - */ -public class ExportDemoListener extends DefaultExcelListener { - - public ExportDemoListener() { - // 显示使用构造函数,否则将导致空指针 - super(true); - } - - @Override - public void invoke(ExportDemoVo data, AnalysisContext context) { - // 先校验必填 - ValidatorUtils.validate(data, AddGroup.class); - - // 处理级联下拉的部分 - String province = data.getProvince(); - String city = data.getCity(); - String area = data.getArea(); - // 本行用户选择的省 - List thisRowSelectedProvinceOption = DropDownOptions.analyzeOptionValue(province); - if (thisRowSelectedProvinceOption.size() == 2) { - String provinceIdStr = thisRowSelectedProvinceOption.get(1); - if (NumberUtil.isNumber(provinceIdStr)) { - // 严格要求数据的话可以在这里做与数据库相关的判断 - // 例如判断省信息是否在数据库中存在等,建议结合RedisCache做缓存10s,减少数据库调用 - data.setProvinceId(Integer.parseInt(provinceIdStr)); - } - } - // 本行用户选择的市 - List thisRowSelectedCityOption = DropDownOptions.analyzeOptionValue(city); - if (thisRowSelectedCityOption.size() == 2) { - String cityIdStr = thisRowSelectedCityOption.get(1); - if (NumberUtil.isNumber(cityIdStr)) { - data.setCityId(Integer.parseInt(cityIdStr)); - } - } - // 本行用户选择的县 - List thisRowSelectedAreaOption = DropDownOptions.analyzeOptionValue(area); - if (thisRowSelectedAreaOption.size() == 2) { - String areaIdStr = thisRowSelectedAreaOption.get(1); - if (NumberUtil.isNumber(areaIdStr)) { - data.setAreaId(Integer.parseInt(areaIdStr)); - } - } - - // 处理完毕以后判断是否符合规则 - ValidatorUtils.validate(data, EditGroup.class); - - // 添加到处理结果中 - getExcelResult().getList().add(data); - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderItemMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderItemMapper.java deleted file mode 100644 index 0082677..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderItemMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.dromara.demo.mapper; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import org.apache.ibatis.annotations.Mapper; -import org.dromara.demo.domain.ShardingOrderItem; - -@Mapper -@DS("sharding") -public interface ShardingOrderItemMapper extends BaseMapper { - - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderMapper.java deleted file mode 100644 index 58d3525..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/ShardingOrderMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.dromara.demo.mapper; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import org.apache.ibatis.annotations.Mapper; -import org.dromara.demo.domain.ShardingOrder; - - -@Mapper -@DS("sharding") -public interface ShardingOrderMapper extends BaseMapper { - - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java deleted file mode 100644 index 601f97a..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.dromara.demo.mapper; - -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; -import org.dromara.demo.domain.TestDemoEncrypt; - -/** - * 测试加密功能 - * - * @author Lion Li - */ -public interface TestDemoEncryptMapper extends BaseMapperPlus { - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java deleted file mode 100644 index 07a35a3..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.dromara.demo.mapper; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.dromara.common.mybatis.annotation.DataColumn; -import org.dromara.common.mybatis.annotation.DataPermission; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; -import org.dromara.demo.domain.TestDemo; -import org.dromara.demo.domain.vo.TestDemoVo; -import org.apache.ibatis.annotations.Param; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; - -/** - * 测试单表Mapper接口 - * - * @author Lion Li - * @date 2021-07-26 - */ -public interface TestDemoMapper extends BaseMapperPlus { - - @DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") - }) - Page customPageList(@Param("page") Page page, @Param("ew") Wrapper wrapper); - - @Override - @DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") - }) - List selectList(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper); - - - @Override - @DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") - }) - List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper); - - @Override - @DataPermission(value = { - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") - }, joinStr = "AND") - List selectByIds(@Param(Constants.COLL) Collection idList); - - @Override - @DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") - }) - int updateById(@Param(Constants.ENTITY) TestDemo entity); - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java deleted file mode 100644 index e5f4c44..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.dromara.demo.mapper; - -import org.dromara.common.mybatis.annotation.DataColumn; -import org.dromara.common.mybatis.annotation.DataPermission; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; -import org.dromara.demo.domain.TestTree; -import org.dromara.demo.domain.vo.TestTreeVo; - -/** - * 测试树表Mapper接口 - * - * @author Lion Li - * @date 2021-07-26 - */ -@DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") -}) -public interface TestTreeMapper extends BaseMapperPlus { - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/mapper/package-info.java b/dk-example/demo/src/main/java/org/dromara/demo/mapper/package-info.java deleted file mode 100644 index ff1c4df..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/mapper/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.demo.mapper; diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/IExportExcelService.java b/dk-example/demo/src/main/java/org/dromara/demo/service/IExportExcelService.java deleted file mode 100644 index 4dfa5ef..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/IExportExcelService.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.dromara.demo.service; - -import jakarta.servlet.http.HttpServletResponse; - -/** - * 导出下拉框Excel示例 - * - * @author Emil.Zhang - */ -public interface IExportExcelService { - - /** - * 导出下拉框 - * - * @param response / - */ - void exportWithOptions(HttpServletResponse response); -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/ITestDemoService.java b/dk-example/demo/src/main/java/org/dromara/demo/service/ITestDemoService.java deleted file mode 100644 index bca4192..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/ITestDemoService.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.dromara.demo.service; - -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.demo.domain.TestDemo; -import org.dromara.demo.domain.bo.TestDemoBo; -import org.dromara.demo.domain.vo.TestDemoVo; - -import java.util.Collection; -import java.util.List; - -/** - * 测试单表Service接口 - * - * @author Lion Li - * @date 2021-07-26 - */ -public interface ITestDemoService { - - /** - * 查询单个 - * - * @return - */ - TestDemoVo queryById(Long id); - - /** - * 查询列表 - */ - TableDataInfo queryPageList(TestDemoBo bo, PageQuery pageQuery); - - /** - * 自定义分页查询 - */ - TableDataInfo customPageList(TestDemoBo bo, PageQuery pageQuery); - - /** - * 查询列表 - */ - List queryList(TestDemoBo bo); - - /** - * 根据新增业务对象插入测试单表 - * - * @param bo 测试单表新增业务对象 - * @return - */ - Boolean insertByBo(TestDemoBo bo); - - /** - * 根据编辑业务对象修改测试单表 - * - * @param bo 测试单表编辑业务对象 - * @return - */ - Boolean updateByBo(TestDemoBo bo); - - /** - * 校验并删除数据 - * - * @param ids 主键集合 - * @param isValid 是否校验,true-删除前校验,false-不校验 - * @return - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 批量保存 - */ - Boolean saveBatch(List list); -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/ITestTreeService.java b/dk-example/demo/src/main/java/org/dromara/demo/service/ITestTreeService.java deleted file mode 100644 index 9155201..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/ITestTreeService.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.dromara.demo.service; - -import org.dromara.demo.domain.bo.TestTreeBo; -import org.dromara.demo.domain.vo.TestTreeVo; - -import java.util.Collection; -import java.util.List; - -/** - * 测试树表Service接口 - * - * @author Lion Li - * @date 2021-07-26 - */ -public interface ITestTreeService { - /** - * 查询单个 - * - * @return - */ - TestTreeVo queryById(Long id); - - /** - * 查询列表 - */ - List queryList(TestTreeBo bo); - - /** - * 根据新增业务对象插入测试树表 - * - * @param bo 测试树表新增业务对象 - * @return - */ - Boolean insertByBo(TestTreeBo bo); - - /** - * 根据编辑业务对象修改测试树表 - * - * @param bo 测试树表编辑业务对象 - * @return - */ - Boolean updateByBo(TestTreeBo bo); - - /** - * 校验并删除数据 - * - * @param ids 主键集合 - * @param isValid 是否校验,true-删除前校验,false-不校验 - * @return - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/dk-example/demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java deleted file mode 100644 index 0240e02..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java +++ /dev/null @@ -1,222 +0,0 @@ -package org.dromara.demo.service.impl; - -import cn.hutool.core.util.StrUtil; -import jakarta.servlet.http.HttpServletResponse; -import lombok.Data; -import lombok.RequiredArgsConstructor; -import org.dromara.common.core.enums.UserStatus; -import org.dromara.common.core.utils.StreamUtils; -import org.dromara.common.excel.core.DropDownOptions; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.demo.domain.vo.ExportDemoVo; -import org.dromara.demo.service.IExportExcelService; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 导出下拉框Excel示例 - * - * @author Emil.Zhang - */ -@Service -@RequiredArgsConstructor -public class ExportExcelServiceImpl implements IExportExcelService { - - @Override - public void exportWithOptions(HttpServletResponse response) { - // 创建表格数据,业务中一般通过数据库查询 - List excelDataList = new ArrayList<>(); - for (int i = 0; i < 3; i++) { - // 模拟数据库中的一条数据 - ExportDemoVo everyRowData = new ExportDemoVo(); - everyRowData.setNickName("用户-" + i); - everyRowData.setUserStatus(UserStatus.OK.getCode()); - everyRowData.setGender("1"); - everyRowData.setPhoneNumber(String.format("175%08d", i)); - everyRowData.setEmail(String.format("175%08d", i) + "@163.com"); - everyRowData.setProvinceId(i); - everyRowData.setCityId(i); - everyRowData.setAreaId(i); - excelDataList.add(everyRowData); - } - - // 通过@ExcelIgnoreUnannotated配合@ExcelProperty合理显示需要的列 - // 并通过@DropDown注解指定下拉值,或者通过创建ExcelOptions来指定下拉框 - // 使用ExcelOptions时建议指定列index,防止出现下拉列解析不对齐 - - // 首先从数据库中查询下拉框内的可选项 - // 这里模拟查询结果 - List provinceList = getProvinceList(), - cityList = getCityList(provinceList), - areaList = getAreaList(cityList); - int provinceIndex = 5, cityIndex = 6, areaIndex = 7; - - DropDownOptions provinceToCity = DropDownOptions.buildLinkedOptions( - provinceList, - provinceIndex, - cityList, - cityIndex, - DemoCityData::getId, - DemoCityData::getPid, - everyOptions -> DropDownOptions.createOptionValue( - everyOptions.getName(), - everyOptions.getId() - ) - ); - - DropDownOptions cityToArea = DropDownOptions.buildLinkedOptions( - cityList, - cityIndex, - areaList, - areaIndex, - DemoCityData::getId, - DemoCityData::getPid, - everyOptions -> DropDownOptions.createOptionValue( - everyOptions.getName(), - everyOptions.getId() - ) - ); - - // 把所有的下拉框存储 - List options = new ArrayList<>(); - options.add(provinceToCity); - options.add(cityToArea); - - // 到此为止所有的下拉框可选项已全部配置完毕 - - // 接下来需要将Excel中的展示数据转换为对应的下拉选 - List outList = StreamUtils.toList(excelDataList, everyRowData -> { - // 只需要处理没有使用@ExcelDictFormat注解的下拉框 - // 一般来说,可以直接在数据库查询即查询出省市县信息,这里通过模拟操作赋值 - everyRowData.setProvince(buildOptions(provinceList, everyRowData.getProvinceId())); - everyRowData.setCity(buildOptions(cityList, everyRowData.getCityId())); - everyRowData.setArea(buildOptions(areaList, everyRowData.getAreaId())); - return everyRowData; - }); - - ExcelUtil.exportExcel(outList, "下拉框示例", ExportDemoVo.class, response, options); - } - - private String buildOptions(List cityDataList, Integer id) { - Map> groupByIdMap = - cityDataList.stream().collect(Collectors.groupingBy(DemoCityData::getId)); - if (groupByIdMap.containsKey(id)) { - DemoCityData demoCityData = groupByIdMap.get(id).get(0); - return DropDownOptions.createOptionValue(demoCityData.getName(), demoCityData.getId()); - } else { - return StrUtil.EMPTY; - } - } - - /** - * 模拟查询数据库操作 - * - * @return / - */ - private List getProvinceList() { - List provinceList = new ArrayList<>(); - - // 实际业务中一般采用数据库读取的形式,这里直接拼接创建 - provinceList.add(new DemoCityData(0, null, "安徽省")); - provinceList.add(new DemoCityData(1, null, "江苏省")); - - return provinceList; - } - - /** - * 模拟查找数据库操作,需要连带查询出省的数据 - * - * @param provinceList 模拟的父省数据 - * @return / - */ - private List getCityList(List provinceList) { - List cityList = new ArrayList<>(); - - // 实际业务中一般采用数据库读取的形式,这里直接拼接创建 - cityList.add(new DemoCityData(0, 0, "合肥市")); - cityList.add(new DemoCityData(1, 0, "芜湖市")); - cityList.add(new DemoCityData(2, 1, "南京市")); - cityList.add(new DemoCityData(3, 1, "无锡市")); - cityList.add(new DemoCityData(4, 1, "徐州市")); - - selectParentData(provinceList, cityList); - - return cityList; - } - - /** - * 模拟查找数据库操作,需要连带查询出市的数据 - * - * @param cityList 模拟的父市数据 - * @return / - */ - private List getAreaList(List cityList) { - List areaList = new ArrayList<>(); - - // 实际业务中一般采用数据库读取的形式,这里直接拼接创建 - areaList.add(new DemoCityData(0, 0, "瑶海区")); - areaList.add(new DemoCityData(1, 0, "庐江区")); - areaList.add(new DemoCityData(2, 1, "南宁县")); - areaList.add(new DemoCityData(3, 1, "镜湖区")); - areaList.add(new DemoCityData(4, 2, "玄武区")); - areaList.add(new DemoCityData(5, 2, "秦淮区")); - areaList.add(new DemoCityData(6, 3, "宜兴市")); - areaList.add(new DemoCityData(7, 3, "新吴区")); - areaList.add(new DemoCityData(8, 4, "鼓楼区")); - areaList.add(new DemoCityData(9, 4, "丰县")); - - selectParentData(cityList, areaList); - - return areaList; - } - - /** - * 模拟数据库的查询父数据操作 - * - * @param parentList / - * @param sonList / - */ - private void selectParentData(List parentList, List sonList) { - Map> parentGroupByIdMap = - parentList.stream().collect(Collectors.groupingBy(DemoCityData::getId)); - - sonList.forEach(everySon -> { - if (parentGroupByIdMap.containsKey(everySon.getPid())) { - everySon.setPData(parentGroupByIdMap.get(everySon.getPid()).get(0)); - } - }); - } - - /** - * 模拟的数据库省市县 - */ - @Data - private static class DemoCityData { - /** - * 数据库id字段 - */ - private Integer id; - /** - * 数据库pid字段 - */ - private Integer pid; - /** - * 数据库name字段 - */ - private String name; - /** - * MyBatisPlus连带查询父数据 - */ - private DemoCityData pData; - - public DemoCityData(Integer id, Integer pid, String name) { - this.id = id; - this.pid = pid; - this.name = name; - } - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/SensitiveServiceImpl.java b/dk-example/demo/src/main/java/org/dromara/demo/service/impl/SensitiveServiceImpl.java deleted file mode 100644 index 01cc1a6..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/SensitiveServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.dromara.demo.service.impl; - -import cn.dev33.satoken.stp.StpUtil; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.common.sensitive.core.SensitiveService; -import org.dromara.common.tenant.helper.TenantHelper; -import org.springframework.stereotype.Service; - -/** - * 脱敏服务 - * 默认管理员不过滤 - * 需自行根据业务重写实现 - * - * @author Lion Li - */ -@Service -public class SensitiveServiceImpl implements SensitiveService { - - /** - * 是否脱敏 - */ - @Override - public boolean isSensitive(String roleKey, String perms) { - if (!LoginHelper.isLogin()) { - return true; - } - boolean roleExist = StringUtils.isNotBlank(roleKey); - boolean permsExist = StringUtils.isNotBlank(perms); - if (roleExist && permsExist) { - if (StpUtil.hasRole(roleKey) && StpUtil.hasPermission(perms)) { - return false; - } - } else if (roleExist && StpUtil.hasRole(roleKey)) { - return false; - } else if (permsExist && StpUtil.hasPermission(perms)) { - return false; - } - - if (TenantHelper.isEnable()) { - return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin(); - } - return !LoginHelper.isSuperAdmin(); - } - -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java b/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java deleted file mode 100644 index 07ad54e..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.dromara.demo.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.dromara.common.core.exception.ServiceException; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.demo.domain.TestDemo; -import org.dromara.demo.domain.bo.TestDemoBo; -import org.dromara.demo.domain.vo.TestDemoVo; -import org.dromara.demo.mapper.TestDemoMapper; -import org.dromara.demo.service.ITestDemoService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 测试单表Service业务层处理 - * - * @author Lion Li - * @date 2021-07-26 - */ -@RequiredArgsConstructor -@Service -public class TestDemoServiceImpl implements ITestDemoService { - - private final TestDemoMapper baseMapper; - - @Override - public TestDemoVo queryById(Long id) { - return baseMapper.selectVoById(id); - } - - @Override - public TableDataInfo queryPageList(TestDemoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 自定义分页查询 - */ - @Override - public TableDataInfo customPageList(TestDemoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.customPageList(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - @Override - public List queryList(TestDemoBo bo) { - return baseMapper.selectVoList(buildQueryWrapper(bo)); - } - - private LambdaQueryWrapper buildQueryWrapper(TestDemoBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getTestKey()), TestDemo::getTestKey, bo.getTestKey()); - lqw.eq(StringUtils.isNotBlank(bo.getValue()), TestDemo::getValue, bo.getValue()); - lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, - TestDemo::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); - lqw.orderByAsc(TestDemo::getId); - return lqw; - } - - @Override - public Boolean insertByBo(TestDemoBo bo) { - TestDemo add = BeanUtil.toBean(bo, TestDemo.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - @Override - public Boolean updateByBo(TestDemoBo bo) { - TestDemo update = BeanUtil.toBean(bo, TestDemo.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - * - * @param entity 实体类数据 - */ - private void validEntityBeforeSave(TestDemo entity) { - //TODO 做一些数据校验,如唯一约束 - } - - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - // 做一些业务上的校验,判断是否需要校验 - List list = baseMapper.selectByIds(ids); - if (list.size() != ids.size()) { - throw new ServiceException("您没有删除权限!"); - } - } - return baseMapper.deleteByIds(ids) > 0; - } - - @Override - public Boolean saveBatch(List list) { - return baseMapper.insertBatch(list); - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java b/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java deleted file mode 100644 index 3b5fa05..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.dromara.demo.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.demo.domain.TestTree; -import org.dromara.demo.domain.bo.TestTreeBo; -import org.dromara.demo.domain.vo.TestTreeVo; -import org.dromara.demo.mapper.TestTreeMapper; -import org.dromara.demo.service.ITestTreeService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 测试树表Service业务层处理 - * - * @author Lion Li - * @date 2021-07-26 - */ -// @DS("slave") // 切换从库查询 -@RequiredArgsConstructor -@Service -public class TestTreeServiceImpl implements ITestTreeService { - - private final TestTreeMapper baseMapper; - - @Override - public TestTreeVo queryById(Long id) { - return baseMapper.selectVoById(id); - } - - // @DS("slave") // 切换从库查询 - @Override - public List queryList(TestTreeBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(TestTreeBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getTreeName()), TestTree::getTreeName, bo.getTreeName()); - lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, - TestTree::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); - lqw.orderByAsc(TestTree::getId); - return lqw; - } - - @Override - public Boolean insertByBo(TestTreeBo bo) { - TestTree add = BeanUtil.toBean(bo, TestTree.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - @Override - public Boolean updateByBo(TestTreeBo bo) { - TestTree update = BeanUtil.toBean(bo, TestTree.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - * - * @param entity 实体类数据 - */ - private void validEntityBeforeSave(TestTree entity) { - //TODO 做一些数据校验,如唯一约束 - } - - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteByIds(ids) > 0; - } -} diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/package-info.java b/dk-example/demo/src/main/java/org/dromara/demo/service/impl/package-info.java deleted file mode 100644 index 7011984..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/impl/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.demo.service.impl; diff --git a/dk-example/demo/src/main/java/org/dromara/demo/service/package-info.java b/dk-example/demo/src/main/java/org/dromara/demo/service/package-info.java deleted file mode 100644 index 16727ff..0000000 --- a/dk-example/demo/src/main/java/org/dromara/demo/service/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.demo.service; diff --git a/dk-example/demo/src/main/resources/application.yml b/dk-example/demo/src/main/resources/application.yml deleted file mode 100644 index 3d5c70d..0000000 --- a/dk-example/demo/src/main/resources/application.yml +++ /dev/null @@ -1,116 +0,0 @@ -# Tomcat -server: - port: 9401 - -# Spring -spring: - application: - # 应用名称 - name: demo - profiles: - # 环境配置 - active: @profiles.active@ - ---- # nacos 配置 -spring: - cloud: - nacos: - # nacos 服务地址 - server-addr: @nacos.server@ - username: @nacos.username@ - password: @nacos.password@ - discovery: - # 注册组 - group: @nacos.discovery.group@ - namespace: ${spring.profiles.active} - config: - # 配置组 - group: @nacos.config.group@ - namespace: ${spring.profiles.active} - config: - import: - - optional:nacos:application-common.yml - - optional:nacos:ruoyi-resource.yml - - optional:nacos:datasource.yml - ---- # 数据源设置 需在 system 数据源下 执行 test.sql 文件 -spring: - datasource: - dynamic: - seata: false - # 设置默认的数据源或者数据源组,默认值即为 master - primary: master - datasource: - # 主库数据源 - master: - type: ${spring.datasource.type} - driver-class-name: com.mysql.cj.jdbc.Driver - url: ${datasource.system-master.url} - username: ${datasource.system-master.username} - password: ${datasource.system-master.password} - sharding: - lazy: true - type: ${spring.datasource.type} - driver-class-name: com.mysql.cj.jdbc.Driver - # shardingproxy 服务的ip地址 - url: jdbc:mysql://127.0.0.1:3307/data-center_db?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true - username: root - password: root -# oracle: -# type: ${spring.datasource.type} -# driverClassName: oracle.jdbc.OracleDriver -# url: ${datasource.system-oracle.url} -# username: ${datasource.system-oracle.username} -# password: ${datasource.system-oracle.password} -# hikari: -# connectionTestQuery: SELECT 1 FROM DUAL -# postgres: -# type: ${spring.datasource.type} -# driverClassName: org.postgresql.Driver -# url: ${datasource.system-postgres.url} -# username: ${datasource.system-postgres.username} -# password: ${datasource.system-postgres.password} - ---- # elasticsearch 功能配置 -# 文档地址: https://www.easy-es.cn/ -# 更改包名需要去 EasyEsConfiguration 修改包扫描(后续版本支持配置文件读取) -easy-es: - # 是否开启EE自动配置 - enable: false - # es连接地址+端口 格式必须为ip:port,如果是集群则可用逗号隔开 - address : localhost:9200 - # 默认为http - schema: http - # 注意ES建议使用账号认证 不使用会报警告日志 - #如果无账号密码则可不配置此行 - #username: - #如果无账号密码则可不配置此行 - #password: - # 心跳策略时间 单位:ms - keep-alive-millis: 18000 - # 连接超时时间 单位:ms - connectTimeout: 5000 - # 通信超时时间 单位:ms - socketTimeout: 5000 - # 连接请求超时时间 单位:ms - connectionRequestTimeout: 5000 - # 最大连接数 单位:个 - maxConnTotal: 100 - # 最大连接路由数 单位:个 - maxConnPerRoute: 100 - global-config: - # 开启控制台打印通过本框架生成的DSL语句,默认为开启,测试稳定后的生产环境建议关闭,以提升少量性能 - print-dsl: true - # 异步处理索引是否阻塞主线程 默认阻塞 数据量过大时调整为非阻塞异步进行 项目启动更快 - asyncProcessIndexBlocking: true - db-config: - # 是否开启下划线转驼峰 默认为false - map-underscore-to-camel-case: true - # id生成策略 customize为自定义,id值由用户生成,比如取MySQL中的数据id,如缺省此项配置,则id默认策略为es自动生成 - id-type: customize - # 字段更新策略 默认为not_null - field-strategy: not_null - # 默认开启,查询若指定了size超过1w条时也会自动开启,开启后查询所有匹配数据,若不开启,会导致无法获取数据总条数,其它功能不受影响. - enable-track-total-hits: true - # 数据刷新策略,默认为不刷新 - refresh-policy: immediate diff --git a/dk-example/demo/src/main/resources/banner.txt b/dk-example/demo/src/main/resources/banner.txt deleted file mode 100644 index 1514deb..0000000 --- a/dk-example/demo/src/main/resources/banner.txt +++ /dev/null @@ -1,10 +0,0 @@ -Spring Boot Version: ${spring-boot.version} -Spring Application Name: ${spring.application.name} - _ _ - (_) | | - _ __ _ _ ___ _ _ _ ______ __| | ___ _ __ ___ ___ -| '__| | | |/ _ \| | | | |______/ _` |/ _ \ '_ ` _ \ / _ \ -| | | |_| | (_) | |_| | | | (_| | __/ | | | | | (_) | -|_| \__,_|\___/ \__, |_| \__,_|\___|_| |_| |_|\___/ - __/ | - |___/ diff --git a/dk-example/demo/src/main/resources/excel/单列表.xlsx b/dk-example/demo/src/main/resources/excel/单列表.xlsx deleted file mode 100644 index 0f7347d652c06ae29eca9fa6cd1055ec6ae6c6e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10787 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 GzyAY;y@`_m diff --git a/dk-example/demo/src/main/resources/logback-plus.xml b/dk-example/demo/src/main/resources/logback-plus.xml deleted file mode 100644 index ec6586f..0000000 --- a/dk-example/demo/src/main/resources/logback-plus.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - ${console.log.pattern} - utf-8 - - - - - - - - - - diff --git a/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderItemMapper.xml b/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderItemMapper.xml deleted file mode 100644 index aeed502..0000000 --- a/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderItemMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderMapper.xml b/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderMapper.xml deleted file mode 100644 index 420912e..0000000 --- a/dk-example/demo/src/main/resources/mapper/demo/ShardingOrderMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/dk-example/demo/src/main/resources/mapper/demo/TestDemoMapper.xml b/dk-example/demo/src/main/resources/mapper/demo/TestDemoMapper.xml deleted file mode 100644 index 9b722d1..0000000 --- a/dk-example/demo/src/main/resources/mapper/demo/TestDemoMapper.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/dk-example/demo/src/main/resources/mapper/demo/TestTreeMapper.xml b/dk-example/demo/src/main/resources/mapper/demo/TestTreeMapper.xml deleted file mode 100644 index f34a565..0000000 --- a/dk-example/demo/src/main/resources/mapper/demo/TestTreeMapper.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dk-example/demo/src/main/resources/mapper/package-info.md b/dk-example/demo/src/main/resources/mapper/package-info.md deleted file mode 100644 index c938b1e..0000000 --- a/dk-example/demo/src/main/resources/mapper/package-info.md +++ /dev/null @@ -1,3 +0,0 @@ -java包使用 `.` 分割 resource 目录使用 `/` 分割 -
-此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/dk-example/demo/src/test/java/org/dromara/demo/AssertUnitTest.java b/dk-example/demo/src/test/java/org/dromara/demo/AssertUnitTest.java deleted file mode 100644 index 40c6ab3..0000000 --- a/dk-example/demo/src/test/java/org/dromara/demo/AssertUnitTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.dromara.demo; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -/** - * 断言单元测试案例 - * - * @author Lion Li - */ -@DisplayName("断言单元测试案例") -public class AssertUnitTest { - - @DisplayName("测试 assertEquals 方法") - @Test - public void testAssertEquals() { - Assertions.assertEquals("666", new String("666")); - Assertions.assertNotEquals("666", new String("666")); - } - - @DisplayName("测试 assertSame 方法") - @Test - public void testAssertSame() { - Object obj = new Object(); - Object obj1 = obj; - Assertions.assertSame(obj, obj1); - Assertions.assertNotSame(obj, obj1); - } - - @DisplayName("测试 assertTrue 方法") - @Test - public void testAssertTrue() { - Assertions.assertTrue(true); - Assertions.assertFalse(true); - } - - @DisplayName("测试 assertNull 方法") - @Test - public void testAssertNull() { - Assertions.assertNull(null); - Assertions.assertNotNull(null); - } - -} diff --git a/dk-example/demo/src/test/java/org/dromara/demo/DemoUnitTest.java b/dk-example/demo/src/test/java/org/dromara/demo/DemoUnitTest.java deleted file mode 100644 index a3e96dd..0000000 --- a/dk-example/demo/src/test/java/org/dromara/demo/DemoUnitTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.dromara.demo; - -import org.junit.jupiter.api.*; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.concurrent.TimeUnit; - -/** - * 单元测试案例 - * - * @author Lion Li - */ -@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件 -@DisplayName("单元测试案例") -public class DemoUnitTest { - - @Value("${spring.application.name}") - private String appName; - - @DisplayName("测试 @SpringBootTest @Test @DisplayName 注解") - @Test - public void testTest() { - System.out.println(appName); - } - - @Disabled - @DisplayName("测试 @Disabled 注解") - @Test - public void testDisabled() { - System.out.println(appName); - } - - @Timeout(value = 2L, unit = TimeUnit.SECONDS) - @DisplayName("测试 @Timeout 注解") - @Test - public void testTimeout() throws InterruptedException { - Thread.sleep(3000); - System.out.println(appName); - } - - - @DisplayName("测试 @RepeatedTest 注解") - @RepeatedTest(3) - public void testRepeatedTest() { - System.out.println(666); - } - - @BeforeAll - public static void testBeforeAll() { - System.out.println("@BeforeAll =================="); - } - - @BeforeEach - public void testBeforeEach() { - System.out.println("@BeforeEach =================="); - } - - @AfterEach - public void testAfterEach() { - System.out.println("@AfterEach =================="); - } - - @AfterAll - public static void testAfterAll() { - System.out.println("@AfterAll =================="); - } - -} diff --git a/dk-example/demo/src/test/java/org/dromara/demo/ParamUnitTest.java b/dk-example/demo/src/test/java/org/dromara/demo/ParamUnitTest.java deleted file mode 100644 index ce56d53..0000000 --- a/dk-example/demo/src/test/java/org/dromara/demo/ParamUnitTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.dromara.demo; - -import org.dromara.common.core.enums.UserType; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.EnumSource; -import org.junit.jupiter.params.provider.MethodSource; -import org.junit.jupiter.params.provider.NullSource; -import org.junit.jupiter.params.provider.ValueSource; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - -/** - * 带参数单元测试案例 - * - * @author Lion Li - */ -@DisplayName("带参数单元测试案例") -public class ParamUnitTest { - - @DisplayName("测试 @ValueSource 注解") - @ParameterizedTest - @ValueSource(strings = {"t1", "t2", "t3"}) - public void testValueSource(String str) { - System.out.println(str); - } - - @DisplayName("测试 @NullSource 注解") - @ParameterizedTest - @NullSource - public void testNullSource(String str) { - System.out.println(str); - } - - @DisplayName("测试 @EnumSource 注解") - @ParameterizedTest - @EnumSource(UserType.class) - public void testEnumSource(UserType type) { - System.out.println(type.getUserType()); - } - - @DisplayName("测试 @MethodSource 注解") - @ParameterizedTest - @MethodSource("getParam") - public void testMethodSource(String str) { - System.out.println(str); - } - - public static Stream getParam() { - List list = new ArrayList<>(); - list.add("t1"); - list.add("t2"); - list.add("t3"); - return list.stream(); - } - - @BeforeEach - public void testBeforeEach() { - System.out.println("@BeforeEach =================="); - } - - @AfterEach - public void testAfterEach() { - System.out.println("@AfterEach =================="); - } - - -} diff --git a/dk-example/demo/src/test/java/org/dromara/demo/TOrderTest.java b/dk-example/demo/src/test/java/org/dromara/demo/TOrderTest.java deleted file mode 100644 index 300057d..0000000 --- a/dk-example/demo/src/test/java/org/dromara/demo/TOrderTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.dromara.demo; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - -import org.dromara.demo.domain.ShardingOrder; -import org.dromara.demo.mapper.ShardingOrderMapper; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class TOrderTest { - - @Autowired - ShardingOrderMapper torderMapper; - - - @Test - void find() { - //Order order = orderMapper.selectById(1640990702722723841L); - } - - @Test - void page() { - Page page = new Page<>(); - page.setCurrent(3L); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.orderByAsc("order_id"); - torderMapper.selectPage(page,queryWrapper); - System.out.println(page.getTotal()); - for(ShardingOrder order : page.getRecords()){ - System.out.print(order.getTotalMoney()+" "); - } - } - - @Test - void insert() { - for(Long i = 1L; i <= 100L; i++){ - ShardingOrder torder = new ShardingOrder(); - torder.setUserId(i); - torder.setTotalMoney(100 + Integer.parseInt(i+"")); - torderMapper.insert(torder); - } - - } - - -} diff --git a/dk-example/demo/src/test/java/org/dromara/demo/TagUnitTest.java b/dk-example/demo/src/test/java/org/dromara/demo/TagUnitTest.java deleted file mode 100644 index 6d8c416..0000000 --- a/dk-example/demo/src/test/java/org/dromara/demo/TagUnitTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.dromara.demo; - -import org.junit.jupiter.api.*; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 标签单元测试案例 - * - * @author Lion Li - */ -@SpringBootTest -@DisplayName("标签单元测试案例") -public class TagUnitTest { - - @Tag("dev") - @DisplayName("测试 @Tag dev") - @Test - public void testTagDev() { - System.out.println("dev"); - } - - @Tag("prod") - @DisplayName("测试 @Tag prod") - @Test - public void testTagProd() { - System.out.println("prod"); - } - - @Tag("local") - @DisplayName("测试 @Tag local") - @Test - public void testTagLocal() { - System.out.println("local"); - } - - @Tag("exclude") - @DisplayName("测试 @Tag exclude") - @Test - public void testTagExclude() { - System.out.println("exclude"); - } - - @BeforeEach - public void testBeforeEach() { - System.out.println("@BeforeEach =================="); - } - - @AfterEach - public void testAfterEach() { - System.out.println("@AfterEach =================="); - } - - -} diff --git a/dk-example/pom.xml b/dk-example/pom.xml index 8557475..f8123b4 100644 --- a/dk-example/pom.xml +++ b/dk-example/pom.xml @@ -9,7 +9,6 @@ 4.0.0 - demo test-mq