From 10c1463a9ec851cdba76dee248ee5b61addb10b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B5=E4=BA=91=E9=A3=9E?= <2281149242@qq.com> Date: Mon, 28 Apr 2025 00:11:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .flattened-pom.xml | 22 + pom.xml | 27 + ruoyi-demo/.flattened-pom.xml | 84 ++ ruoyi-demo/pom.xml | 108 +++ .../demo/controller/MailController.java | 77 ++ .../demo/controller/RedisCacheController.java | 98 +++ .../demo/controller/RedisLockController.java | 69 ++ .../controller/RedisPubSubController.java | 62 ++ .../RedisRateLimiterController.java | 64 ++ .../demo/controller/SmsController.java | 101 +++ .../controller/Swagger3DemoController.java | 25 + .../demo/controller/TestBatchController.java | 114 +++ .../demo/controller/TestDemoController.java | 181 +++++ .../controller/TestEncryptController.java | 70 ++ .../demo/controller/TestExcelController.java | 255 +++++++ .../demo/controller/TestI18nController.java | 86 +++ .../controller/TestSensitiveController.java | 86 +++ .../demo/controller/TestTreeController.java | 160 ++++ .../demo/controller/WeSocketController.java | 32 + .../dromara/demo/controller/package-info.java | 1 + .../queue/BoundedQueueController.java | 94 +++ .../queue/DelayedQueueController.java | 110 +++ .../demo/controller/queue/PriorityDemo.java | 30 + .../queue/PriorityQueueController.java | 124 +++ .../org/dromara/demo/domain/TestDemo.java | 66 ++ .../dromara/demo/domain/TestDemoEncrypt.java | 20 + .../org/dromara/demo/domain/TestTree.java | 65 ++ .../dromara/demo/domain/bo/TestDemoBo.java | 73 ++ .../demo/domain/bo/TestDemoImportVo.java | 56 ++ .../dromara/demo/domain/bo/TestTreeBo.java | 61 ++ .../org/dromara/demo/domain/package-info.java | 1 + .../dromara/demo/domain/vo/ExportDemoVo.java | 142 ++++ .../dromara/demo/domain/vo/TestDemoVo.java | 120 +++ .../dromara/demo/domain/vo/TestTreeVo.java | 61 ++ .../demo/listener/ExportDemoListener.java | 99 +++ .../demo/mapper/TestDemoEncryptMapper.java | 13 + .../dromara/demo/mapper/TestDemoMapper.java | 64 ++ .../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 | 236 ++++++ .../service/impl/TestDemoServiceImpl.java | 116 +++ .../service/impl/TestTreeServiceImpl.java | 88 +++ .../demo/service/impl/package-info.java | 1 + .../dromara/demo/service/package-info.java | 1 + .../src/main/resources/excel/单列表.xlsx | Bin 0 -> 10787 bytes .../main/resources/excel/多sheet列表.xlsx | Bin 0 -> 13359 bytes .../src/main/resources/excel/多列表.xlsx | Bin 0 -> 10761 bytes .../resources/mapper/demo/TestDemoMapper.xml | 11 + .../resources/mapper/demo/TestTreeMapper.xml | 7 + .../src/main/resources/mapper/package-info.md | 3 + .../target/classes/META-INF/mps/autoMapper | 4 + .../target/classes/excel/单列表.xlsx | Bin 0 -> 10787 bytes .../target/classes/excel/多sheet列表.xlsx | Bin 0 -> 13359 bytes .../target/classes/excel/多列表.xlsx | Bin 0 -> 10761 bytes .../linpeilie/AutoMapperConfig__0.class | Bin 0 -> 483 bytes .../linpeilie/ConverterMapperAdapter__0.class | Bin 0 -> 550 bytes .../classes/mapper/demo/TestDemoMapper.xml | 11 + .../classes/mapper/demo/TestTreeMapper.xml | 7 + .../target/classes/mapper/package-info.md | 3 + .../demo/controller/MailController.class | Bin 0 -> 3636 bytes .../controller/MailController__Javadoc.json | 1 + .../controller/RedisCacheController.class | Bin 0 -> 3280 bytes .../RedisCacheController__Javadoc.json | 1 + .../demo/controller/RedisLockController.class | Bin 0 -> 3416 bytes .../RedisLockController__Javadoc.json | 1 + .../controller/RedisPubSubController.class | Bin 0 -> 3145 bytes .../RedisPubSubController__Javadoc.json | 1 + .../RedisRateLimiterController.class | Bin 0 -> 1991 bytes .../RedisRateLimiterController__Javadoc.json | 1 + .../demo/controller/SmsController.class | Bin 0 -> 2871 bytes .../controller/SmsController__Javadoc.json | 1 + .../controller/Swagger3DemoController.class | Bin 0 -> 1425 bytes .../Swagger3DemoController__Javadoc.json | 1 + .../demo/controller/TestBatchController.class | Bin 0 -> 4580 bytes .../TestBatchController__Javadoc.json | 1 + .../demo/controller/TestDemoController.class | Bin 0 -> 7359 bytes .../TestDemoController__Javadoc.json | 1 + .../controller/TestEncryptController.class | Bin 0 -> 2485 bytes .../TestEncryptController__Javadoc.json | 1 + .../TestExcelController$TestObj.class | Bin 0 -> 4042 bytes .../TestExcelController$TestObj1.class | Bin 0 -> 3073 bytes .../demo/controller/TestExcelController.class | Bin 0 -> 7346 bytes .../TestExcelController__Javadoc.json | 1 + .../TestI18nController$TestI18nBo.class | Bin 0 -> 2939 bytes .../demo/controller/TestI18nController.class | Bin 0 -> 2087 bytes .../TestI18nController__Javadoc.json | 1 + ...estSensitiveController$TestSensitive.class | Bin 0 -> 4353 bytes ...tiveController$TestSensitive__Javadoc.json | 1 + .../controller/TestSensitiveController.class | Bin 0 -> 1577 bytes .../TestSensitiveController__Javadoc.json | 1 + .../demo/controller/TestTreeController.class | Bin 0 -> 5026 bytes .../TestTreeController__Javadoc.json | 1 + .../demo/controller/WeSocketController.class | Bin 0 -> 1616 bytes .../WeSocketController__Javadoc.json | 1 + .../queue/BoundedQueueController.class | Bin 0 -> 3511 bytes .../BoundedQueueController__Javadoc.json | 1 + .../queue/DelayedQueueController.class | Bin 0 -> 4285 bytes .../DelayedQueueController__Javadoc.json | 1 + .../demo/controller/queue/PriorityDemo.class | Bin 0 -> 2942 bytes .../queue/PriorityDemo__Javadoc.json | 1 + .../queue/PriorityQueueController.class | Bin 0 -> 3671 bytes .../PriorityQueueController__Javadoc.json | 1 + .../org/dromara/demo/domain/TestDemo.class | Bin 0 -> 5789 bytes .../dromara/demo/domain/TestDemoEncrypt.class | Bin 0 -> 3851 bytes .../demo/domain/TestDemoEncrypt__Javadoc.json | 1 + .../domain/TestDemoToTestDemoVoMapper.class | Bin 0 -> 617 bytes .../TestDemoToTestDemoVoMapperImpl.class | Bin 0 -> 2340 bytes .../demo/domain/TestDemo__Javadoc.json | 1 + .../org/dromara/demo/domain/TestTree.class | Bin 0 -> 5164 bytes .../domain/TestTreeToTestTreeVoMapper.class | Bin 0 -> 617 bytes .../TestTreeToTestTreeVoMapperImpl.class | Bin 0 -> 2007 bytes .../demo/domain/TestTree__Javadoc.json | 1 + .../dromara/demo/domain/bo/TestDemoBo.class | Bin 0 -> 5269 bytes .../bo/TestDemoBoToTestDemoMapper.class | Bin 0 -> 498 bytes .../bo/TestDemoBoToTestDemoMapperImpl.class | Bin 0 -> 3022 bytes .../demo/domain/bo/TestDemoBo__Javadoc.json | 1 + .../demo/domain/bo/TestDemoImportVo.class | Bin 0 -> 4428 bytes .../domain/bo/TestDemoImportVo__Javadoc.json | 1 + .../dromara/demo/domain/bo/TestTreeBo.class | Bin 0 -> 4589 bytes .../bo/TestTreeBoToTestTreeMapper.class | Bin 0 -> 498 bytes .../bo/TestTreeBoToTestTreeMapperImpl.class | Bin 0 -> 2909 bytes .../demo/domain/bo/TestTreeBo__Javadoc.json | 1 + .../dromara/demo/domain/vo/ExportDemoVo.class | Bin 0 -> 9162 bytes .../demo/domain/vo/ExportDemoVo__Javadoc.json | 1 + .../dromara/demo/domain/vo/TestDemoVo.class | Bin 0 -> 8487 bytes .../vo/TestDemoVoToTestDemoMapper.class | Bin 0 -> 556 bytes .../vo/TestDemoVoToTestDemoMapperImpl.class | Bin 0 -> 2342 bytes .../demo/domain/vo/TestDemoVo__Javadoc.json | 1 + .../dromara/demo/domain/vo/TestTreeVo.class | Bin 0 -> 4855 bytes .../vo/TestTreeVoToTestTreeMapper.class | Bin 0 -> 556 bytes .../vo/TestTreeVoToTestTreeMapperImpl.class | Bin 0 -> 2009 bytes .../demo/domain/vo/TestTreeVo__Javadoc.json | 1 + .../demo/listener/ExportDemoListener.class | Bin 0 -> 2846 bytes .../listener/ExportDemoListener__Javadoc.json | 1 + .../demo/mapper/TestDemoEncryptMapper.class | Bin 0 -> 388 bytes .../TestDemoEncryptMapper__Javadoc.json | 1 + .../dromara/demo/mapper/TestDemoMapper.class | Bin 0 -> 3727 bytes .../demo/mapper/TestDemoMapper__Javadoc.json | 1 + .../dromara/demo/mapper/TestTreeMapper.class | Bin 0 -> 618 bytes .../demo/mapper/TestTreeMapper__Javadoc.json | 1 + .../demo/service/IExportExcelService.class | Bin 0 -> 261 bytes .../service/IExportExcelService__Javadoc.json | 1 + .../demo/service/ITestDemoService.class | Bin 0 -> 1413 bytes .../service/ITestDemoService__Javadoc.json | 1 + .../demo/service/ITestTreeService.class | Bin 0 -> 815 bytes .../service/ITestTreeService__Javadoc.json | 1 + .../ExportExcelServiceImpl$DemoCityData.class | Bin 0 -> 3790 bytes ...xcelServiceImpl$DemoCityData__Javadoc.json | 1 + .../service/impl/ExportExcelServiceImpl.class | Bin 0 -> 9718 bytes .../impl/ExportExcelServiceImpl__Javadoc.json | 1 + .../service/impl/TestDemoServiceImpl.class | Bin 0 -> 9195 bytes .../impl/TestDemoServiceImpl__Javadoc.json | 1 + .../service/impl/TestTreeServiceImpl.class | Bin 0 -> 6631 bytes .../impl/TestTreeServiceImpl__Javadoc.json | 1 + .../github/linpeilie/AutoMapperConfig__0.java | 14 + .../linpeilie/ConverterMapperAdapter__0.java | 10 + .../domain/TestDemoToTestDemoVoMapper.java | 16 + .../TestDemoToTestDemoVoMapperImpl.java | 56 ++ .../domain/TestTreeToTestTreeVoMapper.java | 16 + .../TestTreeToTestTreeVoMapperImpl.java | 48 ++ .../domain/bo/TestDemoBoToTestDemoMapper.java | 14 + .../bo/TestDemoBoToTestDemoMapperImpl.java | 82 ++ .../domain/bo/TestTreeBoToTestTreeMapper.java | 14 + .../bo/TestTreeBoToTestTreeMapperImpl.java | 80 ++ .../domain/vo/TestDemoVoToTestDemoMapper.java | 15 + .../vo/TestDemoVoToTestDemoMapperImpl.java | 56 ++ .../domain/vo/TestTreeVoToTestTreeMapper.java | 15 + .../vo/TestTreeVoToTestTreeMapperImpl.java | 48 ++ ruoyi-generator/.flattened-pom.xml | 50 ++ ruoyi-generator/pom.xml | 84 ++ .../dromara/generator/config/GenConfig.java | 86 +++ .../config/MyBatisDataSourceMonitor.java | 136 ++++ .../generator/constant/GenConstants.java | 186 +++++ .../generator/controller/GenController.java | 324 ++++++++ .../dromara/generator/domain/GenTable.java | 215 ++++++ .../generator/domain/GenTableColumn.java | 276 +++++++ .../mapper/GenTableColumnMapper.java | 15 + .../generator/mapper/GenTableMapper.java | 51 ++ .../service/GenTableServiceImpl.java | 431 +++++++++++ .../generator/service/IGenTableService.java | 141 ++++ .../org/dromara/generator/util/GenUtils.java | 268 +++++++ .../generator/util/VelocityInitializer.java | 35 + .../dromara/generator/util/VelocityUtils.java | 466 +++++++++++ .../src/main/resources/generator.yml | 10 + .../mapper/generator/GenTableColumnMapper.xml | 10 + .../mapper/generator/GenTableMapper.xml | 42 + .../src/main/resources/mapper/package-info.md | 3 + .../src/main/resources/vm/java/bo.java.vm | 50 ++ .../main/resources/vm/java/controller.java.vm | 115 +++ .../src/main/resources/vm/java/domain.java.vm | 60 ++ .../src/main/resources/vm/java/mapper.java.vm | 15 + .../main/resources/vm/java/service.java.vm | 72 ++ .../resources/vm/java/serviceImpl.java.vm | 158 ++++ .../src/main/resources/vm/java/vo.java.vm | 66 ++ .../src/main/resources/vm/sql/oracle/sql.vm | 19 + .../src/main/resources/vm/sql/postgres/sql.vm | 20 + .../src/main/resources/vm/sql/sql.vm | 19 + .../main/resources/vm/sql/sqlserver/sql.vm | 19 + .../src/main/resources/vm/ts/api.ts.vm | 63 ++ .../src/main/resources/vm/ts/types.ts.vm | 64 ++ .../main/resources/vm/vue/index-tree.vue.vm | 498 ++++++++++++ .../src/main/resources/vm/vue/index.vue.vm | 459 +++++++++++ .../src/main/resources/vm/xml/mapper.xml.vm | 7 + .../spring-configuration-metadata.json | 11 + ruoyi-generator/target/classes/generator.yml | 10 + .../mapper/generator/GenTableColumnMapper.xml | 10 + .../mapper/generator/GenTableMapper.xml | 42 + .../target/classes/mapper/package-info.md | 3 + .../dromara/generator/config/GenConfig.class | Bin 0 -> 1678 bytes .../generator/config/GenConfig__Javadoc.json | 1 + .../config/MyBatisDataSourceMonitor.class | Bin 0 -> 4220 bytes .../MyBatisDataSourceMonitor__Javadoc.json | 1 + .../generator/constant/GenConstants.class | Bin 0 -> 3209 bytes .../constant/GenConstants__Javadoc.json | 1 + .../generator/controller/GenController.class | Bin 0 -> 9593 bytes .../controller/GenController__Javadoc.json | 1 + .../dromara/generator/domain/GenTable.class | Bin 0 -> 17868 bytes .../generator/domain/GenTableColumn.class | Bin 0 -> 14715 bytes .../domain/GenTableColumn__Javadoc.json | 1 + .../generator/domain/GenTable__Javadoc.json | 1 + .../mapper/GenTableColumnMapper.class | Bin 0 -> 544 bytes .../mapper/GenTableColumnMapper__Javadoc.json | 1 + .../generator/mapper/GenTableMapper.class | Bin 0 -> 1115 bytes .../mapper/GenTableMapper__Javadoc.json | 1 + .../service/GenTableServiceImpl.class | Bin 0 -> 28920 bytes .../service/GenTableServiceImpl__Javadoc.json | 1 + .../generator/service/IGenTableService.class | Bin 0 -> 2237 bytes .../service/IGenTableService__Javadoc.json | 1 + .../org/dromara/generator/util/GenUtils.class | Bin 0 -> 5932 bytes .../generator/util/GenUtils__Javadoc.json | 1 + .../generator/util/VelocityInitializer.class | Bin 0 -> 1141 bytes .../util/VelocityInitializer__Javadoc.json | 1 + .../generator/util/VelocityUtils.class | Bin 0 -> 11560 bytes .../util/VelocityUtils__Javadoc.json | 1 + .../target/classes/vm/java/bo.java.vm | 50 ++ .../target/classes/vm/java/controller.java.vm | 115 +++ .../target/classes/vm/java/domain.java.vm | 60 ++ .../target/classes/vm/java/mapper.java.vm | 15 + .../target/classes/vm/java/service.java.vm | 72 ++ .../classes/vm/java/serviceImpl.java.vm | 158 ++++ .../target/classes/vm/java/vo.java.vm | 66 ++ .../target/classes/vm/sql/oracle/sql.vm | 19 + .../target/classes/vm/sql/postgres/sql.vm | 20 + ruoyi-generator/target/classes/vm/sql/sql.vm | 19 + .../target/classes/vm/sql/sqlserver/sql.vm | 19 + .../target/classes/vm/ts/api.ts.vm | 63 ++ .../target/classes/vm/ts/types.ts.vm | 64 ++ .../target/classes/vm/vue/index-tree.vue.vm | 498 ++++++++++++ .../target/classes/vm/vue/index.vue.vm | 459 +++++++++++ .../target/classes/vm/xml/mapper.xml.vm | 7 + ruoyi-job/.flattened-pom.xml | 24 + ruoyi-job/pom.xml | 34 + .../java/org/dromara/job/package-info.java | 1 + .../job/snailjob/TestAnnoJobExecutor.java | 36 + .../job/snailjob/TestClassJobExecutor.java | 30 + .../job/snailjob/TestAnnoJobExecutor.class | Bin 0 -> 1504 bytes .../TestAnnoJobExecutor__Javadoc.json | 1 + .../job/snailjob/TestClassJobExecutor.class | Bin 0 -> 925 bytes .../TestClassJobExecutor__Javadoc.json | 1 + ruoyi-system/.flattened-pom.xml | 80 ++ ruoyi-system/pom.xml | 105 +++ .../controller/monitor/CacheController.java | 81 ++ .../monitor/SysLogininforController.java | 130 ++++ .../monitor/SysOperlogController.java | 105 +++ .../monitor/SysUserOnlineController.java | 171 +++++ .../system/SysClientController.java | 115 +++ .../system/SysConfigController.java | 137 ++++ .../controller/system/SysDeptController.java | 140 ++++ .../system/SysDictDataController.java | 123 +++ .../system/SysDictTypeController.java | 125 +++ .../controller/system/SysMenuController.java | 174 +++++ .../system/SysNoticeController.java | 90 +++ .../system/SysOssConfigController.java | 105 +++ .../controller/system/SysOssController.java | 108 +++ .../controller/system/SysPostController.java | 133 ++++ .../system/SysProfileController.java | 133 ++++ .../controller/system/SysRoleController.java | 229 ++++++ .../system/SysSocialController.java | 38 + .../system/SysTenantController.java | 193 +++++ .../system/SysTenantPackageController.java | 142 ++++ .../controller/system/SysUserController.java | 300 ++++++++ .../org/dromara/system/domain/SysCache.java | 47 ++ .../org/dromara/system/domain/SysClient.java | 77 ++ .../org/dromara/system/domain/SysConfig.java | 51 ++ .../org/dromara/system/domain/SysDept.java | 83 ++ .../dromara/system/domain/SysDictData.java | 71 ++ .../dromara/system/domain/SysDictType.java | 41 + .../dromara/system/domain/SysLogininfor.java | 85 +++ .../org/dromara/system/domain/SysMenu.java | 191 +++++ .../org/dromara/system/domain/SysNotice.java | 51 ++ .../org/dromara/system/domain/SysOperLog.java | 115 +++ .../org/dromara/system/domain/SysOss.java | 50 ++ .../dromara/system/domain/SysOssConfig.java | 89 +++ .../org/dromara/system/domain/SysPost.java | 61 ++ .../org/dromara/system/domain/SysRole.java | 79 ++ .../dromara/system/domain/SysRoleDept.java | 29 + .../dromara/system/domain/SysRoleMenu.java | 29 + .../org/dromara/system/domain/SysSocial.java | 136 ++++ .../org/dromara/system/domain/SysTenant.java | 103 +++ .../system/domain/SysTenantPackage.java | 60 ++ .../org/dromara/system/domain/SysUser.java | 115 +++ .../dromara/system/domain/SysUserOnline.java | 63 ++ .../dromara/system/domain/SysUserPost.java | 29 + .../dromara/system/domain/SysUserRole.java | 29 + .../dromara/system/domain/bo/SysClientBo.java | 80 ++ .../dromara/system/domain/bo/SysConfigBo.java | 59 ++ .../dromara/system/domain/bo/SysDeptBo.java | 76 ++ .../system/domain/bo/SysDictDataBo.java | 80 ++ .../system/domain/bo/SysDictTypeBo.java | 50 ++ .../system/domain/bo/SysLogininforBo.java | 87 +++ .../dromara/system/domain/bo/SysMenuBo.java | 110 +++ .../dromara/system/domain/bo/SysNoticeBo.java | 61 ++ .../system/domain/bo/SysOperLogBo.java | 127 +++ .../dromara/system/domain/bo/SysOssBo.java | 49 ++ .../system/domain/bo/SysOssConfigBo.java | 109 +++ .../dromara/system/domain/bo/SysPostBo.java | 75 ++ .../dromara/system/domain/bo/SysRoleBo.java | 94 +++ .../dromara/system/domain/bo/SysSocialBo.java | 142 ++++ .../dromara/system/domain/bo/SysTenantBo.java | 114 +++ .../system/domain/bo/SysTenantPackageBo.java | 59 ++ .../dromara/system/domain/bo/SysUserBo.java | 119 +++ .../system/domain/bo/SysUserPasswordBo.java | 29 + .../system/domain/bo/SysUserProfileBo.java | 53 ++ .../dromara/system/domain/vo/AvatarVo.java | 18 + .../system/domain/vo/CacheListInfoVo.java | 23 + .../system/domain/vo/DeptTreeSelectVo.java | 26 + .../system/domain/vo/MenuTreeSelectVo.java | 26 + .../org/dromara/system/domain/vo/MetaVo.java | 61 ++ .../dromara/system/domain/vo/ProfileVo.java | 29 + .../dromara/system/domain/vo/RouterVo.java | 62 ++ .../dromara/system/domain/vo/SysClientVo.java | 90 +++ .../dromara/system/domain/vo/SysConfigVo.java | 72 ++ .../dromara/system/domain/vo/SysDeptVo.java | 102 +++ .../system/domain/vo/SysDictDataVo.java | 88 +++ .../system/domain/vo/SysDictTypeVo.java | 59 ++ .../system/domain/vo/SysLogininforVo.java | 106 +++ .../dromara/system/domain/vo/SysMenuVo.java | 116 +++ .../dromara/system/domain/vo/SysNoticeVo.java | 73 ++ .../system/domain/vo/SysOperLogVo.java | 144 ++++ .../system/domain/vo/SysOssConfigVo.java | 97 +++ .../system/domain/vo/SysOssUploadVo.java | 28 + .../dromara/system/domain/vo/SysOssVo.java | 72 ++ .../dromara/system/domain/vo/SysPostVo.java | 91 +++ .../dromara/system/domain/vo/SysRoleVo.java | 100 +++ .../dromara/system/domain/vo/SysSocialVo.java | 144 ++++ .../system/domain/vo/SysTenantPackageVo.java | 66 ++ .../dromara/system/domain/vo/SysTenantVo.java | 115 +++ .../system/domain/vo/SysUserExportVo.java | 96 +++ .../system/domain/vo/SysUserImportVo.java | 76 ++ .../system/domain/vo/SysUserInfoVo.java | 40 + .../dromara/system/domain/vo/SysUserVo.java | 142 ++++ .../dromara/system/domain/vo/UserInfoVo.java | 30 + .../listener/SysUserImportListener.java | 127 +++ .../system/mapper/SysClientMapper.java | 15 + .../system/mapper/SysConfigMapper.java | 14 + .../dromara/system/mapper/SysDeptMapper.java | 78 ++ .../system/mapper/SysDictDataMapper.java | 29 + .../system/mapper/SysDictTypeMapper.java | 14 + .../system/mapper/SysLogininforMapper.java | 14 + .../dromara/system/mapper/SysMenuMapper.java | 76 ++ .../system/mapper/SysNoticeMapper.java | 14 + .../system/mapper/SysOperLogMapper.java | 14 + .../system/mapper/SysOssConfigMapper.java | 16 + .../dromara/system/mapper/SysOssMapper.java | 13 + .../dromara/system/mapper/SysPostMapper.java | 43 ++ .../system/mapper/SysRoleDeptMapper.java | 13 + .../dromara/system/mapper/SysRoleMapper.java | 75 ++ .../system/mapper/SysRoleMenuMapper.java | 13 + .../system/mapper/SysSocialMapper.java | 14 + .../system/mapper/SysTenantMapper.java | 14 + .../system/mapper/SysTenantPackageMapper.java | 14 + .../dromara/system/mapper/SysUserMapper.java | 123 +++ .../system/mapper/SysUserPostMapper.java | 13 + .../system/mapper/SysUserRoleMapper.java | 23 + .../runner/SystemApplicationRunner.java | 28 + .../system/service/ISysClientService.java | 60 ++ .../system/service/ISysConfigService.java | 87 +++ .../system/service/ISysDataScopeService.java | 26 + .../system/service/ISysDeptService.java | 125 +++ .../system/service/ISysDictDataService.java | 76 ++ .../system/service/ISysDictTypeService.java | 95 +++ .../system/service/ISysLogininforService.java | 47 ++ .../system/service/ISysMenuService.java | 147 ++++ .../system/service/ISysNoticeService.java | 67 ++ .../system/service/ISysOperLogService.java | 54 ++ .../system/service/ISysOssConfigService.java | 64 ++ .../system/service/ISysOssService.java | 80 ++ .../system/service/ISysPermissionService.java | 28 + .../system/service/ISysPostService.java | 130 ++++ .../system/service/ISysRoleService.java | 202 +++++ .../system/service/ISysSocialService.java | 53 ++ .../service/ISysTenantPackageService.java | 62 ++ .../system/service/ISysTenantService.java | 87 +++ .../system/service/ISysUserService.java | 222 ++++++ .../service/impl/SysClientServiceImpl.java | 151 ++++ .../service/impl/SysConfigServiceImpl.java | 217 ++++++ .../service/impl/SysDataScopeServiceImpl.java | 78 ++ .../service/impl/SysDeptServiceImpl.java | 386 ++++++++++ .../service/impl/SysDictDataServiceImpl.java | 157 ++++ .../service/impl/SysDictTypeServiceImpl.java | 258 +++++++ .../impl/SysLogininforServiceImpl.java | 175 +++++ .../service/impl/SysMenuServiceImpl.java | 372 +++++++++ .../service/impl/SysNoticeServiceImpl.java | 124 +++ .../service/impl/SysOperLogServiceImpl.java | 134 ++++ .../service/impl/SysOssConfigServiceImpl.java | 177 +++++ .../service/impl/SysOssServiceImpl.java | 269 +++++++ .../impl/SysPermissionServiceImpl.java | 61 ++ .../service/impl/SysPostServiceImpl.java | 249 ++++++ .../service/impl/SysRoleServiceImpl.java | 552 +++++++++++++ .../service/impl/SysSensitiveServiceImpl.java | 47 ++ .../service/impl/SysSocialServiceImpl.java | 112 +++ .../impl/SysTaskAssigneeServiceImpl.java | 168 ++++ .../impl/SysTenantPackageServiceImpl.java | 157 ++++ .../service/impl/SysTenantServiceImpl.java | 477 ++++++++++++ .../service/impl/SysUserServiceImpl.java | 722 ++++++++++++++++++ .../src/main/resources/mapper/package-info.md | 3 + .../mapper/system/SysClientMapper.xml | 7 + .../mapper/system/SysConfigMapper.xml | 7 + .../resources/mapper/system/SysDeptMapper.xml | 47 ++ .../mapper/system/SysDictDataMapper.xml | 7 + .../mapper/system/SysDictTypeMapper.xml | 7 + .../mapper/system/SysLogininforMapper.xml | 7 + .../resources/mapper/system/SysMenuMapper.xml | 70 ++ .../mapper/system/SysNoticeMapper.xml | 7 + .../mapper/system/SysOperLogMapper.xml | 7 + .../mapper/system/SysOssConfigMapper.xml | 7 + .../resources/mapper/system/SysOssMapper.xml | 5 + .../resources/mapper/system/SysPostMapper.xml | 29 + .../mapper/system/SysRoleDeptMapper.xml | 7 + .../resources/mapper/system/SysRoleMapper.xml | 59 ++ .../mapper/system/SysRoleMenuMapper.xml | 7 + .../mapper/system/SysSocialMapper.xml | 7 + .../mapper/system/SysTenantMapper.xml | 7 + .../mapper/system/SysTenantPackageMapper.xml | 7 + .../resources/mapper/system/SysUserMapper.xml | 73 ++ .../mapper/system/SysUserPostMapper.xml | 7 + .../mapper/system/SysUserRoleMapper.xml | 13 + .../target/classes/META-INF/mps/autoMapper | 33 + .../target/classes/META-INF/mps/autoMappers | 1 + .../linpeilie/AutoMapperConfig__2.class | Bin 0 -> 483 bytes .../linpeilie/ConverterMapperAdapter__2.class | Bin 0 -> 550 bytes .../target/classes/mapper/package-info.md | 3 + .../classes/mapper/system/SysClientMapper.xml | 7 + .../classes/mapper/system/SysConfigMapper.xml | 7 + .../classes/mapper/system/SysDeptMapper.xml | 47 ++ .../mapper/system/SysDictDataMapper.xml | 7 + .../mapper/system/SysDictTypeMapper.xml | 7 + .../mapper/system/SysLogininforMapper.xml | 7 + .../classes/mapper/system/SysMenuMapper.xml | 70 ++ .../classes/mapper/system/SysNoticeMapper.xml | 7 + .../mapper/system/SysOperLogMapper.xml | 7 + .../mapper/system/SysOssConfigMapper.xml | 7 + .../classes/mapper/system/SysOssMapper.xml | 5 + .../classes/mapper/system/SysPostMapper.xml | 29 + .../mapper/system/SysRoleDeptMapper.xml | 7 + .../classes/mapper/system/SysRoleMapper.xml | 59 ++ .../mapper/system/SysRoleMenuMapper.xml | 7 + .../classes/mapper/system/SysSocialMapper.xml | 7 + .../classes/mapper/system/SysTenantMapper.xml | 7 + .../mapper/system/SysTenantPackageMapper.xml | 7 + .../classes/mapper/system/SysUserMapper.xml | 73 ++ .../mapper/system/SysUserPostMapper.xml | 7 + .../mapper/system/SysUserRoleMapper.xml | 13 + .../OperLogEventToSysOperLogBoMapper.class | Bin 0 -> 661 bytes ...OperLogEventToSysOperLogBoMapperImpl.class | Bin 0 -> 3401 bytes .../controller/monitor/CacheController.class | Bin 0 -> 4303 bytes .../monitor/CacheController__Javadoc.json | 1 + .../monitor/SysLogininforController.class | Bin 0 -> 4952 bytes .../SysLogininforController__Javadoc.json | 1 + .../monitor/SysOperlogController.class | Bin 0 -> 3702 bytes .../SysOperlogController__Javadoc.json | 1 + .../monitor/SysUserOnlineController.class | Bin 0 -> 8401 bytes .../SysUserOnlineController__Javadoc.json | 1 + .../system/SysClientController.class | Bin 0 -> 5728 bytes .../system/SysClientController__Javadoc.json | 1 + .../system/SysConfigController.class | Bin 0 -> 6503 bytes .../system/SysConfigController__Javadoc.json | 1 + .../controller/system/SysDeptController.class | Bin 0 -> 7863 bytes .../system/SysDeptController__Javadoc.json | 1 + .../system/SysDictDataController.class | Bin 0 -> 6426 bytes .../SysDictDataController__Javadoc.json | 1 + .../system/SysDictTypeController.class | Bin 0 -> 6181 bytes .../SysDictTypeController__Javadoc.json | 1 + .../controller/system/SysMenuController.class | Bin 0 -> 7674 bytes .../system/SysMenuController__Javadoc.json | 1 + .../system/SysNoticeController.class | Bin 0 -> 5027 bytes .../system/SysNoticeController__Javadoc.json | 1 + .../system/SysOssConfigController.class | Bin 0 -> 4993 bytes .../SysOssConfigController__Javadoc.json | 1 + .../controller/system/SysOssController.class | Bin 0 -> 5469 bytes .../system/SysOssController__Javadoc.json | 1 + .../controller/system/SysPostController.class | Bin 0 -> 7013 bytes .../system/SysPostController__Javadoc.json | 1 + .../system/SysProfileController.class | Bin 0 -> 9278 bytes .../system/SysProfileController__Javadoc.json | 1 + .../controller/system/SysRoleController.class | Bin 0 -> 10440 bytes .../system/SysRoleController__Javadoc.json | 1 + .../system/SysSocialController.class | Bin 0 -> 1526 bytes .../system/SysSocialController__Javadoc.json | 1 + .../system/SysTenantController.class | Bin 0 -> 9554 bytes .../system/SysTenantController__Javadoc.json | 1 + .../system/SysTenantPackageController.class | Bin 0 -> 7350 bytes .../SysTenantPackageController__Javadoc.json | 1 + .../controller/system/SysUserController.class | Bin 0 -> 16032 bytes .../system/SysUserController__Javadoc.json | 1 + .../org/dromara/system/domain/SysCache.class | Bin 0 -> 3974 bytes .../system/domain/SysCache__Javadoc.json | 1 + .../org/dromara/system/domain/SysClient.class | Bin 0 -> 6730 bytes .../domain/SysClientToSysClientVoMapper.class | Bin 0 -> 637 bytes .../SysClientToSysClientVoMapperImpl.class | Bin 0 -> 2246 bytes .../system/domain/SysClient__Javadoc.json | 1 + .../org/dromara/system/domain/SysConfig.class | Bin 0 -> 4646 bytes .../domain/SysConfigToSysConfigVoMapper.class | Bin 0 -> 637 bytes .../SysConfigToSysConfigVoMapperImpl.class | Bin 0 -> 2153 bytes .../system/domain/SysConfig__Javadoc.json | 1 + .../org/dromara/system/domain/SysDept.class | Bin 0 -> 7231 bytes .../domain/SysDeptToSysDeptVoMapper.class | Bin 0 -> 617 bytes .../domain/SysDeptToSysDeptVoMapperImpl.class | Bin 0 -> 2428 bytes .../system/domain/SysDept__Javadoc.json | 1 + .../dromara/system/domain/SysDictData.class | Bin 0 -> 6356 bytes .../SysDictDataToSysDictDataVoMapper.class | Bin 0 -> 657 bytes ...SysDictDataToSysDictDataVoMapperImpl.class | Bin 0 -> 2446 bytes .../system/domain/SysDictData__Javadoc.json | 1 + .../dromara/system/domain/SysDictType.class | Bin 0 -> 3627 bytes .../SysDictTypeToSysDictTypeVoMapper.class | Bin 0 -> 657 bytes ...SysDictTypeToSysDictTypeVoMapperImpl.class | Bin 0 -> 2025 bytes .../system/domain/SysDictType__Javadoc.json | 1 + .../dromara/system/domain/SysLogininfor.class | Bin 0 -> 7656 bytes ...SysLogininforToSysLogininforVoMapper.class | Bin 0 -> 677 bytes ...ogininforToSysLogininforVoMapperImpl.class | Bin 0 -> 2551 bytes .../system/domain/SysLogininfor__Javadoc.json | 1 + .../org/dromara/system/domain/SysMenu.class | Bin 0 -> 12475 bytes .../domain/SysMenuToSysMenuVoMapper.class | Bin 0 -> 617 bytes .../domain/SysMenuToSysMenuVoMapperImpl.class | Bin 0 -> 3368 bytes .../system/domain/SysMenu__Javadoc.json | 1 + .../org/dromara/system/domain/SysNotice.class | Bin 0 -> 4646 bytes .../domain/SysNoticeToSysNoticeVoMapper.class | Bin 0 -> 637 bytes .../SysNoticeToSysNoticeVoMapperImpl.class | Bin 0 -> 2225 bytes .../system/domain/SysNotice__Javadoc.json | 1 + .../dromara/system/domain/SysOperLog.class | Bin 0 -> 11067 bytes .../SysOperLogToSysOperLogVoMapper.class | Bin 0 -> 647 bytes .../SysOperLogToSysOperLogVoMapperImpl.class | Bin 0 -> 3012 bytes .../system/domain/SysOperLog__Javadoc.json | 1 + .../org/dromara/system/domain/SysOss.class | Bin 0 -> 4565 bytes .../dromara/system/domain/SysOssConfig.class | Bin 0 -> 8681 bytes .../SysOssConfigToSysOssConfigVoMapper.class | Bin 0 -> 667 bytes ...sOssConfigToSysOssConfigVoMapperImpl.class | Bin 0 -> 2646 bytes .../system/domain/SysOssConfig__Javadoc.json | 1 + .../domain/SysOssToSysOssVoMapper.class | Bin 0 -> 607 bytes .../domain/SysOssToSysOssVoMapperImpl.class | Bin 0 -> 2153 bytes .../system/domain/SysOss__Javadoc.json | 1 + .../org/dromara/system/domain/SysPost.class | Bin 0 -> 5616 bytes .../domain/SysPostToSysPostVoMapper.class | Bin 0 -> 617 bytes .../domain/SysPostToSysPostVoMapperImpl.class | Bin 0 -> 2290 bytes .../system/domain/SysPost__Javadoc.json | 1 + .../org/dromara/system/domain/SysRole.class | Bin 0 -> 6960 bytes .../dromara/system/domain/SysRoleDept.class | Bin 0 -> 2627 bytes .../system/domain/SysRoleDept__Javadoc.json | 1 + .../dromara/system/domain/SysRoleMenu.class | Bin 0 -> 2627 bytes .../system/domain/SysRoleMenu__Javadoc.json | 1 + .../domain/SysRoleToSysRoleVoMapper.class | Bin 0 -> 617 bytes .../domain/SysRoleToSysRoleVoMapperImpl.class | Bin 0 -> 2443 bytes .../system/domain/SysRole__Javadoc.json | 1 + .../org/dromara/system/domain/SysSocial.class | Bin 0 -> 12845 bytes .../domain/SysSocialToSysSocialVoMapper.class | Bin 0 -> 637 bytes .../SysSocialToSysSocialVoMapperImpl.class | Bin 0 -> 3366 bytes .../system/domain/SysSocial__Javadoc.json | 1 + .../org/dromara/system/domain/SysTenant.class | Bin 0 -> 9452 bytes .../system/domain/SysTenantPackage.class | Bin 0 -> 5383 bytes ...antPackageToSysTenantPackageVoMapper.class | Bin 0 -> 707 bytes ...ackageToSysTenantPackageVoMapperImpl.class | Bin 0 -> 2213 bytes .../domain/SysTenantPackage__Javadoc.json | 1 + .../domain/SysTenantToSysTenantVoMapper.class | Bin 0 -> 637 bytes .../SysTenantToSysTenantVoMapperImpl.class | Bin 0 -> 2661 bytes .../system/domain/SysTenant__Javadoc.json | 1 + .../org/dromara/system/domain/SysUser.class | Bin 0 -> 9696 bytes .../dromara/system/domain/SysUserOnline.class | Bin 0 -> 6335 bytes .../system/domain/SysUserOnline__Javadoc.json | 1 + .../dromara/system/domain/SysUserPost.class | Bin 0 -> 2627 bytes .../system/domain/SysUserPost__Javadoc.json | 1 + .../dromara/system/domain/SysUserRole.class | Bin 0 -> 2627 bytes .../system/domain/SysUserRole__Javadoc.json | 1 + .../domain/SysUserToSysUserVoMapper.class | Bin 0 -> 736 bytes .../domain/SysUserToSysUserVoMapperImpl.class | Bin 0 -> 2723 bytes .../system/domain/SysUser__Javadoc.json | 1 + .../system/domain/bo/SysClientBo.class | Bin 0 -> 7473 bytes .../bo/SysClientBoToSysClientMapper.class | Bin 0 -> 510 bytes .../bo/SysClientBoToSysClientMapperImpl.class | Bin 0 -> 3267 bytes .../domain/bo/SysClientBo__Javadoc.json | 1 + .../system/domain/bo/SysConfigBo.class | Bin 0 -> 5241 bytes .../bo/SysConfigBoToSysConfigMapper.class | Bin 0 -> 510 bytes .../bo/SysConfigBoToSysConfigMapperImpl.class | Bin 0 -> 3055 bytes .../domain/bo/SysConfigBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysDeptBo.class | Bin 0 -> 6899 bytes .../domain/bo/SysDeptBoToSysDeptMapper.class | Bin 0 -> 498 bytes .../bo/SysDeptBoToSysDeptMapperImpl.class | Bin 0 -> 3256 bytes .../system/domain/bo/SysDeptBo__Javadoc.json | 1 + .../system/domain/bo/SysDictDataBo.class | Bin 0 -> 7399 bytes .../bo/SysDictDataBoToSysDictDataMapper.class | Bin 0 -> 522 bytes ...SysDictDataBoToSysDictDataMapperImpl.class | Bin 0 -> 3348 bytes .../domain/bo/SysDictDataBo__Javadoc.json | 1 + .../system/domain/bo/SysDictTypeBo.class | Bin 0 -> 4278 bytes .../bo/SysDictTypeBoToSysDictTypeMapper.class | Bin 0 -> 522 bytes ...SysDictTypeBoToSysDictTypeMapperImpl.class | Bin 0 -> 2927 bytes .../domain/bo/SysDictTypeBo__Javadoc.json | 1 + .../system/domain/bo/SysLogininforBo.class | Bin 0 -> 8396 bytes ...SysLogininforBoToSysLogininforMapper.class | Bin 0 -> 534 bytes ...ogininforBoToSysLogininforMapperImpl.class | Bin 0 -> 2553 bytes .../domain/bo/SysLogininforBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysMenuBo.class | Bin 0 -> 10369 bytes .../domain/bo/SysMenuBoToSysMenuMapper.class | Bin 0 -> 498 bytes .../bo/SysMenuBoToSysMenuMapperImpl.class | Bin 0 -> 3670 bytes .../system/domain/bo/SysMenuBo__Javadoc.json | 1 + .../system/domain/bo/SysNoticeBo.class | Bin 0 -> 5536 bytes .../bo/SysNoticeBoToSysNoticeMapper.class | Bin 0 -> 510 bytes .../bo/SysNoticeBoToSysNoticeMapperImpl.class | Bin 0 -> 3055 bytes .../domain/bo/SysNoticeBo__Javadoc.json | 1 + .../system/domain/bo/SysOperLogBo.class | Bin 0 -> 12566 bytes .../bo/SysOperLogBoToOperLogEventMapper.class | Bin 0 -> 661 bytes ...SysOperLogBoToOperLogEventMapperImpl.class | Bin 0 -> 3401 bytes .../bo/SysOperLogBoToSysOperLogMapper.class | Bin 0 -> 654 bytes .../SysOperLogBoToSysOperLogMapperImpl.class | Bin 0 -> 3014 bytes .../domain/bo/SysOperLogBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysOssBo.class | Bin 0 -> 4543 bytes .../domain/bo/SysOssBoToSysOssMapper.class | Bin 0 -> 492 bytes .../bo/SysOssBoToSysOssMapperImpl.class | Bin 0 -> 2983 bytes .../system/domain/bo/SysOssBo__Javadoc.json | 1 + .../system/domain/bo/SysOssConfigBo.class | Bin 0 -> 9988 bytes .../SysOssConfigBoToSysOssConfigMapper.class | Bin 0 -> 528 bytes ...sOssConfigBoToSysOssConfigMapperImpl.class | Bin 0 -> 3667 bytes .../domain/bo/SysOssConfigBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysPostBo.class | Bin 0 -> 6868 bytes .../domain/bo/SysPostBoToSysPostMapper.class | Bin 0 -> 498 bytes .../bo/SysPostBoToSysPostMapperImpl.class | Bin 0 -> 3192 bytes .../system/domain/bo/SysPostBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysRoleBo.class | Bin 0 -> 8027 bytes .../domain/bo/SysRoleBoToSysRoleMapper.class | Bin 0 -> 498 bytes .../bo/SysRoleBoToSysRoleMapperImpl.class | Bin 0 -> 3345 bytes .../system/domain/bo/SysRoleBo__Javadoc.json | 1 + .../system/domain/bo/SysSocialBo.class | Bin 0 -> 13444 bytes .../bo/SysSocialBoToSysSocialMapper.class | Bin 0 -> 510 bytes .../bo/SysSocialBoToSysSocialMapperImpl.class | Bin 0 -> 4268 bytes .../domain/bo/SysSocialBo__Javadoc.json | 1 + .../system/domain/bo/SysTenantBo.class | Bin 0 -> 10663 bytes .../bo/SysTenantBoToSysTenantMapper.class | Bin 0 -> 510 bytes .../bo/SysTenantBoToSysTenantMapperImpl.class | Bin 0 -> 3639 bytes .../domain/bo/SysTenantBo__Javadoc.json | 1 + .../system/domain/bo/SysTenantPackageBo.class | Bin 0 -> 5425 bytes ...antPackageBoToSysTenantPackageMapper.class | Bin 0 -> 1714 bytes ...ackageBoToSysTenantPackageMapperImpl.class | Bin 0 -> 3401 bytes .../bo/SysTenantPackageBo__Javadoc.json | 1 + .../dromara/system/domain/bo/SysUserBo.class | Bin 0 -> 10070 bytes .../domain/bo/SysUserBoToSysUserMapper.class | Bin 0 -> 498 bytes .../bo/SysUserBoToSysUserMapperImpl.class | Bin 0 -> 3341 bytes .../system/domain/bo/SysUserBo__Javadoc.json | 1 + .../system/domain/bo/SysUserPasswordBo.class | Bin 0 -> 2792 bytes .../domain/bo/SysUserPasswordBo__Javadoc.json | 1 + .../system/domain/bo/SysUserProfileBo.class | Bin 0 -> 4216 bytes .../domain/bo/SysUserProfileBo__Javadoc.json | 1 + .../dromara/system/domain/vo/AvatarVo.class | Bin 0 -> 1916 bytes .../system/domain/vo/AvatarVo__Javadoc.json | 1 + .../system/domain/vo/CacheListInfoVo.class | Bin 0 -> 3331 bytes .../domain/vo/CacheListInfoVo__Javadoc.json | 1 + .../system/domain/vo/DeptTreeSelectVo.class | Bin 0 -> 2885 bytes .../domain/vo/DeptTreeSelectVo__Javadoc.json | 1 + .../system/domain/vo/MenuTreeSelectVo.class | Bin 0 -> 2885 bytes .../domain/vo/MenuTreeSelectVo__Javadoc.json | 1 + .../org/dromara/system/domain/vo/MetaVo.class | Bin 0 -> 3942 bytes .../system/domain/vo/MetaVo__Javadoc.json | 1 + .../dromara/system/domain/vo/ProfileVo.class | Bin 0 -> 2998 bytes .../system/domain/vo/ProfileVo__Javadoc.json | 1 + .../dromara/system/domain/vo/RouterVo.class | Bin 0 -> 6338 bytes .../system/domain/vo/RouterVo__Javadoc.json | 1 + .../system/domain/vo/SysClientVo.class | Bin 0 -> 7474 bytes .../vo/SysClientVoToSysClientMapper.class | Bin 0 -> 572 bytes .../vo/SysClientVoToSysClientMapperImpl.class | Bin 0 -> 2248 bytes .../domain/vo/SysClientVo__Javadoc.json | 1 + .../system/domain/vo/SysConfigVo.class | Bin 0 -> 5711 bytes .../vo/SysConfigVoToSysConfigMapper.class | Bin 0 -> 572 bytes .../vo/SysConfigVoToSysConfigMapperImpl.class | Bin 0 -> 2155 bytes .../domain/vo/SysConfigVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysDeptVo.class | Bin 0 -> 8802 bytes .../domain/vo/SysDeptVoToSysDeptMapper.class | Bin 0 -> 556 bytes .../vo/SysDeptVoToSysDeptMapperImpl.class | Bin 0 -> 2430 bytes .../system/domain/vo/SysDeptVo__Javadoc.json | 1 + .../system/domain/vo/SysDictDataVo.class | Bin 0 -> 7289 bytes .../vo/SysDictDataVoToSysDictDataMapper.class | Bin 0 -> 588 bytes ...SysDictDataVoToSysDictDataMapperImpl.class | Bin 0 -> 2448 bytes .../domain/vo/SysDictDataVo__Javadoc.json | 1 + .../system/domain/vo/SysDictTypeVo.class | Bin 0 -> 4451 bytes .../vo/SysDictTypeVoToSysDictTypeMapper.class | Bin 0 -> 588 bytes ...SysDictTypeVoToSysDictTypeMapperImpl.class | Bin 0 -> 2027 bytes .../domain/vo/SysDictTypeVo__Javadoc.json | 1 + .../system/domain/vo/SysLogininforVo.class | Bin 0 -> 8315 bytes ...SysLogininforVoToSysLogininforMapper.class | Bin 0 -> 604 bytes ...ogininforVoToSysLogininforMapperImpl.class | Bin 0 -> 2553 bytes .../domain/vo/SysLogininforVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysMenuVo.class | Bin 0 -> 11208 bytes .../domain/vo/SysMenuVoToSysMenuMapper.class | Bin 0 -> 559 bytes .../vo/SysMenuVoToSysMenuMapperImpl.class | Bin 0 -> 3365 bytes .../system/domain/vo/SysMenuVo__Javadoc.json | 1 + .../system/domain/vo/SysNoticeVo.class | Bin 0 -> 6323 bytes .../vo/SysNoticeVoToSysNoticeMapper.class | Bin 0 -> 572 bytes .../vo/SysNoticeVoToSysNoticeMapperImpl.class | Bin 0 -> 2227 bytes .../domain/vo/SysNoticeVo__Javadoc.json | 1 + .../system/domain/vo/SysOperLogVo.class | Bin 0 -> 12618 bytes .../vo/SysOperLogVoToSysOperLogMapper.class | Bin 0 -> 580 bytes .../SysOperLogVoToSysOperLogMapperImpl.class | Bin 0 -> 3014 bytes .../domain/vo/SysOperLogVo__Javadoc.json | 1 + .../system/domain/vo/SysOssConfigVo.class | Bin 0 -> 8719 bytes .../SysOssConfigVoToSysOssConfigMapper.class | Bin 0 -> 596 bytes ...sOssConfigVoToSysOssConfigMapperImpl.class | Bin 0 -> 2648 bytes .../domain/vo/SysOssConfigVo__Javadoc.json | 1 + .../system/domain/vo/SysOssUploadVo.class | Bin 0 -> 2820 bytes .../domain/vo/SysOssUploadVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysOssVo.class | Bin 0 -> 6245 bytes .../domain/vo/SysOssVoToSysOssMapper.class | Bin 0 -> 548 bytes .../vo/SysOssVoToSysOssMapperImpl.class | Bin 0 -> 2155 bytes .../system/domain/vo/SysOssVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysPostVo.class | Bin 0 -> 7383 bytes .../domain/vo/SysPostVoToSysPostMapper.class | Bin 0 -> 556 bytes .../vo/SysPostVoToSysPostMapperImpl.class | Bin 0 -> 2292 bytes .../system/domain/vo/SysPostVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysRoleVo.class | Bin 0 -> 8220 bytes .../domain/vo/SysRoleVoToSysRoleMapper.class | Bin 0 -> 556 bytes .../vo/SysRoleVoToSysRoleMapperImpl.class | Bin 0 -> 2445 bytes .../system/domain/vo/SysRoleVo__Javadoc.json | 1 + .../system/domain/vo/SysSocialVo.class | Bin 0 -> 13982 bytes .../vo/SysSocialVoToSysSocialMapper.class | Bin 0 -> 572 bytes .../vo/SysSocialVoToSysSocialMapperImpl.class | Bin 0 -> 3368 bytes .../domain/vo/SysSocialVo__Javadoc.json | 1 + .../system/domain/vo/SysTenantPackageVo.class | Bin 0 -> 5272 bytes ...antPackageVoToSysTenantPackageMapper.class | Bin 0 -> 628 bytes ...ackageVoToSysTenantPackageMapperImpl.class | Bin 0 -> 2215 bytes .../vo/SysTenantPackageVo__Javadoc.json | 1 + .../system/domain/vo/SysTenantVo.class | Bin 0 -> 9553 bytes .../vo/SysTenantVoToSysTenantMapper.class | Bin 0 -> 572 bytes .../vo/SysTenantVoToSysTenantMapperImpl.class | Bin 0 -> 2663 bytes .../domain/vo/SysTenantVo__Javadoc.json | 1 + .../system/domain/vo/SysUserExportVo.class | Bin 0 -> 7647 bytes .../domain/vo/SysUserExportVo__Javadoc.json | 1 + .../system/domain/vo/SysUserImportVo.class | Bin 0 -> 5923 bytes .../domain/vo/SysUserImportVo__Javadoc.json | 1 + .../system/domain/vo/SysUserInfoVo.class | Bin 0 -> 4596 bytes .../domain/vo/SysUserInfoVo__Javadoc.json | 1 + .../dromara/system/domain/vo/SysUserVo.class | Bin 0 -> 13002 bytes .../domain/vo/SysUserVoToSysUserMapper.class | Bin 0 -> 675 bytes .../vo/SysUserVoToSysUserMapperImpl.class | Bin 0 -> 2725 bytes .../system/domain/vo/SysUserVo__Javadoc.json | 1 + .../dromara/system/domain/vo/UserInfoVo.class | Bin 0 -> 3236 bytes .../system/domain/vo/UserInfoVo__Javadoc.json | 1 + .../listener/SysUserImportListener$1.class | Bin 0 -> 2323 bytes .../listener/SysUserImportListener.class | Bin 0 -> 6507 bytes .../SysUserImportListener__Javadoc.json | 1 + .../system/mapper/SysClientMapper.class | Bin 0 -> 375 bytes .../mapper/SysClientMapper__Javadoc.json | 1 + .../system/mapper/SysConfigMapper.class | Bin 0 -> 375 bytes .../mapper/SysConfigMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysDeptMapper.class | Bin 0 -> 4446 bytes .../system/mapper/SysDeptMapper__Javadoc.json | 1 + .../system/mapper/SysDictDataMapper.class | Bin 0 -> 2943 bytes .../mapper/SysDictDataMapper__Javadoc.json | 1 + .../system/mapper/SysDictTypeMapper.class | Bin 0 -> 383 bytes .../mapper/SysDictTypeMapper__Javadoc.json | 1 + .../system/mapper/SysLogininforMapper.class | Bin 0 -> 391 bytes .../mapper/SysLogininforMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysMenuMapper.class | Bin 0 -> 4380 bytes .../system/mapper/SysMenuMapper__Javadoc.json | 1 + .../system/mapper/SysNoticeMapper.class | Bin 0 -> 375 bytes .../mapper/SysNoticeMapper__Javadoc.json | 1 + .../system/mapper/SysOperLogMapper.class | Bin 0 -> 379 bytes .../mapper/SysOperLogMapper__Javadoc.json | 1 + .../system/mapper/SysOssConfigMapper.class | Bin 0 -> 387 bytes .../mapper/SysOssConfigMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysOssMapper.class | Bin 0 -> 363 bytes .../system/mapper/SysOssMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysPostMapper.class | Bin 0 -> 1471 bytes .../system/mapper/SysPostMapper__Javadoc.json | 1 + .../system/mapper/SysRoleDeptMapper.class | Bin 0 -> 378 bytes .../mapper/SysRoleDeptMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysRoleMapper.class | Bin 0 -> 2035 bytes .../system/mapper/SysRoleMapper__Javadoc.json | 1 + .../system/mapper/SysRoleMenuMapper.class | Bin 0 -> 378 bytes .../mapper/SysRoleMenuMapper__Javadoc.json | 1 + .../system/mapper/SysSocialMapper.class | Bin 0 -> 375 bytes .../mapper/SysSocialMapper__Javadoc.json | 1 + .../system/mapper/SysTenantMapper.class | Bin 0 -> 375 bytes .../mapper/SysTenantMapper__Javadoc.json | 1 + .../mapper/SysTenantPackageMapper.class | Bin 0 -> 403 bytes .../SysTenantPackageMapper__Javadoc.json | 1 + .../dromara/system/mapper/SysUserMapper.class | Bin 0 -> 3465 bytes .../system/mapper/SysUserMapper__Javadoc.json | 1 + .../system/mapper/SysUserPostMapper.class | Bin 0 -> 378 bytes .../mapper/SysUserPostMapper__Javadoc.json | 1 + .../system/mapper/SysUserRoleMapper.class | Bin 0 -> 549 bytes .../mapper/SysUserRoleMapper__Javadoc.json | 1 + .../runner/SystemApplicationRunner.class | Bin 0 -> 1371 bytes .../SystemApplicationRunner__Javadoc.json | 1 + .../system/service/ISysClientService.class | Bin 0 -> 1439 bytes .../service/ISysClientService__Javadoc.json | 1 + .../system/service/ISysConfigService.class | Bin 0 -> 1419 bytes .../service/ISysConfigService__Javadoc.json | 1 + .../system/service/ISysDataScopeService.class | Bin 0 -> 296 bytes .../ISysDataScopeService__Javadoc.json | 1 + .../system/service/ISysDeptService.class | Bin 0 -> 1673 bytes .../service/ISysDeptService__Javadoc.json | 1 + .../system/service/ISysDictDataService.class | Bin 0 -> 1330 bytes .../service/ISysDictDataService__Javadoc.json | 1 + .../system/service/ISysDictTypeService.class | Bin 0 -> 1745 bytes .../service/ISysDictTypeService__Javadoc.json | 1 + .../service/ISysLogininforService.class | Bin 0 -> 1049 bytes .../ISysLogininforService__Javadoc.json | 1 + .../system/service/ISysMenuService.class | Bin 0 -> 1924 bytes .../service/ISysMenuService__Javadoc.json | 1 + .../system/service/ISysNoticeService.class | Bin 0 -> 1169 bytes .../service/ISysNoticeService__Javadoc.json | 1 + .../system/service/ISysOperLogService.class | Bin 0 -> 1116 bytes .../service/ISysOperLogService__Javadoc.json | 1 + .../system/service/ISysOssConfigService.class | Bin 0 -> 1167 bytes .../ISysOssConfigService__Javadoc.json | 1 + .../system/service/ISysOssService.class | Bin 0 -> 1434 bytes .../service/ISysOssService__Javadoc.json | 1 + .../service/ISysPermissionService.class | Bin 0 -> 376 bytes .../ISysPermissionService__Javadoc.json | 1 + .../system/service/ISysPostService.class | Bin 0 -> 1942 bytes .../service/ISysPostService__Javadoc.json | 1 + .../system/service/ISysRoleService.class | Bin 0 -> 2745 bytes .../service/ISysRoleService__Javadoc.json | 1 + .../system/service/ISysSocialService.class | Bin 0 -> 1048 bytes .../service/ISysSocialService__Javadoc.json | 1 + .../service/ISysTenantPackageService.class | Bin 0 -> 1625 bytes .../ISysTenantPackageService__Javadoc.json | 1 + .../system/service/ISysTenantService.class | Bin 0 -> 1834 bytes .../service/ISysTenantService__Javadoc.json | 1 + .../system/service/ISysUserService.class | Bin 0 -> 2663 bytes .../service/ISysUserService__Javadoc.json | 1 + .../service/impl/SysClientServiceImpl.class | Bin 0 -> 11042 bytes .../impl/SysClientServiceImpl__Javadoc.json | 1 + .../service/impl/SysConfigServiceImpl.class | Bin 0 -> 12243 bytes .../impl/SysConfigServiceImpl__Javadoc.json | 1 + .../impl/SysDataScopeServiceImpl.class | Bin 0 -> 5475 bytes .../SysDataScopeServiceImpl__Javadoc.json | 1 + .../service/impl/SysDeptServiceImpl.class | Bin 0 -> 20719 bytes .../impl/SysDeptServiceImpl__Javadoc.json | 1 + .../service/impl/SysDictDataServiceImpl.class | Bin 0 -> 9445 bytes .../impl/SysDictDataServiceImpl__Javadoc.json | 1 + .../service/impl/SysDictTypeServiceImpl.class | Bin 0 -> 14441 bytes .../impl/SysDictTypeServiceImpl__Javadoc.json | 1 + .../impl/SysLogininforServiceImpl.class | Bin 0 -> 11909 bytes .../SysLogininforServiceImpl__Javadoc.json | 1 + .../service/impl/SysMenuServiceImpl.class | Bin 0 -> 19163 bytes .../impl/SysMenuServiceImpl__Javadoc.json | 1 + .../service/impl/SysNoticeServiceImpl.class | Bin 0 -> 8695 bytes .../impl/SysNoticeServiceImpl__Javadoc.json | 1 + .../service/impl/SysOperLogServiceImpl.class | Bin 0 -> 10063 bytes .../impl/SysOperLogServiceImpl__Javadoc.json | 1 + .../impl/SysOssConfigServiceImpl.class | Bin 0 -> 13307 bytes .../SysOssConfigServiceImpl__Javadoc.json | 1 + .../service/impl/SysOssServiceImpl.class | Bin 0 -> 16168 bytes .../impl/SysOssServiceImpl__Javadoc.json | 1 + .../impl/SysPermissionServiceImpl.class | Bin 0 -> 2029 bytes .../SysPermissionServiceImpl__Javadoc.json | 1 + .../service/impl/SysPostServiceImpl.class | Bin 0 -> 13719 bytes .../impl/SysPostServiceImpl__Javadoc.json | 1 + .../service/impl/SysRoleServiceImpl.class | Bin 0 -> 22833 bytes .../impl/SysRoleServiceImpl__Javadoc.json | 1 + .../impl/SysSensitiveServiceImpl.class | Bin 0 -> 1345 bytes .../SysSensitiveServiceImpl__Javadoc.json | 1 + .../service/impl/SysSocialServiceImpl.class | Bin 0 -> 6213 bytes .../impl/SysSocialServiceImpl__Javadoc.json | 1 + .../impl/SysTaskAssigneeServiceImpl.class | Bin 0 -> 14865 bytes .../SysTaskAssigneeServiceImpl__Javadoc.json | 1 + .../impl/SysTenantPackageServiceImpl.class | Bin 0 -> 10155 bytes .../SysTenantPackageServiceImpl__Javadoc.json | 1 + .../service/impl/SysTenantServiceImpl.class | Bin 0 -> 28493 bytes .../impl/SysTenantServiceImpl__Javadoc.json | 1 + .../service/impl/SysUserServiceImpl.class | Bin 0 -> 31208 bytes .../impl/SysUserServiceImpl__Javadoc.json | 1 + .../github/linpeilie/AutoMapperConfig__2.java | 14 + .../linpeilie/ConverterMapperAdapter__2.java | 10 + .../OperLogEventToSysOperLogBoMapper.java | 16 + .../OperLogEventToSysOperLogBoMapperImpl.java | 84 ++ .../domain/SysClientToSysClientVoMapper.java | 16 + .../SysClientToSysClientVoMapperImpl.java | 54 ++ .../domain/SysConfigToSysConfigVoMapper.java | 16 + .../SysConfigToSysConfigVoMapperImpl.java | 50 ++ .../domain/SysDeptToSysDeptVoMapper.java | 16 + .../domain/SysDeptToSysDeptVoMapperImpl.java | 58 ++ .../SysDictDataToSysDictDataVoMapper.java | 16 + .../SysDictDataToSysDictDataVoMapperImpl.java | 56 ++ .../SysDictTypeToSysDictTypeVoMapper.java | 16 + .../SysDictTypeToSysDictTypeVoMapperImpl.java | 46 ++ .../SysLogininforToSysLogininforVoMapper.java | 16 + ...LogininforToSysLogininforVoMapperImpl.java | 60 ++ .../domain/SysMenuToSysMenuVoMapper.java | 16 + .../domain/SysMenuToSysMenuVoMapperImpl.java | 88 +++ .../domain/SysNoticeToSysNoticeVoMapper.java | 16 + .../SysNoticeToSysNoticeVoMapperImpl.java | 52 ++ .../SysOperLogToSysOperLogVoMapper.java | 16 + .../SysOperLogToSysOperLogVoMapperImpl.java | 72 ++ .../SysOssConfigToSysOssConfigVoMapper.java | 16 + ...ysOssConfigToSysOssConfigVoMapperImpl.java | 64 ++ .../system/domain/SysOssToSysOssVoMapper.java | 16 + .../domain/SysOssToSysOssVoMapperImpl.java | 52 ++ .../domain/SysPostToSysPostVoMapper.java | 16 + .../domain/SysPostToSysPostVoMapperImpl.java | 54 ++ .../domain/SysRoleToSysRoleVoMapper.java | 16 + .../domain/SysRoleToSysRoleVoMapperImpl.java | 56 ++ .../domain/SysSocialToSysSocialVoMapper.java | 16 + .../SysSocialToSysSocialVoMapperImpl.java | 84 ++ ...nantPackageToSysTenantPackageVoMapper.java | 16 + ...PackageToSysTenantPackageVoMapperImpl.java | 48 ++ .../domain/SysTenantToSysTenantVoMapper.java | 16 + .../SysTenantToSysTenantVoMapperImpl.java | 64 ++ .../domain/SysUserToSysUserVoMapper.java | 17 + .../domain/SysUserToSysUserVoMapperImpl.java | 68 ++ .../bo/SysClientBoToSysClientMapper.java | 14 + .../bo/SysClientBoToSysClientMapperImpl.java | 88 +++ .../bo/SysConfigBoToSysConfigMapper.java | 14 + .../bo/SysConfigBoToSysConfigMapperImpl.java | 82 ++ .../domain/bo/SysDeptBoToSysDeptMapper.java | 14 + .../bo/SysDeptBoToSysDeptMapperImpl.java | 88 +++ .../bo/SysDictDataBoToSysDictDataMapper.java | 14 + .../SysDictDataBoToSysDictDataMapperImpl.java | 88 +++ .../bo/SysDictTypeBoToSysDictTypeMapper.java | 14 + .../SysDictTypeBoToSysDictTypeMapperImpl.java | 78 ++ .../SysLogininforBoToSysLogininforMapper.java | 14 + ...LogininforBoToSysLogininforMapperImpl.java | 60 ++ .../domain/bo/SysMenuBoToSysMenuMapper.java | 14 + .../bo/SysMenuBoToSysMenuMapperImpl.java | 100 +++ .../bo/SysNoticeBoToSysNoticeMapper.java | 14 + .../bo/SysNoticeBoToSysNoticeMapperImpl.java | 82 ++ .../bo/SysOperLogBoToOperLogEventMapper.java | 15 + .../SysOperLogBoToOperLogEventMapperImpl.java | 84 ++ .../bo/SysOperLogBoToSysOperLogMapper.java | 15 + .../SysOperLogBoToSysOperLogMapperImpl.java | 72 ++ .../domain/bo/SysOssBoToSysOssMapper.java | 14 + .../domain/bo/SysOssBoToSysOssMapperImpl.java | 82 ++ .../SysOssConfigBoToSysOssConfigMapper.java | 14 + ...ysOssConfigBoToSysOssConfigMapperImpl.java | 98 +++ .../domain/bo/SysPostBoToSysPostMapper.java | 14 + .../bo/SysPostBoToSysPostMapperImpl.java | 86 +++ .../domain/bo/SysRoleBoToSysRoleMapper.java | 14 + .../bo/SysRoleBoToSysRoleMapperImpl.java | 88 +++ .../bo/SysSocialBoToSysSocialMapper.java | 14 + .../bo/SysSocialBoToSysSocialMapperImpl.java | 116 +++ .../bo/SysTenantBoToSysTenantMapper.java | 14 + .../bo/SysTenantBoToSysTenantMapperImpl.java | 98 +++ ...nantPackageBoToSysTenantPackageMapper.java | 27 + ...PackageBoToSysTenantPackageMapperImpl.java | 84 ++ .../domain/bo/SysUserBoToSysUserMapper.java | 14 + .../bo/SysUserBoToSysUserMapperImpl.java | 92 +++ .../vo/SysClientVoToSysClientMapper.java | 15 + .../vo/SysClientVoToSysClientMapperImpl.java | 54 ++ .../vo/SysConfigVoToSysConfigMapper.java | 15 + .../vo/SysConfigVoToSysConfigMapperImpl.java | 50 ++ .../domain/vo/SysDeptVoToSysDeptMapper.java | 15 + .../vo/SysDeptVoToSysDeptMapperImpl.java | 58 ++ .../vo/SysDictDataVoToSysDictDataMapper.java | 15 + .../SysDictDataVoToSysDictDataMapperImpl.java | 56 ++ .../vo/SysDictTypeVoToSysDictTypeMapper.java | 15 + .../SysDictTypeVoToSysDictTypeMapperImpl.java | 46 ++ .../SysLogininforVoToSysLogininforMapper.java | 15 + ...LogininforVoToSysLogininforMapperImpl.java | 60 ++ .../domain/vo/SysMenuVoToSysMenuMapper.java | 15 + .../vo/SysMenuVoToSysMenuMapperImpl.java | 88 +++ .../vo/SysNoticeVoToSysNoticeMapper.java | 15 + .../vo/SysNoticeVoToSysNoticeMapperImpl.java | 52 ++ .../vo/SysOperLogVoToSysOperLogMapper.java | 15 + .../SysOperLogVoToSysOperLogMapperImpl.java | 72 ++ .../SysOssConfigVoToSysOssConfigMapper.java | 15 + ...ysOssConfigVoToSysOssConfigMapperImpl.java | 64 ++ .../domain/vo/SysOssVoToSysOssMapper.java | 15 + .../domain/vo/SysOssVoToSysOssMapperImpl.java | 52 ++ .../domain/vo/SysPostVoToSysPostMapper.java | 15 + .../vo/SysPostVoToSysPostMapperImpl.java | 54 ++ .../domain/vo/SysRoleVoToSysRoleMapper.java | 15 + .../vo/SysRoleVoToSysRoleMapperImpl.java | 56 ++ .../vo/SysSocialVoToSysSocialMapper.java | 15 + .../vo/SysSocialVoToSysSocialMapperImpl.java | 84 ++ ...nantPackageVoToSysTenantPackageMapper.java | 15 + ...PackageVoToSysTenantPackageMapperImpl.java | 48 ++ .../vo/SysTenantVoToSysTenantMapper.java | 15 + .../vo/SysTenantVoToSysTenantMapperImpl.java | 64 ++ .../domain/vo/SysUserVoToSysUserMapper.java | 16 + .../vo/SysUserVoToSysUserMapperImpl.java | 68 ++ ruoyi-workflow/.flattened-pom.xml | 72 ++ ruoyi-workflow/README.md | 3 + ruoyi-workflow/pom.xml | 84 ++ .../workflow/common/ConditionalOnEnable.java | 14 + .../common/constant/FlowConstant.java | 66 ++ .../common/enums/MessageTypeEnum.java | 53 ++ .../common/enums/TaskAssigneeEnum.java | 109 +++ .../common/enums/TaskAssigneeType.java | 49 ++ .../workflow/common/enums/TaskStatusEnum.java | 104 +++ .../workflow/config/WarmFlowConfig.java | 16 + .../controller/FlwCategoryController.java | 132 ++++ .../controller/FlwDefinitionController.java | 194 +++++ .../controller/FlwInstanceController.java | 157 ++++ .../controller/FlwTaskController.java | 201 +++++ .../controller/TestLeaveController.java | 108 +++ .../dromara/workflow/domain/FlowCategory.java | 58 ++ .../dromara/workflow/domain/TestLeave.java | 63 ++ .../workflow/domain/bo/BackProcessBo.java | 71 ++ .../workflow/domain/bo/CompleteTaskBo.java | 75 ++ .../workflow/domain/bo/FlowCancelBo.java | 31 + .../workflow/domain/bo/FlowCategoryBo.java | 47 ++ .../workflow/domain/bo/FlowCopyBo.java | 30 + .../workflow/domain/bo/FlowInstanceBo.java | 55 ++ .../workflow/domain/bo/FlowInvalidBo.java | 31 + .../workflow/domain/bo/FlowTaskBo.java | 55 ++ .../workflow/domain/bo/FlowTerminationBo.java | 31 + .../workflow/domain/bo/StartProcessBo.java | 49 ++ .../workflow/domain/bo/TaskOperationBo.java | 48 ++ .../workflow/domain/bo/TestLeaveBo.java | 79 ++ .../workflow/domain/vo/FlowCategoryVo.java | 67 ++ .../workflow/domain/vo/FlowDefinitionVo.java | 104 +++ .../workflow/domain/vo/FlowHisTaskVo.java | 244 ++++++ .../workflow/domain/vo/FlowInstanceVo.java | 137 ++++ .../workflow/domain/vo/FlowTaskVo.java | 176 +++++ .../workflow/domain/vo/FlowVariableVo.java | 28 + .../workflow/domain/vo/TestLeaveVo.java | 70 ++ .../handler/FlowProcessEventHandler.java | 82 ++ .../handler/WorkflowPermissionHandler.java | 73 ++ .../listener/WorkflowGlobalListener.java | 130 ++++ .../workflow/mapper/FlwCategoryMapper.java | 60 ++ .../workflow/mapper/FlwInstanceMapper.java | 27 + .../workflow/mapper/FlwTaskMapper.java | 57 ++ .../workflow/mapper/TestLeaveMapper.java | 15 + .../workflow/service/IFlwCategoryService.java | 102 +++ .../service/IFlwDefinitionService.java | 79 ++ .../workflow/service/IFlwInstanceService.java | 159 ++++ .../service/IFlwTaskAssigneeService.java | 22 + .../workflow/service/IFlwTaskService.java | 191 +++++ .../workflow/service/ITestLeaveService.java | 47 ++ .../impl/CategoryNameTranslationImpl.java | 37 + .../service/impl/FlwCategoryServiceImpl.java | 269 +++++++ .../impl/FlwDefinitionServiceImpl.java | 266 +++++++ .../service/impl/FlwInstanceServiceImpl.java | 451 +++++++++++ .../impl/FlwTaskAssigneeServiceImpl.java | 165 ++++ .../service/impl/FlwTaskServiceImpl.java | 687 +++++++++++++++++ .../service/impl/TestLeaveServiceImpl.java | 188 +++++ .../service/impl/WorkflowServiceImpl.java | 132 ++++ .../dromara/workflow/utils/WorkflowUtils.java | 206 +++++ .../src/main/resources/mapper/package-info.md | 3 + .../mapper/workflow/FlwCategoryMapper.xml | 11 + .../mapper/workflow/FlwInstanceMapper.xml | 36 + .../mapper/workflow/FlwTaskMapper.xml | 115 +++ .../mapper/workflow/TestLeaveMapper.xml | 7 + .../target/classes/META-INF/mps/autoMapper | 4 + .../linpeilie/AutoMapperConfig__1.class | Bin 0 -> 483 bytes .../linpeilie/ConverterMapperAdapter__1.class | Bin 0 -> 550 bytes .../target/classes/mapper/package-info.md | 3 + .../mapper/workflow/FlwCategoryMapper.xml | 11 + .../mapper/workflow/FlwInstanceMapper.xml | 36 + .../classes/mapper/workflow/FlwTaskMapper.xml | 115 +++ .../mapper/workflow/TestLeaveMapper.xml | 7 + .../workflow/common/ConditionalOnEnable.class | Bin 0 -> 564 bytes .../common/constant/FlowConstant.class | Bin 0 -> 924 bytes .../constant/FlowConstant__Javadoc.json | 1 + .../common/enums/MessageTypeEnum.class | Bin 0 -> 3263 bytes .../enums/MessageTypeEnum__Javadoc.json | 1 + .../common/enums/TaskAssigneeEnum.class | Bin 0 -> 4126 bytes .../enums/TaskAssigneeEnum__Javadoc.json | 1 + .../common/enums/TaskAssigneeType.class | Bin 0 -> 2020 bytes .../enums/TaskAssigneeType__Javadoc.json | 1 + .../common/enums/TaskStatusEnum.class | Bin 0 -> 4048 bytes .../common/enums/TaskStatusEnum__Javadoc.json | 1 + .../workflow/config/WarmFlowConfig.class | Bin 0 -> 476 bytes .../config/WarmFlowConfig__Javadoc.json | 1 + .../controller/FlwCategoryController.class | Bin 0 -> 6718 bytes .../FlwCategoryController__Javadoc.json | 1 + .../controller/FlwDefinitionController.class | Bin 0 -> 7100 bytes .../FlwDefinitionController__Javadoc.json | 1 + .../controller/FlwInstanceController.class | Bin 0 -> 6453 bytes .../FlwInstanceController__Javadoc.json | 1 + .../controller/FlwTaskController.class | Bin 0 -> 8167 bytes .../FlwTaskController__Javadoc.json | 1 + .../controller/TestLeaveController.class | Bin 0 -> 5338 bytes .../TestLeaveController__Javadoc.json | 1 + .../workflow/domain/FlowCategory.class | Bin 0 -> 4790 bytes .../FlowCategoryToFlowCategoryVoMapper.class | Bin 0 -> 677 bytes ...owCategoryToFlowCategoryVoMapperImpl.class | Bin 0 -> 2161 bytes .../domain/FlowCategory__Javadoc.json | 1 + .../dromara/workflow/domain/TestLeave.class | Bin 0 -> 5228 bytes .../domain/TestLeaveToTestLeaveVoMapper.class | Bin 0 -> 647 bytes .../TestLeaveToTestLeaveVoMapperImpl.class | Bin 0 -> 2194 bytes .../workflow/domain/TestLeave__Javadoc.json | 1 + .../workflow/domain/bo/BackProcessBo.class | Bin 0 -> 6669 bytes .../domain/bo/BackProcessBo__Javadoc.json | 1 + .../workflow/domain/bo/CompleteTaskBo.class | Bin 0 -> 7271 bytes .../domain/bo/CompleteTaskBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowCancelBo.class | Bin 0 -> 2741 bytes .../domain/bo/FlowCancelBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowCategoryBo.class | Bin 0 -> 4201 bytes .../FlowCategoryBoToFlowCategoryMapper.class | Bin 0 -> 534 bytes ...owCategoryBoToFlowCategoryMapperImpl.class | Bin 0 -> 2989 bytes .../domain/bo/FlowCategoryBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowCopyBo.class | Bin 0 -> 2538 bytes .../domain/bo/FlowCopyBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowInstanceBo.class | Bin 0 -> 5199 bytes .../domain/bo/FlowInstanceBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowInvalidBo.class | Bin 0 -> 2758 bytes .../domain/bo/FlowInvalidBo__Javadoc.json | 1 + .../workflow/domain/bo/FlowTaskBo.class | Bin 0 -> 5426 bytes .../domain/bo/FlowTaskBo__Javadoc.json | 1 + .../domain/bo/FlowTerminationBo.class | Bin 0 -> 2796 bytes .../domain/bo/FlowTerminationBo__Javadoc.json | 1 + .../workflow/domain/bo/StartProcessBo.class | Bin 0 -> 4485 bytes .../domain/bo/StartProcessBo__Javadoc.json | 1 + .../workflow/domain/bo/TaskOperationBo.class | Bin 0 -> 4156 bytes .../domain/bo/TaskOperationBo__Javadoc.json | 1 + .../workflow/domain/bo/TestLeaveBo.class | Bin 0 -> 6923 bytes .../bo/TestLeaveBoToTestLeaveMapper.class | Bin 0 -> 516 bytes .../bo/TestLeaveBoToTestLeaveMapperImpl.class | Bin 0 -> 3172 bytes .../domain/bo/TestLeaveBo__Javadoc.json | 1 + .../workflow/domain/vo/FlowCategoryVo.class | Bin 0 -> 5498 bytes .../FlowCategoryVoToFlowCategoryMapper.class | Bin 0 -> 604 bytes ...owCategoryVoToFlowCategoryMapperImpl.class | Bin 0 -> 2163 bytes .../domain/vo/FlowCategoryVo__Javadoc.json | 1 + .../workflow/domain/vo/FlowDefinitionVo.class | Bin 0 -> 10527 bytes .../domain/vo/FlowDefinitionVo__Javadoc.json | 1 + .../workflow/domain/vo/FlowHisTaskVo.class | Bin 0 -> 23125 bytes .../domain/vo/FlowHisTaskVo__Javadoc.json | 1 + .../workflow/domain/vo/FlowInstanceVo.class | Bin 0 -> 14536 bytes .../domain/vo/FlowInstanceVo__Javadoc.json | 1 + .../workflow/domain/vo/FlowTaskVo.class | Bin 0 -> 19086 bytes .../domain/vo/FlowTaskVo__Javadoc.json | 1 + .../workflow/domain/vo/FlowVariableVo.class | Bin 0 -> 2452 bytes .../domain/vo/FlowVariableVo__Javadoc.json | 1 + .../workflow/domain/vo/TestLeaveVo.class | Bin 0 -> 5509 bytes .../vo/TestLeaveVoToTestLeaveMapper.class | Bin 0 -> 580 bytes .../vo/TestLeaveVoToTestLeaveMapperImpl.class | Bin 0 -> 2196 bytes .../domain/vo/TestLeaveVo__Javadoc.json | 1 + .../handler/FlowProcessEventHandler.class | Bin 0 -> 3654 bytes .../FlowProcessEventHandler__Javadoc.json | 1 + .../handler/WorkflowPermissionHandler.class | Bin 0 -> 4308 bytes .../WorkflowPermissionHandler__Javadoc.json | 1 + .../listener/WorkflowGlobalListener.class | Bin 0 -> 5433 bytes .../WorkflowGlobalListener__Javadoc.json | 1 + .../workflow/mapper/FlwCategoryMapper.class | Bin 0 -> 4451 bytes .../mapper/FlwCategoryMapper__Javadoc.json | 1 + .../workflow/mapper/FlwInstanceMapper.class | Bin 0 -> 864 bytes .../mapper/FlwInstanceMapper__Javadoc.json | 1 + .../workflow/mapper/FlwTaskMapper.class | Bin 0 -> 2097 bytes .../mapper/FlwTaskMapper__Javadoc.json | 1 + .../workflow/mapper/TestLeaveMapper.class | Bin 0 -> 381 bytes .../mapper/TestLeaveMapper__Javadoc.json | 1 + .../service/IFlwCategoryService.class | Bin 0 -> 1245 bytes .../service/IFlwCategoryService__Javadoc.json | 1 + .../service/IFlwDefinitionService.class | Bin 0 -> 1173 bytes .../IFlwDefinitionService__Javadoc.json | 1 + .../service/IFlwInstanceService.class | Bin 0 -> 2336 bytes .../service/IFlwInstanceService__Javadoc.json | 1 + .../service/IFlwTaskAssigneeService.class | Bin 0 -> 374 bytes .../IFlwTaskAssigneeService__Javadoc.json | 1 + .../workflow/service/IFlwTaskService.class | Bin 0 -> 3056 bytes .../service/IFlwTaskService__Javadoc.json | 1 + .../workflow/service/ITestLeaveService.class | Bin 0 -> 1210 bytes .../service/ITestLeaveService__Javadoc.json | 1 + .../impl/CategoryNameTranslationImpl.class | Bin 0 -> 2058 bytes .../CategoryNameTranslationImpl__Javadoc.json | 1 + .../service/impl/FlwCategoryServiceImpl.class | Bin 0 -> 15357 bytes .../impl/FlwCategoryServiceImpl__Javadoc.json | 1 + .../impl/FlwDefinitionServiceImpl.class | Bin 0 -> 20777 bytes .../FlwDefinitionServiceImpl__Javadoc.json | 1 + .../service/impl/FlwInstanceServiceImpl.class | Bin 0 -> 25860 bytes .../impl/FlwInstanceServiceImpl__Javadoc.json | 1 + .../impl/FlwTaskAssigneeServiceImpl$1.class | Bin 0 -> 969 bytes .../impl/FlwTaskAssigneeServiceImpl.class | Bin 0 -> 11730 bytes .../FlwTaskAssigneeServiceImpl__Javadoc.json | 1 + .../service/impl/FlwTaskServiceImpl.class | Bin 0 -> 36927 bytes .../impl/FlwTaskServiceImpl__Javadoc.json | 1 + .../service/impl/TestLeaveServiceImpl.class | Bin 0 -> 11274 bytes .../impl/TestLeaveServiceImpl__Javadoc.json | 1 + .../service/impl/WorkflowServiceImpl.class | Bin 0 -> 4539 bytes .../impl/WorkflowServiceImpl__Javadoc.json | 1 + .../workflow/utils/WorkflowUtils$1.class | Bin 0 -> 893 bytes .../workflow/utils/WorkflowUtils.class | Bin 0 -> 14114 bytes .../utils/WorkflowUtils__Javadoc.json | 1 + .../github/linpeilie/AutoMapperConfig__1.java | 14 + .../linpeilie/ConverterMapperAdapter__1.java | 10 + .../FlowCategoryToFlowCategoryVoMapper.java | 16 + ...lowCategoryToFlowCategoryVoMapperImpl.java | 48 ++ .../domain/TestLeaveToTestLeaveVoMapper.java | 16 + .../TestLeaveToTestLeaveVoMapperImpl.java | 50 ++ .../FlowCategoryBoToFlowCategoryMapper.java | 14 + ...lowCategoryBoToFlowCategoryMapperImpl.java | 78 ++ .../bo/TestLeaveBoToTestLeaveMapper.java | 14 + .../bo/TestLeaveBoToTestLeaveMapperImpl.java | 84 ++ .../FlowCategoryVoToFlowCategoryMapper.java | 15 + ...lowCategoryVoToFlowCategoryMapperImpl.java | 48 ++ .../vo/TestLeaveVoToTestLeaveMapper.java | 15 + .../vo/TestLeaveVoToTestLeaveMapperImpl.java | 50 ++ 1197 files changed, 39257 insertions(+) create mode 100644 .flattened-pom.xml create mode 100644 pom.xml create mode 100644 ruoyi-demo/.flattened-pom.xml create mode 100644 ruoyi-demo/pom.xml create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/MailController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/WeSocketController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/package-info.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/TestTree.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/package-info.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/mapper/package-info.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/impl/package-info.java create mode 100644 ruoyi-demo/src/main/java/org/dromara/demo/service/package-info.java create mode 100644 ruoyi-demo/src/main/resources/excel/单列表.xlsx create mode 100644 ruoyi-demo/src/main/resources/excel/多sheet列表.xlsx create mode 100644 ruoyi-demo/src/main/resources/excel/多列表.xlsx create mode 100644 ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml create mode 100644 ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml create mode 100644 ruoyi-demo/src/main/resources/mapper/package-info.md create mode 100644 ruoyi-demo/target/classes/META-INF/mps/autoMapper create mode 100644 ruoyi-demo/target/classes/excel/单列表.xlsx create mode 100644 ruoyi-demo/target/classes/excel/多sheet列表.xlsx create mode 100644 ruoyi-demo/target/classes/excel/多列表.xlsx create mode 100644 ruoyi-demo/target/classes/io/github/linpeilie/AutoMapperConfig__0.class create mode 100644 ruoyi-demo/target/classes/io/github/linpeilie/ConverterMapperAdapter__0.class create mode 100644 ruoyi-demo/target/classes/mapper/demo/TestDemoMapper.xml create mode 100644 ruoyi-demo/target/classes/mapper/demo/TestTreeMapper.xml create mode 100644 ruoyi-demo/target/classes/mapper/package-info.md create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/MailController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/MailController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisPubSubController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisPubSubController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisRateLimiterController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/RedisRateLimiterController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/SmsController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/SmsController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/Swagger3DemoController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/Swagger3DemoController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController$TestObj.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController$TestObj1.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController$TestI18nBo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestTreeController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/TestTreeController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/WeSocketController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/WeSocketController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/BoundedQueueController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/BoundedQueueController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/DelayedQueueController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/DelayedQueueController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoEncrypt.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoEncrypt__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoToTestDemoVoMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoToTestDemoVoMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestTreeToTestTreeVoMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestTreeToTestTreeVoMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoImportVo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoImportVo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/ExportDemoVo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/ExportDemoVo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapperImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoEncryptMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoEncryptMapper__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoMapper__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestTreeMapper.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/mapper/TestTreeMapper__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/ITestDemoService.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/ITestDemoService__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/ITestTreeService.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/ITestTreeService__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestDemoServiceImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestDemoServiceImpl__Javadoc.json create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl.class create mode 100644 ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl__Javadoc.json create mode 100644 ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__0.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__0.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapperImpl.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapperImpl.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapperImpl.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.java create mode 100644 ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapperImpl.java create mode 100644 ruoyi-generator/.flattened-pom.xml create mode 100644 ruoyi-generator/pom.xml create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/config/GenConfig.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/util/GenUtils.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java create mode 100644 ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java create mode 100644 ruoyi-generator/src/main/resources/generator.yml create mode 100644 ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml create mode 100644 ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml create mode 100644 ruoyi-generator/src/main/resources/mapper/package-info.md create mode 100644 ruoyi-generator/src/main/resources/vm/java/bo.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/controller.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/domain.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/mapper.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/service.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/java/vo.java.vm create mode 100644 ruoyi-generator/src/main/resources/vm/sql/oracle/sql.vm create mode 100644 ruoyi-generator/src/main/resources/vm/sql/postgres/sql.vm create mode 100644 ruoyi-generator/src/main/resources/vm/sql/sql.vm create mode 100644 ruoyi-generator/src/main/resources/vm/sql/sqlserver/sql.vm create mode 100644 ruoyi-generator/src/main/resources/vm/ts/api.ts.vm create mode 100644 ruoyi-generator/src/main/resources/vm/ts/types.ts.vm create mode 100644 ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm create mode 100644 ruoyi-generator/src/main/resources/vm/vue/index.vue.vm create mode 100644 ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm create mode 100644 ruoyi-generator/target/classes/META-INF/spring-configuration-metadata.json create mode 100644 ruoyi-generator/target/classes/generator.yml create mode 100644 ruoyi-generator/target/classes/mapper/generator/GenTableColumnMapper.xml create mode 100644 ruoyi-generator/target/classes/mapper/generator/GenTableMapper.xml create mode 100644 ruoyi-generator/target/classes/mapper/package-info.md create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/controller/GenController.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/controller/GenController__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer__Javadoc.json create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils.class create mode 100644 ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils__Javadoc.json create mode 100644 ruoyi-generator/target/classes/vm/java/bo.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/controller.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/domain.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/mapper.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/service.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/serviceImpl.java.vm create mode 100644 ruoyi-generator/target/classes/vm/java/vo.java.vm create mode 100644 ruoyi-generator/target/classes/vm/sql/oracle/sql.vm create mode 100644 ruoyi-generator/target/classes/vm/sql/postgres/sql.vm create mode 100644 ruoyi-generator/target/classes/vm/sql/sql.vm create mode 100644 ruoyi-generator/target/classes/vm/sql/sqlserver/sql.vm create mode 100644 ruoyi-generator/target/classes/vm/ts/api.ts.vm create mode 100644 ruoyi-generator/target/classes/vm/ts/types.ts.vm create mode 100644 ruoyi-generator/target/classes/vm/vue/index-tree.vue.vm create mode 100644 ruoyi-generator/target/classes/vm/vue/index.vue.vm create mode 100644 ruoyi-generator/target/classes/vm/xml/mapper.xml.vm create mode 100644 ruoyi-job/.flattened-pom.xml create mode 100644 ruoyi-job/pom.xml create mode 100644 ruoyi-job/src/main/java/org/dromara/job/package-info.java create mode 100644 ruoyi-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java create mode 100644 ruoyi-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java create mode 100644 ruoyi-job/target/classes/org/dromara/job/snailjob/TestAnnoJobExecutor.class create mode 100644 ruoyi-job/target/classes/org/dromara/job/snailjob/TestAnnoJobExecutor__Javadoc.json create mode 100644 ruoyi-job/target/classes/org/dromara/job/snailjob/TestClassJobExecutor.class create mode 100644 ruoyi-job/target/classes/org/dromara/job/snailjob/TestClassJobExecutor__Javadoc.json create mode 100644 ruoyi-system/.flattened-pom.xml create mode 100644 ruoyi-system/pom.xml create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysCache.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysClient.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysConfig.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysDictType.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysNotice.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysOssConfig.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysPost.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleDept.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysUserPost.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/SysUserRole.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/AvatarVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/CacheListInfoVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/MenuTreeSelectVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProfileVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysLogininforService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysNoticeService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysOperLogService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysPermissionService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java create mode 100644 ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/package-info.md create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysClientMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml create mode 100644 ruoyi-system/target/classes/META-INF/mps/autoMapper create mode 100644 ruoyi-system/target/classes/META-INF/mps/autoMappers create mode 100644 ruoyi-system/target/classes/io/github/linpeilie/AutoMapperConfig__2.class create mode 100644 ruoyi-system/target/classes/io/github/linpeilie/ConverterMapperAdapter__2.class create mode 100644 ruoyi-system/target/classes/mapper/package-info.md create mode 100644 ruoyi-system/target/classes/mapper/system/SysClientMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysConfigMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysDeptMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysDictDataMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysDictTypeMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysLogininforMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysMenuMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysNoticeMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysOperLogMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysOssConfigMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysOssMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysPostMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysRoleDeptMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysRoleMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysRoleMenuMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysSocialMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysTenantMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysTenantPackageMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysUserMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysUserPostMapper.xml create mode 100644 ruoyi-system/target/classes/mapper/system/SysUserRoleMapper.xml create mode 100644 ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysOperlogController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysOperlogController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysUserOnlineController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysUserOnlineController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDeptController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDeptController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictDataController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictDataController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictTypeController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictTypeController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysNoticeController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysNoticeController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssConfigController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssConfigController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysPostController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysPostController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysProfileController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysProfileController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysRoleController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysRoleController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysCache.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysCache__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysClient.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysClientToSysClientVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysClientToSysClientVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysClient__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysConfig.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysConfig__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDept.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDeptToSysDeptVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDept__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictData.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictDataToSysDictDataVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictData__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictType.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysDictType__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysLogininfor.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysLogininfor__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysMenu.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysMenuToSysMenuVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysMenu__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysNotice.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysNoticeToSysNoticeVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysNotice__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOperLog.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOperLog__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOss.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysOss__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysPost.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysPostToSysPostVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysPostToSysPostVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysPost__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRole.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleDept.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleDept__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleMenu.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleMenu__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleToSysRoleVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysRole__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysSocial.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysSocialToSysSocialVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysSocialToSysSocialVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysSocial__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenant.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackage.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackage__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysTenant__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUser.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserOnline.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserOnline__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserPost.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserPost__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserRole.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserRole__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserToSysUserVoMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUserToSysUserVoMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/SysUser__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBoToSysClientMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBoToSysOssMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBoToSysOssMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBoToSysPostMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBoToSysPostMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBoToSysUserMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/MetaVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/MetaVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/RouterVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/RouterVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVoToSysOssMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserExportVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserExportVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserImportVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserImportVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserInfoVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserInfoVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVoToSysUserMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener$1.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysClientMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysClientMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysConfigMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDeptMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDeptMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDictTypeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysDictTypeMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysLogininforMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysLogininforMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOssConfigMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOssConfigMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOssMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysOssMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysPostMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysPostMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleDeptMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleDeptMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMenuMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMenuMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserPostMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserPostMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserRoleMapper.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/mapper/SysUserRoleMapper__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysClientService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysClientService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysConfigService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysConfigService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDataScopeService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDataScopeService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDeptService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDeptService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDictDataService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDictDataService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDictTypeService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysDictTypeService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysMenuService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysMenuService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysNoticeService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysNoticeService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOperLogService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOperLogService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOssConfigService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOssConfigService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOssService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysOssService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysPermissionService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysPermissionService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysPostService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysPostService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysUserService.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/ISysUserService__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysLogininforServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysLogininforServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysMenuServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysMenuServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysNoticeServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysNoticeServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOperLogServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOperLogServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysPermissionServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysPermissionServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysUserServiceImpl.class create mode 100644 ruoyi-system/target/classes/org/dromara/system/service/impl/SysUserServiceImpl__Javadoc.json create mode 100644 ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__2.java create mode 100644 ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__2.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapper.java create mode 100644 ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.java create mode 100644 ruoyi-workflow/.flattened-pom.xml create mode 100644 ruoyi-workflow/README.md create mode 100644 ruoyi-workflow/pom.xml create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowVariableVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java create mode 100644 ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java create mode 100644 ruoyi-workflow/src/main/resources/mapper/package-info.md create mode 100644 ruoyi-workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml create mode 100644 ruoyi-workflow/src/main/resources/mapper/workflow/FlwInstanceMapper.xml create mode 100644 ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml create mode 100644 ruoyi-workflow/src/main/resources/mapper/workflow/TestLeaveMapper.xml create mode 100644 ruoyi-workflow/target/classes/META-INF/mps/autoMapper create mode 100644 ruoyi-workflow/target/classes/io/github/linpeilie/AutoMapperConfig__1.class create mode 100644 ruoyi-workflow/target/classes/io/github/linpeilie/ConverterMapperAdapter__1.class create mode 100644 ruoyi-workflow/target/classes/mapper/package-info.md create mode 100644 ruoyi-workflow/target/classes/mapper/workflow/FlwCategoryMapper.xml create mode 100644 ruoyi-workflow/target/classes/mapper/workflow/FlwInstanceMapper.xml create mode 100644 ruoyi-workflow/target/classes/mapper/workflow/FlwTaskMapper.xml create mode 100644 ruoyi-workflow/target/classes/mapper/workflow/TestLeaveMapper.xml create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/ConditionalOnEnable.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/constant/FlowConstant.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/constant/FlowConstant__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/MessageTypeEnum.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/MessageTypeEnum__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeEnum.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeEnum__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/config/WarmFlowConfig.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/config/WarmFlowConfig__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwCategoryController.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwCategoryController__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwInstanceController.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwInstanceController__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwTaskController.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwTaskController__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/TestLeaveController.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/controller/TestLeaveController__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/CompleteTaskBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/CompleteTaskBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCancelBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCancelBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCopyBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCopyBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInstanceBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInstanceBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInvalidBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInvalidBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TaskOperationBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TaskOperationBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TestLeaveBo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TestLeaveBo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowInstanceVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowInstanceVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowTaskVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowTaskVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwInstanceService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwInstanceService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskAssigneeService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskAssigneeService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl$1.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/TestLeaveServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/TestLeaveServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl__Javadoc.json create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils$1.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils.class create mode 100644 ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils__Javadoc.json create mode 100644 ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__1.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__1.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapperImpl.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapperImpl.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapperImpl.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.java create mode 100644 ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.java diff --git a/.flattened-pom.xml b/.flattened-pom.xml new file mode 100644 index 0000000..092f7d2 --- /dev/null +++ b/.flattened-pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + org.dromara + ruoyi-vue-plus + 5.3.0 + + org.dromara + ruoyi-modules + 5.3.0 + pom + ruoyi-modules 业务模块 + + ruoyi-demo + ruoyi-generator + ruoyi-job + ruoyi-system + ruoyi-workflow + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..daff497 --- /dev/null +++ b/pom.xml @@ -0,0 +1,27 @@ + + + + ruoyi-vue-plus + org.dromara + ${revision} + + 4.0.0 + + + ruoyi-demo + ruoyi-generator + ruoyi-job + ruoyi-system + ruoyi-workflow + + + ruoyi-modules + pom + + + ruoyi-modules 业务模块 + + + diff --git a/ruoyi-demo/.flattened-pom.xml b/ruoyi-demo/.flattened-pom.xml new file mode 100644 index 0000000..48d4f3b --- /dev/null +++ b/ruoyi-demo/.flattened-pom.xml @@ -0,0 +1,84 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.3.0 + + org.dromara + ruoyi-demo + 5.3.0 + demo模块 + + + org.dromara + ruoyi-common-core + + + org.dromara + ruoyi-common-doc + + + org.dromara + ruoyi-common-sms + + + org.dromara + ruoyi-common-mail + + + org.dromara + ruoyi-common-redis + + + org.dromara + ruoyi-common-idempotent + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-excel + + + org.dromara + ruoyi-common-security + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-ratelimiter + + + org.dromara + ruoyi-common-translation + + + org.dromara + ruoyi-common-sensitive + + + org.dromara + ruoyi-common-encrypt + + + org.dromara + ruoyi-common-tenant + + + org.dromara + ruoyi-common-websocket + + + diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml new file mode 100644 index 0000000..119fe61 --- /dev/null +++ b/ruoyi-demo/pom.xml @@ -0,0 +1,108 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + + ruoyi-demo + + + demo模块 + + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-mail + + + + org.dromara + ruoyi-common-redis + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-log + + + + org.dromara + ruoyi-common-excel + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-ratelimiter + + + + org.dromara + ruoyi-common-translation + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-websocket + + + + + diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/MailController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/MailController.java new file mode 100644 index 0000000..369a17d --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/MailController.java @@ -0,0 +1,77 @@ +package org.dromara.demo.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.mail.utils.MailUtils; +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; +import java.util.Arrays; + + +/** + * 邮件发送案例 + * + * @author Michelle.Chung + */ +@SaIgnore +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/mail") +public class MailController { + @GetMapping("/sendSimpleMessage") + // 定义一个公共方法 sendSimpleMessage,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作的状态信息 + public R sendSimpleMessage(String to, String subject, String text) { + // 调用 MailUtils 工具类的 sendText 方法,用于发送简单的文本邮件 + // to 参数表示收件人的邮箱地址 + // subject 参数表示邮件的主题 + // text 参数表示邮件的正文内容 + MailUtils.sendText(to, subject, text); + // 调用 R 类的 ok 方法,将操作成功的默认信息封装成统一响应结果类 R 的对象并返回 + // 以此告知调用者邮件发送操作已成功执行 + return R.ok(); + } + + @GetMapping("/sendMessageWithAttachment") + // 定义一个公共方法 sendMessageWithAttachment,返回类型为 R。 +// R 通常是自定义的统一响应结果类,用于封装接口的响应信息, +// Void 表明该方法不返回具体的数据内容,主要用于反馈操作的结果状态 + public R sendMessageWithAttachment(String to, String subject, String text, String filePath) { + // 调用 MailUtils 工具类的 sendText 方法,用于发送带有附件的文本邮件 + // to 参数代表收件人的邮箱地址,指定邮件要发送到哪里 + // subject 参数是邮件的主题,用于简要概括邮件的主要内容 + // text 参数为邮件的正文文本,即邮件要传达的具体信息 + // new File(filePath) 创建一个 File 对象,filePath 是附件文件的路径,将该文件作为附件添加到邮件中 + MailUtils.sendText(to, subject, text, new File(filePath)); + // 调用 R 类的 ok 方法,将操作成功的默认信息封装到 R 对象中并返回 + // 以此告知调用者带有附件的邮件发送操作已成功完成 + return R.ok(); + } + + @GetMapping("/sendMessageWithAttachments") + // 定义一个公共方法 sendMessageWithAttachments,返回类型为 R。 +// R 通常是自定义的统一响应结果类,用于封装接口响应信息, +// Void 表示该方法不返回具体的数据内容,仅用于表示操作结果状态 + public R sendMessageWithAttachments(String to, String subject, String text, String[] paths) { + // 使用 Java 8 的 Stream API 对 paths 数组进行处理 + // Arrays.stream(paths) 将 paths 数组转换为流 + // .map(File::new) 对流中的每个元素(即文件路径字符串)应用 File 类的构造函数,将其转换为 File 对象 + // .toArray(File[]::new) 将流中的元素收集到一个新的 File 类型数组中 + File[] array = Arrays.stream(paths).map(File::new).toArray(File[]::new); + // 调用 MailUtils 工具类的 sendText 方法,用于发送带有多个附件的文本邮件 + // to 参数为收件人的邮箱地址 + // subject 参数是邮件的主题 + // text 参数是邮件的正文内容 + // array 是包含多个附件文件的 File 数组 + MailUtils.sendText(to, subject, text, array); + // 调用 R 类的 ok 方法,将操作成功的默认信息封装到 R 对象中并返回 + // 表示带有多个附件的邮件发送操作已成功完成 + return R.ok(); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java new file mode 100644 index 0000000..7bdca4a --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java @@ -0,0 +1,98 @@ +package org.dromara.demo.controller; + +import cn.hutool.core.thread.ThreadUtil; +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("/demo/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") + // 定义一个公共方法 test6,返回类型为 R,通常 R 是自定义的统一响应结果类,这里泛型指定为 Boolean 类型,表示返回的结果是布尔值 + public R test6(String key, String value) { + // 调用 RedisUtils 工具类的 setCacheObject 方法,将传入的 key 和 value 存储到 Redis 缓存中 + RedisUtils.setCacheObject(key, value); + // 调用 RedisUtils 工具类的 expire 方法,为刚刚存储到 Redis 中的 key 设置过期时间为 10 秒 + // 该方法会返回一个布尔值,表示设置过期时间是否成功 + boolean flag = RedisUtils.expire(key, Duration.ofSeconds(10)); + // 在控制台输出设置过期时间的结果,方便调试查看 + System.out.println("***********" + flag); + // 使用 ThreadUtil 工具类让当前线程休眠 11 秒,确保 Redis 中的 key 已经过期 + ThreadUtil.sleep(11 * 1000); + // 调用 RedisUtils 工具类的 getCacheObject 方法,尝试从 Redis 中获取指定 key 对应的 value + Object obj = RedisUtils.getCacheObject(key); + // 将比较结果(即传入的 value 是否和从 Redis 中获取的 obj 相等)封装到自定义的统一响应结果类 R 中并返回 + return R.ok(value.equals(obj));} +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java new file mode 100644 index 0000000..67f30bf --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java @@ -0,0 +1,69 @@ +package org.dromara.demo.controller; + +import cn.hutool.core.thread.ThreadUtil; +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("/demo/redisLock") +public class RedisLockController { + + @Autowired + private LockTemplate lockTemplate; + + /** + * 测试lock4j 注解 + */ + @Lock4j(keys = {"#key"}) + @GetMapping("/testLock4j") + // 定义一个公共方法 testLock4j,返回类型为 R。R 通常是自定义的统一响应结果类,泛型指定为 String 类型,表示返回的数据部分为字符串 + public R testLock4j(String key, String value) { + // 在控制台输出方法开始执行的信息,包含传入的 key 和当前的本地时间 + System.out.println("start:" + key + ",time:" + LocalTime.now()); + // 调用 ThreadUtil 工具类的 sleep 方法,让当前线程休眠 10000 毫秒(即 10 秒) + ThreadUtil.sleep(10000); + // 在控制台输出方法执行结束的信息,包含传入的 key 和当前的本地时间 + System.out.println("end :" + key + ",time:" + LocalTime.now()); + // 将操作成功的消息和传入的 value 封装到自定义的统一响应结果类 R 中并返回 + 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 { + ThreadUtil.sleep(8000); + System.out.println("执行简单方法1 , 当前线程:" + Thread.currentThread().getName()); + } finally { + //释放锁 + lockTemplate.releaseLock(lockInfo); + } + //结束 + return R.ok("操作成功", value); + } + +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java new file mode 100644 index 0000000..ac143c2 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java @@ -0,0 +1,62 @@ +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("/demo/redis/pubsub") +public class RedisPubSubController { + + /** + * 发布消息 + * + * @param key 通道Key + * @param value 发送内容 + */ + @GetMapping("/pub") + // 定义一个公共方法 pub,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + public R pub(String key, String value) { + // 调用 RedisUtils 工具类的 publish 方法,用于在 Redis 中进行消息发布操作 + // 该方法接收三个参数:key 表示消息发布的通道名称,value 是要发布的消息内容 + // 第三个参数是一个消费者函数,在消息发布时会执行该函数内的逻辑 + RedisUtils.publish(key, value, consumer -> { + // 当消息发布时,在控制台输出发布的通道名称和发送的消息值 + System.out.println("发布通道 => " + key + ", 发送值 => " + value); + }); + // 调用 R 类的 ok 方法,将操作成功的信息封装成统一响应结果类 R 的对象并返回 + return R.ok("操作成功"); + } + + /** + * 订阅消息 + * + * @param key 通道Key + */ + @GetMapping("/sub") + // 定义一个公共方法 sub,返回类型为 R。R 通常是自定义的封装响应结果的类, +// Void 表明该方法的响应结果不携带具体的数据,仅传达操作状态 + public R sub(String key) { + // 调用 RedisUtils 工具类的 subscribe 方法,目的是在 Redis 中订阅指定通道的消息 + // key 参数代表要订阅的通道名称 + // String.class 指定了接收到的消息的数据类型为 String + // 最后一个参数是一个 Lambda 表达式,作为消息处理的回调函数 + RedisUtils.subscribe(key, String.class, msg -> { + // 当接收到订阅通道的消息时,在控制台输出订阅的通道名称以及接收到的消息内容 + System.out.println("订阅通道 => " + key + ", 接收值 => " + msg); + }); + // 调用 R 类的 ok 方法,将 "操作成功" 这个消息封装到 R 对象中并返回, + // 以此告知调用者订阅操作已经成功完成 + return R.ok("操作成功"); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java new file mode 100644 index 0000000..f8adf7d --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java @@ -0,0 +1,64 @@ +package org.dromara.demo.controller; + +import org.dromara.common.core.domain.R; +import org.dromara.common.ratelimiter.annotation.RateLimiter; +import org.dromara.common.ratelimiter.enums.LimitType; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 测试分布式限流样例 + * + * @author Lion Li + */ +@Slf4j +@RestController +@RequestMapping("/demo/rateLimiter") +public class RedisRateLimiterController { + + /** + * 测试全局限流 + * 全局影响 + */ + @RateLimiter(count = 2, time = 10) + @GetMapping("/test") + public R test(String value) { + return R.ok("操作成功", value); + } + + /** + * 测试请求IP限流 + * 同一IP请求受影响 + */ + @RateLimiter(count = 2, time = 10, limitType = LimitType.IP) + @GetMapping("/testip") + public R testip(String value) { + return R.ok("操作成功", value); + } + + /** + * 测试集群实例限流 + * 启动两个后端服务互不影响 + */ + @RateLimiter(count = 2, time = 10, limitType = LimitType.CLUSTER) + @GetMapping("/testcluster") + public R testcluster(String value) { + return R.ok("操作成功", value); + } + + /** + * 测试请求IP限流(key基于参数获取) + * 同一IP请求受影响 + * + * 简单变量获取 #变量 复杂表达式 #{#变量 != 1 ? 1 : 0} + */ + @RateLimiter(count = 2, time = 10, limitType = LimitType.IP, key = "#value") + @GetMapping("/testObj") + public R testObj(String value) { + return R.ok("操作成功", value); + } + +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java new file mode 100644 index 0000000..be36292 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java @@ -0,0 +1,101 @@ +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("/demo/sms") +public class SmsController { + @GetMapping("/sendAliyun") + // 定义一个公共方法 sendAliyun,返回类型为 R。R 通常是自定义的统一响应结果类, +// 泛型为 Object 表示响应中携带的数据可以是任意类型,此方法用于向外返回发送短信操作的结果 + public R sendAliyun(String phones, String templateId) { + // 创建一个初始容量为 1 的 LinkedHashMap 对象 map,用于存储短信模板所需的参数 + // LinkedHashMap 可以保证元素插入的顺序,便于维护参数顺序 + LinkedHashMap map = new LinkedHashMap<>(1); + // 向 map 中添加一个键值对,键为 "code",值为 "1234" + // 这个参数可能用于填充短信模板中的验证码字段 + map.put("code", "1234"); + // 调用 SmsFactory 类的 getSmsBlend 方法,根据配置名称 "config1" 获取一个 SmsBlend 对象 + // SmsBlend 对象封装了短信发送的相关配置和操作方法 + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); + // 调用 smsBlend 对象的 sendMessage 方法,传入手机号码 phones、短信模板 ID templateId 以及模板参数 map + // 该方法会尝试发送短信,并返回一个 SmsResponse 对象,该对象包含了短信发送的结果信息 + SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); + // 调用 R 类的 ok 方法,将短信发送的响应结果 smsResponse 封装到统一响应结果类 R 中并返回 + // 表示本次短信发送操作的结果可以正常返回给调用者 + return R.ok(smsResponse); + } + + @GetMapping("/sendTencent") + // 定义一个公共方法 sendTencent,返回类型为 R。R 通常是自定义的统一响应结果类, +// 泛型使用 Object 意味着响应数据可以是任意类型,此方法用于返回使用腾讯短信服务发送短信的操作结果 + public R sendTencent(String phones, String templateId) { + // 创建一个初始容量为 1 的 LinkedHashMap 对象 map,用于存储短信模板所需的参数 + // LinkedHashMap 能保证元素插入的顺序,方便维护参数顺序 + LinkedHashMap map = new LinkedHashMap<>(1); + // 这里注释掉的代码,原本是想向 map 中添加键为 "2",值为 "测试测试" 的键值对 + // 可能是在开发过程中暂时不需要这个参数,所以注释掉了 + // map.put("2", "测试测试"); + // 向 map 中添加一个键值对,键为 "1",值为 "1234" + // 这个参数可能用于填充腾讯短信模板中的特定占位符 + map.put("1", "1234"); + // 调用 SmsFactory 类的 getSmsBlend 方法,根据配置名称 "config2" 获取一个 SmsBlend 对象 + // SmsBlend 对象封装了使用腾讯短信服务进行短信发送的相关配置和操作方法 + SmsBlend smsBlend = SmsFactory.getSmsBlend("config2"); + // 调用 smsBlend 对象的 sendMessage 方法,传入手机号码 phones、短信模板 ID templateId 以及模板参数 map + // 该方法会尝试使用腾讯短信服务发送短信,并返回一个 SmsResponse 对象 + // SmsResponse 对象包含了短信发送的结果信息,如发送是否成功、错误码等 + SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); + // 调用 R 类的 ok 方法,将短信发送的响应结果 smsResponse 封装到统一响应结果类 R 中并返回 + // 表示本次使用腾讯短信服务发送短信的操作结果可以正常返回给调用者 + return R.ok(smsResponse); + } + + @GetMapping("/addBlacklist") + // 定义一个公共方法 addBlacklist,返回类型为 R。R 通常是自定义的统一响应结果类, +// 泛型为 Object 表示响应中可携带任意类型的数据,此方法用于返回添加手机号码到黑名单操作的结果 + public R addBlacklist(String phone) { + // 调用 SmsFactory 类的 getSmsBlend 方法,根据配置名称 "config1" 获取一个 SmsBlend 对象 + // SmsBlend 对象封装了短信服务相关的配置和操作方法,这里可能是与阿里云短信服务相关的配置 + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); + // 调用 smsBlend 对象的 joinInBlacklist 方法,将传入的手机号码 phone 添加到短信服务的黑名单中 + smsBlend.joinInBlacklist(phone); + // 调用 R 类的 ok 方法,将操作成功的默认信息封装到统一响应结果类 R 中并返回 + // 表示将手机号码添加到黑名单的操作已成功完成 + return R.ok(); + } + + @GetMapping("/removeBlacklist") + // 定义一个公共方法 removeBlacklist,返回类型为 R。 +// R 通常是自定义的统一响应结果类,泛型为 Object 表明该方法返回的响应数据可以是任意类型, +// 此方法主要用于返回从短信服务黑名单中移除指定手机号码操作的结果 + public R removeBlacklist(String phone) { + // 调用 SmsFactory 类的 getSmsBlend 方法,依据配置名称 "config1" 获取一个 SmsBlend 对象。 + // SmsBlend 对象封装了短信服务相关的配置与操作方法,这里可能关联着特定的短信服务(如阿里云)配置 + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); + // 调用 smsBlend 对象的 removeFromBlacklist 方法,将传入的手机号码 phone 从短信服务的黑名单中移除 + smsBlend.removeFromBlacklist(phone); + // 调用 R 类的 ok 方法,把操作成功的默认信息封装到统一响应结果类 R 中并返回, + // 以此表示将手机号码从黑名单移除的操作已成功完成 + return R.ok(); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java new file mode 100644 index 0000000..c866d74 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java @@ -0,0 +1,25 @@ +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; +@RestController +@RequestMapping("/swagger/demo") +// 定义一个名为 Swagger3DemoController 的公共类,通常这是一个控制器类,用于处理 HTTP 请求 +public class Swagger3DemoController { + // 使用 @PostMapping 注解,表明该方法处理 HTTP POST 请求 + // value = "/upload" 表示该方法映射的 URL 路径为 /upload + // consumes = MediaType.MULTIPART_FORM_DATA_VALUE 表示该方法只处理 multipart/form-data 类型的请求,一般用于文件上传 + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + // 定义一个公共方法 upload,返回类型为 R。R 通常是自定义的统一响应结果类,泛型为 String 表示响应数据是字符串类型 + // @RequestPart("file") 注解用于从请求中获取名为 "file" 的部分,这里期望是一个上传的文件 + // MultipartFile 是 Spring 框架提供的用于处理文件上传的接口,file 是接收上传文件的参数 + public R upload(@RequestPart("file") MultipartFile file) { + // 调用 R 类的 ok 方法,将 "操作成功" 作为消息,文件的原始文件名作为数据封装到统一响应结果类 R 中并返回 + return R.ok("操作成功", file.getOriginalFilename()); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java new file mode 100644 index 0000000..79ec2c5 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java @@ -0,0 +1,114 @@ +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("/demo/batch") +public class TestBatchController extends BaseController { + private final TestDemoMapper testDemoMapper; + @PostMapping("/add") +// @DS("slave") + // 定义一个公共方法 add,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + public R add() { + // 创建一个用于存储 TestDemo 对象的 ArrayList 列表 + // 后续会将创建的 TestDemo 对象添加到这个列表中,以便进行批量操作 + List list = new ArrayList<>(); + // 使用 for 循环,循环 1000 次,目的是创建 1000 个 TestDemo 对象 + for (int i = 0; i < 1000; i++) { + // 实例化一个 TestDemo 对象,用于表示要添加到数据库中的数据 + TestDemo testDemo = new TestDemo(); + // 为 TestDemo 对象的 orderNum 属性设置值为 -1 + testDemo.setOrderNum(-1); + // 为 TestDemo 对象的 testKey 属性设置值为 "批量新增" + testDemo.setTestKey("批量新增"); + // 为 TestDemo 对象的 value 属性设置值为 "测试新增" + testDemo.setValue("测试新增"); + // 将创建好并设置好属性的 TestDemo 对象添加到之前创建的列表中 + list.add(testDemo); + } + // 调用 toAjax 方法,将 testDemoMapper 的 insertBatch 方法的返回结果作为参数传入 + // testDemoMapper 通常是 MyBatis 等持久层框架的 Mapper 接口实例,用于和数据库交互 + // insertBatch 方法用于将列表中的 TestDemo 对象批量插入到数据库中 + // toAjax 方法的作用可能是将数据库操作的结果封装成统一的响应格式,方便前端处理 + return toAjax(testDemoMapper.insertBatch(list)); + } + @PostMapping("/addOrUpdate") +// @DS("slave") + // 定义一个公共方法 addOrUpdate,返回类型为 R + public R addOrUpdate() { + // 创建一个用于存储 TestDemo 对象的列表 + List list = new ArrayList<>(); + // 循环 1000 次,用于批量创建 TestDemo 对象 + for (int i = 0; i < 1000; i++) { + // 创建一个新的 TestDemo 对象 + TestDemo testDemo = new TestDemo(); + // 设置 TestDemo 对象的 orderNum 属性为 -1 + testDemo.setOrderNum(-1); + // 设置 TestDemo 对象的 testKey 属性为 "批量新增" + testDemo.setTestKey("批量新增"); + // 设置 TestDemo 对象的 value 属性为 "测试新增" + testDemo.setValue("测试新增"); + // 将创建好的 TestDemo 对象添加到列表中 + list.add(testDemo); + } + // 调用 testDemoMapper 的 insertBatch 方法,将列表中的 TestDemo 对象批量插入数据库 + testDemoMapper.insertBatch(list); + // 遍历列表中的每个 TestDemo 对象 + for (int i = 0; i < list.size(); i++) { + // 从列表中获取当前索引对应的 TestDemo 对象 + TestDemo testDemo = list.get(i); + // 更新 TestDemo 对象的 testKey 属性为 "批量新增或修改" + testDemo.setTestKey("批量新增或修改"); + // 更新 TestDemo 对象的 value 属性为 "批量新增或修改" + testDemo.setValue("批量新增或修改"); + // 如果当前索引是偶数 + if (i % 2 == 0) { + // 将 TestDemo 对象的 id 属性设置为 null,可能表示这是一个新增操作 + testDemo.setId(null); + } + } + // 调用 testDemoMapper 的 insertOrUpdateBatch 方法,批量新增或更新列表中的 TestDemo 对象 + // 然后调用 toAjax 方法将操作结果封装成 R 对象并返回 + return toAjax(testDemoMapper.insertOrUpdateBatch(list)); + } + /** + * 删除批量方法 + */ + @DeleteMapping() +// @DS("slave") + // 定义一个公共方法 remove,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + public R remove() { + // 调用 toAjax 方法,将 testDemoMapper 的 delete 方法的返回结果作为参数传入 + // testDemoMapper 通常是 MyBatis-Plus 等持久层框架的 Mapper 接口实例,用于和数据库交互 + return toAjax(testDemoMapper.delete( + // 创建一个 LambdaQueryWrapper 对象,用于构建查询条件 + // LambdaQueryWrapper 是 MyBatis-Plus 提供的用于方便构建查询条件的工具类 + new LambdaQueryWrapper() + // 使用 eq 方法添加一个等值查询条件 + // TestDemo::getOrderNum 是 Java 8 的方法引用,用于指定要查询的字段为 orderNum + // -1L 表示要查询的 orderNum 字段的值为 -1(这里的 L 表示是长整型) + .eq(TestDemo::getOrderNum, -1L) + )); + // 这里多余的 } 应该是代码错误,需要删除 + }} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java new file mode 100644 index 0000000..448996e --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java @@ -0,0 +1,181 @@ +package org.dromara.demo.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.MapstructUtils; +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.idempotent.annotation.RepeatSubmit; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.excel.core.ExcelResult; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +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.*; +import java.util.concurrent.TimeUnit; + +/** + * 测试单表Controller + * + * @author Lion Li + * @date 2021-07-26 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/demo") +public class TestDemoController extends BaseController { + + private final ITestDemoService testDemoService; + + /** + * 查询测试单表列表 + */ + @SaCheckPermission("demo:demo:list") + @GetMapping("/list") + public TableDataInfo list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { + return testDemoService.queryPageList(bo, pageQuery); + } + + /** + * 自定义分页查询 + */ + @SaCheckPermission("demo:demo:list") + @GetMapping("/page") + public TableDataInfo page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) { + return testDemoService.customPageList(bo, pageQuery); + } + + + // 使用 @Log 注解,用于记录操作日志 +// title 属性指定日志的标题为 "测试单表" +// businessType 属性指定业务类型为 IMPORT,表示这是一个导入操作 + @Log(title = "测试单表", businessType = BusinessType.IMPORT) +// 使用 @SaCheckPermission 注解,用于权限校验 +// 表示执行该方法需要具备 "demo:demo:import" 这个权限 + @SaCheckPermission("demo:demo:import") +// 使用 @PostMapping 注解,表明该方法处理 HTTP POST 请求 +// value = "/importData" 表示该方法映射的 URL 路径为 /importData +// consumes = MediaType.MULTIPART_FORM_DATA_VALUE 表示该方法只处理 multipart/form-data 类型的请求,通常用于文件上传 + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) +// 定义一个公共方法 importData,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 +// @RequestPart("file") 注解用于从请求中获取名为 "file" 的部分,这里期望是一个上传的文件 +// MultipartFile 是 Spring 框架提供的用于处理文件上传的接口,file 是接收上传文件的参数 +// throws Exception 表示该方法可能会抛出异常,调用者需要进行异常处理 + public R importData(@RequestPart("file") MultipartFile file) throws Exception { + // 调用 ExcelUtil 工具类的 importExcel 方法,将上传文件的输入流转换为 Excel 解析结果 + // file.getInputStream() 获取上传文件的输入流 + // TestDemoImportVo.class 指定解析结果的数据类型为 TestDemoImportVo + // true 表示是否严格模式,具体含义取决于 ExcelUtil 类的实现 + ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); + // 调用 MapstructUtils 工具类的 convert 方法,将 Excel 解析结果中的列表数据转换为 TestDemo 类型的列表 + // excelResult.getList() 获取 Excel 解析结果中的数据列表 + // TestDemo.class 指定转换的目标类型为 TestDemo + List list = MapstructUtils.convert(excelResult.getList(), TestDemo.class); + // 调用 testDemoService 的 saveBatch 方法,将转换后的 TestDemo 列表批量保存到数据库中 + // 这里的 testDemoService 是业务逻辑层的服务类,负责与数据库交互 + testDemoService.saveBatch(list); + // 调用 R 类的 ok 方法,将 Excel 解析结果中的分析信息封装到统一响应结果类 R 中并返回 + // excelResult.getAnalysis() 获取 Excel 解析结果中的分析信息 + 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 = testDemoService.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(testDemoService.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(testDemoService.insertByBo(bo)); + } + + /** + * 修改测试单表 + */ + @SaCheckPermission("demo:demo:edit") + @Log(title = "测试单表", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) { + return toAjax(testDemoService.updateByBo(bo)); + } + + /** + * 删除测试单表 + * + * @param ids 测试ID串 + */ + @SaCheckPermission("demo:demo:remove") + @Log(title = "测试单表", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + // 定义一个公共方法 remove,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + public R remove( + // 使用 @NotEmpty 注解对参数进行校验,若传入的数组为空,会抛出校验异常, + // message 属性指定校验失败时的提示信息为 "主键不能为空" + @NotEmpty(message = "主键不能为空") + // 使用 @PathVariable 注解,表明该参数是从请求的路径变量中获取的, + // 这里期望从路径中获取一组 Long 类型的主键 ID + @PathVariable Long[] ids + ) { + // 调用 toAjax 方法,将 testDemoService 的 deleteWithValidByIds 方法的返回结果作为参数传入 + // testDemoService 是业务逻辑层的服务类,负责与数据库交互 + // Arrays.asList(ids) 将传入的 Long 数组转换为 List 集合 + // true 作为第二个参数传入,具体含义取决于 deleteWithValidByIds 方法的实现, + // 可能表示是否进行额外的有效性验证等 + return toAjax(testDemoService.deleteWithValidByIds(Arrays.asList(ids), true)); + } +} +// 这里多余的 } 应该是代码错误,需要删除 diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java new file mode 100644 index 0000000..1aef8f9 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java @@ -0,0 +1,70 @@ +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("/demo/encrypt") +public class TestEncryptController { + + @Autowired + private TestDemoEncryptMapper mapper; + @Value("${mybatis-encryptor.enable}") + private Boolean encryptEnable; + + /** + * 测试数据库加解密 + * + * @param key 测试key + * @param value 测试value + */ + @GetMapping() + // 定义一个公共方法 test,返回类型为 R>。 +// R 通常是自定义的统一响应结果类,这里泛型指定为 Map, +// 表示响应结果中携带的数据是一个键为 String 类型、值为 TestDemoEncrypt 类型的映射 + public R> test(String key, String value) { + // 检查加密功能是否开启,如果 encryptEnable 为 false,说明加密功能未开启 + if (!encryptEnable) { + // 若加密功能未开启,抛出一个运行时异常,提示加密功能未开启 + throw new RuntimeException("加密功能未开启!"); + } + // 创建一个初始容量为 2 的 HashMap 对象 map,用于存储加密和解密后的 TestDemoEncrypt 对象 + Map map = new HashMap<>(2); + // 创建一个 TestDemoEncrypt 对象 demo,用于封装传入的 key 和 value + TestDemoEncrypt demo = new TestDemoEncrypt(); + // 为 demo 对象的 testKey 属性设置传入的 key 值 + demo.setTestKey(key); + // 为 demo 对象的 value 属性设置传入的 value 值 + demo.setValue(value); + // 调用 mapper 的 insert 方法,将 demo 对象插入到数据库中 + // mapper 通常是 MyBatis 等持久层框架的映射器接口实例 + mapper.insert(demo); + // 将键为 "加密",值为 demo 对象的键值对添加到 map 中 + map.put("加密", demo); + // 调用 mapper 的 selectById 方法,根据 demo 对象的 id 从数据库中查询对应的记录 + // 并将查询结果赋值给 testDemo 对象,这里可能涉及到数据的解密操作 + TestDemoEncrypt testDemo = mapper.selectById(demo.getId()); + // 将键为 "解密",值为 testDemo 对象的键值对添加到 map 中 + map.put("解密", testDemo); + // 调用 R 类的 ok 方法,将 map 对象封装到统一响应结果类 R 中并返回 + // 表示操作成功,并将加密和解密后的对象信息返回给调用者 + return R.ok(map); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java new file mode 100644 index 0000000..03ad49c --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java @@ -0,0 +1,255 @@ +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("/demo/excel") +public class TestExcelController { + private final IExportExcelService exportExcelService; + + @GetMapping("/exportTemplateOne") + // 定义一个公共方法 exportTemplateOne,该方法用于导出 Excel 模板文件 +// 接收一个 HttpServletResponse 对象作为参数,用于向客户端发送响应数据 + public void exportTemplateOne(HttpServletResponse response) { + // 创建一个 HashMap 对象 map,用于存储一些配置信息或数据 + // 这里存储的键值对将用于填充 Excel 模板中的特定位置 + Map map = new HashMap<>(); + // 向 map 中添加键为 "title",值为 "单列表多数据" 的键值对 + // 这个值可能用于作为 Excel 表格的标题 + map.put("title", "单列表多数据"); + // 依次向 map 中添加其他键值对,用于填充 Excel 模板中的不同位置 + map.put("test1", "数据测试1"); + map.put("test2", "数据测试2"); + map.put("test3", "数据测试3"); + map.put("test4", "数据测试4"); + map.put("testTest", "666"); + // 创建一个 ArrayList 对象 list,用于存储 TestObj 类型的对象 + // 这些对象将作为 Excel 表格中的数据行 + List list = new ArrayList<>(); + // 创建一个 TestObj 对象,并传入相应的参数,然后将其添加到 list 中 + // 这个对象代表 Excel 表格中的一行数据 + list.add(new TestObj("单列表测试1", "列表测试1", "列表测试2", "列表测试3", "列表测试4")); + // 继续创建 TestObj 对象并添加到 list 中,增加 Excel 表格的数据行数 + list.add(new TestObj("单列表测试2", "列表测试5", "列表测试6", "列表测试7", "列表测试8")); + list.add(new TestObj("单列表测试3", "列表测试9", "列表测试10", "列表测试11", "列表测试12")); + // 调用 ExcelUtil 工具类的 exportTemplate 方法,用于导出 Excel 模板文件 + // CollUtil.newArrayList(map, list) 将 map 和 list 合并为一个新的列表,作为导出的数据 + // "单列表.xlsx" 是导出文件的文件名 + // "excel/单列表.xlsx" 是 Excel 模板文件的路径 + // response 是 HttpServletResponse 对象,用于将生成的 Excel 文件发送给客户端 + ExcelUtil.exportTemplate(CollUtil.newArrayList(map, list), "单列表.xlsx", "excel/单列表.xlsx", response); + } + + @GetMapping("/exportTemplateMuliti") + // 定义一个公共方法 exportTemplateMuliti,该方法的作用是导出一个包含多列表数据的 Excel 模板文件 +// 接收一个 HttpServletResponse 对象作为参数,用于向客户端发送生成的 Excel 文件 + public void exportTemplateMuliti(HttpServletResponse response) { + // 创建一个 HashMap 对象 map,用于存储一些配置信息,这些信息可能会用于填充 Excel 模板中的特定位置 + Map map = new HashMap<>(); + // 向 map 中添加键值对,键为 "title1",值为 "标题1",可能用于设置 Excel 中某个区域的标题 + map.put("title1", "标题1"); + // 依次添加其他标题相关的键值对 + map.put("title2", "标题2"); + map.put("title3", "标题3"); + map.put("title4", "标题4"); + // 添加作者信息,键为 "author",值为 "Lion Li" + map.put("author", "Lion Li"); + + // 创建一个存储 TestObj1 对象的列表 list1,用于存储第一组数据 + List list1 = new ArrayList<>(); + // 创建 TestObj1 对象并添加到 list1 中,每个对象代表 Excel 表格中的一行数据 + 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")); + + // 创建第二个存储 TestObj1 对象的列表 list2,用于存储第二组数据 + List list2 = new ArrayList<>(); + // 向 list2 中添加 TestObj1 对象 + list2.add(new TestObj1("list2测试1", "list2测试2", "list2测试3")); + list2.add(new TestObj1("list2测试4", "list2测试5", "list2测试6")); + + // 创建第三个存储 TestObj1 对象的列表 list3,用于存储第三组数据 + List list3 = new ArrayList<>(); + // 向 list3 中添加 TestObj1 对象 + list3.add(new TestObj1("list3测试1", "list3测试2", "list3测试3")); + + // 创建第四个存储 TestObj1 对象的列表 list4,用于存储第四组数据 + List list4 = new ArrayList<>(); + // 向 list4 中添加多个 TestObj1 对象 + 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")); + + // 创建一个新的 HashMap 对象 multiListMap,用于将前面创建的 map 和各个列表数据整合在一起 + Map multiListMap = new HashMap<>(); + // 将前面创建的 map 对象添加到 multiListMap 中,键为 "map" + multiListMap.put("map", map); + // 依次将各个列表数据添加到 multiListMap 中,分别用 "data1" 到 "data4" 作为键 + multiListMap.put("data1", list1); + multiListMap.put("data2", list2); + multiListMap.put("data3", list3); + multiListMap.put("data4", list4); + + // 调用 ExcelUtil 工具类的 exportTemplateMultiList 方法,根据整合后的数据生成 Excel 文件 + // multiListMap 是包含所有数据的映射,"多列表.xlsx" 是生成的 Excel 文件的文件名 + // "excel/多列表.xlsx" 是 Excel 模板文件的路径,response 用于将生成的文件发送给客户端 + ExcelUtil.exportTemplateMultiList(multiListMap, "多列表.xlsx", "excel/多列表.xlsx", response); + } + + /** + * 导出下拉框 + * + * @param response / + */ + @GetMapping("/exportWithOptions") + public void exportWithOptions(HttpServletResponse response) { + exportExcelService.exportWithOptions(response); + } + + /** + * 多个sheet导出 + */ + @GetMapping("/exportTemplateMultiSheet") + // 定义一个公共方法 exportTemplateMultiSheet,用于导出包含多个工作表(sheet)的 Excel 模板文件 +// 接收一个 HttpServletResponse 对象作为参数,用于将生成的 Excel 文件响应给客户端 + public void exportTemplateMultiSheet(HttpServletResponse response) { + // 创建一个存储 TestObj1 对象的列表 list1,用于存储第一个工作表的数据 + List list1 = new ArrayList<>(); + // 向 list1 中添加 TestObj1 对象,每个对象代表 Excel 表格中的一行数据 + list1.add(new TestObj1("list1测试1", "list1测试2", "list1测试3")); + list1.add(new TestObj1("list1测试4", "list1测试5", "list1测试6")); + + // 创建第二个存储 TestObj1 对象的列表 list2,用于存储第二个工作表的数据 + List list2 = new ArrayList<>(); + // 向 list2 中添加 TestObj1 对象 + list2.add(new TestObj1("list2测试1", "list2测试2", "list2测试3")); + list2.add(new TestObj1("list2测试4", "list2测试5", "list2测试6")); + + // 创建第三个存储 TestObj1 对象的列表 list3,用于存储第三个工作表的数据 + List list3 = new ArrayList<>(); + // 向 list3 中添加 TestObj1 对象 + list3.add(new TestObj1("list3测试1", "list3测试2", "list3测试3")); + list3.add(new TestObj1("list3测试4", "list3测试5", "list3测试6")); + + // 创建第四个存储 TestObj1 对象的列表 list4,用于存储第四个工作表的数据 + List list4 = new ArrayList<>(); + // 向 list4 中添加 TestObj1 对象 + list4.add(new TestObj1("list4测试1", "list4测试2", "list4测试3")); + list4.add(new TestObj1("list4测试4", "list4测试5", "list4测试6")); + + // 创建一个存储 Map 的列表 list,用于存储每个工作表的数据映射 + List> list = new ArrayList<>(); + + // 创建一个 Map 对象 sheetMap1,用于存储第一个工作表的数据 + Map sheetMap1 = new HashMap<>(); + // 将 list1 作为值,以 "data1" 为键添加到 sheetMap1 中 + sheetMap1.put("data1", list1); + + // 创建一个 Map 对象 sheetMap2,用于存储第二个工作表的数据 + Map sheetMap2 = new HashMap<>(); + // 将 list2 作为值,以 "data2" 为键添加到 sheetMap2 中 + sheetMap2.put("data2", list2); + + // 创建一个 Map 对象 sheetMap3,用于存储第三个工作表的数据 + Map sheetMap3 = new HashMap<>(); + // 将 list3 作为值,以 "data3" 为键添加到 sheetMap3 中 + sheetMap3.put("data3", list3); + + // 创建一个 Map 对象 sheetMap4,用于存储第四个工作表的数据 + Map sheetMap4 = new HashMap<>(); + // 将 list4 作为值,以 "data4" 为键添加到 sheetMap4 中 + sheetMap4.put("data4", list4); + + // 将每个工作表的数据映射依次添加到 list 中 + list.add(sheetMap1); + list.add(sheetMap2); + list.add(sheetMap3); + list.add(sheetMap4); + + // 调用 ExcelUtil 工具类的 exportTemplateMultiSheet 方法,根据整合后的数据生成包含多个工作表的 Excel 文件 + // list 是包含所有工作表数据映射的列表,"多sheet列表" 是生成的 Excel 文件的文件名 + // "excel/多sheet列表.xlsx" 是 Excel 模板文件的路径,response 用于将生成的文件发送给客户端 + ExcelUtil.exportTemplateMultiSheet(list, "多sheet列表", "excel/多sheet列表.xlsx", response); + } + + /** + * 导入表格 + */ + @PostMapping(value = "/importWithOptions", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + // 定义一个公共方法 importWithOptions,该方法用于处理文件导入操作,并返回一个 ExportDemoVo 类型的列表 +// @RequestPart("file") 注解表明该方法从 HTTP 请求里获取名为 "file" 的部分,此部分应为上传的文件 +// MultipartFile 是 Spring 框架提供的用于处理文件上传的接口,file 参数用于接收上传的文件 +// throws Exception 表示该方法可能会抛出异常,调用者需要对这些异常进行处理 + public List importWithOptions(@RequestPart("file") MultipartFile file) throws Exception { + // 这是一行注释,说明接下来的代码会处理 Excel 文件的解析结果 + // 调用 ExcelUtil 工具类的 importExcel 方法,对上传的 Excel 文件进行解析 + // file.getInputStream() 用于获取上传文件的输入流,以便后续进行读取操作 + // ExportDemoVo.class 指定了解析结果的数据类型为 ExportDemoVo,也就是解析后的数据会封装成 ExportDemoVo 对象 + // new ExportDemoListener() 是创建了一个 ExportDemoListener 类的实例,该监听器会在 Excel 文件解析过程中发挥作用, + // 例如可以在解析到特定行或单元格时执行特定操作 + // 解析结果会被存储在 ExcelResult 类型的对象 excelResult 中 + ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), ExportDemoVo.class, new ExportDemoListener()); + // 从 excelResult 对象里获取解析得到的 ExportDemoVo 对象列表,并将其返回 + return excelResult.getList(); + } + + @Data + // @AllArgsConstructor 是 Lombok 库提供的注解。 +// 它会自动为这个类生成一个包含所有已声明字段的构造函数。 +// 这样可以减少手动编写构造函数的工作量,提高代码的简洁性。 + @AllArgsConstructor +// 定义一个静态内部类 TestObj1。静态内部类意味着它可以在不创建外部类实例的情况下被实例化。 +// 该类主要用于封装一组相关的数据,这里包含三个字符串类型的属性。 + static class TestObj1 { + // 定义一个私有字符串类型的属性 test1。 + // 私有属性可以保证数据的封装性,外部类不能直接访问,需要通过 getter 和 setter 方法来操作。 + private String test1; + // 定义一个私有字符串类型的属性 test2。 + private String test2; + // 定义一个私有字符串类型的属性 test3。 + private String test3; + } + + @Data + @AllArgsConstructor + // 定义一个静态内部类 TestObj。静态内部类可以不依赖外部类的实例而被创建, +// 通常用于将一组相关的数据封装在一起,方便管理和使用 + static class TestObj { + // 定义一个私有字符串类型的属性 name,用于存储对象的名称信息 + // 私有属性可以保证数据的封装性,外部类不能直接访问该属性,需要通过 getter 和 setter 方法来操作 + private String name; + // 定义一个私有字符串类型的属性 list1,可用于存储相关列表中的某一项信息 + private String list1; + // 定义一个私有字符串类型的属性 list2,用途和 list1 类似,可存储列表中的另一项信息 + private String list2; + // 定义一个私有字符串类型的属性 list3,用于存储相关列表中的又一项信息 + private String list3; + // 定义一个私有字符串类型的属性 list4,同样用于存储列表中的信息 + private String list4; + } +} +// 这里多余的 } 应该是代码错误,需要删除 diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java new file mode 100644 index 0000000..5be2545 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java @@ -0,0 +1,86 @@ +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("/demo/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") + // 定义一个公共方法 test2,返回类型为 R。 +// R 通常是自定义的统一响应结果类,泛型指定为 TestI18nBo 表示响应中携带的数据类型为 TestI18nBo。 +// @Validated 注解用于开启对方法参数的校验,确保传入的参数符合指定的校验规则。 +// TestI18nBo bo 表示接收一个 TestI18nBo 类型的对象作为参数。 + public R test2(@Validated TestI18nBo bo) { + // 调用 R 类的 ok 方法,将传入的 bo 对象封装到统一响应结果类 R 中并返回。 + // 表示操作成功,并将传入的 TestI18nBo 对象原样返回给调用者。 + return R.ok(bo); + } + + // 使用 @Data 注解,这是 Lombok 提供的注解,会自动生成 getter、setter、toString、equals、hashCode 等方法。 +// 定义一个公共静态内部类 TestI18nBo,用于封装需要进行校验的数据。 + @Data + public static class TestI18nBo { + // @NotBlank 注解用于校验字符串类型的属性,确保该属性不为空字符串且不为 null。 + // message = "{not.null}" 表示当校验不通过时,会从国际化资源文件中查找键为 "not.null" 的错误信息并返回。 + // 这里的 name 属性用于存储名称信息。 + @NotBlank(message = "{not.null}") + private String name; + + // @NotNull 注解用于校验对象类型的属性,确保该属性不为 null。 + // message = "{not.null}" 同样表示校验不通过时从国际化资源文件中查找键为 "not.null" 的错误信息。 + // @Range 注解用于对数值类型的属性进行范围校验,这里要求 age 属性的值在 0 到 100 之间。 + // message = "{length.not.valid}" 表示当 age 的值不在指定范围内时,从国际化资源文件中查找键为 "length.not.valid" 的错误信息。 + // 这里的 age 属性用于存储年龄信息。 + @NotNull(message = "{not.null}") + @Range(min = 0, max = 100, message = "{length.not.valid}") + private Integer age; + }} +// 这里多余的 } 应该是代码错误,需要删除 diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java new file mode 100644 index 0000000..3049570 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java @@ -0,0 +1,86 @@ +package org.dromara.demo.controller; + +import org.dromara.common.core.domain.R; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.sensitive.annotation.Sensitive; +import org.dromara.common.sensitive.core.SensitiveStrategy; +import lombok.Data; +import org.dromara.common.sensitive.core.SensitiveService; +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 SensitiveService + */ +@RestController +@RequestMapping("/demo/sensitive") +// 定义一个公共类 TestSensitiveController,它继承自 BaseController 类。 +// 通常 BaseController 类会包含一些通用的控制器逻辑,继承它可以复用这些逻辑。 +public class TestSensitiveController extends BaseController { + // 使用 @GetMapping 注解,表明该方法处理 HTTP GET 请求。 + // "/test" 表示该方法映射的 URL 路径为 /test,当客户端发送 GET 请求到这个路径时,会调用此方法。 + @GetMapping("/test") + // 定义一个公共方法 test,返回类型为 R。 + // R 通常是自定义的统一响应结果类,泛型指定为 TestSensitive 表示响应中携带的数据类型为 TestSensitive。 + public R test() { + // 创建一个 TestSensitive 类的实例 testSensitive,用于封装敏感信息。 + TestSensitive testSensitive = new TestSensitive(); + // 调用 testSensitive 对象的 setIdCard 方法,设置身份证号属性的值。 + testSensitive.setIdCard("210397198608215431"); + // 调用 testSensitive 对象的 setPhone 方法,设置电话号码属性的值。 + testSensitive.setPhone("17640125371"); + // 调用 testSensitive 对象的 setAddress 方法,设置地址属性的值。 + testSensitive.setAddress("北京市朝阳区某某四合院1203室"); + // 调用 testSensitive 对象的 setEmail 方法,设置邮箱属性的值。 + testSensitive.setEmail("17640125371@163.com"); + // 调用 testSensitive 对象的 setBankCard 方法,设置银行卡号属性的值。 + testSensitive.setBankCard("6226456952351452853"); + // 调用 R 类的 ok 方法,将 testSensitive 对象封装到统一响应结果类 R 中并返回。 + // 表示操作成功,并将包含敏感信息的 testSensitive 对象返回给调用者。 + 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/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java new file mode 100644 index 0000000..7d54a50 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java @@ -0,0 +1,160 @@ +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.core.validate.QueryGroup; +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("/demo/tree") +// 定义一个公共类 TestTreeController,它继承自 BaseController 类。 +// 通常 BaseController 类会包含一些通用的控制器逻辑,继承它可以复用这些逻辑。 +public class TestTreeController extends BaseController { + // 定义一个私有且不可变的 ITestTreeService 类型的成员变量 testTreeService。 + // 使用 final 关键字修饰,意味着该变量在初始化后不能再被重新赋值。 + // 此变量用于调用 ITestTreeService 接口中定义的方法来处理业务逻辑。 + private final ITestTreeService testTreeService; + + // 使用 @SaCheckPermission 注解,用于进行权限校验。 + // "demo:tree:list" 表示执行该方法需要具备 "demo:tree:list" 这个权限,只有拥有此权限的用户才能访问该接口。 + @SaCheckPermission("demo:tree:list") + // 使用 @GetMapping 注解,表明该方法处理 HTTP GET 请求。 + // "/list" 表示该方法映射的 URL 路径为 /list,当客户端发送 GET 请求到这个路径时,会调用此方法。 + @GetMapping("/list") + // 定义一个公共方法 list,返回类型为 R>。 + // R 通常是自定义的统一响应结果类,泛型指定为 List 表示响应中携带的数据是一个 TestTreeVo 类型的列表。 + // @Validated(QueryGroup.class) 注解用于开启对方法参数的校验,并且指定使用 QueryGroup 分组的校验规则。 + // TestTreeBo bo 表示接收一个 TestTreeBo 类型的对象作为查询参数。 + public R> list(@Validated(QueryGroup.class) TestTreeBo bo) { + // 调用 testTreeService 的 queryList 方法,传入查询参数 bo,获取符合条件的 TestTreeVo 列表。 + // queryList 方法是 ITestTreeService 接口中定义的方法,具体实现由其实现类完成。 + List list = testTreeService.queryList(bo); + // 调用 R 类的 ok 方法,将查询得到的列表 list 封装到统一响应结果类 R 中并返回。 + // 表示操作成功,并将查询结果列表返回给调用者。 + return R.ok(list); + } + + /** + * 导出测试树表列表 + */ + // 使用 @SaCheckPermission 注解,该注解用于进行权限校验。 +// "demo:tree:export" 是权限标识,意味着调用此方法的用户必须拥有 "demo:tree:export" 这个权限, +// 若没有相应权限,将无法访问该接口。 + @SaCheckPermission("demo:tree:export") +// 使用 @Log 注解,该注解通常用于记录操作日志。 +// title 属性指定日志的标题为 "测试树表",businessType 属性指定业务类型为 EXPORT,即导出操作。 +// 这样在执行该方法时,会记录相关的操作日志信息。 + @Log(title = "测试树表", businessType = BusinessType.EXPORT) +// 使用 @GetMapping 注解,表明此方法处理 HTTP GET 请求。 +// "/export" 是该方法映射的 URL 路径,当客户端发送 GET 请求到这个路径时,会调用此方法。 + @GetMapping("/export") +// 定义一个公共方法 export,该方法没有返回值(void)。 +// @Validated 注解用于对传入的 TestTreeBo 对象进行数据校验,确保其符合预定义的规则。 +// TestTreeBo bo 是一个自定义的业务对象,用于封装查询条件。 +// HttpServletResponse response 是 Servlet API 中的响应对象,用于向客户端返回数据, +// 这里主要用于返回导出的 Excel 文件。 + public void export(@Validated TestTreeBo bo, HttpServletResponse response) { + // 调用 testTreeService 的 queryList 方法,传入查询条件 bo, + // 从业务逻辑层获取符合条件的 TestTreeVo 对象列表。 + // testTreeService 是一个业务逻辑服务对象,负责处理与测试树表相关的业务逻辑。 + List list = testTreeService.queryList(bo); + // 调用 ExcelUtil 工具类的 exportExcel 方法,将查询得到的列表数据导出为 Excel 文件。 + // list 是要导出的数据列表。 + // "测试树表" 是导出的 Excel 文件的名称。 + // TestTreeVo.class 指定了导出数据的类型,用于确定 Excel 文件的表头和数据格式。 + // response 用于将生成的 Excel 文件返回给客户端。 + ExcelUtil.exportExcel(list, "测试树表", TestTreeVo.class, response); + } + + // 使用 @SaCheckPermission 注解进行权限校验,只有拥有 "demo:tree:query" 权限的用户才能访问此接口 + @SaCheckPermission("demo:tree:query") +// 使用 @GetMapping 注解,表明该方法处理 HTTP GET 请求,路径中的 {id} 是一个路径变量 + @GetMapping("/{id}") +// 定义一个公共方法 getInfo,返回类型为 R,R 通常是自定义的统一响应结果类 +// @NotNull 注解对参数 id 进行非空校验,若为空会抛出校验异常,message 属性指定异常提示信息 +// @PathVariable("id") 注解表示从路径中获取名为 "id" 的变量并赋值给方法参数 id + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + // 调用 testTreeService 的 queryById 方法,根据 id 查询 TestTreeVo 对象 + // 然后将查询结果封装到统一响应结果类 R 中返回 + return R.ok(testTreeService.queryById(id)); + } + + // 使用 @SaCheckPermission 注解进行权限校验,只有拥有 "demo:tree:add" 权限的用户才能访问此接口 + @SaCheckPermission("demo:tree:add") +// 使用 @Log 注解记录操作日志,title 为 "测试树表",businessType 为 INSERT 表示插入操作 + @Log(title = "测试树表", businessType = BusinessType.INSERT) +// @RepeatSubmit 注解用于防止重复提交,避免用户在短时间内多次提交相同请求 + @RepeatSubmit +// 使用 @PostMapping 注解,表明该方法处理 HTTP POST 请求 + @PostMapping() +// 定义一个公共方法 add,返回类型为 R,表示不返回具体数据,只返回操作结果 +// @Validated(AddGroup.class) 注解对传入的 TestTreeBo 对象进行校验,使用 AddGroup 分组的校验规则 +// @RequestBody 注解表示从请求体中获取数据并反序列化为 TestTreeBo 对象 + public R add(@Validated(AddGroup.class) @RequestBody TestTreeBo bo) { + // 调用 testTreeService 的 insertByBo 方法,根据传入的 bo 对象插入数据 + // 然后调用 toAjax 方法将插入操作的结果封装到统一响应结果类 R 中返回 + return toAjax(testTreeService.insertByBo(bo)); + } + + // 使用 @SaCheckPermission 注解进行权限校验,只有拥有 "demo:tree:edit" 权限的用户才能访问此接口 + @SaCheckPermission("demo:tree:edit") +// 使用 @Log 注解记录操作日志,title 为 "测试树表",businessType 为 UPDATE 表示更新操作 + @Log(title = "测试树表", businessType = BusinessType.UPDATE) +// @RepeatSubmit 注解用于防止重复提交 + @RepeatSubmit +// 使用 @PutMapping 注解,表明该方法处理 HTTP PUT 请求 + @PutMapping() +// 定义一个公共方法 edit,返回类型为 R +// @Validated(EditGroup.class) 注解对传入的 TestTreeBo 对象进行校验,使用 EditGroup 分组的校验规则 +// @RequestBody 注解表示从请求体中获取数据并反序列化为 TestTreeBo 对象 + public R edit(@Validated(EditGroup.class) @RequestBody TestTreeBo bo) { + // 调用 testTreeService 的 updateByBo 方法,根据传入的 bo 对象更新数据 + // 然后调用 toAjax 方法将更新操作的结果封装到统一响应结果类 R 中返回 + return toAjax(testTreeService.updateByBo(bo)); + } + + // 使用 @SaCheckPermission 注解进行权限校验,只有拥有 "demo:tree:remove" 权限的用户才能访问此接口 + @SaCheckPermission("demo:tree:remove") +// 使用 @Log 注解记录操作日志,title 为 "测试树表",businessType 为 DELETE 表示删除操作 + @Log(title = "测试树表", businessType = BusinessType.DELETE) +// 使用 @DeleteMapping 注解,表明该方法处理 HTTP DELETE 请求,路径中的 {ids} 是一个路径变量 + @DeleteMapping("/{ids}") +// 定义一个公共方法 remove,返回类型为 R +// @NotEmpty 注解对参数 ids 进行非空校验,若为空会抛出校验异常,message 属性指定异常提示信息 +// @PathVariable 注解表示从路径中获取名为 "ids" 的变量并赋值给方法参数 ids + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + // 调用 Arrays.asList 方法将 Long 数组转换为 List 集合 + // 然后调用 testTreeService 的 deleteWithValidByIds 方法,根据传入的 id 列表删除数据 + // 第二个参数 true 可能表示是否进行额外的有效性验证 + // 最后调用 toAjax 方法将删除操作的结果封装到统一响应结果类 R 中返回 + return toAjax(testTreeService.deleteWithValidByIds(Arrays.asList(ids), true)); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/WeSocketController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/WeSocketController.java new file mode 100644 index 0000000..44474f5 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/WeSocketController.java @@ -0,0 +1,32 @@ +package org.dromara.demo.controller; + +import org.dromara.common.core.domain.R; +import org.dromara.common.websocket.dto.WebSocketMessageDto; +import org.dromara.common.websocket.utils.WebSocketUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/websocket") +@Slf4j +// 定义一个公共类 WeSocketController,它通常作为控制器类,负责处理与 WebSocket 相关的 HTTP 请求 +public class WeSocketController { + // 使用 @GetMapping 注解,表明该方法处理 HTTP GET 请求 + // "/send" 表示该方法映射的 URL 路径为 /send,当客户端发送 GET 请求到这个路径时,会调用此方法 + @GetMapping("/send") + // 定义一个公共方法 send,返回类型为 R。R 通常是自定义的统一响应结果类, + // Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + // WebSocketMessageDto dto 表示接收一个 WebSocketMessageDto 类型的对象作为参数,该对象封装了要发送的 WebSocket 消息相关信息 + // throws InterruptedException 表示该方法可能会抛出 InterruptedException 异常,调用者需要进行异常处理 + public R send(WebSocketMessageDto dto) throws InterruptedException { + // 调用 WebSocketUtils 工具类的 publishMessage 方法,将传入的 dto 对象作为参数, + // 该方法的作用是发布 WebSocket 消息,具体实现逻辑由 WebSocketUtils 类决定 + WebSocketUtils.publishMessage(dto); + // 调用 R 类的 ok 方法,将 "操作成功" 作为消息封装到统一响应结果类 R 中并返回, + // 表示 WebSocket 消息发布操作成功 + return R.ok("操作成功"); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/package-info.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/package-info.java new file mode 100644 index 0000000..16c30f8 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/package-info.java @@ -0,0 +1 @@ +package org.dromara.demo.controller; diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java new file mode 100644 index 0000000..15158ab --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java @@ -0,0 +1,94 @@ +package org.dromara.demo.controller.queue; + +import cn.dev33.satoken.annotation.SaIgnore; +import org.dromara.common.core.domain.R; +import org.dromara.common.redis.utils.QueueUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RBoundedBlockingQueue; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 有界队列 演示案例 + *

+ * 轻量级队列 重量级数据量 请使用 MQ + *

+ * 集群测试通过 同一个数据只会被消费一次 做好事务补偿 + * 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条 + * + * @author Lion Li + * @version 3.6.0 + */ +@Slf4j +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/queue/bounded") +public class BoundedQueueController { + + /** + * 添加队列数据 + * + * @param queueName 队列名 + * @param capacity 容量 + */ + @GetMapping("/add") + public R add(String queueName, int capacity) { + // 用完了一定要销毁,否则会一直存在。这里先尝试销毁指定名称的有界队列 + boolean b = QueueUtils.destroyBoundedQueue(queueName); + log.info("通道: {} , 删除: {}", queueName, b); + // 初始化设置一次即可。尝试为指定队列设置容量 + if (QueueUtils.trySetBoundedQueueCapacity(queueName, capacity)) { + log.info("通道: {} , 设置容量: {}", queueName, capacity); + } else { + log.info("通道: {} , 设置容量失败", queueName); + return R.fail("操作失败"); + } + // 循环向队列中添加11条数据 + for (int i = 0; i < 11; i++) { + String data = "data-" + i; + // 尝试向指定队列添加数据 + boolean flag = QueueUtils.addBoundedQueueObject(queueName, data); + if (flag == false) { + log.info("通道: {} , 发送数据: {} 失败, 通道已满", queueName, data); + } else { + log.info("通道: {} , 发送数据: {}", queueName, data); + } + } + return R.ok("操作成功"); + } + + /** + * 删除队列数据 + * + * @param queueName 队列名 + */ + @GetMapping("/remove") + public R remove(String queueName) { + String data = "data-" + 5; + // 尝试从指定队列中删除指定数据 + if (QueueUtils.removeBoundedQueueObject(queueName, data)) { + log.info("通道: {} , 删除数据: {}", queueName, data); + } else { + return R.fail("操作失败"); + } + return R.ok("操作成功"); + } + + /** + * 获取队列数据 + * + * @param queueName 队列名 + */ + @GetMapping("/get") + public R get(String queueName) { + String data; + // 循环从队列中获取数据,直到获取到的数据为null(表示队列为空) + do { + data = QueueUtils.getBoundedQueueObject(queueName); + log.info("通道: {} , 获取数据: {}", queueName, data); + } while (data != null); + return R.ok("操作成功"); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java new file mode 100644 index 0000000..42c5a73 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java @@ -0,0 +1,110 @@ +package org.dromara.demo.controller.queue; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.dromara.common.redis.utils.QueueUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; + +/** + * 延迟队列 演示案例 + *

+ * 轻量级队列 重量级数据量 请使用 MQ + * 例如: 创建订单30分钟后过期处理 + *

+ * 集群测试通过 同一个数据只会被消费一次 做好事务补偿 + * 集群测试流程 两台集群分别开启订阅 在其中一台发送数据 观察接收消息的规律 + * + * @author Lion Li + * @version 3.6.0 + */ +@SaIgnore +@Slf4j +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/queue/delayed") +public class DelayedQueueController { + + /** + * 订阅队列 + * + * @param queueName 队列名 + */ + @GetMapping("/subscribe") + public R subscribe(String queueName) { + log.info("通道: {} 监听中......", queueName); + // 项目初始化设置一次即可 + QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { + // 观察接收时间 + log.info("通道: {}, 收到数据: {}", queueName, orderNum); + return CompletableFuture.runAsync(() -> { + // 异步处理数据逻辑 不要在上方处理业务逻辑 + log.info("数据处理: {}", orderNum); + }); + }, true); + return R.ok("操作成功"); + } + + /** + * 添加队列数据 + * + * @param queueName 队列名 + * @param orderNum 订单号 + * @param time 延迟时间(秒) + */ + @GetMapping("/add") + public R add(String queueName, String orderNum, Long time) { + QueueUtils.addDelayedQueueObject(queueName, orderNum, time, TimeUnit.SECONDS); + // 观察发送时间 + log.info("通道: {} , 发送数据: {}", queueName, orderNum); + return R.ok("操作成功"); + } + + /** + * 删除队列数据 + * + * @param queueName 队列名 + * @param orderNum 订单号 + */ + @GetMapping("/remove") + // 定义一个公共方法 remove,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于传达操作的结果状态 + public R remove(String queueName, String orderNum) { + // 调用 QueueUtils 工具类的 removeDelayedQueueObject 方法,尝试从指定名称的延迟队列中移除指定 orderNum 的数据 + // 该方法返回一个布尔值,表示移除操作是否成功 + if (QueueUtils.removeDelayedQueueObject(queueName, orderNum)) { + // 如果移除操作成功,使用日志记录工具(如 SLF4J)记录移除成功的信息 + // 信息中包含队列名称和被移除的数据的 orderNum + log.info("通道: {} , 删除数据: {}", queueName, orderNum); + } else { + // 如果移除操作失败,调用 R 类的 fail 方法,将 "操作失败" 信息封装成统一响应结果类 R 的对象并返回 + return R.fail("操作失败"); + } + // 如果移除操作成功,调用 R 类的 ok 方法,将 "操作成功" 信息封装成统一响应结果类 R 的对象并返回 + return R.ok("操作成功"); + } + + /** + * 销毁队列 + * + * @param queueName 队列名 + */ + @GetMapping("/destroy") + // 定义一个公共方法 destroy,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表明此方法不返回具体的数据内容,主要用于告知调用者操作的结果状态 + public R destroy(String queueName) { + // 这里给出注释提示,强调在使用完队列后必须进行销毁操作,否则队列会一直存在占用资源 + // 调用 QueueUtils 工具类的 destroyDelayedQueue 方法,传入队列名称 queueName, + // 该方法的作用是销毁指定名称的延迟队列 + QueueUtils.destroyDelayedQueue(queueName); + // 调用 R 类的 ok 方法,将 "操作成功" 这个消息封装到 R 对象中并返回, + // 以此告知调用者延迟队列销毁操作已经成功完成 + return R.ok("操作成功"); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java new file mode 100644 index 0000000..38fa7ab --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java @@ -0,0 +1,30 @@ +package org.dromara.demo.controller.queue; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类 注意不允许使用内部类 否则会找不到类 + * + * @author Lion Li + * @version 3.6.0 + */ +@Data +@NoArgsConstructor +// 定义一个名为 PriorityDemo 的公共类,该类实现了 Comparable 接口,用于对 PriorityDemo 对象进行比较 +public class PriorityDemo implements Comparable { + // 声明一个私有字符串类型的成员变量 name,用于存储对象的名称 + private String name; + // 声明一个私有整数类型的成员变量 orderNum,用于存储对象的排序编号 + private Integer orderNum; + + // 重写 Comparable 接口中的 compareTo 方法,用于定义两个 PriorityDemo 对象的比较规则 + @Override + public int compareTo(PriorityDemo other) { + // 调用 Integer 类的 compare 方法,比较当前对象的 orderNum 和传入对象的 orderNum + // 如果当前对象的 orderNum 小于传入对象的 orderNum,返回负数 + // 如果当前对象的 orderNum 等于传入对象的 orderNum,返回 0 + // 如果当前对象的 orderNum 大于传入对象的 orderNum,返回正数 + return Integer.compare(getOrderNum(), other.getOrderNum()); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java new file mode 100644 index 0000000..4ce834d --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java @@ -0,0 +1,124 @@ +package org.dromara.demo.controller.queue; + +import cn.hutool.core.util.RandomUtil; +import org.dromara.common.core.domain.R; +import org.dromara.common.redis.utils.QueueUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 优先队列 演示案例 + *

+ * 轻量级队列 重量级数据量 请使用 MQ + *

+ * 集群测试通过 同一个消息只会被消费一次 做好事务补偿 + * 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条 + * + * @author Lion Li + * @version 3.6.0 + */ +@Slf4j +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/queue/priority") +public class PriorityQueueController { + + /** + * 添加队列数据 + * + * @param queueName 队列名 + */ + @GetMapping("/add") + // 定义一个公共方法 add,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于告知调用者操作的结果状态 + public R add(String queueName) { + // 注释提示,强调使用完队列后需要销毁,否则队列会一直存在 + // 调用 QueueUtils 工具类的 destroyPriorityQueue 方法,尝试销毁指定名称的优先队列 + // 该方法返回一个布尔值,表示队列是否成功销毁 + boolean b = QueueUtils.destroyPriorityQueue(queueName); + // 使用日志记录工具记录队列销毁操作的结果,包含队列名称和销毁结果 + log.info("通道: {} , 删除: {}", queueName, b); + + // 循环 10 次,向优先队列中添加 10 个元素 + for (int i = 0; i < 10; i++) { + // 生成一个 0 到 9 之间的随机整数 + int randomNum = RandomUtil.randomInt(10); + // 创建一个 PriorityDemo 对象,用于表示要添加到队列中的数据 + PriorityDemo data = new PriorityDemo(); + // 设置 PriorityDemo 对象的名称属性 + data.setName("data-" + i); + // 设置 PriorityDemo 对象的排序编号属性为随机生成的整数 + data.setOrderNum(randomNum); + // 调用 QueueUtils 工具类的 addPriorityQueueObject 方法,尝试将数据添加到指定名称的优先队列中 + // 该方法返回一个布尔值,表示数据是否成功添加到队列中 + if (QueueUtils.addPriorityQueueObject(queueName, data)) { + // 如果数据添加成功,使用日志记录工具记录添加成功的信息,包含队列名称和添加的数据 + log.info("通道: {} , 发送数据: {}", queueName, data); + } else { + // 如果数据添加失败,使用日志记录工具记录添加失败的信息,包含队列名称和添加的数据 + log.info("通道: {} , 发送数据: {}, 发送失败", queueName, data); + } + } + // 调用 R 类的 ok 方法,将 "操作成功" 信息封装到统一响应结果类 R 中并返回 + return R.ok("操作成功"); + } + + /** + * 删除队列数据 + * + * @param queueName 队列名 + * @param name 对象名 + * @param orderNum 排序号 + */ + @GetMapping("/remove") + // 定义一个公共方法 remove,其返回类型为 R。这里的 R 一般是自定义的统一响应结果类, +// Void 表明该方法不返回具体的数据内容,仅用于传达操作的结果状态 + public R remove(String queueName, String name, Integer orderNum) { + // 创建一个 PriorityDemo 对象,用于封装要从队列中移除的数据信息 + PriorityDemo data = new PriorityDemo(); + // 为 PriorityDemo 对象设置名称属性,该名称由方法参数传入 + data.setName(name); + // 为 PriorityDemo 对象设置排序编号属性,该编号由方法参数传入 + data.setOrderNum(orderNum); + // 调用 QueueUtils 工具类的 removePriorityQueueObject 方法,尝试从指定名称的优先队列中移除封装好的数据对象 + // 该方法会返回一个布尔值,用于表示移除操作是否成功 + if (QueueUtils.removePriorityQueueObject(queueName, data)) { + // 若移除操作成功,使用日志记录工具记录移除成功的信息 + // 信息中包含队列名称以及被移除的数据对象 + log.info("通道: {} , 删除数据: {}", queueName, data); + } else { + // 若移除操作失败,调用 R 类的 fail 方法,将 "操作失败" 信息封装成统一响应结果类 R 的对象并返回 + return R.fail("操作失败"); + } + // 若移除操作成功,调用 R 类的 ok 方法,将 "操作成功" 信息封装成统一响应结果类 R 的对象并返回 + return R.ok("操作成功"); + } + + /** + * 获取队列数据 + * + * @param queueName 队列名 + */ + @GetMapping("/get") + // 定义一个公共方法 get,返回类型为 R。R 通常是自定义的统一响应结果类, +// Void 表示该方法不返回具体的数据内容,主要用于返回操作结果信息 + public R get(String queueName) { + // 声明一个 PriorityDemo 类型的变量 data,用于存储从优先队列中获取的数据 + PriorityDemo data; + // 使用 do-while 循环,先执行一次循环体,再判断条件是否满足 + do { + // 调用 QueueUtils 工具类的 getPriorityQueueObject 方法,从指定名称的优先队列中获取数据 + // 并将获取到的数据赋值给 data 变量 + data = QueueUtils.getPriorityQueueObject(queueName); + // 使用日志记录工具(如 SLF4J)记录从队列中获取数据的信息 + // 信息包含队列名称和获取到的数据 + log.info("通道: {} , 获取数据: {}", queueName, data); + // 当获取到的数据不为 null 时,继续循环,直到队列为空,获取到的数据为 null 时停止循环 + } while (data != null); + // 调用 R 类的 ok 方法,将 "操作成功" 信息封装成统一响应结果类 R 的对象并返回 + return R.ok("操作成功"); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemo.java new file mode 100644 index 0000000..e477531 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemo.java @@ -0,0 +1,66 @@ +package org.dromara.demo.domain; + +import com.baomidou.mybatisplus.annotation.*; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 测试单表对象 test_demo + * + * @author Lion Li + * @date 2021-07-26 + */ +// @Data 是 Lombok 提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 减少了样板代码,提高了代码的简洁性。 +@Data +// @EqualsAndHashCode(callSuper = true) 同样是 Lombok 注解,用于生成 equals 和 hashCode 方法。 +// callSuper = true 表示生成的 equals 和 hashCode 方法会调用父类的对应方法, +// 确保在比较对象时会考虑父类的属性。 +@EqualsAndHashCode(callSuper = true) +// @TableName("test_demo") 是 MyBatis-Plus 提供的注解,用于指定该实体类对应的数据库表名, +// 这里表明该类对应数据库中的 test_demo 表。 +@TableName("test_demo") +// 定义一个公共类 TestDemo,继承自 TenantEntity 类,通常 TenantEntity 类会包含一些与租户相关的公共属性和方法。 +public class TestDemo extends TenantEntity { + // @Serial 是 Java 17 引入的注解,用于显式指定序列化版本号。 + // serialVersionUID 是一个静态常量,用于在反序列化时验证序列化数据的版本一致性, + // 确保反序列化的对象版本与序列化时的对象版本一致。 + @Serial + private static final long serialVersionUID = 1L; + // @TableId(value = "id") 是 MyBatis-Plus 注解,用于指定该属性为数据库表的主键。 + // value = "id" 表示主键字段在数据库表中的名称为 id。 + @TableId(value = "id") + // 定义一个 Long 类型的私有属性 id,作为该实体类的主键。 + private Long id; + // 定义一个 Long 类型的私有属性 deptId,用于存储部门 ID 信息, + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private Long deptId; + // 定义一个 Long 类型的私有属性 userId,用于存储用户 ID 信息, + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private Long userId; + // @OrderBy(asc = false, sort = 1) 是自定义注解(假设是自定义的), + // asc = false 表示降序排序,sort = 1 可能表示排序的优先级为 1, + // 用于在查询时对该字段进行排序。 + @OrderBy(asc = false, sort = 1) + // 定义一个 Integer 类型的私有属性 orderNum,用于存储排序号信息。 + private Integer orderNum; + // 定义一个 String 类型的私有属性 testKey,用于存储测试的 key 信息, + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private String testKey; + // 定义一个 String 类型的私有属性 value,用于存储值信息, + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private String value; + // @Version 是 MyBatis-Plus 注解,用于实现乐观锁机制。 + // 当对数据库记录进行更新操作时,会比较版本号,若版本号不一致则更新失败。 + @Version + // 定义一个 Long 类型的私有属性 version,作为乐观锁的版本号。 + private Long version; + // @TableLogic 是 MyBatis-Plus 注解,用于实现逻辑删除功能。 + // 逻辑删除不会真正从数据库中删除记录,而是通过修改该字段的值来标记记录已删除。 + @TableLogic + // 定义一个 Long 类型的私有属性 delFlag,作为逻辑删除的标记字段。 + private Long delFlag; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java new file mode 100644 index 0000000..c3667ff --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java @@ -0,0 +1,20 @@ +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 { + // @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/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestTree.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestTree.java new file mode 100644 index 0000000..45b3934 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestTree.java @@ -0,0 +1,65 @@ +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 org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 测试树表对象 test_tree + * + * @author Lion Li + * @date 2021-07-26 + */ +// @Data 是 Lombok 提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 减少了手动编写这些方法的工作量,提高了代码的简洁性。 +@Data +// @EqualsAndHashCode(callSuper = true) 同样是 Lombok 注解,用于生成 equals 和 hashCode 方法。 +// callSuper = true 表示生成的 equals 和 hashCode 方法会调用父类的对应方法, +// 确保在比较对象时会考虑父类的属性。 +@EqualsAndHashCode(callSuper = true) +// @TableName("test_tree") 是 MyBatis-Plus 框架提供的注解, +// 用于指定当前实体类对应的数据库表名,这里表明该类对应数据库中的 test_tree 表。 +@TableName("test_tree") +// 定义一个公共类 TestTree,继承自 TenantEntity 类。 +// 通常 TenantEntity 类会包含一些与租户相关的通用属性和方法,继承它可以复用这些内容。 +public class TestTree extends TenantEntity { + // @Serial 是 Java 17 引入的注解,用于显式指定序列化版本号。 + // serialVersionUID 是一个静态常量,用于在反序列化时验证序列化数据的版本一致性, + // 确保反序列化的对象版本与序列化时的对象版本一致。 + @Serial + private static final long serialVersionUID = 1L; + // @TableId(value = "id") 是 MyBatis-Plus 注解,用于指定该属性为数据库表的主键。 + // value = "id" 表示主键字段在数据库表中的名称是 id。 + @TableId(value = "id") + // 定义一个 Long 类型的私有属性 id,作为该实体类的主键,用于唯一标识一条记录。 + private Long id; + // 定义一个 Long 类型的私有属性 parentId,用于存储该树节点的父节点 ID。 + // 没有添加特殊注解,默认该属性对应数据库表中同名的字段。 + private Long parentId; + // 定义一个 Long 类型的私有属性 deptId,用于存储部门 ID 信息。 + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private Long deptId; + // 定义一个 Long 类型的私有属性 userId,用于存储用户 ID 信息。 + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private Long userId; + // 定义一个 String 类型的私有属性 treeName,用于存储树节点的名称。 + // 未添加特殊注解,默认对应数据库表中同名的字段。 + private String treeName; + // @Version 是 MyBatis-Plus 注解,用于实现乐观锁机制。 + // 当对数据库记录进行更新操作时,会比较版本号,若版本号不一致则更新失败, + // 以此保证数据的一致性。 + @Version + // 定义一个 Long 类型的私有属性 version,作为乐观锁的版本号。 + private Long version; + // @TableLogic 是 MyBatis-Plus 注解,用于实现逻辑删除功能。 + // 逻辑删除不会真正从数据库中删除记录,而是通过修改该字段的值来标记记录已删除。 + @TableLogic + // 定义一个 Long 类型的私有属性 delFlag,作为逻辑删除的标记字段。 + private Long delFlag; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java new file mode 100644 index 0000000..53ba9e2 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java @@ -0,0 +1,73 @@ +package org.dromara.demo.domain.bo; + +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; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +/** + * 测试单表业务对象 test_demo + * + * @author Lion Li + * @date 2021-07-26 + */ + +// @Data 是 Lombok 提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 减少了手动编写这些方法的工作量,提高了代码的简洁性。 +@Data +// @EqualsAndHashCode(callSuper = true) 也是 Lombok 注解,用于生成 equals 和 hashCode 方法。 +// callSuper = true 表示在生成的 equals 和 hashCode 方法中会调用父类的相应方法, +// 确保子类对象比较时会考虑父类的属性。 +@EqualsAndHashCode(callSuper = true) +// @AutoMapper 是自定义的注解,用于自动生成映射代码。 +// target = TestDemo.class 表示该类可以自动映射到 TestDemo 类, +// reverseConvertGenerate = false 表示不生成反向转换的代码,即从 TestDemo 到当前类的转换代码不会自动生成。 +@AutoMapper(target = TestDemo.class, reverseConvertGenerate = false) +// 定义一个公共类 TestDemoBo,它继承自 BaseEntity 类。 +// 通常 BaseEntity 类会包含一些通用的实体属性和方法,继承它可以复用这些内容。 +// Bo 一般代表 Business Object,即业务对象,用于封装业务逻辑中的数据。 +public class TestDemoBo extends BaseEntity { + // @NotNull 是校验注解,用于确保属性值不为 null。 + // message = "主键不能为空" 是校验失败时的提示信息, + // groups = {EditGroup.class} 表示该校验规则只在 EditGroup 分组下生效, + // 通常用于在不同的业务场景下应用不同的校验规则。 + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + // 定义一个 Long 类型的私有属性 id,用于表示主键。 + private Long id; + // @NotNull 注解,确保 deptId 属性值不为 null。 + // message = "部门id不能为空" 是校验失败时的提示信息, + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 Long 类型的私有属性 deptId,用于表示部门 ID。 + private Long deptId; + // @NotNull 注解,确保 userId 属性值不为 null。 + // message = "用户id不能为空" 是校验失败时的提示信息, + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 Long 类型的私有属性 userId,用于表示用户 ID。 + private Long userId; + // @NotNull 注解,确保 orderNum 属性值不为 null。 + // message = "排序号不能为空" 是校验失败时的提示信息, + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotNull(message = "排序号不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 Integer 类型的私有属性 orderNum,用于表示排序号。 + private Integer orderNum; + // @NotBlank 注解,用于校验字符串类型的属性,确保该属性不为空字符串且不为 null。 + // message = "key键不能为空" 是校验失败时的提示信息, + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotBlank(message = "key键不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 String 类型的私有属性 testKey,用于表示 key 键。 + private String testKey; + // @NotBlank 注解,确保 value 属性不为空字符串且不为 null。 + // message = "值不能为空" 是校验失败时的提示信息, + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotBlank(message = "值不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 String 类型的私有属性 value,用于表示值。 + private String value; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java new file mode 100644 index 0000000..928f566 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java @@ -0,0 +1,56 @@ +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 +// 定义一个公共类 TestDemoImportVo,Vo 通常代表 View Object,即视图对象, +// 这里用于封装从 Excel 导入的数据,以便在程序中进行处理。 +public class TestDemoImportVo { + // @NotNull 是一个校验注解,用于确保该属性的值不为 null。 + // message = "部门id不能为空" 是校验失败时给出的提示信息。 + @NotNull(message = "部门id不能为空") + // @ExcelProperty 是 EasyExcel 框架提供的注解,用于指定该属性与 Excel 表格中列的对应关系。 + // value = "部门id" 表示该属性对应 Excel 表格中列名为 "部门id" 的列。 + @ExcelProperty(value = "部门id") + // 定义一个 Long 类型的私有属性 deptId,用于存储从 Excel 中导入的部门 ID 信息。 + private Long deptId; + + // @NotNull 注解,确保该属性的值不为 null,校验失败时提示 "用户id不能为空"。 + @NotNull(message = "用户id不能为空") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "用户id" 的列。 + @ExcelProperty(value = "用户id") + // 定义一个 Long 类型的私有属性 userId,用于存储从 Excel 中导入的用户 ID 信息。 + private Long userId; + + // @NotNull 注解,确保该属性的值不为 null,校验失败时提示 "排序号不能为空"。 + @NotNull(message = "排序号不能为空") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "排序号" 的列。 + @ExcelProperty(value = "排序号") + // 定义一个 Long 类型的私有属性 orderNum,用于存储从 Excel 中导入的排序号信息。 + private Long orderNum; + + // @NotBlank 是用于校验字符串类型属性的注解,确保该属性不为空字符串且不为 null。 + // 校验失败时提示 "key键不能为空"。 + @NotBlank(message = "key键不能为空") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "key键" 的列。 + @ExcelProperty(value = "key键") + // 定义一个 String 类型的私有属性 testKey,用于存储从 Excel 中导入的 key 键信息。 + private String testKey; + + // @NotBlank 注解,确保该属性不为空字符串且不为 null,校验失败时提示 "值不能为空"。 + @NotBlank(message = "值不能为空") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "值" 的列。 + @ExcelProperty(value = "值") + // 定义一个 String 类型的私有属性 value,用于存储从 Excel 中导入的值信息。 + private String value; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java new file mode 100644 index 0000000..11bf038 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java @@ -0,0 +1,61 @@ +package org.dromara.demo.domain.bo; + +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; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 测试树表业务对象 test_tree + * + * @author Lion Li + * @date 2021-07-26 + */ + +// @Data 是 Lombok 库提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 可以减少样板代码,提高代码的简洁性。 +@Data +// @EqualsAndHashCode(callSuper = true) 同样是 Lombok 注解,用于生成 equals 和 hashCode 方法。 +// callSuper = true 表示生成的 equals 和 hashCode 方法会调用父类的对应方法, +// 确保在比较对象时会考虑父类的属性。 +@EqualsAndHashCode(callSuper = true) +// @AutoMapper 是自定义的注解,用于自动生成对象之间的映射代码。 +// target = TestTree.class 表示该类可以自动映射到 TestTree 类, +// reverseConvertGenerate = false 表示不生成反向转换(从 TestTree 到 TestTreeBo)的代码。 +@AutoMapper(target = TestTree.class, reverseConvertGenerate = false) +// 定义一个公共类 TestTreeBo,继承自 BaseEntity 类。 +// Bo 通常代表 Business Object,即业务对象,用于封装业务逻辑中的数据。 +// 继承 BaseEntity 可以复用一些公共的实体属性和方法。 +public class TestTreeBo extends BaseEntity { + // @NotNull 是 Bean Validation 规范中的注解,用于校验属性值不能为 null。 + // message = "主键不能为空" 是校验失败时显示的错误信息。 + // groups = {EditGroup.class} 表示该校验规则只在 EditGroup 分组下生效, + // 通常用于在不同业务场景下应用不同的校验规则。 + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + // 定义一个 Long 类型的私有属性 id,用于表示该业务对象的主键。 + private Long id; + // 定义一个 Long 类型的私有属性 parentId,用于表示该树节点的父节点 ID。 + // 没有添加校验注解,意味着该属性可以为 null。 + private Long parentId; + // @NotNull 注解,校验属性值不能为 null,校验失败时显示 "部门id不能为空"。 + // groups = {AddGroup.class, EditGroup.class} 表示该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotNull(message = "部门id不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 Long 类型的私有属性 deptId,用于表示所属部门的 ID。 + private Long deptId; + // @NotNull 注解,校验属性值不能为 null,校验失败时显示 "用户id不能为空"。 + // 该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 Long 类型的私有属性 userId,用于表示关联的用户 ID。 + private Long userId; + // @NotBlank 是 Bean Validation 规范中的注解,用于校验字符串类型的属性, + // 确保属性值不为 null 且不为空字符串(去除首尾空格后长度大于 0)。 + // 校验失败时显示 "树节点名不能为空",该校验规则在 AddGroup 和 EditGroup 分组下都生效。 + @NotBlank(message = "树节点名不能为空", groups = {AddGroup.class, EditGroup.class}) + // 定义一个 String 类型的私有属性 treeName,用于表示树节点的名称。 + private String treeName; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/package-info.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/package-info.java new file mode 100644 index 0000000..cb7d83f --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/package-info.java @@ -0,0 +1 @@ +package org.dromara.demo.domain; diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java new file mode 100644 index 0000000..dad37d2 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java @@ -0,0 +1,142 @@ +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; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 带有下拉选的Excel导出 + * + * @author Emil.Zhang + */ +// @Data 是 Lombok 提供的注解,会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 减少了手动编写这些方法的工作量,提高代码的简洁性。 +@Data +// @ExcelIgnoreUnannotated 是 EasyExcel 框架的注解, +// 表示忽略类中未被 @ExcelProperty 注解标注的属性,即这些属性不会参与 Excel 的读写操作。 +@ExcelIgnoreUnannotated +// @AllArgsConstructor 是 Lombok 注解,会自动生成一个包含所有已声明字段的构造函数。 +@AllArgsConstructor +// @NoArgsConstructor 是 Lombok 注解,会自动生成一个无参构造函数。 +@NoArgsConstructor +// 定义一个公共类 ExportDemoVo,实现了 Serializable 接口, +// 表明该类的对象可以被序列化,即可以在网络传输或保存到文件中。 +public class ExportDemoVo implements Serializable { + // @Serial 是 Java 17 引入的注解,用于显式指定序列化版本号。 + // serialVersionUID 是一个静态常量,用于在反序列化时验证序列化数据的版本一致性, + // 确保反序列化的对象版本与序列化时的对象版本一致。 + @Serial + private static final long serialVersionUID = 1L; + + // @ExcelProperty 是 EasyExcel 框架的注解,用于指定该属性与 Excel 表格中列的对应关系。 + // value = "用户名" 表示该属性对应 Excel 表格中列名为 "用户名" 的列, + // index = 0 表示该列在 Excel 中的索引位置为 0(从 0 开始计数)。 + @ExcelProperty(value = "用户名", index = 0) + // @NotEmpty 是 Bean Validation 规范中的注解,用于校验字符串类型的属性, + // 确保该属性不为 null 且不为空字符串(去除首尾空格后长度大于 0)。 + // message = "用户名不能为空" 是校验失败时的提示信息, + // groups = AddGroup.class 表示该校验规则只在 AddGroup 分组下生效。 + @NotEmpty(message = "用户名不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 nickName,用于存储用户名信息。 + private String nickName; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "用户类型" 的列,索引位置为 1。 + // converter = ExcelEnumConvert.class 表示使用 ExcelEnumConvert 类进行数据转换, + // 通常用于将枚举类型的数据转换为 Excel 中合适的显示格式。 + @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) + // @ExcelEnumFormat 是自定义注解,用于指定枚举类型的格式化规则。 + // enumClass = UserStatus.class 表示该属性对应的枚举类为 UserStatus, + // textField = "info" 表示使用枚举类中的 info 字段作为显示文本。 + @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") + // @NotEmpty 注解,校验该属性不为空,校验失败时提示 "用户类型不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotEmpty(message = "用户类型不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 userStatus,用于存储用户类型信息。 + private String userStatus; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "性别" 的列,索引位置为 2。 + // converter = ExcelDictConvert.class 表示使用 ExcelDictConvert 类进行数据转换, + // 通常用于将字典类型的数据转换为 Excel 中合适的显示格式。 + @ExcelProperty(value = "性别", index = 2, converter = ExcelDictConvert.class) + // @ExcelDictFormat 是自定义注解,用于指定字典类型的格式化规则。 + // dictType = "sys_user_sex" 表示该属性对应的字典类型为 "sys_user_sex"。 + @ExcelDictFormat(dictType = "sys_user_sex") + // @NotEmpty 注解,校验该属性不为空,校验失败时提示 "性别不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotEmpty(message = "性别不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 gender,用于存储性别信息。 + private String gender; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "手机号" 的列,索引位置为 3。 + @ExcelProperty(value = "手机号", index = 3) + // @NotEmpty 注解,校验该属性不为空,校验失败时提示 "手机号不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotEmpty(message = "手机号不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 phoneNumber,用于存储手机号信息。 + private String phoneNumber; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "Email" 的列,索引位置为 4。 + @ExcelProperty(value = "Email", index = 4) + // @NotEmpty 注解,校验该属性不为空,校验失败时提示 "Email不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotEmpty(message = "Email不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 email,用于存储 Email 信息。 + private String email; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "省" 的列,索引位置为 5。 + @ExcelProperty(value = "省", index = 5) + // @NotNull 是 Bean Validation 规范中的注解,用于校验属性值不能为 null。 + // message = "省不能为空" 是校验失败时的提示信息, + // groups = AddGroup.class 表示该校验规则在 AddGroup 分组下生效。 + @NotNull(message = "省不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 province,用于存储省份信息。 + private String province; + + // @NotNull 注解,校验该属性值不能为 null,校验失败时提示 "请勿手动输入", + // 该校验规则在 EditGroup 分组下生效。 + @NotNull(message = "请勿手动输入", groups = EditGroup.class) + // 定义一个 Integer 类型的私有属性 provinceId,用于存储省份的 ID 信息。 + private Integer provinceId; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "市" 的列,索引位置为 6。 + @ExcelProperty(value = "市", index = 6) + // @NotNull 注解,校验该属性值不能为 null,校验失败时提示 "市不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotNull(message = "市不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 city,用于存储城市信息。 + private String city; + + // @NotNull 注解,校验该属性值不能为 null,校验失败时提示 "请勿手动输入", + // 该校验规则在 EditGroup 分组下生效。 + @NotNull(message = "请勿手动输入", groups = EditGroup.class) + // 定义一个 Integer 类型的私有属性 cityId,用于存储城市的 ID 信息。 + private Integer cityId; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "县" 的列,索引位置为 7。 + @ExcelProperty(value = "县", index = 7) + // @NotNull 注解,校验该属性值不能为 null,校验失败时提示 "县不能为空", + // 该校验规则在 AddGroup 分组下生效。 + @NotNull(message = "县不能为空", groups = AddGroup.class) + // 定义一个 String 类型的私有属性 area,用于存储县的信息。 + private String area; + + // @NotNull 注解,校验该属性值不能为 null,校验失败时提示 "请勿手动输入", + // 该校验规则在 EditGroup 分组下生效。 + @NotNull(message = "请勿手动输入", groups = EditGroup.class) + // 定义一个 Integer 类型的私有属性 areaId,用于存储县的 ID 信息。 + private Integer areaId; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java new file mode 100644 index 0000000..72c00f7 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java @@ -0,0 +1,120 @@ +package org.dromara.demo.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelNotation; +import org.dromara.common.excel.annotation.ExcelRequired; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.demo.domain.TestDemo; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 测试单表视图对象 test_demo + * + * @author Lion Li + * @date 2021-07-26 + */ +// @Data 是 Lombok 提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 能减少样板代码,提高代码的简洁性。 +@Data +// @ExcelIgnoreUnannotated 是 EasyExcel 框架的注解, +// 其作用是忽略类中未被 @ExcelProperty 注解标注的属性,这些属性不会参与 Excel 的读写操作。 +@ExcelIgnoreUnannotated +// @AutoMapper 是自定义的注解,用于自动生成对象之间的映射代码。 +// target = TestDemo.class 表示该类可以自动映射到 TestDemo 类。 +@AutoMapper(target = TestDemo.class) +// 定义一个公共类 TestDemoVo,实现了 Serializable 接口, +// 这意味着该类的对象可以被序列化,可用于网络传输或保存到文件中。 +public class TestDemoVo implements Serializable { + // @Serial 是 Java 17 引入的注解,用于显式指定序列化版本号。 + // serialVersionUID 是一个静态常量,用于在反序列化时验证序列化数据的版本一致性, + // 确保反序列化的对象版本与序列化时的对象版本一致。 + @Serial + private static final long serialVersionUID = 1L; + + // @ExcelProperty 是 EasyExcel 框架的注解,用于指定该属性与 Excel 表格中列的对应关系。 + // value = "主键" 表示该属性对应 Excel 表格中列名为 "主键" 的列。 + @ExcelProperty(value = "主键") + // 定义一个 Long 类型的私有属性 id,用于存储主键信息。 + private Long id; + + // @ExcelRequired 是自定义注解,用于标记该属性在 Excel 导入时是必需的。 + @ExcelRequired + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "部门id" 的列。 + @ExcelProperty(value = "部门id") + // 定义一个 Long 类型的私有属性 deptId,用于存储部门 ID 信息。 + private Long deptId; + + // @ExcelRequired 注解,表明该属性在 Excel 导入时是必需的。 + @ExcelRequired + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "用户id" 的列。 + @ExcelProperty(value = "用户id") + // 定义一个 Long 类型的私有属性 userId,用于存储用户 ID 信息。 + private Long userId; + + // @ExcelRequired 注解,标记该属性在 Excel 导入时是必需的。 + @ExcelRequired + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "排序号" 的列。 + @ExcelProperty(value = "排序号") + // 定义一个 Integer 类型的私有属性 orderNum,用于存储排序号信息。 + private Integer orderNum; + + // @ExcelNotation 是自定义注解,value = "测试key" 可能用于添加额外的注释或说明。 + @ExcelNotation(value = "测试key") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "key键" 的列。 + @ExcelProperty(value = "key键") + // 定义一个 String 类型的私有属性 testKey,用于存储 key 键信息。 + private String testKey; + + // @ExcelNotation 注解,value = "测试value" 可能用于添加额外的注释或说明。 + @ExcelNotation(value = "测试value") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "值" 的列。 + @ExcelProperty(value = "值") + // 定义一个 String 类型的私有属性 value,用于存储值信息。 + private String value; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "创建时间" 的列。 + @ExcelProperty(value = "创建时间") + // 定义一个 Date 类型的私有属性 createTime,用于存储创建时间信息。 + private Date createTime; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "创建人" 的列。 + @ExcelProperty(value = "创建人") + // 定义一个 Long 类型的私有属性 createBy,用于存储创建人的 ID 信息。 + private Long createBy; + + // @Translation 是自定义注解,用于数据翻译。 + // type = TransConstant.USER_ID_TO_NAME 表示翻译类型是将用户 ID 转换为用户名, + // mapper = "createBy" 表示根据 createBy 属性的值进行翻译。 + @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "创建人账号" 的列。 + @ExcelProperty(value = "创建人账号") + // 定义一个 String 类型的私有属性 createByName,用于存储创建人的账号信息。 + private String createByName; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "更新时间" 的列。 + @ExcelProperty(value = "更新时间") + // 定义一个 Date 类型的私有属性 updateTime,用于存储更新时间信息。 + private Date updateTime; + + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "更新人" 的列。 + @ExcelProperty(value = "更新人") + // 定义一个 Long 类型的私有属性 updateBy,用于存储更新人的 ID 信息。 + private Long updateBy; + + // @Translation 注解,用于数据翻译。 + // type = TransConstant.USER_ID_TO_NAME 表示翻译类型是将用户 ID 转换为用户名, + // mapper = "updateBy" 表示根据 updateBy 属性的值进行翻译。 + @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "updateBy") + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "更新人账号" 的列。 + @ExcelProperty(value = "更新人账号") + // 定义一个 String 类型的私有属性 updateByName,用于存储更新人的账号信息。 + private String updateByName; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java new file mode 100644 index 0000000..417735d --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java @@ -0,0 +1,61 @@ +package org.dromara.demo.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.demo.domain.TestTree; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 测试树表视图对象 test_tree + * + * @author Lion Li + * @date 2021-07-26 + */ +// @Data 是 Lombok 库提供的注解,它会自动为类生成 getter、setter、toString、equals、hashCode 等方法, +// 减少了样板代码,提高了代码的简洁性。 +@Data +// @ExcelIgnoreUnannotated 是 EasyExcel 框架中的注解, +// 它的作用是在进行 Excel 读写操作时,忽略类中没有被 @ExcelProperty 注解标注的属性。 +@ExcelIgnoreUnannotated +// @AutoMapper 是自定义的注解,用于自动生成对象映射代码。 +// target = TestTree.class 表明该类可以自动映射到 TestTree 类,方便对象之间的数据转换。 +@AutoMapper(target = TestTree.class) +// 定义一个公共类 TestTreeVo,实现了 Serializable 接口, +// 这意味着该类的对象可以被序列化,能在网络传输或者文件存储中使用。 +public class TestTreeVo implements Serializable { + // @Serial 是 Java 17 引入的注解,用于显式指定序列化版本号。 + // serialVersionUID 是一个静态常量,在反序列化时用于验证序列化数据的版本一致性, + // 保证反序列化的对象版本和序列化时的对象版本一致。 + @Serial + private static final long serialVersionUID = 1L; + // 定义一个 Long 类型的私有属性 id,通常用于作为对象的唯一标识,这里未添加 @ExcelProperty 注解, + // 根据 @ExcelIgnoreUnannotated 注解,该属性不会参与 Excel 的读写操作。 + private Long id; + // @ExcelProperty 是 EasyExcel 框架的注解,用于指定属性和 Excel 表格列的对应关系。 + // value = "父id" 表示该属性对应 Excel 表格中列名为 "父id" 的列。 + @ExcelProperty(value = "父id") + // 定义一个 Long 类型的私有属性 parentId,用于存储树节点的父节点 ID。 + private Long parentId; + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "部门id" 的列。 + @ExcelProperty(value = "部门id") + // 定义一个 Long 类型的私有属性 deptId,用于存储部门的 ID。 + private Long deptId; + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "用户id" 的列。 + @ExcelProperty(value = "用户id") + // 定义一个 Long 类型的私有属性 userId,用于存储用户的 ID。 + private Long userId; + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "树节点名" 的列。 + @ExcelProperty(value = "树节点名") + // 定义一个 String 类型的私有属性 treeName,用于存储树节点的名称。 + private String treeName; + // @ExcelProperty 注解,指定该属性对应 Excel 表格中列名为 "创建时间" 的列。 + @ExcelProperty(value = "创建时间") + // 定义一个 Date 类型的私有属性 createTime,用于存储树节点的创建时间。 + private Date createTime; +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java b/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java new file mode 100644 index 0000000..b2cd98a --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java @@ -0,0 +1,99 @@ +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 + */ +// 定义一个公共类 ExportDemoListener,它继承自 DefaultExcelListener 类,并且指定泛型为 ExportDemoVo。 +// DefaultExcelListener 通常是 EasyExcel 框架提供的用于处理 Excel 数据读取的监听器基类, +// 这里表示该监听器用于处理 ExportDemoVo 类型的数据。 +public class ExportDemoListener extends DefaultExcelListener { + // 定义类的构造函数,在创建 ExportDemoListener 对象时会调用此构造函数。 + public ExportDemoListener() { + // 调用父类 DefaultExcelListener 的构造函数,并传入 true 作为参数。 + // 这里的 true 可能表示某种初始化配置,比如是否开启某些特定的处理逻辑等。 + super(true); + } + + // 重写父类的 invoke 方法,该方法会在 EasyExcel 读取到每一行数据时被调用。 + // data 参数表示当前读取到的一行数据,其类型为 ExportDemoVo。 + // context 参数是 AnalysisContext 类型,它包含了 Excel 解析过程中的上下文信息。 + @Override + public void invoke(ExportDemoVo data, AnalysisContext context) { + // 调用 ValidatorUtils 工具类的 validate 方法,对当前读取到的数据 data 进行校验。 + // AddGroup.class 表示使用 AddGroup 分组的校验规则,确保数据符合添加操作的要求。 + ValidatorUtils.validate(data, AddGroup.class); + + // 从当前读取到的数据 data 中获取省份信息,并将其赋值给 province 变量。 + String province = data.getProvince(); + // 从当前读取到的数据 data 中获取城市信息,并将其赋值给 city 变量。 + String city = data.getCity(); + // 从当前读取到的数据 data 中获取县区信息,并将其赋值给 area 变量。 + String area = data.getArea(); + + // 调用 DropDownOptions 工具类的 analyzeOptionValue 方法,对省份信息进行解析, + // 得到一个包含解析结果的列表,并将其赋值给 thisRowSelectedProvinceOption 变量。 + List thisRowSelectedProvinceOption = DropDownOptions.analyzeOptionValue(province); + // 判断解析省份信息得到的列表的长度是否为 2。 + if (thisRowSelectedProvinceOption.size() == 2) { + // 如果列表长度为 2,从列表中获取第二个元素(索引为 1),即省份 ID 的字符串表示, + // 并将其赋值给 provinceIdStr 变量。 + String provinceIdStr = thisRowSelectedProvinceOption.get(1); + // 调用 NumberUtil 工具类的 isNumber 方法,判断省份 ID 的字符串表示是否为有效的数字。 + if (NumberUtil.isNumber(provinceIdStr)) { + // 如果是有效的数字,将其转换为 Integer 类型,并设置到当前读取到的数据 data 的 provinceId 属性中。 + data.setProvinceId(Integer.parseInt(provinceIdStr)); + } + } + + // 调用 DropDownOptions 工具类的 analyzeOptionValue 方法,对城市信息进行解析, + // 得到一个包含解析结果的列表,并将其赋值给 thisRowSelectedCityOption 变量。 + List thisRowSelectedCityOption = DropDownOptions.analyzeOptionValue(city); + // 判断解析城市信息得到的列表的长度是否为 2。 + if (thisRowSelectedCityOption.size() == 2) { + // 如果列表长度为 2,从列表中获取第二个元素(索引为 1),即城市 ID 的字符串表示, + // 并将其赋值给 cityIdStr 变量。 + String cityIdStr = thisRowSelectedCityOption.get(1); + // 调用 NumberUtil 工具类的 isNumber 方法,判断城市 ID 的字符串表示是否为有效的数字。 + if (NumberUtil.isNumber(cityIdStr)) { + // 如果是有效的数字,将其转换为 Integer 类型,并设置到当前读取到的数据 data 的 cityId 属性中。 + data.setCityId(Integer.parseInt(cityIdStr)); + } + } + + // 调用 DropDownOptions 工具类的 analyzeOptionValue 方法,对县区信息进行解析, + // 得到一个包含解析结果的列表,并将其赋值给 thisRowSelectedAreaOption 变量。 + List thisRowSelectedAreaOption = DropDownOptions.analyzeOptionValue(area); + // 判断解析县区信息得到的列表的长度是否为 2。 + if (thisRowSelectedAreaOption.size() == 2) { + // 如果列表长度为 2,从列表中获取第二个元素(索引为 1),即县区 ID 的字符串表示, + // 并将其赋值给 areaIdStr 变量。 + String areaIdStr = thisRowSelectedAreaOption.get(1); + // 调用 NumberUtil 工具类的 isNumber 方法,判断县区 ID 的字符串表示是否为有效的数字。 + if (NumberUtil.isNumber(areaIdStr)) { + // 如果是有效的数字,将其转换为 Integer 类型,并设置到当前读取到的数据 data 的 areaId 属性中。 + data.setAreaId(Integer.parseInt(areaIdStr)); + } + } + + // 再次调用 ValidatorUtils 工具类的 validate 方法,对当前读取到的数据 data 进行校验。 + // EditGroup.class 表示使用 EditGroup 分组的校验规则,确保数据符合编辑操作的要求。 + ValidatorUtils.validate(data, EditGroup.class); + + // 调用 getExcelResult 方法获取 Excel 解析结果对象,再调用该对象的 getList 方法获取结果列表, + // 最后将当前读取并处理好的数据 data 添加到结果列表中。 + getExcelResult().getList().add(data); + } +} diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java new file mode 100644 index 0000000..601f97a --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java @@ -0,0 +1,13 @@ +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/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java new file mode 100644 index 0000000..19b2d52 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java @@ -0,0 +1,64 @@ +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.apache.ibatis.annotations.Param; +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 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") + }) + default

> P selectVoPage(IPage page, Wrapper wrapper) { + return selectVoPage(page, wrapper, this.currentVoClass()); + } + + @Override + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "user_id") + }) + default List selectVoList(Wrapper wrapper) { + return selectVoList(wrapper, this.currentVoClass()); + } + + @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/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java new file mode 100644 index 0000000..e5f4c44 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java @@ -0,0 +1,21 @@ +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/ruoyi-demo/src/main/java/org/dromara/demo/mapper/package-info.java b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/package-info.java new file mode 100644 index 0000000..ff1c4df --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/mapper/package-info.java @@ -0,0 +1 @@ +package org.dromara.demo.mapper; diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java new file mode 100644 index 0000000..4dfa5ef --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java @@ -0,0 +1,18 @@ +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/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java new file mode 100644 index 0000000..bca4192 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java @@ -0,0 +1,71 @@ +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/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java new file mode 100644 index 0000000..9155201 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java @@ -0,0 +1,52 @@ +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/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java new file mode 100644 index 0000000..69cf0a8 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java @@ -0,0 +1,236 @@ +package org.dromara.demo.service.impl; + +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import jakarta.servlet.http.HttpServletResponse; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +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(SystemConstants.NORMAL); + 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, "P100000")); + provinceList.add(new DemoCityData(1, null, "P200000")); + provinceList.add(new DemoCityData(2, null, "P300000")); + + return provinceList; + } + + /** + * 模拟查找数据库操作,需要连带查询出省的数据 + * + * @param provinceList 模拟的父省数据 + * @return / + */ + private List getCityList(List provinceList) { + List cityList = new ArrayList<>(); + + // 实际业务中一般采用数据库读取的形式,这里直接拼接创建 + cityList.add(new DemoCityData(0, 0, "C110000")); + cityList.add(new DemoCityData(1, 0, "C120000")); + cityList.add(new DemoCityData(2, 1, "C210000")); + cityList.add(new DemoCityData(3, 1, "C220000")); + cityList.add(new DemoCityData(4, 1, "C230000")); + + selectParentData(provinceList, cityList); + + return cityList; + } + + /** + * 模拟查找数据库操作,需要连带查询出市的数据 + * + * @param cityList 模拟的父市数据 + * @return / + */ + private List getAreaList(List cityList) { + List areaList = new ArrayList<>(); + + int minCount = 500; + int maxCount = 10000; + + // 实际业务中一般采用数据库读取的形式,这里直接拼接创建 + for (int i = 0; i < RandomUtil.randomInt(minCount, maxCount); i++) { + areaList.add(new DemoCityData(areaList.size(), 0, String.format("A11%04d", i))); + } + + for (int i = 0; i < RandomUtil.randomInt(minCount, maxCount); i++) { + areaList.add(new DemoCityData(areaList.size(), 1, String.format("A12%04d", i))); + } + + for (int i = 0; i < RandomUtil.randomInt(minCount, maxCount); i++) { + areaList.add(new DemoCityData(areaList.size(), 2, String.format("A21%04d", i))); + } + + for (int i = 0; i < RandomUtil.randomInt(minCount, maxCount); i++) { + areaList.add(new DemoCityData(areaList.size(), 3, String.format("A22%04d", i))); + } + + for (int i = 0; i < RandomUtil.randomInt(minCount, maxCount); i++) { + areaList.add(new DemoCityData(areaList.size(), 4, String.format("A23%04d", i))); + } + + 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/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java new file mode 100644 index 0000000..ced141e --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java @@ -0,0 +1,116 @@ +package org.dromara.demo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +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 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 = MapstructUtils.convert(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 = MapstructUtils.convert(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/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java new file mode 100644 index 0000000..e4e548b --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java @@ -0,0 +1,88 @@ +package org.dromara.demo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.dromara.common.core.utils.MapstructUtils; +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 = MapstructUtils.convert(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 = MapstructUtils.convert(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/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/package-info.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/package-info.java new file mode 100644 index 0000000..7011984 --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/package-info.java @@ -0,0 +1 @@ +package org.dromara.demo.service.impl; diff --git a/ruoyi-demo/src/main/java/org/dromara/demo/service/package-info.java b/ruoyi-demo/src/main/java/org/dromara/demo/service/package-info.java new file mode 100644 index 0000000..16727ff --- /dev/null +++ b/ruoyi-demo/src/main/java/org/dromara/demo/service/package-info.java @@ -0,0 +1 @@ +package org.dromara.demo.service; diff --git a/ruoyi-demo/src/main/resources/excel/单列表.xlsx b/ruoyi-demo/src/main/resources/excel/单列表.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0f7347d652c06ae29eca9fa6cd1055ec6ae6c6e3 GIT binary patch literal 10787 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 GzyAY;y@`_m literal 0 HcmV?d00001 diff --git a/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml b/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml new file mode 100644 index 0000000..dbf89a3 --- /dev/null +++ b/ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml b/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml new file mode 100644 index 0000000..d7975ec --- /dev/null +++ b/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-demo/src/main/resources/mapper/package-info.md b/ruoyi-demo/src/main/resources/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-demo/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-demo/target/classes/META-INF/mps/autoMapper b/ruoyi-demo/target/classes/META-INF/mps/autoMapper new file mode 100644 index 0000000..a89b6b4 --- /dev/null +++ b/ruoyi-demo/target/classes/META-INF/mps/autoMapper @@ -0,0 +1,4 @@ +org.dromara.demo.domain.vo.TestTreeVo +org.dromara.demo.domain.bo.TestTreeBo +org.dromara.demo.domain.vo.TestDemoVo +org.dromara.demo.domain.bo.TestDemoBo \ No newline at end of file diff --git a/ruoyi-demo/target/classes/excel/单列表.xlsx b/ruoyi-demo/target/classes/excel/单列表.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0f7347d652c06ae29eca9fa6cd1055ec6ae6c6e3 GIT binary patch literal 10787 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 GzyAY;y@`_m literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/io/github/linpeilie/AutoMapperConfig__0.class b/ruoyi-demo/target/classes/io/github/linpeilie/AutoMapperConfig__0.class new file mode 100644 index 0000000000000000000000000000000000000000..07768bfccdf89dfc3fa303d0105ee8cb63d607ea GIT binary patch literal 483 zcmZuu%T59@6g@>?6nvoKBhkdA3!~%Sn21IV35Y>gx*%odI+T>QX*(qPX)gQ#Kgw9Z zg&}m&-kW_#Xs919(1!VmI(EQK;8q@cKwd)?;7kiF6BO=P{^d4wWE zZOF$wmRx0Vr$3~`GgO{*ZWFo_k{I?E5YHwYhJ$XdyckhajfE3^Ne!j6=U!;#7!F(7 zX7Pv{=WU+&_`mrD!+N4eMk`Xjty7W=RcEYF*{S3o?+nGIvJDR&qmyEVP_{{);SZ>}wbh@_;Q9l$m$u|jEc zt6Rm4!VWt<;BcEqI$@g-E)`F7u=LVCSDg + + + + + + diff --git a/ruoyi-demo/target/classes/mapper/demo/TestTreeMapper.xml b/ruoyi-demo/target/classes/mapper/demo/TestTreeMapper.xml new file mode 100644 index 0000000..d7975ec --- /dev/null +++ b/ruoyi-demo/target/classes/mapper/demo/TestTreeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-demo/target/classes/mapper/package-info.md b/ruoyi-demo/target/classes/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-demo/target/classes/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/MailController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/MailController.class new file mode 100644 index 0000000000000000000000000000000000000000..9a44e644e5f6135a5e2cc5277a0ae8c4a289436f GIT binary patch literal 3636 zcmcgvZFdtz6n>^no00}nihymkAQWgDV8s?if@rA%)fBKPMW}C+WZEv>m#{l2@omc=Y($<8Si#%qC4XWQ(QeXwTX1%XcX*2{4O_VPT(=Vf0jNuJ|K3S_dPXvw;efxy9x>wOQ z-Eh4*C=6m8$I>{S#alQbaI`JkvA004D{BImnkGf3ckdQIt3#jI$fUt`O5j8?rUg%T zz&ew~B&Gz?+K-qKxR`i)TyH9Yur%@lxfkLigL62ahGl&A_O=&dG}GY8sg*R|5txp9 zzp7lHvFz!z>s0fS{cJjEXBUcq_hLEnFq=k)^t)ZC9<>p-mFzJkQtC zBmiN}MjV7SQ(@K&+Q)vdX+2hDt89B!OSWXK8%i%SolGTSVr@yMZs@fVJUwF8nts1$ z>y0_BWo5%v9t+!EO^?~dJU1YA6&C|*EXa4H-VpeHkEHMAtFYErBV#=GP{IbLsG15b@WcO!Dv{B#of#$iv1ZsWcv}g9KU{Qtx9o2+u00h< zt*Q*`la6%DRXMS2``6LzuG9|wrRFr82NTIpk+okcmsU8BS zixtnRs;!wBE0o&bR9-yON^)V{;~h*u7ZcNy$!Axi434XvgLwIN!hnOL)w2qkE4#y$T0f!l;G0Eo6 z^n#bc1^8K%usnoicCQN_Q()eaVW`41m^!Dr{E|d*8g+s3my5EGYxskm)dhAN=C6-k z&% zQQ($lbcG`$onvcWKrgOxyuX(M;3w0s10V9~!AF?m`vBFh@tI$R2=OsTpWu2E*CXsB zQecd@Qp9z?_gDTKNj*ibv;)Q&HnX!4#@U8y3*%S|<5&yhSQ8_Uzzw2JMQ9JEI?&!| zA-i=(sN;jH8_2=llVmRX$&G+eXBEg|9h3LSWyJzBO#Xjz*hsQNtsCGe3y}Xl!BR EA2hP`e*gdg literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/MailController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/MailController__Javadoc.json new file mode 100644 index 0000000..057542c --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/MailController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 邮件发送案例\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"sendSimpleMessage","paramTypes":["java.lang.String","java.lang.String","java.lang.String"],"doc":" 发送邮件\n\n @param to 接收人\n @param subject 标题\n @param text 内容\n"},{"name":"sendMessageWithAttachment","paramTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"],"doc":" 发送邮件(带附件)\n\n @param to 接收人\n @param subject 标题\n @param text 内容\n @param filePath 附件路径\n"},{"name":"sendMessageWithAttachments","paramTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"],"doc":" 发送邮件(多附件)\n\n @param to 接收人\n @param subject 标题\n @param text 内容\n @param paths 附件路径\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController.class new file mode 100644 index 0000000000000000000000000000000000000000..f2ab710c3b8592f52de2dcfd59aee5f1ab6c163c GIT binary patch literal 3280 zcmcImYjYGu6g?d_nPeGx1OkMY!34+#WD>xLBt#)V00YD%BpN`S-R*29J3F(?^aSDy z-&$5#WtCt2K$U+%{eUT|^auDml;7Yd%hR))?5m(I8+x{`TwNe|hlu%WwYp>iZ-TXf)7d!a%b?hacpuY~UB{z_v1eq2POb1=7lL z$nmUkfd)S>aH)HA-d?aR*Y}RR|&7+PduSJEl3?}Wg z%aPVmKV!R7cHroKc`%{o9CC5ICL`;?KES~9a#6djP*ldrxMGT!x2sak`PnhSNUgZw z)Y!!dfxahjabdyXiL#7?lVc~`DiX7=7 zlYZG-s6%_}sOuNfe%>09p5zfDvz(ip@S`9jFFLwR+T$ZG=Dkv>$F#-;PSwptpBxfv!qPI^Kex zm*p!05%FZYXlIlkuyntx=A>*`a(c=3vaSrfMtwgY6{~L+tE;qT;^bmc)-k_XRiG=I z@G6kQw(CwfN)9yRLtc}5DnG&QWsi&vyLK4L(7-1G2Uj_$2j0ME0{j2ll=3M>iUSzM zNPIbIgupdi=TS1o{slB(1K&ogIJ$%lKd{+=*Z6Fr8F=oF^Vv}{!2~ARqcLt^D*kR@ znym)B&e4_z4ub>08~it51~>WcV(S(i+`b7B;!WHL@fO|=VIxf!)A4AAt?YU+4L%)A zat%zg#FSevrYlbe)7%=E9AcVZ!SsOE`pVgVgw(Yh*^bRi*t&$BLqB29zDJ}S4{>li zjx6E%X+BPzP8@AdJj9DjIJ1P|3e~$wHb`wF`P)J|_maa-Qko)M_wsOwC&lY_0Up&=R}y|KiA@ZnLVl4wUPdSrEl7(!t-QvbpKgE5>7% y49a-!&_;_j;5&gZo}uDpS~)jje}P|1I=hQ|>^HN&$p3wO#9orEkMSu!NBiG78(`xA literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController__Javadoc.json new file mode 100644 index 0000000..98d8c48 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisCacheController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" spring-cache 演示案例\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"test1","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试 @Cacheable\n

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

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

\n cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数\n"},{"name":"test2","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试 @CachePut\n

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

\n cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数\n"},{"name":"test3","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试 @CacheEvict\n

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

\n cacheNames 命名规则 查看 {@link CacheNames} 注释 支持多参数\n"},{"name":"test6","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试设置过期时间\n 手动设置过期时间10秒\n 11秒后获取 判断是否相等\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController.class new file mode 100644 index 0000000000000000000000000000000000000000..8e8000e4b94963ab9a32aefa595316134ad1281f GIT binary patch literal 3416 zcmb7H`*#%89sk_T!X)d2z!E_aOHdw32o5MmF^d!oAfe&WB!&iTb$0h=Guhd>>&$Ed z+6O*L0ga**Yi-Zz@tmIOFRg9ufs`K0@BKSS!XMGo)6YDznV2oup!>u3E+ABCW923G^BN`z)FGD6Xv98*rro5PURtz!+c0&7Da->OJsKov}T zm@6u9)Re&b&aOzs($Bdp-EPueSR?akOBpwC^OzWeoW=PqBH zz52Thy3nm*r;Z-%qE_XWjH0V5rfX7frJ|fjeUT)~F$M)vsw{AH9SYd%f;k*Ss=i%T~9fIo+B|agBn4Z1%{_Lgcdtctj;2@3!t-2}3Ve`QZ`f*&t z_jC;4#FCDTib|lhP;*`B_zU~?h1LqIKBBTU`*BLgX?&l>U6TGuGw8*otZ^e{IWmTV z791AX-T;|~J(a_Vjx+dyz(cOIrRm84X-3?6KhV0)W^fkgG`y_ihxid&KBzR$9@{&? z`Y4s8d(S87ED4z*d#KDjP3KN4hNLB1JaDA|nk1_C+>=`B55kiSm?k%SK+Bj%SQT z!5C)Uf^mqoJY~6|+H{{PGAV5XmLpHrDtYM+oAf92o8xoDbgf_?6Vv{E>_I zob*5AOOId{%6lgsI5gs-_!dKhD3>KOl}$8GEX}DmY1%c0vigMd$5rt(Cs{@M(q#lK zLsrQ#{hG_qFDEm*WUwbk_=BCf`oi&213u$PlN&OZJ5$2nK$y5 zQ%q*_Md_a~tJUB*Vj~zynAa_C0yB%VvDxM}7$E|i8n_oQhXaOx-AR>H5Jv<`h;iSaAtqOj;{lmAysn=@~9P5;3EyD{FA}36KGuUjnEln z)h!+pMCkt!eXU06MR41Uu+-T&(c#0&dO<1Q^IfwVm6+GI5?3>L7w>794#wI00$Ug7 zv*k>xvNWO^qgT9S)Mw2n$tsK)Bc;bor)W!W>wr?_S~b3NBug_mYV-z$28^QBib<0F=abc!7b(k~h7+?CJoefHk`pDxZ$ z-*wfL|G5huP*(=lYx9`k<@oul+N!{;ou!TcZdK!MkCRt{`QS2Ii%>(xS zth`)CKw%3n6e(VqQrH*_WZrrT+^yuh7*cu7;9ADCF}~B>^UBI+i93UD!S{;pTM&QY zB8722gU_H!i%&gbzy!+N3D~GmNgzClCjJ6Fe}%Sl2CcWT7PyJ^?Rabko6pp#+d^t~ zd(R9y|4jbKMwVKDZD_-GtiukjIzxLMkZCT$73|cV-1esb-Y2` zeoX#WH2oVL8h%pH@UzzYfwhW|ECTc<|3!JLUKm^WE%<548Z#LE3aDCp}J_w&5hR^G`!7mw7KgK8c6dV2vnE=AN literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController__Javadoc.json new file mode 100644 index 0000000..9df9473 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisLockController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试分布式锁的样例\n\n @author shenxinquan\n","fields":[],"enumConstants":[],"methods":[{"name":"testLock4j","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试lock4j 注解\n"},{"name":"testLock4jLockTemplate","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试lock4j 工具\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisPubSubController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/RedisPubSubController.class new file mode 100644 index 0000000000000000000000000000000000000000..fee1a7e58b3c48e8679ba8855e3efe4f624a045f GIT binary patch literal 3145 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 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/Swagger3DemoController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/Swagger3DemoController__Javadoc.json new file mode 100644 index 0000000..04d375f --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/Swagger3DemoController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" swagger3 用法示例\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"upload","paramTypes":["org.springframework.web.multipart.MultipartFile"],"doc":" 上传请求\n 必须使用 @RequestPart 注解标注为文件\n\n @param file 文件\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController.class new file mode 100644 index 0000000000000000000000000000000000000000..2253c22a3d0c8e17d764ab938483a05dbb9d1757 GIT binary patch literal 4580 zcmbtYi+2=P8UNkQW0uV{ge5>DX$|GkJPZT1l-4D*3D3at3=IXOI@ukPA+s~f%q$Rm z)M_ooww7v(QnglmRIRqCB@ob3AN5fcZ9T`oKsohKu*bIk?#ygst( zzwh_`zDM%A z_KiWq6;KZAR>9bIKwxfbZ(DlGj+7KMOGOg11?oJ*-{xiwcWWUh4^-IR)*r_l0rl#M zv40(Z;_9ih|2*@o6fsZ5jc5``P=wTRvoRttr(8mx@0#{tN(z`S1)O{It(TrI3Ajnc z%~C*|0{W%Sb!fo?1-GbJh(!YRB@88e#7fU*Cta~^;GmK5Q*C=^UhK|SDp;yQ!!m&- z*LRHAo3>}TexQj!Q-oZ=nKe?;jBh$NO-s^^a#|@fxYz1>~iO)oxt@HoV6;}Nn~b+25)ok&1ZGr2n<)SL72fE*iY7E z4a@N9{1vV51IAQ2skUB8z>i4+eq8d7Ii;N86?vDy0IC&a1llX?Jz@-mj_uJsqZES) z7&xF{P{j~Tfd!?^W!i_GVMFUPTvNBm;%rC&=0B3RHYpEHq5sz$`SRdrSyfBaS>{lY)zRQJ!^Gcrqu|8ixwH~wdu{M#q`xDiFFH`iRj|`Uw?ZkkVC3m;Q>( zkIQe5tN5b)HaGefs#bQ@NtvF?1xKYWrQk~fx0GDj%cMD|TixzpA!peBx}zB*FVjXG zPYK-IYqKz#*%m8E9xYje$v2=AlZ|61@FY&j;>?1yh__Xs?Zni|geuu0Ff(o12FvGw z;qKB0EUqNePDZ!-b&BUaT8tO#3ss&Vy;7}D2?#1EEbj3$}0OjDFKIiDS2IJAU9R!m%RI%gf6KYqR zJYN=S*@>_$1kDkl(Sly0j?ZE_B0J?`XpDz-uDtHc)&_aDbX~`FHxX_94CIjd z+t~r;n66#gIX}XHnZA)~ z!10+i_?>Lley<{rlMQ%XM&$cPbp$ki zm!NQA#@5c*1tdn%(3xx;#oW&12S(A{(K&_>#<2ULn0WrZH{07^#^R1Kbi^=<S=~MT}oI z;hT7l?>Kt!Eu5kD-{wr^J6!n=N8b%rV(%cKphdimW%wRfVt5|k=ewRee!$-!?t}2~ z0!Ke8+AnrQ_MiBF>>oFOH_;;yD+KlI=x83pT``7&vb8hW6=26_b8}7p8N@rqDDDp6 zd!q>7no01jCuqPbn%TwCYQl3j;k$?MbrZfG!q-Lk*0M=nhn;-x#|C7u5hi-!5H_Fd z$FL=UcQtA&!n+^yBFH!5wsFW$j6?q56v*XD5%NaVlpy~PRMGJ^>2+=Be@y6KEJBa_ zsFR?DO9B8cVLj=#@gkK+Beqq%(>` zr^=aLTx;{_Z)l6*86 z&*Av7gC>fqpW_#tH*o$6fqo6Y#UJoT{0V>Ns{F6b75o)%qUpb7Y7qbc literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController__Javadoc.json new file mode 100644 index 0000000..5de5bdb --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestBatchController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试批量方法\n\n @author Lion Li\n @date 2021-05-30\n","fields":[{"name":"testDemoMapper","doc":" 为了便于测试 直接引入mapper\n"}],"enumConstants":[],"methods":[{"name":"add","paramTypes":[],"doc":" 新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大)\n

\n 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度\n"},{"name":"addOrUpdate","paramTypes":[],"doc":" 新增或更新 可完美替代 saveOrUpdateBatch 高性能\n

\n 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度\n"},{"name":"remove","paramTypes":[],"doc":" 删除批量方法\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController.class new file mode 100644 index 0000000000000000000000000000000000000000..cb613d84839b7afb53330bb0e042c048b0fb99d6 GIT binary patch literal 7359 zcmcIp340sW6+KUOtXP?B4oMm)O`t4Z5)Y8DI)r*77;MMbjsu|-M$*KdSeg+tBPVW3 z7ocmJwzSZ_v~-0oP+A~PD3tCk-50v=4Q=`-`t`gwBWWa!gTnWbeA0~Ga^Jn@o_pVY z&(Hnu_%i^m#tW@Tpec!F4NK4>(CxU>de(LFhHL0qGw$UpGrTEL%@IW!3wfo~mIPC!cq0JwKl|e9NP;uBjI&QXfG&W(Vsuh`{=R5h5s>`q%ZAq-ra0b>2=+b7d;9Bb2OM`+KVYWy zd@<)+1;h3Ak<#0>R*nF#m^S?(yHNBeeAhJc0_)p5hW8tDhHg1}q@yQ^^>jxaruC={ z`m*{v@fKfDOx}@pW z5Sq&Rb*O~Stc;LRvPDBTbb(gSm^1qfKQkk6ex0mvs)D%BadM_%E8H&Da0#~3O$4IX zHgfZxMXk;#fuY8eP2^xt3YX%tBrex*1+J_CCTeJi&$vLsnH9J!)Fmn^*1HO&(qt7U zJsP&-YMQ1ZI`Gq#jYe}FSW9t@fcEbv4xfDV{uhqifAYbHlISH?QHMnxJXc8$K>+k? z7{DO0G7rkA2q}Gg9o7-Qh0sM>0)De$mH}+&G6CjHU!U>)f_@#pWCCOZsaK;W`YJkm#Eq$_fw(7268fVTT^7hILU}lqYYHZXB+0&#v@-Gvn9DiSsREW0Wbr zvc57aiLvg#yrEi#qfe4I=?*%Puc6087lut!yF9-+`&9Ww2S7heFE#Gj&(Mwc=a^+ zC^CIyO;Xt0WBD`6Ym%>Aen&J?`eo&i@h!*hiIEn!LJ9|PFo}5$ug4*Q&S>0*9F@DH z!m7{k%xE#vvfZ*Re}{seRBO(u%AmR5$ zdTrbBS(`CSvQ`?-*sMzDwr5=Cg%Omfky z)K@@?ZAzuMx+`tj*{Il^rqAuXAooVf(}U^fR%==ILY2Cg#;!q)WP+rA(N$CgF~qZ6 zWJ?uXA;i_mRq;lpSB`I%Op>|<&s0#04X_p!*d6d7&d@~)%trPFuDMUuq8G=Sc#86s z>T+Xc-56ALwa10f*hNY}vOdTnmD-4zsyd423#CZj8wX>&LGs%a@%P81ZKllYXtno5c-_XteC98TLFNx)N%l~wvwr>hYCoHHGz=CGrf?_0h+ zeQ4>T$3*IRlSFzE_elY!UCeuWUt};*YZ)3D+ciE(KUU%~V5>lUv`8w|M&y{|MM83! z9_9N|W@)dOH<>NgR0zJ$ar0XkbPR~bml-!%ka|92+n1^b<)Av;ME9gskhH3Otn5OHK0hBoDPDeY66LsYRoys$Al8 zW3*WPgppe*V+C$~3E~!yvwHJZR!F9f7BWR1va)vyoL!y1C6%i(w^S^s+#}gqGRt>) zq2PP^sN;_ob2;)NNv?S+|F)f2c!_d> zq1+}TOVn;?bQ_P|ma7X&1$blBeQ{~A*<^VIaHW0A(CEaV4EM|9QnAI+1;;mSKbmdE z&4Ow86UB7il3}-$aPzEW^B~qO_nU$S4U3@YO=u2mm)Ei7m++uQnzJbaClI{ z6i}lPmv}ZtKcIC!4$-yw7?Mr+Dt{;NMt-+& zEO@=}CVp=U#^KF)3x9D2?!w)wU&B3kD`&iot*r?*gAKsj`AOg%cqgA{^6gz5eE1d! z5AVj2^80)6UiPm}u;G1SV+QxKN#Om9Yq`8$%ifn$%MUEB<$buHI7uuYAVST2c6S}a zDgwT)c>%8&A*Qe5kMkCA!Kegz%Q0+DU=N!w5?H`CiFT7hyG_j=!E%i9mUb7;!}%${PbyC>5foGM z(u2xNmvGRhIps4RuEA$bd=8(Fc#h<$+vAI2AzC%>d{;SIRJm-#vDQKrCG@CX-@ zkR0GsLb6uT>lm&|V025{j<(lqUO?Yt>-;K;HKD{z#9MG60->Q#3zK2h#$HuPar!jJKQ`@eI1>D#f>c1yJ({6bZM#Thq zr3D-$iRL3_Y%H6xF?59lnKZhKkHC!YC^Ign%PT;Cw+86%;rn#N4~FnV{K&*}__4I* zCqy60o}}c`Px(XOXJreniTQ^CgjHmg-KmE1iCI@hH1b)2DhmW=RoCqBPwqwtGofvrW|*AoyjVxv1lS48zxS@o3KY09cE!7BWf6Q#9(Qv&|3zW<>NS;xg>ko}XNe{n>h H^ojoiRzhp$ literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController__Javadoc.json new file mode 100644 index 0000000..6817bbb --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestDemoController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试单表Controller\n\n @author Lion Li\n @date 2021-07-26\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询测试单表列表\n"},{"name":"page","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 自定义分页查询\n"},{"name":"importData","paramTypes":["org.springframework.web.multipart.MultipartFile"],"doc":" 导入数据\n\n @param file 导入文件\n"},{"name":"export","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出测试单表列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取测试单表详细信息\n\n @param id 测试ID\n"},{"name":"add","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo"],"doc":" 新增测试单表\n"},{"name":"edit","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo"],"doc":" 修改测试单表\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除测试单表\n\n @param ids 测试ID串\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController.class new file mode 100644 index 0000000000000000000000000000000000000000..a3de5dd2ab31d6512959080c888a66d219e91cde GIT binary patch literal 2485 zcmb_eOK%%h7(LgI+Hoc{b<=`VN?IssoW>dYq||MoO_L_nX-ga&(v-*8zICRtXUurq zVh|D%5{s@_u|P;5u|Q%|kWfMiuQmT8sJ{Yn?s(GJ*dQv9HIMtv_dMTs?)7hf{O~h? zbGQ{l0Ko`C8p7Bi(0|LgZRlmgD(P4Aw`9Q;*m2ghOm{*cIFiiuAc~#{Vj6m(2^_VZ zl3sM|is2Y~QC4idU|X(Zm&?-87i7(yvIP|kC3iQdQY|1k7Wht;bvmNt-ZI`8C zrDJ#uJ0s}VunTd4T^$+%TE3~9Gs<;(VRF|a7!VlT)}60gu33>&?-XR!HEk=3y#jkT z?|!j)@1xDTpFjBUr{6#Odh^E*Hb1_1FoxZDLV=JF*fY|SQr2}$tCUXWBG|W;N!>Ne z`ixOqnKP;}3}U}Bd`ciRGOP3s2psMJrbv)X%LC;if%1WgVF*EWdq%?{6+2dwt^)3| zY$)-thQmr6rP!-fH6W>B6i3*ZiczgfM?lYXglm5KYdGdhgLE%a7>_{L@Enc`q#ntd zaZRfx9gapDP|bNsCugHLPMs#qy*PLTBn=St$6!xS~{@h zxKpGMN^3Zaa{}R#bZ3hK@sVVUV#a3gRJku|cnRk{e9Ii`3k{_^>IXJ$Ju4m4D4Xx9 znM}8O@S{gD$)X;7^(AK~hAB)(a7n`qW(5wk!dI{>726^W9I5*)pBD(&s{*IGl$mVn zTsPyiK*As7oLMuO-g(QiT|*6Yjo5h(YE?C)HyxuQ@7T_&o+pWF`c0$Y+D=0^9vbN9 z>#lvrbYzikPdu8bH-0n=-)=H)-=X&^jXd+HrF=%)&bahQ{XVHMX%|V$of*@TSL&6# zbQYR)k7w+HQO+5Jo3;4Dkh@~CnB#3|{Hy(h358tpMPQ~CUZ1rsld#3(wh(^oLCY|mDM)LDhZXXKzl#E3c3@YCQ+5Q+6%ZTwS&^AZUK{N4|KLOrM7zhDc}S{ z_GMk8uuAIrxcARVcf~GVJ^aS8aM~3n%%rcHJq+X;Ym$gI&+3an)FXlU=#N$v2B0^IAiY7)t7KsyiLK zB{t9IZy$?H?omwNuG4zEuD<5k>(dYic}4_yya)K>K>>l6x!S?!WlzeZ+n4q7nc+28 z!xbu%+@9K1s_9$_KEtEy5Z`)s*LYW6fCOIQU3sAb=8@%7U;(cp1R9H81gQy>N54a4 z4Sk=YZv(rR;(ONd_%9n6Tnew_$txQeT3W}!GoeK2$QqtbgvQqJEGyPI5>c&*Uq+%iNB F=AW`I!07-0 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController__Javadoc.json new file mode 100644 index 0000000..c6d3f58 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestEncryptController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试数据库加解密功能\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"test","paramTypes":["java.lang.String","java.lang.String"],"doc":" 测试数据库加解密\n\n @param key 测试key\n @param value 测试value\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController$TestObj.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestExcelController$TestObj.class new file mode 100644 index 0000000000000000000000000000000000000000..a7c0328ec42c103377dbad295b184ed105699fb2 GIT binary patch literal 4042 zcmcInZEqA+6n^e@W@mOgwM*q~p<=P6cDF4nErM(*3gxZZ7Hkm|M44{KcIoa+*_jea z{9;&W$aU%I# zyIbFvssV@li=z`yXxL`pNlBfk9w1;7h+6VhuH@Wq;3>(elXF6zMJjs??5I@^N#)Z9 z`f8QKQkgc;U#sMyIx%QqCo<$*Fx`bQXO3=c=}V1wFhaWw3}IMcQ_)6AHJ z@N>e+nT6A4DKF=tQt=k@-2T3aN6fepfvwZawwEtj+IPvuvwmde$75Xl^+bR;5kow-is2n6$hFXYM2~K+*E75}9-^@?%{UhpOUmRopEg zoYi+AOh{(F<1JVvftWmZPjFe{zOFp+4gUQQXbmjkEM773y)`DzswVEE#>83G#C_G6 zIBT2n%-rInxfBLNJvlu-d4#(kXH-j;yIk8k$%2`MAGPO20sYyHK1?HBfSelMIuBTyEAoCy7jEQi_aXi;6nM*-Nxb0C` zalD0j4GZ#G<^_7HwIXj{b{4I$<^?zPsG0Me(iMTvYF!cn1JdKBJy)>Yo(acUTwWS^ z;5A*f@YIzhs|oyE4MVvW)~G^?F|$yZ$$Qp_jzxiE&3qWv^*))Xqhg@TPl2*9R2GKI z!tPO#5-`SXUbV4;>AIH7%NCMo;HB8n;HqXG&~Qm$+k>G@yTD!OVnyv_l~g&heNl?Y zHsg$y!HUa=fu%ENh(0YKQ zkd2@TkycN1ZA~IJk0wO%dZI7ZBx1v9Ley4I^yQjFY*I~#67@u1tx5DeUO?{c* z(tqjx6^QRBMNswjr#{oh01Ic(hnv&4JuJPeRiq)Qgce;U zPhjfKs=kSN<1f;aYT4AAjryi&#l&n1R;99xzbxM-C0UdeUy}7x^^<>t zN+Cgbg1`hJ3I1cdx|b<F7a`U8s8c^h# zox5q?G7A;cSt~3Bp6#raq!HafhqMsFMx>_GfKk(orm5LwU^g-Xdf9YlzSuS^0(<)# z=xE3)2c>~)5}Y;g3c3kivjXV_O?USXG@xVSY4l*9hW!R|k~>rPE}|1iS<;p-Ne>!0 z)JQram4^+y+Nh+jJveIMHM~yq>!!ax?XFq^$^L=aEYo_-z#Di|VBe;>VKG-_Gq`F8 z1UY_SI)N{6p)so1&sNV{HO~ldz(5{@3}nJ~>|iSN(&B_(iv*kWkD#5x<*NSs5+X5wlgO|3Qz}~cGom;kVll!#exPcki3|*S7xSK2P zM&X?0Se_YJt9(TFYvtQf>o_X|j3YB|1?%qWB71Vv3M`LQ)u%@4;;4XdceY>LFKjwD zShqZZw2ZMYZq&|DS>4r-$k}kjUHynQ8jiT@S_;ha#=N-|CsAFzG&?^-Pi9#S&+@k` z0fnlKNFZY*@OeFOqd*15U$!Thq4biw?Uk*wwyf@cc^jJU>2cZhG`GN`^R6FgSP&@u z&q}irXIwY%1JB%wO5*QM;lng8VM)WX?E1?Bef0}wJGa~oE1m+;ML27g1J}DF@O@*r zF)$)MZ#t_L%kP_W-Hq+7QtK^f(Cm0{`OcQr27bK(U!5Qgs+eNhtW=ilz$)puDsZY@ z4yBF+C;P(&niNAvq%cwyMkmF9fHCW^xu+|p?^`}IUVTWzb%A3oxoH=&hED_z|2LF9 z6y*m;IH7ttb&^~;!zm@?qzzZjSFW89a#T`3#9e_q!Bx%w0`XG_8|H5+RDOfwl#K{L z=n3vl#-}4(g&dDSQ8fqHCT zg-ksWB92YQEt4kjHqk041u{(mztf&xdr^8>iyD1L3;n6~^ywF+mnE*z8!hzw&x?{H z#u#`9gSG47iO!tz7<=x)7|tmV zvA2piP*e#yP)y}iiAg<1_8z)&YA)3P>Md#n^%nJf%L&fiMk~J_{x}|q~ILR@{MMkC7j25n4*+I1xN8NB@G@9QacVE zr)hH#hNl0GT^bTk(4&PPT|B}5NbG17tF1BClw3u=ti+usy_21%%B;$up4E72Ehv?t z$j9QwD>ktU`FcSb_O&?9RbJ%FnbL$Z85ZbJrnJuT=$XNL(1su4$mddjps2`$oD!et zvS`s!Z&3}8Sg-IQJ*S38huW85Dl!;*o8*W;gK2uJViE6CN+697FvAFvbaRBMmnE3O zK9)h2KqmQ1q@GftFv&tNu@K@Z;q^V$Pgzv83aDa~ovIj?YJk;|&02z+F7WxVd=5Kd6x@9MI%a>zXknPcxBp}1143#_QlY$EbBv^~NaGl3Rt~$e9 XtBN>>@nU@6IpjxYS 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 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController__Javadoc.json new file mode 100644 index 0000000..84150bb --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestI18nController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试国际化\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"get","paramTypes":["java.lang.String"],"doc":" 通过code获取国际化内容\n code为 messages.properties 中的 key\n

\n 测试使用 user.register.success\n\n @param code 国际化code\n"},{"name":"test1","paramTypes":["java.lang.String"],"doc":" Validator 校验国际化\n 不传值 分别查看异常返回\n

\n 测试使用 not.null\n"},{"name":"test2","paramTypes":["org.dromara.demo.controller.TestI18nController.TestI18nBo"],"doc":" Bean 校验国际化\n 不传值 分别查看异常返回\n

\n 测试使用 not.null\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive.class new file mode 100644 index 0000000000000000000000000000000000000000..fa98a282c82f6cd8c9c572438aba1214c4383847 GIT binary patch literal 4353 zcmbVPYjYb{8Geo}X;<03oRhWq4FiQi0v3VbxH%YYw2KbEbThG zD?_-I&M*wqet}Og`~dPL%#;DbOow3#AIc1Wpg#b92Bkb__vmIVv8OX$?|a_&d7pE6 zFK6}7|GxiM0P}b|han6bNLffDBQSQyKD0{>+ubeQ*tsKXp+M$}<2vD0f#J!i?JP`W z4dg70z!Io<{%)!6drjN7OLf`wN;S_7eXr4we(9zR!Y%0rPUsxU#g4w%rzgKtU$p(Y z!1!u+@~zN!+}$}f-6;#BYOeIbp65!XIc;HFX$-qw_hk?$-QyM}B9v^}PD5$VS~#aP z=8o;|s~K`sp11G>E>Kys-Q~M2yCEA9)b75FI&pTR|e?5+%}dXbM$PW8a` zGSwk|&cf#vb4DuKK>0sy;S0*&r2mFmyi!hDm{Q6dm6dq?NwxE>HSSTsw z2(b&DT@2wl3(w;P67Si;-lA8RQE;l`4C#v&Uc#3I&Nl6Rb?7xayyb)hxj|^VVIbi4 z?pJSMa7&*~lW;Zyh0T^5I!(Fl1kO%FR$SK$?a<+h1YTI}&7hjsY={LFF)4{zUl+AK0kbe1YOZtSTm)9!QRp#%2?K$SoLS_BBp2>)LsZGT} z8(no=x!!8-NdKnIqfs^B)$GQ$?K^6$m8o#g;oOUTTm4kk#*IIrqfvDa6XG$x+VGk? z-hSy7=}L82b-HAOZvOXGi_V^@Z8nZI8SZ)Y4K{+N45iQYnskfOp2<#8Cwr`qQk;oR zeLJxQgxB8$bTRUTy>L(ZgsX!nw)=$@X*{wk+DsWtjMIhg+M+wcE+)1)Hphx zdX$em+Z{yURP5SSPPJ(wG7ZJ1d0f2>5#XzY@P18#yo^c&Ss;Yh zt%f`qu?)v7iyf92xl0#W`b(M!h?@#0S)8aqmKEmIEq@CgenO$(=&g9ksP)&F+zt;g)~mr4f>_o zgE4j_mS0b%&!3b&PI*l~IzYdfOh0x~`nX&){rCX=Rxd(BDj^KXX$0 zxI8uexdD29*2bX~A24irhUlZ2>E9xqdNA`hn7=`K_`%EvFxM_mKSUuKQh0LxGXIrR zv;V+IA@w0n--k6@NIk@7+lXR0O-QkvDWnx9^C8CXBVR}tGCiP6WrLtgWwT%?kf}jN z!R!G|m$L*-mve=z0_8L)Tgdf*X3HZ4&6cgghyqy}M5zr*J>b@c2U^Te<1Ke`^&`BB zZMK&Q{2jO0c7{;IAMhG=!CjvI;Aw$@D6TM%AkRLe3Oy^9}?f9Wa5{& zhHq2K;#YVXZ&1pC3&NX}M(`K@TCpiv*x}kL7&pxS;FJOLW1KNC#6MGfjB~M=Jzj(k z@~cOJoKnAvbp5KUBDzFWbk&jcHp{r{#^u}Yx~l));vz+x{nin7p?$Od%LJ2=NIiy5k|Gm_WJ>Xk$|S zDh|@hIm!{DAr&;>Y+23jYH^B}!!g literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive__Javadoc.json new file mode 100644 index 0000000..0972a2a --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController$TestSensitive__Javadoc.json @@ -0,0 +1 @@ +{"doc":"","fields":[{"name":"idCard","doc":" 身份证\n"},{"name":"phone","doc":" 电话\n"},{"name":"address","doc":" 地址\n"},{"name":"email","doc":" 邮箱\n"},{"name":"bankCard","doc":" 银行卡\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController.class new file mode 100644 index 0000000000000000000000000000000000000000..85289fc7f6e3c26a20271c72712f02ccdafe7049 GIT binary patch literal 1577 zcmb_cTW=dh6#gc0;*GOOV0(d<(xzdEsz`{Zadw(cW6y@& zb@I*=4}Itxpn{MPj|hQ~+$u=?0DebZsec0X%;si4;a2!EGiT;I=R21<^UuHge*?II zS`I@P&LU%C1fvXdVYFojQP|=Uw>QI9D^&KLXwWhe_9~A>EmTPqHk%@17+sP|Cd&-N z`Pq#u42G3n^+2>jQar-jcSW463l+;m?)KQ3>D$jCi(v!f43_H@y~PD*u~IHpT*ohY zjy{|)F^MULu~;OxgBp(lhBNv41HQ}cCRbbbdJ;*sRh`{1@Fv5!vrsM-9oP33QuR|N zPHT08)IYx;Dq-L(L%#d)+h_Z~cAtLz{D&W3eD`Pf;r{cV9?`G+_;L5qH!r^b*>Q_r z_qSiP2XC7=r%mL@#7YoEB90Bb!*HsH>ZVin<|%&~|E`IPN0hf(Ts93%6T0lW<&s}s z^j*()O1@k1J&nF%;;KfEll4`uwsnL#yodL*_`pOSvkcR{Sw1XMTA+aHCY8O$FcfYx zlzY?iS>u7&Oscc>|5C1IQDE?TVFOl@AyW$j!7x>qO5AC;8X~&O8%^4=>ft7DZtzHI z`EWCn+?O$f-{;bRTvZ}V=t42fn)KumnAd&BP#KtVjjC{>PPDJ0`c<2> zPduKo)5{Vcy(!c*cQiogi${qtZ!0CDT9e1IAaSBE23*D*y?y#K1d1A?G+ragrkT+^ zGWP`RkM#IDjrthW`13TH2LOT=Nn&u|VmMXaBV*cV;V)#rc!IHd!OC@D7OXcqunN|h z4&EwQ=R3Giur76Qx$qP-zY}~2n&Kk0KQIl0e4E4-dZ@1AJZ5Nz+Mm9f`s{)ELu!K% z9!lhbpIRwnf#yk)EA(Id5-i4t$e@~@E~TdyS-3&+@-gBg+$1?eauzGJ%B8D0tipH+ DZM3%s literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController__Javadoc.json new file mode 100644 index 0000000..5ca7883 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestSensitiveController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试数据脱敏控制器\n

\n 默认管理员不过滤\n 需自行根据业务重写实现\n\n @author Lion Li\n @version 3.6.0\n @see SensitiveService\n","fields":[],"enumConstants":[],"methods":[{"name":"test","paramTypes":[],"doc":" 测试数据脱敏\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/TestTreeController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/TestTreeController.class new file mode 100644 index 0000000000000000000000000000000000000000..1a0cabed069ba94e71c472ea8ed3e7e8b063bfb9 GIT binary patch literal 5026 zcmb_fZFd_-6}}@oQY>$6$4y+^Qb<~o+D_svBx#$-HCT?~n#zu2J5EVj$Vxl0H>o_dwrq=bdI#EyEAj2``qW= znf>Q~ZvBIZo}~|ZC_`O2>NaQ(Wf_eNZ`HItQMWwHw0T{aRpClc)N0%_m$@&OJ`sV7HygL=teG}`e@Mm;Y#xwlz%e97qa z$WEU&VsKouA|lvDQ5Y>>w>B)ZDV>_BrWW$lNBub(FlZkQGCG(9P!;vMa6y2_&2Y6v zMj5fr=&6xlp_=8cn&&Imc~xTVyG<_arTvVIuReX}&WC^e>QC?8`SV|LG{op|a-t?Z zbhi@VS^r_uQM7+P70y&n^j)Z(fMXc-CsnYjC%RahVZ1eFuEFIk4Z?x zvLrpnT`eRm(>2TYm0{iTq-Cm9*0?m+q->ba;YXzshDGi-gzNLd=!#0}Hw^kF9c*Q( zxH)U()(VaO84(ENR-&VLWNj zw{;lJhHXi%!pPGJI+>$W20cYjGa85`I^}uRrVl@s9|-;M$dyEDBH_g|LQx-~(*~WP z0;Al9f`0xQqalTHM~oWOvj$DlcNy)sIa0|lIdTmVJGROj+)pMIGp%|-RXV~=s-(qf znuk11Q87o;2A!o6qp=j>-r$v>&We`b)?Ts`j_b%tP5la^?wYRm=Q~e(inF$Y21VV| z!bWoY%Z|(EoAnC!maR$+mcg>9TD29+bJYLP*e%x_aPnkZwcou{!cV3G#XhlfUTUX; z4uWLGWr`HG1KMn~K%L$;c4AjAZ7roR30MPjT&@Xw0Uf`NSDXvIB~-CEh*NyYg*BBbIF=sFv38UZt8H*krTPFO2R#A!l3sKnqEpy#a=b0A$sQBV<>m#oE6#YL*}(X0(D)fG zcbY_GsN+7*Xs;J`eN=VlGa{!`tsi&{O$JEyLVpy`|Yh;|N84K9EegComMpqmfBo`mWp+|EE}wWqGY4i z?KHJ5-hG!1n~YAtig0Y*;~t19(*Clu^GhX_{-@jghKY4Bx*;TYWm0{MyumHG)U4DU z3E=59oEow46OE$%c$}0{RKruY-KyZuy)1Gh-y0daryEyiL`KhaED#+1Wjq~G z+{;ug+L*O`@Y1RFV>*PB_7vVy(Q?$wDeiK(KSwk8_ZeUt3fw51B9sPoG8Jat` zMGt%gTNlmZSDn>~#_@7#()V$9Fc?qIQyKp-ljdk1YxZKrb95e~7hp9a%LP~#VcEkl zkZ1|t3@y_|Tpz~W3I<-fLd>TZ=m*jLWx9gr{S1Z|Lt~X*!rc$)N7Sv6-@vsSgAT;V z=Z_CQICuc?ANm*%0{DFz?rFd~L;IERbqKip^e4z3jG8|Mz8LU)!Ys1i~l>;pKinYn#TIGbgVxQvHpTy50x;7 zz!k5<0k2#1o$f7q<_ntW+J#;x0eLv0cbMLwH$g&3?;BV#5XD<5vVD6Se{|VqbER~VN zKoR*03K(QKXKchnYg)nz9++0kXntQd6BBGn$5W@`gx{6TwM_rPs|>^Kv>B^pV?`#3 zh$O?snfhD9gwFJWbiKZJrZ(Fc!Vp8{jUo;+%=beIWy?_Cw6i9TrKK`EtyHcz-W054?YWh8EB^<(J1)t*>!HZ4AP|Zr-W5jTD zHPueFnTO%v6UWI(7(Ybw&hrIxCT|F@nl^^HKo zsIYd4sz1_w{Kh^{ztCYz+fU27M|+agY>k^=9r zWN0afyF*f5GpP;aHRa!N{Pkg&_swIt@ZO16W#W3XM9Ke)>rW|p_i&H!j4!+28>VP} zM(JB*nD9eHa*DJ;lE+C7kUW8t^iNKcc7?PY$@1I|Shcu=((k0@aLS)$H z+_A(AW=Zq+r!hzVXK0@%`6W2*3XG0{v$S$Jhp$Ku)8*H+7JdXvaGrMbEzzw9z)52y z3#b3U$kWWp=k{oUu`F+;W6;gpU&{~{DG>cDWIL5v0j27p9gIK2XFeFq3h4y%8NZ>k T94=(2s zb%8bk3gHq0&9u`no#|y@_?8KmnK&>oo#}_p^mo)Q9)1Cx0DaExMqVju1O2c%7oGP# z&-=W$^N(*n`5eIgxX^(Z;u;cZv>_>wb=Ybc$ZCGmL*;Nq`E_oY8|ToDG;}uvOs1;X{cILyH4mMPPr`ITnZ}%Zd*G2&eE9+ z13k|^-_zf-aQ0727vEKj4s_yH4Vg4nV~xPA%McGZjwKCSK$|tJnmjxuu(o$H8!;k0 zkz0YaxJ|>lG}dE-KxZ=ofrM#KIRf{!pdg~}aN&e3dbt~SvJ=W1o6^{fZh;M+J2x)9 z1|EzVqiA|_3SvY&WI3OmOrb|$a{~uoT>AW9pIutGbam;K^8pig;7$!&6%%(gFp;-C zNg|c|qF1jA_Y;D;nNW(>u;t)iZ350pHcgOGvx&*}ZAphXI~2N~Ng70u#S86ZGGpz|IDW z7tX)Ebo$KVZ!a&NyX1#;z)*iraBAVohl`*7IfZ@Aes7jbVSkPpqoFy=4;n?!ahZbcv?nM%0(V7i7_y9NH5Wu(LxmF9I99Vgvm*2M ztXVY+mVD5*9nbJg2AL{qmQyJ>)A}RQmagH+QjVAyQUZIU7u56p=7G(`7;;KdVAY6e z%R{wFLApl_UhJ39qG3%KuBq1HWnKJ?T?3qS1&n$L{tZBq)$DaW1GPsxH_Fzu3V)O|`vdPF~?dZ0j? z-(X0Z?z=P@z6ZWc}Ys>^8P+gV8%N=+H zXEnU43ioRQTbEedm*nXb)58+4d)kw9q> zJTf;UTO2lU+ZhDga^^NNVSg=&*Z59E)mdL7x^DHtq*w+fShPMT} z|MyW|6WE9?e3uMMtqng<~C;XYie`Az+5i^vC<0N<2A$biuMCUcc#MkK8a9DhW^uKw^<-hGQ zih~e11$)!w+SD6fcqCM za6e1j&((3C3~_hU?LYo24v#9(kB6Z9|NiZlO?Wdt(Gv{GqjckwB=V^U*6upi?htE= zZ%yU00Bf9g`wZU{lb(`@cWB+iR%>CzvlNk Q&T-Yj*_(I^zrp(d0L;wLrT_o{ literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/BoundedQueueController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/BoundedQueueController__Javadoc.json new file mode 100644 index 0000000..5211f3e --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/BoundedQueueController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 有界队列 演示案例\n

\n 轻量级队列 重量级数据量 请使用 MQ\n

\n 集群测试通过 同一个数据只会被消费一次 做好事务补偿\n 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条\n\n @author Lion Li\n @version 3.6.0\n","fields":[],"enumConstants":[],"methods":[{"name":"add","paramTypes":["java.lang.String","int"],"doc":" 添加队列数据\n\n @param queueName 队列名\n @param capacity 容量\n"},{"name":"remove","paramTypes":["java.lang.String"],"doc":" 删除队列数据\n\n @param queueName 队列名\n"},{"name":"get","paramTypes":["java.lang.String"],"doc":" 获取队列数据\n\n @param queueName 队列名\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/DelayedQueueController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/DelayedQueueController.class new file mode 100644 index 0000000000000000000000000000000000000000..3ca118eb5367797125411d6264615d834d68b346 GIT binary patch literal 4285 zcmcIn{c{u76+O?EElVumipD?y#{`lf+pwXgDZzvko0yLZLlC%>v}sq;vsinz>+G&f z-82m}AEjw&pd?MncW3DIm$pOFPO4<4{R2AvGh(Ow6P=#7yGTpC<0ze}XXLj}``*3h zo_p?nPyhVSC;tHO7=D*Q2RhS8Y3M??z+T6#>J`_i8LpvMWX;jbj_tdSWl2|mrY`GJ zKO`+w=Z4aH}LFp1E0Nh zZSm?KKW+SJSMawAS*%J!)36$A1bRPjKp(~iJHI|?(#yrEl$UDb=eYueS(*f%Fi zGqUWD=BIKDtyjZWkQ3-K=H{#gf!zsv^Wo;YZ(90v-7fp4W9t*q!)O*?#XV{CX;_a9 z0{J*IWv5o-T31#~PgnarJ>cVvdKBpM>Lsu2nk6}AIpta64BiTiB%oLk#JT)b5AGGv zmabp<^zUykUB0^b%6nOC#+EetHQa{*fq?{MWyh6zg=sWx{ggn5Gb`{&g7bWkt~&{j z!n$iSdAJ|j(%7!y0X!(Mrj>$%V>9C!i^G&*)g?8sBY!M|9muCKs9^}h0$YOh0mqb5 zx$e5s_Vv?dO`fq$Um#t4V*JG9p`yTjF(wk01_{}vLC3=a_ZXE*T!>-r1r8^~xLhK~ zzQB_r{cD6C)9moT;;YwgU%a&R`mLoae^xS9vfZOJ`*ndw+j6@cNPbGG>>C>P;!%MO zE(>m6CdJjJ^w0HRbQ$i;@87<0vxU0{k2UqQc=LmQ|MmAuPmgQ(rV>+X+Au8zYD~j8 z4hgKQNRJI*A&!dtCj_j5nZV&Rj%YZFW31$sRPN-bd%wx79|)8}k_!TxTO8lMB zb-(UX!aa0z&|9#}0te#0nugjrr7t+l7ldq#hWjFcJ*Z?n=H=ZsWiT;;d^*m zVEyO2-Gov09hV&|Q zZ7EltTZUA=5rQ-*7*dGuw< zKX20NzPnn;mpL<(_ux#KG-`p9mR_RnPX3Nd|GZN<$@8cted*F+rf61eBh1#3I5E+t zFYamkV}hA-%*yBiLfIH`H86@(l=KzbH5Kf*73ng6OsEnANsL(z>`ryTkq_kd(C;#J2NDidPqXqdZH>BT=4fE3W@hB59uZszdYCin=1%<~7Mv4U$!2 z8MRWy*xpR`_T2)7HUX{FpIE*OvnmvQq@=JFc7YvbvKIT>Hx{>#wi%6p?zD7Xqomd6dtDw@6= z?Zq`_Hy+WQt8uKzqOVBb^(=n_yr$tNc)l0EVMCAaY}R61`s~Fq8oZ$lzNz7&x<6<~ zZ5}qknI*k6-r-@kEImm~r}3UZ|H?}Ry2G?!D?Lu|+Rq;v>W2)+?{lWcA8_p9XkY*- zlsG$!POb(ve+ZFF4}FYGCx(VT!CD~Iz`ESV1~%Q|`wo=(e+^dyd931fwhtqyaMl;@ zhr~2zw1g_o(}&6DF2M;f!%qihVR2l;S2cd@ryx8ye44{E5g40rQ(V(OG`#a8Z2b@q zHLz0w+dVY=F-B5Ig!4Ew9K;5U1#kvK3r#rv5gb~DOJFM4et7U1ih{VhGl1yw(c>qC zT2FvFPpB90!wBjHj*5$IL&FU`asxR9b6*7W56I;9H*nxq6K`igUoOCQoGF;(@2Hd5 z!fTnLa3D0*#JsJEd0T{efvZyJSl<<3&U7>}hj@RKfcIJA{c$tTW1OkbvqKFWY{Ck& zsuT*|z*2ZRmeFhzPBwzmRz{zrBVKrEvP7dgXM$tb;NS4X2Yd)UDlLNHtKhY8LF6r_ z)ZVPBLcUdoCRO+x`xMXL8l+Gu2kP`V(7=-|g@&>0q}5%qSo(qpxSeWMA`rCAf{bkM zBmD}Grfh$EFsOkR*3ja^)co!kUM;Yrs_7Dg4KZ#FtbobyXy7}4flx+7kohp+%?#qF z{H_Bp1PSY-;}\n 轻量级队列 重量级数据量 请使用 MQ\n 例如: 创建订单30分钟后过期处理\n

\n 集群测试通过 同一个数据只会被消费一次 做好事务补偿\n 集群测试流程 两台集群分别开启订阅 在其中一台发送数据 观察接收消息的规律\n\n @author Lion Li\n @version 3.6.0\n","fields":[],"enumConstants":[],"methods":[{"name":"subscribe","paramTypes":["java.lang.String"],"doc":" 订阅队列\n\n @param queueName 队列名\n"},{"name":"add","paramTypes":["java.lang.String","java.lang.String","java.lang.Long"],"doc":" 添加队列数据\n\n @param queueName 队列名\n @param orderNum 订单号\n @param time 延迟时间(秒)\n"},{"name":"remove","paramTypes":["java.lang.String","java.lang.String"],"doc":" 删除队列数据\n\n @param queueName 队列名\n @param orderNum 订单号\n"},{"name":"destroy","paramTypes":["java.lang.String"],"doc":" 销毁队列\n\n @param queueName 队列名\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo.class new file mode 100644 index 0000000000000000000000000000000000000000..4063733a7003fba1c25856892e5044ef38e76fb4 GIT binary patch literal 2942 zcmb7GU2_vv7=BK=o3C!$w9rBXu|Ux#Z3zl~khCbY1%hp(uMgE!=C#mMpBgmg8F9g9WY%^lwS;x?7d* zN~<9-I+qTYK;LAptac0< z7(zxMQE?hOrppz5vRuxUQ;c}TzyTZ-&}_58g^|diYo2S_TP0;RX5bJG)49_L@Ib_} z8(s{r7&wBXG_9ES;=PtxSGh!NuW#O!6|a=LmBul=mcY1y`0J7C6)}x8=NJS4{7w<#E|= zdZz6)1l>zPsc|@|c{Pjqo_X0A zs2azsNtaYDORwfsSE=lV^rTB~M{cxi&uYlBecx(YJnW)vJD%xT1X!u6?ld-??ZOpl zOV{*dwL~hLZ7TQZBLp?K!HS?ow<5-(1a;`3nINQ5-G&Mi7*Lr`bR|3J#~+zU`38aV z)4^ge7+CYn%J#Ck6Jn;X-Y73G@~AQ?c4f0w_eg2PlRgn_OnOd`z`v-T`%`PymTh`1 zRfo4C3Jb%I%yc=PeOau?p7;2Sa|h_-JfCBeH@MUI?DW~qYrQqeSX44I#emd^HV=y z_`9Bvj7XC4PLgpS!cLM0kip(KFJXQ^_oM&Uy<(>0{?K#o`Qi%Q|H;@BjJYMpYv$2IyN=ch*UFAOFSdy26Hj`5ciPjNWtraHhZ^Z=u&FMtr3^E_VBsw+f# zr5j~c??kOLRuy$ey1lIO^-iCvO8#K0vn^&yv)Y^w?$J!CMrf0nsfS3+?Bex1YW_q~ zQwv!wTuCaxxpZ`YAkPI}!;q9fKg1G4(pkC7?8T7A8LTkOKAdFzUT079LAwU+87DM? zCIo?k5YK4T9dr5_3DMgIZ5wUx6wP|HyxJ+=_jtZ4-a(a^O8PN!KyUE{;09GZ7-q7! zI{3vB;@G_oe#A^~aSXh;iZd5^ZG99vI?GnkoysfW@8ZqE7i3b9~8Bn!P*NL>1Y80IhgW;Q#;t literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo__Javadoc.json new file mode 100644 index 0000000..9108285 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityDemo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 实体类 注意不允许使用内部类 否则会找不到类\n\n @author Lion Li\n @version 3.6.0\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController.class b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController.class new file mode 100644 index 0000000000000000000000000000000000000000..18949125dc4e527ade185db2f46a5487f59ddff9 GIT binary patch literal 3671 zcmcIm{c{v&9sfM{lD#{Yk{$^(EyP49&5@ApOQdZM(n2VZ8eW=&Ai=lI-IL3byWMnm zFBn@Cv|3uFv|?-PIHTj#=`W5$ty5wh9e;DizeAWZ{slVL`gwLY$zF0I{lUy^o|pT+ zeZFtc_pkr{=uZIl^e2mHI0%}t2wse%ChAdb>FIb#&dO9 zm#5TLpsg%D-*pyGx|ZWw{$lW(Kzq;VIdj1@s-|5r#(meaE5*W878ztUnIt_r3fN7@*33D{IFwBPwB^ro=lQ1XGZEUUH-;sOxf0r^V-Nc2Sx@@M z&6@l#*+J9~;}H#ys^C1<5F7%NjI9bugOcdJsI+`R$6h=xuz^}mxMk@cuh$eq%%){> z<=_OK)G>%6Nz8J&AzMe!?4Ww2jhdt=63edG4UOSj&V3+k0vmp<5}gP4wu=nAe;CogVA-!gIbFtKfVGa zgr^A}r#w{DJnx0n-9o*2C1RfZx z+rCwkBld#jS<_W{z_uOV^extq>SR@?HtozAN2D!X)0bs>KFQRilZKr#i)PcPWlJXY zv~(v-vIpI-WL76l*HY)`GU^3E_KOj6mrdUkc(@_vcW$<-8&JEj$nDQsw66FWxPup9 zwN+D4Ht6MH>E~k=6x9?pP4i98x(R1!uBJXa)k2-n@FmW|Sr89e2(+FQ<)Z%Pt${ zN*EbCpT^It$4(#}JS23X5k#>itRjK4O{|WYw7$`-w5|UMjapN7&|x#qN(qN#&5P7tb#FsWHP$}7Q=*;lGYPfc#zskdc^S%D|+IwWHp zPgdFKpwGg}y!B!cZ8L(p2`3Y#Loo2Ljc_vXJ>NCw!*umFwcrOi{18_(yr$mGs{%V$ zTa9HeICC-@if9_2(v`mQc04K(VJP${U-+u@c8)sETzx)1HLOpV2F8iSdD(>gY%D95 zU$WR$Bx2aCR>v)0a;kcRQ-NwFdj$LWh|MMy^g8Kj_%WN{I(*H{*6`nav-DhrK$6&f6z5OFR1bm3zj&yr!3C4#Q;C2a5yo1e3$UdF|5$~Z@ zorjjsFD1o$pZ+@k^b!tUr`jYW|36A2!2v3bU1&oOhqwZEU^n{Ei^uu@0Oz1*(T^z( zIu-t2!(*5s#}G~5fkV8TC5%24Vc{I5Y{6;F@h(Xk4^`5uKMyt>f=_du$MbwVUEa1K z^$E5J@d<{7hVFkr|0gLt{*o3X1blu8)Um+z9g<9u~R#CSC|Vi4VA@Ni(?Y zrc_6&PkAV{C-4s4bTsnL7kL?ZC!0UEgcH}-IHVIAB|U{Kp2jA^Z^uD&^7-$_GZD@Q*rT4i>1R1A_0W?85QWc0Qi!e`2 z?w3m?gYQz12n2NpR6sVLS;E;5pebP@CTuJ5y~Mi&z8Cl|&)xTVewkEZzFfvDJZE@* TmEY_55l=bpuHjAm1RehYl@s_K literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController__Javadoc.json new file mode 100644 index 0000000..8d56472 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/controller/queue/PriorityQueueController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 优先队列 演示案例\n

\n 轻量级队列 重量级数据量 请使用 MQ\n

\n 集群测试通过 同一个消息只会被消费一次 做好事务补偿\n 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条\n\n @author Lion Li\n @version 3.6.0\n","fields":[],"enumConstants":[],"methods":[{"name":"add","paramTypes":["java.lang.String"],"doc":" 添加队列数据\n\n @param queueName 队列名\n"},{"name":"remove","paramTypes":["java.lang.String","java.lang.String","java.lang.Integer"],"doc":" 删除队列数据\n\n @param queueName 队列名\n @param name 对象名\n @param orderNum 排序号\n"},{"name":"get","paramTypes":["java.lang.String"],"doc":" 获取队列数据\n\n @param queueName 队列名\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo.class new file mode 100644 index 0000000000000000000000000000000000000000..b9ffc5eccbf0018a7df78bd151a223ac23be1b2f GIT binary patch literal 5789 zcmb_g>vJ1d75`mZ(yru{Ejx8mHBLxUCD>MCwV@4U?UXjJ#*OW`agvs_(5$7!RxD{< zX=Mnn@`mz$w=_^FkLF7l9z)ZiADHkZFnnZ~VTNIbPkiDpV1^QYckiyWmbbB(!Q<7Q zd(Q9t_TF>PIeVo){^yO~0yu(KQ|LjjhM0jk5(0UrzEmjHovKy03Pq<{b!r9Iu30sg zqqZEqRfdhf|ythE9Ef}~D_Y3q9d#1I<;dR8pDkc6M1|GnJ0x9BUn7xJGwGQqtRifW% z;9U}}6MaFhRw_*clX4=G;(}VRR39<$P@q1p);z=ndf31tI4ZEMYOUDEoLbRxpD4S_ zlo~E`rXg^3v@;0*!#G%5$i<)k9W`F8LkMpi-i%NXjvF|ElMF)9s-1YYX;lPEx`#}A{!~3#wiUmOyYJ9D+h_5GjIm;q+Yff3`xoM>SS7a&C!Ls zT(&BHjL%OW7Z8sLq=VRbI}&G%<)0A9o^7(~s`iC)qr6zLAF0(G*K(PU4Dx{)mTFG32UzWz1bJGaP$nHtRiP-tNb9 zy0#V((V>}&Q(bgc3Xj?~yKcF*3|qXRDtk*fK~!>G;D*lH?y^&wXXmWiE=z|sP6t)v zN>-K4dZxZz&s)QELCTMjF-2IbjMrtQpTH8N6XfNJ!u!!y1HV!UavkNuBxB#&W!L^Djv(~DgJn{Ln)3YZSplKF(-EK51 zE;HX-y_O4>s^x-pC3Ed1=(*N(bwa&Y0>hVUO(T)>UMJj@1*cgr+9%5u&L=H5SH21- zWcv^(bYCBH%rRzUQa<4s`F3Ug9d#VH;nuBHm57aj1iqWXOSr1xd$Lb|Um(}+Q{~#4 zvtk!iTBz22(ki-6o$tmM!x`xV73nFfR;t*I+>GO_G*>4>P1aAzkY=6Zxht!71pKKG zK4`Tel}~ZZs#F%ru05&a2Lew9VH+)%j)?uc)ZR!*?TwUzy^*rN3sUrU!4p)vNzvc0 zBVvrXJ6&VBAFEi6hTYKcBZ0jeA{G@04L=dsd1olIN<|I3`9kes3r*r4oW%kJ&T-U( z^SpR=;`j-U`*?qn*Nz6o9(f+}Ks*F_cb6TuWdy9T( z1APV6sNihrmR@xcfA+&0=xcDI=(lxCFWXRS_Sp^etI_n^yQP=itwq0M1O2nnvESJ( zy=t0%aCU8=uSe7G?v`HlU!VTo4fKsxNze0rA^YsU@f*nT8s(MeHNop3uS2{J^O|}C z?*=+6EZnL0MRsa_r%}7y^8%}93!C?Re*9I$W7qS)gZ>iYz1Q-$HUp96NgV$gj$i{Bqu>dh@#t9iU6WO@LByM5o8q(Q#HW32lO^u+u zsb@6_(tVJY)kB~OGfB{dnaU<5DCL8a*;EL0*z6GfmKx*`G~I zP`?jKXZu5-gXRE12hB`&K!P$pXds&jfex921RXMmvV#&dACAo{QP zFeMEi!Jm0GnK4)K8a_%XiC6G*e2h{GH}N$*N2w3D@CAIFl7W9<1)rdl#y{B_KS`-y zq?i$(qBI~fco?6ilo179$oatMwq^5C+@WwbiTS_iw3-``1d ziJP~V_db&TJu^AQ^U&-O)Bs00pwAVBFYtRndz~h&se$DhQ-nlKZdDbX^qI+WL8Q}awL4Btx&OjD-rne>*4<)XX}nn};ZO7Xptf$5N$ z@=U3giSsdj+gOe zN^v~RWcmuF1e19gU!|ns8<=G>%0&Gc4&v*SlK2C*Q7;pfi6wr8%xyOKm46~i~ZD*RUK>&&;AGyFR99lSt;e5bw0 S>t+0qqZFlA@MHWG+5ZA398rb< literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoEncrypt.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemoEncrypt.class new file mode 100644 index 0000000000000000000000000000000000000000..3d5f757c855736b8caac2306ba3d2a0c2a0d2f4b GIT binary patch literal 3851 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 W8{y-%AifyPb^<%tCChzU2mS@U12ZN7 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo__Javadoc.json new file mode 100644 index 0000000..46726d8 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestDemo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试单表对象 test_demo\n\n @author Lion Li\n @date 2021-07-26\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"userId","doc":" 用户id\n"},{"name":"orderNum","doc":" 排序号\n"},{"name":"testKey","doc":" key键\n"},{"name":"value","doc":" 值\n"},{"name":"version","doc":" 版本\n"},{"name":"delFlag","doc":" 删除标志\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree.class new file mode 100644 index 0000000000000000000000000000000000000000..ff4d17c9a17cb4ef945d58a1ef005aa116ce2740 GIT binary patch literal 5164 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 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree__Javadoc.json new file mode 100644 index 0000000..2e26aa4 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/TestTree__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试树表对象 test_tree\n\n @author Lion Li\n @date 2021-07-26\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"parentId","doc":" 父ID\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"userId","doc":" 用户id\n"},{"name":"treeName","doc":" 树节点名\n"},{"name":"version","doc":" 版本\n"},{"name":"delFlag","doc":" 删除标志\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBo.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBo.class new file mode 100644 index 0000000000000000000000000000000000000000..85b0e115c9278d9eff4f2657a0ade51540834317 GIT binary patch literal 5269 zcmb7I>vJ1d75}X)X;sP82N}+PnHqO(;cG5U?At}(cbZc)cY2DqG zODNDnc$7k$Qo_&yzVM|E7Wv?>*=ny;K&G+fi+ z&=&a;O=dMeWjNwc)ivF73etPcs_8zepkrioAp;E=6ih}+K+jP|xOTzXDx9Z5@6ADz9?>{EEfW8QF-nGr(&D(YCkigWMQLc$B zU;IfO_uyV?mIPhl#F5d+RL^Az`;?Ah3Cj?6(DPbq@6&OAsD09NTxv&kjA2|sC$Y!t zz7I4Jhu%y4ZXFLGuOLgj44}7w%}wxN2@?IFj!#RpM)ZPQMIU$lAswH^!wR-kj1_Uf zsum6RDbro1jVF%G?rObI+{*F?h?ar^T+9zlU_7mezn=W0e-!9did zyF>Ke!Gat;7r)EtsXf`Xtb@FqTJ69{0Cz)Cm z;W)+;x%+Ni|KpvDzqxh&)qkD;^R4SQ-hcZBJzcV`+A1k0W}@X0l$%#(!7D`mP|0+U zNH}SCG<$dI+-kFjo9~>zeCOwv%~JF0#@Bz#{!%G?$>#SjUViW8Ypo;$@4fcM?Hd2FKVj9C?|7HWH`aEd|&qKomEbKqsj-PbYa;@#w=m=;%>_PphzT0Bgm_1 zimv4w6ew(_(S8<`3fEw{%fgmzkMSCo?N;+Np4jOr{SK=@_YL9DH~PJ{ZVZQA-poeV z?e^z36uJkf_u4MsULR*YGt<4s4es=f!KiEAHHs^<#%i$BsS_usXAg0S(<~udIJL6N z;`RJjheK!8;n1_paKj00xcat83PZ$om=K_w&O>(Y0(IZEr?XECBkX zM~!N!ES%vP%UWS~Y46PuP18i#c4FXXBKWXBM^pjD0i#@=H(fEQ;WY&Z!;nl_BW7uz zGI5W;jZ*TrQA*)9N;%j@DSF$uPZ?!OPFGp02g-)y2uH(H6brQ?F`57%Ftv@$h%TI!-=~xG+7h!3Kd~^f-)m;GM*vMnvi#^c82-8 zGBjB?F?zhSlH(M^o##m5cWUe!l;2ZG;7NX_J>>uvDC<4|PvMIkeJQY>=C>lRb!|j{ zfciTcqeMH`CE~>|hN!ERXn0*B-W6krdRvLc)+OTgGKQ$Xm1xhpM7(##5N&BCdU#zT zUP)t!wzU%NU6<$#o<@ha{RI+w#W^$ud^(WolDAe9+sH6kmy_ z@7gH6tn@m4PaFML9u>36izi+Tzk4SK}Rv8#~J5T9LqM)*wd*>eM*0a|l2+EI4Kb`<_5 z@#B-|Vczwy$)v}}-a;yQW&E$uet}fSmGO6>&B}Lt&Kr)6U&Ev?(UrLgeiV|s|Ax+7 z@+LN2g1$SKyoyId#84qc$WS4jOG!-nCi*U+E0@ZpBcNRcm7rY(EvHJ57J$^876FYE zG6anjvbl@|Wdl$qmyLiX3Y`Q^6!cuD1nB{YQUtW8&_&RmLU*o9g1Q4xSFSq*C9kmB zIwHM!(5vz{{RoA%sig5Nmbiff_z#xZuM_;$`%jqEb>JcV17|5E@dVz%3Z)e1{T5|P zX{_OOR4A$V23|pxl7?RrWl_rD*AQ5xl*PL|zMrGiiJN#FHYFXm*>fFAUHCV)!KKuV z8vUKcpsM{B-72)q2bA#`|1{+TZ1u&=#}dPa^K462CgqRbpr#(-+GV#&$z+isi=IM$ z$ozIDmoASpLK!F-vY?$Ux3DYncQ0vpSSF6~JHsh&_fGERdAWZdb8zR}_TI^5rkmC~ zehKRCt2p$G)DIPs(vV9A7ELChZ`xHzd8Sm|lnPBFg|uf%*Gd5i$&FWrpnu3ll2oB73ild{@*&9@=%2UVr2L0oyqVLR&delU sWLhQglBezEUVNLQ?-UvQ@1Dl@@O@e}YJb4zRb1dGOX+n+{UUPz2eETA9{>OV literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..333e1a859abe1d06f0ea0b1c4f703acb4db89909 GIT binary patch literal 498 zcma)3J5R$v4EB}M(DEt+EJ!f3a4bv#q!xsPRD?vkF;ti22(FTIbdPTQF$R7BKMG+I zW#J`;vp?DXY=6GD_m@`yIES4GIs#6~<}$NXDyw9sOOhF5G%_JM)6QRUXiPI|@vW*V zZ6oLk7%tRO$wHZ2-X#m2`UrXg4v=Jy{wXA~KvQWfP|LA$x?u|FPcb*j2df13>e15{DZg85LMp#y4z2nOYSmC$I gp9hR0wjEf5e(eXa&VHBk8=TurVGFh&I5K4O0YsFTiU0rr literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..961f05cabd2c4cd04b956d81c1eaf8d5add1eb98 GIT binary patch literal 3022 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 L5AkC>kHY@|$N6&f literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoImportVo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoImportVo__Javadoc.json new file mode 100644 index 0000000..ca8fc42 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestDemoImportVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试单表业务对象 test_demo\n\n @author Lion Li\n @date 2021-07-26\n","fields":[{"name":"deptId","doc":" 部门id\n"},{"name":"userId","doc":" 用户id\n"},{"name":"orderNum","doc":" 排序号\n"},{"name":"testKey","doc":" key键\n"},{"name":"value","doc":" 值\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBo.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBo.class new file mode 100644 index 0000000000000000000000000000000000000000..1dc38f9256682396b8fbae044990ac50d3ddd7c8 GIT binary patch literal 4589 zcmbtXYjYb{8Gcrlv@3ZXyS~NB#neHquZd_0l*(~woH(h$cGK8(AT7|fbZT!b?Yg@w zmvC=VI!u`|Wu`MQ@CCk*FcTOUAPHe$%9k(${D}^sY5oJHJZCS`N>=O4Fk?yYdEe(e z=RN1Woa4X$_tswk%;2>w66jEo)R973!6UY_UMM?u)o_eL$*xvyt5ChTW_YH{p(6@q znoO%OYq(<0@=Widg7h)dGQB4hbc~I!W}qRXBCDelx`Kz|d}UF!BZ4)%up(S<#SvoG zR**2u3VIeU7~4jnVp!{i1>0JmmSlT$bW0{}%W#C{&6lO}0UfeN4xL64puB zna~}nKcwU1QlFvzr06szcON^ZPw03AkMclEhBfz6&8R3Ch_C+i z+67VarpM3AtU9XWQxcpO66t2~7>=s=48z=raxg)ni#n!pjMN*3%iWb3E2h)DoK;ki zJ6mJ2RmH05nrjtt+_G$sImts%ARX8=9M33h8x^zctC_1jABUOhxrHU$TdGwm(+bq8 za9v|v=E0qtf4cY9ukYM^uukcVFdrxg0IhfA_7c?|$z_D~XKMZo8jlMQzg0 zp?81w!}nglbobI9|NZ70&AudqBkx`?EwNOqt_f$w;6clRu}el})o@HX4wXr7!{jlI zHf`WTtD7tD4^L>`+HMoU-i3-?U9&d}r-daP!xLprNx4BO_Qey-uf*|H=Fp<>HtaHs zkY()&hu(B@LR6G2MUH|}4CJ5y15~5znzA>_ebQ^59gGwx>`w8n5#~4@w7m`CFsbBW zmOZ1ixoB*K z(Mp{;JHI%`oy;@E9pTn09*fI&Gm~$4q~@dL)qJ#8Cf}gVF55MyBu<$!ExH@c`-m)O zSu>_xSZ8ahtraS!wI$4oDGElTQVYjxo=vZ|gv0QrJ;PzQRB-4+lPFq(=s`zpGsv<5 z^4E*j%Qm43`n0cta3%T`32kFWYx!dY?wDOP18i#4%)zK6CyYvE+4RJ; zhHoo479Gi~J!Y0?l&J@!@JTrcpOk{|Nhu27j55wdnzvYACn|>P3RlG?Ue7yDrQK## zysBXMqoIswa55O-C6{1aQvBu{fZtDW)Wj$`&YC?%Z0Ng4*A^kJtdA#Z(} z6Y`=DIR+aXbCM%b!l{U6C{EL4O~`k_PKMJT$DAUe1! z5#KUxh`L&d4(&?B$4?ugo>roM+1Qdt2CmN_rQ%LhFzv0Q0S-*vzAvPkOm-8<-?ZBO5Gzx1;9 z>h!%k=vUj*_uVhOEX+Fnzz+Iz_(Hq0AG}|BS+#Zgp&j&Jtmnu{7N;!8eG}LH&oF;S z_{sA#dJB_4YvRPKbYI&l<=Z!KUik-;qKoYBOiug)spPfEze4*7QXSVO--fn0#Wf24 zaANWXJ{d@KV`++C#pL0?p);4fjR&qkKb%Wm$EPF2a4|*5a50@rNlf}Sdas}>m&&DM zppl|V&`43ssS>1xAT_7OK>1>ZpnNf#%Scc*1Z8sB7-+QENziCf&vin$u>Z3w{}a!%y(Mr2zr&ZP>%dX`3SXv_#4~skU!j!3IlPV+ zD5bHDO&FATt3zOol7^q+6iSpb_&J_LnNk*S^9~Y}I&mBO@ggN1>-23FeX8~!>`|d* z-p8Pd$M~ly?_($sGrNmXC7*A}rlkDGC`{JJxjFv=l!2CK67R~vnFM_zRX>vyPePta z*e9NEVOQk;Mx^28q1@%KM$#YjOdsR@@%Rk$XW!C+p6Lyyiqhy8GKI5L-*ljT=+6e8hTH7G z_pt$!+tlzHE>Mzn@d|?~L;o;s6-r6I4;E3SBoF0LSd`Lu8GB(w3)v5_4@ni8 zqA+$)ln+SJ7$>A+0I3KNVUo?N5SEU?8pu{{2v(cH4SX9zI7Qnrr7^3$jT4(LiX^uD pJbKC3_V5TD9-do*huV48#mls6)P9wpZ{a%}WhuRa%lIyG{{xS&r?CJ4 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..883c4278a7525eb43f440d1f8163febac60ee841 GIT binary patch literal 498 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 MA-zt2qc=(Z4-8y}y#N3J literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/ExportDemoVo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/ExportDemoVo__Javadoc.json new file mode 100644 index 0000000..f493150 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/ExportDemoVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 带有下拉选的Excel导出\n\n @author Emil.Zhang\n","fields":[{"name":"nickName","doc":" 用户昵称\n"},{"name":"userStatus","doc":" 用户类型\n

\n 使用ExcelEnumFormat注解需要进行下拉选的部分\n"},{"name":"gender","doc":" 性别\n

\n 使用ExcelDictFormat注解需要进行下拉选的部分\n"},{"name":"phoneNumber","doc":" 手机号\n"},{"name":"email","doc":" Email\n"},{"name":"province","doc":" 省\n

\n 级联下拉,仅判断是否选了\n"},{"name":"provinceId","doc":" 数据库中的省ID\n

\n 处理完毕后再判断是否市正确的值\n"},{"name":"city","doc":" 市\n

\n 级联下拉\n"},{"name":"cityId","doc":" 数据库中的市ID\n"},{"name":"area","doc":" 县\n

\n 级联下拉\n"},{"name":"areaId","doc":" 数据库中的县ID\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo.class new file mode 100644 index 0000000000000000000000000000000000000000..af187aab9e1c450af610e8a5f502063b7f26f9d9 GIT binary patch literal 8487 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 literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..abffacdad7cf60dba27b0f3abe46ed43988ed97f GIT binary patch literal 2342 zcmcIl+fo}x5IrLy1k%WsFW4rwV}fHWfy{!j@kKTXhL8{h7!V51eUS#SAnmGF3n~8< zd0AH_RVlx@Dlho}|BEZ#dl3tPgqM`6wl%$H&YaUT+wsivjX=)YlVWz}|O zX`Dh5@f6aKNn|9>;k>||(y?8BfF_$kLN-9}qy~yMjBrf6- zf!k5=rQC6BzQQW{B(C79K&C@oHkv9zzULSXZI+hw$onNe!gYdo$bEQ7e~9+!Z%Ta3 z4q5qntL7%O`|CB49|Uk%XUrK zOM6X$z9Ty`Z#t^3Y_EQwNqmlJe{&A;SE8E}!u z7ime|u8#@aJ+)#-NN7Tj6SOUX!BZ!7c7poCnxj{DY0CrE*+u1STeX+e4V%hQHaTDo z;{uPPr_%4I#Yl?^GSLnfqy&aen0g{GwPx+vRW)aDRd0tfE7nQX8Rb?g(7(E8I@EG1 zM%$p`Pn)LY=#F8TqTWA^dkDOu zt0X~@ZV-BYMGPnD4zVDuOx~;kGw-d z9Q=;tt2gLfER48FxyW+7?BW{78!m2f9CUGqW6s40$59vK93QxN#PO+%DUL5(%yInM z#bV)r)`)w$p3)TsTtFAyD&6R#(N(%Ju2Ea>#}Hixqqt7(@&=}G6LXYZ!Yx!VK-vdA zF9W{bzzZp-pH806VHKOGlAoHlmgt6}KM6taeb4KG=f48a8|=Aoz#9K2uai`N&^6PA z9C;lfjRo?0k6ewCSB;)yz_V*W1i0~AUjR_ zTMxWGqH4uSLuPp7Ez*UzNV<5*n-M)E$;cte1PgNQm@^A(Wqr==fOCRkj9+`4E-L@V X*BjyEy&%3A3{Sugb}8~XZ2*4*=;1S} literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo__Javadoc.json new file mode 100644 index 0000000..88a5d27 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestDemoVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试单表视图对象 test_demo\n\n @author Lion Li\n @date 2021-07-26\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"userId","doc":" 用户id\n"},{"name":"orderNum","doc":" 排序号\n"},{"name":"testKey","doc":" key键\n"},{"name":"value","doc":" 值\n"},{"name":"createTime","doc":" 创建时间\n"},{"name":"createBy","doc":" 创建人\n"},{"name":"createByName","doc":" 创建人账号\n"},{"name":"updateTime","doc":" 更新时间\n"},{"name":"updateBy","doc":" 更新人\n"},{"name":"updateByName","doc":" 更新人账号\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo.class new file mode 100644 index 0000000000000000000000000000000000000000..8a79dc828347dcaab48c74c0c8c8b6120043cebd GIT binary patch literal 4855 zcmb7IU31)48Gf|hU1`@^+i~I~n}oDYZR)R7G|-f;<3j2rjl()kW5OwD_%>k zq%}?XPWTAntC?XY9pD0nnI;#R0cKiv2n+)^Wrjz?t)bd6y%TCjvYLs zpkr`owg3$U6-6DL&=m~0-n>!w+$Ga9jk>ku8g-0$zC1%@DT;YnrE4THDe2Gw47#OH;iM{jurXlhjcuQN61+-o#U@I&4z-$ z!33!c%Gl6L0{p0sehetc&0Ab0-#$2$fQBxL@IIzvP;llgLFkK_!#YO9%udcc6FDyQ z2X#Cy^abjVg}w{z$8WM@c z))t)%LYOegRa ztRzDg#-TkfA7UK&AZN4|nGAIVQ8A%lM_6RGYfM|7Z8q%J&AA2_-@~|ZIBR*n?K4;H$U%PSrz+0yMOuS{p&YF@!n5w-o5g!5cRviy!P*_ zm+oEq{hc>{#NnMQKfm*b+jp<8-oO5~f~-tIchz>R)6Jzh%bSsY^;X>)-7@JMml-Lu z!Gg_oK33h*_T&=xM&3?3D=Gf=RvYfpoV#c|XE~O~tx^|W`LgJ@Z^-q~EW=v zu$^VgZrE00ANj`7X5i9I?jzP)J}^DDE(HhvXH~~bBf95V*A4u@GnZu{`rUbayNK`L zyDGjX`qvc&{jKB3c2?X)%a9(+mUhCd1+I5d!JEkfkARZ&r0LWfmfv4>-NokeSfZyz zrJB&Jn>cfE*-C+*PvGN&CZUQbCd@`-+U9ws;i`gDvD35epj{tVMjwtdE@YW;A<2vj zDbBc%TNxi$hFGqX4mbEj!}NX2SHU(kupvfiuB-Tog8ly=$_&al;Sruj87O!bD)!(Q zj#ECtuA9Mge0Z-2W!?&?pQPNy&r^Ipa~_J1Dlxnqq}rxv<1Hc8cA7R`7gBA{)5Z%z zs_hK6QP0Z}F)wg621g1%bHndK`CYiwv;3V8l{+v^SuB76%-|e9XCv#2{AAH#U<1+H zP=8Bf1}&n8HYMWyA%&>aPBgG75icAmL_O_9BbyTOj*>#Oy`AWZO^JA|Ng>+VPW05K zM7;2%5bbFv8sC)Yv-li3!t_^2m=PHr9(f09dj5AxM3jF~8=|Ncyu^7q9&zYtD~j{! z^rfxR%e@lOcW|tMqcaMfANJ=s%xMzkRFpa>qvWeH-Y%fG?)Se&<%{<))A5 zcW zEDwu!Fi$CmDf|Wtl=5ic4cL@ac({rSlr&t!BLCM=z;$voC>62F180d+C;rI0fI~^g zKba|)QVIXUUMy4U!mC_w6@9Aq09`7y_pwt&hCiC}K6Xp7@S()G2h6n+UBjOy@d zx-MEwPE?49Sn^@@PV%!r(zklXj%3HfV%yg< zw!l);dPZ(QJ-CX>D?&e1$qGX`8(B0_fYLNt$%Q7?UN}iB=VFsl$%m%=nu!%DXC11j zp^3#9%~E62;ffZTv^5h;l(Y7w7tG7jgQ#FS@N1^qr~5hl3IU}IQ~V1w8Ile>ipyA` zl*KbFk}p%rv0qK$HA;D+58)yu-e9l`uT#=Q(v<_yKcFJ3LQ@nbnqLV&AX#gi5sE(K zVnB?^u2)5{d;-=&wreA>x*puZrx>Cs+J-5uS?RWDBL9{n9V9;a6Z)GKf9gp$b9&nu z_La3m`y}HkEYX^<^KYs?W05h literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.class b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7b02ee7b15a8c50a5e4e71d679f6f0542a32ed4d GIT binary patch literal 556 zcma)3%Sr=55UhzYYvL<<5JAwh7srF1R)r`CLPRhjmmI=m)2Qet;h( zj)_6=eVFNj>ZFWx zY;-BGHJzEOqIA|LPR;^{DYeAtJ5B}mzYW*&&dho*rhS9KVGvb)Nx}5!&mbSS>Al+o vb;NmLtSiGo1Qx6vm&MCS8(jApEINL97(o{IiQ7G#F573yP!#Y0Qi-x5+guB)gf-wvM01 z58#{nCd}xJ!#ijEP>#>p-Lz?KB;%VsyLX@a+}}C(-t*Vrzx@H=0k$(pV8%ewL<+MC z`B(OyZFOz8V?En>rCWi*?0v^|g3lFZ3dN>@Qwj^7-?7@h*Ry@wYU`e7wfXM2RznYh zhOc!724*tI!ZeUGaT;e7ZcLiA=N-&zdJ4IY4%U5b2fE?(w8FVUu^vM022R)7;CM~! z&zd-g^OO&c%Fh>$tBXw`nKSVoE-IvG|D-);8|GT~+)ijaZ{mGiri`{C8`&MIBD)Vv zTot=4?Vj7dcBvMu1rs01{4D1mj%TrG;=1V5)Nkm1tX?v)Eb27XqtPsiCQ2jicLVK5 z&J`0MkF=xFEG!c@@kzuXmEW?ZW*0^^3$eEY--*+^ZQ@hhiSQ2Pb8*ea)sp5ass`?v z_zX3LdsFRS!yBD}O}pPGd#~SBFj}6wr+pr#UZFmfPi>-Xy;H5KAm|Tw| z*XQ_ZQhx4T()K$y6_zJf?1%{`oC@NbtZ;4Oq=TK{E!+<5)@yEgOr77WRY4wzuoI^kYY=x;VmYdM8z9MS6?E z{EJ;TV83ZP1Bb<5b6qd61IKeoUJ5HP=*unoK@$4W^Iuy7rlq~$r@pq2=dYX5f_-@ie6vr--+GelnEg&{6UyfVax60Z$$Lt}vB^Vh>!wW!%LT5?l@07NYfIHj>~mz9Qpk+``v*LcVW8Z#9dj zd`T((k8-H-pXBf}qvTMP94h<5^gr2`kfzTf*{_p*nG6N87fD(odztJNvagJBR}Z+W zF*i9-|2KC!5pvgo{2J@O8MCjFT-bA^@>^spZ($5^SBg2liN@F_=HdmV7UG!)>iNiX kEB3t2n2_J0=MeY*%P&3VC$*(t0?$H#=lGUU&e03tAIRa|v;Y7A literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo__Javadoc.json new file mode 100644 index 0000000..6a59c2d --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/domain/vo/TestTreeVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试树表视图对象 test_tree\n\n @author Lion Li\n @date 2021-07-26\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"parentId","doc":" 父id\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"userId","doc":" 用户id\n"},{"name":"treeName","doc":" 树节点名\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener.class b/ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener.class new file mode 100644 index 0000000000000000000000000000000000000000..447e78796086ca1427f0e0d54f9a5ff005fb369b GIT binary patch literal 2846 zcmb7G&36-36#q>d@{%ynQc58r2pAzrX-6swHWevt!C;`3Kr2OsX=d6Eq%&bM>6c#% zckW%d^SE@So7#HR!_l2v`Exw#@6BYIq>UWu$K<{@_uh9ue!u(j$KOBw3g9h#oHCO^ zq;xE(K4y7qa_^{$7sI_#*VGd@j+X>Zs5psJ3I>{EXwwSUsf;@-_GHDg9GhA9=(b*7 zTQ`FZ)}+ROQqB3-2wYV0CWaLpXdIijJ##@qG*;2ws>!7ccz263 zdFf+BB_jx9LHyLr$$15Rt;yBh`5nEiViZ>t?5j2akT;}Bll#yh0NA*S3273ii3CC3 zkTAHW;+=3;!XR%5Tvw27)BaYnOc<6|XG;M$1a7LB#MBP9_~0$qsoI3y27C9jjXt4o znN@O|z$1v;9Nshrn$!uNTPO^ve=XVNVhJcGfx0;#2OfXwN0`u3zfg8(IPwQWrC^XBgt2Y>pp&bIl_Uevmd(;Z9mF*o+t&0D(HWXsz`Ee55S0whV_ww zC^#k)zvZkH%`ykCX@r9^7*QM$K|+nDD@g7zkvs|2cfONs3E%a#7JjV~7C*J)jFH_% zyd-N~^z_oB8+yg>nZPPb_rHLC_hl@fX=7M4Iqb!$dSpV#!!&LLo32OYV^-eAO_CHB92kcxXZ)Fu58=otIH(H}LKj z-XoK?Fw=n3{EjR56JvgT*ID5a^uokE1TA~9Kq*H3UMy0I^Yo|n z>PyMOL%$}S}NB8+c?p61z~6uw6Vj}c{TpTeai7}0f9DaGK? z_X%1CTD5Jh+O}4WTFcbRqVpf7Cc=}6C>SETM+uqr x05Sw!Cw~dDZ2uGVoZY~^2JoVOS_hjzm#C*5I_#!H{&(PGy6C_s%t(HI_Afs9`85Cl literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener__Javadoc.json new file mode 100644 index 0000000..4e468d1 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/listener/ExportDemoListener__Javadoc.json @@ -0,0 +1 @@ +{"doc":" Excel带下拉框的解析处理器\n\n @author Emil.Zhang\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoEncryptMapper.class b/ruoyi-demo/target/classes/org/dromara/demo/mapper/TestDemoEncryptMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b317329c31a029735d7d56aeac5854d4df1f8f3a GIT binary patch literal 388 zcmX^0Z`VEs1_oOOZgvJHMh4ydqICU~qWs*%qD1|a)ZBdi+{A){)FSilbY*2E3Zf<^_er{z_Vo7GP zesX?MD$HD`#Nt$lVF5X%#f%J`!I|lKi6x~)sf-MBeb9}z_94qy8x(C|Z>0den3;#} zEmZUIDYUa@WZ(+UFD*(=b<4~FI#vp62=?qsVG}2i1Yv9*af&LLs0<+oA5tUj6b#YssP=(F zennE1Kajf*xspRF=lrNtzL{MKz0gXQ538AJ&2)d=Ur$f}``=%G6VW63cAQc)l%aHv zhG~S+g7Qu*+fxqrxMd4RSq`sOg=ZZJKiI?inOQQLD2JXW+~8R4R=DponqFKgobhvR zRk(X%8DU;4AI(vg#u(*%Q4wYAFY*(?=#RxhSvgjTD@WQYw493)52RnMguYc)p0FGd zaGM9*+Sdp23A@Y6wPhfc>svo~24cPq%~FDn7K<8uE=OOUUY9A*kZHL&KVwT-3Zfqnd?-gY9)fvc+>>x2U}mJ#i&Oys8OtRf26Bjs|CblMB35Y zDmtIpT!~akWgQA!+=~1~UtT0_tFr6iHf4I|OiA}J@K8Lr5B5+k%D@L4X!&G-Vww`@ zgKouOOv@K_5@<0P{oc@f#o}&dJE~8enu{L5HYqk8YuqrkM}O>4gM8;FpKX4d@1^n<}j{d^Id%RUQp@@eFXXa z7sPy;*Ak2ijlz#(;UX>J=o&?%a_C$T~a1Z ze?l}wtN0zkcA^Ec@H-c6rBCTItZ)c=ADaIs0sM1-`vTG#jM0A@yq?X{I%FNa{BjU4 z8Jg#>Vn>dEP1~JVUa9#pKGf!iW&DT`PSpLFFzA^|>t9HX^$Dkl4{0WSqg-1|g7q($+4&ML?)u?}GY8(1@ z_RH6hTSAiFG5HIIGd2Oh{X)aWWw%d*nmU5k1b25o`*m zk8z4JMKhAm!!gAnf-M2fRfgDVZH?5kAqM4TY#sd)-lAWSb<)fWsCL!JV8|Q^cyF&$ zx7z=ry(py3^(3rKnWdg0@oL1>E`$2Eb=4A3>)Oo4^q^Aiu~D4JY2LAbz1dOW?b^@4+M8M&2*l;@kTQNm4qhY z2{p4sx%;XT1~X4?0p>1){D7RotIVGQ*o$~CK?SOFTZ3)3O}^jZwL5^)HSF>I{s4rB OdXBI?SOpIkVB-fxdAx7{ literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/mapper/TestTreeMapper__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/mapper/TestTreeMapper__Javadoc.json new file mode 100644 index 0000000..7e5d3fd --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/mapper/TestTreeMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试树表Mapper接口\n\n @author Lion Li\n @date 2021-07-26\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService.class b/ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService.class new file mode 100644 index 0000000000000000000000000000000000000000..c08ad176d4653b01f224fdf33e77c4e48455ef90 GIT binary patch literal 261 zcmZvX!AiqW5Jm4qlW5)O&QGw=`aVEhRw`5?E$I3+8JfhTFHEMT-`0g6;75s*>e9`? zy<84wzP^v203LCbA|gzJY+NCs_2ON@ZE!uyzRKA>&kkJ>ogH#+R=-_}bHa7)_ue&r zyK&jN=3EIke44&jT4tSAVcQd?cZ=G8cu{{MHmt5x?cChXfU{!BeP>&K7{3|zg|!UD zt9i7nEQYv{zX4&i3OmX9scM*T`;XfFV3iOEXZ9UHW*Q^0oLY(vHk7!u8)5VV*5^w# literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService__Javadoc.json new file mode 100644 index 0000000..68fbaa5 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/service/IExportExcelService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 导出下拉框Excel示例\n\n @author Emil.Zhang\n","fields":[],"enumConstants":[],"methods":[{"name":"exportWithOptions","paramTypes":["jakarta.servlet.http.HttpServletResponse"],"doc":" 导出下拉框\n\n @param response /\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/ITestDemoService.class b/ruoyi-demo/target/classes/org/dromara/demo/service/ITestDemoService.class new file mode 100644 index 0000000000000000000000000000000000000000..7dc88b49e6cdf9d34e408ee2c0d821de96ca1944 GIT binary patch literal 1413 zcmd6nOK%e~5P-+qN18xOftL64fYe;@8Ewd6sgNQC5tOQ&y}RzlmDes_Z>0PP{tgEY z`~ZFwV(d-2Ntz(aiNi|k8P7N4dHwwL{RaTNg_jKo2(-1yXliuM45KN}H7&Rqi-gnO z2`}t1N`{r70hJZT%xE<+qfPv)Pa#Iip1TuF$f50-{7X|wJdbAc9*T_hR3)d2z=UUNx5;H3b znrOr61v04ve{wHa3U#f)35z8^W|sBTnTtD!H73EaJO=-VB2&zkh7PSokk3<~uhhT&Q%b@&{qM3Trj%09s=`SDnIu4r+e?vf$n2PyC^MyiRHwk@@cBo~S z8X2QSlQ3`;F=u>VC8S0CZMa~G^EAokeWX@JJS!!>6KI0h7 zNwuP48mRTA9;vtfsF=^$(>g*CXRP#D3X3yVO=3i2dQx`S7m<>g0W`Aq+=2Y(w>pZ* zBc`1(ji3mE=?g-JgN26<}_3`}Y!+o=(jG?^HxC)YtdyDs!&HfI)%w z6rf0JSA-JX-R#C-7qU$(Lj{~gXpb`cbR0OK)FB)#UsH-g)y>c`oXi1b2TrND_64a^ J`B{!T{{(L3=2!p# literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/ITestTreeService__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/service/ITestTreeService__Javadoc.json new file mode 100644 index 0000000..35b5a5f --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/service/ITestTreeService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试树表Service接口\n\n @author Lion Li\n @date 2021-07-26\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询单个\n\n @return\n"},{"name":"queryList","paramTypes":["org.dromara.demo.domain.bo.TestTreeBo"],"doc":" 查询列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.demo.domain.bo.TestTreeBo"],"doc":" 根据新增业务对象插入测试树表\n\n @param bo 测试树表新增业务对象\n @return\n"},{"name":"updateByBo","paramTypes":["org.dromara.demo.domain.bo.TestTreeBo"],"doc":" 根据编辑业务对象修改测试树表\n\n @param bo 测试树表编辑业务对象\n @return\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 校验并删除数据\n\n @param ids 主键集合\n @param isValid 是否校验,true-删除前校验,false-不校验\n @return\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData.class b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData.class new file mode 100644 index 0000000000000000000000000000000000000000..d5e9d60ab9453695cca12102126fe90e61279604 GIT binary patch literal 3790 zcmb_eOK%%h6#lL~FT0Z_4N1VXKub+YoCNcJ*iC6klh%-g(vc8{1$D z916naaw7~{PUw^yZYwBv-0-wlcgtR@-7L?%)(*mG=C!)pTvYlR)y2aEPJ7Xr!%pM~ zWW0vJb#ogV*Zjy`cEhUNYrBnpxly+5HRODUjX_)|p!rVA6&OsJEk>c|FUMBHHb!v0 zfZkSHOwaxAIIDT?Ua)Z^b_!T^$Det1&1nh@kETLUlvT%`mEfCf+>Bco#IhUJnBws0 zSPI%rQu4pY#;ww=;Yyz!X03Pe9UV|)$KM$F(zPAwGd}Nw8>+Vzl4t4n7}0C zl-7!Z8Dg&m2^o}a+=;vBe8uUkOa~2?ft^tsWIx?w<6hh+aDB^Jb*BTr?nF;{5kY<@ za{Q&u0ix^{u8eP)&CsP*h%)GBA|cH^WBBD){+~ZaF&{JX9jhr zdD00zIZu>YwBnJ3fq6Gt2^z%dPpRy^cqVL%ttGPUMj~+2+ll zwG^zDkGQ@YI+5F`vadR-uSR+$AY(HKVDGSFD5#Fv)U62x5^71PYLwa0Yr!;qieU5k zOb!PF526(}WLT1oq72ZAHA;+?JnaHGrB!mQR);>X^vOiwRqWdm3pMLojGX%FywgtD z*N+{q&Cf8f8o3GG&RUbVTQ=TRE5^I%Mdj2eCKrbl1&Sqs{9>>c*40s3@ zt7z5Hn|10@5S|fuFWn&tP&qy7_>HF9Db5AK>RP+nOuaF&;t00$e)qJFW8P>>GL-{L~TjgqY`_k zr+9zCm7zES8P$+{D3L{#a$lAJa0yg`!SG>9f+=$*4fWDzFh8b{f!y7QmEXm?*$R;C zwm(^&;z(Y5I_lf%==-ZW;?ve6qJgcBez>Y5K72hK4Q+Mw<5e9Uz{8|Z7OX;tl2Ris z)<%gGN#DkvMigSbBt}vaNxv>Q8Ng=d4)%86_ix?HPUGvP-1lGR{tzDN6@99~{yBQt zJnQZUFLOVQ!@b-O{oCl}xmb5Ua+!Pn9a8Sa>*Q7T?x*9W520)4#=nB~KJ@Il@h@S` zPn0g;hImS0*TMvUD%#}N*jCUkVaHk6lLhSpc6SkbD>@;2D@H+=7~>KK&!VrO7mO5W zU&SP7U&Shz5@aPHvtXq_rAm&VQYBx=Nl-okFUw1e42RFH7$`yw7A1d{JL1?Y>?{~p2rHg_Q-n+g}(s~ Cl<-6V literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData__Javadoc.json new file mode 100644 index 0000000..a0b0a72 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl$DemoCityData__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 模拟的数据库省市县\n","fields":[{"name":"id","doc":" 数据库id字段\n"},{"name":"pid","doc":" 数据库pid字段\n"},{"name":"name","doc":" 数据库name字段\n"},{"name":"pData","doc":" MyBatisPlus连带查询父数据\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl.class b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/ExportExcelServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3b8c012af990d0df44ba7f32a78acaad2b9ae264 GIT binary patch literal 9718 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 CWsOGw literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestDemoServiceImpl__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestDemoServiceImpl__Javadoc.json new file mode 100644 index 0000000..c4a8fb3 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestDemoServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试单表Service业务层处理\n\n @author Lion Li\n @date 2021-07-26\n","fields":[],"enumConstants":[],"methods":[{"name":"customPageList","paramTypes":["org.dromara.demo.domain.bo.TestDemoBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 自定义分页查询\n"},{"name":"validEntityBeforeSave","paramTypes":["org.dromara.demo.domain.TestDemo"],"doc":" 保存前的数据校验\n\n @param entity 实体类数据\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl.class b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e63bd850d4d808a285233fc786b1f6d724268511 GIT binary patch literal 6631 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 KXYssXAM;;PTX*gN literal 0 HcmV?d00001 diff --git a/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl__Javadoc.json b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl__Javadoc.json new file mode 100644 index 0000000..d867339 --- /dev/null +++ b/ruoyi-demo/target/classes/org/dromara/demo/service/impl/TestTreeServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 测试树表Service业务层处理\n\n @author Lion Li\n @date 2021-07-26\n","fields":[],"enumConstants":[],"methods":[{"name":"validEntityBeforeSave","paramTypes":["org.dromara.demo.domain.TestTree"],"doc":" 保存前的数据校验\n\n @param entity 实体类数据\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__0.java b/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__0.java new file mode 100644 index 0000000..887f428 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__0.java @@ -0,0 +1,14 @@ +package io.github.linpeilie; + +import org.mapstruct.Builder; +import org.mapstruct.MapperConfig; +import org.mapstruct.ReportingPolicy; + +@MapperConfig( + componentModel = "spring-lazy", + uses = {ConverterMapperAdapter__0.class}, + unmappedTargetPolicy = ReportingPolicy.IGNORE, + builder = @Builder(buildMethod = "build", disableBuilder = true) +) +public interface AutoMapperConfig__0 { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__0.java b/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__0.java new file mode 100644 index 0000000..bcf538c --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__0.java @@ -0,0 +1,10 @@ +package io.github.linpeilie; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class ConverterMapperAdapter__0 { + @Autowired + private Converter converter; +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapper.java new file mode 100644 index 0000000..6440f1f --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.demo.domain; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.bo.TestDemoBoToTestDemoMapper; +import org.dromara.demo.domain.vo.TestDemoVo; +import org.dromara.demo.domain.vo.TestDemoVoToTestDemoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {TestDemoVoToTestDemoMapper.class,TestDemoBoToTestDemoMapper.class}, + imports = {} +) +public interface TestDemoToTestDemoVoMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapperImpl.java new file mode 100644 index 0000000..f3ccd18 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestDemoToTestDemoVoMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.demo.domain; + +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.vo.TestDemoVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestDemoToTestDemoVoMapperImpl implements TestDemoToTestDemoVoMapper { + + @Override + public TestDemoVo convert(TestDemo arg0) { + if ( arg0 == null ) { + return null; + } + + TestDemoVo testDemoVo = new TestDemoVo(); + + testDemoVo.setId( arg0.getId() ); + testDemoVo.setDeptId( arg0.getDeptId() ); + testDemoVo.setUserId( arg0.getUserId() ); + testDemoVo.setOrderNum( arg0.getOrderNum() ); + testDemoVo.setTestKey( arg0.getTestKey() ); + testDemoVo.setValue( arg0.getValue() ); + testDemoVo.setCreateTime( arg0.getCreateTime() ); + testDemoVo.setCreateBy( arg0.getCreateBy() ); + testDemoVo.setUpdateTime( arg0.getUpdateTime() ); + testDemoVo.setUpdateBy( arg0.getUpdateBy() ); + + return testDemoVo; + } + + @Override + public TestDemoVo convert(TestDemo arg0, TestDemoVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setTestKey( arg0.getTestKey() ); + arg1.setValue( arg0.getValue() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + + return arg1; + } +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapper.java new file mode 100644 index 0000000..64b2855 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.demo.domain; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.bo.TestTreeBoToTestTreeMapper; +import org.dromara.demo.domain.vo.TestTreeVo; +import org.dromara.demo.domain.vo.TestTreeVoToTestTreeMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {TestTreeVoToTestTreeMapper.class,TestTreeBoToTestTreeMapper.class}, + imports = {} +) +public interface TestTreeToTestTreeVoMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapperImpl.java new file mode 100644 index 0000000..9b4661d --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/TestTreeToTestTreeVoMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.demo.domain; + +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.vo.TestTreeVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestTreeToTestTreeVoMapperImpl implements TestTreeToTestTreeVoMapper { + + @Override + public TestTreeVo convert(TestTree arg0) { + if ( arg0 == null ) { + return null; + } + + TestTreeVo testTreeVo = new TestTreeVo(); + + testTreeVo.setId( arg0.getId() ); + testTreeVo.setParentId( arg0.getParentId() ); + testTreeVo.setDeptId( arg0.getDeptId() ); + testTreeVo.setUserId( arg0.getUserId() ); + testTreeVo.setTreeName( arg0.getTreeName() ); + testTreeVo.setCreateTime( arg0.getCreateTime() ); + + return testTreeVo; + } + + @Override + public TestTreeVo convert(TestTree arg0, TestTreeVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setTreeName( arg0.getTreeName() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.java new file mode 100644 index 0000000..6e7571a --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapper.java @@ -0,0 +1,14 @@ +package org.dromara.demo.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.TestDemo; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {}, + imports = {} +) +public interface TestDemoBoToTestDemoMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.java new file mode 100644 index 0000000..a280f02 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestDemoBoToTestDemoMapperImpl.java @@ -0,0 +1,82 @@ +package org.dromara.demo.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.TestDemo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestDemoBoToTestDemoMapperImpl implements TestDemoBoToTestDemoMapper { + + @Override + public TestDemo convert(TestDemoBo arg0) { + if ( arg0 == null ) { + return null; + } + + TestDemo testDemo = new TestDemo(); + + testDemo.setSearchValue( arg0.getSearchValue() ); + testDemo.setCreateDept( arg0.getCreateDept() ); + testDemo.setCreateBy( arg0.getCreateBy() ); + testDemo.setCreateTime( arg0.getCreateTime() ); + testDemo.setUpdateBy( arg0.getUpdateBy() ); + testDemo.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + testDemo.setParams( new LinkedHashMap( map ) ); + } + testDemo.setId( arg0.getId() ); + testDemo.setDeptId( arg0.getDeptId() ); + testDemo.setUserId( arg0.getUserId() ); + testDemo.setOrderNum( arg0.getOrderNum() ); + testDemo.setTestKey( arg0.getTestKey() ); + testDemo.setValue( arg0.getValue() ); + + return testDemo; + } + + @Override + public TestDemo convert(TestDemoBo arg0, TestDemo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setId( arg0.getId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setTestKey( arg0.getTestKey() ); + arg1.setValue( arg0.getValue() ); + + return arg1; + } +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.java new file mode 100644 index 0000000..cd14f11 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapper.java @@ -0,0 +1,14 @@ +package org.dromara.demo.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.TestTree; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {}, + imports = {} +) +public interface TestTreeBoToTestTreeMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapperImpl.java new file mode 100644 index 0000000..8a4d7ab --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/bo/TestTreeBoToTestTreeMapperImpl.java @@ -0,0 +1,80 @@ +package org.dromara.demo.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.TestTree; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestTreeBoToTestTreeMapperImpl implements TestTreeBoToTestTreeMapper { + + @Override + public TestTree convert(TestTreeBo arg0) { + if ( arg0 == null ) { + return null; + } + + TestTree testTree = new TestTree(); + + testTree.setSearchValue( arg0.getSearchValue() ); + testTree.setCreateDept( arg0.getCreateDept() ); + testTree.setCreateBy( arg0.getCreateBy() ); + testTree.setCreateTime( arg0.getCreateTime() ); + testTree.setUpdateBy( arg0.getUpdateBy() ); + testTree.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + testTree.setParams( new LinkedHashMap( map ) ); + } + testTree.setId( arg0.getId() ); + testTree.setParentId( arg0.getParentId() ); + testTree.setDeptId( arg0.getDeptId() ); + testTree.setUserId( arg0.getUserId() ); + testTree.setTreeName( arg0.getTreeName() ); + + return testTree; + } + + @Override + public TestTree convert(TestTreeBo arg0, TestTree arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setId( arg0.getId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setTreeName( arg0.getTreeName() ); + + return arg1; + } +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapper.java new file mode 100644 index 0000000..45a15ba --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.demo.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.TestDemo; +import org.dromara.demo.domain.TestDemoToTestDemoVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {TestDemoToTestDemoVoMapper.class}, + imports = {} +) +public interface TestDemoVoToTestDemoMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.java new file mode 100644 index 0000000..161bf93 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestDemoVoToTestDemoMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.demo.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.TestDemo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestDemoVoToTestDemoMapperImpl implements TestDemoVoToTestDemoMapper { + + @Override + public TestDemo convert(TestDemoVo arg0) { + if ( arg0 == null ) { + return null; + } + + TestDemo testDemo = new TestDemo(); + + testDemo.setCreateBy( arg0.getCreateBy() ); + testDemo.setCreateTime( arg0.getCreateTime() ); + testDemo.setUpdateBy( arg0.getUpdateBy() ); + testDemo.setUpdateTime( arg0.getUpdateTime() ); + testDemo.setId( arg0.getId() ); + testDemo.setDeptId( arg0.getDeptId() ); + testDemo.setUserId( arg0.getUserId() ); + testDemo.setOrderNum( arg0.getOrderNum() ); + testDemo.setTestKey( arg0.getTestKey() ); + testDemo.setValue( arg0.getValue() ); + + return testDemo; + } + + @Override + public TestDemo convert(TestDemoVo arg0, TestDemo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + arg1.setId( arg0.getId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setTestKey( arg0.getTestKey() ); + arg1.setValue( arg0.getValue() ); + + return arg1; + } +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.java new file mode 100644 index 0000000..f93a73e --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.demo.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__0; +import io.github.linpeilie.BaseMapper; +import org.dromara.demo.domain.TestTree; +import org.dromara.demo.domain.TestTreeToTestTreeVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__0.class, + uses = {TestTreeToTestTreeVoMapper.class}, + imports = {} +) +public interface TestTreeVoToTestTreeMapper extends BaseMapper { +} diff --git a/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapperImpl.java b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapperImpl.java new file mode 100644 index 0000000..7d08d12 --- /dev/null +++ b/ruoyi-demo/target/generated-sources/annotations/org/dromara/demo/domain/vo/TestTreeVoToTestTreeMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.demo.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.demo.domain.TestTree; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestTreeVoToTestTreeMapperImpl implements TestTreeVoToTestTreeMapper { + + @Override + public TestTree convert(TestTreeVo arg0) { + if ( arg0 == null ) { + return null; + } + + TestTree testTree = new TestTree(); + + testTree.setCreateTime( arg0.getCreateTime() ); + testTree.setId( arg0.getId() ); + testTree.setParentId( arg0.getParentId() ); + testTree.setDeptId( arg0.getDeptId() ); + testTree.setUserId( arg0.getUserId() ); + testTree.setTreeName( arg0.getTreeName() ); + + return testTree; + } + + @Override + public TestTree convert(TestTreeVo arg0, TestTree arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setId( arg0.getId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setTreeName( arg0.getTreeName() ); + + return arg1; + } +} diff --git a/ruoyi-generator/.flattened-pom.xml b/ruoyi-generator/.flattened-pom.xml new file mode 100644 index 0000000..3034454 --- /dev/null +++ b/ruoyi-generator/.flattened-pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.3.0 + + org.dromara + ruoyi-generator + 5.3.0 + generator 代码生成 + + + org.dromara + ruoyi-common-core + + + org.dromara + ruoyi-common-doc + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-log + + + org.apache.velocity + velocity-engine-core + + + org.anyline + anyline-environment-spring-data-jdbc + ${anyline.version} + + + org.anyline + anyline-data-jdbc-mysql + ${anyline.version} + + + diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml new file mode 100644 index 0000000..4906029 --- /dev/null +++ b/ruoyi-generator/pom.xml @@ -0,0 +1,84 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + + ruoyi-generator + + + generator 代码生成 + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-log + + + + + org.apache.velocity + velocity-engine-core + + + + org.anyline + anyline-environment-spring-data-jdbc + ${anyline.version} + + + + org.anyline + anyline-data-jdbc-mysql + ${anyline.version} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/config/GenConfig.java b/ruoyi-generator/src/main/java/org/dromara/generator/config/GenConfig.java new file mode 100644 index 0000000..3dade3c --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/config/GenConfig.java @@ -0,0 +1,86 @@ +package org.dromara.generator.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +/** + * 读取代码生成相关配置 + * + * @author ruoyi + */ +// @Component 是 Spring 框架的注解,用于将该类标记为一个组件, +// 这样 Spring 容器会自动扫描并将其纳入管理,使其成为 Spring 应用上下文的一部分。 +@Component +// @ConfigurationProperties(prefix = "gen") 是 Spring Boot 提供的注解, +// 它会将配置文件中以 "gen" 为前缀的属性值绑定到该类的对应属性上。 +@ConfigurationProperties(prefix = "gen") +// @PropertySource 注解用于指定要加载的配置文件。 +// value = {"classpath:generator.yml"} 表示从类路径下加载 generator.yml 配置文件, +// encoding = "UTF-8" 指定了文件的编码格式为 UTF-8。 +@PropertySource(value = {"classpath:generator.yml"}, encoding = "UTF-8") +// 定义一个公共类 GenConfig,用于存储和管理代码生成器的配置信息。 +public class GenConfig { + // 定义一个静态的 String 类型的成员变量 author,用于存储代码生成的作者信息。 + public static String author; + // 定义一个静态的 String 类型的成员变量 packageName,用于存储生成代码的包名信息。 + public static String packageName; + // 定义一个静态的 boolean 类型的成员变量 autoRemovePre, + // 用于表示是否自动移除表前缀的配置信息。 + public static boolean autoRemovePre; + // 定义一个静态的 String 类型的成员变量 tablePrefix,用于存储表前缀信息。 + public static String tablePrefix; + + // 定义一个静态的 getter 方法 getAuthor,用于获取 author 成员变量的值。 + public static String getAuthor() { + return author; + } + + // @Value("${author}") 注解用于从配置文件中获取名为 "author" 的属性值, + // 并将其注入到方法的参数 author 中。 + // 该方法是一个 setter 方法,用于设置 GenConfig 类的静态成员变量 author 的值。 + @Value("${author}") + public void setAuthor(String author) { + GenConfig.author = author; + } + + // 定义一个静态的 getter 方法 getPackageName,用于获取 packageName 成员变量的值。 + public static String getPackageName() { + return packageName; + } + + // @Value("${packageName}") 注解用于从配置文件中获取名为 "packageName" 的属性值, + // 并将其注入到方法的参数 packageName 中。 + // 该方法是一个 setter 方法,用于设置 GenConfig 类的静态成员变量 packageName 的值。 + @Value("${packageName}") + public void setPackageName(String packageName) { + GenConfig.packageName = packageName; + } + + // 定义一个静态的 getter 方法 getAutoRemovePre,用于获取 autoRemovePre 成员变量的值。 + public static boolean getAutoRemovePre() { + return autoRemovePre; + } + + // @Value("${autoRemovePre}") 注解用于从配置文件中获取名为 "autoRemovePre" 的属性值, + // 并将其注入到方法的参数 autoRemovePre 中。 + // 该方法是一个 setter 方法,用于设置 GenConfig 类的静态成员变量 autoRemovePre 的值。 + @Value("${autoRemovePre}") + public void setAutoRemovePre(boolean autoRemovePre) { + GenConfig.autoRemovePre = autoRemovePre; + } + + // 定义一个静态的 getter 方法 getTablePrefix,用于获取 tablePrefix 成员变量的值。 + public static String getTablePrefix() { + return tablePrefix; + } + + // @Value("${tablePrefix}") 注解用于从配置文件中获取名为 "tablePrefix" 的属性值, + // 并将其注入到方法的参数 tablePrefix 中。 + // 该方法是一个 setter 方法,用于设置 GenConfig 类的静态成员变量 tablePrefix 的值。 + @Value("${tablePrefix}") + public void setTablePrefix(String tablePrefix) { + GenConfig.tablePrefix = tablePrefix; + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java b/ruoyi-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java new file mode 100644 index 0000000..21bff40 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java @@ -0,0 +1,136 @@ +package org.dromara.generator.config; + +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import lombok.extern.slf4j.Slf4j; +import org.anyline.data.datasource.DataSourceMonitor; +import org.anyline.data.runtime.DataRuntime; +import org.anyline.util.ConfigTable; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DataSourceUtils; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.util.HashMap; +import java.util.Map; + +/** + * anyline 适配 动态数据源改造 + * + * @author Lion Li + */ +@Slf4j +@Component +public class MyBatisDataSourceMonitor implements DataSourceMonitor { + public MyBatisDataSourceMonitor() { + // 调整执行模式为自定义 + ConfigTable.KEEP_ADAPTER = 2; + // 禁用缓存 + ConfigTable.METADATA_CACHE_SCOPE = 0; + } + + // 定义一个私有且不可变的 Map 类型的成员变量 features,使用 HashMap 实现。 +// 该 Map 用于存储数据源的特征信息,键为数据源的标识(字符串类型),值为对应的特征信息(字符串类型)。 + private final Map features = new HashMap<>(); + + /** + * 该方法用于获取数据源的特征信息。 + * + * @param runtime 数据运行时上下文对象,包含运行时的相关信息。 + * @param datasource 数据源对象,类型为 Object,可传入不同类型的数据源。 + * @return 返回数据源的特征信息,如果无法获取则返回 null。 + */ + @Override + public String feature(DataRuntime runtime, Object datasource) { + // 初始化特征信息变量为 null。 + String feature = null; + // 判断传入的数据源对象是否为 JdbcTemplate 类型。 + if (datasource instanceof JdbcTemplate jdbc) { + // 如果是 JdbcTemplate 类型,通过 getDataSource 方法获取其关联的 DataSource 对象。 + DataSource ds = jdbc.getDataSource(); + // 判断获取的 DataSource 对象是否为 DynamicRoutingDataSource 类型。 + if (ds instanceof DynamicRoutingDataSource) { + // 如果是 DynamicRoutingDataSource 类型,使用 DynamicDataSourceContextHolder 的 peek 方法获取当前数据源的标识。 + String key = DynamicDataSourceContextHolder.peek(); + // 从 features Map 中根据数据源标识获取对应的特征信息。 + feature = features.get(key); + // 如果没有找到对应的特征信息。 + if (null == feature) { + // 初始化数据库连接对象为 null。 + Connection con = null; + try { + // 通过 DataSourceUtils 的 getConnection 方法从数据源中获取数据库连接。 + con = DataSourceUtils.getConnection(ds); + // 通过数据库连接对象获取数据库的元数据信息。 + DatabaseMetaData meta = con.getMetaData(); + // 从元数据中获取数据库的连接 URL。 + String url = meta.getURL(); + // 构建特征信息,将数据库产品名称转换为小写并去除空格,然后拼接上数据库连接 URL。 + feature = meta.getDatabaseProductName().toLowerCase().replace(" ", "") + "_" + url; + // 将数据源标识和对应的特征信息存入 features Map 中。 + features.put(key, feature); + } catch (Exception e) { + // 如果在获取特征信息的过程中出现异常,使用日志记录异常信息。 + log.error(e.getMessage(), e); + } finally { + // 在 finally 块中确保数据库连接被正确释放。 + // 判断数据库连接对象不为 null 且该连接不是事务性连接。 + if (null != con && !DataSourceUtils.isConnectionTransactional(con, ds)) { + // 使用 DataSourceUtils 的 releaseConnection 方法释放数据库连接。 + DataSourceUtils.releaseConnection(con, ds); + } + } + } + } + } + // 返回获取到的特征信息,如果没有获取到则返回 null。 + return feature; + } + + /** + * 该方法用于获取数据源的标识。 + * + * @param runtime 数据运行时上下文对象,包含运行时的相关信息。 + * @param datasource 数据源对象,类型为 Object,可传入不同类型的数据源。 + * @return 返回数据源的标识。 + */ + @Override + public String key(DataRuntime runtime, Object datasource) { + // 判断传入的数据源对象是否为 JdbcTemplate 类型。 + if (datasource instanceof JdbcTemplate jdbc) { + // 如果是 JdbcTemplate 类型,通过 getDataSource 方法获取其关联的 DataSource 对象。 + DataSource ds = jdbc.getDataSource(); + // 判断获取的 DataSource 对象是否为 DynamicRoutingDataSource 类型。 + if (ds instanceof DynamicRoutingDataSource) { + // 如果是 DynamicRoutingDataSource 类型,使用 DynamicDataSourceContextHolder 的 peek 方法获取当前数据源的标识并返回。 + return DynamicDataSourceContextHolder.peek(); + } + } + // 如果数据源不是 JdbcTemplate 类型或者其关联的 DataSource 不是 DynamicRoutingDataSource 类型, + // 则返回数据运行时上下文对象的标识。 + return runtime.getKey(); + } + + /** + * 该方法用于判断是否保留适配器。 + * + * @param runtime 数据运行时上下文对象,包含运行时的相关信息。 + * @param datasource 数据源对象,类型为 Object,可传入不同类型的数据源。 + * @return 如果需要保留适配器则返回 true,否则返回 false。 + */ + @Override + public boolean keepAdapter(DataRuntime runtime, Object datasource) { + // 判断传入的数据源对象是否为 JdbcTemplate 类型。 + if (datasource instanceof JdbcTemplate jdbc) { + // 如果是 JdbcTemplate 类型,通过 getDataSource 方法获取其关联的 DataSource 对象。 + DataSource ds = jdbc.getDataSource(); + // 判断获取的 DataSource 对象是否不是 DynamicRoutingDataSource 类型, + // 如果不是则返回 true,表示保留适配器;否则返回 false。 + return !(ds instanceof DynamicRoutingDataSource); + } + // 如果数据源不是 JdbcTemplate 类型,默认返回 true,表示保留适配器。 + return true; + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java b/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java new file mode 100644 index 0000000..b9888fb --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java @@ -0,0 +1,186 @@ +package org.dromara.generator.constant; + +/** + * 代码生成通用常量 + * + * @author ruoyi + */ +public interface GenConstants { + /** + * 单表(增删改查) + */ + String TPL_CRUD = "crud"; + + /** + * 树表(增删改查) + */ + String TPL_TREE = "tree"; + + /** + * 树编码字段 + */ + String TREE_CODE = "treeCode"; + + /** + * 树父编码字段 + */ + String TREE_PARENT_CODE = "treeParentCode"; + + /** + * 树名称字段 + */ + String TREE_NAME = "treeName"; + + /** + * 上级菜单ID字段 + */ + String PARENT_MENU_ID = "parentMenuId"; + + /** + * 上级菜单名称字段 + */ + String PARENT_MENU_NAME = "parentMenuName"; + + /** + * 数据库字符串类型 + */ + String[] COLUMNTYPE_STR = {"char", "varchar", "enum", "set", "nchar", "nvarchar", "varchar2", "nvarchar2"}; + + /** + * 数据库文本类型 + */ + String[] COLUMNTYPE_TEXT = {"tinytext", "text", "mediumtext", "longtext", "binary", "varbinary", "blob", + "ntext", "image", "bytea"}; + + /** + * 数据库时间类型 + */ + String[] COLUMNTYPE_TIME = {"datetime", "time", "date", "timestamp", "year", "interval", + "smalldatetime", "datetime2", "datetimeoffset", "timestamptz"}; + + /** + * 数据库数字类型 + */ + String[] COLUMNTYPE_NUMBER = {"tinyint", "smallint", "mediumint", "int", "int2", "int4", "int8", "number", "integer", + "bit", "bigint", "float", "float4", "float8", "double", "decimal", "numeric", "real", "double precision", + "smallserial", "serial", "bigserial", "money", "smallmoney"}; + + /** + * BO对象 不需要添加字段 + */ + String[] COLUMNNAME_NOT_ADD = {"create_dept", "create_by", "create_time", "del_flag", "update_by", + "update_time", "version", "tenant_id"}; + + /** + * BO对象 不需要编辑字段 + */ + String[] COLUMNNAME_NOT_EDIT = {"create_dept", "create_by", "create_time", "del_flag", "update_by", + "update_time", "version", "tenant_id"}; + + /** + * VO对象 不需要返回字段 + */ + String[] COLUMNNAME_NOT_LIST = {"create_dept", "create_by", "create_time", "del_flag", "update_by", + "update_time", "version", "tenant_id"}; + + /** + * BO对象 不需要查询字段 + */ + String[] COLUMNNAME_NOT_QUERY = {"id", "create_dept", "create_by", "create_time", "del_flag", "update_by", + "update_time", "remark", "version", "tenant_id"}; + + /** + * Entity基类字段 + */ + String[] BASE_ENTITY = {"createDept", "createBy", "createTime", "updateBy", "updateTime", "tenantId"}; + + /** + * 文本框 + */ + String HTML_INPUT = "input"; + + /** + * 文本域 + */ + String HTML_TEXTAREA = "textarea"; + + /** + * 下拉框 + */ + String HTML_SELECT = "select"; + + /** + * 单选框 + */ + String HTML_RADIO = "radio"; + + /** + * 复选框 + */ + String HTML_CHECKBOX = "checkbox"; + + /** + * 日期控件 + */ + String HTML_DATETIME = "datetime"; + + /** + * 图片上传控件 + */ + String HTML_IMAGE_UPLOAD = "imageUpload"; + + /** + * 文件上传控件 + */ + String HTML_FILE_UPLOAD = "fileUpload"; + + /** + * 富文本控件 + */ + String HTML_EDITOR = "editor"; + + /** + * 字符串类型 + */ + String TYPE_STRING = "String"; + + /** + * 整型 + */ + String TYPE_INTEGER = "Integer"; + + /** + * 长整型 + */ + String TYPE_LONG = "Long"; + + /** + * 浮点型 + */ + String TYPE_DOUBLE = "Double"; + + /** + * 高精度计算类型 + */ + String TYPE_BIGDECIMAL = "BigDecimal"; + + /** + * 时间类型 + */ + String TYPE_DATE = "Date"; + + /** + * 模糊查询 + */ + String QUERY_LIKE = "LIKE"; + + /** + * 相等查询 + */ + String QUERY_EQ = "EQ"; + + /** + * 需要 + */ + String REQUIRE = "1"; +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java b/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java new file mode 100644 index 0000000..9b025aa --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java @@ -0,0 +1,324 @@ +package org.dromara.generator.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.io.IoUtil; +import org.dromara.common.core.domain.R; +import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.generator.domain.GenTable; +import org.dromara.generator.domain.GenTableColumn; +import org.dromara.generator.service.IGenTableService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 代码生成 操作处理 + * + * @author Lion Li + */ +// @Validated 注解用于对方法参数进行验证,结合 Spring 的验证机制,确保传入的参数符合特定的约束条件。 +@Validated +// @RequiredArgsConstructor 是 Lombok 注解,它会自动生成一个包含所有 `final` 字段的构造函数, +// 方便依赖注入,这里用于注入 `genTableService`。 +@RequiredArgsConstructor +// @RestController 是 Spring 注解,表明这是一个 RESTful 风格的控制器,会将方法的返回值自动转换为 JSON 格式。 +@RestController +// @RequestMapping("/tool/gen") 注解指定了该控制器处理的请求路径前缀,所有请求路径都以 `/tool/gen` 开头。 +@RequestMapping("/tool/gen") +// 定义一个公共类 GenController,继承自 BaseController,用于处理代码生成相关的请求。 +public class GenController extends BaseController { + + // 定义一个 `final` 类型的私有成员变量 `genTableService`,用于调用代码生成表相关的业务逻辑。 + private final IGenTableService genTableService; + + /** + * 查询代码生成表列表 + * + * @param genTable 代码生成表实体,用于封装查询条件 + * @param pageQuery 分页查询对象,用于指定分页信息 + * @return 包含代码生成表列表的分页数据信息 + */ + // @SaCheckPermission("tool:gen:list") 是权限检查注解,确保只有拥有 `tool:gen:list` 权限的用户才能访问该接口。 + @SaCheckPermission("tool:gen:list") + // @GetMapping("/list") 注解指定该方法处理 `GET` 请求,请求路径为 `/tool/gen/list`。 + @GetMapping("/list") + public TableDataInfo genList(GenTable genTable, PageQuery pageQuery) { + // 调用 `genTableService` 的 `selectPageGenTableList` 方法,根据查询条件和分页信息查询代码生成表列表。 + return genTableService.selectPageGenTableList(genTable, pageQuery); + } + + /** + * 获取代码生成表详细信息 + * + * @param tableId 代码生成表的 ID + * @return 包含代码生成表信息、相关列信息和所有表信息的响应对象 + */ + // @SaCheckPermission("tool:gen:query") 注解进行权限检查,只有拥有 `tool:gen:query` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:query") + // @GetMapping(value = "/{tableId}") 注解处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping(value = "/{tableId}") + public R> getInfo(@PathVariable Long tableId) { + // 根据表 ID 查询代码生成表信息。 + GenTable table = genTableService.selectGenTableById(tableId); + // 查询所有代码生成表信息。 + List tables = genTableService.selectGenTableAll(); + // 根据表 ID 查询代码生成表的列信息。 + List list = genTableService.selectGenTableColumnListByTableId(tableId); + // 创建一个 `Map` 对象,用于存储查询结果。 + Map map = new HashMap<>(3); + map.put("info", table); + map.put("rows", list); + map.put("tables", tables); + // 返回包含查询结果的响应对象。 + return R.ok(map); + } + + /** + * 查询数据库表列表 + * + * @param genTable 代码生成表实体,用于封装查询条件 + * @param pageQuery 分页查询对象,用于指定分页信息 + * @return 包含数据库表列表的分页数据信息 + */ + // 权限检查,只有拥有 `tool:gen:list` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:list") + // 处理 `GET` 请求,路径为 `/tool/gen/db/list`。 + @GetMapping("/db/list") + public TableDataInfo dataList(GenTable genTable, PageQuery pageQuery) { + // 调用 `genTableService` 的 `selectPageDbTableList` 方法,根据查询条件和分页信息查询数据库表列表。 + return genTableService.selectPageDbTableList(genTable, pageQuery); + } + + /** + * 查询代码生成表列列表 + * + * @param tableId 代码生成表的 ID + * @return 包含代码生成表列列表的分页数据信息 + */ + // 权限检查,只有拥有 `tool:gen:list` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:list") + // 处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping(value = "/column/{tableId}") + public TableDataInfo columnList(@PathVariable("tableId") Long tableId) { + // 创建一个 `TableDataInfo` 对象,用于存储列列表信息。 + TableDataInfo dataInfo = new TableDataInfo<>(); + // 根据表 ID 查询代码生成表的列信息。 + List list = genTableService.selectGenTableColumnListByTableId(tableId); + dataInfo.setRows(list); + dataInfo.setTotal(list.size()); + // 返回包含列列表信息的分页数据信息。 + return dataInfo; + } + + /** + * 导入表结构 + * + * @param tables 表名列表,多个表名用逗号分隔 + * @param dataName 数据源名称 + * @return 操作结果响应对象 + */ + // 权限检查,只有拥有 `tool:gen:import` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:import") + // @Log 注解用于记录操作日志,这里记录的是代码生成相关的导入操作。 + @Log(title = "代码生成", businessType = BusinessType.IMPORT) + // 处理 `POST` 请求,路径为 `/tool/gen/importTable`。 + @PostMapping("/importTable") + public R importTableSave(String tables, String dataName) { + // 将表名列表字符串转换为字符串数组。 + String[] tableNames = Convert.toStrArray(tables); + // 根据表名和数据源名称查询表信息。 + List tableList = genTableService.selectDbTableListByNames(tableNames, dataName); + // 导入代码生成表信息。 + genTableService.importGenTable(tableList, dataName); + // 返回操作成功的响应对象。 + return R.ok(); + } + + /** + * 修改代码生成表 + * + * @param genTable 代码生成表实体,包含修改后的信息 + * @return 操作结果响应对象 + */ + // 权限检查,只有拥有 `tool:gen:edit` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:edit") + // 记录操作日志,这里记录的是代码生成相关的更新操作。 + @Log(title = "代码生成", businessType = BusinessType.UPDATE) + // 处理 `PUT` 请求,路径为 `/tool/gen`。 + @PutMapping + public R editSave(@Validated @RequestBody GenTable genTable) { + // 验证修改信息的合法性。 + genTableService.validateEdit(genTable); + // 更新代码生成表信息。 + genTableService.updateGenTable(genTable); + // 返回操作成功的响应对象。 + return R.ok(); + } + + /** + * 删除代码生成表 + * + * @param tableIds 代码生成表的 ID 数组 + * @return 操作结果响应对象 + */ + // 权限检查,只有拥有 `tool:gen:remove` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:remove") + // 记录操作日志,这里记录的是代码生成相关的删除操作。 + @Log(title = "代码生成", businessType = BusinessType.DELETE) + // 处理 `DELETE` 请求,路径中的 `{tableIds}` 是路径变量,用于传递多个表 ID。 + @DeleteMapping("/{tableIds}") + public R remove(@PathVariable Long[] tableIds) { + // 根据表 ID 数组删除代码生成表信息。 + genTableService.deleteGenTableByIds(tableIds); + // 返回操作成功的响应对象。 + return R.ok(); + } + + /** + * 预览代码生成结果 + * + * @param tableId 代码生成表的 ID + * @return 包含代码生成预览结果的响应对象 + * @throws IOException 可能抛出的输入输出异常 + */ + // 权限检查,只有拥有 `tool:gen:preview` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:preview") + // 处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping("/preview/{tableId}") + public R> preview(@PathVariable("tableId") Long tableId) throws IOException { + // 根据表 ID 预览代码生成结果。 + Map dataMap = genTableService.previewCode(tableId); + // 返回包含预览结果的响应对象。 + return R.ok(dataMap); + } + + /** + * 下载代码生成文件 + * + * @param response 响应对象,用于返回文件流 + * @param tableId 代码生成表的 ID + * @throws IOException 可能抛出的输入输出异常 + */ + // 权限检查,只有拥有 `tool:gen:code` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:code") + // 记录操作日志,这里记录的是代码生成相关的代码下载操作。 + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + // 处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping("/download/{tableId}") + public void download(HttpServletResponse response, @PathVariable("tableId") Long tableId) throws IOException { + // 根据表 ID 下载代码生成文件的字节数据。 + byte[] data = genTableService.downloadCode(tableId); + // 调用 `genCode` 方法处理文件下载响应。 + genCode(response, data); + } + + /** + * 生成代码 + * + * @param tableId 代码生成表的 ID + * @return 操作结果响应对象 + */ + // 权限检查,只有拥有 `tool:gen:code` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:code") + // 记录操作日志,这里记录的是代码生成相关的代码生成操作。 + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + // 处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping("/genCode/{tableId}") + public R genCode(@PathVariable("tableId") Long tableId) { + // 根据表 ID 生成代码。 + genTableService.generatorCode(tableId); + // 返回操作成功的响应对象。 + return R.ok(); + } + + /** + * 同步数据库表结构 + * + * @param tableId 代码生成表的 ID + * @return 操作结果响应对象 + */ + // 权限检查,只有拥有 `tool:gen:edit` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:edit") + // 记录操作日志,这里记录的是代码生成相关的同步数据库操作。 + @Log(title = "代码生成", businessType = BusinessType.UPDATE) + // 处理 `GET` 请求,路径中的 `{tableId}` 是路径变量,用于传递代码生成表的 ID。 + @GetMapping("/synchDb/{tableId}") + public R synchDb(@PathVariable("tableId") Long tableId) { + // 根据表 ID 同步数据库表结构。 + genTableService.synchDb(tableId); + // 返回操作成功的响应对象。 + return R.ok(); + } + + /** + * 批量生成代码 + * + * @param response 响应对象,用于返回文件流 + * @param tableIdStr 表 ID 字符串,多个表 ID 用逗号分隔 + * @throws IOException 可能抛出的输入输出异常 + */ + // 权限检查,只有拥有 `tool:gen:code` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:code") + // 记录操作日志,这里记录的是代码生成相关的批量代码生成操作。 + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + // 处理 `GET` 请求,路径为 `/tool/gen/batchGenCode`。 + @GetMapping("/batchGenCode") + public void batchGenCode(HttpServletResponse response, String tableIdStr) throws IOException { + // 将表 ID 字符串转换为字符串数组。 + String[] tableIds = Convert.toStrArray(tableIdStr); + // 根据表 ID 数组下载代码生成文件的字节数据。 + byte[] data = genTableService.downloadCode(tableIds); + // 调用 `genCode` 方法处理文件下载响应。 + genCode(response, data); + } + + /** + * 处理代码下载响应 + * + * @param response 响应对象,用于返回文件流 + * @param data 代码生成文件的字节数据 + * @throws IOException 可能抛出的输入输出异常 + */ + private void genCode(HttpServletResponse response, byte[] data) throws IOException { + // 重置响应对象的状态。 + response.reset(); + // 添加跨域请求头,允许所有来源访问。 + response.addHeader("Access-Control-Allow-Origin", "*"); + // 暴露 `Content-Disposition` 头,允许客户端访问。 + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); + // 设置响应头,指定文件下载的文件名。 + response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); + // 添加响应头,指定文件的长度。 + response.addHeader("Content-Length", "" + data.length); + // 设置响应内容类型为二进制流。 + response.setContentType("application/octet-stream; charset=UTF-8"); + // 将字节数据写入响应输出流。 + IoUtil.write(response.getOutputStream(), false, data); + } + + /** + * 获取当前数据源名称列表 + * + * @return 包含数据源名称列表的响应对象 + */ + // 权限检查,只有拥有 `tool:gen:list` 权限的用户才能访问。 + @SaCheckPermission("tool:gen:list") + // 处理 `GET` 请求,路径为 `/tool/gen/getDataNames`。 + @GetMapping(value = "/getDataNames") + public R getCurrentDataSourceNameList() { + // 调用 `DataBaseHelper` 的 `getDataSourceNameList` 方法获取数据源名称列表。 + return R.ok(DataBaseHelper.getDataSourceNameList()); + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java new file mode 100644 index 0000000..65af058 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java @@ -0,0 +1,215 @@ +package org.dromara.generator.domain; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.generator.constant.GenConstants; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 业务表 gen_table + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("gen_table") +public class GenTable extends BaseEntity { + + /** + * 编号 + */ + @TableId(value = "table_id") + private Long tableId; + + /** + * 数据源名称 + */ + @NotBlank(message = "数据源名称不能为空") + private String dataName; + + /** + * 表名称 + */ + @NotBlank(message = "表名称不能为空") + private String tableName; + + /** + * 表描述 + */ + @NotBlank(message = "表描述不能为空") + private String tableComment; + + /** + * 关联父表的表名 + */ + private String subTableName; + + /** + * 本表关联父表的外键名 + */ + private String subTableFkName; + + /** + * 实体类名称(首字母大写) + */ + @NotBlank(message = "实体类名称不能为空") + private String className; + + /** + * 使用的模板(crud单表操作 tree树表操作 sub主子表操作) + */ + private String tplCategory; + + /** + * 生成包路径 + */ + @NotBlank(message = "生成包路径不能为空") + private String packageName; + + /** + * 生成模块名 + */ + @NotBlank(message = "生成模块名不能为空") + private String moduleName; + + /** + * 生成业务名 + */ + @NotBlank(message = "生成业务名不能为空") + private String businessName; + + /** + * 生成功能名 + */ + @NotBlank(message = "生成功能名不能为空") + private String functionName; + + /** + * 生成作者 + */ + @NotBlank(message = "作者不能为空") + private String functionAuthor; + + /** + * 生成代码方式(0zip压缩包 1自定义路径) + */ + private String genType; + + /** + * 生成路径(不填默认项目路径) + */ + @TableField(updateStrategy = FieldStrategy.NOT_EMPTY) + private String genPath; + + /** + * 主键信息 + */ + @TableField(exist = false) + private GenTableColumn pkColumn; + + /** + * 表列信息 + */ + @Valid + @TableField(exist = false) + private List columns; + + /** + * 其它生成选项 + */ + private String options; + + /** + * 备注 + */ + private String remark; + + /** + * 树编码字段 + */ + @TableField(exist = false) + private String treeCode; + + /** + * 树父编码字段 + */ + @TableField(exist = false) + private String treeParentCode; + + /** + * 树名称字段 + */ + @TableField(exist = false) + private String treeName; + + /* + * 菜单id列表 + */ + @TableField(exist = false) + private List menuIds; + + /** + * 上级菜单ID字段 + */ + @TableField(exist = false) + private Long parentMenuId; + + /** + * 上级菜单名称字段 + */ + // @TableField(exist = false) 是 MyBatis-Plus 框架的注解, +// 表示该属性在数据库表中不存在,不会与数据库表中的字段进行映射。 +// 这里定义了一个 String 类型的私有属性 parentMenuName,用于存储父菜单名称, +// 它不对应数据库表中的字段。 + @TableField(exist = false) + private String parentMenuName; + + // 定义一个公共方法 isTree,用于判断当前对象是否属于树类型。 +// 该方法调用了另一个静态的 isTree 方法,并传入当前对象的 tplCategory 属性值。 + public boolean isTree() { + return isTree(this.tplCategory); + } + + // 定义一个静态的公共方法 isTree,用于判断给定的 tplCategory 是否表示树类型。 +// tplCategory 是一个字符串参数,代表模板类别。 +// 该方法通过判断 tplCategory 是否不为 null 且与 GenConstants.TPL_TREE 相等来确定是否为树类型。 + public static boolean isTree(String tplCategory) { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); + } + + // 定义一个公共方法 isCrud,用于判断当前对象是否属于 CRUD 类型。 +// 该方法调用了另一个静态的 isCrud 方法,并传入当前对象的 tplCategory 属性值。 + public boolean isCrud() { + return isCrud(this.tplCategory); + } + + // 定义一个静态的公共方法 isCrud,用于判断给定的 tplCategory 是否表示 CRUD 类型。 +// tplCategory 是一个字符串参数,代表模板类别。 +// 该方法通过判断 tplCategory 是否不为 null 且与 GenConstants.TPL_CRUD 相等来确定是否为 CRUD 类型。 + public static boolean isCrud(String tplCategory) { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); + } + + // 定义一个公共方法 isSuperColumn,用于判断给定的 javaField 是否为超级列。 +// 该方法调用了另一个静态的 isSuperColumn 方法,并传入当前对象的 tplCategory 属性值和 javaField 参数。 + public boolean isSuperColumn(String javaField) { + return isSuperColumn(this.tplCategory, javaField); + } + + // 定义一个静态的公共方法 isSuperColumn,用于判断给定的 tplCategory 和 javaField 是否表示超级列。 +// tplCategory 是一个字符串参数,代表模板类别;javaField 是一个字符串参数,代表 Java 字段名。 +// 该方法通过判断 javaField 是否忽略大小写地等于 GenConstants.BASE_ENTITY 来确定是否为超级列。 + public static boolean isSuperColumn(String tplCategory, String javaField) { + return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java new file mode 100644 index 0000000..040fd04 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java @@ -0,0 +1,276 @@ +package org.dromara.generator.domain; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; + +import jakarta.validation.constraints.NotBlank; + +/** + * 代码生成业务字段表 gen_table_column + * + * @author Lion Li + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("gen_table_column") +public class GenTableColumn extends BaseEntity { + + /** + * 编号 + */ + @TableId(value = "column_id") + private Long columnId; + + /** + * 归属表编号 + */ + private Long tableId; + + /** + * 列名称 + */ + private String columnName; + + /** + * 列描述 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String columnComment; + + /** + * 列类型 + */ + private String columnType; + + /** + * JAVA类型 + */ + private String javaType; + + /** + * JAVA字段名 + */ + @NotBlank(message = "Java属性不能为空") + private String javaField; + + /** + * 是否主键(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isPk; + + /** + * 是否自增(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isIncrement; + + /** + * 是否必填(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isRequired; + + /** + * 是否为插入字段(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isInsert; + + /** + * 是否编辑字段(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isEdit; + + /** + * 是否列表字段(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isList; + + /** + * 是否查询字段(1是) + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) + private String isQuery; + + /** + * 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) + */ + private String queryType; + + /** + * 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件) + */ + private String htmlType; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 排序 + */ + // 定义一个 Integer 类型的私有属性 sort,用于存储排序信息。 +// 具体用途可能是在某些业务逻辑中对相关数据进行排序,这里没有更多上下文,仅作为一个属性存在。 + private Integer sort; + + // 定义一个公共方法 getCapJavaField,用于获取首字母大写的 Java 字段名。 +// 该方法调用了工具类 StringUtils 的 capitalize 方法,将实例的 javaField 属性值的首字母转换为大写后返回。 +// 假设 javaField 是该类的另一个属性,存储着 Java 字段名。 + public String getCapJavaField() { + return StringUtils.capitalize(javaField); + } + + // 定义一个公共方法 isPk,用于判断当前对象的属性是否为主键。 +// 该方法调用了另一个重载的 isPk 方法,并传入当前对象的 isPk 属性值,以进行具体的判断逻辑。 +// 这里存在一定的代码逻辑问题,方法名和属性名相同,可能会造成混淆。 + public boolean isPk() { + return isPk(this.isPk); + } + + // 定义一个重载的公共方法 isPk,用于判断给定的字符串参数 isPk 是否表示主键。 +// 该方法通过判断 isPk 是否不为 null 且等于字符串 "1" 来确定是否为主键,返回相应的布尔值。 + public boolean isPk(String isPk) { + return isPk != null && StringUtils.equals("1", isPk); + } + + // 定义一个公共方法 isIncrement,用于判断当前对象的属性是否为自增属性。 +// 该方法调用了另一个重载的 isIncrement 方法,并传入当前对象的 isIncrement 属性值,以进行具体的判断逻辑。 +// 同样存在方法名和属性名相同的问题,可能导致混淆。 + public boolean isIncrement() { + return isIncrement(this.isIncrement); + } + + // 定义一个重载的公共方法 isIncrement,用于判断给定的字符串参数 isIncrement 是否表示自增属性。 +// 该方法通过判断 isIncrement 是否不为 null 且等于字符串 "1" 来确定是否为自增属性,返回相应的布尔值。 + public boolean isIncrement(String isIncrement) { + return isIncrement != null && StringUtils.equals("1", isIncrement); + } + + // 定义一个公共方法 isRequired,用于判断当前对象的属性是否为必填属性。 +// 该方法调用了另一个重载的 isRequired 方法,并传入当前对象的 isRequired 属性值,以进行具体的判断逻辑。 +// 存在与前面类似的方法名和属性名相同的问题。 + public boolean isRequired() { + return isRequired(this.isRequired); + } + + // 定义一个重载的公共方法 isRequired,用于判断给定的字符串参数 isRequired 是否表示必填属性。 +// 该方法通过判断 isRequired 是否不为 null 且等于字符串 "1" 来确定是否为必填属性,返回相应的布尔值。 + public boolean isRequired(String isRequired) { + return isRequired != null && StringUtils.equals("1", isRequired); + } + + // 定义一个公共方法 isInsert,用于判断当前对象的属性是否可用于插入操作。 +// 该方法调用了另一个重载的 isInsert 方法,并传入当前对象的 isInsert 属性值,以进行具体的判断逻辑。 +// 存在方法名和属性名相同的问题。 + public boolean isInsert() { + return isInsert(this.isInsert); + } + + // 定义一个重载的公共方法 isInsert,用于判断给定的字符串参数 isInsert 是否表示可用于插入操作。 +// 该方法通过判断 isInsert 是否不为 null 且等于字符串 "1" 来确定是否可用于插入操作,返回相应的布尔值。 + public boolean isInsert(String isInsert) { + return isInsert != null && StringUtils.equals("1", isInsert); + } + + // 定义一个公共方法 isEdit,用于判断当前对象的属性是否可用于编辑操作。 +// 该方法调用了另一个重载的 isEdit 方法,并传入当前对象的 isEdit 属性值,以进行具体的判断逻辑。 +// 存在方法名和属性名相同的问题。 + public boolean isEdit() { + return isEdit(this.isEdit); + } + + // 定义一个重载的公共方法 isEdit,用于判断给定的字符串参数 isEdit 是否表示可用于编辑操作。 +// 该方法通过判断 isEdit 是否不为 null 且等于字符串 "1" 来确定是否可用于编辑操作,返回相应的布尔值。 + public boolean isEdit(String isEdit) { + return isEdit != null && StringUtils.equals("1", isEdit); + } + + // 定义一个公共方法 isList,用于判断当前对象的属性是否可用于列表展示操作。 +// 该方法调用了另一个重载的 isList 方法,并传入当前对象的 isList 属性值,以进行具体的判断逻辑。 +// 存在方法名和属性名相同的问题。 + public boolean isList() { + return isList(this.isList); + } + + // 定义一个重载的公共方法 isList,用于判断给定的字符串参数 isList 是否表示可用于列表展示操作。 +// 该方法通过判断 isList 是否不为 null 且等于字符串 "1" 来确定是否可用于列表展示操作,返回相应的布尔值。 + public boolean isList(String isList) { + return isList != null && StringUtils.equals("1", isList); + } + + // 定义一个公共方法 isQuery,用于判断当前对象的属性是否可用于查询操作。 +// 该方法调用了另一个重载的 isQuery 方法,并传入当前对象的 isQuery 属性值,以进行具体的判断逻辑。 +// 存在方法名和属性名相同的问题。 + public boolean isQuery() { + return isQuery(this.isQuery); + } + + // 定义一个重载的公共方法 isQuery,用于判断给定的字符串参数 isQuery 是否表示可用于查询操作。 +// 该方法通过判断 isQuery 是否不为 null 且等于字符串 "1" 来确定是否可用于查询操作,返回相应的布尔值。 + public boolean isQuery(String isQuery) { + return isQuery != null && StringUtils.equals("1", isQuery); + } + + // 定义一个公共方法 isSuperColumn,用于判断当前对象的属性是否为超级列。 +// 该方法调用了另一个静态的 isSuperColumn 方法,并传入当前对象的 javaField 属性值,以进行具体的判断逻辑。 + public boolean isSuperColumn() { + return isSuperColumn(this.javaField); + } + + // 定义一个静态的公共方法 isSuperColumn,用于判断给定的 Java 字段名 javaField 是否为超级列。 +// 该方法通过调用 StringUtils 的 equalsAnyIgnoreCase 方法,判断 javaField 是否忽略大小写地等于指定的一些字段名(来自 BaseEntity 和 TreeEntity 的部分字段),返回相应的布尔值。 + public static boolean isSuperColumn(String javaField) { + return StringUtils.equalsAnyIgnoreCase(javaField, + // BaseEntity + "createBy", "createTime", "updateBy", "updateTime", + // TreeEntity + "parentName", "parentId"); + } + + // 定义一个公共方法 isUsableColumn,用于判断当前对象的属性是否为可用列。 +// 该方法调用了另一个静态的 isUsableColumn 方法,并传入当前对象的 javaField 属性值,以进行具体的判断逻辑。 + public boolean isUsableColumn() { + return isUsableColumn(javaField); + } + + // 定义一个静态的公共方法 isUsableColumn,用于判断给定的 Java 字段名 javaField 是否为可用列。 +// 该方法通过调用 StringUtils 的 equalsAnyIgnoreCase 方法,判断 javaField 是否忽略大小写地等于指定的一些字段名("parentId", "orderNum", "remark"),返回相应的布尔值。 +// 注释中提到这些字段是在生成页面时需要用到且不能忽略的字段,作为白名单存在。 + public static boolean isUsableColumn(String javaField) { + // isSuperColumn()中的名单用于避免生成多余Domain属性,若某些属性在生成页面时需要用到不能忽略,则放在此处白名单 + return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); + } + + // 定义一个公共方法 readConverterExp,用于从列注释中读取转换表达式。 +// 该方法首先使用 StringUtils 的 substringBetween 方法从 columnComment 属性值中提取括号内的内容作为备注 remarks。 +// 然后创建一个 StringBuffer 对象 sb,若 remarks 不为空,则将 remarks 按空格分割后,对每个值进行处理, +// 将值的第一个字符和剩余字符分别提取出来,组成键值对的形式添加到 sb 中,最后删除 sb 末尾的分隔符并返回结果。 +// 若 remarks 为空,则直接返回 columnComment 属性值。 + public String readConverterExp() { + String remarks = StringUtils.substringBetween(this.columnComment, "(", ")"); + StringBuffer sb = new StringBuffer(); + if (StringUtils.isNotEmpty(remarks)) { + for (String value : remarks.split(" ")) { + if (StringUtils.isNotEmpty(value)) { + Object startStr = value.subSequence(0, 1); + String endStr = value.substring(1); + sb.append(StringUtils.EMPTY).append(startStr).append("=").append(endStr).append(StringUtils.SEPARATOR); + } + } + return sb.deleteCharAt(sb.length() - 1).toString(); + } else { + return this.columnComment; + } + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java b/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java new file mode 100644 index 0000000..ed8ed20 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java @@ -0,0 +1,15 @@ +package org.dromara.generator.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.generator.domain.GenTableColumn; + +/** + * 业务字段 数据层 + * + * @author Lion Li + */ +@InterceptorIgnore(dataPermission = "true", tenantLine = "true") +public interface GenTableColumnMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java b/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java new file mode 100644 index 0000000..1798b4b --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java @@ -0,0 +1,51 @@ +package org.dromara.generator.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.generator.domain.GenTable; + +import java.util.List; + +/** + * 业务 数据层 + * + * @author Lion Li + */ +@InterceptorIgnore(dataPermission = "true", tenantLine = "true") +public interface GenTableMapper extends BaseMapperPlus { + + /** + * 查询所有表信息 + * + * @return 表信息集合 + */ + List selectGenTableAll(); + + /** + * 查询表ID业务信息 + * + * @param id 业务ID + * @return 业务信息 + */ + GenTable selectGenTableById(Long id); + + /** + * 查询表名称业务信息 + * + * @param tableName 表名称 + * @return 业务信息 + */ + GenTable selectGenTableByName(String tableName); + + /** + * 查询指定数据源下的所有表名列表 + * + * @param dataName 数据源名称,用于选择不同的数据源 + * @return 当前数据库中的表名列表 + * + * @DS("") 使用默认数据源执行查询操作 + */ + @DS("") + List selectTableNameList(String dataName); +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java new file mode 100644 index 0000000..6ccb2be --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java @@ -0,0 +1,431 @@ +package org.dromara.generator.service; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.anyline.metadata.Column; +import org.anyline.metadata.Table; +import org.anyline.proxy.ServiceProxy; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.file.FileUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.generator.constant.GenConstants; +import org.dromara.generator.domain.GenTable; +import org.dromara.generator.domain.GenTableColumn; +import org.dromara.generator.mapper.GenTableColumnMapper; +import org.dromara.generator.mapper.GenTableMapper; +import org.dromara.generator.util.GenUtils; +import org.dromara.generator.util.VelocityInitializer; +import org.dromara.generator.util.VelocityUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * 业务 服务层实现 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class GenTableServiceImpl implements IGenTableService { + private final GenTableMapper baseMapper; + /** + * + */ + private final GenTableColumnMapper genTableColumnMapper; + private final IdentifierGenerator identifierGenerator; + private static final String[] TABLE_IGNORE = new String[]{"sj_", "flow_", "gen_"}; + @Override + public List selectGenTableColumnListByTableId(Long tableId) { + return genTableColumnMapper.selectList(new LambdaQueryWrapper() + .eq(GenTableColumn::getTableId, tableId) + .orderByAsc(GenTableColumn::getSort)); + } + @Override + public GenTable selectGenTableById(Long id) { + GenTable genTable = baseMapper.selectGenTableById(id); + setTableFromOptions(genTable); + return genTable; + } + @Override + public TableDataInfo selectPageGenTableList(GenTable genTable, PageQuery pageQuery) { + Page page = baseMapper.selectPage(pageQuery.build(), this.buildGenTableQueryWrapper(genTable)); + return TableDataInfo.build(page); + } + private QueryWrapper buildGenTableQueryWrapper(GenTable genTable) { + Map params = genTable.getParams(); + QueryWrapper wrapper = Wrappers.query(); + wrapper + .eq(StringUtils.isNotEmpty(genTable.getDataName()), "data_name", genTable.getDataName()) + .like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName())) + .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment())) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "create_time", params.get("beginTime"), params.get("endTime")) + .orderByDesc("update_time"); + return wrapper; + } + @DS("#genTable.dataName") + @Override + public TableDataInfo selectPageDbTableList(GenTable genTable, PageQuery pageQuery) { + String tableName = genTable.getTableName(); + String tableComment = genTable.getTableComment(); + LinkedHashMap> tablesMap = ServiceProxy.metadata().tables(); + if (CollUtil.isEmpty(tablesMap)) { + return TableDataInfo.build(); + } + List tableNames = baseMapper.selectTableNameList(genTable.getDataName()); + String[] tableArrays; + if (CollUtil.isNotEmpty(tableNames)) { + tableArrays = tableNames.toArray(new String[0]); + } else { + tableArrays = new String[0]; + } + List tables = tablesMap.values().stream() + .filter(x -> !StringUtils.startWithAnyIgnoreCase(x.getName(), TABLE_IGNORE)) + .filter(x -> { + if (CollUtil.isEmpty(tableNames)) { + return true; + } + return !StringUtils.equalsAnyIgnoreCase(x.getName(), tableArrays); + }) + .filter(x -> { + boolean nameMatches = true; + boolean commentMatches = true; + if (StringUtils.isNotBlank(tableName)) { + nameMatches = StringUtils.containsIgnoreCase(x.getName(), tableName); + } + if (StringUtils.isNotBlank(tableComment)) { + commentMatches = StringUtils.containsIgnoreCase(x.getComment(), tableComment); + } + return nameMatches && commentMatches; + }) + .map(x -> { + GenTable gen = new GenTable(); + gen.setTableName(x.getName()); + gen.setTableComment(x.getComment()); + gen.setCreateTime(ObjectUtil.defaultIfNull(x.getCreateTime(), new Date())); + gen.setUpdateTime(x.getUpdateTime()); + return gen; + }).sorted(Comparator.comparing(GenTable::getCreateTime).reversed()) + .toList(); + IPage page = pageQuery.build(); + page.setTotal(tables.size()); + page.setRecords(CollUtil.page((int) page.getCurrent() - 1, (int) page.getSize(), tables)); + return TableDataInfo.build(page); + } + @DS("#dataName") + @Override + public List selectDbTableListByNames(String[] tableNames, String dataName) { + Set tableNameSet = new HashSet<>(List.of(tableNames)); + LinkedHashMap> tablesMap = ServiceProxy.metadata().tables(); + if (CollUtil.isEmpty(tablesMap)) { + return new ArrayList<>(); + } + List> tableList = tablesMap.values().stream() + .filter(x -> !StringUtils.startWithAnyIgnoreCase(x.getName(), TABLE_IGNORE)) + .filter(x -> tableNameSet.contains(x.getName())).toList(); + if (CollUtil.isEmpty(tableList)) { + return new ArrayList<>(); + } + return tableList.stream().map(x -> { + GenTable gen = new GenTable(); + gen.setDataName(dataName); + gen.setTableName(x.getName()); + gen.setTableComment(x.getComment()); + gen.setCreateTime(x.getCreateTime()); + gen.setUpdateTime(x.getUpdateTime()); + return gen; + }).toList(); + } + @Override + public List selectGenTableAll() { + return baseMapper.selectGenTableAll(); + } + @Transactional(rollbackFor = Exception.class) + @Override + public void updateGenTable(GenTable genTable) { + String options = JsonUtils.toJsonString(genTable.getParams()); + genTable.setOptions(options); + int row = baseMapper.updateById(genTable); + if (row > 0) { + for (GenTableColumn cenTableColumn : genTable.getColumns()) { + genTableColumnMapper.updateById(cenTableColumn); + } + } + } + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteGenTableByIds(Long[] tableIds) { + List ids = Arrays.asList(tableIds); + baseMapper.deleteByIds(ids); + genTableColumnMapper.delete(new LambdaQueryWrapper().in(GenTableColumn::getTableId, ids)); + } + @DSTransactional + @Override + public void importGenTable(List tableList, String dataName) { + try { + for (GenTable table : tableList) { + String tableName = table.getTableName(); + GenUtils.initTable(table); + table.setDataName(dataName); + int row = baseMapper.insert(table); + if (row > 0) { + List genTableColumns = SpringUtils.getAopProxy(this).selectDbTableColumnsByName(tableName, dataName); + List saveColumns = new ArrayList<>(); + for (GenTableColumn column : genTableColumns) { + GenUtils.initColumnField(column, table); + saveColumns.add(column); + } + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertBatch(saveColumns); + } + } + } + } catch (Exception e) { + throw new ServiceException("导入失败:" + e.getMessage()); + } + } + @DS("#dataName") + @Override + public List selectDbTableColumnsByName(String tableName, String dataName) { + Table table = ServiceProxy.metadata().table(tableName); + if (ObjectUtil.isNull(table)) { + return new ArrayList<>(); + } + LinkedHashMap columns = table.getColumns(); + List tableColumns = new ArrayList<>(); + columns.forEach((columnName, column) -> { + GenTableColumn tableColumn = new GenTableColumn(); + tableColumn.setIsPk(String.valueOf(column.isPrimaryKey())); + tableColumn.setColumnName(column.getName()); + tableColumn.setColumnComment(column.getComment()); + tableColumn.setColumnType(column.getOriginType().toLowerCase()); + tableColumn.setSort(column.getPosition()); + tableColumn.setIsRequired(column.isNullable() == 0 ? "1" : "0"); + tableColumn.setIsIncrement(column.isAutoIncrement() == -1 ? "0" : "1"); + tableColumns.add(tableColumn); + }); + return tableColumns; + } + @Override + public Map previewCode(Long tableId) { + Map dataMap = new LinkedHashMap<>(); + GenTable table = baseMapper.selectGenTableById(tableId); + List menuIds = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + menuIds.add(identifierGenerator.nextId(null).longValue()); + } + table.setMenuIds(menuIds); + setPkColumn(table); + VelocityInitializer.initVelocity(); + VelocityContext context = VelocityUtils.prepareContext(table); + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + dataMap.put(template, sw.toString()); + } + return dataMap; + } + @Override + public byte[] downloadCode(Long tableId) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + generatorCode(tableId, zip); + IoUtil.close(zip); + return outputStream.toByteArray(); + } + @Override + public void generatorCode(Long tableId) { + GenTable table = baseMapper.selectGenTableById(tableId); + setPkColumn(table); + VelocityInitializer.initVelocity(); + VelocityContext context = VelocityUtils.prepareContext(table); + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + if (!StringUtils.containsAny(template, "sql.vm", "api.ts.vm", "types.ts.vm", "index.vue.vm", "index-tree.vue.vm")) { + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + String path = getGenPath(table, template); + FileUtils.writeUtf8String(sw.toString(), path); + } catch (Exception e) { + throw new ServiceException("渲染模板失败,表名:" + table.getTableName()); + } + } + } + } + @DSTransactional + @Override + public void synchDb(Long tableId) { + GenTable table = baseMapper.selectGenTableById(tableId); + List tableColumns = table.getColumns(); + Map tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName); + List dbTableColumns = SpringUtils.getAopProxy(this).selectDbTableColumnsByName(table.getTableName(), table.getDataName()); + if (CollUtil.isEmpty(dbTableColumns)) { + throw new ServiceException("同步数据失败,原表结构不存在"); + } + List dbTableColumnNames = StreamUtils.toList(dbTableColumns, GenTableColumn::getColumnName); + List saveColumns = new ArrayList<>(); + dbTableColumns.forEach(column -> { + GenUtils.initColumnField(column, table); + if (tableColumnMap.containsKey(column.getColumnName())) { + GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); + column.setColumnId(prevColumn.getColumnId()); + if (column.isList()) { + column.setDictType(prevColumn.getDictType()); + column.setQueryType(prevColumn.getQueryType()); + } + if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() + && (column.isInsert() || column.isEdit()) + && ((column.isUsableColumn()) || (!column.isSuperColumn()))) { + column.setIsRequired(prevColumn.getIsRequired()); + column.setHtmlType(prevColumn.getHtmlType()); + } + } + saveColumns.add(column); + }); + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertOrUpdateBatch(saveColumns); + } + List delColumns = StreamUtils.filter(tableColumns, column -> !dbTableColumnNames.contains(column.getColumnName())); + if (CollUtil.isNotEmpty(delColumns)) { + List ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId); + if (CollUtil.isNotEmpty(ids)) { + genTableColumnMapper.deleteByIds(ids); + } + } + } + @Override + public byte[] downloadCode(String[] tableIds) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for (String tableId : tableIds) { + generatorCode(Long.parseLong(tableId), zip); + } + IoUtil.close(zip); + return outputStream.toByteArray(); + } + private void generatorCode(Long tableId, ZipOutputStream zip) { + GenTable table = baseMapper.selectGenTableById(tableId); + List menuIds = new ArrayList<>(); + for (int i = 0; i < 6; i++) { + menuIds.add(identifierGenerator.nextId(null).longValue()); + } + table.setMenuIds(menuIds); + setPkColumn(table); + VelocityInitializer.initVelocity(); + VelocityContext context = VelocityUtils.prepareContext(table); + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); + IoUtil.write(zip, StandardCharsets.UTF_8, false, sw.toString()); + IoUtil.close(sw); + zip.flush(); + zip.closeEntry(); + } catch (IOException e) { + log.error("渲染模板失败,表名:" + table.getTableName(), e); + } + } + } + @Override + public void validateEdit(GenTable genTable) { + if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { + String options = JsonUtils.toJsonString(genTable.getParams()); + Dict paramsObj = JsonUtils.parseMap(options); + if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_CODE))) { + throw new ServiceException("树编码字段不能为空"); + } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_PARENT_CODE))) { + throw new ServiceException("树父编码字段不能为空"); + } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_NAME))) { + throw new ServiceException("树名称字段不能为空"); + } + } + } + public void setPkColumn(GenTable table) { + for (GenTableColumn column : table.getColumns()) { + if (column.isPk()) { + table.setPkColumn(column); + break; + } + } + if (ObjectUtil.isNull(table.getPkColumn())) { + table.setPkColumn(table.getColumns().get(0)); + } + + } + + /** + * 设置代码生成其他选项值 + * + * @param genTable 设置后的生成对象 + */ + public void setTableFromOptions(GenTable genTable) { + Dict paramsObj = JsonUtils.parseMap(genTable.getOptions()); + if (ObjectUtil.isNotNull(paramsObj)) { + String treeCode = paramsObj.getStr(GenConstants.TREE_CODE); + String treeParentCode = paramsObj.getStr(GenConstants.TREE_PARENT_CODE); + String treeName = paramsObj.getStr(GenConstants.TREE_NAME); + Long parentMenuId = paramsObj.getLong(GenConstants.PARENT_MENU_ID); + String parentMenuName = paramsObj.getStr(GenConstants.PARENT_MENU_NAME); + + genTable.setTreeCode(treeCode); + genTable.setTreeParentCode(treeParentCode); + genTable.setTreeName(treeName); + genTable.setParentMenuId(parentMenuId); + genTable.setParentMenuName(parentMenuName); + } + } + + /** + * 获取代码生成地址 + * + * @param table 业务表信息 + * @param template 模板文件路径 + * @return 生成地址 + */ + public static String getGenPath(GenTable table, String template) { + String genPath = table.getGenPath(); + if (StringUtils.equals(genPath, "/")) { + return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); + } + return genPath + File.separator + VelocityUtils.getFileName(template, table); + } +} + diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java b/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java new file mode 100644 index 0000000..b2c20c5 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java @@ -0,0 +1,141 @@ +package org.dromara.generator.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.generator.domain.GenTable; +import org.dromara.generator.domain.GenTableColumn; + +import java.util.List; +import java.util.Map; + +/** + * 业务 服务层 + * + * @author Lion Li + */ +public interface IGenTableService { + + /** + * 查询业务字段列表 + * + * @param tableId 业务字段编号 + * @return 业务字段集合 + */ + List selectGenTableColumnListByTableId(Long tableId); + + /** + * 查询业务列表 + * + * @param genTable 业务信息 + * @return 业务集合 + */ + TableDataInfo selectPageGenTableList(GenTable genTable, PageQuery pageQuery); + + /** + * 查询据库列表 + * + * @param genTable 业务信息 + * @return 数据库表集合 + */ + TableDataInfo selectPageDbTableList(GenTable genTable, PageQuery pageQuery); + + /** + * 查询据库列表 + * + * @param tableNames 表名称组 + * @param dataName 数据源名称 + * @return 数据库表集合 + */ + List selectDbTableListByNames(String[] tableNames, String dataName); + + /** + * 查询所有表信息 + * + * @return 表信息集合 + */ + List selectGenTableAll(); + + /** + * 查询业务信息 + * + * @param id 业务ID + * @return 业务信息 + */ + GenTable selectGenTableById(Long id); + + /** + * 修改业务 + * + * @param genTable 业务信息 + */ + void updateGenTable(GenTable genTable); + + /** + * 删除业务信息 + * + * @param tableIds 需要删除的表数据ID + */ + void deleteGenTableByIds(Long[] tableIds); + + /** + * 导入表结构 + * + * @param tableList 导入表列表 + * @param dataName 数据源名称 + */ + void importGenTable(List tableList, String dataName); + + /** + * 根据表名称查询列信息 + * + * @param tableName 表名称 + * @param dataName 数据源名称 + * @return 列信息 + */ + List selectDbTableColumnsByName(String tableName, String dataName); + + /** + * 预览代码 + * + * @param tableId 表编号 + * @return 预览数据列表 + */ + Map previewCode(Long tableId); + + /** + * 生成代码(下载方式) + * + * @param tableId 表名称 + * @return 数据 + */ + byte[] downloadCode(Long tableId); + + /** + * 生成代码(自定义路径) + * + * @param tableId 表名称 + */ + void generatorCode(Long tableId); + + /** + * 同步数据库 + * + * @param tableId 表名称 + */ + void synchDb(Long tableId); + + /** + * 批量生成代码(下载方式) + * + * @param tableIds 表ID数组 + * @return 数据 + */ + byte[] downloadCode(String[] tableIds); + + /** + * 修改保存参数校验 + * + * @param genTable 业务信息 + */ + void validateEdit(GenTable genTable); +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/org/dromara/generator/util/GenUtils.java new file mode 100644 index 0000000..39ce122 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/util/GenUtils.java @@ -0,0 +1,268 @@ +package org.dromara.generator.util; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.RegExUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.generator.config.GenConfig; +import org.dromara.generator.constant.GenConstants; +import org.dromara.generator.domain.GenTable; +import org.dromara.generator.domain.GenTableColumn; + +import java.util.Arrays; + +/** + * 代码生成器 工具类 + * + * @author ruoyi + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +// 定义一个公共类 GenUtils,该类包含了一系列用于代码生成的工具方法 +public class GenUtils { + + /** + * 初始化代码生成表的基本信息 + * + * @param genTable 代码生成表对象 + */ + public static void initTable(GenTable genTable) { + // 根据表名转换生成对应的 Java 类名,并设置到 GenTable 对象中 + genTable.setClassName(convertClassName(genTable.getTableName())); + // 从 GenConfig 中获取包名,并设置到 GenTable 对象中 + genTable.setPackageName(GenConfig.getPackageName()); + // 从包名中提取模块名,并设置到 GenTable 对象中 + genTable.setModuleName(getModuleName(GenConfig.getPackageName())); + // 从表名中提取业务名,并设置到 GenTable 对象中 + genTable.setBusinessName(getBusinessName(genTable.getTableName())); + // 对表注释进行文本替换处理,并设置到 GenTable 对象中作为功能名 + genTable.setFunctionName(replaceText(genTable.getTableComment())); + // 从 GenConfig 中获取作者信息,并设置到 GenTable 对象中 + genTable.setFunctionAuthor(GenConfig.getAuthor()); + // 将创建时间和更新时间设置为 null + genTable.setCreateTime(null); + genTable.setUpdateTime(null); + } + + /** + * 初始化代码生成表列的基本信息 + * + * @param column 代码生成表列对象 + * @param table 所属的代码生成表对象 + */ + public static void initColumnField(GenTableColumn column, GenTable table) { + // 从列类型中提取数据库类型 + String dataType = getDbType(column.getColumnType()); + // 将列名转换为小写 + String columnName = column.getColumnName().toLowerCase(); + // 设置列所属的表 ID + column.setTableId(table.getTableId()); + // 将创建时间和更新时间设置为 null + column.setCreateTime(null); + column.setUpdateTime(null); + // 将列名转换为驼峰命名法,并设置为 Java 字段名 + column.setJavaField(StringUtils.toCamelCase(columnName)); + // 默认设置 Java 类型为字符串 + column.setJavaType(GenConstants.TYPE_STRING); + // 默认设置查询类型为相等查询 + column.setQueryType(GenConstants.QUERY_EQ); + + // 如果列类型属于字符串类型或文本类型 + if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) { + // 获取列的长度 + Integer columnLength = getColumnLength(column.getColumnType()); + // 根据列长度或列类型判断 HTML 类型 + String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; + column.setHtmlType(htmlType); + } + // 如果列类型属于时间类型 + else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) { + // 设置 Java 类型为日期类型 + column.setJavaType(GenConstants.TYPE_DATE); + // 设置 HTML 类型为日期时间选择器 + column.setHtmlType(GenConstants.HTML_DATETIME); + } + // 如果列类型属于数字类型 + else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) { + // 设置 HTML 类型为输入框 + column.setHtmlType(GenConstants.HTML_INPUT); + // 设置 Java 类型为长整型 + column.setJavaType(GenConstants.TYPE_LONG); + } + + // 如果列名不在不允许添加的列名列表中,并且不是主键列,则设置为可插入 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_ADD, columnName) && !column.isPk()) { + column.setIsInsert(GenConstants.REQUIRE); + } + // 如果列名不在不允许编辑的列名列表中,则设置为可编辑 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName)) { + column.setIsEdit(GenConstants.REQUIRE); + } + // 如果列名不在不允许列表显示的列名列表中,则设置为可在列表显示 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName)) { + column.setIsList(GenConstants.REQUIRE); + } + // 如果列名不在不允许查询的列名列表中,并且不是主键列,则设置为可查询 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) { + column.setIsQuery(GenConstants.REQUIRE); + } + + // 如果列名以 "name" 结尾,设置查询类型为模糊查询 + if (StringUtils.endsWithIgnoreCase(columnName, "name")) { + column.setQueryType(GenConstants.QUERY_LIKE); + } + // 如果列名以 "status" 结尾,设置 HTML 类型为单选框 + if (StringUtils.endsWithIgnoreCase(columnName, "status")) { + column.setHtmlType(GenConstants.HTML_RADIO); + } + // 如果列名以 "type" 或 "sex" 结尾,设置 HTML 类型为下拉选择框 + else if (StringUtils.endsWithIgnoreCase(columnName, "type") + || StringUtils.endsWithIgnoreCase(columnName, "sex")) { + column.setHtmlType(GenConstants.HTML_SELECT); + } + // 如果列名以 "image" 结尾,设置 HTML 类型为图片上传框 + else if (StringUtils.endsWithIgnoreCase(columnName, "image")) { + column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); + } + // 如果列名以 "file" 结尾,设置 HTML 类型为文件上传框 + else if (StringUtils.endsWithIgnoreCase(columnName, "file")) { + column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); + } + // 如果列名以 "content" 结尾,设置 HTML 类型为富文本编辑器 + else if (StringUtils.endsWithIgnoreCase(columnName, "content")) { + column.setHtmlType(GenConstants.HTML_EDITOR); + } + } + + /** + * 判断数组中是否包含指定的值 + * + * @param arr 数组 + * @param targetValue 目标值 + * @return 如果包含返回 true,否则返回 false + */ + public static boolean arraysContains(String[] arr, String targetValue) { + // 将数组转换为列表,然后使用 contains 方法判断是否包含目标值 + return Arrays.asList(arr).contains(targetValue); + } + + /** + * 从包名中提取模块名 + * + * @param packageName 包名 + * @return 模块名 + */ + public static String getModuleName(String packageName) { + // 获取包名中最后一个点的索引 + int lastIndex = packageName.lastIndexOf("."); + // 获取包名的长度 + int nameLength = packageName.length(); + // 从最后一个点之后的部分作为模块名 + return StringUtils.substring(packageName, lastIndex + 1, nameLength); + } + + /** + * 从表名中提取业务名 + * + * @param tableName 表名 + * @return 业务名 + */ + public static String getBusinessName(String tableName) { + // 获取表名中第一个下划线的索引 + int firstIndex = tableName.indexOf("_"); + // 获取表名的长度 + int nameLength = tableName.length(); + // 从第一个下划线之后的部分作为业务名,并转换为驼峰命名法 + String businessName = StringUtils.substring(tableName, firstIndex + 1, nameLength); + businessName = StringUtils.toCamelCase(businessName); + return businessName; + } + + /** + * 将表名转换为 Java 类名 + * + * @param tableName 表名 + * @return Java 类名 + */ + public static String convertClassName(String tableName) { + // 获取是否自动移除前缀的配置 + boolean autoRemovePre = GenConfig.getAutoRemovePre(); + // 获取表前缀的配置 + String tablePrefix = GenConfig.getTablePrefix(); + // 如果配置了自动移除前缀且表前缀不为空 + if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) { + // 将表前缀按分隔符分割成数组 + String[] searchList = StringUtils.split(tablePrefix, StringUtils.SEPARATOR); + // 替换表名中第一个匹配的前缀 + tableName = replaceFirst(tableName, searchList); + } + // 将表名转换为驼峰命名法 + return StringUtils.convertToCamelCase(tableName); + } + + /** + * 替换字符串中第一个匹配的搜索字符串 + * + * @param replacementm 要替换的字符串 + * @param searchList 搜索字符串数组 + * @return 替换后的字符串 + */ + public static String replaceFirst(String replacementm, String[] searchList) { + String text = replacementm; + // 遍历搜索字符串数组 + for (String searchString : searchList) { + // 如果要替换的字符串以搜索字符串开头 + if (replacementm.startsWith(searchString)) { + // 替换第一个匹配的搜索字符串为空字符串 + text = replacementm.replaceFirst(searchString, StringUtils.EMPTY); + break; + } + } + return text; + } + + /** + * 替换文本中的特定字符 + * + * @param text 要处理的文本 + * @return 处理后的文本 + */ + public static String replaceText(String text) { + // 使用正则表达式替换文本中的 "表" 或 "若依" 为空字符串 + return RegExUtils.replaceAll(text, "(?:表|若依)", ""); + } + + /** + * 从列类型中提取数据库类型 + * + * @param columnType 列类型 + * @return 数据库类型 + */ + public static String getDbType(String columnType) { + // 如果列类型中包含左括号 + if (StringUtils.indexOf(columnType, "(") > 0) { + // 截取左括号之前的部分作为数据库类型 + return StringUtils.substringBefore(columnType, "("); + } else { + // 否则直接返回列类型 + return columnType; + } + } + + /** + * 从列类型中提取列的长度 + * + * @param columnType 列类型 + * @return 列的长度,如果没有则返回 0 + */ + public static Integer getColumnLength(String columnType) { + // 如果列类型中包含左括号 + if (StringUtils.indexOf(columnType, "(") > 0) { + // 截取括号内的部分作为列的长度,并转换为整数 + String length = StringUtils.substringBetween(columnType, "(", ")"); + return Integer.valueOf(length); + } else { + // 否则返回 0 + return 0; + } + } +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java new file mode 100644 index 0000000..09e0121 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java @@ -0,0 +1,35 @@ +package org.dromara.generator.util; + +import org.dromara.common.core.constant.Constants; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.velocity.app.Velocity; + +import java.util.Properties; + +/** + * VelocityEngine工厂 + * + * @author ruoyi + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class VelocityInitializer { + + /** + * 初始化vm方法 + */ + public static void initVelocity() { + Properties p = new Properties(); + try { + // 加载classpath目录下的vm文件 + p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + // 定义字符集 + p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); + // 初始化Velocity引擎,指定配置Properties + Velocity.init(p); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java new file mode 100644 index 0000000..b10a2b6 --- /dev/null +++ b/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java @@ -0,0 +1,466 @@ +package org.dromara.generator.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Dict; +import org.dromara.generator.constant.GenConstants; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.generator.domain.GenTable; +import org.dromara.generator.domain.GenTableColumn; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.velocity.VelocityContext; + +import java.util.*; + +/** + * 模板处理工具类 + * + * @author ruoyi + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +// 定义一个公共类 VelocityUtils,该类是用于 Velocity 模板引擎相关的工具类 +public class VelocityUtils { + + // 定义常量 PROJECT_PATH,表示 Java 项目的主代码路径,值为 "main/java" + private static final String PROJECT_PATH = "main/java"; + // 定义常量 MYBATIS_PATH,表示 MyBatis 映射文件的路径,值为 "main/resources/mapper" + private static final String MYBATIS_PATH = "main/resources/mapper"; + // 定义常量 DEFAULT_PARENT_MENU_ID,表示默认的父菜单 ID,值为 "3" + private static final String DEFAULT_PARENT_MENU_ID = "3"; + + /** + * 准备 Velocity 模板引擎的上下文信息 + * + * @param genTable 代码生成表对象 + * @return Velocity 上下文对象 + */ + public static VelocityContext prepareContext(GenTable genTable) { + // 获取代码生成表的模块名 + String moduleName = genTable.getModuleName(); + // 获取代码生成表的业务名 + String businessName = genTable.getBusinessName(); + // 获取代码生成表的包名 + String packageName = genTable.getPackageName(); + // 获取代码生成表的模板类别 + String tplCategory = genTable.getTplCategory(); + // 获取代码生成表的功能名 + String functionName = genTable.getFunctionName(); + + // 创建一个 Velocity 上下文对象 + VelocityContext velocityContext = new VelocityContext(); + + // 将模板类别放入上下文 + velocityContext.put("tplCategory", genTable.getTplCategory()); + // 将表名放入上下文 + velocityContext.put("tableName", genTable.getTableName()); + // 将功能名放入上下文,如果功能名为空则设置为默认值 "【请填写功能名称】" + velocityContext.put("functionName", StringUtils.isNotEmpty(functionName)? functionName : "【请填写功能名称】"); + // 将类名(首字母大写)放入上下文 + velocityContext.put("ClassName", genTable.getClassName()); + // 将类名(首字母小写)放入上下文 + velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); + // 将模块名放入上下文 + velocityContext.put("moduleName", genTable.getModuleName()); + // 将业务名(首字母大写)放入上下文 + velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); + // 将业务名(原始)放入上下文 + velocityContext.put("businessName", genTable.getBusinessName()); + // 将包名前缀放入上下文 + velocityContext.put("basePackage", getPackagePrefix(packageName)); + // 将包名放入上下文 + velocityContext.put("packageName", packageName); + // 将作者信息放入上下文 + velocityContext.put("author", genTable.getFunctionAuthor()); + // 将当前日期时间放入上下文 + velocityContext.put("datetime", DateUtils.getDate()); + // 将主键列信息放入上下文 + velocityContext.put("pkColumn", genTable.getPkColumn()); + // 将需要导入的类列表放入上下文 + velocityContext.put("importList", getImportList(genTable)); + // 将权限前缀放入上下文 + velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); + // 将列信息列表放入上下文 + velocityContext.put("columns", genTable.getColumns()); + // 将代码生成表对象放入上下文 + velocityContext.put("table", genTable); + // 将字典类型列表放入上下文 + velocityContext.put("dicts", getDicts(genTable)); + + // 设置菜单相关的 Velocity 上下文信息 + setMenuVelocityContext(velocityContext, genTable); + + // 如果模板类别为树类型(TPL_TREE),设置树相关的 Velocity 上下文信息 + if (GenConstants.TPL_TREE.equals(tplCategory)) { + setTreeVelocityContext(velocityContext, genTable); + } + + // 返回准备好的 Velocity 上下文对象 + return velocityContext; + } + + /** + * 设置菜单相关的 Velocity 上下文信息 + * + * @param context Velocity 上下文对象 + * @param genTable 代码生成表对象 + */ + public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { + // 获取代码生成表的选项信息 + String options = genTable.getOptions(); + // 将选项信息解析为 Dict 对象 + Dict paramsObj = JsonUtils.parseMap(options); + // 获取父菜单 ID + String parentMenuId = getParentMenuId(paramsObj); + // 将父菜单 ID 放入上下文 + context.put("parentMenuId", parentMenuId); + } + + /** + * 设置树相关的 Velocity 上下文信息 + * + * @param context Velocity 上下文对象 + * @param genTable 代码生成表对象 + */ + public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { + // 获取代码生成表的选项信息 + String options = genTable.getOptions(); + // 将选项信息解析为 Dict 对象 + Dict paramsObj = JsonUtils.parseMap(options); + + // 获取树编码 + String treeCode = getTreecode(paramsObj); + // 获取树父编码 + String treeParentCode = getTreeParentCode(paramsObj); + // 获取树名称 + String treeName = getTreeName(paramsObj); + + // 将树编码放入上下文 + context.put("treeCode", treeCode); + // 将树父编码放入上下文 + context.put("treeParentCode", treeParentCode); + // 将树名称放入上下文 + context.put("treeName", treeName); + // 将展开列的索引放入上下文 + context.put("expandColumn", getExpandColumn(genTable)); + + // 如果参数对象中包含树父编码,将其放入上下文 + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + context.put("tree_parent_code", paramsObj.get(GenConstants.TREE_PARENT_CODE)); + } + // 如果参数对象中包含树名称,将其放入上下文 + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { + context.put("tree_name", paramsObj.get(GenConstants.TREE_NAME)); + } + } + + /** + * 获取模板文件列表 + * + * @param tplCategory 模板类别 + * @return 模板文件路径列表 + */ + public static List getTemplateList(String tplCategory) { + // 创建一个用于存储模板文件路径的列表 + List templates = new ArrayList<>(); + + // 添加 Java 领域模型模板文件路径 + templates.add("vm/java/domain.java.vm"); + // 添加 Java 值对象模板文件路径 + templates.add("vm/java/vo.java.vm"); + // 添加 Java 业务对象模板文件路径 + templates.add("vm/java/bo.java.vm"); + // 添加 Java MyBatis Mapper 接口模板文件路径 + templates.add("vm/java/mapper.java.vm"); + // 添加 Java 服务接口模板文件路径 + templates.add("vm/java/service.java.vm"); + // 添加 Java 服务实现类模板文件路径 + templates.add("vm/java/serviceImpl.java.vm"); + // 添加 Java 控制器类模板文件路径 + templates.add("vm/java/controller.java.vm"); + // 添加 MyBatis XML 映射文件模板文件路径 + templates.add("vm/xml/mapper.xml.vm"); + + // 根据数据库类型添加相应的 SQL 模板文件路径 + if (DataBaseHelper.isOracle()) { + templates.add("vm/sql/oracle/sql.vm"); + } else if (DataBaseHelper.isPostgerSql()) { + templates.add("vm/sql/postgres/sql.vm"); + } else if (DataBaseHelper.isSqlServer()) { + templates.add("vm/sql/sqlserver/sql.vm"); + } else { + templates.add("vm/sql/sql.vm"); + } + + // 添加 TypeScript API 模板文件路径 + templates.add("vm/ts/api.ts.vm"); + // 添加 TypeScript 类型定义模板文件路径 + templates.add("vm/ts/types.ts.vm"); + + // 根据模板类别添加相应的 Vue 页面模板文件路径 + if (GenConstants.TPL_CRUD.equals(tplCategory)) { + templates.add("vm/vue/index.vue.vm"); + } else if (GenConstants.TPL_TREE.equals(tplCategory)) { + templates.add("vm/vue/index-tree.vue.vm"); + } + + // 返回模板文件路径列表 + return templates; + } + + /** + * 根据模板和代码生成表信息获取生成文件的文件名 + * + * @param template 模板文件路径 + * @param genTable 代码生成表对象 + * @return 生成文件的文件名 + */ + public static String getFileName(String template, GenTable genTable) { + // 初始化文件名 + String fileName = ""; + // 获取代码生成表的包名 + String packageName = genTable.getPackageName(); + // 获取代码生成表的模块名 + String moduleName = genTable.getModuleName(); + // 获取代码生成表的类名 + String className = genTable.getClassName(); + // 获取代码生成表的业务名 + String businessName = genTable.getBusinessName(); + + // 构建 Java 代码路径 + String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); + // 构建 MyBatis 映射文件路径 + String mybatisPath = MYBATIS_PATH + "/" + moduleName; + // 定义 Vue 路径 + String vuePath = "vue"; + + // 根据模板文件路径判断生成文件的文件名 + if (template.contains("domain.java.vm")) { + fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); + } + if (template.contains("vo.java.vm")) { + fileName = StringUtils.format("{}/domain/vo/{}Vo.java", javaPath, className); + } + if (template.contains("bo.java.vm")) { + fileName = StringUtils.format("{}/domain/bo/{}Bo.java", javaPath, className); + } + if (template.contains("mapper.java.vm")) { + fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); + } else if (template.contains("service.java.vm")) { + fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); + } else if (template.contains("serviceImpl.java.vm")) { + fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); + } else if (template.contains("controller.java.vm")) { + fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); + } else if (template.contains("mapper.xml.vm")) { + fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); + } else if (template.contains("sql.vm")) { + fileName = businessName + "Menu.sql"; + } else if (template.contains("api.ts.vm")) { + fileName = StringUtils.format("{}/api/{}/{}/index.ts", vuePath, moduleName, businessName); + } else if (template.contains("types.ts.vm")) { + fileName = StringUtils.format("{}/api/{}/{}/types.ts", vuePath, moduleName, businessName); + } else if (template.contains("index.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + } else if (template.contains("index-tree.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + } + + // 返回生成文件的文件名 + return fileName; + } + + /** + * 获取包名的前缀部分 + * + * @param packageName 包名 + * @return 包名前缀 + */ + public static String getPackagePrefix(String packageName) { + // 获取包名中最后一个点的索引 + int lastIndex = packageName.lastIndexOf("."); + // 截取包名从开始到最后一个点的部分作为前缀 + return StringUtils.substring(packageName, 0, lastIndex); + } + + /** + * 获取需要导入的类列表 + * + * @param genTable 代码生成表对象 + * @return 需要导入的类的 HashSet 集合 + */ + public static HashSet getImportList(GenTable genTable) { + // 获取代码生成表的列信息列表 + List columns = genTable.getColumns(); + // 创建一个用于存储需要导入的类的 HashSet 集合 + HashSet importList = new HashSet<>(); + + // 遍历列信息列表,根据列的类型和 HTML 类型添加需要导入的类 + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) { + importList.add("java.util.Date"); + importList.add("com.fasterxml.jackson.annotation.JsonFormat"); + } else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) { + importList.add("java.math.BigDecimal"); + } else if (!column.isSuperColumn() && "imageUpload".equals(column.getHtmlType())) { + importList.add("org.dromara.common.translation.annotation.Translation"); + importList.add("org.dromara.common.translation.constant.TransConstant"); + } + } + + // 返回需要导入的类的 HashSet 集合 + return importList; + } + + /** + * 获取字典类型列表字符串 + * + * @param genTable 代码生成表对象 + * @return 字典类型列表字符串,以逗号分隔 + */ + public static String getDicts(GenTable genTable) { + // 获取代码生成表的列信息列表 + List columns = genTable.getColumns(); + // 创建一个用于存储字典类型的 Set 集合 + Set dicts = new HashSet<>(); + // 添加字典类型到集合中 + addDicts(dicts, columns); + // 将字典类型集合转换为字符串,以逗号分隔 + return StringUtils.join(dicts, ", "); + } + + /** + * 向字典类型集合中添加字典类型 + * + * @param dicts 字典类型集合 + * @param columns 代码生成表的列信息列表 + */ + public static void addDicts(Set dicts, List columns) { + // 遍历列信息列表,根据列的条件添加字典类型到集合中 + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( + column.getHtmlType(), + new String[] { GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX })) { + dicts.add("'" + column.getDictType() + "'"); + } + } + } + + /** + * 获取权限前缀 + * + * @param moduleName 模块名 + * @param businessName 业务名 + * @return 权限前缀字符串 + */ + public static String getPermissionPrefix(String moduleName, String businessName) { + // 格式化模块名和业务名,生成权限前缀字符串 + return StringUtils.format("{}:{}", moduleName, businessName); + } + + /** + * 获取父菜单 ID + * + * @param paramsObj 参数对象 + * @return 父菜单 ID 字符串 + */ + public static String getParentMenuId(Dict paramsObj) { + // 如果参数对象不为空,且包含父菜单 ID 且父菜单 ID 不为空 + if (CollUtil.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) + && StringUtils.isNotEmpty(paramsObj.getStr(GenConstants.PARENT_MENU_ID))) { + // 返回参数对象中的父菜单 ID + return paramsObj.getStr(GenConstants.PARENT_MENU_ID); + } + // 否则返回默认的父菜单 ID + return DEFAULT_PARENT_MENU_ID; + } + + /** + * 获取树编码 + * + * @param paramsObj 参数对象 + * @return 树编码字符串 + */ + public static String getTreecode(Map paramsObj) { + // 如果参数对象不为空,且包含树编码 + if (CollUtil.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_CODE)) { + // 将树编码转换为驼峰命名法并返回 + return StringUtils.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_CODE))); + } + // 否则返回空字符串 + return StringUtils.EMPTY; + } + + /** + * 获取树父编码 + * + * @param paramsObj 参数对象 + * @return 树父编码字符串 + */ + public static String getTreeParentCode(Dict paramsObj) { + // 如果参数对象不为空,且包含树父编码 + if (CollUtil.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + // 将树父编码转换为驼峰命名法并返回 + return StringUtils.toCamelCase(paramsObj.getStr(GenConstants.TREE_PARENT_CODE)); + } + // 否则返回空字符串 + return StringUtils.EMPTY; + } + + /** + * 获取树名称 + * + * @param paramsObj 参数对象 + * @return 树 + /** + * 获取树名称 + * + * @param paramsObj 参数对象 + * @return 树名称字符串 + */ + public static String getTreeName(Dict paramsObj) { + // 如果参数对象不为空,且包含树名称 + if (CollUtil.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_NAME)) { + // 将树名称转换为驼峰命名法并返回 + return StringUtils.toCamelCase(paramsObj.getStr(GenConstants.TREE_NAME)); + } + // 否则返回空字符串 + return StringUtils.EMPTY; + } + + /** + * 获取展开列的索引 + * + * @param genTable 代码生成表对象 + * @return 展开列的索引值 + */ + public static int getExpandColumn(GenTable genTable) { + // 获取代码生成表的选项信息 + String options = genTable.getOptions(); + // 将选项信息解析为 Dict 对象 + Dict paramsObj = JsonUtils.parseMap(options); + // 从参数对象中获取树名称 + String treeName = paramsObj.getStr(GenConstants.TREE_NAME); + // 初始化索引值为 0 + int num = 0; + // 遍历代码生成表的列信息列表 + for (GenTableColumn column : genTable.getColumns()) { + // 如果列在列表中显示 + if (column.isList()) { + // 索引值加 1 + num++; + // 获取列名 + String columnName = column.getColumnName(); + // 如果列名与树名称相等,跳出循环 + if (columnName.equals(treeName)) { + break; + } + } + } + // 返回展开列的索引值 + return num; + } +} diff --git a/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-generator/src/main/resources/generator.yml new file mode 100644 index 0000000..d779d97 --- /dev/null +++ b/ruoyi-generator/src/main/resources/generator.yml @@ -0,0 +1,10 @@ +# 代码生成 +gen: + # 作者 + author: Lion Li + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: org.dromara.system + # 自动去除表前缀,默认是false + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: sys_ diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml new file mode 100644 index 0000000..fc1c610 --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml new file mode 100644 index 0000000..78aa852 --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, + c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort + FROM gen_table t + LEFT JOIN gen_table_column c ON t.table_id = c.table_id + + + + + + + + + + diff --git a/ruoyi-generator/src/main/resources/mapper/package-info.md b/ruoyi-generator/src/main/resources/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/java/bo.java.vm b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm new file mode 100644 index 0000000..511d37c --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/bo.java.vm @@ -0,0 +1,50 @@ +package ${packageName}.domain.bo; + +import ${packageName}.domain.${ClassName}; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +#foreach ($import in $importList) +import ${import}; +#end + +/** + * ${functionName}业务对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ${ClassName}.class, reverseConvertGenerate = false) +public class ${ClassName}Bo extends BaseEntity { + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField) && ($column.query || $column.insert || $column.edit)) + /** + * $column.columnComment + */ +#if($column.insert && $column.edit) +#set($Group="AddGroup.class, EditGroup.class") +#elseif($column.insert) +#set($Group="AddGroup.class") +#elseif($column.edit) +#set($Group="EditGroup.class") +#end +#if($column.required) +#if($column.javaType == 'String') + @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) +#else + @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) +#end +#end + private $column.javaType $column.javaField; + +#end +#end + +} diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm new file mode 100644 index 0000000..6438971 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -0,0 +1,115 @@ +package ${packageName}.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.bo.${ClassName}Bo; +import ${packageName}.service.I${ClassName}Service; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +#elseif($table.tree) +#end + +/** + * ${functionName} + * + * @author ${author} + * @date ${datetime} + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/${moduleName}/${businessName}") +public class ${ClassName}Controller extends BaseController { + + private final I${ClassName}Service ${className}Service; + + /** + * 查询${functionName}列表 + */ + @SaCheckPermission("${permissionPrefix}:list") + @GetMapping("/list") +#if($table.crud) + public TableDataInfo<${ClassName}Vo> list(${ClassName}Bo bo, PageQuery pageQuery) { + return ${className}Service.queryPageList(bo, pageQuery); + } +#elseif($table.tree) + public R> list(${ClassName}Bo bo) { + List<${ClassName}Vo> list = ${className}Service.queryList(bo); + return R.ok(list); + } +#end + + /** + * 导出${functionName}列表 + */ + @SaCheckPermission("${permissionPrefix}:export") + @Log(title = "${functionName}", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(${ClassName}Bo bo, HttpServletResponse response) { + List<${ClassName}Vo> list = ${className}Service.queryList(bo); + ExcelUtil.exportExcel(list, "${functionName}", ${ClassName}Vo.class, response); + } + + /** + * 获取${functionName}详细信息 + * + * @param ${pkColumn.javaField} 主键 + */ + @SaCheckPermission("${permissionPrefix}:query") + @GetMapping("/{${pkColumn.javaField}}") + public R<${ClassName}Vo> getInfo(@NotNull(message = "主键不能为空") + @PathVariable ${pkColumn.javaType} ${pkColumn.javaField}) { + return R.ok(${className}Service.queryById(${pkColumn.javaField})); + } + + /** + * 新增${functionName} + */ + @SaCheckPermission("${permissionPrefix}:add") + @Log(title = "${functionName}", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) { + return toAjax(${className}Service.insertByBo(bo)); + } + + /** + * 修改${functionName} + */ + @SaCheckPermission("${permissionPrefix}:edit") + @Log(title = "${functionName}", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) { + return toAjax(${className}Service.updateByBo(bo)); + } + + /** + * 删除${functionName} + * + * @param ${pkColumn.javaField}s 主键串 + */ + @SaCheckPermission("${permissionPrefix}:remove") + @Log(title = "${functionName}", businessType = BusinessType.DELETE) + @DeleteMapping("/{${pkColumn.javaField}s}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { + return toAjax(${className}Service.deleteWithValidByIds(List.of(${pkColumn.javaField}s), true)); + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm new file mode 100644 index 0000000..205fb73 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -0,0 +1,60 @@ +package ${packageName}.domain; + +#foreach ($column in $columns) +#if($column.javaField=='tenantId') +#set($IsTenant=1) +#end +#end +#if($IsTenant==1) +import org.dromara.common.tenant.core.TenantEntity; +#else +import org.dromara.common.mybatis.core.domain.BaseEntity; +#end +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +#foreach ($import in $importList) +import ${import}; +#end + +import java.io.Serial; + +/** + * ${functionName}对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +#if($IsTenant==1) +#set($Entity="TenantEntity") +#else +#set($Entity="BaseEntity") +#end +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("${tableName}") +public class ${ClassName} extends ${Entity} { + + @Serial + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + /** + * $column.columnComment + */ +#if($column.javaField=='delFlag') + @TableLogic +#end +#if($column.javaField=='version') + @Version +#end +#if($column.isPk==1) + @TableId(value = "$column.columnName") +#end + private $column.javaType $column.javaField; + +#end +#end + +} diff --git a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm new file mode 100644 index 0000000..0922401 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm @@ -0,0 +1,15 @@ +package ${packageName}.mapper; + +import ${packageName}.domain.${ClassName}; +import ${packageName}.domain.vo.${ClassName}Vo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * ${functionName}Mapper接口 + * + * @author ${author} + * @date ${datetime} + */ +public interface ${ClassName}Mapper extends BaseMapperPlus<${ClassName}, ${ClassName}Vo> { + +} diff --git a/ruoyi-generator/src/main/resources/vm/java/service.java.vm b/ruoyi-generator/src/main/resources/vm/java/service.java.vm new file mode 100644 index 0000000..4db9030 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/service.java.vm @@ -0,0 +1,72 @@ +package ${packageName}.service; + +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.bo.${ClassName}Bo; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +#end + +import java.util.Collection; +import java.util.List; + +/** + * ${functionName}Service接口 + * + * @author ${author} + * @date ${datetime} + */ +public interface I${ClassName}Service { + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} + */ + ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}); + +#if($table.crud) + /** + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 + */ + TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery); +#end + + /** + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 + */ + List<${ClassName}Vo> queryList(${ClassName}Bo bo); + + /** + * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 + */ + Boolean insertByBo(${ClassName}Bo bo); + + /** + * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 + */ + Boolean updateByBo(${ClassName}Bo bo); + + /** + * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid); +} diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm new file mode 100644 index 0000000..48cc8b1 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -0,0 +1,158 @@ +package ${packageName}.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +#end +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import ${packageName}.domain.bo.${ClassName}Bo; +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.${ClassName}; +import ${packageName}.mapper.${ClassName}Mapper; +import ${packageName}.service.I${ClassName}Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * ${functionName}Service业务层处理 + * + * @author ${author} + * @date ${datetime} + */ +@RequiredArgsConstructor +@Service +public class ${ClassName}ServiceImpl implements I${ClassName}Service { + + private final ${ClassName}Mapper baseMapper; + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} + */ + @Override + public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){ + return baseMapper.selectVoById(${pkColumn.javaField}); + } + +#if($table.crud) + /** + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 + */ + @Override + public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { + LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); + Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } +#end + + /** + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 + */ + @Override + public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { + LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery(); +#foreach($column in $columns) +#if($column.query) +#set($queryType=$column.queryType) +#set($javaField=$column.javaField) +#set($javaType=$column.javaType) +#set($columnName=$column.columnName) +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#set($mpMethod=$column.queryType.toLowerCase()) +#if($queryType != 'BETWEEN') +#if($javaType == 'String') +#set($condition='StringUtils.isNotBlank(bo.get'+$AttrName+'())') +#else +#set($condition='bo.get'+$AttrName+'() != null') +#end + lqw.$mpMethod($condition, ${ClassName}::get$AttrName, bo.get$AttrName()); +#else + lqw.between(params.get("begin$AttrName") != null && params.get("end$AttrName") != null, + ${ClassName}::get$AttrName ,params.get("begin$AttrName"), params.get("end$AttrName")); +#end +#end +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#if($column.isPk==1) + lqw.orderByAsc(${ClassName}::get$AttrName); +#end +#end + return lqw; + } + + /** + * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(${ClassName}Bo bo) { + ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; +#set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)}) + if (flag) { + bo.set$pk(add.get$pk()); + } + return flag; + } + + /** + * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(${ClassName}Bo bo) { + ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(${ClassName} entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm new file mode 100644 index 0000000..5591f97 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -0,0 +1,66 @@ +package ${packageName}.domain.vo; + +#foreach ($import in $importList) +import ${import}; +#end +import ${packageName}.domain.${ClassName}; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * ${functionName}视图对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ${ClassName}.class) +public class ${ClassName}Vo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if($column.list) + /** + * $column.columnComment + */ +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#if(${column.dictType} && ${column.dictType} != '') + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "${column.dictType}") +#elseif($parentheseIndex != -1) + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") +#else + @ExcelProperty(value = "${comment}") +#end + private $column.javaType $column.javaField; + +#if($column.htmlType == "imageUpload") + /** + * ${column.columnComment}Url + */ + @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "${column.javaField}") + private String ${column.javaField}Url; +#end +#end +#end + +} diff --git a/ruoyi-generator/src/main/resources/vm/sql/oracle/sql.vm b/ruoyi-generator/src/main/resources/vm/sql/oracle/sql.vm new file mode 100644 index 0000000..f6638be --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/sql/oracle/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, sysdate, null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, sysdate, null, null, ''); diff --git a/ruoyi-generator/src/main/resources/vm/sql/postgres/sql.vm b/ruoyi-generator/src/main/resources/vm/sql/postgres/sql.vm new file mode 100644 index 0000000..0923392 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/sql/postgres/sql.vm @@ -0,0 +1,20 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, now(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, now(), null, null, ''); + diff --git a/ruoyi-generator/src/main/resources/vm/sql/sql.vm b/ruoyi-generator/src/main/resources/vm/sql/sql.vm new file mode 100644 index 0000000..01824c2 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/sql/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, sysdate(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, sysdate(), null, null, ''); diff --git a/ruoyi-generator/src/main/resources/vm/sql/sqlserver/sql.vm b/ruoyi-generator/src/main/resources/vm/sql/sqlserver/sql.vm new file mode 100644 index 0000000..bdf166e --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/sql/sqlserver/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, getdate(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, getdate(), null, null, ''); diff --git a/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm b/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm new file mode 100644 index 0000000..3aa4a5f --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ${BusinessName}VO, ${BusinessName}Form, ${BusinessName}Query } from '@/api/${moduleName}/${businessName}/types'; + +/** + * 查询${functionName}列表 + * @param query + * @returns {*} + */ + +export const list${BusinessName} = (query?: ${BusinessName}Query): AxiosPromise<${BusinessName}VO[]> => { + return request({ + url: '/${moduleName}/${businessName}/list', + method: 'get', + params: query + }); +}; + +/** + * 查询${functionName}详细 + * @param ${pkColumn.javaField} + */ +export const get${BusinessName} = (${pkColumn.javaField}: string | number): AxiosPromise<${BusinessName}VO> => { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'get' + }); +}; + +/** + * 新增${functionName} + * @param data + */ +export const add${BusinessName} = (data: ${BusinessName}Form) => { + return request({ + url: '/${moduleName}/${businessName}', + method: 'post', + data: data + }); +}; + +/** + * 修改${functionName} + * @param data + */ +export const update${BusinessName} = (data: ${BusinessName}Form) => { + return request({ + url: '/${moduleName}/${businessName}', + method: 'put', + data: data + }); +}; + +/** + * 删除${functionName} + * @param ${pkColumn.javaField} + */ +export const del${BusinessName} = (${pkColumn.javaField}: string | number | Array) => { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'delete' + }); +}; diff --git a/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm b/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm new file mode 100644 index 0000000..35a468e --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm @@ -0,0 +1,64 @@ +export interface ${BusinessName}VO { +#foreach ($column in $columns) +#if($column.list) + /** + * $column.columnComment + */ + $column.javaField:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#if($column.htmlType == "imageUpload") + /** + * ${column.columnComment}Url + */ + ${column.javaField}Url: string; +#end +#end +#end +#if ($table.tree) + /** + * 子对象 + */ + children: ${BusinessName}VO[]; +#end +} + +export interface ${BusinessName}Form extends BaseEntity { +#foreach ($column in $columns) +#if($column.insert || $column.edit) + /** + * $column.columnComment + */ + $column.javaField?:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#end +#end +} + +export interface ${BusinessName}Query #if(!${treeCode})extends PageQuery #end{ + +#foreach ($column in $columns) +#if($column.query) + /** + * $column.columnComment + */ + $column.javaField?:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#end +#end + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm new file mode 100644 index 0000000..caf3472 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -0,0 +1,498 @@ + + + diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm new file mode 100644 index 0000000..a92d19a --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -0,0 +1,459 @@ + + + diff --git a/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm new file mode 100644 index 0000000..9fb48d9 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-generator/target/classes/META-INF/spring-configuration-metadata.json b/ruoyi-generator/target/classes/META-INF/spring-configuration-metadata.json new file mode 100644 index 0000000..113930a --- /dev/null +++ b/ruoyi-generator/target/classes/META-INF/spring-configuration-metadata.json @@ -0,0 +1,11 @@ +{ + "groups": [ + { + "name": "gen", + "type": "org.dromara.generator.config.GenConfig", + "sourceType": "org.dromara.generator.config.GenConfig" + } + ], + "properties": [], + "hints": [] +} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/generator.yml b/ruoyi-generator/target/classes/generator.yml new file mode 100644 index 0000000..d779d97 --- /dev/null +++ b/ruoyi-generator/target/classes/generator.yml @@ -0,0 +1,10 @@ +# 代码生成 +gen: + # 作者 + author: Lion Li + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: org.dromara.system + # 自动去除表前缀,默认是false + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: sys_ diff --git a/ruoyi-generator/target/classes/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/target/classes/mapper/generator/GenTableColumnMapper.xml new file mode 100644 index 0000000..fc1c610 --- /dev/null +++ b/ruoyi-generator/target/classes/mapper/generator/GenTableColumnMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/ruoyi-generator/target/classes/mapper/generator/GenTableMapper.xml b/ruoyi-generator/target/classes/mapper/generator/GenTableMapper.xml new file mode 100644 index 0000000..78aa852 --- /dev/null +++ b/ruoyi-generator/target/classes/mapper/generator/GenTableMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, + c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort + FROM gen_table t + LEFT JOIN gen_table_column c ON t.table_id = c.table_id + + + + + + + + + + diff --git a/ruoyi-generator/target/classes/mapper/package-info.md b/ruoyi-generator/target/classes/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-generator/target/classes/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig.class b/ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..9f49bc67a75210c8c4c584bb8b44aa8d4816e734 GIT binary patch literal 1678 zcma)6%Tg0T6uq4XArK%Upa?2RgoM|ig1iI^DZvF|3NQ;?btauKkW8m$I!KE0k6frM zta9N8_)(UpCm{(*sB)3%zVCC-y`4XQfBhz+4O;6WANfNRh)|F^7)4L{IXCj$&KV!l zr@~Z>I$l|}r8XJ)5Yt_XEggwdpQaz@6H1@3SoCv4$xB^|?*cGk)nyTab~ zZb-sQ>O?w>`uFM;4wYlsxpkehH$r_nVRw<6XFMnNc|mCXoe1^QT}C~Kmj|LC&qdM^ zjM%ZZ4n}Cmi&8wD*M_Wh!6>jTGjQqKvuv?nDx`&Tq|LgvG_LV7%2Mkpk841t`fRL0v&8;Q++&LCIEDL8L6#0>UlZ zmWnG&+OREp0NtXdEUQC4OXti;3vRncmYblxZ17ruk>dH10NCKUz5r3|vND1%jC#>P zvd%LUfO}IByKEQ)LZX$P8%Kb3IEJCpX`>+!Klb|bD%K6v!XE9{qtb%&pKk*4>9E8=$a$dbox4i}6mp5bwlW@J<9#2O&Qs11G~7oc>Ad zJ1#!DkFPcpMQIq{NX3C3&T3lw1we61z^93!=vO#5GPDY5nr50A8o8oqGoVcXdVLEZJ>43h z{#HP<05sQ*p@C+G-XPC>TZRUj0qp|NyITP1HLC#{Y6WCq$O};W=$SXoF);8P@(V;Q Ty0ir9eKhfjm`lsF;?n9r#w1P5 literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig__Javadoc.json new file mode 100644 index 0000000..9037e15 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/config/GenConfig__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 读取代码生成相关配置\n\n @author ruoyi\n","fields":[{"name":"author","doc":" 作者\n"},{"name":"packageName","doc":" 生成包路径\n"},{"name":"autoRemovePre","doc":" 自动去除表前缀,默认是false\n"},{"name":"tablePrefix","doc":" 表前缀(类名不会包含表前缀)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor.class b/ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor.class new file mode 100644 index 0000000000000000000000000000000000000000..b7243a7b9040ca8f32f7b72d130a20320b6e4834 GIT binary patch literal 4220 zcmbVPX?GLX8Gf!Mdt`YM6F~s6g}ugLCJ7LzL1F{i0f!Zi@=g8^PFjvO}l6uAD@zWU!Y~bWn2CMfmp}3F%1cU z`+`k1-zpn@rZ+iYR+G>WYegG$4fp7{7wrOj9Jgo`T&H5Xrcso(bWPuJjl5$|SVd!C z`jF{c-eJ=>N1U3Qmje#9IIciqLYjWfm7YL*|Ewlz$+qG?q%@@54QDqmjk`6;2h zfwePW%|v+I^yJJk1@6bA8V=}qOhqbP7pM+5?qrHl?1|xib)s9xA+>!ur)D+|xlW;$ z_XkPFB)V`|M~~Xl<~#k)dFke;HG#*;@bw8C5rEosOh-Qk1TvCQWxl zo~=ncFS8ASn={`SzK9AbR*mC2hVX>Iii%m1L@;mqCoO-HBhNQ&pOM(ts46lU5Ag!u3(rS*Vup~9w8_hI|il!8$PU`pso+S2`Hyi0u*R(w|;D}ik*csV6 zH`Jkyh15Bv#6G3tllTM!!=mN;jLtX-FLtiVewtnx1DCWg8}8X_(Sc0zF(Z|C~UxbX`?zJ3ly3 zqm!<4UKP{qwy`$Ya5PkPoK@;JE1@&BS7oK))@hvSgh$K-Sp9()Zo9p`YK z%$aXdFXQ33(*mvZB6Ln*OQUhQvgvs&DDzLUpzv7N0&A2>Go_Tnc|B%zWZ)6|oaI?` zu-mpBpACr|R!Enf%D7W99uK>gEM#ffh*h+M#>CbZk~wHO>`VI>a(m&-0m_KyoB}hk zy`K$huvQtDZq%w6+q_vGGhIue9ZkmlNsHF(4SfE{jg;!NsFMoxcLYN27O%TxR+P8& zqrw^}usZZ|(dtLm)?AV=wGaswDuQr-!$O_)G&+`7wL4m!my}#BNrt}5llbP7YfMG>xh_WzIVDc-jB=Xre!?sv&BNqQ}Hd0P8^ z7qp$qewNfIgT@xgpUy>*_h_wj{OPJ>+pSa`TiQNxUvkKCe9w2yYUrrf-h!8sxPq%1 zeycjo?^tYt-We1~%Rc9nq!Ch)g_q5zUOZlGEEv(oP-vfN7s}Gx-0wK0TD6hp5vLo- zIOpIf&0S>sQw{qUX+e>QoLMf9Sia0A@CQ;?oDsZ~9^nPW4XT;+H2jHWZh>=)*{tE3 zz`76K%5obzhz;x>O%S-i-&LxKaQtbu?iM~j!)Hoe(K-Gs$4&Sg@BZuw!RqHZGmIGD zft8&%Av*sG?a7;H{R@)K*Rdpa9m`({PCdilo88Wdeua7ARabn`73d}z0^MTAhpEuDO$>l!i1U>eV}MXRU!yY)OS2hTfnMZL$MFg#7ffSts~AchYT(}#%U!$fo! ze|KXq_E5rJbYmZm@^U)Dw=%Mn`53-|gOs`-KjL4x%Y1*0?|1n8C!hc3Me=R*2C=9T z@1vCeReTKzO4y38<5{%wTsvialXDsT65qnN`9E$GZsIwvw$PHl;XC*)W898^;CuK! zePYz2h^o;Ks9iDT9sH28n)rE}aekJby};QV;_q=oLPMJdTSJqEE)8i7KMn?uKxjBU zrQzbc{7**B7vH0Rc;jvg`3b+RP1FSHP&|5WhDWqWu@=}8vS^iJ(O{S25UCV!NF#@? zZNH6*z%_0R0S`$#M1nrSL>Oj*j1cg#0I1y*nBt0ZJI-e+a66`y)ZN}vcY90ZwsMwC zS+~&GpWv4y+*r4AV}q4T5c@CIg+Vwd{zFak@J-<7^*XR2h%MnywcUby9Z##o7XfKiAz^`_ leZSzdiRAeepKA8keEx>t1jm>8{XLXFNsj)AKjRgo{|6|IZmj?S literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor__Javadoc.json new file mode 100644 index 0000000..3d8fbed --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/config/MyBatisDataSourceMonitor__Javadoc.json @@ -0,0 +1 @@ +{"doc":" anyline 适配 动态数据源改造\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"feature","paramTypes":["org.anyline.data.runtime.DataRuntime","java.lang.Object"],"doc":" 数据源特征 用来定准 adapter 包含数据库或JDBC协议关键字
\n 一般会通过 产品名_url 合成 如果返回null 上层方法会通过driver_产品名_url合成\n\n @param datasource 数据源\n @return String 返回null由上层自动提取\n"},{"name":"key","paramTypes":["org.anyline.data.runtime.DataRuntime","java.lang.Object"],"doc":" 数据源唯一标识 如果不实现则默认feature\n @param datasource 数据源\n @return String 返回null由上层自动提取\n"},{"name":"keepAdapter","paramTypes":["org.anyline.data.runtime.DataRuntime","java.lang.Object"],"doc":" ConfigTable.KEEP_ADAPTER=2 : 根据当前接口判断是否保持同一个数据源绑定同一个adapter
\n DynamicRoutingDataSource类型的返回false,因为同一个DynamicRoutingDataSource可能对应多类数据库, 如果项目中只有一种数据库 应该直接返回true\n\n @param datasource 数据源\n @return boolean\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants.class b/ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..e7d1c0147673cea250329a4e26aaf199ce141209 GIT binary patch literal 3209 zcmb7Gcbpr=6@Gg@pXSc8Ew7JaNJ1y{17irm6zin*d9li!v;vDJR??olwzLv^(!~Z6 zdhfm0&=Pv@y^~N9dWTRFNT&n{`Q?}I&D`1>!$175a8*uRSp2c!`Pem`2kQ*;FB&v5Lb+DR1R8nz>hM)dc1WS_{j!U2l2YS%xTofWX!0 zM;i4toT}StD7-H0>P@ev(E1wnlwHsEmkZhuAtQkRZVVUYdb2EO6HZy#Z-$}UuxpN> zEif!&Ih(WFDoO*K+VoJcma)hZv<=p)+HI%pHbB~z zi{Ko3r^aAU@XIb%*;{TvP5Rmw6&T#$eB8Ew~NFJ~A!4wE(seRHNxR zI3VLVN|GiqmvUK@mUAg*gtk3XNDmr0K?h=y3ZiH`rK;0HPCtj^iHS129lTPnPQ;;n zQk;5ev~J@@9uDhHi?_4H);( z8>LLvD#epYR-Y85lUY4;6}6ExE!LkJrPIDkpEC27pffb;a;t*QLe+c+w|FUY&WX~w z%;{gn=SacG6$PD-;;HPDvKkj6TZIRa-o-1lmb@L8LaWkc?JuEKNNKNtR;6poY_E#a z)x7kS!Fb*%85zs8iV^zt|8=@-d5KfOW(sRKRZ8RvNfhVXeFS$bXg#~z^$t$i4LC~` zzk`D(nO4rgMY$Q1ZQpTFcAh9DvPsO|#$jPL(X2uflbYdp4)IJF+=&ay2E(@Rcx`2- z9PkDSx@W>c#%{pDvtud^`l=N+ac|Z-JFgmCVd= z0lW7ow=l2OK`o}rdG1q)GA`%|ULXAvYuKo!)aH$pkpS&!c}427hRR@Ut)ogSU8wnBrP;z;^d>7#kG4KaiZPhL4m8_(J(VZg5H8gy?3ai)R-B| z7~;G7E-sU)dJ}IcKQ*Z=bKb{Br|?MZElGaSX5<%lUVa}A`F#Zb9t+{efu9WFr+|MG!oLN6 zHiVx8{#^)f4gC8MegXKU5Pli>)ewFS_>B;L6Zq{Aeh2uy5dH)32O<0+@E=3?Pr#pq z@SlPI8p3}A{znM^6Zo?b{v10h=wI|DzF%Qu$EX`MqprCzaUW^LN&2LGv0I;y7lChCw{1{T` zn?m;Ln}fY&z}}kKvza}I+1oRF2WIam**i)0E|NV@vIoIV#@1A84>8+h_CjW-nVn_! zh-Bv_yCB(nNOlpjPu~l2ioOqIR4+kJ)osXWdIfU2?m))$8srS!h1B(>kTdlLWWU~o zTut8}a&>(Sat*zMh<+B-?*NYIAdcu49MK^h(P13X5wPvikAjTo$AEF%_hy{pyE!l4Nc4N-Ay5&cX^AtUUS5uP3EQB^*V*%vVTB4%I0?8}&aIr6yj wCY&FQzJ}bGdLajBHqD_H?TDr^Pn${EjQ?aX`O0fPnpE>&Ge|z}$ga7~l literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants__Javadoc.json new file mode 100644 index 0000000..7fe40f9 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/constant/GenConstants__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 代码生成通用常量\n\n @author ruoyi\n","fields":[{"name":"TPL_CRUD","doc":" 单表(增删改查)\n"},{"name":"TPL_TREE","doc":" 树表(增删改查)\n"},{"name":"TREE_CODE","doc":" 树编码字段\n"},{"name":"TREE_PARENT_CODE","doc":" 树父编码字段\n"},{"name":"TREE_NAME","doc":" 树名称字段\n"},{"name":"PARENT_MENU_ID","doc":" 上级菜单ID字段\n"},{"name":"PARENT_MENU_NAME","doc":" 上级菜单名称字段\n"},{"name":"COLUMNTYPE_STR","doc":" 数据库字符串类型\n"},{"name":"COLUMNTYPE_TEXT","doc":" 数据库文本类型\n"},{"name":"COLUMNTYPE_TIME","doc":" 数据库时间类型\n"},{"name":"COLUMNTYPE_NUMBER","doc":" 数据库数字类型\n"},{"name":"COLUMNNAME_NOT_ADD","doc":" BO对象 不需要添加字段\n"},{"name":"COLUMNNAME_NOT_EDIT","doc":" BO对象 不需要编辑字段\n"},{"name":"COLUMNNAME_NOT_LIST","doc":" VO对象 不需要返回字段\n"},{"name":"COLUMNNAME_NOT_QUERY","doc":" BO对象 不需要查询字段\n"},{"name":"BASE_ENTITY","doc":" Entity基类字段\n"},{"name":"HTML_INPUT","doc":" 文本框\n"},{"name":"HTML_TEXTAREA","doc":" 文本域\n"},{"name":"HTML_SELECT","doc":" 下拉框\n"},{"name":"HTML_RADIO","doc":" 单选框\n"},{"name":"HTML_CHECKBOX","doc":" 复选框\n"},{"name":"HTML_DATETIME","doc":" 日期控件\n"},{"name":"HTML_IMAGE_UPLOAD","doc":" 图片上传控件\n"},{"name":"HTML_FILE_UPLOAD","doc":" 文件上传控件\n"},{"name":"HTML_EDITOR","doc":" 富文本控件\n"},{"name":"TYPE_STRING","doc":" 字符串类型\n"},{"name":"TYPE_INTEGER","doc":" 整型\n"},{"name":"TYPE_LONG","doc":" 长整型\n"},{"name":"TYPE_DOUBLE","doc":" 浮点型\n"},{"name":"TYPE_BIGDECIMAL","doc":" 高精度计算类型\n"},{"name":"TYPE_DATE","doc":" 时间类型\n"},{"name":"QUERY_LIKE","doc":" 模糊查询\n"},{"name":"QUERY_EQ","doc":" 相等查询\n"},{"name":"REQUIRE","doc":" 需要\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/controller/GenController.class b/ruoyi-generator/target/classes/org/dromara/generator/controller/GenController.class new file mode 100644 index 0000000000000000000000000000000000000000..0a607258bc42d85366bef50545e27fc75a07877e GIT binary patch literal 9593 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 Iexak|mwT9VSpWb4 literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/controller/GenController__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/controller/GenController__Javadoc.json new file mode 100644 index 0000000..925527b --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/controller/GenController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 代码生成 操作处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"genList","paramTypes":["org.dromara.generator.domain.GenTable","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询代码生成列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 修改代码生成业务\n\n @param tableId 表ID\n"},{"name":"dataList","paramTypes":["org.dromara.generator.domain.GenTable","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询数据库列表\n"},{"name":"columnList","paramTypes":["java.lang.Long"],"doc":" 查询数据表字段列表\n\n @param tableId 表ID\n"},{"name":"importTableSave","paramTypes":["java.lang.String","java.lang.String"],"doc":" 导入表结构(保存)\n\n @param tables 表名串\n"},{"name":"editSave","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 修改保存代码生成业务\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除代码生成\n\n @param tableIds 表ID串\n"},{"name":"preview","paramTypes":["java.lang.Long"],"doc":" 预览代码\n\n @param tableId 表ID\n"},{"name":"download","paramTypes":["jakarta.servlet.http.HttpServletResponse","java.lang.Long"],"doc":" 生成代码(下载方式)\n\n @param tableId 表ID\n"},{"name":"genCode","paramTypes":["java.lang.Long"],"doc":" 生成代码(自定义路径)\n\n @param tableId 表ID\n"},{"name":"synchDb","paramTypes":["java.lang.Long"],"doc":" 同步数据库\n\n @param tableId 表ID\n"},{"name":"batchGenCode","paramTypes":["jakarta.servlet.http.HttpServletResponse","java.lang.String"],"doc":" 批量生成代码\n\n @param tableIdStr 表ID串\n"},{"name":"genCode","paramTypes":["jakarta.servlet.http.HttpServletResponse","byte[]"],"doc":" 生成zip文件\n"},{"name":"getCurrentDataSourceNameList","paramTypes":[],"doc":" 查询数据源名称列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable.class b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable.class new file mode 100644 index 0000000000000000000000000000000000000000..1df995b6edfab415718026241268633701d5f3c7 GIT binary patch literal 17868 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 literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn.class b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn.class new file mode 100644 index 0000000000000000000000000000000000000000..0f0546ae477849e416aa07e412228b7670ab52c5 GIT binary patch literal 14715 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 literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn__Javadoc.json new file mode 100644 index 0000000..d286d96 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTableColumn__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 代码生成业务字段表 gen_table_column\n\n @author Lion Li\n","fields":[{"name":"columnId","doc":" 编号\n"},{"name":"tableId","doc":" 归属表编号\n"},{"name":"columnName","doc":" 列名称\n"},{"name":"columnComment","doc":" 列描述\n"},{"name":"columnType","doc":" 列类型\n"},{"name":"javaType","doc":" JAVA类型\n"},{"name":"javaField","doc":" JAVA字段名\n"},{"name":"isPk","doc":" 是否主键(1是)\n"},{"name":"isIncrement","doc":" 是否自增(1是)\n"},{"name":"isRequired","doc":" 是否必填(1是)\n"},{"name":"isInsert","doc":" 是否为插入字段(1是)\n"},{"name":"isEdit","doc":" 是否编辑字段(1是)\n"},{"name":"isList","doc":" 是否列表字段(1是)\n"},{"name":"isQuery","doc":" 是否查询字段(1是)\n"},{"name":"queryType","doc":" 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围)\n"},{"name":"htmlType","doc":" 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件)\n"},{"name":"dictType","doc":" 字典类型\n"},{"name":"sort","doc":" 排序\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable__Javadoc.json new file mode 100644 index 0000000..574013c --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/domain/GenTable__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 业务表 gen_table\n\n @author Lion Li\n","fields":[{"name":"tableId","doc":" 编号\n"},{"name":"dataName","doc":" 数据源名称\n"},{"name":"tableName","doc":" 表名称\n"},{"name":"tableComment","doc":" 表描述\n"},{"name":"subTableName","doc":" 关联父表的表名\n"},{"name":"subTableFkName","doc":" 本表关联父表的外键名\n"},{"name":"className","doc":" 实体类名称(首字母大写)\n"},{"name":"tplCategory","doc":" 使用的模板(crud单表操作 tree树表操作 sub主子表操作)\n"},{"name":"packageName","doc":" 生成包路径\n"},{"name":"moduleName","doc":" 生成模块名\n"},{"name":"businessName","doc":" 生成业务名\n"},{"name":"functionName","doc":" 生成功能名\n"},{"name":"functionAuthor","doc":" 生成作者\n"},{"name":"genType","doc":" 生成代码方式(0zip压缩包 1自定义路径)\n"},{"name":"genPath","doc":" 生成路径(不填默认项目路径)\n"},{"name":"pkColumn","doc":" 主键信息\n"},{"name":"columns","doc":" 表列信息\n"},{"name":"options","doc":" 其它生成选项\n"},{"name":"remark","doc":" 备注\n"},{"name":"treeCode","doc":" 树编码字段\n"},{"name":"treeParentCode","doc":" 树父编码字段\n"},{"name":"treeName","doc":" 树名称字段\n"},{"name":"parentMenuId","doc":" 上级菜单ID字段\n"},{"name":"parentMenuName","doc":" 上级菜单名称字段\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper.class b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5dadfe1c51a1526da16a5dddd0e953cbc844666b GIT binary patch literal 544 zcmbVJ%}N7749?W*+N!lzU&6tIc&G|0D1{Y^74O;IuuR#>Eb}AyK)!?rAHataW2I_~ zAb6N$$j_I2UtZsyUjX0)h8c7e95`R=$~%i5bxlkjqx0Hg+mhE;#CKRUbm5w0`FbAA zpsQdw!w1w2a;`E4F!ik!AfVXV{IP`j3(&Pd0N1pW1vs4Nt1$t-qh5LF?mw( zl&?aM@_)e|FSUJBtAwlJ6>7^f{wh8lDdQLKd*-X literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper__Javadoc.json new file mode 100644 index 0000000..c61e2f4 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableColumnMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 业务字段 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper.class b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..9d843a3b3d8b56022208e8f2de98c1354306362b GIT binary patch literal 1115 zcmb7D+iuf95S1mr9j1G*=cxp`{tl*i{(h6@ZFT`Xb zEq^cdXEDy@X%)7q$!P0LoC}@{o$-(3Gnx1{U1juqktQ)kVKgtMW8szKiLr7{cp}`4 zY?zmh(YBL0IOaOXdCsV}w;xv`rB^wRmGcp!&PZii_|i&7(F))wUev!VBSl?GUz8EO z0aI^T@?<(l8NJ%8C9Aq(qqAs#O-eX&D*acJ4&h)Sy|gH+p}@KGr_cx7hwK-mM&7Fb z66^TTkD94p3sfBnC&4O4&;H84V(3OHyr_9zuJOmwYSO{X-A|?Vs*qolQ^@OBYva*$ zqhSJ%F$jDtOrcU!@^q?2p%NZ+ohfZ1xwwGyw(XsID<&)B-7 zvBduG3F?lj^xvr*x%TI?TkptWFq+Ye<=SVfFu}|(7Cq1ymqbpmaf3`_P2j0iG5>q1y2i$+{8|{X#-IQQG>dOH|ZMU>xf$*1cuQ~+PXa2 xu8w-t2g?k#18_}ni*Dn46X-j5?mF59s=m5M_bZJD6(kTogyJJdkLd|szX2qNPoMw* literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper__Javadoc.json new file mode 100644 index 0000000..7a0e4dd --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/mapper/GenTableMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 业务 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectGenTableAll","paramTypes":[],"doc":" 查询所有表信息\n\n @return 表信息集合\n"},{"name":"selectGenTableById","paramTypes":["java.lang.Long"],"doc":" 查询表ID业务信息\n\n @param id 业务ID\n @return 业务信息\n"},{"name":"selectGenTableByName","paramTypes":["java.lang.String"],"doc":" 查询表名称业务信息\n\n @param tableName 表名称\n @return 业务信息\n"},{"name":"selectTableNameList","paramTypes":["java.lang.String"],"doc":" 查询指定数据源下的所有表名列表\n\n @param dataName 数据源名称,用于选择不同的数据源\n @return 当前数据库中的表名列表\n\n @DS(\"\") 使用默认数据源执行查询操作\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl.class b/ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ad7483c6cab6242422732dd19d6840b7130007ef GIT binary patch literal 28920 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 G|Nj7DVgr!? literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl__Javadoc.json new file mode 100644 index 0000000..84973a0 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/service/GenTableServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 业务 服务层实现\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectGenTableColumnListByTableId","paramTypes":["java.lang.Long"],"doc":" 查询业务字段列表\n\n @param tableId 业务字段编号\n @return 业务字段集合\n"},{"name":"selectGenTableById","paramTypes":["java.lang.Long"],"doc":" 查询业务信息\n\n @param id 业务ID\n @return 业务信息\n"},{"name":"selectPageDbTableList","paramTypes":["org.dromara.generator.domain.GenTable","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询数据库列表\n\n @param genTable 包含查询条件的GenTable对象\n @param pageQuery 包含分页信息的PageQuery对象\n @return 包含分页结果的TableDataInfo对象\n"},{"name":"selectDbTableListByNames","paramTypes":["java.lang.String[]","java.lang.String"],"doc":" 查询据库列表\n\n @param tableNames 表名称组\n @param dataName 数据源名称\n @return 数据库表集合\n"},{"name":"selectGenTableAll","paramTypes":[],"doc":" 查询所有表信息\n\n @return 表信息集合\n"},{"name":"updateGenTable","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 修改业务\n\n @param genTable 业务信息\n"},{"name":"deleteGenTableByIds","paramTypes":["java.lang.Long[]"],"doc":" 删除业务对象\n\n @param tableIds 需要删除的数据ID\n"},{"name":"importGenTable","paramTypes":["java.util.List","java.lang.String"],"doc":" 导入表结构\n\n @param tableList 导入表列表\n @param dataName 数据源名称\n"},{"name":"selectDbTableColumnsByName","paramTypes":["java.lang.String","java.lang.String"],"doc":" 根据表名称查询列信息\n\n @param tableName 表名称\n @param dataName 数据源名称\n @return 列信息\n"},{"name":"previewCode","paramTypes":["java.lang.Long"],"doc":" 预览代码\n\n @param tableId 表编号\n @return 预览数据列表\n"},{"name":"downloadCode","paramTypes":["java.lang.Long"],"doc":" 生成代码(下载方式)\n\n @param tableId 表名称\n @return 数据\n"},{"name":"generatorCode","paramTypes":["java.lang.Long"],"doc":" 生成代码(自定义路径)\n\n @param tableId 表名称\n"},{"name":"synchDb","paramTypes":["java.lang.Long"],"doc":" 同步数据库\n\n @param tableId 表名称\n"},{"name":"downloadCode","paramTypes":["java.lang.String[]"],"doc":" 批量生成代码(下载方式)\n\n @param tableIds 表ID数组\n @return 数据\n"},{"name":"generatorCode","paramTypes":["java.lang.Long","java.util.zip.ZipOutputStream"],"doc":" 查询表信息并生成代码\n"},{"name":"validateEdit","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 修改保存参数校验\n\n @param genTable 业务信息\n"},{"name":"setPkColumn","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 设置主键列信息\n\n @param table 业务表信息\n"},{"name":"setTableFromOptions","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 设置代码生成其他选项值\n\n @param genTable 设置后的生成对象\n"},{"name":"getGenPath","paramTypes":["org.dromara.generator.domain.GenTable","java.lang.String"],"doc":" 获取代码生成地址\n\n @param table 业务表信息\n @param template 模板文件路径\n @return 生成地址\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService.class b/ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService.class new file mode 100644 index 0000000000000000000000000000000000000000..c9eadafa6e7ffd9480b9e4d83d9450af4e64f6fa GIT binary patch literal 2237 zcmd5-TTc@~6h2ddQf_hw@d}Ezh>Uk*iY6A6kQ9W}_`-|R?zjxu-DzgGCH)cp9Upw~ z2l%6mXLgouw_By~*he^|wYSxvgG^r+javOxH>CKac3#HKpHVS}p{ zcAzuIzdD3H+-3pW^}b3>bl8rr1$&|qLofp0|EDzjY=7AJxw!G$)v#F8_eCS`kd<2d zNDO4ftNc+1ohpG6NT{@=2gOE0K1DFY7IsyC6ZmpD#EaB9l^m0IjzeHN-y_FjN_del z)5$QUmL8thJqD(ed`PKi_`3!K`IZp~Fwv-Ev)YqEV69)e6+RP~v2a7g-a03|#o0v9 z%~C+);b`R1VnVoesoI-`z-m-Syfu2Do9Bpi<3XkGE9;HO*C!WmfZjGEffd#sLR*g4N;Gu^YaMDN=%OP+d; zWR?j&n+85A5g2bX)0oYq&G5Rje#@&JZ&wK{BsdlIzo3!En#>WJ!|yGDTYaP=8>+@X z2nQ>l>wfAs^kX$dfWQ@eF99Y82n@myWFU*DK_n^uwC0ZS_@D zPySmy1=F$j40_JCz30$-9u_bU6KoOB*I)_HQ6ASpKgu`YW-P+^D7po=W6_;ZvA+f6x2V% ITr%+d53dn^H~;_u literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService__Javadoc.json new file mode 100644 index 0000000..1005aa7 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/service/IGenTableService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 业务 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectGenTableColumnListByTableId","paramTypes":["java.lang.Long"],"doc":" 查询业务字段列表\n\n @param tableId 业务字段编号\n @return 业务字段集合\n"},{"name":"selectPageGenTableList","paramTypes":["org.dromara.generator.domain.GenTable","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询业务列表\n\n @param genTable 业务信息\n @return 业务集合\n"},{"name":"selectPageDbTableList","paramTypes":["org.dromara.generator.domain.GenTable","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询据库列表\n\n @param genTable 业务信息\n @return 数据库表集合\n"},{"name":"selectDbTableListByNames","paramTypes":["java.lang.String[]","java.lang.String"],"doc":" 查询据库列表\n\n @param tableNames 表名称组\n @param dataName 数据源名称\n @return 数据库表集合\n"},{"name":"selectGenTableAll","paramTypes":[],"doc":" 查询所有表信息\n\n @return 表信息集合\n"},{"name":"selectGenTableById","paramTypes":["java.lang.Long"],"doc":" 查询业务信息\n\n @param id 业务ID\n @return 业务信息\n"},{"name":"updateGenTable","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 修改业务\n\n @param genTable 业务信息\n"},{"name":"deleteGenTableByIds","paramTypes":["java.lang.Long[]"],"doc":" 删除业务信息\n\n @param tableIds 需要删除的表数据ID\n"},{"name":"importGenTable","paramTypes":["java.util.List","java.lang.String"],"doc":" 导入表结构\n\n @param tableList 导入表列表\n @param dataName 数据源名称\n"},{"name":"selectDbTableColumnsByName","paramTypes":["java.lang.String","java.lang.String"],"doc":" 根据表名称查询列信息\n\n @param tableName 表名称\n @param dataName 数据源名称\n @return 列信息\n"},{"name":"previewCode","paramTypes":["java.lang.Long"],"doc":" 预览代码\n\n @param tableId 表编号\n @return 预览数据列表\n"},{"name":"downloadCode","paramTypes":["java.lang.Long"],"doc":" 生成代码(下载方式)\n\n @param tableId 表名称\n @return 数据\n"},{"name":"generatorCode","paramTypes":["java.lang.Long"],"doc":" 生成代码(自定义路径)\n\n @param tableId 表名称\n"},{"name":"synchDb","paramTypes":["java.lang.Long"],"doc":" 同步数据库\n\n @param tableId 表名称\n"},{"name":"downloadCode","paramTypes":["java.lang.String[]"],"doc":" 批量生成代码(下载方式)\n\n @param tableIds 表ID数组\n @return 数据\n"},{"name":"validateEdit","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 修改保存参数校验\n\n @param genTable 业务信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils.class b/ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..df6f7fb1870991988fb97b04d5620ca863d17671 GIT binary patch literal 5932 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 Q%vIIRU!{8Z45+>T1CRKlZvX%Q literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils__Javadoc.json new file mode 100644 index 0000000..5d6bd6a --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/util/GenUtils__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 代码生成器 工具类\n\n @author ruoyi\n","fields":[],"enumConstants":[],"methods":[{"name":"initTable","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 初始化表信息\n"},{"name":"initColumnField","paramTypes":["org.dromara.generator.domain.GenTableColumn","org.dromara.generator.domain.GenTable"],"doc":" 初始化列属性字段\n"},{"name":"arraysContains","paramTypes":["java.lang.String[]","java.lang.String"],"doc":" 校验数组是否包含指定值\n\n @param arr 数组\n @param targetValue 值\n @return 是否包含\n"},{"name":"getModuleName","paramTypes":["java.lang.String"],"doc":" 获取模块名\n\n @param packageName 包名\n @return 模块名\n"},{"name":"getBusinessName","paramTypes":["java.lang.String"],"doc":" 获取业务名\n\n @param tableName 表名\n @return 业务名\n"},{"name":"convertClassName","paramTypes":["java.lang.String"],"doc":" 表名转换成Java类名\n\n @param tableName 表名称\n @return 类名\n"},{"name":"replaceFirst","paramTypes":["java.lang.String","java.lang.String[]"],"doc":" 批量替换前缀\n\n @param replacementm 替换值\n @param searchList 替换列表\n"},{"name":"replaceText","paramTypes":["java.lang.String"],"doc":" 关键字替换\n\n @param text 需要被替换的名字\n @return 替换后的名字\n"},{"name":"getDbType","paramTypes":["java.lang.String"],"doc":" 获取数据库类型字段\n\n @param columnType 列类型\n @return 截取后的列类型\n"},{"name":"getColumnLength","paramTypes":["java.lang.String"],"doc":" 获取字段长度\n\n @param columnType 列类型\n @return 截取后的列类型\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer.class b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer.class new file mode 100644 index 0000000000000000000000000000000000000000..1a57ea3ef6381ada4e1e7e768f83e054bd51ac77 GIT binary patch literal 1141 zcmb7DTTfF#5dOAYPFspV1>_>-A}TF#4qii2H8DgCv0egL!;{&bF73kU*=Elc#h>CI z@R=7elIXiXN}cTm8hr93XLe_1XXcx4c7Of;{sX{cJaiCa7(L)e+-n#acyF|-3vHx` zl3?gfp%48G{f}fQ%@c;6rED>dIKz|{k!omPxPjtjq1}BM2-gpI6vdHb*igFS@;djc z!aWj!@})U;bt5#gCfv)h8#b)YO?A7Sw9w3H5u{QW#1)2tNSHRZV}|vmLKAYp!-}_K zvS^IF)v4mQ&3Ua<`{jx@vMIm)uw=Z(O;7oo4pRLa39 zL(V2CYgOZ#d%mjGR7i^!B*Mt>(0Ci|4G}WV(D!zCb9Ft5Axxw&i76u2a!PgDy3&(bg*K>aoGnliZn`fBlrfRpU)dyY*1Z7X+26`PV zG7Mj2YSHB27K7W}U`2#NbE9oeiN^4*46bmP`i8Tw`Hb58JCQr2vU=4RjyGy_I-lLV_KFJs! F`~|2?DNz6b literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer__Javadoc.json new file mode 100644 index 0000000..fc3b11e --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityInitializer__Javadoc.json @@ -0,0 +1 @@ +{"doc":" VelocityEngine工厂\n\n @author ruoyi\n","fields":[],"enumConstants":[],"methods":[{"name":"initVelocity","paramTypes":[],"doc":" 初始化vm方法\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils.class b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..3a46b567ce8821bb3d937352efbe21466974b783 GIT binary patch literal 11560 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 af2!vP>iLm+e$4yOA4K23d4Ca8<$nPG?j^zi literal 0 HcmV?d00001 diff --git a/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils__Javadoc.json b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils__Javadoc.json new file mode 100644 index 0000000..fa42751 --- /dev/null +++ b/ruoyi-generator/target/classes/org/dromara/generator/util/VelocityUtils__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 模板处理工具类\n\n @author ruoyi\n","fields":[{"name":"PROJECT_PATH","doc":" 项目空间路径\n"},{"name":"MYBATIS_PATH","doc":" mybatis空间路径\n"},{"name":"DEFAULT_PARENT_MENU_ID","doc":" 默认上级菜单,系统工具\n"}],"enumConstants":[],"methods":[{"name":"prepareContext","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 设置模板变量信息\n\n @return 模板列表\n"},{"name":"getTemplateList","paramTypes":["java.lang.String"],"doc":" 获取模板信息\n\n @return 模板列表\n"},{"name":"getFileName","paramTypes":["java.lang.String","org.dromara.generator.domain.GenTable"],"doc":" 获取文件名\n"},{"name":"getPackagePrefix","paramTypes":["java.lang.String"],"doc":" 获取包前缀\n\n @param packageName 包名称\n @return 包前缀名称\n"},{"name":"getImportList","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 根据列类型获取导入包\n\n @param genTable 业务表对象\n @return 返回需要导入的包列表\n"},{"name":"getDicts","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 根据列类型获取字典组\n\n @param genTable 业务表对象\n @return 返回字典组\n"},{"name":"addDicts","paramTypes":["java.util.Set","java.util.List"],"doc":" 添加字典列表\n\n @param dicts 字典列表\n @param columns 列集合\n"},{"name":"getPermissionPrefix","paramTypes":["java.lang.String","java.lang.String"],"doc":" 获取权限前缀\n\n @param moduleName 模块名称\n @param businessName 业务名称\n @return 返回权限前缀\n"},{"name":"getParentMenuId","paramTypes":["cn.hutool.core.lang.Dict"],"doc":" 获取上级菜单ID字段\n\n @param paramsObj 生成其他选项\n @return 上级菜单ID字段\n"},{"name":"getTreecode","paramTypes":["java.util.Map"],"doc":" 获取树编码\n\n @param paramsObj 生成其他选项\n @return 树编码\n"},{"name":"getTreeParentCode","paramTypes":["cn.hutool.core.lang.Dict"],"doc":" 获取树父编码\n\n @param paramsObj 生成其他选项\n @return 树父编码\n"},{"name":"getTreeName","paramTypes":["cn.hutool.core.lang.Dict"],"doc":" 获取树名称\n\n @param paramsObj 生成其他选项\n @return 树名称\n"},{"name":"getExpandColumn","paramTypes":["org.dromara.generator.domain.GenTable"],"doc":" 获取需要在哪一列上面显示展开按钮\n\n @param genTable 业务表对象\n @return 展开按钮列序号\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-generator/target/classes/vm/java/bo.java.vm b/ruoyi-generator/target/classes/vm/java/bo.java.vm new file mode 100644 index 0000000..511d37c --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/bo.java.vm @@ -0,0 +1,50 @@ +package ${packageName}.domain.bo; + +import ${packageName}.domain.${ClassName}; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +#foreach ($import in $importList) +import ${import}; +#end + +/** + * ${functionName}业务对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ${ClassName}.class, reverseConvertGenerate = false) +public class ${ClassName}Bo extends BaseEntity { + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField) && ($column.query || $column.insert || $column.edit)) + /** + * $column.columnComment + */ +#if($column.insert && $column.edit) +#set($Group="AddGroup.class, EditGroup.class") +#elseif($column.insert) +#set($Group="AddGroup.class") +#elseif($column.edit) +#set($Group="EditGroup.class") +#end +#if($column.required) +#if($column.javaType == 'String') + @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) +#else + @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) +#end +#end + private $column.javaType $column.javaField; + +#end +#end + +} diff --git a/ruoyi-generator/target/classes/vm/java/controller.java.vm b/ruoyi-generator/target/classes/vm/java/controller.java.vm new file mode 100644 index 0000000..6438971 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/controller.java.vm @@ -0,0 +1,115 @@ +package ${packageName}.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.bo.${ClassName}Bo; +import ${packageName}.service.I${ClassName}Service; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +#elseif($table.tree) +#end + +/** + * ${functionName} + * + * @author ${author} + * @date ${datetime} + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/${moduleName}/${businessName}") +public class ${ClassName}Controller extends BaseController { + + private final I${ClassName}Service ${className}Service; + + /** + * 查询${functionName}列表 + */ + @SaCheckPermission("${permissionPrefix}:list") + @GetMapping("/list") +#if($table.crud) + public TableDataInfo<${ClassName}Vo> list(${ClassName}Bo bo, PageQuery pageQuery) { + return ${className}Service.queryPageList(bo, pageQuery); + } +#elseif($table.tree) + public R> list(${ClassName}Bo bo) { + List<${ClassName}Vo> list = ${className}Service.queryList(bo); + return R.ok(list); + } +#end + + /** + * 导出${functionName}列表 + */ + @SaCheckPermission("${permissionPrefix}:export") + @Log(title = "${functionName}", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(${ClassName}Bo bo, HttpServletResponse response) { + List<${ClassName}Vo> list = ${className}Service.queryList(bo); + ExcelUtil.exportExcel(list, "${functionName}", ${ClassName}Vo.class, response); + } + + /** + * 获取${functionName}详细信息 + * + * @param ${pkColumn.javaField} 主键 + */ + @SaCheckPermission("${permissionPrefix}:query") + @GetMapping("/{${pkColumn.javaField}}") + public R<${ClassName}Vo> getInfo(@NotNull(message = "主键不能为空") + @PathVariable ${pkColumn.javaType} ${pkColumn.javaField}) { + return R.ok(${className}Service.queryById(${pkColumn.javaField})); + } + + /** + * 新增${functionName} + */ + @SaCheckPermission("${permissionPrefix}:add") + @Log(title = "${functionName}", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) { + return toAjax(${className}Service.insertByBo(bo)); + } + + /** + * 修改${functionName} + */ + @SaCheckPermission("${permissionPrefix}:edit") + @Log(title = "${functionName}", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) { + return toAjax(${className}Service.updateByBo(bo)); + } + + /** + * 删除${functionName} + * + * @param ${pkColumn.javaField}s 主键串 + */ + @SaCheckPermission("${permissionPrefix}:remove") + @Log(title = "${functionName}", businessType = BusinessType.DELETE) + @DeleteMapping("/{${pkColumn.javaField}s}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { + return toAjax(${className}Service.deleteWithValidByIds(List.of(${pkColumn.javaField}s), true)); + } +} diff --git a/ruoyi-generator/target/classes/vm/java/domain.java.vm b/ruoyi-generator/target/classes/vm/java/domain.java.vm new file mode 100644 index 0000000..205fb73 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/domain.java.vm @@ -0,0 +1,60 @@ +package ${packageName}.domain; + +#foreach ($column in $columns) +#if($column.javaField=='tenantId') +#set($IsTenant=1) +#end +#end +#if($IsTenant==1) +import org.dromara.common.tenant.core.TenantEntity; +#else +import org.dromara.common.mybatis.core.domain.BaseEntity; +#end +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +#foreach ($import in $importList) +import ${import}; +#end + +import java.io.Serial; + +/** + * ${functionName}对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +#if($IsTenant==1) +#set($Entity="TenantEntity") +#else +#set($Entity="BaseEntity") +#end +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("${tableName}") +public class ${ClassName} extends ${Entity} { + + @Serial + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + /** + * $column.columnComment + */ +#if($column.javaField=='delFlag') + @TableLogic +#end +#if($column.javaField=='version') + @Version +#end +#if($column.isPk==1) + @TableId(value = "$column.columnName") +#end + private $column.javaType $column.javaField; + +#end +#end + +} diff --git a/ruoyi-generator/target/classes/vm/java/mapper.java.vm b/ruoyi-generator/target/classes/vm/java/mapper.java.vm new file mode 100644 index 0000000..0922401 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/mapper.java.vm @@ -0,0 +1,15 @@ +package ${packageName}.mapper; + +import ${packageName}.domain.${ClassName}; +import ${packageName}.domain.vo.${ClassName}Vo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * ${functionName}Mapper接口 + * + * @author ${author} + * @date ${datetime} + */ +public interface ${ClassName}Mapper extends BaseMapperPlus<${ClassName}, ${ClassName}Vo> { + +} diff --git a/ruoyi-generator/target/classes/vm/java/service.java.vm b/ruoyi-generator/target/classes/vm/java/service.java.vm new file mode 100644 index 0000000..4db9030 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/service.java.vm @@ -0,0 +1,72 @@ +package ${packageName}.service; + +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.bo.${ClassName}Bo; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +#end + +import java.util.Collection; +import java.util.List; + +/** + * ${functionName}Service接口 + * + * @author ${author} + * @date ${datetime} + */ +public interface I${ClassName}Service { + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} + */ + ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}); + +#if($table.crud) + /** + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 + */ + TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery); +#end + + /** + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 + */ + List<${ClassName}Vo> queryList(${ClassName}Bo bo); + + /** + * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 + */ + Boolean insertByBo(${ClassName}Bo bo); + + /** + * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 + */ + Boolean updateByBo(${ClassName}Bo bo); + + /** + * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid); +} diff --git a/ruoyi-generator/target/classes/vm/java/serviceImpl.java.vm b/ruoyi-generator/target/classes/vm/java/serviceImpl.java.vm new file mode 100644 index 0000000..48cc8b1 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/serviceImpl.java.vm @@ -0,0 +1,158 @@ +package ${packageName}.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +#if($table.crud) +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +#end +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import ${packageName}.domain.bo.${ClassName}Bo; +import ${packageName}.domain.vo.${ClassName}Vo; +import ${packageName}.domain.${ClassName}; +import ${packageName}.mapper.${ClassName}Mapper; +import ${packageName}.service.I${ClassName}Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * ${functionName}Service业务层处理 + * + * @author ${author} + * @date ${datetime} + */ +@RequiredArgsConstructor +@Service +public class ${ClassName}ServiceImpl implements I${ClassName}Service { + + private final ${ClassName}Mapper baseMapper; + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} + */ + @Override + public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){ + return baseMapper.selectVoById(${pkColumn.javaField}); + } + +#if($table.crud) + /** + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 + */ + @Override + public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { + LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); + Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } +#end + + /** + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 + */ + @Override + public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { + LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery(); +#foreach($column in $columns) +#if($column.query) +#set($queryType=$column.queryType) +#set($javaField=$column.javaField) +#set($javaType=$column.javaType) +#set($columnName=$column.columnName) +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#set($mpMethod=$column.queryType.toLowerCase()) +#if($queryType != 'BETWEEN') +#if($javaType == 'String') +#set($condition='StringUtils.isNotBlank(bo.get'+$AttrName+'())') +#else +#set($condition='bo.get'+$AttrName+'() != null') +#end + lqw.$mpMethod($condition, ${ClassName}::get$AttrName, bo.get$AttrName()); +#else + lqw.between(params.get("begin$AttrName") != null && params.get("end$AttrName") != null, + ${ClassName}::get$AttrName ,params.get("begin$AttrName"), params.get("end$AttrName")); +#end +#end +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#if($column.isPk==1) + lqw.orderByAsc(${ClassName}::get$AttrName); +#end +#end + return lqw; + } + + /** + * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(${ClassName}Bo bo) { + ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; +#set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)}) + if (flag) { + bo.set$pk(add.get$pk()); + } + return flag; + } + + /** + * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(${ClassName}Bo bo) { + ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(${ClassName} entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-generator/target/classes/vm/java/vo.java.vm b/ruoyi-generator/target/classes/vm/java/vo.java.vm new file mode 100644 index 0000000..5591f97 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/java/vo.java.vm @@ -0,0 +1,66 @@ +package ${packageName}.domain.vo; + +#foreach ($import in $importList) +import ${import}; +#end +import ${packageName}.domain.${ClassName}; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * ${functionName}视图对象 ${tableName} + * + * @author ${author} + * @date ${datetime} + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ${ClassName}.class) +public class ${ClassName}Vo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if($column.list) + /** + * $column.columnComment + */ +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#if(${column.dictType} && ${column.dictType} != '') + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "${column.dictType}") +#elseif($parentheseIndex != -1) + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") +#else + @ExcelProperty(value = "${comment}") +#end + private $column.javaType $column.javaField; + +#if($column.htmlType == "imageUpload") + /** + * ${column.columnComment}Url + */ + @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "${column.javaField}") + private String ${column.javaField}Url; +#end +#end +#end + +} diff --git a/ruoyi-generator/target/classes/vm/sql/oracle/sql.vm b/ruoyi-generator/target/classes/vm/sql/oracle/sql.vm new file mode 100644 index 0000000..f6638be --- /dev/null +++ b/ruoyi-generator/target/classes/vm/sql/oracle/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, sysdate, null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, sysdate, null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, sysdate, null, null, ''); diff --git a/ruoyi-generator/target/classes/vm/sql/postgres/sql.vm b/ruoyi-generator/target/classes/vm/sql/postgres/sql.vm new file mode 100644 index 0000000..0923392 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/sql/postgres/sql.vm @@ -0,0 +1,20 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, now(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, now(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, now(), null, null, ''); + diff --git a/ruoyi-generator/target/classes/vm/sql/sql.vm b/ruoyi-generator/target/classes/vm/sql/sql.vm new file mode 100644 index 0000000..01824c2 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/sql/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, sysdate(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, sysdate(), null, null, ''); diff --git a/ruoyi-generator/target/classes/vm/sql/sqlserver/sql.vm b/ruoyi-generator/target/classes/vm/sql/sqlserver/sql.vm new file mode 100644 index 0000000..bdf166e --- /dev/null +++ b/ruoyi-generator/target/classes/vm/sql/sqlserver/sql.vm @@ -0,0 +1,19 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, getdate(), null, null, '${functionName}菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 103, 1, getdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 103, 1, getdate(), null, null, ''); diff --git a/ruoyi-generator/target/classes/vm/ts/api.ts.vm b/ruoyi-generator/target/classes/vm/ts/api.ts.vm new file mode 100644 index 0000000..3aa4a5f --- /dev/null +++ b/ruoyi-generator/target/classes/vm/ts/api.ts.vm @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ${BusinessName}VO, ${BusinessName}Form, ${BusinessName}Query } from '@/api/${moduleName}/${businessName}/types'; + +/** + * 查询${functionName}列表 + * @param query + * @returns {*} + */ + +export const list${BusinessName} = (query?: ${BusinessName}Query): AxiosPromise<${BusinessName}VO[]> => { + return request({ + url: '/${moduleName}/${businessName}/list', + method: 'get', + params: query + }); +}; + +/** + * 查询${functionName}详细 + * @param ${pkColumn.javaField} + */ +export const get${BusinessName} = (${pkColumn.javaField}: string | number): AxiosPromise<${BusinessName}VO> => { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'get' + }); +}; + +/** + * 新增${functionName} + * @param data + */ +export const add${BusinessName} = (data: ${BusinessName}Form) => { + return request({ + url: '/${moduleName}/${businessName}', + method: 'post', + data: data + }); +}; + +/** + * 修改${functionName} + * @param data + */ +export const update${BusinessName} = (data: ${BusinessName}Form) => { + return request({ + url: '/${moduleName}/${businessName}', + method: 'put', + data: data + }); +}; + +/** + * 删除${functionName} + * @param ${pkColumn.javaField} + */ +export const del${BusinessName} = (${pkColumn.javaField}: string | number | Array) => { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'delete' + }); +}; diff --git a/ruoyi-generator/target/classes/vm/ts/types.ts.vm b/ruoyi-generator/target/classes/vm/ts/types.ts.vm new file mode 100644 index 0000000..35a468e --- /dev/null +++ b/ruoyi-generator/target/classes/vm/ts/types.ts.vm @@ -0,0 +1,64 @@ +export interface ${BusinessName}VO { +#foreach ($column in $columns) +#if($column.list) + /** + * $column.columnComment + */ + $column.javaField:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#if($column.htmlType == "imageUpload") + /** + * ${column.columnComment}Url + */ + ${column.javaField}Url: string; +#end +#end +#end +#if ($table.tree) + /** + * 子对象 + */ + children: ${BusinessName}VO[]; +#end +} + +export interface ${BusinessName}Form extends BaseEntity { +#foreach ($column in $columns) +#if($column.insert || $column.edit) + /** + * $column.columnComment + */ + $column.javaField?:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#end +#end +} + +export interface ${BusinessName}Query #if(!${treeCode})extends PageQuery #end{ + +#foreach ($column in $columns) +#if($column.query) + /** + * $column.columnComment + */ + $column.javaField?:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) string | number; + #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; + #elseif($column.javaType == 'Boolean') boolean; + #else string; + #end +#end +#end + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/ruoyi-generator/target/classes/vm/vue/index-tree.vue.vm b/ruoyi-generator/target/classes/vm/vue/index-tree.vue.vm new file mode 100644 index 0000000..caf3472 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/vue/index-tree.vue.vm @@ -0,0 +1,498 @@ + + + diff --git a/ruoyi-generator/target/classes/vm/vue/index.vue.vm b/ruoyi-generator/target/classes/vm/vue/index.vue.vm new file mode 100644 index 0000000..a92d19a --- /dev/null +++ b/ruoyi-generator/target/classes/vm/vue/index.vue.vm @@ -0,0 +1,459 @@ + + + diff --git a/ruoyi-generator/target/classes/vm/xml/mapper.xml.vm b/ruoyi-generator/target/classes/vm/xml/mapper.xml.vm new file mode 100644 index 0000000..9fb48d9 --- /dev/null +++ b/ruoyi-generator/target/classes/vm/xml/mapper.xml.vm @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-job/.flattened-pom.xml b/ruoyi-job/.flattened-pom.xml new file mode 100644 index 0000000..a2d0988 --- /dev/null +++ b/ruoyi-job/.flattened-pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.3.0 + + org.dromara + ruoyi-job + 5.3.0 + 任务调度 + + + org.dromara + ruoyi-common-json + + + org.dromara + ruoyi-common-job + + + diff --git a/ruoyi-job/pom.xml b/ruoyi-job/pom.xml new file mode 100644 index 0000000..2431a1c --- /dev/null +++ b/ruoyi-job/pom.xml @@ -0,0 +1,34 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + jar + ruoyi-job + + + 任务调度 + + + + + + + org.dromara + ruoyi-common-json + + + + org.dromara + ruoyi-common-job + + + + + + diff --git a/ruoyi-job/src/main/java/org/dromara/job/package-info.java b/ruoyi-job/src/main/java/org/dromara/job/package-info.java new file mode 100644 index 0000000..2f118b0 --- /dev/null +++ b/ruoyi-job/src/main/java/org/dromara/job/package-info.java @@ -0,0 +1 @@ +package org.dromara.job; diff --git a/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java b/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java new file mode 100644 index 0000000..bee074a --- /dev/null +++ b/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java @@ -0,0 +1,36 @@ +package org.dromara.job.snailjob; + +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.util.JsonUtil; +import com.aizuda.snailjob.common.log.SnailJobLog; +import org.springframework.stereotype.Component; + +/** + * @author opensnail + * @date 2024-05-17 + */ +@Component +@JobExecutor(name = "testJobExecutor") +// 定义一个公共类 TestAnnoJobExecutor,该类可能用于执行与任务相关的操作 +public class TestAnnoJobExecutor { + + /** + * 执行任务的方法 + * + * @param jobArgs 任务参数对象,包含了任务执行所需的参数信息 + * @return ExecuteResult 类型的对象,表示任务执行的结果 + */ + public ExecuteResult jobExecute(JobArgs jobArgs) { + // 使用 SnailJobLog 的 LOCAL 记录器记录本地日志,输出任务参数信息 + // 将任务参数对象转换为 JSON 字符串后进行输出,方便查看任务参数的具体内容 + SnailJobLog.LOCAL.info("testJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + // 使用 SnailJobLog 的 REMOTE 记录器记录远程日志,同样输出任务参数信息 + // 转换为 JSON 字符串输出,便于在远程端查看任务参数情况 + SnailJobLog.REMOTE.info("testJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + + // 返回一个表示任务执行成功的 ExecuteResult 对象,并附带提示信息“测试成功” + return ExecuteResult.success("测试成功"); + } +} diff --git a/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java b/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java new file mode 100644 index 0000000..b54a4e8 --- /dev/null +++ b/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java @@ -0,0 +1,30 @@ +package org.dromara.job.snailjob; + +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.job.core.executor.AbstractJobExecutor; +import com.aizuda.snailjob.client.model.ExecuteResult; +import org.springframework.stereotype.Component; + +/** + * @author opensnail + * @date 2024-05-17 + */ +@Component +// 定义一个公共类 TestClassJobExecutor,该类继承自 AbstractJobExecutor 类, +// 表示它是一个具体的任务执行器,可能用于实现特定的任务执行逻辑 +public class TestClassJobExecutor extends AbstractJobExecutor { + + /** + * 重写父类 AbstractJobExecutor 中的 doJobExecute 方法, + * 该方法用于具体执行任务,是任务执行的核心逻辑部分 + * + * @param jobArgs 任务参数对象,包含了任务执行所需的参数信息 + * @return ExecuteResult 类型的对象,表示任务执行的结果 + */ + @Override + protected ExecuteResult doJobExecute(JobArgs jobArgs) { + // 返回一个表示任务执行成功的 ExecuteResult 对象, + // 并附带提示信息“TestJobExecutor测试成功”,表明任务执行的状态和结果描述 + return ExecuteResult.success("TestJobExecutor测试成功"); + } +} diff --git a/ruoyi-job/target/classes/org/dromara/job/snailjob/TestAnnoJobExecutor.class b/ruoyi-job/target/classes/org/dromara/job/snailjob/TestAnnoJobExecutor.class new file mode 100644 index 0000000000000000000000000000000000000000..5f4eedb87e47f4f6e09a703f48314bc9b8a44da2 GIT binary patch literal 1504 zcmb7ETTc^F5dKat6zU3C1VOxj7c2#O@U9e02;u`NVp=3IK5e&$vbej4?4DK8_-^#Y z7oYtJDv3%=^auDqB>oEHoVJoepkg29bY^G1ne)w@`SJVfcK}nEN+N=20x<(|v@mq8 znvYHHm|lf1lvahM7+NN6&sMh>qUqtKHngHGfuw;$Fc>nHbh&9i3(F=CJkxeoWr>r` zl^%Cwg%`DLPL}er!Vu3d%uMGQc>W(zf$~iyD(gHiEz`-hqMe~%i9iw3>{DTdO8VIW zN;U0Qf{EuZlIX;d1X2dNaFk)J3A`nJ!9!&`d@hjQefq;-D5;gA@@lhu(QHYBSxAy*^*gn^SdMI9;3&Mz#^ zGK?RX$%1gD5>)hnE_#q5+k~VY_0}R=ah8bM`t_E{XFPO5lQlG=}%X zb8O)$?#i-oc&&4yAcD}Lu}TD?Wr-kQxZTLX-wW@3vwiV$35+m|O25L(zI09BpYQ?5%v-$r?l4D3x zA@#d6Sm|aL(Tx=G+XFA#e^Fpo2@;xHa6-xL7 zlPt>6x5OP=v(vi=nOXg082SpKr)*a&*?~>WX~vbQZ0Qk3rb=9}reE2zhJGUbNAxa) zFQi&u6MROxYto~EA<`xfRJXZ}ui5&$8Yn#G5k7Tx*V4csGPLjXF9KRfXdyXD8mE)d z8P9wH`&j)vMpAzUEtf1wqvk-aq-#4Dm^ZnP?Zvd`iqk#$*B2=5Gq0VqKF*z6N zMUe{bv{2c|#5~EA)Sj0|Vk0tM!d~7sLZ3maJL^B>%1uRTC*%k6Q?Tq%? z)@QJfWw=E)gh9i2ifnU|fYUfbUKOi2OC$k&l_G((-ip59*atdQ@CUt8qE{ywQ*>ZH Zhc&{Tr|cRdCxF&VdjS_|52Y^wzX4L1250~P literal 0 HcmV?d00001 diff --git a/ruoyi-job/target/classes/org/dromara/job/snailjob/TestClassJobExecutor__Javadoc.json b/ruoyi-job/target/classes/org/dromara/job/snailjob/TestClassJobExecutor__Javadoc.json new file mode 100644 index 0000000..fef21e7 --- /dev/null +++ b/ruoyi-job/target/classes/org/dromara/job/snailjob/TestClassJobExecutor__Javadoc.json @@ -0,0 +1 @@ +{"doc":" @author opensnail\n @date 2024-05-17\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/.flattened-pom.xml b/ruoyi-system/.flattened-pom.xml new file mode 100644 index 0000000..0afe776 --- /dev/null +++ b/ruoyi-system/.flattened-pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.3.0 + + org.dromara + ruoyi-system + 5.3.0 + system系统模块 + + + org.dromara + ruoyi-common-core + + + org.dromara + ruoyi-common-doc + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-translation + + + org.dromara + ruoyi-common-oss + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-excel + + + org.dromara + ruoyi-common-sms + + + org.dromara + ruoyi-common-tenant + + + org.dromara + ruoyi-common-security + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-idempotent + + + org.dromara + ruoyi-common-sensitive + + + org.dromara + ruoyi-common-encrypt + + + org.dromara + ruoyi-common-websocket + + + org.dromara + ruoyi-common-sse + + + diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml new file mode 100644 index 0000000..0fc6d55 --- /dev/null +++ b/ruoyi-system/pom.xml @@ -0,0 +1,105 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + + ruoyi-system + + + system系统模块 + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-translation + + + + + org.dromara + ruoyi-common-oss + + + + org.dromara + ruoyi-common-log + + + + + org.dromara + ruoyi-common-excel + + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + org.dromara + ruoyi-common-websocket + + + + org.dromara + ruoyi-common-sse + + + + + diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java new file mode 100644 index 0000000..314664b --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java @@ -0,0 +1,81 @@ +package org.dromara.system.controller.monitor; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.system.domain.vo.CacheListInfoVo; +import lombok.RequiredArgsConstructor; +import org.redisson.spring.data.connection.RedissonConnectionFactory; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.*; + +/** + * 缓存监控 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/cache") +// 定义一个公共类 CacheController,该类可能是用于处理与缓存相关的控制器类 +// 通常在 Web 应用中,控制器负责接收客户端请求并返回响应数据 +public class CacheController { + + // 定义一个 final 类型的私有成员变量 connectionFactory, + // 用于获取 Redisson 连接工厂,这里 Redisson 是一个在 Java 中用于 Redis 操作的库 + // 该变量被 final 修饰,意味着在对象初始化后不能再被重新赋值 + private final RedissonConnectionFactory connectionFactory; + + // @SaCheckPermission 是一个自定义注解,用于权限检查, + // 这里表示只有拥有 "monitor:cache:list" 权限的用户才能访问该方法 + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 即当客户端发送 GET 请求到对应的路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:cache:list") + @GetMapping() + public R getInfo() throws Exception { + // 通过 connectionFactory 获取 Redis 连接对象, + // 后续对 Redis 的操作都将通过这个连接对象来完成 + RedisConnection connection = connectionFactory.getConnection(); + // 调用连接对象的 commands().info("commandstats") 方法, + // 获取 Redis 命令统计信息,并将其存储在 Properties 对象中 + Properties commandStats = connection.commands().info("commandstats"); + // 创建一个用于存储饼图数据的列表,每个元素是一个 Map, + // 这里用于后续处理 Redis 命令统计信息,以特定格式存储数据 + List> pieList = new ArrayList<>(); + // 如果获取到的命令统计信息不为空 + if (commandStats != null) { + // 遍历命令统计信息中的所有属性名 + commandStats.stringPropertyNames().forEach(key -> { + // 创建一个新的 HashMap 用于存储当前命令的统计数据 + Map data = new HashMap<>(2); + // 获取当前命令属性的值 + String property = commandStats.getProperty(key); + // 从属性名中移除 "cmdstat_" 前缀,并将处理后的名称存储到 data 的 "name" 键中 + data.put("name", StringUtils.removeStart(key, "cmdstat_")); + // 从属性值中截取 "calls=" 和 ",usec" 之间的部分, + // 并将其存储到 data 的 "value" 键中,获取命令的调用次数 + data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); + // 将当前命令的统计数据添加到 pieList 列表中 + pieList.add(data); + }); + } + // 创建一个 CacheListInfoVo 对象,用于封装要返回的缓存信息 + CacheListInfoVo infoVo = new CacheListInfoVo(); + // 获取 Redis 的全面信息(可能包含各种统计和配置信息), + // 并将其设置到 infoVo 对象的 info 属性中 + infoVo.setInfo(connection.commands().info()); + // 获取 Redis 数据库的大小(即键的数量), + // 并将其设置到 infoVo 对象的 dbSize 属性中 + infoVo.setDbSize(connection.commands().dbSize()); + // 将处理后的命令统计信息列表(pieList)设置到 infoVo 对象的 commandStats 属性中 + infoVo.setCommandStats(pieList); + // 返回一个包含缓存信息对象 infoVo 的 R 类型对象, + // R 可能是自定义的用于封装响应结果的类,ok 方法表示操作成功, + // 并将 infoVo 作为响应数据返回给客户端 + return R.ok(infoVo); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java new file mode 100644 index 0000000..26fd258 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java @@ -0,0 +1,130 @@ +package org.dromara.system.controller.monitor; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.redis.utils.RedisUtils; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysLogininforBo; +import org.dromara.system.domain.vo.SysLogininforVo; +import org.dromara.system.service.ISysLogininforService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 系统访问记录 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/logininfor") +// 定义一个公共类 SysLogininforController,该类继承自 BaseController 类, +// 通常用于处理与系统登录信息相关的业务逻辑,是 Web 应用中控制器层的一部分 +public class SysLogininforController extends BaseController { + + // 定义一个 final 类型的私有成员变量 logininforService, + // 用于处理系统登录信息的业务逻辑,通过依赖注入的方式进行初始化, + // 该变量被 final 修饰,意味着在对象初始化后不能再被重新赋值 + private final ISysLogininforService logininforService; + + // @SaCheckPermission 是一个自定义注解,用于权限检查, + // 这里表示只有拥有 "monitor:logininfor:list" 权限的用户才能访问该方法 + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 路径为 "/list",即当客户端发送 GET 请求到 "/list" 路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:logininfor:list") + @GetMapping("/list") + // 定义一个方法 list,用于获取系统登录信息的分页列表 + // @param logininfor 封装了查询条件的 SysLogininforBo 对象 + // @param pageQuery 封装了分页信息的 PageQuery 对象 + // @return TableDataInfo 类型的对象,包含了分页的系统登录信息 + public TableDataInfo list(SysLogininforBo logininfor, PageQuery pageQuery) { + // 调用 logininforService 的 selectPageLogininforList 方法, + // 获取分页的系统登录信息,并返回结果 + return logininforService.selectPageLogininforList(logininfor, pageQuery); + } + + // @Log 是一个自定义注解,用于记录操作日志,这里记录操作的标题为 "登录日志",业务类型为导出 + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:logininfor:export" 权限的用户才能访问该方法 + // @PostMapping 是 Spring 框架的注解,用于将 HTTP POST 请求映射到该方法上, + // 路径为 "/export",即当客户端发送 POST 请求到 "/export" 路径时,会调用这个方法进行处理 + @Log(title = "登录日志", businessType = BusinessType.EXPORT) + @SaCheckPermission("monitor:logininfor:export") + @PostMapping("/export") + // 定义一个方法 export,用于导出系统登录信息 + // @param logininfor 封装了查询条件的 SysLogininforBo 对象 + // @param response HttpServletResponse 对象,用于设置响应内容并返回给客户端 + public void export(SysLogininforBo logininfor, HttpServletResponse response) { + // 调用 logininforService 的 selectLogininforList 方法, + // 获取系统登录信息列表 + List list = logininforService.selectLogininforList(logininfor); + // 调用 ExcelUtil 的 exportExcel 方法,将系统登录信息列表导出为 Excel 文件, + // 并通过 response 返回给客户端 + ExcelUtil.exportExcel(list, "登录日志", SysLogininforVo.class, response); + } + + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:logininfor:remove" 权限的用户才能访问该方法 + // @Log 用于记录操作日志,操作标题为 "登录日志",业务类型为删除 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/{infoIds}",其中 {infoIds} 是一个路径参数,即当客户端发送 DELETE 请求到包含 infoIds 的路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:logininfor:remove") + @Log(title = "登录日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{infoIds}") + // 定义一个方法 remove,用于删除系统登录信息 + // @param infoIds 要删除的系统登录信息的 ID 数组,通过 @PathVariable 注解获取路径参数 + // @return R 类型的对象,用于封装响应结果,这里表示删除操作的结果 + public R remove(@PathVariable Long[] infoIds) { + // 调用 logininforService 的 deleteLogininforByIds 方法, + // 根据 ID 数组删除系统登录信息,并通过 toAjax 方法将结果封装为 R 对象返回 + return toAjax(logininforService.deleteLogininforByIds(infoIds)); + } + + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:logininfor:remove" 权限的用户才能访问该方法 + // @Log 用于记录操作日志,操作标题为 "登录日志",业务类型为清理 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/clean",即当客户端发送 DELETE 请求到 "/clean" 路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:logininfor:remove") + @Log(title = "登录日志", businessType = BusinessType.CLEAN) + @DeleteMapping("/clean") + // 定义一个方法 clean,用于清理系统登录信息 + // @return R 类型的对象,用于封装响应结果,这里表示清理操作的结果 + public R clean() { + // 调用 logininforService 的 cleanLogininfor 方法,清理系统登录信息 + logininforService.cleanLogininfor(); + // 返回表示操作成功的 R 对象 + return R.ok(); + } + + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:logininfor:unlock" 权限的用户才能访问该方法 + // @Log 用于记录操作日志,操作标题为 "账户解锁",业务类型为其他 + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 路径为 "/unlock/{userName}",其中 {userName} 是一个路径参数, + // 即当客户端发送 GET 请求到包含 userName 的路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:logininfor:unlock") + @Log(title = "账户解锁", businessType = BusinessType.OTHER) + @GetMapping("/unlock/{userName}") + // 定义一个方法 unlock,用于解锁账户 + // @param userName 要解锁的账户的用户名,通过 @PathVariable 注解获取路径参数 + // @return R 类型的对象,用于封装响应结果,这里表示解锁操作的结果 + public R unlock(@PathVariable("userName") String userName) { + // 构建缓存键,格式为 CacheConstants.PWD_ERR_CNT_KEY + userName + String loginName = CacheConstants.PWD_ERR_CNT_KEY + userName; + // 检查缓存中是否存在该键 + if (RedisUtils.hasKey(loginName)) { + // 如果存在,删除该缓存键,实现账户解锁 + RedisUtils.deleteObject(loginName); + } + // 返回表示操作成功的 R 对象 + return R.ok(); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java new file mode 100644 index 0000000..3b55859 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java @@ -0,0 +1,105 @@ +package org.dromara.system.controller.monitor; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.dromara.system.domain.vo.SysOperLogVo; +import org.dromara.system.service.ISysOperLogService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 操作日志记录 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/operlog") +// 定义一个公共类 SysOperlogController,该类继承自 BaseController 类, +// 用于处理与系统操作日志相关的业务逻辑,是 Web 应用中控制器层的一部分 +public class SysOperlogController extends BaseController { + + // 定义一个 final 类型的私有成员变量 operLogService, + // 用于处理系统操作日志的业务逻辑,通过依赖注入的方式进行初始化, + // 该变量被 final 修饰,意味着在对象初始化后不能再被重新赋值 + private final ISysOperLogService operLogService; + + // @SaCheckPermission 是一个自定义注解,用于权限检查, + // 这里表示只有拥有 "monitor:operlog:list" 权限的用户才能访问该方法 + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 路径为 "/list",即当客户端发送 GET 请求到 "/list" 路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:operlog:list") + @GetMapping("/list") + // 定义一个方法 list,用于获取系统操作日志的分页列表 + // @param operLog 封装了查询条件的 SysOperLogBo 对象 + // @param pageQuery 封装了分页信息的 PageQuery 对象 + // @return TableDataInfo 类型的对象,包含了分页的系统操作日志信息 + public TableDataInfo list(SysOperLogBo operLog, PageQuery pageQuery) { + // 调用 operLogService 的 selectPageOperLogList 方法, + // 获取分页的系统操作日志信息,并返回结果 + return operLogService.selectPageOperLogList(operLog, pageQuery); + } + + // @Log 是一个自定义注解,用于记录操作日志,这里记录操作的标题为 "操作日志",业务类型为导出 + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:operlog:export" 权限的用户才能访问该方法 + // @PostMapping 是 Spring 框架的注解,用于将 HTTP POST 请求映射到该方法上, + // 路径为 "/export",即当客户端发送 POST 请求到 "/export" 路径时,会调用这个方法进行处理 + @Log(title = "操作日志", businessType = BusinessType.EXPORT) + @SaCheckPermission("monitor:operlog:export") + @PostMapping("/export") + // 定义一个方法 export,用于导出系统操作日志 + // @param operLog 封装了查询条件的 SysOperLogBo 对象 + // @param response HttpServletResponse 对象,用于设置响应内容并返回给客户端 + public void export(SysOperLogBo operLog, HttpServletResponse response) { + // 调用 operLogService 的 selectOperLogList 方法, + // 获取系统操作日志列表 + List list = operLogService.selectOperLogList(operLog); + // 调用 ExcelUtil 的 exportExcel 方法,将系统操作日志列表导出为 Excel 文件, + // 并通过 response 返回给客户端 + ExcelUtil.exportExcel(list, "操作日志", SysOperLogVo.class, response); + } + + // @Log 用于记录操作日志,操作标题为 "操作日志",业务类型为删除 + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:operlog:remove" 权限的用户才能访问该方法 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/{operIds}",其中 {operIds} 是一个路径参数,即当客户端发送 DELETE 请求到包含 operIds 的路径时,会调用这个方法进行处理 + @Log(title = "操作日志", businessType = BusinessType.DELETE) + @SaCheckPermission("monitor:operlog:remove") + @DeleteMapping("/{operIds}") + // 定义一个方法 remove,用于删除系统操作日志 + // @param operIds 要删除的系统操作日志的 ID 数组,通过 @PathVariable 注解获取路径参数 + // @return R 类型的对象,用于封装响应结果,这里表示删除操作的结果 + public R remove(@PathVariable Long[] operIds) { + // 调用 operLogService 的 deleteOperLogByIds 方法, + // 根据 ID 数组删除系统操作日志,并通过 toAjax 方法将结果封装为 R 对象返回 + return toAjax(operLogService.deleteOperLogByIds(operIds)); + } + + // @Log 用于记录操作日志,操作标题为 "操作日志",业务类型为清理 + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:operlog:remove" 权限的用户才能访问该方法 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/clean",即当客户端发送 DELETE 请求到 "/clean" 路径时,会调用这个方法进行处理 + @Log(title = "操作日志", businessType = BusinessType.CLEAN) + @SaCheckPermission("monitor:operlog:remove") + @DeleteMapping("/clean") + // 定义一个方法 clean,用于清理系统操作日志 + // @return R 类型的对象,用于封装响应结果,这里表示清理操作的结果 + public R clean() { + // 调用 operLogService 的 cleanOperLog 方法,清理系统操作日志 + operLogService.cleanOperLog(); + // 返回表示操作成功的 R 对象 + return R.ok(); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java new file mode 100644 index 0000000..9bb72a6 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java @@ -0,0 +1,171 @@ +package org.dromara.system.controller.monitor; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.exception.NotLoginException; +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.bean.BeanUtil; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.dto.UserOnlineDTO; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.redis.utils.RedisUtils; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.SysUserOnline; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 在线用户监控 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/online") +// 定义一个公共类 SysUserOnlineController,该类继承自 BaseController 类, +// 用于处理与系统在线用户相关的业务逻辑,是 Web 应用中控制器层的一部分 +public class SysUserOnlineController extends BaseController { + + // @SaCheckPermission 是一个自定义注解,用于权限检查, + // 这里表示只有拥有 "monitor:online:list" 权限的用户才能访问该方法 + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 路径为 "/list",即当客户端发送 GET 请求到 "/list" 路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:online:list") + @GetMapping("/list") + // 定义一个方法 list,用于获取系统在线用户的列表 + // @param ipaddr 客户端的 IP 地址,用于筛选在线用户(可选参数) + // @param userName 用户名,用于筛选在线用户(可选参数) + // @return TableDataInfo 类型的对象,包含了系统在线用户信息 + public TableDataInfo list(String ipaddr, String userName) { + // 从 Redis 中获取所有符合特定键模式(CacheConstants.ONLINE_TOKEN_KEY + "*")的键集合, + // 这些键与在线用户的 token 相关 + Collection keys = RedisUtils.keys(CacheConstants.ONLINE_TOKEN_KEY + "*"); + // 创建一个用于存储用户在线数据传输对象(UserOnlineDTO)的列表 + List userOnlineDTOList = new ArrayList<>(); + // 遍历获取到的键集合 + for (String key : keys) { + // 从键中提取出 token,即键的最后一部分 + String token = StringUtils.substringAfterLast(key, ":"); + // 通过 StpUtil 获取该 token 的有效超时时间,如果小于 -1 表示该 token 无效,跳过该 token + if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < -1) { + continue; + } + // 从 Redis 中获取与该 token 对应的用户在线数据传输对象,并添加到列表中 + userOnlineDTOList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)); + } + // 如果同时传入了 ipaddr 和 userName 参数 + if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { + // 使用 StreamUtils 对用户在线数据传输对象列表进行筛选, + // 只保留 IP 地址和用户名都匹配的对象 + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> + StringUtils.equals(ipaddr, userOnline.getIpaddr()) && + StringUtils.equals(userName, userOnline.getUserName()) + ); + } + // 如果只传入了 ipaddr 参数 + else if (StringUtils.isNotEmpty(ipaddr)) { + // 使用 StreamUtils 对用户在线数据传输对象列表进行筛选, + // 只保留 IP 地址匹配的对象 + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> + StringUtils.equals(ipaddr, userOnline.getIpaddr()) + ); + } + // 如果只传入了 userName 参数 + else if (StringUtils.isNotEmpty(userName)) { + // 使用 StreamUtils 对用户在线数据传输对象列表进行筛选, + // 只保留用户名匹配的对象 + userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline -> + StringUtils.equals(userName, userOnline.getUserName()) + ); + } + // 将用户在线数据传输对象列表进行反转 + Collections.reverse(userOnlineDTOList); + // 从列表中移除所有值为 null 的元素 + userOnlineDTOList.removeAll(Collections.singleton(null)); + // 将用户在线数据传输对象列表转换为 SysUserOnline 对象列表 + List userOnlineList = BeanUtil.copyToList(userOnlineDTOList, SysUserOnline.class); + // 使用 TableDataInfo 的 build 方法构建包含在线用户列表的 TableDataInfo 对象并返回 + return TableDataInfo.build(userOnlineList); + } + + // @SaCheckPermission 用于权限检查,只有拥有 "monitor:online:forceLogout" 权限的用户才能访问该方法 + // @Log 是一个自定义注解,用于记录操作日志,这里记录操作的标题为 "在线用户",业务类型为强制操作 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/{tokenId}",其中 {tokenId} 是一个路径参数,即当客户端发送 DELETE 请求到包含 tokenId 的路径时,会调用这个方法进行处理 + @SaCheckPermission("monitor:online:forceLogout") + @Log(title = "在线用户", businessType = BusinessType.FORCE) + @DeleteMapping("/{tokenId}") + // 定义一个方法 forceLogout,用于强制注销指定 tokenId 的用户 + // @param tokenId 要强制注销的用户的 tokenId,通过 @PathVariable 注解获取路径参数 + // @return R 类型的对象,用于封装响应结果,这里表示强制注销操作的结果 + public R forceLogout(@PathVariable String tokenId) { + try { + // 使用 StpUtil 的 kickoutByTokenValue 方法,根据 tokenId 强制踢出用户 + StpUtil.kickoutByTokenValue(tokenId); + } catch (NotLoginException ignored) { + // 如果捕获到 NotLoginException 异常,不进行任何处理(忽略该异常) + } + // 返回表示操作成功的 R 对象 + return R.ok(); + } + + // @GetMapping 是 Spring 框架的注解,用于将 HTTP GET 请求映射到该方法上, + // 这里没有指定路径,可能是映射到根路径,即当客户端发送 GET 请求到该控制器的根路径时,会调用这个方法进行处理 + @GetMapping() + // 定义一个方法 getInfo,用于获取当前登录用户的在线设备信息 + // @return TableDataInfo 类型的对象,包含了当前登录用户的在线设备信息 + public TableDataInfo getInfo() { + // 获取当前登录用户的账号 id 对应的 token 集合 + List tokenIds = StpUtil.getTokenValueListByLoginId(StpUtil.getLoginIdAsString()); + // 对 token 集合进行处理,筛选出有效 token(有效超时时间大于等于 -1), + // 并从 Redis 中获取对应的用户在线数据传输对象,然后收集到列表中 + List userOnlineDTOList = tokenIds.stream() + .filter(token -> StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) >= -1) + .map(token -> (UserOnlineDTO) RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)) + .collect(Collectors.toList()); + // 将用户在线数据传输对象列表进行反转 + Collections.reverse(userOnlineDTOList); + // 从列表中移除所有值为 null 的元素 + userOnlineDTOList.removeAll(Collections.singleton(null)); + // 将用户在线数据传输对象列表转换为 SysUserOnline 对象列表 + List userOnlineList = BeanUtil.copyToList(userOnlineDTOList, SysUserOnline.class); + // 使用 TableDataInfo 的 build 方法构建包含当前登录用户在线设备列表的 TableDataInfo 对象并返回 + return TableDataInfo.build(userOnlineList); + } + + // @Log 用于记录操作日志,操作标题为 "在线设备",业务类型为强制操作 + // @DeleteMapping 是 Spring 框架的注解,用于将 HTTP DELETE 请求映射到该方法上, + // 路径为 "/myself/{tokenId}",其中 {tokenId} 是一个路径参数, + // 即当客户端发送 DELETE 请求到包含 tokenId 的路径时,会调用这个方法进行处理 + @Log(title = "在线设备", businessType = BusinessType.FORCE) + @DeleteMapping("/myself/{tokenId}") + // 定义一个方法 remove,用于移除当前登录用户的指定在线设备(通过 tokenId) + // @param tokenId 要移除的在线设备对应的 tokenId,通过 @PathVariable 注解获取路径参数 + // @return R 类型的对象,用于封装响应结果,这里表示移除操作的结果 + public R remove(@PathVariable("tokenId") String tokenId) { + try { + // 获取当前登录用户的所有 token 集合 + List keys = StpUtil.getTokenValueListByLoginId(StpUtil.getLoginIdAsString()); + // 对 token 集合进行筛选,找到与传入的 tokenId 匹配的 token, + // 如果找到则使用 StpUtil 的 kickoutByTokenValue 方法强制踢出该设备对应的用户 + keys.stream() + .filter(key -> key.equals(tokenId)) + .findFirst() + .ifPresent(key -> StpUtil.kickoutByTokenValue(tokenId)); + } catch (NotLoginException ignored) { + // 如果捕获到 NotLoginException 异常,不进行任何处理(忽略该异常) + } + // 返回表示操作成功的 R 对象 + return R.ok(); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java new file mode 100644 index 0000000..eaed068 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java @@ -0,0 +1,115 @@ +package org.dromara.system.controller.system; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.system.domain.bo.SysClientBo; +import org.dromara.system.service.ISysClientService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 客户端管理 + * + * @author Michelle.Chung + * @date 2023-06-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/client") +public class SysClientController extends BaseController { + + private final ISysClientService sysClientService; + + /** + * 查询客户端管理列表 + */ + @SaCheckPermission("system:client:list") + @GetMapping("/list") + public TableDataInfo list(SysClientBo bo, PageQuery pageQuery) { + return sysClientService.queryPageList(bo, pageQuery); + } + + /** + * 导出客户端管理列表 + */ + @SaCheckPermission("system:client:export") + @Log(title = "客户端管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysClientBo bo, HttpServletResponse response) { + List list = sysClientService.queryList(bo); + ExcelUtil.exportExcel(list, "客户端管理", SysClientVo.class, response); + } + + /** + * 获取客户端管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:client:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(sysClientService.queryById(id)); + } + + /** + * 新增客户端管理 + */ + @SaCheckPermission("system:client:add") + @Log(title = "客户端管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysClientBo bo) { + return toAjax(sysClientService.insertByBo(bo)); + } + + /** + * 修改客户端管理 + */ + @SaCheckPermission("system:client:edit") + @Log(title = "客户端管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysClientBo bo) { + return toAjax(sysClientService.updateByBo(bo)); + } + + /** + * 状态修改 + */ + @SaCheckPermission("system:client:edit") + @Log(title = "客户端管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysClientBo bo) { + return toAjax(sysClientService.updateClientStatus(bo.getClientId(), bo.getStatus())); + } + + /** + * 删除客户端管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:client:remove") + @Log(title = "客户端管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(sysClientService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java new file mode 100644 index 0000000..c73c386 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java @@ -0,0 +1,137 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysConfigBo; +import org.dromara.system.domain.vo.SysConfigVo; +import org.dromara.system.service.ISysConfigService; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 参数配置 信息操作处理 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/config") +public class SysConfigController extends BaseController { + + private final ISysConfigService configService; + + /** + * 获取参数配置列表 + */ + @SaCheckPermission("system:config:list") + @GetMapping("/list") + public TableDataInfo list(SysConfigBo config, PageQuery pageQuery) { + return configService.selectPageConfigList(config, pageQuery); + } + + /** + * 导出参数配置列表 + */ + @Log(title = "参数管理", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:config:export") + @PostMapping("/export") + public void export(SysConfigBo config, HttpServletResponse response) { + List list = configService.selectConfigList(config); + ExcelUtil.exportExcel(list, "参数数据", SysConfigVo.class, response); + } + + /** + * 根据参数编号获取详细信息 + * + * @param configId 参数ID + */ + @SaCheckPermission("system:config:query") + @GetMapping(value = "/{configId}") + public R getInfo(@PathVariable Long configId) { + return R.ok(configService.selectConfigById(configId)); + } + + /** + * 根据参数键名查询参数值 + * + * @param configKey 参数Key + */ + @GetMapping(value = "/configKey/{configKey}") + public R getConfigKey(@PathVariable String configKey) { + return R.ok("操作成功", configService.selectConfigByKey(configKey)); + } + + /** + * 新增参数配置 + */ + @SaCheckPermission("system:config:add") + @Log(title = "参数管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysConfigBo config) { + if (!configService.checkConfigKeyUnique(config)) { + return R.fail("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + configService.insertConfig(config); + return R.ok(); + } + + /** + * 修改参数配置 + */ + @SaCheckPermission("system:config:edit") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysConfigBo config) { + if (!configService.checkConfigKeyUnique(config)) { + return R.fail("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + configService.updateConfig(config); + return R.ok(); + } + + /** + * 根据参数键名修改参数配置 + */ + @SaCheckPermission("system:config:edit") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping("/updateByKey") + public R updateByKey(@RequestBody SysConfigBo config) { + configService.updateConfig(config); + return R.ok(); + } + + /** + * 删除参数配置 + * + * @param configIds 参数ID串 + */ + @SaCheckPermission("system:config:remove") + @Log(title = "参数管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public R remove(@PathVariable Long[] configIds) { + configService.deleteConfigByIds(configIds); + return R.ok(); + } + + /** + * 刷新参数缓存 + */ + @SaCheckPermission("system:config:remove") + @Log(title = "参数管理", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public R refreshCache() { + configService.resetConfigCache(); + return R.ok(); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java new file mode 100644 index 0000000..45b8418 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java @@ -0,0 +1,140 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.convert.Convert; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysDeptBo; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.service.ISysDeptService; +import org.dromara.system.service.ISysPostService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 部门信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/dept") +public class SysDeptController extends BaseController { + + private final ISysDeptService deptService; + private final ISysPostService postService; + + /** + * 获取部门列表 + */ + @SaCheckPermission("system:dept:list") + @GetMapping("/list") + public R> list(SysDeptBo dept) { + List depts = deptService.selectDeptList(dept); + return R.ok(depts); + } + + /** + * 查询部门列表(排除节点) + * + * @param deptId 部门ID + */ + @SaCheckPermission("system:dept:list") + @GetMapping("/list/exclude/{deptId}") + public R> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { + List depts = deptService.selectDeptList(new SysDeptBo()); + depts.removeIf(d -> d.getDeptId().equals(deptId) + || StringUtils.splitList(d.getAncestors()).contains(Convert.toStr(deptId))); + return R.ok(depts); + } + + /** + * 根据部门编号获取详细信息 + * + * @param deptId 部门ID + */ + @SaCheckPermission("system:dept:query") + @GetMapping(value = "/{deptId}") + public R getInfo(@PathVariable Long deptId) { + deptService.checkDeptDataScope(deptId); + return R.ok(deptService.selectDeptById(deptId)); + } + + /** + * 新增部门 + */ + @SaCheckPermission("system:dept:add") + @Log(title = "部门管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysDeptBo dept) { + if (!deptService.checkDeptNameUnique(dept)) { + return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } + return toAjax(deptService.insertDept(dept)); + } + + /** + * 修改部门 + */ + @SaCheckPermission("system:dept:edit") + @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysDeptBo dept) { + Long deptId = dept.getDeptId(); + deptService.checkDeptDataScope(deptId); + if (!deptService.checkDeptNameUnique(dept)) { + return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } else if (dept.getParentId().equals(deptId)) { + return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + } else if (StringUtils.equals(SystemConstants.DISABLE, dept.getStatus())) { + if (deptService.selectNormalChildrenDeptById(deptId) > 0) { + return R.fail("该部门包含未停用的子部门!"); + } else if (deptService.checkDeptExistUser(deptId)) { + return R.fail("该部门下存在已分配用户,不能禁用!"); + } + } + return toAjax(deptService.updateDept(dept)); + } + + /** + * 删除部门 + * + * @param deptId 部门ID + */ + @SaCheckPermission("system:dept:remove") + @Log(title = "部门管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{deptId}") + public R remove(@PathVariable Long deptId) { + if (deptService.hasChildByDeptId(deptId)) { + return R.warn("存在下级部门,不允许删除"); + } + if (deptService.checkDeptExistUser(deptId)) { + return R.warn("部门存在用户,不允许删除"); + } + if (postService.countPostByDeptId(deptId) > 0) { + return R.warn("部门存在岗位,不允许删除"); + } + deptService.checkDeptDataScope(deptId); + return toAjax(deptService.deleteDeptById(deptId)); + } + + /** + * 获取部门选择框列表 + * + * @param deptIds 部门ID串 + */ + @SaCheckPermission("system:dept:query") + @GetMapping("/optionselect") + public R> optionselect(@RequestParam(required = false) Long[] deptIds) { + return R.ok(deptService.selectDeptByIds(deptIds == null ? null : List.of(deptIds))); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java new file mode 100644 index 0000000..5752751 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java @@ -0,0 +1,123 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.bo.SysDictDataBo; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.dromara.system.service.ISysDictDataService; +import org.dromara.system.service.ISysDictTypeService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +/** + * 数据字典信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/dict/data") +public class SysDictDataController extends BaseController { + + private final ISysDictDataService dictDataService; + private final ISysDictTypeService dictTypeService; + + /** + * 查询字典数据列表 + */ + @SaCheckPermission("system:dict:list") + @GetMapping("/list") + public TableDataInfo list(SysDictDataBo dictData, PageQuery pageQuery) { + return dictDataService.selectPageDictDataList(dictData, pageQuery); + } + + /** + * 导出字典数据列表 + */ + @Log(title = "字典数据", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:dict:export") + @PostMapping("/export") + public void export(SysDictDataBo dictData, HttpServletResponse response) { + List list = dictDataService.selectDictDataList(dictData); + ExcelUtil.exportExcel(list, "字典数据", SysDictDataVo.class, response); + } + + /** + * 查询字典数据详细 + * + * @param dictCode 字典code + */ + @SaCheckPermission("system:dict:query") + @GetMapping(value = "/{dictCode}") + public R getInfo(@PathVariable Long dictCode) { + return R.ok(dictDataService.selectDictDataById(dictCode)); + } + + /** + * 根据字典类型查询字典数据信息 + * + * @param dictType 字典类型 + */ + @GetMapping(value = "/type/{dictType}") + public R> dictType(@PathVariable String dictType) { + List data = dictTypeService.selectDictDataByType(dictType); + if (ObjectUtil.isNull(data)) { + data = new ArrayList<>(); + } + return R.ok(data); + } + + /** + * 新增字典类型 + */ + @SaCheckPermission("system:dict:add") + @Log(title = "字典数据", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysDictDataBo dict) { + if (!dictDataService.checkDictDataUnique(dict)) { + return R.fail("新增字典数据'" + dict.getDictValue() + "'失败,字典键值已存在"); + } + dictDataService.insertDictData(dict); + return R.ok(); + } + + /** + * 修改保存字典类型 + */ + @SaCheckPermission("system:dict:edit") + @Log(title = "字典数据", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysDictDataBo dict) { + if (!dictDataService.checkDictDataUnique(dict)) { + return R.fail("修改字典数据'" + dict.getDictValue() + "'失败,字典键值已存在"); + } + dictDataService.updateDictData(dict); + return R.ok(); + } + + /** + * 删除字典类型 + * + * @param dictCodes 字典code串 + */ + @SaCheckPermission("system:dict:remove") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public R remove(@PathVariable Long[] dictCodes) { + dictDataService.deleteDictDataByIds(dictCodes); + return R.ok(); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java new file mode 100644 index 0000000..67c1f51 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java @@ -0,0 +1,125 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysDictTypeBo; +import org.dromara.system.domain.vo.SysDictTypeVo; +import org.dromara.system.service.ISysDictTypeService; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 数据字典信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/dict/type") +public class SysDictTypeController extends BaseController { + + private final ISysDictTypeService dictTypeService; + + /** + * 查询字典类型列表 + */ + @SaCheckPermission("system:dict:list") + @GetMapping("/list") + public TableDataInfo list(SysDictTypeBo dictType, PageQuery pageQuery) { + return dictTypeService.selectPageDictTypeList(dictType, pageQuery); + } + + /** + * 导出字典类型列表 + */ + @Log(title = "字典类型", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:dict:export") + @PostMapping("/export") + public void export(SysDictTypeBo dictType, HttpServletResponse response) { + List list = dictTypeService.selectDictTypeList(dictType); + ExcelUtil.exportExcel(list, "字典类型", SysDictTypeVo.class, response); + } + + /** + * 查询字典类型详细 + * + * @param dictId 字典ID + */ + @SaCheckPermission("system:dict:query") + @GetMapping(value = "/{dictId}") + public R getInfo(@PathVariable Long dictId) { + return R.ok(dictTypeService.selectDictTypeById(dictId)); + } + + /** + * 新增字典类型 + */ + @SaCheckPermission("system:dict:add") + @Log(title = "字典类型", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysDictTypeBo dict) { + if (!dictTypeService.checkDictTypeUnique(dict)) { + return R.fail("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dictTypeService.insertDictType(dict); + return R.ok(); + } + + /** + * 修改字典类型 + */ + @SaCheckPermission("system:dict:edit") + @Log(title = "字典类型", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysDictTypeBo dict) { + if (!dictTypeService.checkDictTypeUnique(dict)) { + return R.fail("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dictTypeService.updateDictType(dict); + return R.ok(); + } + + /** + * 删除字典类型 + * + * @param dictIds 字典ID串 + */ + @SaCheckPermission("system:dict:remove") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictIds}") + public R remove(@PathVariable Long[] dictIds) { + dictTypeService.deleteDictTypeByIds(dictIds); + return R.ok(); + } + + /** + * 刷新字典缓存 + */ + @SaCheckPermission("system:dict:remove") + @Log(title = "字典类型", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public R refreshCache() { + dictTypeService.resetDictCache(); + return R.ok(); + } + + /** + * 获取字典选择框列表 + */ + @GetMapping("/optionselect") + public R> optionselect() { + List dictTypes = dictTypeService.selectDictTypeAll(); + return R.ok(dictTypes); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java new file mode 100644 index 0000000..d8cd335 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java @@ -0,0 +1,174 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaCheckRole; +import cn.dev33.satoken.annotation.SaMode; +import cn.hutool.core.lang.tree.Tree; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.constant.TenantConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.SysMenu; +import org.dromara.system.domain.bo.SysMenuBo; +import org.dromara.system.domain.vo.MenuTreeSelectVo; +import org.dromara.system.domain.vo.RouterVo; +import org.dromara.system.domain.vo.SysMenuVo; +import org.dromara.system.service.ISysMenuService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 菜单信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/menu") +public class SysMenuController extends BaseController { + + private final ISysMenuService menuService; + + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("/getRouters") + public R> getRouters() { + List menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId()); + return R.ok(menuService.buildMenus(menus)); + } + + /** + * 获取菜单列表 + */ + @SaCheckRole(value = { + TenantConstants.SUPER_ADMIN_ROLE_KEY, + TenantConstants.TENANT_ADMIN_ROLE_KEY + }, mode = SaMode.OR) + @SaCheckPermission("system:menu:list") + @GetMapping("/list") + public R> list(SysMenuBo menu) { + List menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); + return R.ok(menus); + } + + /** + * 根据菜单编号获取详细信息 + * + * @param menuId 菜单ID + */ + @SaCheckRole(value = { + TenantConstants.SUPER_ADMIN_ROLE_KEY, + TenantConstants.TENANT_ADMIN_ROLE_KEY + }, mode = SaMode.OR) + @SaCheckPermission("system:menu:query") + @GetMapping(value = "/{menuId}") + public R getInfo(@PathVariable Long menuId) { + return R.ok(menuService.selectMenuById(menuId)); + } + + /** + * 获取菜单下拉树列表 + */ + @SaCheckPermission("system:menu:query") + @GetMapping("/treeselect") + public R>> treeselect(SysMenuBo menu) { + List menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); + return R.ok(menuService.buildMenuTreeSelect(menus)); + } + + /** + * 加载对应角色菜单列表树 + * + * @param roleId 角色ID + */ + @SaCheckPermission("system:menu:query") + @GetMapping(value = "/roleMenuTreeselect/{roleId}") + public R roleMenuTreeselect(@PathVariable("roleId") Long roleId) { + List menus = menuService.selectMenuList(LoginHelper.getUserId()); + MenuTreeSelectVo selectVo = new MenuTreeSelectVo(); + selectVo.setCheckedKeys(menuService.selectMenuListByRoleId(roleId)); + selectVo.setMenus(menuService.buildMenuTreeSelect(menus)); + return R.ok(selectVo); + } + + /** + * 加载对应租户套餐菜单列表树 + * + * @param packageId 租户套餐ID + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:menu:query") + @GetMapping(value = "/tenantPackageMenuTreeselect/{packageId}") + public R tenantPackageMenuTreeselect(@PathVariable("packageId") Long packageId) { + List menus = menuService.selectMenuList(LoginHelper.getUserId()); + MenuTreeSelectVo selectVo = new MenuTreeSelectVo(); + selectVo.setCheckedKeys(menuService.selectMenuListByPackageId(packageId)); + selectVo.setMenus(menuService.buildMenuTreeSelect(menus)); + return R.ok(selectVo); + } + + /** + * 新增菜单 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:menu:add") + @Log(title = "菜单管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysMenuBo menu) { + if (!menuService.checkMenuNameUnique(menu)) { + return R.fail("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } else if (SystemConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { + return R.fail("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } + return toAjax(menuService.insertMenu(menu)); + } + + /** + * 修改菜单 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:menu:edit") + @Log(title = "菜单管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysMenuBo menu) { + if (!menuService.checkMenuNameUnique(menu)) { + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } else if (SystemConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } else if (menu.getMenuId().equals(menu.getParentId())) { + return R.fail("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + } + return toAjax(menuService.updateMenu(menu)); + } + + /** + * 删除菜单 + * + * @param menuId 菜单ID + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:menu:remove") + @Log(title = "菜单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{menuId}") + public R remove(@PathVariable("menuId") Long menuId) { + if (menuService.hasChildByMenuId(menuId)) { + return R.warn("存在子菜单,不允许删除"); + } + if (menuService.checkMenuExistRole(menuId)) { + return R.warn("菜单已分配,不允许删除"); + } + return toAjax(menuService.deleteMenuById(menuId)); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java new file mode 100644 index 0000000..5d65137 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java @@ -0,0 +1,90 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.service.DictService; +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.common.sse.utils.SseMessageUtils; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysNoticeBo; +import org.dromara.system.domain.vo.SysNoticeVo; +import org.dromara.system.service.ISysNoticeService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 公告 信息操作处理 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/notice") +public class SysNoticeController extends BaseController { + + private final ISysNoticeService noticeService; + private final DictService dictService; + + /** + * 获取通知公告列表 + */ + @SaCheckPermission("system:notice:list") + @GetMapping("/list") + public TableDataInfo list(SysNoticeBo notice, PageQuery pageQuery) { + return noticeService.selectPageNoticeList(notice, pageQuery); + } + + /** + * 根据通知公告编号获取详细信息 + * + * @param noticeId 公告ID + */ + @SaCheckPermission("system:notice:query") + @GetMapping(value = "/{noticeId}") + public R getInfo(@PathVariable Long noticeId) { + return R.ok(noticeService.selectNoticeById(noticeId)); + } + + /** + * 新增通知公告 + */ + @SaCheckPermission("system:notice:add") + @Log(title = "通知公告", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysNoticeBo notice) { + int rows = noticeService.insertNotice(notice); + if (rows <= 0) { + return R.fail(); + } + String type = dictService.getDictLabel("sys_notice_type", notice.getNoticeType()); + SseMessageUtils.publishAll("[" + type + "] " + notice.getNoticeTitle()); + return R.ok(); + } + + /** + * 修改通知公告 + */ + @SaCheckPermission("system:notice:edit") + @Log(title = "通知公告", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysNoticeBo notice) { + return toAjax(noticeService.updateNotice(notice)); + } + + /** + * 删除通知公告 + * + * @param noticeIds 公告ID串 + */ + @SaCheckPermission("system:notice:remove") + @Log(title = "通知公告", businessType = BusinessType.DELETE) + @DeleteMapping("/{noticeIds}") + public R remove(@PathVariable Long[] noticeIds) { + return toAjax(noticeService.deleteNoticeByIds(noticeIds)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java new file mode 100644 index 0000000..24ddaff --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java @@ -0,0 +1,105 @@ +package org.dromara.system.controller.system; + +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.core.validate.QueryGroup; +import org.dromara.common.web.core.BaseController; +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.system.domain.bo.SysOssConfigBo; +import org.dromara.system.domain.vo.SysOssConfigVo; +import org.dromara.system.service.ISysOssConfigService; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 对象存储配置 + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/resource/oss/config") +public class SysOssConfigController extends BaseController { + + private final ISysOssConfigService ossConfigService; + + /** + * 查询对象存储配置列表 + */ + @SaCheckPermission("system:ossConfig:list") + @GetMapping("/list") + public TableDataInfo list(@Validated(QueryGroup.class) SysOssConfigBo bo, PageQuery pageQuery) { + return ossConfigService.queryPageList(bo, pageQuery); + } + + /** + * 获取对象存储配置详细信息 + * + * @param ossConfigId OSS配置ID + */ + @SaCheckPermission("system:ossConfig:list") + @GetMapping("/{ossConfigId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long ossConfigId) { + return R.ok(ossConfigService.queryById(ossConfigId)); + } + + /** + * 新增对象存储配置 + */ + @SaCheckPermission("system:ossConfig:add") + @Log(title = "对象存储配置", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) { + return toAjax(ossConfigService.insertByBo(bo)); + } + + /** + * 修改对象存储配置 + */ + @SaCheckPermission("system:ossConfig:edit") + @Log(title = "对象存储配置", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) { + return toAjax(ossConfigService.updateByBo(bo)); + } + + /** + * 删除对象存储配置 + * + * @param ossConfigIds OSS配置ID串 + */ + @SaCheckPermission("system:ossConfig:remove") + @Log(title = "对象存储配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ossConfigIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossConfigIds) { + return toAjax(ossConfigService.deleteWithValidByIds(List.of(ossConfigIds), true)); + } + + /** + * 状态修改 + */ + @SaCheckPermission("system:ossConfig:edit") + @Log(title = "对象存储状态修改", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysOssConfigBo bo) { + return toAjax(ossConfigService.updateOssConfigStatus(bo)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java new file mode 100644 index 0000000..81200c1 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java @@ -0,0 +1,108 @@ +package org.dromara.system.controller.system; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.QueryGroup; +import org.dromara.common.web.core.BaseController; +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.system.domain.bo.SysOssBo; +import org.dromara.system.domain.vo.SysOssUploadVo; +import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.service.ISysOssService; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +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 java.io.IOException; +import java.util.Arrays; +import java.util.List; + +/** + * 文件上传 控制层 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/resource/oss") +public class SysOssController extends BaseController { + + private final ISysOssService ossService; + + /** + * 查询OSS对象存储列表 + */ + @SaCheckPermission("system:oss:list") + @GetMapping("/list") + public TableDataInfo list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) { + return ossService.queryPageList(bo, pageQuery); + } + + /** + * 查询OSS对象基于id串 + * + * @param ossIds OSS对象ID串 + */ + @SaCheckPermission("system:oss:query") + @GetMapping("/listByIds/{ossIds}") + public R> listByIds(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossIds) { + List list = ossService.listByIds(Arrays.asList(ossIds)); + return R.ok(list); + } + + /** + * 上传OSS对象存储 + * + * @param file 文件 + */ + @SaCheckPermission("system:oss:upload") + @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R upload(@RequestPart("file") MultipartFile file) { + if (ObjectUtil.isNull(file)) { + return R.fail("上传文件不能为空"); + } + SysOssVo oss = ossService.upload(file); + SysOssUploadVo uploadVo = new SysOssUploadVo(); + uploadVo.setUrl(oss.getUrl()); + uploadVo.setFileName(oss.getOriginalName()); + uploadVo.setOssId(oss.getOssId().toString()); + return R.ok(uploadVo); + } + + /** + * 下载OSS对象 + * + * @param ossId OSS对象ID + */ + @SaCheckPermission("system:oss:download") + @GetMapping("/download/{ossId}") + public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { + ossService.download(ossId, response); + } + + /** + * 删除OSS对象存储 + * + * @param ossIds OSS对象ID串 + */ + @SaCheckPermission("system:oss:remove") + @Log(title = "OSS对象存储", businessType = BusinessType.DELETE) + @DeleteMapping("/{ossIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ossIds) { + return toAjax(ossService.deleteWithValidByIds(List.of(ossIds), true)); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java new file mode 100644 index 0000000..5333a4a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java @@ -0,0 +1,133 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysPostBo; +import org.dromara.system.domain.vo.SysPostVo; +import org.dromara.system.service.ISysPostService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * 岗位信息操作处理 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/post") +public class SysPostController extends BaseController { + + private final ISysPostService postService; + + /** + * 获取岗位列表 + */ + @SaCheckPermission("system:post:list") + @GetMapping("/list") + public TableDataInfo list(SysPostBo post, PageQuery pageQuery) { + return postService.selectPagePostList(post, pageQuery); + } + + /** + * 导出岗位列表 + */ + @Log(title = "岗位管理", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:post:export") + @PostMapping("/export") + public void export(SysPostBo post, HttpServletResponse response) { + List list = postService.selectPostList(post); + ExcelUtil.exportExcel(list, "岗位数据", SysPostVo.class, response); + } + + /** + * 根据岗位编号获取详细信息 + * + * @param postId 岗位ID + */ + @SaCheckPermission("system:post:query") + @GetMapping(value = "/{postId}") + public R getInfo(@PathVariable Long postId) { + return R.ok(postService.selectPostById(postId)); + } + + /** + * 新增岗位 + */ + @SaCheckPermission("system:post:add") + @Log(title = "岗位管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysPostBo post) { + if (!postService.checkPostNameUnique(post)) { + return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } else if (!postService.checkPostCodeUnique(post)) { + return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } + return toAjax(postService.insertPost(post)); + } + + /** + * 修改岗位 + */ + @SaCheckPermission("system:post:edit") + @Log(title = "岗位管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysPostBo post) { + if (!postService.checkPostNameUnique(post)) { + return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } else if (!postService.checkPostCodeUnique(post)) { + return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } else if (SystemConstants.DISABLE.equals(post.getStatus()) + && postService.countUserPostById(post.getPostId()) > 0) { + return R.fail("该岗位下存在已分配用户,不能禁用!"); + } + return toAjax(postService.updatePost(post)); + } + + /** + * 删除岗位 + * + * @param postIds 岗位ID串 + */ + @SaCheckPermission("system:post:remove") + @Log(title = "岗位管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{postIds}") + public R remove(@PathVariable Long[] postIds) { + return toAjax(postService.deletePostByIds(postIds)); + } + + /** + * 获取岗位选择框列表 + * + * @param postIds 岗位ID串 + * @param deptId 部门id + */ + @SaCheckPermission("system:post:query") + @GetMapping("/optionselect") + public R> optionselect(@RequestParam(required = false) Long[] postIds, @RequestParam(required = false) Long deptId) { + List list = new ArrayList<>(); + if (ObjectUtil.isNotNull(deptId)) { + SysPostBo post = new SysPostBo(); + post.setDeptId(deptId); + list = postService.selectPostList(post); + } else if (postIds != null) { + list = postService.selectPostByIds(List.of(postIds)); + } + return R.ok(list); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java new file mode 100644 index 0000000..5f187cb --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java @@ -0,0 +1,133 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.secure.BCrypt; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.io.FileUtil; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.file.MimeTypeUtils; +import org.dromara.common.encrypt.annotation.ApiEncrypt; +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.helper.DataPermissionHelper; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.bo.SysUserPasswordBo; +import org.dromara.system.domain.bo.SysUserProfileBo; +import org.dromara.system.domain.vo.AvatarVo; +import org.dromara.system.domain.vo.ProfileVo; +import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysOssService; +import org.dromara.system.service.ISysUserService; +import org.springframework.http.MediaType; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Arrays; + +/** + * 个人信息 业务处理 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/user/profile") +public class SysProfileController extends BaseController { + + private final ISysUserService userService; + private final ISysOssService ossService; + + /** + * 个人信息 + */ + @GetMapping + public R profile() { + SysUserVo user = userService.selectUserById(LoginHelper.getUserId()); + ProfileVo profileVo = new ProfileVo(); + profileVo.setUser(user); + profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserId())); + profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserId())); + return R.ok(profileVo); + } + + /** + * 修改用户信息 + */ + @RepeatSubmit + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping + public R updateProfile(@Validated @RequestBody SysUserProfileBo profile) { + SysUserBo user = BeanUtil.toBean(profile, SysUserBo.class); + user.setUserId(LoginHelper.getUserId()); + String username = LoginHelper.getUsername(); + if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + return R.fail("修改用户'" + username + "'失败,手机号码已存在"); + } + if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + return R.fail("修改用户'" + username + "'失败,邮箱账号已存在"); + } + int rows = DataPermissionHelper.ignore(() -> userService.updateUserProfile(user)); + if (rows > 0) { + return R.ok(); + } + return R.fail("修改个人信息异常,请联系管理员"); + } + + /** + * 重置密码 + * + * @param bo 新旧密码 + */ + @RepeatSubmit + @ApiEncrypt + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping("/updatePwd") + public R updatePwd(@Validated @RequestBody SysUserPasswordBo bo) { + SysUserVo user = userService.selectUserById(LoginHelper.getUserId()); + String password = user.getPassword(); + if (!BCrypt.checkpw(bo.getOldPassword(), password)) { + return R.fail("修改密码失败,旧密码错误"); + } + if (BCrypt.checkpw(bo.getNewPassword(), password)) { + return R.fail("新密码不能与旧密码相同"); + } + int rows = DataPermissionHelper.ignore(() -> userService.resetUserPwd(user.getUserId(), BCrypt.hashpw(bo.getNewPassword()))); + if (rows > 0) { + return R.ok(); + } + return R.fail("修改密码异常,请联系管理员"); + } + + /** + * 头像上传 + * + * @param avatarfile 用户头像 + */ + @RepeatSubmit + @Log(title = "用户头像", businessType = BusinessType.UPDATE) + @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R avatar(@RequestPart("avatarfile") MultipartFile avatarfile) { + if (!avatarfile.isEmpty()) { + String extension = FileUtil.extName(avatarfile.getOriginalFilename()); + if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { + return R.fail("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式"); + } + SysOssVo oss = ossService.upload(avatarfile); + String avatar = oss.getUrl(); + boolean updateSuccess = DataPermissionHelper.ignore(() -> userService.updateUserAvatar(LoginHelper.getUserId(), oss.getOssId())); + if (updateSuccess) { + AvatarVo avatarVo = new AvatarVo(); + avatarVo.setImgUrl(avatar); + return R.ok(avatarVo); + } + } + return R.fail("上传图片异常,请联系管理员"); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java new file mode 100644 index 0000000..d4a9dc8 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java @@ -0,0 +1,229 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.web.core.BaseController; +import org.dromara.system.domain.SysUserRole; +import org.dromara.system.domain.bo.SysDeptBo; +import org.dromara.system.domain.bo.SysRoleBo; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.DeptTreeSelectVo; +import org.dromara.system.domain.vo.SysRoleVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysDeptService; +import org.dromara.system.service.ISysRoleService; +import org.dromara.system.service.ISysUserService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 角色信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/role") +public class SysRoleController extends BaseController { + + private final ISysRoleService roleService; + private final ISysUserService userService; + private final ISysDeptService deptService; + + /** + * 获取角色信息列表 + */ + @SaCheckPermission("system:role:list") + @GetMapping("/list") + public TableDataInfo list(SysRoleBo role, PageQuery pageQuery) { + return roleService.selectPageRoleList(role, pageQuery); + } + + /** + * 导出角色信息列表 + */ + @Log(title = "角色管理", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:role:export") + @PostMapping("/export") + public void export(SysRoleBo role, HttpServletResponse response) { + List list = roleService.selectRoleList(role); + ExcelUtil.exportExcel(list, "角色数据", SysRoleVo.class, response); + } + + /** + * 根据角色编号获取详细信息 + * + * @param roleId 角色ID + */ + @SaCheckPermission("system:role:query") + @GetMapping(value = "/{roleId}") + public R getInfo(@PathVariable Long roleId) { + roleService.checkRoleDataScope(roleId); + return R.ok(roleService.selectRoleById(roleId)); + } + + /** + * 新增角色 + */ + @SaCheckPermission("system:role:add") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysRoleBo role) { + roleService.checkRoleAllowed(role); + if (!roleService.checkRoleNameUnique(role)) { + return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } else if (!roleService.checkRoleKeyUnique(role)) { + return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + return toAjax(roleService.insertRole(role)); + + } + + /** + * 修改保存角色 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysRoleBo role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + if (!roleService.checkRoleNameUnique(role)) { + return R.fail("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } else if (!roleService.checkRoleKeyUnique(role)) { + return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + + if (roleService.updateRole(role) > 0) { + roleService.cleanOnlineUserByRole(role.getRoleId()); + return R.ok(); + } + return R.fail("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + } + + /** + * 修改保存数据权限 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/dataScope") + public R dataScope(@RequestBody SysRoleBo role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + return toAjax(roleService.authDataScope(role)); + } + + /** + * 状态修改 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysRoleBo role) { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + return toAjax(roleService.updateRoleStatus(role.getRoleId(), role.getStatus())); + } + + /** + * 删除角色 + * + * @param roleIds 角色ID串 + */ + @SaCheckPermission("system:role:remove") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + public R remove(@PathVariable Long[] roleIds) { + return toAjax(roleService.deleteRoleByIds(roleIds)); + } + + /** + * 获取角色选择框列表 + * + * @param roleIds 角色ID串 + */ + @SaCheckPermission("system:role:query") + @GetMapping("/optionselect") + public R> optionselect(@RequestParam(required = false) Long[] roleIds) { + return R.ok(roleService.selectRoleByIds(roleIds == null ? null : List.of(roleIds))); + } + + /** + * 查询已分配用户角色列表 + */ + @SaCheckPermission("system:role:list") + @GetMapping("/authUser/allocatedList") + public TableDataInfo allocatedList(SysUserBo user, PageQuery pageQuery) { + return userService.selectAllocatedList(user, pageQuery); + } + + /** + * 查询未分配用户角色列表 + */ + @SaCheckPermission("system:role:list") + @GetMapping("/authUser/unallocatedList") + public TableDataInfo unallocatedList(SysUserBo user, PageQuery pageQuery) { + return userService.selectUnallocatedList(user, pageQuery); + } + + /** + * 取消授权用户 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancel") + public R cancelAuthUser(@RequestBody SysUserRole userRole) { + return toAjax(roleService.deleteAuthUser(userRole)); + } + + /** + * 批量取消授权用户 + * + * @param roleId 角色ID + * @param userIds 用户ID串 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancelAll") + public R cancelAuthUserAll(Long roleId, Long[] userIds) { + return toAjax(roleService.deleteAuthUsers(roleId, userIds)); + } + + /** + * 批量选择用户授权 + * + * @param roleId 角色ID + * @param userIds 用户ID串 + */ + @SaCheckPermission("system:role:edit") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/selectAll") + public R selectAuthUserAll(Long roleId, Long[] userIds) { + roleService.checkRoleDataScope(roleId); + return toAjax(roleService.insertAuthUsers(roleId, userIds)); + } + + /** + * 获取对应角色部门树列表 + * + * @param roleId 角色ID + */ + @SaCheckPermission("system:role:list") + @GetMapping(value = "/deptTree/{roleId}") + public R roleDeptTreeselect(@PathVariable("roleId") Long roleId) { + DeptTreeSelectVo selectVo = new DeptTreeSelectVo(); + selectVo.setCheckedKeys(deptService.selectDeptListByRoleId(roleId)); + selectVo.setDepts(deptService.selectDeptTreeList(new SysDeptBo())); + return R.ok(selectVo); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java new file mode 100644 index 0000000..b0281cf --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java @@ -0,0 +1,38 @@ +package org.dromara.system.controller.system; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.vo.SysSocialVo; +import org.dromara.system.service.ISysSocialService; +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.List; + +/** + * 社会化关系 + * + * @author thiszhc + * @date 2023-06-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/social") +public class SysSocialController extends BaseController { + + private final ISysSocialService socialUserService; + + /** + * 查询社会化关系列表 + */ + @GetMapping("/list") + public R> list() { + return R.ok(socialUserService.queryListByUserId(LoginHelper.getUserId())); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java new file mode 100644 index 0000000..66c1b7d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java @@ -0,0 +1,193 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaCheckRole; +import com.baomidou.lock.annotation.Lock4j; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.TenantConstants; +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.encrypt.annotation.ApiEncrypt; +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.common.tenant.helper.TenantHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysTenantBo; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.service.ISysTenantService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 租户管理 + * + * @author Michelle.Chung + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/tenant") +@ConditionalOnProperty(value = "tenant.enable", havingValue = "true") +public class SysTenantController extends BaseController { + + private final ISysTenantService tenantService; + + /** + * 查询租户列表 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:list") + @GetMapping("/list") + public TableDataInfo list(SysTenantBo bo, PageQuery pageQuery) { + return tenantService.queryPageList(bo, pageQuery); + } + + /** + * 导出租户列表 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:export") + @Log(title = "租户管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysTenantBo bo, HttpServletResponse response) { + List list = tenantService.queryList(bo); + ExcelUtil.exportExcel(list, "租户", SysTenantVo.class, response); + } + + /** + * 获取租户详细信息 + * + * @param id 主键 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(tenantService.queryById(id)); + } + + /** + * 新增租户 + */ + @ApiEncrypt + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:add") + @Log(title = "租户管理", businessType = BusinessType.INSERT) + @Lock4j + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysTenantBo bo) { + if (!tenantService.checkCompanyNameUnique(bo)) { + return R.fail("新增租户'" + bo.getCompanyName() + "'失败,企业名称已存在"); + } + return toAjax(TenantHelper.ignore(() -> tenantService.insertByBo(bo))); + } + + /** + * 修改租户 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:edit") + @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysTenantBo bo) { + tenantService.checkTenantAllowed(bo.getTenantId()); + if (!tenantService.checkCompanyNameUnique(bo)) { + return R.fail("修改租户'" + bo.getCompanyName() + "'失败,公司名称已存在"); + } + return toAjax(tenantService.updateByBo(bo)); + } + + /** + * 状态修改 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:edit") + @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysTenantBo bo) { + tenantService.checkTenantAllowed(bo.getTenantId()); + return toAjax(tenantService.updateTenantStatus(bo)); + } + + /** + * 删除租户 + * + * @param ids 主键串 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:remove") + @Log(title = "租户管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(tenantService.deleteWithValidByIds(List.of(ids), true)); + } + + /** + * 动态切换租户 + * + * @param tenantId 租户ID + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @GetMapping("/dynamic/{tenantId}") + public R dynamicTenant(@NotBlank(message = "租户ID不能为空") @PathVariable String tenantId) { + TenantHelper.setDynamic(tenantId, true); + return R.ok(); + } + + /** + * 清除动态租户 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @GetMapping("/dynamic/clear") + public R dynamicClear() { + TenantHelper.clearDynamic(); + return R.ok(); + } + + + /** + * 同步租户套餐 + * + * @param tenantId 租户id + * @param packageId 套餐id + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenant:edit") + @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @GetMapping("/syncTenantPackage") + public R syncTenantPackage(@NotBlank(message = "租户ID不能为空") String tenantId, + @NotNull(message = "套餐ID不能为空") Long packageId) { + return toAjax(TenantHelper.ignore(() -> tenantService.syncTenantPackage(tenantId, packageId))); + } + + /** + * 同步租户字典 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @Log(title = "租户管理", businessType = BusinessType.INSERT) + @GetMapping("/syncTenantDict") + public R syncTenantDict() { + if (!TenantHelper.isEnable()) { + return R.fail("当前未开启租户模式"); + } + tenantService.syncTenantDict(); + return R.ok("同步租户字典成功"); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java new file mode 100644 index 0000000..4bfe597 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java @@ -0,0 +1,142 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaCheckRole; +import org.dromara.common.core.constant.TenantConstants; +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.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.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysTenantPackageBo; +import org.dromara.system.domain.vo.SysTenantPackageVo; +import org.dromara.system.service.ISysTenantPackageService; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 租户套餐管理 + * + * @author Michelle.Chung + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/tenant/package") +@ConditionalOnProperty(value = "tenant.enable", havingValue = "true") +public class SysTenantPackageController extends BaseController { + + private final ISysTenantPackageService tenantPackageService; + + /** + * 查询租户套餐列表 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:list") + @GetMapping("/list") + public TableDataInfo list(SysTenantPackageBo bo, PageQuery pageQuery) { + return tenantPackageService.queryPageList(bo, pageQuery); + } + + /** + * 查询租户套餐下拉选列表 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:list") + @GetMapping("/selectList") + public R> selectList() { + return R.ok(tenantPackageService.selectList()); + } + + /** + * 导出租户套餐列表 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:export") + @Log(title = "租户套餐", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysTenantPackageBo bo, HttpServletResponse response) { + List list = tenantPackageService.queryList(bo); + ExcelUtil.exportExcel(list, "租户套餐", SysTenantPackageVo.class, response); + } + + /** + * 获取租户套餐详细信息 + * + * @param packageId 主键 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:query") + @GetMapping("/{packageId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long packageId) { + return R.ok(tenantPackageService.queryById(packageId)); + } + + /** + * 新增租户套餐 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:add") + @Log(title = "租户套餐", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysTenantPackageBo bo) { + if (!tenantPackageService.checkPackageNameUnique(bo)) { + return R.fail("新增套餐'" + bo.getPackageName() + "'失败,套餐名称已存在"); + } + return toAjax(tenantPackageService.insertByBo(bo)); + } + + /** + * 修改租户套餐 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:edit") + @Log(title = "租户套餐", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysTenantPackageBo bo) { + if (!tenantPackageService.checkPackageNameUnique(bo)) { + return R.fail("修改套餐'" + bo.getPackageName() + "'失败,套餐名称已存在"); + } + return toAjax(tenantPackageService.updateByBo(bo)); + } + + /** + * 状态修改 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:edit") + @Log(title = "租户套餐", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysTenantPackageBo bo) { + return toAjax(tenantPackageService.updatePackageStatus(bo)); + } + + /** + * 删除租户套餐 + * + * @param packageIds 主键串 + */ + @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) + @SaCheckPermission("system:tenantPackage:remove") + @Log(title = "租户套餐", businessType = BusinessType.DELETE) + @DeleteMapping("/{packageIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] packageIds) { + return toAjax(tenantPackageService.deleteWithValidByIds(List.of(packageIds), true)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java new file mode 100644 index 0000000..e1e868a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -0,0 +1,300 @@ +package org.dromara.system.controller.system; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.secure.BCrypt; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.encrypt.annotation.ApiEncrypt; +import org.dromara.common.excel.core.ExcelResult; +import org.dromara.common.excel.utils.ExcelUtil; +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.common.satoken.utils.LoginHelper; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysDeptBo; +import org.dromara.system.domain.bo.SysPostBo; +import org.dromara.system.domain.bo.SysRoleBo; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.*; +import org.dromara.system.listener.SysUserImportListener; +import org.dromara.system.service.*; +import org.springframework.http.MediaType; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; + +/** + * 用户信息 + * + * @author Lion Li + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/user") +public class SysUserController extends BaseController { + + private final ISysUserService userService; + private final ISysRoleService roleService; + private final ISysPostService postService; + private final ISysDeptService deptService; + private final ISysTenantService tenantService; + + /** + * 获取用户列表 + */ + @SaCheckPermission("system:user:list") + @GetMapping("/list") + public TableDataInfo list(SysUserBo user, PageQuery pageQuery) { + return userService.selectPageUserList(user, pageQuery); + } + + /** + * 导出用户列表 + */ + @Log(title = "用户管理", businessType = BusinessType.EXPORT) + @SaCheckPermission("system:user:export") + @PostMapping("/export") + public void export(SysUserBo user, HttpServletResponse response) { + List list = userService.selectUserExportList(user); + ExcelUtil.exportExcel(list, "用户数据", SysUserExportVo.class, response); + } + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @SaCheckPermission("system:user:import") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); + return R.ok(result.getAnalysis()); + } + + /** + * 获取导入模板 + */ + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) { + ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("/getInfo") + public R getInfo() { + UserInfoVo userInfoVo = new UserInfoVo(); + LoginUser loginUser = LoginHelper.getLoginUser(); + if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) { + // 超级管理员 如果重新加载用户信息需清除动态租户 + TenantHelper.clearDynamic(); + } + SysUserVo user = userService.selectUserById(loginUser.getUserId()); + if (ObjectUtil.isNull(user)) { + return R.fail("没有权限访问用户数据!"); + } + userInfoVo.setUser(user); + userInfoVo.setPermissions(loginUser.getMenuPermission()); + userInfoVo.setRoles(loginUser.getRolePermission()); + return R.ok(userInfoVo); + } + + /** + * 根据用户编号获取详细信息 + * + * @param userId 用户ID + */ + @SaCheckPermission("system:user:query") + @GetMapping(value = {"/", "/{userId}"}) + public R getInfo(@PathVariable(value = "userId", required = false) Long userId) { + SysUserInfoVo userInfoVo = new SysUserInfoVo(); + if (ObjectUtil.isNotNull(userId)) { + userService.checkUserDataScope(userId); + SysUserVo sysUser = userService.selectUserById(userId); + userInfoVo.setUser(sysUser); + userInfoVo.setRoleIds(roleService.selectRoleListByUserId(userId)); + Long deptId = sysUser.getDeptId(); + if (ObjectUtil.isNotNull(deptId)) { + SysPostBo postBo = new SysPostBo(); + postBo.setDeptId(deptId); + userInfoVo.setPosts(postService.selectPostList(postBo)); + userInfoVo.setPostIds(postService.selectPostListByUserId(userId)); + } + } + SysRoleBo roleBo = new SysRoleBo(); + roleBo.setStatus(SystemConstants.NORMAL); + List roles = roleService.selectRoleList(roleBo); + userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); + return R.ok(userInfoVo); + } + + /** + * 新增用户 + */ + @SaCheckPermission("system:user:add") + @Log(title = "用户管理", businessType = BusinessType.INSERT) + @PostMapping + public R add(@Validated @RequestBody SysUserBo user) { + deptService.checkDeptDataScope(user.getDeptId()); + if (!userService.checkUserNameUnique(user)) { + return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + return R.fail("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + return R.fail("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + if (TenantHelper.isEnable()) { + if (!tenantService.checkAccountBalance(TenantHelper.getTenantId())) { + return R.fail("当前租户下用户名额不足,请联系管理员"); + } + } + user.setPassword(BCrypt.hashpw(user.getPassword())); + return toAjax(userService.insertUser(user)); + } + + /** + * 修改用户 + */ + @SaCheckPermission("system:user:edit") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@Validated @RequestBody SysUserBo user) { + userService.checkUserAllowed(user.getUserId()); + userService.checkUserDataScope(user.getUserId()); + deptService.checkDeptDataScope(user.getDeptId()); + if (!userService.checkUserNameUnique(user)) { + return R.fail("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + return toAjax(userService.updateUser(user)); + } + + /** + * 删除用户 + * + * @param userIds 角色ID串 + */ + @SaCheckPermission("system:user:remove") + @Log(title = "用户管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{userIds}") + public R remove(@PathVariable Long[] userIds) { + if (ArrayUtil.contains(userIds, LoginHelper.getUserId())) { + return R.fail("当前用户不能删除"); + } + return toAjax(userService.deleteUserByIds(userIds)); + } + + /** + * 根据用户ID串批量获取用户基础信息 + * + * @param userIds 用户ID串 + * @param deptId 部门ID + */ + @SaCheckPermission("system:user:query") + @GetMapping("/optionselect") + public R> optionselect(@RequestParam(required = false) Long[] userIds, + @RequestParam(required = false) Long deptId) { + return R.ok(userService.selectUserByIds(ArrayUtil.isEmpty(userIds) ? null : List.of(userIds), deptId)); + } + + /** + * 重置密码 + */ + @ApiEncrypt + @SaCheckPermission("system:user:resetPwd") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + public R resetPwd(@RequestBody SysUserBo user) { + userService.checkUserAllowed(user.getUserId()); + userService.checkUserDataScope(user.getUserId()); + user.setPassword(BCrypt.hashpw(user.getPassword())); + return toAjax(userService.resetUserPwd(user.getUserId(), user.getPassword())); + } + + /** + * 状态修改 + */ + @SaCheckPermission("system:user:edit") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public R changeStatus(@RequestBody SysUserBo user) { + userService.checkUserAllowed(user.getUserId()); + userService.checkUserDataScope(user.getUserId()); + return toAjax(userService.updateUserStatus(user.getUserId(), user.getStatus())); + } + + /** + * 根据用户编号获取授权角色 + * + * @param userId 用户ID + */ + @SaCheckPermission("system:user:query") + @GetMapping("/authRole/{userId}") + public R authRole(@PathVariable Long userId) { + userService.checkUserDataScope(userId); + SysUserVo user = userService.selectUserById(userId); + List roles = roleService.selectRolesAuthByUserId(userId); + SysUserInfoVo userInfoVo = new SysUserInfoVo(); + userInfoVo.setUser(user); + userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); + return R.ok(userInfoVo); + } + + /** + * 用户授权角色 + * + * @param userId 用户Id + * @param roleIds 角色ID串 + */ + @SaCheckPermission("system:user:edit") + @Log(title = "用户管理", businessType = BusinessType.GRANT) + @PutMapping("/authRole") + public R insertAuthRole(Long userId, Long[] roleIds) { + userService.checkUserDataScope(userId); + userService.insertUserAuth(userId, roleIds); + return R.ok(); + } + + /** + * 获取部门树列表 + */ + @SaCheckPermission("system:user:list") + @GetMapping("/deptTree") + public R>> deptTree(SysDeptBo dept) { + return R.ok(deptService.selectDeptTreeList(dept)); + } + + /** + * 获取部门下的所有用户信息 + */ + @SaCheckPermission("system:user:list") + @GetMapping("/list/dept/{deptId}") + public R> listByDept(@PathVariable @NotNull Long deptId) { + return R.ok(userService.selectUserListByDept(deptId)); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysCache.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysCache.java new file mode 100644 index 0000000..e398a20 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysCache.java @@ -0,0 +1,47 @@ +package org.dromara.system.domain; + +import org.dromara.common.core.utils.StringUtils; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 缓存信息 + * + * @author Lion Li + */ +@Data +@NoArgsConstructor +public class SysCache { + + /** + * 缓存名称 + */ + private String cacheName = ""; + + /** + * 缓存键名 + */ + private String cacheKey = ""; + + /** + * 缓存内容 + */ + private String cacheValue = ""; + + /** + * 备注 + */ + private String remark = ""; + + public SysCache(String cacheName, String remark) { + this.cacheName = cacheName; + this.remark = remark; + } + + public SysCache(String cacheName, String cacheKey, String cacheValue) { + this.cacheName = StringUtils.replace(cacheName, ":", ""); + this.cacheKey = StringUtils.replace(cacheKey, cacheName, ""); + this.cacheValue = cacheValue; + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysClient.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysClient.java new file mode 100644 index 0000000..ee2475d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysClient.java @@ -0,0 +1,77 @@ +package org.dromara.system.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 授权管理对象 sys_client + * + * @author Michelle.Chung + * @date 2023-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_client") +public class SysClient extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 客户端id + */ + private String clientId; + + /** + * 客户端key + */ + private String clientKey; + + /** + * 客户端秘钥 + */ + private String clientSecret; + + /** + * 授权类型 + */ + private String grantType; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * token活跃超时时间 + */ + private Long activeTimeout; + + /** + * token固定超时时间 + */ + private Long timeout; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysConfig.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysConfig.java new file mode 100644 index 0000000..6fcb88f --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysConfig.java @@ -0,0 +1,51 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 参数配置表 sys_config + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_config") +public class SysConfig extends TenantEntity { + + /** + * 参数主键 + */ + @TableId(value = "config_id") + private Long configId; + + /** + * 参数名称 + */ + private String configName; + + /** + * 参数键名 + */ + private String configKey; + + /** + * 参数键值 + */ + private String configValue; + + /** + * 系统内置(Y是 N否) + */ + private String configType; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java new file mode 100644 index 0000000..b94fd8a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java @@ -0,0 +1,83 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * 部门表 sys_dept + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_dept") +public class SysDept extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 部门ID + */ + @TableId(value = "dept_id") + private Long deptId; + + /** + * 父部门ID + */ + private Long parentId; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 部门类别编码 + */ + private String deptCategory; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 负责人 + */ + private Long leader; + + /** + * 联系电话 + */ + private String phone; + + /** + * 邮箱 + */ + private String email; + + /** + * 部门状态:0正常,1停用 + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 祖级列表 + */ + private String ancestors; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java new file mode 100644 index 0000000..9d83736 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java @@ -0,0 +1,71 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.tenant.core.TenantEntity; + +/** + * 字典数据表 sys_dict_data + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_dict_data") +public class SysDictData extends TenantEntity { + + /** + * 字典编码 + */ + @TableId(value = "dict_code") + private Long dictCode; + + /** + * 字典排序 + */ + private Integer dictSort; + + /** + * 字典标签 + */ + private String dictLabel; + + /** + * 字典键值 + */ + private String dictValue; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + private String isDefault; + + /** + * 备注 + */ + private String remark; + + public boolean getDefault() { + return SystemConstants.YES.equals(this.isDefault); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictType.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictType.java new file mode 100644 index 0000000..955af85 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictType.java @@ -0,0 +1,41 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 字典类型表 sys_dict_type + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_dict_type") +public class SysDictType extends TenantEntity { + + /** + * 字典主键 + */ + @TableId(value = "dict_id") + private Long dictId; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java new file mode 100644 index 0000000..c57dc0a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java @@ -0,0 +1,85 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 系统访问记录表 sys_logininfor + * + * @author Lion Li + */ + +@Data +@TableName("sys_logininfor") +public class SysLogininfor implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @TableId(value = "info_id") + private Long infoId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 客户端 + */ + private String clientKey; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * 登录状态 0成功 1失败 + */ + private String status; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 登录地点 + */ + private String loginLocation; + + /** + * 浏览器类型 + */ + private String browser; + + /** + * 操作系统 + */ + private String os; + + /** + * 提示消息 + */ + private String msg; + + /** + * 访问时间 + */ + private Date loginTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java new file mode 100644 index 0000000..2df5596 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java @@ -0,0 +1,191 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.util.ArrayList; +import java.util.List; + +/** + * 菜单权限表 sys_menu + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_menu") +public class SysMenu extends BaseEntity { + + /** + * 菜单ID + */ + @TableId(value = "menu_id") + private Long menuId; + + /** + * 父菜单ID + */ + private Long parentId; + + /** + * 菜单名称 + */ + private String menuName; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 路由地址 + */ + private String path; + + /** + * 组件路径 + */ + private String component; + + /** + * 路由参数 + */ + private String queryParam; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 备注 + */ + private String remark; + + /** + * 父菜单名称 + */ + @TableField(exist = false) + private String parentName; + + /** + * 子菜单 + */ + @TableField(exist = false) + private List children = new ArrayList<>(); + + /** + * 获取路由名称 + */ + public String getRouteName() { + String routerName = StringUtils.capitalize(path); + // 非外链并且是一级目录(类型为目录) + if (isMenuFrame()) { + routerName = StringUtils.EMPTY; + } + return routerName; + } + + /** + * 获取路由地址 + */ + public String getRouterPath() { + String routerPath = this.path; + // 内链打开外网方式 + if (getParentId() != 0L && isInnerLink()) { + routerPath = innerLinkReplaceEach(routerPath); + } + // 非外链并且是一级目录(类型为目录) + if (0L == getParentId() && SystemConstants.TYPE_DIR.equals(getMenuType()) + && SystemConstants.NO_FRAME.equals(getIsFrame())) { + routerPath = "/" + this.path; + } + // 非外链并且是一级目录(类型为菜单) + else if (isMenuFrame()) { + routerPath = "/"; + } + return routerPath; + } + + /** + * 获取组件信息 + */ + public String getComponentInfo() { + String component = SystemConstants.LAYOUT; + if (StringUtils.isNotEmpty(this.component) && !isMenuFrame()) { + component = this.component; + } else if (StringUtils.isEmpty(this.component) && getParentId() != 0L && isInnerLink()) { + component = SystemConstants.INNER_LINK; + } else if (StringUtils.isEmpty(this.component) && isParentView()) { + component = SystemConstants.PARENT_VIEW; + } + return component; + } + + /** + * 是否为菜单内部跳转 + */ + public boolean isMenuFrame() { + return getParentId() == 0L && SystemConstants.TYPE_MENU.equals(menuType) && isFrame.equals(SystemConstants.NO_FRAME); + } + + /** + * 是否为内链组件 + */ + public boolean isInnerLink() { + return isFrame.equals(SystemConstants.NO_FRAME) && StringUtils.ishttp(path); + } + + /** + * 是否为parent_view组件 + */ + public boolean isParentView() { + return getParentId() != 0L && SystemConstants.TYPE_DIR.equals(menuType); + } + + /** + * 内链域名特殊字符替换 + */ + public static String innerLinkReplaceEach(String path) { + return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":"}, + new String[]{"", "", "", "/", "/"}); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysNotice.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysNotice.java new file mode 100644 index 0000000..bfcc2bc --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysNotice.java @@ -0,0 +1,51 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 通知公告表 sys_notice + * + * @author Lion Li + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_notice") +public class SysNotice extends TenantEntity { + + /** + * 公告ID + */ + @TableId(value = "notice_id") + private Long noticeId; + + /** + * 公告标题 + */ + private String noticeTitle; + + /** + * 公告类型(1通知 2公告) + */ + private String noticeType; + + /** + * 公告内容 + */ + private String noticeContent; + + /** + * 公告状态(0正常 1关闭) + */ + private String status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java new file mode 100644 index 0000000..41a8c59 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java @@ -0,0 +1,115 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 操作日志记录表 oper_log + * + * @author Lion Li + */ + +@Data +@TableName("sys_oper_log") +public class SysOperLog implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 日志主键 + */ + @TableId(value = "oper_id") + private Long operId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 操作模块 + */ + private String title; + + /** + * 业务类型(0其它 1新增 2修改 3删除) + */ + private Integer businessType; + + /** + * 请求方法 + */ + private String method; + + /** + * 请求方式 + */ + private String requestMethod; + + /** + * 操作类别(0其它 1后台用户 2手机端用户) + */ + private Integer operatorType; + + /** + * 操作人员 + */ + private String operName; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 请求url + */ + private String operUrl; + + /** + * 操作地址 + */ + private String operIp; + + /** + * 操作地点 + */ + private String operLocation; + + /** + * 请求参数 + */ + private String operParam; + + /** + * 返回参数 + */ + private String jsonResult; + + /** + * 操作状态(0正常 1异常) + */ + private Integer status; + + /** + * 错误消息 + */ + private String errorMsg; + + /** + * 操作时间 + */ + private Date operTime; + + /** + * 消耗时间 + */ + private Long costTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java new file mode 100644 index 0000000..af88898 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java @@ -0,0 +1,50 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * OSS对象存储对象 + * + * @author Lion Li + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_oss") +public class SysOss extends TenantEntity { + + /** + * 对象存储主键 + */ + @TableId(value = "oss_id") + private Long ossId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 原名 + */ + private String originalName; + + /** + * 文件后缀名 + */ + private String fileSuffix; + + /** + * URL地址 + */ + private String url; + + /** + * 服务商 + */ + private String service; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssConfig.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssConfig.java new file mode 100644 index 0000000..4b67d63 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssConfig.java @@ -0,0 +1,89 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 对象存储配置对象 sys_oss_config + * + * @author Lion Li + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_oss_config") +public class SysOssConfig extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "oss_config_id") + private Long ossConfigId; + + /** + * 配置key + */ + private String configKey; + + /** + * accessKey + */ + private String accessKey; + + /** + * 秘钥 + */ + private String secretKey; + + /** + * 桶名称 + */ + private String bucketName; + + /** + * 前缀 + */ + private String prefix; + + /** + * 访问站点 + */ + private String endpoint; + + /** + * 自定义域名 + */ + private String domain; + + /** + * 是否https(0否 1是) + */ + private String isHttps; + + /** + * 域 + */ + private String region; + + /** + * 是否默认(0=是,1=否) + */ + private String status; + + /** + * 扩展字段 + */ + private String ext1; + + /** + * 备注 + */ + private String remark; + + /** + * 桶权限类型(0private 1public 2custom) + */ + private String accessPolicy; +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysPost.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysPost.java new file mode 100644 index 0000000..2c985da --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysPost.java @@ -0,0 +1,61 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 岗位表 sys_post + * + * @author Lion Li + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_post") +public class SysPost extends TenantEntity { + + /** + * 岗位序号 + */ + @TableId(value = "post_id") + private Long postId; + + /** + * 部门id + */ + private Long deptId; + + /** + * 岗位编码 + */ + private String postCode; + + /** + * 岗位名称 + */ + private String postName; + + /** + * 岗位类别编码 + */ + private String postCategory; + + /** + * 岗位排序 + */ + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java new file mode 100644 index 0000000..a7c0ad5 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java @@ -0,0 +1,79 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 角色表 sys_role + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName("sys_role") +public class SysRole extends TenantEntity { + + /** + * 角色ID + */ + @TableId(value = "role_id") + private Long roleId; + + /** + * 角色名称 + */ + private String roleName; + + /** + * 角色权限 + */ + private String roleKey; + + /** + * 角色排序 + */ + private Integer roleSort; + + /** + * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) + */ + private String dataScope; + + /** + * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) + */ + private Boolean menuCheckStrictly; + + /** + * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) + */ + private Boolean deptCheckStrictly; + + /** + * 角色状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 备注 + */ + private String remark; + + public SysRole(Long roleId) { + this.roleId = roleId; + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleDept.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleDept.java new file mode 100644 index 0000000..ba77694 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleDept.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 角色和部门关联 sys_role_dept + * + * @author Lion Li + */ + +@Data +@TableName("sys_role_dept") +public class SysRoleDept { + + /** + * 角色ID + */ + @TableId(type = IdType.INPUT) + private Long roleId; + + /** + * 部门ID + */ + private Long deptId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java new file mode 100644 index 0000000..ba28f17 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 角色和菜单关联 sys_role_menu + * + * @author Lion Li + */ + +@Data +@TableName("sys_role_menu") +public class SysRoleMenu { + + /** + * 角色ID + */ + @TableId(type = IdType.INPUT) + private Long roleId; + + /** + * 菜单ID + */ + private Long menuId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java new file mode 100644 index 0000000..10f2936 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java @@ -0,0 +1,136 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * 社会化关系对象 sys_social + * + * @author thiszhc + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_social") +public class SysSocial extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 用户ID + */ + private Long userId; + + /** + * 的唯一ID + */ + private String authId; + + /** + * 用户来源 + */ + private String source; + + /** + * 用户的授权令牌 + */ + private String accessToken; + + /** + * 用户的授权令牌的有效期,部分平台可能没有 + */ + private int expireIn; + + /** + * 刷新令牌,部分平台可能没有 + */ + private String refreshToken; + + /** + * 用户的 open id + */ + private String openId; + + /** + * 授权的第三方账号 + */ + private String userName; + + /** + * 授权的第三方昵称 + */ + private String nickName; + + /** + * 授权的第三方邮箱 + */ + private String email; + + /** + * 授权的第三方头像地址 + */ + private String avatar; + + /** + * 平台的授权信息,部分平台可能没有 + */ + private String accessCode; + + /** + * 用户的 unionid + */ + private String unionId; + + /** + * 授予的权限,部分平台可能没有 + */ + private String scope; + + /** + * 个别平台的授权信息,部分平台可能没有 + */ + private String tokenType; + + /** + * id token,部分平台可能没有 + */ + private String idToken; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macAlgorithm; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macKey; + + /** + * 用户的授权code,部分平台可能没有 + */ + private String code; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthToken; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthTokenSecret; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java new file mode 100644 index 0000000..9800c30 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java @@ -0,0 +1,103 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 租户对象 sys_tenant + * + * @author Michelle.Chung + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_tenant") +public class SysTenant extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 联系人 + */ + private String contactUserName; + + /** + * 联系电话 + */ + private String contactPhone; + + /** + * 企业名称 + */ + private String companyName; + + /** + * 统一社会信用代码 + */ + private String licenseNumber; + + /** + * 地址 + */ + private String address; + + /** + * 域名 + */ + private String domain; + + /** + * 企业简介 + */ + private String intro; + + /** + * 备注 + */ + private String remark; + + /** + * 租户套餐编号 + */ + private Long packageId; + + /** + * 过期时间 + */ + private Date expireTime; + + /** + * 用户数量(-1不限制) + */ + private Long accountCount; + + /** + * 租户状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java new file mode 100644 index 0000000..5f58e3e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java @@ -0,0 +1,60 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 租户套餐对象 sys_tenant_package + * + * @author Michelle.Chung + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_tenant_package") +public class SysTenantPackage extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 租户套餐id + */ + @TableId(value = "package_id") + private Long packageId; + + /** + * 套餐名称 + */ + private String packageName; + + /** + * 关联菜单id + */ + private String menuIds; + + /** + * 备注 + */ + private String remark; + + /** + * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) + */ + private Boolean menuCheckStrictly; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java new file mode 100644 index 0000000..3712f80 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java @@ -0,0 +1,115 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.tenant.core.TenantEntity; + +import java.util.Date; + +/** + * 用户对象 sys_user + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName("sys_user") +public class SysUser extends TenantEntity { + + /** + * 用户ID + */ + @TableId(value = "user_id") + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(sys_user系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别 + */ + private String sex; + + /** + * 用户头像 + */ + private Long avatar; + + /** + * 密码 + */ + @TableField( + insertStrategy = FieldStrategy.NOT_EMPTY, + updateStrategy = FieldStrategy.NOT_EMPTY, + whereStrategy = FieldStrategy.NOT_EMPTY + ) + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + private Date loginDate; + + /** + * 备注 + */ + private String remark; + + + public SysUser(Long userId) { + this.userId = userId; + } + + public boolean isSuperAdmin() { + return SystemConstants.SUPER_ADMIN_ID.equals(this.userId); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java new file mode 100644 index 0000000..ba30eb6 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java @@ -0,0 +1,63 @@ +package org.dromara.system.domain; + +import lombok.Data; + +/** + * 当前在线会话 + * + * @author Lion Li + */ +@Data +public class SysUserOnline { + + /** + * 会话编号 + */ + private String tokenId; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 用户名称 + */ + private String userName; + + /** + * 客户端 + */ + private String clientKey; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 登录地址 + */ + private String loginLocation; + + /** + * 浏览器类型 + */ + private String browser; + + /** + * 操作系统 + */ + private String os; + + /** + * 登录时间 + */ + private Long loginTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserPost.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserPost.java new file mode 100644 index 0000000..119c117 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserPost.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 用户和岗位关联 sys_user_post + * + * @author Lion Li + */ + +@Data +@TableName("sys_user_post") +public class SysUserPost { + + /** + * 用户ID + */ + @TableId(type = IdType.INPUT) + private Long userId; + + /** + * 岗位ID + */ + private Long postId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserRole.java b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserRole.java new file mode 100644 index 0000000..0a50e80 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserRole.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 用户和角色关联 sys_user_role + * + * @author Lion Li + */ + +@Data +@TableName("sys_user_role") +public class SysUserRole { + + /** + * 用户ID + */ + @TableId(type = IdType.INPUT) + private Long userId; + + /** + * 角色ID + */ + private Long roleId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java new file mode 100644 index 0000000..e5f5ffa --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java @@ -0,0 +1,80 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysClient; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.List; + +/** + * 授权管理业务对象 sys_client + * + * @author Michelle.Chung + * @date 2023-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysClient.class, reverseConvertGenerate = false) +public class SysClientBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 客户端id + */ + private String clientId; + + /** + * 客户端key + */ + @NotBlank(message = "客户端key不能为空", groups = { AddGroup.class, EditGroup.class }) + private String clientKey; + + /** + * 客户端秘钥 + */ + @NotBlank(message = "客户端秘钥不能为空", groups = { AddGroup.class, EditGroup.class }) + private String clientSecret; + + /** + * 授权类型 + */ + @NotNull(message = "授权类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private List grantTypeList; + + /** + * 授权类型 + */ + private String grantType; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * token活跃超时时间 + */ + private Long activeTimeout; + + /** + * token固定超时时间 + */ + private Long timeout; + + /** + * 状态(0正常 1停用) + */ + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java new file mode 100644 index 0000000..257935d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java @@ -0,0 +1,59 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysConfig; + +/** + * 参数配置业务对象 sys_config + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysConfig.class, reverseConvertGenerate = false) +public class SysConfigBo extends BaseEntity { + + /** + * 参数主键 + */ + private Long configId; + + /** + * 参数名称 + */ + @NotBlank(message = "参数名称不能为空") + @Size(min = 0, max = 100, message = "参数名称不能超过{max}个字符") + private String configName; + + /** + * 参数键名 + */ + @NotBlank(message = "参数键名不能为空") + @Size(min = 0, max = 100, message = "参数键名长度不能超过{max}个字符") + private String configKey; + + /** + * 参数键值 + */ + @NotBlank(message = "参数键值不能为空") + @Size(min = 0, max = 500, message = "参数键值长度不能超过{max}个字符") + private String configValue; + + /** + * 系统内置(Y是 N否) + */ + private String configType; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java new file mode 100644 index 0000000..5f64d6f --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java @@ -0,0 +1,76 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysDept; + +/** + * 部门业务对象 sys_dept + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysDept.class, reverseConvertGenerate = false) +public class SysDeptBo extends BaseEntity { + + /** + * 部门id + */ + private Long deptId; + + /** + * 父部门ID + */ + private Long parentId; + + /** + * 部门名称 + */ + @NotBlank(message = "部门名称不能为空") + @Size(min = 0, max = 30, message = "部门名称长度不能超过{max}个字符") + private String deptName; + + /** + * 部门类别编码 + */ + @Size(min = 0, max = 100, message = "部门类别编码长度不能超过{max}个字符") + private String deptCategory; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空") + private Integer orderNum; + + /** + * 负责人 + */ + private Long leader; + + /** + * 联系电话 + */ + @Size(min = 0, max = 11, message = "联系电话长度不能超过{max}个字符") + private String phone; + + /** + * 邮箱 + */ + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") + private String email; + + /** + * 部门状态(0正常 1停用) + */ + private String status; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java new file mode 100644 index 0000000..042946c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java @@ -0,0 +1,80 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysDictData; + +/** + * 字典数据业务对象 sys_dict_data + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysDictData.class, reverseConvertGenerate = false) +public class SysDictDataBo extends BaseEntity { + + /** + * 字典编码 + */ + private Long dictCode; + + /** + * 字典排序 + */ + private Integer dictSort; + + /** + * 字典标签 + */ + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过{max}个字符") + private String dictLabel; + + /** + * 字典键值 + */ + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过{max}个字符") + private String dictValue; + + /** + * 字典类型 + */ + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过{max}个字符") + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + @Size(min = 0, max = 100, message = "样式属性长度不能超过{max}个字符") + private String cssClass; + + /** + * 表格回显样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + private String isDefault; + + /** + * 创建部门 + */ + private Long createDept; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java new file mode 100644 index 0000000..fcc1ac1 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java @@ -0,0 +1,50 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.RegexConstants; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysDictType; + +/** + * 字典类型业务对象 sys_dict_type + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysDictType.class, reverseConvertGenerate = false) +public class SysDictTypeBo extends BaseEntity { + + /** + * 字典主键 + */ + private Long dictId; + + /** + * 字典名称 + */ + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过{max}个字符") + private String dictName; + + /** + * 字典类型 + */ + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过{max}个字符") + @Pattern(regexp = RegexConstants.DICTIONARY_TYPE, message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") + private String dictType; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java new file mode 100644 index 0000000..4646162 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java @@ -0,0 +1,87 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysLogininfor; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 系统访问记录业务对象 sys_logininfor + * + * @author Michelle.Chung + */ + +@Data +@AutoMapper(target = SysLogininfor.class, reverseConvertGenerate = false) +public class SysLogininforBo { + + /** + * 访问ID + */ + private Long infoId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 客户端 + */ + private String clientKey; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 登录地点 + */ + private String loginLocation; + + /** + * 浏览器类型 + */ + private String browser; + + /** + * 操作系统 + */ + private String os; + + /** + * 登录状态(0成功 1失败) + */ + private String status; + + /** + * 提示消息 + */ + private String msg; + + /** + * 访问时间 + */ + private Date loginTime; + + /** + * 请求参数 + */ + private Map params = new HashMap<>(); + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java new file mode 100644 index 0000000..fbaafaa --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java @@ -0,0 +1,110 @@ +package org.dromara.system.domain.bo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.RegexConstants; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysMenu; + +/** + * 菜单权限业务对象 sys_menu + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMenu.class, reverseConvertGenerate = false) +public class SysMenuBo extends BaseEntity { + + /** + * 菜单ID + */ + private Long menuId; + + /** + * 父菜单ID + */ + private Long parentId; + + /** + * 菜单名称 + */ + @NotBlank(message = "菜单名称不能为空") + @Size(min = 0, max = 50, message = "菜单名称长度不能超过{max}个字符") + private String menuName; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空") + private Integer orderNum; + + /** + * 路由地址 + */ + @Size(min = 0, max = 200, message = "路由地址不能超过{max}个字符") + private String path; + + /** + * 组件路径 + */ + @Size(min = 0, max = 200, message = "组件路径不能超过{max}个字符") + private String component; + + /** + * 路由参数 + */ + private String queryParam; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 菜单类型(M目录 C菜单 F按钮) + */ + @NotBlank(message = "菜单类型不能为空") + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限标识 + */ + @JsonInclude(JsonInclude.Include.NON_NULL) + @Size(min = 0, max = 100, message = "权限标识长度不能超过{max}个字符") + @Pattern(regexp = RegexConstants.PERMISSION_STRING, message = "权限标识必须符合 tool:build:list 格式") + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java new file mode 100644 index 0000000..cdcc575 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java @@ -0,0 +1,61 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.xss.Xss; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysNotice; + +/** + * 通知公告业务对象 sys_notice + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysNotice.class, reverseConvertGenerate = false) +public class SysNoticeBo extends BaseEntity { + + /** + * 公告ID + */ + private Long noticeId; + + /** + * 公告标题 + */ + @Xss(message = "公告标题不能包含脚本字符") + @NotBlank(message = "公告标题不能为空") + @Size(min = 0, max = 50, message = "公告标题不能超过{max}个字符") + private String noticeTitle; + + /** + * 公告类型(1通知 2公告) + */ + private String noticeType; + + /** + * 公告内容 + */ + private String noticeContent; + + /** + * 公告状态(0正常 1关闭) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人名称 + */ + private String createByName; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java new file mode 100644 index 0000000..f16400a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java @@ -0,0 +1,127 @@ +package org.dromara.system.domain.bo; + +import org.dromara.common.log.event.OperLogEvent; +import org.dromara.system.domain.SysOperLog; +import io.github.linpeilie.annotations.AutoMapper; +import io.github.linpeilie.annotations.AutoMappers; +import lombok.Data; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 操作日志记录业务对象 sys_oper_log + * + * @author Michelle.Chung + * @date 2023-02-07 + */ + +@Data +@AutoMappers({ + @AutoMapper(target = SysOperLog.class, reverseConvertGenerate = false), + @AutoMapper(target = OperLogEvent.class) +}) +public class SysOperLogBo { + + /** + * 日志主键 + */ + private Long operId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 模块标题 + */ + private String title; + + /** + * 业务类型(0其它 1新增 2修改 3删除) + */ + private Integer businessType; + + /** + * 业务类型数组 + */ + private Integer[] businessTypes; + + /** + * 方法名称 + */ + private String method; + + /** + * 请求方式 + */ + private String requestMethod; + + /** + * 操作类别(0其它 1后台用户 2手机端用户) + */ + private Integer operatorType; + + /** + * 操作人员 + */ + private String operName; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 请求URL + */ + private String operUrl; + + /** + * 主机地址 + */ + private String operIp; + + /** + * 操作地点 + */ + private String operLocation; + + /** + * 请求参数 + */ + private String operParam; + + /** + * 返回参数 + */ + private String jsonResult; + + /** + * 操作状态(0正常 1异常) + */ + private Integer status; + + /** + * 错误消息 + */ + private String errorMsg; + + /** + * 操作时间 + */ + private Date operTime; + + /** + * 消耗时间 + */ + private Long costTime; + + /** + * 请求参数 + */ + private Map params = new HashMap<>(); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java new file mode 100644 index 0000000..7cb3104 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java @@ -0,0 +1,49 @@ +package org.dromara.system.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysOss; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * OSS对象存储分页查询对象 sys_oss + * + * @author Lion Li + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysOss.class, reverseConvertGenerate = false) +public class SysOssBo extends BaseEntity { + + /** + * ossId + */ + private Long ossId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 原名 + */ + private String originalName; + + /** + * 文件后缀名 + */ + private String fileSuffix; + + /** + * URL地址 + */ + private String url; + + /** + * 服务商 + */ + private String service; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java new file mode 100644 index 0000000..3dc4328 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java @@ -0,0 +1,109 @@ +package org.dromara.system.domain.bo; + +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.system.domain.SysOssConfig; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 对象存储配置业务对象 sys_oss_config + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysOssConfig.class, reverseConvertGenerate = false) +public class SysOssConfigBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + private Long ossConfigId; + + /** + * 配置key + */ + @NotBlank(message = "配置key不能为空", groups = {AddGroup.class, EditGroup.class}) + @Size(min = 2, max = 100, message = "configKey长度必须介于{min}和{max} 之间") + private String configKey; + + /** + * accessKey + */ + @NotBlank(message = "accessKey不能为空", groups = {AddGroup.class, EditGroup.class}) + @Size(min = 2, max = 100, message = "accessKey长度必须介于{min}和{max} 之间") + private String accessKey; + + /** + * 秘钥 + */ + @NotBlank(message = "secretKey不能为空", groups = {AddGroup.class, EditGroup.class}) + @Size(min = 2, max = 100, message = "secretKey长度必须介于{min}和{max} 之间") + private String secretKey; + + /** + * 桶名称 + */ + @NotBlank(message = "桶名称不能为空", groups = {AddGroup.class, EditGroup.class}) + @Size(min = 2, max = 100, message = "bucketName长度必须介于{min}和{max}之间") + private String bucketName; + + /** + * 前缀 + */ + private String prefix; + + /** + * 访问站点 + */ + @NotBlank(message = "访问站点不能为空", groups = {AddGroup.class, EditGroup.class}) + @Size(min = 2, max = 100, message = "endpoint长度必须介于{min}和{max}之间") + private String endpoint; + + /** + * 自定义域名 + */ + private String domain; + + /** + * 是否https(Y=是,N=否) + */ + private String isHttps; + + /** + * 是否默认(0=是,1=否) + */ + private String status; + + /** + * 域 + */ + private String region; + + /** + * 扩展字段 + */ + private String ext1; + + /** + * 备注 + */ + private String remark; + + /** + * 桶权限类型(0private 1public 2custom) + */ + @NotBlank(message = "桶权限类型不能为空", groups = {AddGroup.class, EditGroup.class}) + private String accessPolicy; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java new file mode 100644 index 0000000..09805cd --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java @@ -0,0 +1,75 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysPost; + +/** + * 岗位信息业务对象 sys_post + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysPost.class, reverseConvertGenerate = false) +public class SysPostBo extends BaseEntity { + + /** + * 岗位ID + */ + private Long postId; + + /** + * 部门id(单部门) + */ + @NotNull(message = "部门id不能为空") + private Long deptId; + + /** + * 归属部门id(部门树) + */ + private Long belongDeptId; + + /** + * 岗位编码 + */ + @NotBlank(message = "岗位编码不能为空") + @Size(min = 0, max = 64, message = "岗位编码长度不能超过{max}个字符") + private String postCode; + + /** + * 岗位名称 + */ + @NotBlank(message = "岗位名称不能为空") + @Size(min = 0, max = 50, message = "岗位名称长度不能超过{max}个字符") + private String postName; + + /** + * 岗位类别编码 + */ + @Size(min = 0, max = 100, message = "类别编码长度不能超过{max}个字符") + private String postCategory; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java new file mode 100644 index 0000000..3207bad --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java @@ -0,0 +1,94 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysRole; + +/** + * 角色信息业务对象 sys_role + * + * @author Michelle.Chung + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysRole.class, reverseConvertGenerate = false) +public class SysRoleBo extends BaseEntity { + + /** + * 角色ID + */ + private Long roleId; + + /** + * 角色名称 + */ + @NotBlank(message = "角色名称不能为空") + @Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符") + private String roleName; + + /** + * 角色权限字符串 + */ + @NotBlank(message = "角色权限字符串不能为空") + @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符") + private String roleKey; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空") + private Integer roleSort; + + /** + * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) + */ + private String dataScope; + + /** + * 菜单树选择项是否关联显示 + */ + private Boolean menuCheckStrictly; + + /** + * 部门树选择项是否关联显示 + */ + private Boolean deptCheckStrictly; + + /** + * 角色状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + /** + * 菜单组 + */ + private Long[] menuIds; + + /** + * 部门组(数据权限) + */ + private Long[] deptIds; + + public SysRoleBo(Long roleId) { + this.roleId = roleId; + } + + public boolean isSuperAdmin() { + return SystemConstants.SUPER_ADMIN_ID.equals(this.roleId); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java new file mode 100644 index 0000000..cede1e9 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java @@ -0,0 +1,142 @@ +package org.dromara.system.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 lombok.NoArgsConstructor; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.tenant.core.TenantEntity; +import org.dromara.system.domain.SysSocial; + +/** + * 社会化关系业务对象 sys_social + * + * @author Lion Li + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysSocial.class, reverseConvertGenerate = false) +public class SysSocialBo extends TenantEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 认证唯一ID + */ + @NotBlank(message = "认证唯一ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String authId; + + /** + * 用户来源 + */ + @NotBlank(message = "用户来源不能为空", groups = { AddGroup.class, EditGroup.class }) + private String source; + + /** + * 用户的授权令牌 + */ + @NotBlank(message = "用户的授权令牌不能为空", groups = { AddGroup.class, EditGroup.class }) + private String accessToken; + + /** + * 用户的授权令牌的有效期,部分平台可能没有 + */ + private int expireIn; + + /** + * 刷新令牌,部分平台可能没有 + */ + private String refreshToken; + + /** + * 平台唯一id + */ + private String openId; + + /** + * 用户的 ID + */ + @NotBlank(message = "用户的ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 平台的授权信息,部分平台可能没有 + */ + private String accessCode; + + /** + * 用户的 unionid + */ + private String unionId; + + /** + * 授予的权限,部分平台可能没有 + */ + private String scope; + + /** + * 授权的第三方账号 + */ + private String userName; + + /** + * 授权的第三方昵称 + */ + private String nickName; + + /** + * 授权的第三方邮箱 + */ + private String email; + + /** + * 授权的第三方头像地址 + */ + private String avatar; + + /** + * 个别平台的授权信息,部分平台可能没有 + */ + private String tokenType; + + /** + * id token,部分平台可能没有 + */ + private String idToken; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macAlgorithm; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macKey; + + /** + * 用户的授权code,部分平台可能没有 + */ + private String code; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthToken; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthTokenSecret; + + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java new file mode 100644 index 0000000..e3ac642 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java @@ -0,0 +1,114 @@ +package org.dromara.system.domain.bo; + +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.system.domain.SysTenant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; + +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 租户业务对象 sys_tenant + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysTenant.class, reverseConvertGenerate = false) +public class SysTenantBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 联系人 + */ + @NotBlank(message = "联系人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contactUserName; + + /** + * 联系电话 + */ + @NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contactPhone; + + /** + * 企业名称 + */ + @NotBlank(message = "企业名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String companyName; + + /** + * 用户名(创建系统用户) + */ + @NotBlank(message = "用户名不能为空", groups = { AddGroup.class }) + private String username; + + /** + * 密码(创建系统用户) + */ + @NotBlank(message = "密码不能为空", groups = { AddGroup.class }) + private String password; + + /** + * 统一社会信用代码 + */ + private String licenseNumber; + + /** + * 地址 + */ + private String address; + + /** + * 域名 + */ + private String domain; + + /** + * 企业简介 + */ + private String intro; + + /** + * 备注 + */ + private String remark; + + /** + * 租户套餐编号 + */ + @NotNull(message = "租户套餐不能为空", groups = { AddGroup.class }) + private Long packageId; + + /** + * 过期时间 + */ + private Date expireTime; + + /** + * 用户数量(-1不限制) + */ + private Long accountCount; + + /** + * 租户状态(0正常 1停用) + */ + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java new file mode 100644 index 0000000..eecbc9f --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java @@ -0,0 +1,59 @@ +package org.dromara.system.domain.bo; + +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.system.domain.SysTenantPackage; +import io.github.linpeilie.annotations.AutoMapper; +import io.github.linpeilie.annotations.AutoMapping; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 租户套餐业务对象 sys_tenant_package + * + * @author Michelle.Chung + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysTenantPackage.class, reverseConvertGenerate = false) +public class SysTenantPackageBo extends BaseEntity { + + /** + * 租户套餐id + */ + @NotNull(message = "租户套餐id不能为空", groups = { EditGroup.class }) + private Long packageId; + + /** + * 套餐名称 + */ + @NotBlank(message = "套餐名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String packageName; + + /** + * 关联菜单id + */ + @AutoMapping(target = "menuIds", expression = "java(org.dromara.common.core.utils.StringUtils.join(source.getMenuIds(), \",\"))") + private Long[] menuIds; + + /** + * 备注 + */ + private String remark; + + /** + * 菜单树选择项是否关联显示 + */ + private Boolean menuCheckStrictly; + + /** + * 状态(0正常 1停用) + */ + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java new file mode 100644 index 0000000..2669a81 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java @@ -0,0 +1,119 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.xss.Xss; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.system.domain.SysUser; + +/** + * 用户信息业务对象 sys_user + * + * @author Michelle.Chung + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysUser.class, reverseConvertGenerate = false) +public class SysUserBo extends BaseEntity { + + /** + * 用户ID + */ + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + @Xss(message = "用户账号不能包含脚本字符") + @NotBlank(message = "用户账号不能为空") + @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") + private String userName; + + /** + * 用户昵称 + */ + @Xss(message = "用户昵称不能包含脚本字符") + @NotBlank(message = "用户昵称不能为空") + @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") + private String nickName; + + /** + * 用户类型(sys_user系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + + /** + * 密码 + */ + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + /** + * 角色组 + */ + @Size(min = 1, message = "用户角色不能为空") + private Long[] roleIds; + + /** + * 岗位组 + */ + private Long[] postIds; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + + /** + * 排除不查询的用户(工作流用) + */ + private String excludeUserIds; + + public SysUserBo(Long userId) { + this.userId = userId; + } + + public boolean isSuperAdmin() { + return SystemConstants.SUPER_ADMIN_ID.equals(this.userId); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java new file mode 100644 index 0000000..8615fcd --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain.bo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 用户密码修改bo + */ +@Data +public class SysUserPasswordBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 旧密码 + */ + @NotBlank(message = "旧密码不能为空") + private String oldPassword; + + /** + * 新密码 + */ + @NotBlank(message = "新密码不能为空") + private String newPassword; +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java new file mode 100644 index 0000000..846dd79 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java @@ -0,0 +1,53 @@ +package org.dromara.system.domain.bo; + +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.core.constant.RegexConstants; +import org.dromara.common.core.xss.Xss; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.sensitive.annotation.Sensitive; +import org.dromara.common.sensitive.core.SensitiveStrategy; + +/** + * 个人信息业务处理 + * + * @author Michelle.Chung + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysUserProfileBo extends BaseEntity { + + /** + * 用户昵称 + */ + @Xss(message = "用户昵称不能包含脚本字符") + @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") + private String nickName; + + /** + * 用户邮箱 + */ + @Sensitive(strategy = SensitiveStrategy.EMAIL) + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") + private String email; + + /** + * 手机号码 + */ + @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式不正确") + @Sensitive(strategy = SensitiveStrategy.PHONE) + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AvatarVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AvatarVo.java new file mode 100644 index 0000000..46c020b --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AvatarVo.java @@ -0,0 +1,18 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +/** + * 用户头像信息 + * + * @author Michelle.Chung + */ +@Data +public class AvatarVo { + + /** + * 头像地址 + */ + private String imgUrl; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/CacheListInfoVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/CacheListInfoVo.java new file mode 100644 index 0000000..f827cba --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/CacheListInfoVo.java @@ -0,0 +1,23 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + * 缓存监控列表信息 + * + * @author Michelle.Chung + */ +@Data +public class CacheListInfoVo { + + private Properties info; + + private Long dbSize; + + private List> commandStats; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java new file mode 100644 index 0000000..6f7db28 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java @@ -0,0 +1,26 @@ +package org.dromara.system.domain.vo; + +import cn.hutool.core.lang.tree.Tree; +import lombok.Data; + +import java.util.List; + +/** + * 角色部门列表树信息 + * + * @author Michelle.Chung + */ +@Data +public class DeptTreeSelectVo { + + /** + * 选中部门列表 + */ + private List checkedKeys; + + /** + * 下拉树结构列表 + */ + private List> depts; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MenuTreeSelectVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MenuTreeSelectVo.java new file mode 100644 index 0000000..0724538 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MenuTreeSelectVo.java @@ -0,0 +1,26 @@ +package org.dromara.system.domain.vo; + +import cn.hutool.core.lang.tree.Tree; +import lombok.Data; + +import java.util.List; + +/** + * 角色菜单列表树信息 + * + * @author Michelle.Chung + */ +@Data +public class MenuTreeSelectVo { + + /** + * 选中菜单列表 + */ + private List checkedKeys; + + /** + * 菜单下拉树结构列表 + */ + private List> menus; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java new file mode 100644 index 0000000..f720cd7 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java @@ -0,0 +1,61 @@ +package org.dromara.system.domain.vo; + +import org.dromara.common.core.utils.StringUtils; +import lombok.Data; + +/** + * 路由显示信息 + * + * @author ruoyi + */ + +@Data +public class MetaVo { + + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + /** + * 设置为true,则不会被 缓存 + */ + private boolean noCache; + + /** + * 内链地址(http(s)://开头) + */ + private String link; + + public MetaVo(String title, String icon) { + this.title = title; + this.icon = icon; + } + + public MetaVo(String title, String icon, boolean noCache) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + } + + public MetaVo(String title, String icon, String link) { + this.title = title; + this.icon = icon; + this.link = link; + } + + public MetaVo(String title, String icon, boolean noCache, String link) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + if (StringUtils.ishttp(link)) { + this.link = link; + } + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProfileVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProfileVo.java new file mode 100644 index 0000000..c047651 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProfileVo.java @@ -0,0 +1,29 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +/** + * 用户个人信息 + * + * @author Michelle.Chung + */ +@Data +public class ProfileVo { + + /** + * 用户信息 + */ + private SysUserVo user; + + /** + * 用户所属角色组 + */ + private String roleGroup; + + /** + * 用户所属岗位组 + */ + private String postGroup; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java new file mode 100644 index 0000000..0d576ef --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java @@ -0,0 +1,62 @@ +package org.dromara.system.domain.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * 路由配置信息 + * + * @author Lion Li + */ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class RouterVo { + + /** + * 路由名字 + */ + private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + */ + private String redirect; + + /** + * 组件地址 + */ + private String component; + + /** + * 路由参数:如 {"id": 1, "name": "ry"} + */ + private String query; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java new file mode 100644 index 0000000..34f24eb --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java @@ -0,0 +1,90 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysClient; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 授权管理视图对象 sys_client + * + * @author Michelle.Chung + * @date 2023-05-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysClient.class) +public class SysClientVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 客户端id + */ + @ExcelProperty(value = "客户端id") + private String clientId; + + /** + * 客户端key + */ + @ExcelProperty(value = "客户端key") + private String clientKey; + + /** + * 客户端秘钥 + */ + @ExcelProperty(value = "客户端秘钥") + private String clientSecret; + + /** + * 授权类型 + */ + @ExcelProperty(value = "授权类型") + private List grantTypeList; + + /** + * 授权类型 + */ + private String grantType; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * token活跃超时时间 + */ + @ExcelProperty(value = "token活跃超时时间") + private Long activeTimeout; + + /** + * token固定超时时间 + */ + @ExcelProperty(value = "token固定超时时间") + private Long timeout; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java new file mode 100644 index 0000000..f896000 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java @@ -0,0 +1,72 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysConfig; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 参数配置视图对象 sys_config + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysConfig.class) +public class SysConfigVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 参数主键 + */ + @ExcelProperty(value = "参数主键") + private Long configId; + + /** + * 参数名称 + */ + @ExcelProperty(value = "参数名称") + private String configName; + + /** + * 参数键名 + */ + @ExcelProperty(value = "参数键名") + private String configKey; + + /** + * 参数键值 + */ + @ExcelProperty(value = "参数键值") + private String configValue; + + /** + * 系统内置(Y是 N否) + */ + @ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_yes_no") + private String configType; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java new file mode 100644 index 0000000..c56fb09 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java @@ -0,0 +1,102 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysDept; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 部门视图对象 sys_dept + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysDept.class) +public class SysDeptVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 部门id + */ + @ExcelProperty(value = "部门id") + private Long deptId; + + /** + * 父部门id + */ + private Long parentId; + + /** + * 父部门名称 + */ + private String parentName; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 部门名称 + */ + @ExcelProperty(value = "部门名称") + private String deptName; + + /** + * 部门类别编码 + */ + @ExcelProperty(value = "部门类别编码") + private String deptCategory; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 负责人ID + */ + private Long leader; + + /** + * 负责人 + */ + @ExcelProperty(value = "负责人") + private String leaderName; + + /** + * 联系电话 + */ + @ExcelProperty(value = "联系电话") + private String phone; + + /** + * 邮箱 + */ + @ExcelProperty(value = "邮箱") + private String email; + + /** + * 部门状态(0正常 1停用) + */ + @ExcelProperty(value = "部门状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java new file mode 100644 index 0000000..83ea619 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysDictData; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 字典数据视图对象 sys_dict_data + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysDictData.class) +public class SysDictDataVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 字典编码 + */ + @ExcelProperty(value = "字典编码") + private Long dictCode; + + /** + * 字典排序 + */ + @ExcelProperty(value = "字典排序") + private Integer dictSort; + + /** + * 字典标签 + */ + @ExcelProperty(value = "字典标签") + private String dictLabel; + + /** + * 字典键值 + */ + @ExcelProperty(value = "字典键值") + private String dictValue; + + /** + * 字典类型 + */ + @ExcelProperty(value = "字典类型") + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格回显样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + @ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_yes_no") + private String isDefault; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java new file mode 100644 index 0000000..e6a184f --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java @@ -0,0 +1,59 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysDictType; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 字典类型视图对象 sys_dict_type + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysDictType.class) +public class SysDictTypeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 字典主键 + */ + @ExcelProperty(value = "字典主键") + private Long dictId; + + /** + * 字典名称 + */ + @ExcelProperty(value = "字典名称") + private String dictName; + + /** + * 字典类型 + */ + @ExcelProperty(value = "字典类型") + private String dictType; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java new file mode 100644 index 0000000..de19aea --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java @@ -0,0 +1,106 @@ +package org.dromara.system.domain.vo; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysLogininfor; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + +/** + * 系统访问记录视图对象 sys_logininfor + * + * @author Michelle.Chung + * @date 2023-02-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysLogininfor.class) +public class SysLogininforVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 访问ID + */ + @ExcelProperty(value = "序号") + private Long infoId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 用户账号 + */ + @ExcelProperty(value = "用户账号") + private String userName; + + /** + * 客户端 + */ + @ExcelProperty(value = "客户端") + private String clientKey; + + /** + * 设备类型 + */ + @ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_device_type") + private String deviceType; + + /** + * 登录状态(0成功 1失败) + */ + @ExcelProperty(value = "登录状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_common_status") + private String status; + + /** + * 登录IP地址 + */ + @ExcelProperty(value = "登录地址") + private String ipaddr; + + /** + * 登录地点 + */ + @ExcelProperty(value = "登录地点") + private String loginLocation; + + /** + * 浏览器类型 + */ + @ExcelProperty(value = "浏览器") + private String browser; + + /** + * 操作系统 + */ + @ExcelProperty(value = "操作系统") + private String os; + + + /** + * 提示消息 + */ + @ExcelProperty(value = "提示消息") + private String msg; + + /** + * 访问时间 + */ + @ExcelProperty(value = "访问时间") + private Date loginTime; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java new file mode 100644 index 0000000..5214a33 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java @@ -0,0 +1,116 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysMenu; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * 菜单权限视图对象 sys_menu + * + * @author Michelle.Chung + */ +@Data +@AutoMapper(target = SysMenu.class) +public class SysMenuVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 菜单ID + */ + private Long menuId; + + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单ID + */ + private Long parentId; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 路由地址 + */ + private String path; + + /** + * 组件路径 + */ + private String component; + + /** + * 路由参数 + */ + private String queryParam; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 菜单类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限标识 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 创建部门 + */ + private Long createDept; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 子菜单 + */ + private List children = new ArrayList<>(); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java new file mode 100644 index 0000000..afe7367 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java @@ -0,0 +1,73 @@ +package org.dromara.system.domain.vo; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.system.domain.SysNotice; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 通知公告视图对象 sys_notice + * + * @author Michelle.Chung + */ +@Data +@AutoMapper(target = SysNotice.class) +public class SysNoticeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 公告ID + */ + private Long noticeId; + + /** + * 公告标题 + */ + private String noticeTitle; + + /** + * 公告类型(1通知 2公告) + */ + private String noticeType; + + /** + * 公告内容 + */ + private String noticeContent; + + /** + * 公告状态(0正常 1关闭) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建人名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") + private String createByName; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java new file mode 100644 index 0000000..d9eb71d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java @@ -0,0 +1,144 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysOperLog; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 操作日志记录视图对象 sys_oper_log + * + * @author Michelle.Chung + * @date 2023-02-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysOperLog.class) +public class SysOperLogVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 日志主键 + */ + @ExcelProperty(value = "日志主键") + private Long operId; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 模块标题 + */ + @ExcelProperty(value = "操作模块") + private String title; + + /** + * 业务类型(0其它 1新增 2修改 3删除) + */ + @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_oper_type") + private Integer businessType; + + /** + * 业务类型数组 + */ + private Integer[] businessTypes; + + /** + * 方法名称 + */ + @ExcelProperty(value = "请求方法") + private String method; + + /** + * 请求方式 + */ + @ExcelProperty(value = "请求方式") + private String requestMethod; + + /** + * 操作类别(0其它 1后台用户 2手机端用户) + */ + @ExcelProperty(value = "操作类别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=其它,1=后台用户,2=手机端用户") + private Integer operatorType; + + /** + * 操作人员 + */ + @ExcelProperty(value = "操作人员") + private String operName; + + /** + * 部门名称 + */ + @ExcelProperty(value = "部门名称") + private String deptName; + + /** + * 请求URL + */ + @ExcelProperty(value = "请求地址") + private String operUrl; + + /** + * 主机地址 + */ + @ExcelProperty(value = "操作地址") + private String operIp; + + /** + * 操作地点 + */ + @ExcelProperty(value = "操作地点") + private String operLocation; + + /** + * 请求参数 + */ + @ExcelProperty(value = "请求参数") + private String operParam; + + /** + * 返回参数 + */ + @ExcelProperty(value = "返回参数") + private String jsonResult; + + /** + * 操作状态(0正常 1异常) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_common_status") + private Integer status; + + /** + * 错误消息 + */ + @ExcelProperty(value = "错误消息") + private String errorMsg; + + /** + * 操作时间 + */ + @ExcelProperty(value = "操作时间") + private Date operTime; + + /** + * 消耗时间 + */ + @ExcelProperty(value = "消耗时间") + private Long costTime; +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java new file mode 100644 index 0000000..e7cfde4 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java @@ -0,0 +1,97 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import org.dromara.system.domain.SysOssConfig; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 对象存储配置视图对象 sys_oss_config + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysOssConfig.class) +public class SysOssConfigVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long ossConfigId; + + /** + * 配置key + */ + private String configKey; + + /** + * accessKey + */ + private String accessKey; + + /** + * 秘钥 + */ + private String secretKey; + + /** + * 桶名称 + */ + private String bucketName; + + /** + * 前缀 + */ + private String prefix; + + /** + * 访问站点 + */ + private String endpoint; + + /** + * 自定义域名 + */ + private String domain; + + /** + * 是否https(Y=是,N=否) + */ + private String isHttps; + + /** + * 域 + */ + private String region; + + /** + * 是否默认(0=是,1=否) + */ + private String status; + + /** + * 扩展字段 + */ + private String ext1; + + /** + * 备注 + */ + private String remark; + + /** + * 桶权限类型(0private 1public 2custom) + */ + private String accessPolicy; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java new file mode 100644 index 0000000..11e0ff8 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java @@ -0,0 +1,28 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +/** + * 上传对象信息 + * + * @author Michelle.Chung + */ +@Data +public class SysOssUploadVo { + + /** + * URL地址 + */ + private String url; + + /** + * 文件名 + */ + private String fileName; + + /** + * 对象存储主键 + */ + private String ossId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java new file mode 100644 index 0000000..8d5c429 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java @@ -0,0 +1,72 @@ +package org.dromara.system.domain.vo; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.system.domain.SysOss; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * OSS对象存储视图对象 sys_oss + * + * @author Lion Li + */ +@Data +@AutoMapper(target = SysOss.class) +public class SysOssVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 对象存储主键 + */ + private Long ossId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 原名 + */ + private String originalName; + + /** + * 文件后缀名 + */ + private String fileSuffix; + + /** + * URL地址 + */ + private String url; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 上传人 + */ + private Long createBy; + + /** + * 上传人名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") + private String createByName; + + /** + * 服务商 + */ + private String service; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java new file mode 100644 index 0000000..69be547 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java @@ -0,0 +1,91 @@ +package org.dromara.system.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.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.system.domain.SysPost; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 岗位信息视图对象 sys_post + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysPost.class) +public class SysPostVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 岗位ID + */ + @ExcelProperty(value = "岗位序号") + private Long postId; + + /** + * 部门id + */ + @ExcelProperty(value = "部门id") + private Long deptId; + + /** + * 岗位编码 + */ + @ExcelProperty(value = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @ExcelProperty(value = "岗位名称") + private String postName; + + /** + * 岗位类别编码 + */ + @ExcelProperty(value = "类别编码") + private String postCategory; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 部门名 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId") + private String deptName; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java new file mode 100644 index 0000000..ffb2c6d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java @@ -0,0 +1,100 @@ +package org.dromara.system.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.common.core.constant.SystemConstants; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysRole; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 角色信息视图对象 sys_role + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysRole.class) +public class SysRoleVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 角色ID + */ + @ExcelProperty(value = "角色序号") + private Long roleId; + + /** + * 角色名称 + */ + @ExcelProperty(value = "角色名称") + private String roleName; + + /** + * 角色权限字符串 + */ + @ExcelProperty(value = "角色权限") + private String roleKey; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "角色排序") + private Integer roleSort; + + /** + * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) + */ + @ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") + private String dataScope; + + /** + * 菜单树选择项是否关联显示 + */ + @ExcelProperty(value = "菜单树选择项是否关联显示") + private Boolean menuCheckStrictly; + + /** + * 部门树选择项是否关联显示 + */ + @ExcelProperty(value = "部门树选择项是否关联显示") + private Boolean deptCheckStrictly; + + /** + * 角色状态(0正常 1停用) + */ + @ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 用户是否存在此角色标识 默认不存在 + */ + private boolean flag = false; + + public boolean isSuperAdmin() { + return SystemConstants.SUPER_ADMIN_ID.equals(this.roleId); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java new file mode 100644 index 0000000..948dbcc --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java @@ -0,0 +1,144 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.system.domain.SysSocial; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 社会化关系视图对象 sys_social + * + * @author thiszhc + */ +@Data +@AutoMapper(target = SysSocial.class) +public class SysSocialVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + + /** + * 用户ID + */ + private Long userId; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 的唯一ID + */ + private String authId; + + /** + * 用户来源 + */ + private String source; + + /** + * 用户的授权令牌 + */ + private String accessToken; + + /** + * 用户的授权令牌的有效期,部分平台可能没有 + */ + private int expireIn; + + /** + * 刷新令牌,部分平台可能没有 + */ + private String refreshToken; + + /** + * 用户的 open id + */ + private String openId; + + /** + * 授权的第三方账号 + */ + private String userName; + + /** + * 授权的第三方昵称 + */ + private String nickName; + + /** + * 授权的第三方邮箱 + */ + private String email; + + /** + * 授权的第三方头像地址 + */ + private String avatar; + + + /** + * 平台的授权信息,部分平台可能没有 + */ + private String accessCode; + + /** + * 用户的 unionid + */ + private String unionId; + + /** + * 授予的权限,部分平台可能没有 + */ + private String scope; + + /** + * 个别平台的授权信息,部分平台可能没有 + */ + private String tokenType; + + /** + * id token,部分平台可能没有 + */ + private String idToken; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macAlgorithm; + + /** + * 小米平台用户的附带属性,部分平台可能没有 + */ + private String macKey; + + /** + * 用户的授权code,部分平台可能没有 + */ + private String code; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthToken; + + /** + * Twitter平台用户的附带属性,部分平台可能没有 + */ + private String oauthTokenSecret; + + /** + * 创建时间 + */ + private Date createTime; +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java new file mode 100644 index 0000000..070334b --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java @@ -0,0 +1,66 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysTenantPackage; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 租户套餐视图对象 sys_tenant_package + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysTenantPackage.class) +public class SysTenantPackageVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 租户套餐id + */ + @ExcelProperty(value = "租户套餐id") + private Long packageId; + + /** + * 套餐名称 + */ + @ExcelProperty(value = "套餐名称") + private String packageName; + + /** + * 关联菜单id + */ + @ExcelProperty(value = "关联菜单id") + private String menuIds; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 菜单树选择项是否关联显示 + */ + @ExcelProperty(value = "菜单树选择项是否关联显示") + private Boolean menuCheckStrictly; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java new file mode 100644 index 0000000..6a45315 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java @@ -0,0 +1,115 @@ +package org.dromara.system.domain.vo; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.system.domain.SysTenant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 租户视图对象 sys_tenant + * + * @author Michelle.Chung + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysTenant.class) +public class SysTenantVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 联系人 + */ + @ExcelProperty(value = "联系人") + private String contactUserName; + + /** + * 联系电话 + */ + @ExcelProperty(value = "联系电话") + private String contactPhone; + + /** + * 企业名称 + */ + @ExcelProperty(value = "企业名称") + private String companyName; + + /** + * 统一社会信用代码 + */ + @ExcelProperty(value = "统一社会信用代码") + private String licenseNumber; + + /** + * 地址 + */ + @ExcelProperty(value = "地址") + private String address; + + /** + * 域名 + */ + @ExcelProperty(value = "域名") + private String domain; + + /** + * 企业简介 + */ + @ExcelProperty(value = "企业简介") + private String intro; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 租户套餐编号 + */ + @ExcelProperty(value = "租户套餐编号") + private Long packageId; + + /** + * 过期时间 + */ + @ExcelProperty(value = "过期时间") + private Date expireTime; + + /** + * 用户数量(-1不限制) + */ + @ExcelProperty(value = "用户数量") + private Long accountCount; + + /** + * 租户状态(0正常 1停用) + */ + @ExcelProperty(value = "租户状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java new file mode 100644 index 0000000..37ec6b7 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java @@ -0,0 +1,96 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import io.github.linpeilie.annotations.ReverseAutoMapping; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 用户对象导出VO + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +public class SysUserExportVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + /** + * 用户账号 + */ + @ExcelProperty(value = "登录名称") + private String userName; + + /** + * 用户昵称 + */ + @ExcelProperty(value = "用户名称") + private String nickName; + + /** + * 用户邮箱 + */ + @ExcelProperty(value = "用户邮箱") + private String email; + + /** + * 手机号码 + */ + @ExcelProperty(value = "手机号码") + private String phonenumber; + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + + /** + * 最后登录IP + */ + @ExcelProperty(value = "最后登录IP") + private String loginIp; + + /** + * 最后登录时间 + */ + @ExcelProperty(value = "最后登录时间") + private Date loginDate; + + /** + * 部门名称 + */ + @ExcelProperty(value = "部门名称") + private String deptName; + + /** + * 负责人 + */ + @ExcelProperty(value = "部门负责人") + private String leaderName; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java new file mode 100644 index 0000000..c34a23c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java @@ -0,0 +1,76 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 用户对象导入VO + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +// @Accessors(chain = true) // 导入不允许使用 会找不到set方法 +public class SysUserImportVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + /** + * 部门ID + */ + @ExcelProperty(value = "部门编号") + private Long deptId; + + /** + * 用户账号 + */ + @ExcelProperty(value = "登录名称") + private String userName; + + /** + * 用户昵称 + */ + @ExcelProperty(value = "用户名称") + private String nickName; + + /** + * 用户邮箱 + */ + @ExcelProperty(value = "用户邮箱") + private String email; + + /** + * 手机号码 + */ + @ExcelProperty(value = "手机号码") + private String phonenumber; + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java new file mode 100644 index 0000000..e41355d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java @@ -0,0 +1,40 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 用户信息 + * + * @author Michelle.Chung + */ +@Data +public class SysUserInfoVo { + + /** + * 用户信息 + */ + private SysUserVo user; + + /** + * 角色ID列表 + */ + private List roleIds; + + /** + * 角色列表 + */ + private List roles; + + /** + * 岗位ID列表 + */ + private List postIds; + + /** + * 岗位列表 + */ + private List posts; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java new file mode 100644 index 0000000..86249d2 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java @@ -0,0 +1,142 @@ +package org.dromara.system.domain.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.dromara.common.sensitive.annotation.Sensitive; +import org.dromara.common.sensitive.core.SensitiveStrategy; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.system.domain.SysUser; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 用户信息视图对象 sys_user + * + * @author Michelle.Chung + */ +@Data +@AutoMapper(target = SysUser.class) +public class SysUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private Long userId; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(sys_user系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + @Sensitive(strategy = SensitiveStrategy.EMAIL, perms = "system:user:edit") + private String email; + + /** + * 手机号码 + */ + @Sensitive(strategy = SensitiveStrategy.PHONE, perms = "system:user:edit") + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + + /** + * 头像地址 + */ + @Translation(type = TransConstant.OSS_ID_TO_URL) + private Long avatar; + + /** + * 密码 + */ + @JsonIgnore + @JsonProperty + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private String status; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + private Date loginDate; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 部门名 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId") + private String deptName; + + /** + * 角色对象 + */ + private List roles; + + /** + * 角色组 + */ + private Long[] roleIds; + + /** + * 岗位组 + */ + private Long[] postIds; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java new file mode 100644 index 0000000..48fa92a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java @@ -0,0 +1,30 @@ +package org.dromara.system.domain.vo; + +import lombok.Data; + +import java.util.Set; + +/** + * 登录用户信息 + * + * @author Michelle.Chung + */ +@Data +public class UserInfoVo { + + /** + * 用户基本信息 + */ + private SysUserVo user; + + /** + * 菜单权限 + */ + private Set permissions; + + /** + * 角色权限 + */ + private Set roles; + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java b/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java new file mode 100644 index 0000000..25b62a9 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java @@ -0,0 +1,127 @@ +package org.dromara.system.listener; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.crypto.digest.BCrypt; +import cn.hutool.http.HtmlUtil; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.ValidatorUtils; +import org.dromara.common.excel.core.ExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysUserImportVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysConfigService; +import org.dromara.system.service.ISysUserService; +import lombok.extern.slf4j.Slf4j; + +import java.util.List; + +/** + * 系统用户自定义导入 + * + * @author Lion Li + */ +@Slf4j +public class SysUserImportListener extends AnalysisEventListener implements ExcelListener { + + private final ISysUserService userService; + + private final String password; + + private final Boolean isUpdateSupport; + + private final Long operUserId; + + private int successNum = 0; + private int failureNum = 0; + private final StringBuilder successMsg = new StringBuilder(); + private final StringBuilder failureMsg = new StringBuilder(); + + public SysUserImportListener(Boolean isUpdateSupport) { + String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword"); + this.userService = SpringUtils.getBean(ISysUserService.class); + this.password = BCrypt.hashpw(initPassword); + this.isUpdateSupport = isUpdateSupport; + this.operUserId = LoginHelper.getUserId(); + } + + @Override + public void invoke(SysUserImportVo userVo, AnalysisContext context) { + SysUserVo sysUser = this.userService.selectUserByUserName(userVo.getUserName()); + try { + // 验证是否存在这个用户 + if (ObjectUtil.isNull(sysUser)) { + SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); + ValidatorUtils.validate(user); + user.setPassword(password); + user.setCreateBy(operUserId); + userService.insertUser(user); + successNum++; + successMsg.append("
").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); + } else if (isUpdateSupport) { + Long userId = sysUser.getUserId(); + SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); + user.setUserId(userId); + ValidatorUtils.validate(user); + userService.checkUserAllowed(user.getUserId()); + userService.checkUserDataScope(user.getUserId()); + user.setUpdateBy(operUserId); + userService.updateUser(user); + successNum++; + successMsg.append("
").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功"); + } else { + failureNum++; + failureMsg.append("
").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在"); + } + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、账号 " + HtmlUtil.cleanHtmlTag(userVo.getUserName()) + " 导入失败:"; + String message = e.getMessage(); + if (e instanceof ConstraintViolationException cvException) { + message = StreamUtils.join(cvException.getConstraintViolations(), ConstraintViolation::getMessage, ", "); + } + failureMsg.append(msg).append(message); + log.error(msg, e); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + + } + + @Override + public ExcelResult getExcelResult() { + return new ExcelResult<>() { + + @Override + public String getAnalysis() { + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + @Override + public List getList() { + return null; + } + + @Override + public List getErrorList() { + return null; + } + }; + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java new file mode 100644 index 0000000..15bcfb4 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysClient; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 授权管理Mapper接口 + * + * @author Michelle.Chung + * @date 2023-05-15 + */ +public interface SysClientMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java new file mode 100644 index 0000000..0eaaee8 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysConfig; +import org.dromara.system.domain.vo.SysConfigVo; + +/** + * 参数配置 数据层 + * + * @author Lion Li + */ +public interface SysConfigMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java new file mode 100644 index 0000000..b69624c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java @@ -0,0 +1,78 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +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.common.mybatis.helper.DataBaseHelper; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.vo.SysDeptVo; + +import java.util.List; + +/** + * 部门管理 数据层 + * + * @author Lion Li + */ +public interface SysDeptMapper extends BaseMapperPlus { + + /** + * 查询部门管理数据 + * + * @param queryWrapper 查询条件 + * @return 部门信息集合 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id") + }) + List selectDeptList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 分页查询部门管理数据 + * + * @param queryWrapper 查询条件 + * @return 部门信息集合 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + }) + Page selectPageDeptList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 统计指定部门ID的部门数量 + * + * @param deptId 部门ID + * @return 该部门ID的部门数量 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id") + }) + long countDeptById(Long deptId); + + /** + * 根据父部门ID查询其所有子部门的列表 + * + * @param parentId 父部门ID + * @return 包含子部门的列表 + */ + default List selectListByParentId(Long parentId) { + return this.selectList(new LambdaQueryWrapper() + .select(SysDept::getDeptId) + .apply(DataBaseHelper.findInSet(parentId, "ancestors"))); + } + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @param deptCheckStrictly 部门树选择项是否关联显示 + * @return 选中部门列表 + */ + List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java new file mode 100644 index 0000000..7298db3 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java @@ -0,0 +1,29 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysDictData; +import org.dromara.system.domain.vo.SysDictDataVo; + +import java.util.List; + +/** + * 字典表 数据层 + * + * @author Lion Li + */ +public interface SysDictDataMapper extends BaseMapperPlus { + + /** + * 根据字典类型查询字典数据列表 + * + * @param dictType 字典类型 + * @return 符合条件的字典数据列表 + */ + default List selectDictDataByType(String dictType) { + return selectVoList( + new LambdaQueryWrapper() + .eq(SysDictData::getDictType, dictType) + .orderByAsc(SysDictData::getDictSort)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java new file mode 100644 index 0000000..9a9bdd5 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysDictType; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.vo.SysDictTypeVo; + +/** + * 字典表 数据层 + * + * @author Lion Li + */ +public interface SysDictTypeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java new file mode 100644 index 0000000..85edd1d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysLogininfor; +import org.dromara.system.domain.vo.SysLogininforVo; + +/** + * 系统访问日志情况信息 数据层 + * + * @author Lion Li + */ +public interface SysLogininforMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java new file mode 100644 index 0000000..205413b --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java @@ -0,0 +1,76 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysMenu; +import org.dromara.system.domain.vo.SysMenuVo; + +import java.util.List; + +/** + * 菜单表 数据层 + * + * @author Lion Li + */ +public interface SysMenuMapper extends BaseMapperPlus { + + /** + * 根据用户查询系统菜单列表 + * + * @param queryWrapper 查询条件 + * @return 菜单列表 + */ + List selectMenuListByUserId(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + List selectMenuPermsByUserId(Long userId); + + /** + * 根据角色ID查询权限 + * + * @param roleId 角色ID + * @return 权限列表 + */ + List selectMenuPermsByRoleId(Long roleId); + + /** + * 根据用户ID查询菜单 + * + * @return 菜单列表 + */ + default List selectMenuTreeAll() { + LambdaQueryWrapper lqw = new LambdaQueryWrapper() + .in(SysMenu::getMenuType, SystemConstants.TYPE_DIR, SystemConstants.TYPE_MENU) + .eq(SysMenu::getStatus, SystemConstants.NORMAL) + .orderByAsc(SysMenu::getParentId) + .orderByAsc(SysMenu::getOrderNum); + return this.selectList(lqw); + } + + /** + * 根据用户ID查询菜单 + * + * @param userId 用户ID + * @return 菜单列表 + */ + List selectMenuTreeByUserId(Long userId); + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @param menuCheckStrictly 菜单树选择项是否关联显示 + * @return 选中菜单列表 + */ + List selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java new file mode 100644 index 0000000..1e27b77 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysNotice; +import org.dromara.system.domain.vo.SysNoticeVo; + +/** + * 通知公告表 数据层 + * + * @author Lion Li + */ +public interface SysNoticeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java new file mode 100644 index 0000000..5d20404 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysOperLog; +import org.dromara.system.domain.vo.SysOperLogVo; + +/** + * 操作日志 数据层 + * + * @author Lion Li + */ +public interface SysOperLogMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java new file mode 100644 index 0000000..f93d34d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysOssConfig; +import org.dromara.system.domain.vo.SysOssConfigVo; + +/** + * 对象存储配置Mapper接口 + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ +public interface SysOssConfigMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java new file mode 100644 index 0000000..3da621d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java @@ -0,0 +1,13 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysOss; +import org.dromara.system.domain.vo.SysOssVo; + +/** + * 文件上传 数据层 + * + * @author Lion Li + */ +public interface SysOssMapper extends BaseMapperPlus { +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java new file mode 100644 index 0000000..60da074 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java @@ -0,0 +1,43 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +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.system.domain.SysPost; +import org.dromara.system.domain.vo.SysPostVo; + +import java.util.List; + +/** + * 岗位信息 数据层 + * + * @author Lion Li + */ +public interface SysPostMapper extends BaseMapperPlus { + + /** + * 分页查询岗位列表 + * + * @param page 分页对象 + * @param queryWrapper 查询条件 + * @return 包含岗位信息的分页结果 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "create_by") + }) + Page selectPagePostList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 查询用户所属岗位组 + * + * @param userId 用户ID + * @return 结果 + */ + List selectPostsByUserId(Long userId); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java new file mode 100644 index 0000000..3de0bb6 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java @@ -0,0 +1,13 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysRoleDept; + +/** + * 角色与部门关联表 数据层 + * + * @author Lion Li + */ +public interface SysRoleDeptMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java new file mode 100644 index 0000000..9cb1ea5 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java @@ -0,0 +1,75 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +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.system.domain.SysRole; +import org.dromara.system.domain.vo.SysRoleVo; + +import java.util.List; + +/** + * 角色表 数据层 + * + * @author Lion Li + */ +public interface SysRoleMapper extends BaseMapperPlus { + + /** + * 分页查询角色列表 + * + * @param page 分页对象 + * @param queryWrapper 查询条件 + * @return 包含角色信息的分页结果 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "r.create_by") + }) + Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据条件分页查询角色数据 + * + * @param queryWrapper 查询条件 + * @return 角色数据集合信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "r.create_by") + }) + List selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据角色ID查询角色信息 + * + * @param roleId 角色ID + * @return 对应的角色信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "r.create_by") + }) + SysRoleVo selectRoleById(Long roleId); + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + List selectRolePermissionByUserId(Long userId); + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + List selectRolesByUserId(Long userId); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java new file mode 100644 index 0000000..0a657b4 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java @@ -0,0 +1,13 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysRoleMenu; + +/** + * 角色与菜单关联表 数据层 + * + * @author Lion Li + */ +public interface SysRoleMenuMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java new file mode 100644 index 0000000..b942061 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysSocial; +import org.dromara.system.domain.vo.SysSocialVo; + +/** + * 社会化关系Mapper接口 + * + * @author thiszhc + */ +public interface SysSocialMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java new file mode 100644 index 0000000..7e1167a --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysTenant; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 租户Mapper接口 + * + * @author Michelle.Chung + */ +public interface SysTenantMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java new file mode 100644 index 0000000..10ca170 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysTenantPackage; +import org.dromara.system.domain.vo.SysTenantPackageVo; + +/** + * 租户套餐Mapper接口 + * + * @author Michelle.Chung + */ +public interface SysTenantPackageMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java new file mode 100644 index 0000000..46695aa --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -0,0 +1,123 @@ +package org.dromara.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +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.system.domain.SysUser; +import org.dromara.system.domain.vo.SysUserExportVo; +import org.dromara.system.domain.vo.SysUserVo; + +import java.util.List; + +/** + * 用户表 数据层 + * + * @author Lion Li + */ +public interface SysUserMapper extends BaseMapperPlus { + + /** + * 分页查询用户列表,并进行数据权限控制 + * + * @param page 分页参数 + * @param queryWrapper 查询条件 + * @return 分页的用户信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "u.dept_id"), + @DataColumn(key = "userName", value = "u.user_id") + }) + Page selectPageUserList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 查询用户列表,并进行数据权限控制 + * + * @param queryWrapper 查询条件 + * @return 用户信息集合 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "user_id") + }) + List selectUserList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据条件分页查询用户列表 + * + * @param queryWrapper 查询条件 + * @return 用户信息集合信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "u.user_id") + }) + List selectUserExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据条件分页查询已配用户角色列表 + * + * @param queryWrapper 查询条件 + * @return 用户信息集合信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "u.user_id") + }) + Page selectAllocatedList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param queryWrapper 查询条件 + * @return 用户信息集合信息 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "userName", value = "u.user_id") + }) + Page selectUnallocatedList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 根据用户ID统计用户数量 + * + * @param userId 用户ID + * @return 用户数量 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "user_id") + }) + long countUserById(Long userId); + + /** + * 根据条件更新用户数据 + * + * @param user 要更新的用户实体 + * @param updateWrapper 更新条件封装器 + * @return 更新操作影响的行数 + */ + @Override + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "user_id") + }) + int update(@Param(Constants.ENTITY) SysUser user, @Param(Constants.WRAPPER) Wrapper updateWrapper); + + /** + * 根据用户ID更新用户数据 + * + * @param user 要更新的用户实体 + * @return 更新操作影响的行数 + */ + @Override + @DataPermission({ + @DataColumn(key = "deptName", value = "dept_id"), + @DataColumn(key = "userName", value = "user_id") + }) + int updateById(@Param(Constants.ENTITY) SysUser user); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java new file mode 100644 index 0000000..07c1371 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java @@ -0,0 +1,13 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysUserPost; + +/** + * 用户与岗位关联表 数据层 + * + * @author Lion Li + */ +public interface SysUserPostMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java new file mode 100644 index 0000000..8340348 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java @@ -0,0 +1,23 @@ +package org.dromara.system.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.system.domain.SysUserRole; + +import java.util.List; + +/** + * 用户与角色关联表 数据层 + * + * @author Lion Li + */ +public interface SysUserRoleMapper extends BaseMapperPlus { + + /** + * 根据角色ID查询关联的用户ID列表 + * + * @param roleId 角色ID + * @return 关联到指定角色的用户ID列表 + */ + List selectUserIdsByRoleId(Long roleId); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java b/ruoyi-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java new file mode 100644 index 0000000..27dad7d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java @@ -0,0 +1,28 @@ +package org.dromara.system.runner; + +import org.dromara.system.service.ISysOssConfigService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * 初始化 system 模块对应业务数据 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Component +public class SystemApplicationRunner implements ApplicationRunner { + + private final ISysOssConfigService ossConfigService; + + @Override + public void run(ApplicationArguments args) throws Exception { + ossConfigService.init(); + log.info("初始化OSS配置成功"); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java new file mode 100644 index 0000000..546c3f3 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java @@ -0,0 +1,60 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysClient; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.system.domain.bo.SysClientBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 客户端管理Service接口 + * + * @author Michelle.Chung + * @date 2023-06-18 + */ +public interface ISysClientService { + + /** + * 查询客户端管理 + */ + SysClientVo queryById(Long id); + + /** + * 查询客户端信息基于客户端id + */ + SysClientVo queryByClientId(String clientId); + + /** + * 查询客户端管理列表 + */ + TableDataInfo queryPageList(SysClientBo bo, PageQuery pageQuery); + + /** + * 查询客户端管理列表 + */ + List queryList(SysClientBo bo); + + /** + * 新增客户端管理 + */ + Boolean insertByBo(SysClientBo bo); + + /** + * 修改客户端管理 + */ + Boolean updateByBo(SysClientBo bo); + + /** + * 修改状态 + */ + int updateClientStatus(String clientId, String status); + + /** + * 校验并批量删除客户端管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java new file mode 100644 index 0000000..f7efda7 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java @@ -0,0 +1,87 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysConfigBo; +import org.dromara.system.domain.vo.SysConfigVo; + +import java.util.List; + +/** + * 参数配置 服务层 + * + * @author Lion Li + */ +public interface ISysConfigService { + + + TableDataInfo selectPageConfigList(SysConfigBo config, PageQuery pageQuery); + + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + SysConfigVo selectConfigById(Long configId); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数键值 + */ + String selectConfigByKey(String configKey); + + /** + * 获取注册开关 + * @param tenantId 租户id + * @return true开启,false关闭 + */ + boolean selectRegisterEnabled(String tenantId); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + List selectConfigList(SysConfigBo config); + + /** + * 新增参数配置 + * + * @param bo 参数配置信息 + * @return 结果 + */ + String insertConfig(SysConfigBo bo); + + /** + * 修改参数配置 + * + * @param bo 参数配置信息 + * @return 结果 + */ + String updateConfig(SysConfigBo bo); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + */ + void deleteConfigByIds(Long[] configIds); + + /** + * 重置参数缓存数据 + */ + void resetConfigCache(); + + /** + * 校验参数键名是否唯一 + * + * @param config 参数信息 + * @return 结果 + */ + boolean checkConfigKeyUnique(SysConfigBo config); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java new file mode 100644 index 0000000..3f252f7 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java @@ -0,0 +1,26 @@ +package org.dromara.system.service; + +/** + * 通用 数据权限 服务 + * + * @author Lion Li + */ +public interface ISysDataScopeService { + + /** + * 获取角色自定义权限 + * + * @param roleId 角色id + * @return 部门id组 + */ + String getRoleCustom(Long roleId); + + /** + * 获取部门及以下权限 + * + * @param deptId 部门id + * @return 部门id组 + */ + String getDeptAndChild(Long deptId); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java new file mode 100644 index 0000000..bf16642 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -0,0 +1,125 @@ +package org.dromara.system.service; + +import cn.hutool.core.lang.tree.Tree; +import org.dromara.system.domain.bo.SysDeptBo; +import org.dromara.system.domain.vo.SysDeptVo; + +import java.util.List; + +/** + * 部门管理 服务层 + * + * @author Lion Li + */ +public interface ISysDeptService { + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + List selectDeptList(SysDeptBo dept); + + /** + * 查询部门树结构信息 + * + * @param dept 部门信息 + * @return 部门树信息集合 + */ + List> selectDeptTreeList(SysDeptBo dept); + + /** + * 构建前端所需要下拉树结构 + * + * @param depts 部门列表 + * @return 下拉树结构列表 + */ + List> buildDeptTreeSelect(List depts); + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @return 选中部门列表 + */ + List selectDeptListByRoleId(Long roleId); + + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + SysDeptVo selectDeptById(Long deptId); + + /** + * 通过部门ID串查询部门 + * + * @param deptIds 部门id串 + * @return 部门列表信息 + */ + List selectDeptByIds(List deptIds); + + /** + * 根据ID查询所有子部门数(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + long selectNormalChildrenDeptById(Long deptId); + + /** + * 是否存在部门子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + boolean hasChildByDeptId(Long deptId); + + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 true 存在 false 不存在 + */ + boolean checkDeptExistUser(Long deptId); + + /** + * 校验部门名称是否唯一 + * + * @param dept 部门信息 + * @return 结果 + */ + boolean checkDeptNameUnique(SysDeptBo dept); + + /** + * 校验部门是否有数据权限 + * + * @param deptId 部门id + */ + void checkDeptDataScope(Long deptId); + + /** + * 新增保存部门信息 + * + * @param bo 部门信息 + * @return 结果 + */ + int insertDept(SysDeptBo bo); + + /** + * 修改保存部门信息 + * + * @param bo 部门信息 + * @return 结果 + */ + int updateDept(SysDeptBo bo); + + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + int deleteDeptById(Long deptId); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java new file mode 100644 index 0000000..0e697db --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java @@ -0,0 +1,76 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysDictDataBo; +import org.dromara.system.domain.vo.SysDictDataVo; + +import java.util.List; + +/** + * 字典 业务层 + * + * @author Lion Li + */ +public interface ISysDictDataService { + + + TableDataInfo selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery); + + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + List selectDictDataList(SysDictDataBo dictData); + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + String selectDictLabel(String dictType, String dictValue); + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + SysDictDataVo selectDictDataById(Long dictCode); + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + */ + void deleteDictDataByIds(Long[] dictCodes); + + /** + * 新增保存字典数据信息 + * + * @param bo 字典数据信息 + * @return 结果 + */ + List insertDictData(SysDictDataBo bo); + + /** + * 修改保存字典数据信息 + * + * @param bo 字典数据信息 + * @return 结果 + */ + List updateDictData(SysDictDataBo bo); + + /** + * 校验字典键值是否唯一 + * + * @param dict 字典数据 + * @return 结果 + */ + boolean checkDictDataUnique(SysDictDataBo dict); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java new file mode 100644 index 0000000..3b32d6c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java @@ -0,0 +1,95 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysDictTypeBo; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.dromara.system.domain.vo.SysDictTypeVo; + +import java.util.List; + +/** + * 字典 业务层 + * + * @author Lion Li + */ +public interface ISysDictTypeService { + + + TableDataInfo selectPageDictTypeList(SysDictTypeBo dictType, PageQuery pageQuery); + + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + List selectDictTypeList(SysDictTypeBo dictType); + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + List selectDictTypeAll(); + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + List selectDictDataByType(String dictType); + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + SysDictTypeVo selectDictTypeById(Long dictId); + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + SysDictTypeVo selectDictTypeByType(String dictType); + + /** + * 批量删除字典信息 + * + * @param dictIds 需要删除的字典ID + */ + void deleteDictTypeByIds(Long[] dictIds); + + /** + * 重置字典缓存数据 + */ + void resetDictCache(); + + /** + * 新增保存字典类型信息 + * + * @param bo 字典类型信息 + * @return 结果 + */ + List insertDictType(SysDictTypeBo bo); + + /** + * 修改保存字典类型信息 + * + * @param bo 字典类型信息 + * @return 结果 + */ + List updateDictType(SysDictTypeBo bo); + + /** + * 校验字典类型称是否唯一 + * + * @param dictType 字典类型 + * @return 结果 + */ + boolean checkDictTypeUnique(SysDictTypeBo dictType); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysLogininforService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysLogininforService.java new file mode 100644 index 0000000..6b3b7a6 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysLogininforService.java @@ -0,0 +1,47 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysLogininforBo; +import org.dromara.system.domain.vo.SysLogininforVo; + +import java.util.List; + +/** + * 系统访问日志情况信息 服务层 + * + * @author Lion Li + */ +public interface ISysLogininforService { + + + TableDataInfo selectPageLogininforList(SysLogininforBo logininfor, PageQuery pageQuery); + + /** + * 新增系统登录日志 + * + * @param bo 访问日志对象 + */ + void insertLogininfor(SysLogininforBo bo); + + /** + * 查询系统登录日志集合 + * + * @param logininfor 访问日志对象 + * @return 登录记录集合 + */ + List selectLogininforList(SysLogininforBo logininfor); + + /** + * 批量删除系统登录日志 + * + * @param infoIds 需要删除的登录日志ID + * @return 结果 + */ + int deleteLogininforByIds(Long[] infoIds); + + /** + * 清空系统登录日志 + */ + void cleanLogininfor(); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java new file mode 100644 index 0000000..72d705e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java @@ -0,0 +1,147 @@ +package org.dromara.system.service; + +import cn.hutool.core.lang.tree.Tree; +import org.dromara.system.domain.SysMenu; +import org.dromara.system.domain.bo.SysMenuBo; +import org.dromara.system.domain.vo.RouterVo; +import org.dromara.system.domain.vo.SysMenuVo; + +import java.util.List; +import java.util.Set; + +/** + * 菜单 业务层 + * + * @author Lion Li + */ +public interface ISysMenuService { + + /** + * 根据用户查询系统菜单列表 + * + * @param userId 用户ID + * @return 菜单列表 + */ + List selectMenuList(Long userId); + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @param userId 用户ID + * @return 菜单列表 + */ + List selectMenuList(SysMenuBo menu, Long userId); + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + Set selectMenuPermsByUserId(Long userId); + + /** + * 根据角色ID查询权限 + * + * @param roleId 角色ID + * @return 权限列表 + */ + Set selectMenuPermsByRoleId(Long roleId); + + /** + * 根据用户ID查询菜单树信息 + * + * @param userId 用户ID + * @return 菜单列表 + */ + List selectMenuTreeByUserId(Long userId); + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @return 选中菜单列表 + */ + List selectMenuListByRoleId(Long roleId); + + /** + * 根据租户套餐ID查询菜单树信息 + * + * @param packageId 租户套餐ID + * @return 选中菜单列表 + */ + List selectMenuListByPackageId(Long packageId); + + /** + * 构建前端路由所需要的菜单 + * + * @param menus 菜单列表 + * @return 路由列表 + */ + List buildMenus(List menus); + + /** + * 构建前端所需要下拉树结构 + * + * @param menus 菜单列表 + * @return 下拉树结构列表 + */ + List> buildMenuTreeSelect(List menus); + + /** + * 根据菜单ID查询信息 + * + * @param menuId 菜单ID + * @return 菜单信息 + */ + SysMenuVo selectMenuById(Long menuId); + + /** + * 是否存在菜单子节点 + * + * @param menuId 菜单ID + * @return 结果 true 存在 false 不存在 + */ + boolean hasChildByMenuId(Long menuId); + + /** + * 查询菜单是否存在角色 + * + * @param menuId 菜单ID + * @return 结果 true 存在 false 不存在 + */ + boolean checkMenuExistRole(Long menuId); + + /** + * 新增保存菜单信息 + * + * @param bo 菜单信息 + * @return 结果 + */ + int insertMenu(SysMenuBo bo); + + /** + * 修改保存菜单信息 + * + * @param bo 菜单信息 + * @return 结果 + */ + int updateMenu(SysMenuBo bo); + + /** + * 删除菜单管理信息 + * + * @param menuId 菜单ID + * @return 结果 + */ + int deleteMenuById(Long menuId); + + /** + * 校验菜单名称是否唯一 + * + * @param menu 菜单信息 + * @return 结果 + */ + boolean checkMenuNameUnique(SysMenuBo menu); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysNoticeService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysNoticeService.java new file mode 100644 index 0000000..8ec999d --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysNoticeService.java @@ -0,0 +1,67 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysNoticeBo; +import org.dromara.system.domain.vo.SysNoticeVo; + +import java.util.List; + +/** + * 公告 服务层 + * + * @author Lion Li + */ +public interface ISysNoticeService { + + + TableDataInfo selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery); + + /** + * 查询公告信息 + * + * @param noticeId 公告ID + * @return 公告信息 + */ + SysNoticeVo selectNoticeById(Long noticeId); + + /** + * 查询公告列表 + * + * @param notice 公告信息 + * @return 公告集合 + */ + List selectNoticeList(SysNoticeBo notice); + + /** + * 新增公告 + * + * @param bo 公告信息 + * @return 结果 + */ + int insertNotice(SysNoticeBo bo); + + /** + * 修改公告 + * + * @param bo 公告信息 + * @return 结果 + */ + int updateNotice(SysNoticeBo bo); + + /** + * 删除公告信息 + * + * @param noticeId 公告ID + * @return 结果 + */ + int deleteNoticeById(Long noticeId); + + /** + * 批量删除公告信息 + * + * @param noticeIds 需要删除的公告ID + * @return 结果 + */ + int deleteNoticeByIds(Long[] noticeIds); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysOperLogService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOperLogService.java new file mode 100644 index 0000000..9573510 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOperLogService.java @@ -0,0 +1,54 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.dromara.system.domain.vo.SysOperLogVo; + +import java.util.List; + +/** + * 操作日志 服务层 + * + * @author Lion Li + */ +public interface ISysOperLogService { + + TableDataInfo selectPageOperLogList(SysOperLogBo operLog, PageQuery pageQuery); + + /** + * 新增操作日志 + * + * @param bo 操作日志对象 + */ + void insertOperlog(SysOperLogBo bo); + + /** + * 查询系统操作日志集合 + * + * @param operLog 操作日志对象 + * @return 操作日志集合 + */ + List selectOperLogList(SysOperLogBo operLog); + + /** + * 批量删除系统操作日志 + * + * @param operIds 需要删除的操作日志ID + * @return 结果 + */ + int deleteOperLogByIds(Long[] operIds); + + /** + * 查询操作日志详细 + * + * @param operId 操作ID + * @return 操作日志对象 + */ + SysOperLogVo selectOperLogById(Long operId); + + /** + * 清空操作日志 + */ + void cleanOperLog(); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java new file mode 100644 index 0000000..2f6dfc9 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java @@ -0,0 +1,64 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysOssConfigBo; +import org.dromara.system.domain.vo.SysOssConfigVo; + +import java.util.Collection; + +/** + * 对象存储配置Service接口 + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ +public interface ISysOssConfigService { + + /** + * 初始化OSS配置 + */ + void init(); + + /** + * 查询单个 + */ + SysOssConfigVo queryById(Long ossConfigId); + + /** + * 查询列表 + */ + TableDataInfo queryPageList(SysOssConfigBo bo, PageQuery pageQuery); + + /** + * 根据新增业务对象插入对象存储配置 + * + * @param bo 对象存储配置新增业务对象 + * @return 结果 + */ + Boolean insertByBo(SysOssConfigBo bo); + + /** + * 根据编辑业务对象修改对象存储配置 + * + * @param bo 对象存储配置编辑业务对象 + * @return 结果 + */ + Boolean updateByBo(SysOssConfigBo bo); + + /** + * 校验并删除数据 + * + * @param ids 主键集合 + * @param isValid 是否校验,true-删除前校验,false-不校验 + * @return 结果 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 启用停用状态 + */ + int updateOssConfigStatus(SysOssConfigBo bo); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java new file mode 100644 index 0000000..057c068 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java @@ -0,0 +1,80 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysOssBo; +import org.dromara.system.domain.vo.SysOssVo; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +/** + * 文件上传 服务层 + * + * @author Lion Li + */ +public interface ISysOssService { + + /** + * 查询OSS对象存储列表 + * + * @param sysOss OSS对象存储分页查询对象 + * @param pageQuery 分页查询实体类 + * @return 结果 + */ + TableDataInfo queryPageList(SysOssBo sysOss, PageQuery pageQuery); + + /** + * 根据一组 ossIds 获取对应的 SysOssVo 列表 + * + * @param ossIds 一组文件在数据库中的唯一标识集合 + * @return 包含 SysOssVo 对象的列表 + */ + List listByIds(Collection ossIds); + + /** + * 根据 ossId 从缓存或数据库中获取 SysOssVo 对象 + * + * @param ossId 文件在数据库中的唯一标识 + * @return SysOssVo 对象,包含文件信息 + */ + SysOssVo getById(Long ossId); + + /** + * 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的 MultipartFile 对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ + SysOssVo upload(MultipartFile file); + + /** + * 上传文件到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的文件对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ + SysOssVo upload(File file); + + /** + * 文件下载方法,支持一次性下载完整文件 + * + * @param ossId OSS对象ID + * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 + */ + void download(Long ossId, HttpServletResponse response) throws IOException; + + /** + * 删除OSS对象存储 + * + * @param ids OSS对象ID串 + * @param isValid 判断是否需要校验 + * @return 结果 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysPermissionService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysPermissionService.java new file mode 100644 index 0000000..0116df5 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysPermissionService.java @@ -0,0 +1,28 @@ +package org.dromara.system.service; + +import java.util.Set; + +/** + * 用户权限处理 + * + * @author Lion Li + */ +public interface ISysPermissionService { + + /** + * 获取角色数据权限 + * + * @param userId 用户id + * @return 角色权限信息 + */ + Set getRolePermission(Long userId); + + /** + * 获取菜单数据权限 + * + * @param userId 用户id + * @return 菜单权限信息 + */ + Set getMenuPermission(Long userId); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java new file mode 100644 index 0000000..a760d49 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java @@ -0,0 +1,130 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysPostBo; +import org.dromara.system.domain.vo.SysPostVo; + +import java.util.List; + +/** + * 岗位信息 服务层 + * + * @author Lion Li + */ +public interface ISysPostService { + + + TableDataInfo selectPagePostList(SysPostBo post, PageQuery pageQuery); + + /** + * 查询岗位信息集合 + * + * @param post 岗位信息 + * @return 岗位列表 + */ + List selectPostList(SysPostBo post); + + /** + * 查询用户所属岗位组 + * + * @param userId 用户ID + * @return 岗位ID + */ + List selectPostsByUserId(Long userId); + + /** + * 查询所有岗位 + * + * @return 岗位列表 + */ + List selectPostAll(); + + /** + * 通过岗位ID查询岗位信息 + * + * @param postId 岗位ID + * @return 角色对象信息 + */ + SysPostVo selectPostById(Long postId); + + /** + * 根据用户ID获取岗位选择框列表 + * + * @param userId 用户ID + * @return 选中岗位ID列表 + */ + List selectPostListByUserId(Long userId); + + /** + * 通过岗位ID串查询岗位 + * + * @param postIds 岗位id串 + * @return 岗位列表信息 + */ + List selectPostByIds(List postIds); + + /** + * 校验岗位名称 + * + * @param post 岗位信息 + * @return 结果 + */ + boolean checkPostNameUnique(SysPostBo post); + + /** + * 校验岗位编码 + * + * @param post 岗位信息 + * @return 结果 + */ + boolean checkPostCodeUnique(SysPostBo post); + + /** + * 通过岗位ID查询岗位使用数量 + * + * @param postId 岗位ID + * @return 结果 + */ + long countUserPostById(Long postId); + + /** + * 通过部门ID查询岗位使用数量 + * + * @param deptId 部门id + * @return 结果 + */ + long countPostByDeptId(Long deptId); + + /** + * 删除岗位信息 + * + * @param postId 岗位ID + * @return 结果 + */ + int deletePostById(Long postId); + + /** + * 批量删除岗位信息 + * + * @param postIds 需要删除的岗位ID + * @return 结果 + */ + int deletePostByIds(Long[] postIds); + + /** + * 新增保存岗位信息 + * + * @param bo 岗位信息 + * @return 结果 + */ + int insertPost(SysPostBo bo); + + /** + * 修改保存岗位信息 + * + * @param bo 岗位信息 + * @return 结果 + */ + int updatePost(SysPostBo bo); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java new file mode 100644 index 0000000..cec4bf7 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java @@ -0,0 +1,202 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.SysUserRole; +import org.dromara.system.domain.bo.SysRoleBo; +import org.dromara.system.domain.vo.SysRoleVo; + +import java.util.List; +import java.util.Set; + +/** + * 角色业务层 + * + * @author Lion Li + */ +public interface ISysRoleService { + + + TableDataInfo selectPageRoleList(SysRoleBo role, PageQuery pageQuery); + + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + List selectRoleList(SysRoleBo role); + + /** + * 根据用户ID查询角色列表 + * + * @param userId 用户ID + * @return 角色列表 + */ + List selectRolesByUserId(Long userId); + + /** + * 根据用户ID查询角色列表(包含被授权状态) + * + * @param userId 用户ID + * @return 角色列表 + */ + List selectRolesAuthByUserId(Long userId); + + /** + * 根据用户ID查询角色权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + Set selectRolePermissionByUserId(Long userId); + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + List selectRoleAll(); + + /** + * 根据用户ID获取角色选择框列表 + * + * @param userId 用户ID + * @return 选中角色ID列表 + */ + List selectRoleListByUserId(Long userId); + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + SysRoleVo selectRoleById(Long roleId); + + /** + * 通过角色ID串查询角色 + * + * @param roleIds 角色ID串 + * @return 角色列表信息 + */ + List selectRoleByIds(List roleIds); + + /** + * 校验角色名称是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + boolean checkRoleNameUnique(SysRoleBo role); + + /** + * 校验角色权限是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + boolean checkRoleKeyUnique(SysRoleBo role); + + /** + * 校验角色是否允许操作 + * + * @param role 角色信息 + */ + void checkRoleAllowed(SysRoleBo role); + + /** + * 校验角色是否有数据权限 + * + * @param roleId 角色id + */ + void checkRoleDataScope(Long roleId); + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + long countUserRoleByRoleId(Long roleId); + + /** + * 新增保存角色信息 + * + * @param bo 角色信息 + * @return 结果 + */ + int insertRole(SysRoleBo bo); + + /** + * 修改保存角色信息 + * + * @param bo 角色信息 + * @return 结果 + */ + int updateRole(SysRoleBo bo); + + /** + * 修改角色状态 + * + * @param roleId 角色ID + * @param status 角色状态 + * @return 结果 + */ + int updateRoleStatus(Long roleId, String status); + + /** + * 修改数据权限信息 + * + * @param bo 角色信息 + * @return 结果 + */ + int authDataScope(SysRoleBo bo); + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + int deleteRoleById(Long roleId); + + /** + * 批量删除角色信息 + * + * @param roleIds 需要删除的角色ID + * @return 结果 + */ + int deleteRoleByIds(Long[] roleIds); + + /** + * 取消授权用户角色 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + int deleteAuthUser(SysUserRole userRole); + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要取消授权的用户数据ID + * @return 结果 + */ + int deleteAuthUsers(Long roleId, Long[] userIds); + + /** + * 批量选择授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要删除的用户数据ID + * @return 结果 + */ + int insertAuthUsers(Long roleId, Long[] userIds); + + void cleanOnlineUserByRole(Long roleId); + + void cleanOnlineUser(List userIds); + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java new file mode 100644 index 0000000..cc7016e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java @@ -0,0 +1,53 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.bo.SysSocialBo; +import org.dromara.system.domain.vo.SysSocialVo; + +import java.util.List; + +/** + * 社会化关系Service接口 + * + * @author thiszhc + */ +public interface ISysSocialService { + + + /** + * 查询社会化关系 + */ + SysSocialVo queryById(String id); + + /** + * 查询社会化关系列表 + */ + List queryList(SysSocialBo bo); + + /** + * 查询社会化关系列表 + */ + List queryListByUserId(Long userId); + + /** + * 新增授权关系 + */ + Boolean insertByBo(SysSocialBo bo); + + /** + * 更新社会化关系 + */ + Boolean updateByBo(SysSocialBo bo); + + /** + * 删除社会化关系信息 + */ + Boolean deleteWithValidById(Long id); + + + /** + * 根据 authId 查询 + */ + List selectByAuthId(String authId); + + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java new file mode 100644 index 0000000..d060b68 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java @@ -0,0 +1,62 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysTenantPackageBo; +import org.dromara.system.domain.vo.SysTenantPackageVo; + +import java.util.Collection; +import java.util.List; + +/** + * 租户套餐Service接口 + * + * @author Michelle.Chung + */ +public interface ISysTenantPackageService { + + /** + * 查询租户套餐 + */ + SysTenantPackageVo queryById(Long packageId); + + /** + * 查询租户套餐列表 + */ + TableDataInfo queryPageList(SysTenantPackageBo bo, PageQuery pageQuery); + + /** + * 查询租户套餐已启用列表 + */ + List selectList(); + + /** + * 查询租户套餐列表 + */ + List queryList(SysTenantPackageBo bo); + + /** + * 新增租户套餐 + */ + Boolean insertByBo(SysTenantPackageBo bo); + + /** + * 修改租户套餐 + */ + Boolean updateByBo(SysTenantPackageBo bo); + + /** + * 校验套餐名称是否唯一 + */ + boolean checkPackageNameUnique(SysTenantPackageBo bo); + + /** + * 修改套餐状态 + */ + int updatePackageStatus(SysTenantPackageBo bo); + + /** + * 校验并批量删除租户套餐信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java new file mode 100644 index 0000000..f697829 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java @@ -0,0 +1,87 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.domain.bo.SysTenantBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 租户Service接口 + * + * @author Michelle.Chung + */ +public interface ISysTenantService { + + /** + * 查询租户 + */ + SysTenantVo queryById(Long id); + + /** + * 基于租户ID查询租户 + */ + SysTenantVo queryByTenantId(String tenantId); + + /** + * 查询租户列表 + */ + TableDataInfo queryPageList(SysTenantBo bo, PageQuery pageQuery); + + /** + * 查询租户列表 + */ + List queryList(SysTenantBo bo); + + /** + * 新增租户 + */ + Boolean insertByBo(SysTenantBo bo); + + /** + * 修改租户 + */ + Boolean updateByBo(SysTenantBo bo); + + /** + * 修改租户状态 + */ + int updateTenantStatus(SysTenantBo bo); + + /** + * 校验租户是否允许操作 + */ + void checkTenantAllowed(String tenantId); + + /** + * 校验并批量删除租户信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 校验企业名称是否唯一 + */ + boolean checkCompanyNameUnique(SysTenantBo bo); + + /** + * 校验账号余额 + */ + boolean checkAccountBalance(String tenantId); + + /** + * 校验有效期 + */ + boolean checkExpireTime(String tenantId); + + /** + * 同步租户套餐 + */ + Boolean syncTenantPackage(String tenantId, Long packageId); + + /** + * 同步租户字典 + */ + void syncTenantDict(); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java b/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java new file mode 100644 index 0000000..0325a25 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java @@ -0,0 +1,222 @@ +package org.dromara.system.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysUserExportVo; +import org.dromara.system.domain.vo.SysUserVo; + +import java.util.List; + +/** + * 用户 业务层 + * + * @author Lion Li + */ +public interface ISysUserService { + + + TableDataInfo selectPageUserList(SysUserBo user, PageQuery pageQuery); + + /** + * 根据条件分页查询用户列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + List selectUserExportList(SysUserBo user); + + /** + * 根据条件分页查询已分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + TableDataInfo selectAllocatedList(SysUserBo user, PageQuery pageQuery); + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + TableDataInfo selectUnallocatedList(SysUserBo user, PageQuery pageQuery); + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + SysUserVo selectUserByUserName(String userName); + + /** + * 通过手机号查询用户 + * + * @param phonenumber 手机号 + * @return 用户对象信息 + */ + SysUserVo selectUserByPhonenumber(String phonenumber); + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + SysUserVo selectUserById(Long userId); + + /** + * 通过用户ID串查询用户 + * + * @param userIds 用户ID串 + * @param deptId 部门id + * @return 用户列表信息 + */ + List selectUserByIds(List userIds, Long deptId); + + /** + * 根据用户ID查询用户所属角色组 + * + * @param userId 用户ID + * @return 结果 + */ + String selectUserRoleGroup(Long userId); + + /** + * 根据用户ID查询用户所属岗位组 + * + * @param userId 用户ID + * @return 结果 + */ + String selectUserPostGroup(Long userId); + + /** + * 校验用户名称是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + boolean checkUserNameUnique(SysUserBo user); + + /** + * 校验手机号码是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + boolean checkPhoneUnique(SysUserBo user); + + /** + * 校验email是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + boolean checkEmailUnique(SysUserBo user); + + /** + * 校验用户是否允许操作 + * + * @param userId 用户ID + */ + void checkUserAllowed(Long userId); + + /** + * 校验用户是否有数据权限 + * + * @param userId 用户id + */ + void checkUserDataScope(Long userId); + + /** + * 新增用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + int insertUser(SysUserBo user); + + /** + * 注册用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + boolean registerUser(SysUserBo user, String tenantId); + + /** + * 修改用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + int updateUser(SysUserBo user); + + /** + * 用户授权角色 + * + * @param userId 用户ID + * @param roleIds 角色组 + */ + void insertUserAuth(Long userId, Long[] roleIds); + + /** + * 修改用户状态 + * + * @param userId 用户ID + * @param status 帐号状态 + * @return 结果 + */ + int updateUserStatus(Long userId, String status); + + /** + * 修改用户基本信息 + * + * @param user 用户信息 + * @return 结果 + */ + int updateUserProfile(SysUserBo user); + + /** + * 修改用户头像 + * + * @param userId 用户ID + * @param avatar 头像地址 + * @return 结果 + */ + boolean updateUserAvatar(Long userId, Long avatar); + + /** + * 重置用户密码 + * + * @param userId 用户ID + * @param password 密码 + * @return 结果 + */ + int resetUserPwd(Long userId, String password); + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + int deleteUserById(Long userId); + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + int deleteUserByIds(Long[] userIds); + + /** + * 通过部门id查询当前部门所有用户 + * + * @param deptId 部门id + * @return 结果 + */ + List selectUserListByDept(Long deptId); +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java new file mode 100644 index 0000000..4f6e676 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java @@ -0,0 +1,151 @@ +package org.dromara.system.service.impl; + +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.utils.MapstructUtils; +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.system.domain.SysClient; +import org.dromara.system.domain.bo.SysClientBo; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.system.mapper.SysClientMapper; +import org.dromara.system.service.ISysClientService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; + +/** + * 客户端管理Service业务层处理 + * + * @author Michelle.Chung + * @date 2023-06-18 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SysClientServiceImpl implements ISysClientService { + + private final SysClientMapper baseMapper; + + /** + * 查询客户端管理 + */ + @Override + public SysClientVo queryById(Long id) { + SysClientVo vo = baseMapper.selectVoById(id); + vo.setGrantTypeList(List.of(vo.getGrantType().split(","))); + return vo; + } + + + /** + * 查询客户端管理 + */ + @Cacheable(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") + @Override + public SysClientVo queryByClientId(String clientId) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysClient::getClientId, clientId)); + } + + /** + * 查询客户端管理列表 + */ + @Override + public TableDataInfo queryPageList(SysClientBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(r -> r.setGrantTypeList(List.of(r.getGrantType().split(",")))); + return TableDataInfo.build(result); + } + + /** + * 查询客户端管理列表 + */ + @Override + public List queryList(SysClientBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysClientBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getClientId()), SysClient::getClientId, bo.getClientId()); + lqw.eq(StringUtils.isNotBlank(bo.getClientKey()), SysClient::getClientKey, bo.getClientKey()); + lqw.eq(StringUtils.isNotBlank(bo.getClientSecret()), SysClient::getClientSecret, bo.getClientSecret()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysClient::getStatus, bo.getStatus()); + lqw.orderByAsc(SysClient::getId); + return lqw; + } + + /** + * 新增客户端管理 + */ + @Override + public Boolean insertByBo(SysClientBo bo) { + SysClient add = MapstructUtils.convert(bo, SysClient.class); + validEntityBeforeSave(add); + add.setGrantType(String.join(",", bo.getGrantTypeList())); + // 生成clientid + String clientKey = bo.getClientKey(); + String clientSecret = bo.getClientSecret(); + add.setClientId(SecureUtil.md5(clientKey + clientSecret)); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改客户端管理 + */ + @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#bo.clientId") + @Override + public Boolean updateByBo(SysClientBo bo) { + SysClient update = MapstructUtils.convert(bo, SysClient.class); + validEntityBeforeSave(update); + update.setGrantType(String.join(",", bo.getGrantTypeList())); + return baseMapper.updateById(update) > 0; + } + + /** + * 修改状态 + */ + @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") + @Override + public int updateClientStatus(String clientId, String status) { + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysClient::getStatus, status) + .eq(SysClient::getClientId, clientId)); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysClient entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除客户端管理 + */ + @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, allEntries = true) + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java new file mode 100644 index 0000000..d92647c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java @@ -0,0 +1,217 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +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.constant.CacheNames; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.ConfigService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.SpringUtils; +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.common.redis.utils.CacheUtils; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.system.domain.SysConfig; +import org.dromara.system.domain.bo.SysConfigBo; +import org.dromara.system.domain.vo.SysConfigVo; +import org.dromara.system.mapper.SysConfigMapper; +import org.dromara.system.service.ISysConfigService; +import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 参数配置 服务层实现 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysConfigServiceImpl implements ISysConfigService, ConfigService { + + private final SysConfigMapper baseMapper; + + @Override + public TableDataInfo selectPageConfigList(SysConfigBo config, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(config); + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + @Override + @DS("master") + public SysConfigVo selectConfigById(Long configId) { + return baseMapper.selectVoById(configId); + } + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数key + * @return 参数键值 + */ + @Cacheable(cacheNames = CacheNames.SYS_CONFIG, key = "#configKey") + @Override + public String selectConfigByKey(String configKey) { + SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(SysConfig::getConfigKey, configKey)); + return ObjectUtils.notNullGetter(retConfig, SysConfig::getConfigValue, StringUtils.EMPTY); + } + + /** + * 获取注册开关 + * @param tenantId 租户id + * @return true开启,false关闭 + */ + @Override + public boolean selectRegisterEnabled(String tenantId) { + SysConfig retConfig = TenantHelper.dynamic(tenantId, () -> { + return baseMapper.selectOne(new LambdaQueryWrapper() + .eq(SysConfig::getConfigKey, "sys.account.registerUser")); + }); + if (ObjectUtil.isNull(retConfig)) { + return false; + } + return Convert.toBool(retConfig.getConfigValue()); + } + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + @Override + public List selectConfigList(SysConfigBo config) { + LambdaQueryWrapper lqw = buildQueryWrapper(config); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getConfigName()), SysConfig::getConfigName, bo.getConfigName()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigType()), SysConfig::getConfigType, bo.getConfigType()); + lqw.like(StringUtils.isNotBlank(bo.getConfigKey()), SysConfig::getConfigKey, bo.getConfigKey()); + lqw.between(params.get("beginTime") != null && params.get("endTime") != null, + SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime")); + lqw.orderByAsc(SysConfig::getConfigId); + return lqw; + } + + /** + * 新增参数配置 + * + * @param bo 参数配置信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey") + @Override + public String insertConfig(SysConfigBo bo) { + SysConfig config = MapstructUtils.convert(bo, SysConfig.class); + int row = baseMapper.insert(config); + if (row > 0) { + return config.getConfigValue(); + } + throw new ServiceException("操作失败"); + } + + /** + * 修改参数配置 + * + * @param bo 参数配置信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey") + @Override + public String updateConfig(SysConfigBo bo) { + int row = 0; + SysConfig config = MapstructUtils.convert(bo, SysConfig.class); + if (config.getConfigId() != null) { + SysConfig temp = baseMapper.selectById(config.getConfigId()); + if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) { + CacheUtils.evict(CacheNames.SYS_CONFIG, temp.getConfigKey()); + } + row = baseMapper.updateById(config); + } else { + CacheUtils.evict(CacheNames.SYS_CONFIG, config.getConfigKey()); + row = baseMapper.update(config, new LambdaQueryWrapper() + .eq(SysConfig::getConfigKey, config.getConfigKey())); + } + if (row > 0) { + return config.getConfigValue(); + } + throw new ServiceException("操作失败"); + } + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + */ + @Override + public void deleteConfigByIds(Long[] configIds) { + for (Long configId : configIds) { + SysConfig config = baseMapper.selectById(configId); + if (StringUtils.equals(SystemConstants.YES, config.getConfigType())) { + throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey())); + } + CacheUtils.evict(CacheNames.SYS_CONFIG, config.getConfigKey()); + } + baseMapper.deleteByIds(Arrays.asList(configIds)); + } + + /** + * 重置参数缓存数据 + */ + @Override + public void resetConfigCache() { + CacheUtils.clear(CacheNames.SYS_CONFIG); + } + + /** + * 校验参数键名是否唯一 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public boolean checkConfigKeyUnique(SysConfigBo config) { + long configId = ObjectUtils.notNull(config.getConfigId(), -1L); + SysConfig info = baseMapper.selectOne(new LambdaQueryWrapper().eq(SysConfig::getConfigKey, config.getConfigKey())); + if (ObjectUtil.isNotNull(info) && info.getConfigId() != configId) { + return false; + } + return true; + } + + /** + * 根据参数 key 获取参数值 + * + * @param configKey 参数 key + * @return 参数值 + */ + @Override + public String getConfigValue(String configKey) { + return SpringUtils.getAopProxy(this).selectConfigByKey(configKey); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java new file mode 100644 index 0000000..12a5072 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java @@ -0,0 +1,78 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.SysRoleDept; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysRoleDeptMapper; +import org.dromara.system.service.ISysDataScopeService; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 数据权限 实现 + *

+ * 注意: 此Service内不允许调用标注`数据权限`注解的方法 + * 例如: deptMapper.selectList 此 selectList 方法标注了`数据权限`注解 会出现循环解析的问题 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service("sdss") +public class SysDataScopeServiceImpl implements ISysDataScopeService { + + private final SysRoleDeptMapper roleDeptMapper; + private final SysDeptMapper deptMapper; + + /** + * 获取角色自定义权限 + * + * @param roleId 角色Id + * @return 部门Id组 + */ + @Cacheable(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId", condition = "#roleId != null") + @Override + public String getRoleCustom(Long roleId) { + if (ObjectUtil.isNull(roleId)) { + return "-1"; + } + List list = roleDeptMapper.selectList( + new LambdaQueryWrapper() + .select(SysRoleDept::getDeptId) + .eq(SysRoleDept::getRoleId, roleId)); + if (CollUtil.isNotEmpty(list)) { + return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId())); + } + return "-1"; + } + + /** + * 获取部门及以下权限 + * + * @param deptId 部门Id + * @return 部门Id组 + */ + @Cacheable(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId", condition = "#deptId != null") + @Override + public String getDeptAndChild(Long deptId) { + if (ObjectUtil.isNull(deptId)) { + return "-1"; + } + List deptList = deptMapper.selectListByParentId(deptId); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); + ids.add(deptId); + if (CollUtil.isNotEmpty(ids)) { + return StreamUtils.join(ids, Convert::toStr); + } + return "-1"; + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java new file mode 100644 index 0000000..ca062be --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -0,0 +1,386 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.dto.DeptDTO; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.DeptService; +import org.dromara.common.core.utils.*; +import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.common.redis.utils.CacheUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.SysRole; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.bo.SysDeptBo; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysRoleMapper; +import org.dromara.system.mapper.SysUserMapper; +import org.dromara.system.service.ISysDeptService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.Caching; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 部门管理 服务实现 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysDeptServiceImpl implements ISysDeptService, DeptService { + + private final SysDeptMapper baseMapper; + private final SysRoleMapper roleMapper; + private final SysUserMapper userMapper; + + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + @Override + public List selectDeptList(SysDeptBo dept) { + LambdaQueryWrapper lqw = buildQueryWrapper(dept); + return baseMapper.selectDeptList(lqw); + } + + /** + * 查询部门树结构信息 + * + * @param bo 部门信息 + * @return 部门树信息集合 + */ + @Override + public List> selectDeptTreeList(SysDeptBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + List depts = baseMapper.selectDeptList(lqw); + return buildDeptTreeSelect(depts); + } + + private LambdaQueryWrapper buildQueryWrapper(SysDeptBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SysDept::getDelFlag, SystemConstants.NORMAL); + lqw.eq(ObjectUtil.isNotNull(bo.getDeptId()), SysDept::getDeptId, bo.getDeptId()); + lqw.eq(ObjectUtil.isNotNull(bo.getParentId()), SysDept::getParentId, bo.getParentId()); + lqw.like(StringUtils.isNotBlank(bo.getDeptName()), SysDept::getDeptName, bo.getDeptName()); + lqw.like(StringUtils.isNotBlank(bo.getDeptCategory()), SysDept::getDeptCategory, bo.getDeptCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDept::getStatus, bo.getStatus()); + lqw.orderByAsc(SysDept::getAncestors); + lqw.orderByAsc(SysDept::getParentId); + lqw.orderByAsc(SysDept::getOrderNum); + lqw.orderByAsc(SysDept::getDeptId); + return lqw; + } + + /** + * 构建前端所需要下拉树结构 + * + * @param depts 部门列表 + * @return 下拉树结构列表 + */ + @Override + public List> buildDeptTreeSelect(List depts) { + if (CollUtil.isEmpty(depts)) { + return CollUtil.newArrayList(); + } + // 获取当前列表中每一个节点的parentId,然后在列表中查找是否有id与其parentId对应,若无对应,则表明此时节点列表中,该节点在当前列表中属于顶级节点 + List> treeList = CollUtil.newArrayList(); + for (SysDeptVo d : depts) { + Long parentId = d.getParentId(); + SysDeptVo sysDeptVo = StreamUtils.findFirst(depts, it -> it.getDeptId().longValue() == parentId); + if (ObjectUtil.isNull(sysDeptVo)) { + List> trees = TreeBuildUtils.build(depts, parentId, (dept, tree) -> + tree.setId(dept.getDeptId()) + .setParentId(dept.getParentId()) + .setName(dept.getDeptName()) + .setWeight(dept.getOrderNum()) + .putExtra("disabled", SystemConstants.DISABLE.equals(dept.getStatus()))); + Tree tree = StreamUtils.findFirst(trees, it -> it.getId().longValue() == d.getDeptId()); + treeList.add(tree); + } + } + return treeList; + } + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @return 选中部门列表 + */ + @Override + public List selectDeptListByRoleId(Long roleId) { + SysRole role = roleMapper.selectById(roleId); + return baseMapper.selectDeptListByRoleId(roleId, role.getDeptCheckStrictly()); + } + + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + @Cacheable(cacheNames = CacheNames.SYS_DEPT, key = "#deptId") + @Override + public SysDeptVo selectDeptById(Long deptId) { + SysDeptVo dept = baseMapper.selectVoById(deptId); + if (ObjectUtil.isNull(dept)) { + return null; + } + SysDeptVo parentDept = baseMapper.selectVoOne(new LambdaQueryWrapper() + .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId())); + dept.setParentName(ObjectUtils.notNullGetter(parentDept, SysDeptVo::getDeptName)); + return dept; + } + + @Override + public List selectDeptByIds(List deptIds) { + return baseMapper.selectDeptList(new LambdaQueryWrapper() + .select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getLeader) + .eq(SysDept::getStatus, SystemConstants.NORMAL) + .in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds)); + } + + /** + * 通过部门ID查询部门名称 + * + * @param deptIds 部门ID串逗号分隔 + * @return 部门名称串逗号分隔 + */ + @Override + public String selectDeptNameByIds(String deptIds) { + List list = new ArrayList<>(); + for (Long id : StringUtils.splitTo(deptIds, Convert::toLong)) { + SysDeptVo vo = SpringUtils.getAopProxy(this).selectDeptById(id); + if (ObjectUtil.isNotNull(vo)) { + list.add(vo.getDeptName()); + } + } + return String.join(StringUtils.SEPARATOR, list); + } + + /** + * 根据部门ID查询部门负责人 + * + * @param deptId 部门ID,用于指定需要查询的部门 + * @return 返回该部门的负责人ID + */ + @Override + public Long selectDeptLeaderById(Long deptId) { + SysDeptVo vo = SpringUtils.getAopProxy(this).selectDeptById(deptId); + return vo.getLeader(); + } + + /** + * 查询部门 + * + * @return 部门列表 + */ + @Override + public List selectDeptsByList() { + List list = baseMapper.selectDeptList(new LambdaQueryWrapper() + .select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId) + .eq(SysDept::getStatus, SystemConstants.NORMAL)); + return BeanUtil.copyToList(list, DeptDTO.class); + } + + /** + * 根据ID查询所有子部门数(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + @Override + public long selectNormalChildrenDeptById(Long deptId) { + return baseMapper.selectCount(new LambdaQueryWrapper() + .eq(SysDept::getStatus, SystemConstants.NORMAL) + .apply(DataBaseHelper.findInSet(deptId, "ancestors"))); + } + + /** + * 是否存在子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + @Override + public boolean hasChildByDeptId(Long deptId) { + return baseMapper.exists(new LambdaQueryWrapper() + .eq(SysDept::getParentId, deptId)); + } + + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkDeptExistUser(Long deptId) { + return userMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getDeptId, deptId)); + } + + /** + * 校验部门名称是否唯一 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public boolean checkDeptNameUnique(SysDeptBo dept) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysDept::getDeptName, dept.getDeptName()) + .eq(SysDept::getParentId, dept.getParentId()) + .ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId())); + return !exist; + } + + /** + * 校验部门是否有数据权限 + * + * @param deptId 部门id + */ + @Override + public void checkDeptDataScope(Long deptId) { + if (ObjectUtil.isNull(deptId)) { + return; + } + if (LoginHelper.isSuperAdmin()) { + return; + } + if (baseMapper.countDeptById(deptId) == 0) { + throw new ServiceException("没有权限访问部门数据!"); + } + } + + /** + * 新增保存部门信息 + * + * @param bo 部门信息 + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true) + @Override + public int insertDept(SysDeptBo bo) { + SysDept info = baseMapper.selectById(bo.getParentId()); + // 如果父节点不为正常状态,则不允许新增子节点 + if (!SystemConstants.NORMAL.equals(info.getStatus())) { + throw new ServiceException("部门停用,不允许新增"); + } + SysDept dept = MapstructUtils.convert(bo, SysDept.class); + dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId()); + return baseMapper.insert(dept); + } + + /** + * 修改保存部门信息 + * + * @param bo 部门信息 + * @return 结果 + */ + @Caching(evict = { + @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId"), + @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true) + }) + @Override + @Transactional(rollbackFor = Exception.class) + public int updateDept(SysDeptBo bo) { + SysDept dept = MapstructUtils.convert(bo, SysDept.class); + SysDept oldDept = baseMapper.selectById(dept.getDeptId()); + if (ObjectUtil.isNull(oldDept)) { + throw new ServiceException("部门不存在,无法修改"); + } + if (!oldDept.getParentId().equals(dept.getParentId())) { + // 如果是新父部门 则校验是否具有新父部门权限 避免越权 + this.checkDeptDataScope(dept.getParentId()); + SysDept newParentDept = baseMapper.selectById(dept.getParentId()); + if (ObjectUtil.isNotNull(newParentDept)) { + String newAncestors = newParentDept.getAncestors() + StringUtils.SEPARATOR + newParentDept.getDeptId(); + String oldAncestors = oldDept.getAncestors(); + dept.setAncestors(newAncestors); + updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); + } + } else { + dept.setAncestors(oldDept.getAncestors()); + } + int result = baseMapper.updateById(dept); + if (SystemConstants.NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) + && !StringUtils.equals(SystemConstants.NORMAL, dept.getAncestors())) { + // 如果该部门是启用状态,则启用该部门的所有上级部门 + updateParentDeptStatusNormal(dept); + } + return result; + } + + /** + * 修改该部门的父级部门状态 + * + * @param dept 当前部门 + */ + private void updateParentDeptStatusNormal(SysDept dept) { + String ancestors = dept.getAncestors(); + Long[] deptIds = Convert.toLongArray(ancestors); + baseMapper.update(null, new LambdaUpdateWrapper() + .set(SysDept::getStatus, SystemConstants.NORMAL) + .in(SysDept::getDeptId, Arrays.asList(deptIds))); + } + + /** + * 修改子元素关系 + * + * @param deptId 被修改的部门ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + private void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) { + List children = baseMapper.selectList(new LambdaQueryWrapper() + .apply(DataBaseHelper.findInSet(deptId, "ancestors"))); + List list = new ArrayList<>(); + for (SysDept child : children) { + SysDept dept = new SysDept(); + dept.setDeptId(child.getDeptId()); + dept.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + list.add(dept); + } + if (CollUtil.isNotEmpty(list)) { + if (baseMapper.updateBatchById(list)) { + list.forEach(dept -> CacheUtils.evict(CacheNames.SYS_DEPT, dept.getDeptId())); + } + } + } + + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + @Caching(evict = { + @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#deptId"), + @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId") + }) + @Override + public int deleteDeptById(Long deptId) { + return baseMapper.deleteById(deptId); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java new file mode 100644 index 0000000..e44fdbc --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java @@ -0,0 +1,157 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.util.ObjectUtil; +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.constant.CacheNames; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.system.domain.SysDictData; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.redis.utils.CacheUtils; +import org.dromara.system.domain.bo.SysDictDataBo; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.dromara.system.mapper.SysDictDataMapper; +import org.dromara.system.service.ISysDictDataService; +import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CachePut; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 字典 业务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysDictDataServiceImpl implements ISysDictDataService { + + private final SysDictDataMapper baseMapper; + + @Override + public TableDataInfo selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(dictData); + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + @Override + public List selectDictDataList(SysDictDataBo dictData) { + LambdaQueryWrapper lqw = buildQueryWrapper(dictData); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysDictDataBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getDictSort() != null, SysDictData::getDictSort, bo.getDictSort()); + lqw.like(StringUtils.isNotBlank(bo.getDictLabel()), SysDictData::getDictLabel, bo.getDictLabel()); + lqw.eq(StringUtils.isNotBlank(bo.getDictType()), SysDictData::getDictType, bo.getDictType()); + lqw.orderByAsc(SysDictData::getDictSort); + return lqw; + } + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + @Override + public String selectDictLabel(String dictType, String dictValue) { + return baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysDictData::getDictLabel) + .eq(SysDictData::getDictType, dictType) + .eq(SysDictData::getDictValue, dictValue)) + .getDictLabel(); + } + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + @Override + public SysDictDataVo selectDictDataById(Long dictCode) { + return baseMapper.selectVoById(dictCode); + } + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + */ + @Override + public void deleteDictDataByIds(Long[] dictCodes) { + for (Long dictCode : dictCodes) { + SysDictData data = baseMapper.selectById(dictCode); + baseMapper.deleteById(dictCode); + CacheUtils.evict(CacheNames.SYS_DICT, data.getDictType()); + } + } + + /** + * 新增保存字典数据信息 + * + * @param bo 字典数据信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") + @Override + public List insertDictData(SysDictDataBo bo) { + SysDictData data = MapstructUtils.convert(bo, SysDictData.class); + int row = baseMapper.insert(data); + if (row > 0) { + return baseMapper.selectDictDataByType(data.getDictType()); + } + throw new ServiceException("操作失败"); + } + + /** + * 修改保存字典数据信息 + * + * @param bo 字典数据信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") + @Override + public List updateDictData(SysDictDataBo bo) { + SysDictData data = MapstructUtils.convert(bo, SysDictData.class); + int row = baseMapper.updateById(data); + if (row > 0) { + return baseMapper.selectDictDataByType(data.getDictType()); + } + throw new ServiceException("操作失败"); + } + + /** + * 校验字典键值是否唯一 + * + * @param dict 字典数据 + * @return 结果 + */ + @Override + public boolean checkDictDataUnique(SysDictDataBo dict) { + Long dictCode = ObjectUtils.notNull(dict.getDictCode(), -1L); + SysDictData entity = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(SysDictData::getDictType, dict.getDictType()).eq(SysDictData::getDictValue, dict.getDictValue())); + if (ObjectUtil.isNotNull(entity) && !dictCode.equals(entity.getDictCode())) { + return false; + } + return true; + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java new file mode 100644 index 0000000..1be0b7f --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java @@ -0,0 +1,258 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.DictService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +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.common.redis.utils.CacheUtils; +import org.dromara.system.domain.SysDictData; +import org.dromara.system.domain.SysDictType; +import org.dromara.system.domain.bo.SysDictTypeBo; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.dromara.system.domain.vo.SysDictTypeVo; +import org.dromara.system.mapper.SysDictDataMapper; +import org.dromara.system.mapper.SysDictTypeMapper; +import org.dromara.system.service.ISysDictTypeService; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 字典 业务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService { + + private final SysDictTypeMapper baseMapper; + private final SysDictDataMapper dictDataMapper; + + @Override + public TableDataInfo selectPageDictTypeList(SysDictTypeBo dictType, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(dictType); + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + @Override + public List selectDictTypeList(SysDictTypeBo dictType) { + LambdaQueryWrapper lqw = buildQueryWrapper(dictType); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysDictTypeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getDictName()), SysDictType::getDictName, bo.getDictName()); + lqw.like(StringUtils.isNotBlank(bo.getDictType()), SysDictType::getDictType, bo.getDictType()); + lqw.between(params.get("beginTime") != null && params.get("endTime") != null, + SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime")); + lqw.orderByAsc(SysDictType::getDictId); + return lqw; + } + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + @Override + public List selectDictTypeAll() { + return baseMapper.selectVoList(); + } + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + @Cacheable(cacheNames = CacheNames.SYS_DICT, key = "#dictType") + @Override + public List selectDictDataByType(String dictType) { + List dictDatas = dictDataMapper.selectDictDataByType(dictType); + if (CollUtil.isNotEmpty(dictDatas)) { + return dictDatas; + } + return null; + } + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + @Override + public SysDictTypeVo selectDictTypeById(Long dictId) { + return baseMapper.selectVoById(dictId); + } + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + @Override + public SysDictTypeVo selectDictTypeByType(String dictType) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysDictType::getDictType, dictType)); + } + + /** + * 批量删除字典类型信息 + * + * @param dictIds 需要删除的字典ID + */ + @Override + public void deleteDictTypeByIds(Long[] dictIds) { + for (Long dictId : dictIds) { + SysDictType dictType = baseMapper.selectById(dictId); + if (dictDataMapper.exists(new LambdaQueryWrapper() + .eq(SysDictData::getDictType, dictType.getDictType()))) { + throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName())); + } + CacheUtils.evict(CacheNames.SYS_DICT, dictType.getDictType()); + } + baseMapper.deleteByIds(Arrays.asList(dictIds)); + } + + /** + * 重置字典缓存数据 + */ + @Override + public void resetDictCache() { + CacheUtils.clear(CacheNames.SYS_DICT); + } + + /** + * 新增保存字典类型信息 + * + * @param bo 字典类型信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") + @Override + public List insertDictType(SysDictTypeBo bo) { + SysDictType dict = MapstructUtils.convert(bo, SysDictType.class); + int row = baseMapper.insert(dict); + if (row > 0) { + // 新增 type 下无 data 数据 返回空防止缓存穿透 + return new ArrayList<>(); + } + throw new ServiceException("操作失败"); + } + + /** + * 修改保存字典类型信息 + * + * @param bo 字典类型信息 + * @return 结果 + */ + @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") + @Override + @Transactional(rollbackFor = Exception.class) + public List updateDictType(SysDictTypeBo bo) { + SysDictType dict = MapstructUtils.convert(bo, SysDictType.class); + SysDictType oldDict = baseMapper.selectById(dict.getDictId()); + dictDataMapper.update(null, new LambdaUpdateWrapper() + .set(SysDictData::getDictType, dict.getDictType()) + .eq(SysDictData::getDictType, oldDict.getDictType())); + int row = baseMapper.updateById(dict); + if (row > 0) { + CacheUtils.evict(CacheNames.SYS_DICT, oldDict.getDictType()); + return dictDataMapper.selectDictDataByType(dict.getDictType()); + } + throw new ServiceException("操作失败"); + } + + /** + * 校验字典类型称是否唯一 + * + * @param dictType 字典类型 + * @return 结果 + */ + @Override + public boolean checkDictTypeUnique(SysDictTypeBo dictType) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysDictType::getDictType, dictType.getDictType()) + .ne(ObjectUtil.isNotNull(dictType.getDictId()), SysDictType::getDictId, dictType.getDictId())); + return !exist; + } + + /** + * 根据字典类型和字典值获取字典标签 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @param separator 分隔符 + * @return 字典标签 + */ + @Override + public String getDictLabel(String dictType, String dictValue, String separator) { + List datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType); + Map map = StreamUtils.toMap(datas, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel); + if (StringUtils.containsAny(dictValue, separator)) { + return Arrays.stream(dictValue.split(separator)) + .map(v -> map.getOrDefault(v, StringUtils.EMPTY)) + .collect(Collectors.joining(separator)); + } else { + return map.getOrDefault(dictValue, StringUtils.EMPTY); + } + } + + /** + * 根据字典类型和字典标签获取字典值 + * + * @param dictType 字典类型 + * @param dictLabel 字典标签 + * @param separator 分隔符 + * @return 字典值 + */ + @Override + public String getDictValue(String dictType, String dictLabel, String separator) { + List datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType); + Map map = StreamUtils.toMap(datas, SysDictDataVo::getDictLabel, SysDictDataVo::getDictValue); + if (StringUtils.containsAny(dictLabel, separator)) { + return Arrays.stream(dictLabel.split(separator)) + .map(l -> map.getOrDefault(l, StringUtils.EMPTY)) + .collect(Collectors.joining(separator)); + } else { + return map.getOrDefault(dictLabel, StringUtils.EMPTY); + } + } + + @Override + public Map getAllDictByDictType(String dictType) { + List list = selectDictDataByType(dictType); + return StreamUtils.toMap(list, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java new file mode 100644 index 0000000..72b497e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java @@ -0,0 +1,175 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.ServletUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.log.event.LogininforEvent; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.SysLogininfor; +import org.dromara.system.domain.bo.SysLogininforBo; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.system.domain.vo.SysLogininforVo; +import org.dromara.system.mapper.SysLogininforMapper; +import org.dromara.system.service.ISysClientService; +import org.dromara.system.service.ISysLogininforService; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 系统访问日志情况信息 服务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Slf4j +@Service +public class SysLogininforServiceImpl implements ISysLogininforService { + + private final SysLogininforMapper baseMapper; + + private final ISysClientService clientService; + + /** + * 记录登录信息 + * + * @param logininforEvent 登录事件 + */ + @Async + @EventListener + public void recordLogininfor(LogininforEvent logininforEvent) { + HttpServletRequest request = logininforEvent.getRequest(); + final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent")); + final String ip = ServletUtils.getClientIP(request); + // 客户端信息 + String clientId = request.getHeader(LoginHelper.CLIENT_KEY); + SysClientVo client = null; + if (StringUtils.isNotBlank(clientId)) { + client = clientService.queryByClientId(clientId); + } + + String address = AddressUtils.getRealAddressByIP(ip); + StringBuilder s = new StringBuilder(); + s.append(getBlock(ip)); + s.append(address); + s.append(getBlock(logininforEvent.getUsername())); + s.append(getBlock(logininforEvent.getStatus())); + s.append(getBlock(logininforEvent.getMessage())); + // 打印信息到日志 + log.info(s.toString(), logininforEvent.getArgs()); + // 获取客户端操作系统 + String os = userAgent.getOs().getName(); + // 获取客户端浏览器 + String browser = userAgent.getBrowser().getName(); + // 封装对象 + SysLogininforBo logininfor = new SysLogininforBo(); + logininfor.setTenantId(logininforEvent.getTenantId()); + logininfor.setUserName(logininforEvent.getUsername()); + if (ObjectUtil.isNotNull(client)) { + logininfor.setClientKey(client.getClientKey()); + logininfor.setDeviceType(client.getDeviceType()); + } + logininfor.setIpaddr(ip); + logininfor.setLoginLocation(address); + logininfor.setBrowser(browser); + logininfor.setOs(os); + logininfor.setMsg(logininforEvent.getMessage()); + // 日志状态 + if (StringUtils.equalsAny(logininforEvent.getStatus(), Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { + logininfor.setStatus(Constants.SUCCESS); + } else if (Constants.LOGIN_FAIL.equals(logininforEvent.getStatus())) { + logininfor.setStatus(Constants.FAIL); + } + // 插入数据 + insertLogininfor(logininfor); + } + + private String getBlock(Object msg) { + if (msg == null) { + msg = ""; + } + return "[" + msg.toString() + "]"; + } + + @Override + public TableDataInfo selectPageLogininforList(SysLogininforBo logininfor, PageQuery pageQuery) { + Map params = logininfor.getParams(); + LambdaQueryWrapper lqw = new LambdaQueryWrapper() + .like(StringUtils.isNotBlank(logininfor.getIpaddr()), SysLogininfor::getIpaddr, logininfor.getIpaddr()) + .eq(StringUtils.isNotBlank(logininfor.getStatus()), SysLogininfor::getStatus, logininfor.getStatus()) + .like(StringUtils.isNotBlank(logininfor.getUserName()), SysLogininfor::getUserName, logininfor.getUserName()) + .between(params.get("beginTime") != null && params.get("endTime") != null, + SysLogininfor::getLoginTime, params.get("beginTime"), params.get("endTime")); + if (StringUtils.isBlank(pageQuery.getOrderByColumn())) { + lqw.orderByDesc(SysLogininfor::getInfoId); + } + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 新增系统登录日志 + * + * @param bo 访问日志对象 + */ + @Override + public void insertLogininfor(SysLogininforBo bo) { + SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class); + logininfor.setLoginTime(new Date()); + baseMapper.insert(logininfor); + } + + /** + * 查询系统登录日志集合 + * + * @param logininfor 访问日志对象 + * @return 登录记录集合 + */ + @Override + public List selectLogininforList(SysLogininforBo logininfor) { + Map params = logininfor.getParams(); + return baseMapper.selectVoList(new LambdaQueryWrapper() + .like(StringUtils.isNotBlank(logininfor.getIpaddr()), SysLogininfor::getIpaddr, logininfor.getIpaddr()) + .eq(StringUtils.isNotBlank(logininfor.getStatus()), SysLogininfor::getStatus, logininfor.getStatus()) + .like(StringUtils.isNotBlank(logininfor.getUserName()), SysLogininfor::getUserName, logininfor.getUserName()) + .between(params.get("beginTime") != null && params.get("endTime") != null, + SysLogininfor::getLoginTime, params.get("beginTime"), params.get("endTime")) + .orderByDesc(SysLogininfor::getInfoId)); + } + + /** + * 批量删除系统登录日志 + * + * @param infoIds 需要删除的登录日志ID + * @return 结果 + */ + @Override + public int deleteLogininforByIds(Long[] infoIds) { + return baseMapper.deleteByIds(Arrays.asList(infoIds)); + } + + /** + * 清空系统登录日志 + */ + @Override + public void cleanLogininfor() { + baseMapper.delete(new LambdaQueryWrapper<>()); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java new file mode 100644 index 0000000..40643e1 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -0,0 +1,372 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.TreeBuildUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.SysMenu; +import org.dromara.system.domain.SysRole; +import org.dromara.system.domain.SysRoleMenu; +import org.dromara.system.domain.SysTenantPackage; +import org.dromara.system.domain.bo.SysMenuBo; +import org.dromara.system.domain.vo.MetaVo; +import org.dromara.system.domain.vo.RouterVo; +import org.dromara.system.domain.vo.SysMenuVo; +import org.dromara.system.mapper.SysMenuMapper; +import org.dromara.system.mapper.SysRoleMapper; +import org.dromara.system.mapper.SysRoleMenuMapper; +import org.dromara.system.mapper.SysTenantPackageMapper; +import org.dromara.system.service.ISysMenuService; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * 菜单 业务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysMenuServiceImpl implements ISysMenuService { + + private final SysMenuMapper baseMapper; + private final SysRoleMapper roleMapper; + private final SysRoleMenuMapper roleMenuMapper; + private final SysTenantPackageMapper tenantPackageMapper; + + /** + * 根据用户查询系统菜单列表 + * + * @param userId 用户ID + * @return 菜单列表 + */ + @Override + public List selectMenuList(Long userId) { + return selectMenuList(new SysMenuBo(), userId); + } + + /** + * 查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + @Override + public List selectMenuList(SysMenuBo menu, Long userId) { + List menuList; + // 管理员显示所有菜单信息 + if (LoginHelper.isSuperAdmin(userId)) { + menuList = baseMapper.selectVoList(new LambdaQueryWrapper() + .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) + .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()) + .eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus()) + .orderByAsc(SysMenu::getParentId) + .orderByAsc(SysMenu::getOrderNum)); + } else { + QueryWrapper wrapper = Wrappers.query(); + wrapper.inSql("r.role_id", "select role_id from sys_user_role where user_id = " + userId) + .like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName()) + .eq(StringUtils.isNotBlank(menu.getVisible()), "m.visible", menu.getVisible()) + .eq(StringUtils.isNotBlank(menu.getStatus()), "m.status", menu.getStatus()) + .orderByAsc("m.parent_id") + .orderByAsc("m.order_num"); + List list = baseMapper.selectMenuListByUserId(wrapper); + menuList = MapstructUtils.convert(list, SysMenuVo.class); + } + return menuList; + } + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + @Override + public Set selectMenuPermsByUserId(Long userId) { + List perms = baseMapper.selectMenuPermsByUserId(userId); + Set permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { + permsSet.addAll(StringUtils.splitList(perm.trim())); + } + } + return permsSet; + } + + /** + * 根据角色ID查询权限 + * + * @param roleId 角色ID + * @return 权限列表 + */ + @Override + public Set selectMenuPermsByRoleId(Long roleId) { + List perms = baseMapper.selectMenuPermsByRoleId(roleId); + Set permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { + permsSet.addAll(StringUtils.splitList(perm.trim())); + } + } + return permsSet; + } + + /** + * 根据用户ID查询菜单 + * + * @param userId 用户名称 + * @return 菜单列表 + */ + @Override + public List selectMenuTreeByUserId(Long userId) { + List menus; + if (LoginHelper.isSuperAdmin(userId)) { + menus = baseMapper.selectMenuTreeAll(); + } else { + menus = baseMapper.selectMenuTreeByUserId(userId); + } + return getChildPerms(menus, 0); + } + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @return 选中菜单列表 + */ + @Override + public List selectMenuListByRoleId(Long roleId) { + SysRole role = roleMapper.selectById(roleId); + return baseMapper.selectMenuListByRoleId(roleId, role.getMenuCheckStrictly()); + } + + /** + * 根据租户套餐ID查询菜单树信息 + * + * @param packageId 租户套餐ID + * @return 选中菜单列表 + */ + @Override + public List selectMenuListByPackageId(Long packageId) { + SysTenantPackage tenantPackage = tenantPackageMapper.selectById(packageId); + List menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); + if (CollUtil.isEmpty(menuIds)) { + return List.of(); + } + List parentIds = null; + if (tenantPackage.getMenuCheckStrictly()) { + parentIds = baseMapper.selectObjs(new LambdaQueryWrapper() + .select(SysMenu::getParentId) + .in(SysMenu::getMenuId, menuIds), x -> {return Convert.toLong(x);}); + } + return baseMapper.selectObjs(new LambdaQueryWrapper() + .in(SysMenu::getMenuId, menuIds) + .notIn(CollUtil.isNotEmpty(parentIds), SysMenu::getMenuId, parentIds), x -> {return Convert.toLong(x);}); + } + + /** + * 构建前端路由所需要的菜单 + * 路由name命名规则 path首字母转大写 + id + * + * @param menus 菜单列表 + * @return 路由列表 + */ + @Override + public List buildMenus(List menus) { + List routers = new LinkedList<>(); + for (SysMenu menu : menus) { + String name = menu.getRouteName() + menu.getMenuId(); + RouterVo router = new RouterVo(); + router.setHidden("1".equals(menu.getVisible())); + router.setName(name); + router.setPath(menu.getRouterPath()); + router.setComponent(menu.getComponentInfo()); + router.setQuery(menu.getQueryParam()); + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); + List cMenus = menu.getChildren(); + if (CollUtil.isNotEmpty(cMenus) && SystemConstants.TYPE_DIR.equals(menu.getMenuType())) { + router.setAlwaysShow(true); + router.setRedirect("noRedirect"); + router.setChildren(buildMenus(cMenus)); + } else if (menu.isMenuFrame()) { + String frameName = StringUtils.capitalize(menu.getPath()) + menu.getMenuId(); + router.setMeta(null); + List childrenList = new ArrayList<>(); + RouterVo children = new RouterVo(); + children.setPath(menu.getPath()); + children.setComponent(menu.getComponent()); + children.setName(frameName); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); + children.setQuery(menu.getQueryParam()); + childrenList.add(children); + router.setChildren(childrenList); + } else if (menu.getParentId().intValue() == 0 && menu.isInnerLink()) { + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); + router.setPath("/"); + List childrenList = new ArrayList<>(); + RouterVo children = new RouterVo(); + String routerPath = SysMenu.innerLinkReplaceEach(menu.getPath()); + String innerLinkName = StringUtils.capitalize(routerPath) + menu.getMenuId(); + children.setPath(routerPath); + children.setComponent(SystemConstants.INNER_LINK); + children.setName(innerLinkName); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); + childrenList.add(children); + router.setChildren(childrenList); + } + routers.add(router); + } + return routers; + } + + /** + * 构建前端所需要下拉树结构 + * + * @param menus 菜单列表 + * @return 下拉树结构列表 + */ + @Override + public List> buildMenuTreeSelect(List menus) { + if (CollUtil.isEmpty(menus)) { + return CollUtil.newArrayList(); + } + return TreeBuildUtils.build(menus, (menu, tree) -> { + Tree menuTree = tree.setId(menu.getMenuId()) + .setParentId(menu.getParentId()) + .setName(menu.getMenuName()) + .setWeight(menu.getOrderNum()); + menuTree.put("menuType", menu.getMenuType()); + menuTree.put("icon", menu.getIcon()); + }); + } + + /** + * 根据菜单ID查询信息 + * + * @param menuId 菜单ID + * @return 菜单信息 + */ + @Override + public SysMenuVo selectMenuById(Long menuId) { + return baseMapper.selectVoById(menuId); + } + + /** + * 是否存在菜单子节点 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public boolean hasChildByMenuId(Long menuId) { + return baseMapper.exists(new LambdaQueryWrapper().eq(SysMenu::getParentId, menuId)); + } + + /** + * 查询菜单使用数量 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public boolean checkMenuExistRole(Long menuId) { + return roleMenuMapper.exists(new LambdaQueryWrapper().eq(SysRoleMenu::getMenuId, menuId)); + } + + /** + * 新增保存菜单信息 + * + * @param bo 菜单信息 + * @return 结果 + */ + @Override + public int insertMenu(SysMenuBo bo) { + SysMenu menu = MapstructUtils.convert(bo, SysMenu.class); + return baseMapper.insert(menu); + } + + /** + * 修改保存菜单信息 + * + * @param bo 菜单信息 + * @return 结果 + */ + @Override + public int updateMenu(SysMenuBo bo) { + SysMenu menu = MapstructUtils.convert(bo, SysMenu.class); + return baseMapper.updateById(menu); + } + + /** + * 删除菜单管理信息 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public int deleteMenuById(Long menuId) { + return baseMapper.deleteById(menuId); + } + + /** + * 校验菜单名称是否唯一 + * + * @param menu 菜单信息 + * @return 结果 + */ + @Override + public boolean checkMenuNameUnique(SysMenuBo menu) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysMenu::getMenuName, menu.getMenuName()) + .eq(SysMenu::getParentId, menu.getParentId()) + .ne(ObjectUtil.isNotNull(menu.getMenuId()), SysMenu::getMenuId, menu.getMenuId())); + return !exist; + } + + /** + * 根据父节点的ID获取所有子节点 + * + * @param list 分类表 + * @param parentId 传入的父节点ID + * @return String + */ + private List getChildPerms(List list, int parentId) { + List returnList = new ArrayList<>(); + for (SysMenu t : list) { + // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 + if (t.getParentId() == parentId) { + recursionFn(list, t); + returnList.add(t); + } + } + return returnList; + } + + /** + * 递归列表 + */ + private void recursionFn(List list, SysMenu t) { + // 得到子节点列表 + List childList = StreamUtils.filter(list, n -> n.getParentId().equals(t.getMenuId())); + t.setChildren(childList); + for (SysMenu tChild : childList) { + // 判断是否有子节点 + if (list.stream().anyMatch(n -> n.getParentId().equals(tChild.getMenuId()))) { + recursionFn(list, tChild); + } + } + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java new file mode 100644 index 0000000..19a3ff5 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java @@ -0,0 +1,124 @@ +package org.dromara.system.service.impl; + +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.utils.MapstructUtils; +import org.dromara.common.core.utils.ObjectUtils; +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.system.domain.SysNotice; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.bo.SysNoticeBo; +import org.dromara.system.domain.vo.SysNoticeVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.mapper.SysNoticeMapper; +import org.dromara.system.mapper.SysUserMapper; +import org.dromara.system.service.ISysNoticeService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * 公告 服务层实现 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysNoticeServiceImpl implements ISysNoticeService { + + private final SysNoticeMapper baseMapper; + private final SysUserMapper userMapper; + + @Override + public TableDataInfo selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(notice); + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 查询公告信息 + * + * @param noticeId 公告ID + * @return 公告信息 + */ + @Override + public SysNoticeVo selectNoticeById(Long noticeId) { + return baseMapper.selectVoById(noticeId); + } + + /** + * 查询公告列表 + * + * @param notice 公告信息 + * @return 公告集合 + */ + @Override + public List selectNoticeList(SysNoticeBo notice) { + LambdaQueryWrapper lqw = buildQueryWrapper(notice); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysNoticeBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle()); + lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType()); + if (StringUtils.isNotBlank(bo.getCreateByName())) { + SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getUserName, bo.getCreateByName())); + lqw.eq(SysNotice::getCreateBy, ObjectUtils.notNullGetter(sysUser, SysUserVo::getUserId)); + } + lqw.orderByAsc(SysNotice::getNoticeId); + return lqw; + } + + /** + * 新增公告 + * + * @param bo 公告信息 + * @return 结果 + */ + @Override + public int insertNotice(SysNoticeBo bo) { + SysNotice notice = MapstructUtils.convert(bo, SysNotice.class); + return baseMapper.insert(notice); + } + + /** + * 修改公告 + * + * @param bo 公告信息 + * @return 结果 + */ + @Override + public int updateNotice(SysNoticeBo bo) { + SysNotice notice = MapstructUtils.convert(bo, SysNotice.class); + return baseMapper.updateById(notice); + } + + /** + * 删除公告对象 + * + * @param noticeId 公告ID + * @return 结果 + */ + @Override + public int deleteNoticeById(Long noticeId) { + return baseMapper.deleteById(noticeId); + } + + /** + * 批量删除公告信息 + * + * @param noticeIds 需要删除的公告ID + * @return 结果 + */ + @Override + public int deleteNoticeByIds(Long[] noticeIds) { + return baseMapper.deleteByIds(Arrays.asList(noticeIds)); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java new file mode 100644 index 0000000..27c2f32 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.util.ArrayUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.log.event.OperLogEvent; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.SysOperLog; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.dromara.system.domain.vo.SysOperLogVo; +import org.dromara.system.mapper.SysOperLogMapper; +import org.dromara.system.service.ISysOperLogService; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 操作日志 服务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysOperLogServiceImpl implements ISysOperLogService { + + private final SysOperLogMapper baseMapper; + + /** + * 操作日志记录 + * + * @param operLogEvent 操作日志事件 + */ + @Async + @EventListener + public void recordOper(OperLogEvent operLogEvent) { + SysOperLogBo operLog = MapstructUtils.convert(operLogEvent, SysOperLogBo.class); + // 远程查询操作地点 + operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp())); + insertOperlog(operLog); + } + + @Override + public TableDataInfo selectPageOperLogList(SysOperLogBo operLog, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(operLog); + if (StringUtils.isBlank(pageQuery.getOrderByColumn())) { + lqw.orderByDesc(SysOperLog::getOperId); + } + Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + private LambdaQueryWrapper buildQueryWrapper(SysOperLogBo operLog) { + Map params = operLog.getParams(); + return new LambdaQueryWrapper() + .like(StringUtils.isNotBlank(operLog.getOperIp()), SysOperLog::getOperIp, operLog.getOperIp()) + .like(StringUtils.isNotBlank(operLog.getTitle()), SysOperLog::getTitle, operLog.getTitle()) + .eq(operLog.getBusinessType() != null && operLog.getBusinessType() > 0, + SysOperLog::getBusinessType, operLog.getBusinessType()) + .func(f -> { + if (ArrayUtil.isNotEmpty(operLog.getBusinessTypes())) { + f.in(SysOperLog::getBusinessType, Arrays.asList(operLog.getBusinessTypes())); + } + }) + .eq(operLog.getStatus() != null, + SysOperLog::getStatus, operLog.getStatus()) + .like(StringUtils.isNotBlank(operLog.getOperName()), SysOperLog::getOperName, operLog.getOperName()) + .between(params.get("beginTime") != null && params.get("endTime") != null, + SysOperLog::getOperTime, params.get("beginTime"), params.get("endTime")); + } + + /** + * 新增操作日志 + * + * @param bo 操作日志对象 + */ + @Override + public void insertOperlog(SysOperLogBo bo) { + SysOperLog operLog = MapstructUtils.convert(bo, SysOperLog.class); + operLog.setOperTime(new Date()); + baseMapper.insert(operLog); + } + + /** + * 查询系统操作日志集合 + * + * @param operLog 操作日志对象 + * @return 操作日志集合 + */ + @Override + public List selectOperLogList(SysOperLogBo operLog) { + LambdaQueryWrapper lqw = buildQueryWrapper(operLog); + return baseMapper.selectVoList(lqw.orderByDesc(SysOperLog::getOperId)); + } + + /** + * 批量删除系统操作日志 + * + * @param operIds 需要删除的操作日志ID + * @return 结果 + */ + @Override + public int deleteOperLogByIds(Long[] operIds) { + return baseMapper.deleteByIds(Arrays.asList(operIds)); + } + + /** + * 查询操作日志详细 + * + * @param operId 操作ID + * @return 操作日志对象 + */ + @Override + public SysOperLogVo selectOperLogById(Long operId) { + return baseMapper.selectVoById(operId); + } + + /** + * 清空操作日志 + */ + @Override + public void cleanOperLog() { + baseMapper.delete(new LambdaQueryWrapper<>()); + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java new file mode 100644 index 0000000..a67b04e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java @@ -0,0 +1,177 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.oss.constant.OssConstant; +import org.dromara.common.redis.utils.CacheUtils; +import org.dromara.common.redis.utils.RedisUtils; +import org.dromara.system.domain.SysOssConfig; +import org.dromara.system.domain.bo.SysOssConfigBo; +import org.dromara.system.domain.vo.SysOssConfigVo; +import org.dromara.system.mapper.SysOssConfigMapper; +import org.dromara.system.service.ISysOssConfigService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 对象存储配置Service业务层处理 + * + * @author Lion Li + * @author 孤舟烟雨 + * @date 2021-08-13 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SysOssConfigServiceImpl implements ISysOssConfigService { + + private final SysOssConfigMapper baseMapper; + + /** + * 项目启动时,初始化参数到缓存,加载配置类 + */ + @Override + public void init() { + List list = baseMapper.selectList(); + // 加载OSS初始化配置 + for (SysOssConfig config : list) { + String configKey = config.getConfigKey(); + if ("0".equals(config.getStatus())) { + RedisUtils.setCacheObject(OssConstant.DEFAULT_CONFIG_KEY, configKey); + } + CacheUtils.put(CacheNames.SYS_OSS_CONFIG, config.getConfigKey(), JsonUtils.toJsonString(config)); + } + } + + @Override + public SysOssConfigVo queryById(Long ossConfigId) { + return baseMapper.selectVoById(ossConfigId); + } + + @Override + public TableDataInfo queryPageList(SysOssConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + + private LambdaQueryWrapper buildQueryWrapper(SysOssConfigBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getConfigKey()), SysOssConfig::getConfigKey, bo.getConfigKey()); + lqw.like(StringUtils.isNotBlank(bo.getBucketName()), SysOssConfig::getBucketName, bo.getBucketName()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysOssConfig::getStatus, bo.getStatus()); + lqw.orderByAsc(SysOssConfig::getOssConfigId); + return lqw; + } + + @Override + public Boolean insertByBo(SysOssConfigBo bo) { + SysOssConfig config = MapstructUtils.convert(bo, SysOssConfig.class); + validEntityBeforeSave(config); + boolean flag = baseMapper.insert(config) > 0; + if (flag) { + // 从数据库查询完整的数据做缓存 + config = baseMapper.selectById(config.getOssConfigId()); + CacheUtils.put(CacheNames.SYS_OSS_CONFIG, config.getConfigKey(), JsonUtils.toJsonString(config)); + } + return flag; + } + + @Override + public Boolean updateByBo(SysOssConfigBo bo) { + SysOssConfig config = MapstructUtils.convert(bo, SysOssConfig.class); + validEntityBeforeSave(config); + LambdaUpdateWrapper luw = new LambdaUpdateWrapper<>(); + luw.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, ""); + luw.set(ObjectUtil.isNull(config.getRegion()), SysOssConfig::getRegion, ""); + luw.set(ObjectUtil.isNull(config.getExt1()), SysOssConfig::getExt1, ""); + luw.set(ObjectUtil.isNull(config.getRemark()), SysOssConfig::getRemark, ""); + luw.eq(SysOssConfig::getOssConfigId, config.getOssConfigId()); + boolean flag = baseMapper.update(config, luw) > 0; + if (flag) { + // 从数据库查询完整的数据做缓存 + config = baseMapper.selectById(config.getOssConfigId()); + CacheUtils.put(CacheNames.SYS_OSS_CONFIG, config.getConfigKey(), JsonUtils.toJsonString(config)); + } + return flag; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysOssConfig entity) { + if (StringUtils.isNotEmpty(entity.getConfigKey()) + && !checkConfigKeyUnique(entity)) { + throw new ServiceException("操作配置'" + entity.getConfigKey() + "'失败, 配置key已存在!"); + } + } + + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + if (CollUtil.containsAny(ids, OssConstant.SYSTEM_DATA_IDS)) { + throw new ServiceException("系统内置, 不可删除!"); + } + } + List list = CollUtil.newArrayList(); + for (Long configId : ids) { + SysOssConfig config = baseMapper.selectById(configId); + list.add(config); + } + boolean flag = baseMapper.deleteByIds(ids) > 0; + if (flag) { + list.forEach(sysOssConfig -> + CacheUtils.evict(CacheNames.SYS_OSS_CONFIG, sysOssConfig.getConfigKey())); + } + return flag; + } + + /** + * 判断configKey是否唯一 + */ + private boolean checkConfigKeyUnique(SysOssConfig sysOssConfig) { + long ossConfigId = ObjectUtils.notNull(sysOssConfig.getOssConfigId(), -1L); + SysOssConfig info = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysOssConfig::getOssConfigId, SysOssConfig::getConfigKey) + .eq(SysOssConfig::getConfigKey, sysOssConfig.getConfigKey())); + if (ObjectUtil.isNotNull(info) && info.getOssConfigId() != ossConfigId) { + return false; + } + return true; + } + + /** + * 启用禁用状态 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateOssConfigStatus(SysOssConfigBo bo) { + SysOssConfig sysOssConfig = MapstructUtils.convert(bo, SysOssConfig.class); + int row = baseMapper.update(null, new LambdaUpdateWrapper() + .set(SysOssConfig::getStatus, "1")); + row += baseMapper.updateById(sysOssConfig); + if (row > 0) { + RedisUtils.setCacheObject(OssConstant.DEFAULT_CONFIG_KEY, sysOssConfig.getConfigKey()); + } + return row; + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java new file mode 100644 index 0000000..c2eb08c --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java @@ -0,0 +1,269 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.domain.dto.OssDTO; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.OssService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.file.FileUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.oss.core.OssClient; +import org.dromara.common.oss.entity.UploadResult; +import org.dromara.common.oss.enumd.AccessPolicyType; +import org.dromara.common.oss.factory.OssFactory; +import org.dromara.system.domain.SysOss; +import org.dromara.system.domain.bo.SysOssBo; +import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.mapper.SysOssMapper; +import org.dromara.system.service.ISysOssService; +import org.jetbrains.annotations.NotNull; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.time.Duration; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 文件上传 服务层实现 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysOssServiceImpl implements ISysOssService, OssService { + + private final SysOssMapper baseMapper; + + /** + * 查询OSS对象存储列表 + * + * @param bo OSS对象存储分页查询对象 + * @param pageQuery 分页查询实体类 + * @return 结果 + */ + @Override + public TableDataInfo queryPageList(SysOssBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List filterResult = StreamUtils.toList(result.getRecords(), this::matchingUrl); + result.setRecords(filterResult); + return TableDataInfo.build(result); + } + + /** + * 根据一组 ossIds 获取对应的 SysOssVo 列表 + * + * @param ossIds 一组文件在数据库中的唯一标识集合 + * @return 包含 SysOssVo 对象的列表 + */ + @Override + public List listByIds(Collection ossIds) { + List list = new ArrayList<>(); + SysOssServiceImpl ossService = SpringUtils.getAopProxy(this); + for (Long id : ossIds) { + SysOssVo vo = ossService.getById(id); + if (ObjectUtil.isNotNull(vo)) { + try { + list.add(this.matchingUrl(vo)); + } catch (Exception ignored) { + // 如果oss异常无法连接则将数据直接返回 + list.add(vo); + } + } + } + return list; + } + + /** + * 根据一组 ossIds 获取对应文件的 URL 列表 + * + * @param ossIds 以逗号分隔的 ossId 字符串 + * @return 以逗号分隔的文件 URL 字符串 + */ + @Override + public String selectUrlByIds(String ossIds) { + List list = new ArrayList<>(); + SysOssServiceImpl ossService = SpringUtils.getAopProxy(this); + for (Long id : StringUtils.splitTo(ossIds, Convert::toLong)) { + SysOssVo vo = ossService.getById(id); + if (ObjectUtil.isNotNull(vo)) { + try { + list.add(this.matchingUrl(vo).getUrl()); + } catch (Exception ignored) { + // 如果oss异常无法连接则将数据直接返回 + list.add(vo.getUrl()); + } + } + } + return String.join(StringUtils.SEPARATOR, list); + } + + @Override + public List selectByIds(String ossIds) { + List list = new ArrayList<>(); + for (Long id : StringUtils.splitTo(ossIds, Convert::toLong)) { + SysOssVo vo = SpringUtils.getAopProxy(this).getById(id); + if (ObjectUtil.isNotNull(vo)) { + try { + vo.setUrl(this.matchingUrl(vo).getUrl()); + list.add(BeanUtil.toBean(vo, OssDTO.class)); + } catch (Exception ignored) { + // 如果oss异常无法连接则将数据直接返回 + list.add(BeanUtil.toBean(vo, OssDTO.class)); + } + } + } + return list; + } + + private LambdaQueryWrapper buildQueryWrapper(SysOssBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getFileName()), SysOss::getFileName, bo.getFileName()); + lqw.like(StringUtils.isNotBlank(bo.getOriginalName()), SysOss::getOriginalName, bo.getOriginalName()); + lqw.eq(StringUtils.isNotBlank(bo.getFileSuffix()), SysOss::getFileSuffix, bo.getFileSuffix()); + lqw.eq(StringUtils.isNotBlank(bo.getUrl()), SysOss::getUrl, bo.getUrl()); + lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, + SysOss::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); + lqw.eq(ObjectUtil.isNotNull(bo.getCreateBy()), SysOss::getCreateBy, bo.getCreateBy()); + lqw.eq(StringUtils.isNotBlank(bo.getService()), SysOss::getService, bo.getService()); + lqw.orderByAsc(SysOss::getOssId); + return lqw; + } + + /** + * 根据 ossId 从缓存或数据库中获取 SysOssVo 对象 + * + * @param ossId 文件在数据库中的唯一标识 + * @return SysOssVo 对象,包含文件信息 + */ + @Cacheable(cacheNames = CacheNames.SYS_OSS, key = "#ossId") + @Override + public SysOssVo getById(Long ossId) { + return baseMapper.selectVoById(ossId); + } + + + /** + * 文件下载方法,支持一次性下载完整文件 + * + * @param ossId OSS对象ID + * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 + */ + @Override + public void download(Long ossId, HttpServletResponse response) throws IOException { + SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId); + if (ObjectUtil.isNull(sysOss)) { + throw new ServiceException("文件数据不存在!"); + } + FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName()); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); + OssClient storage = OssFactory.instance(sysOss.getService()); + storage.download(sysOss.getFileName(), response.getOutputStream(), response::setContentLengthLong); + } + + /** + * 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的 MultipartFile 对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + * @throws ServiceException 如果上传过程中发生异常,则抛出 ServiceException 异常 + */ + @Override + public SysOssVo upload(MultipartFile file) { + String originalfileName = file.getOriginalFilename(); + String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); + OssClient storage = OssFactory.instance(); + UploadResult uploadResult; + try { + uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType()); + } catch (IOException e) { + throw new ServiceException(e.getMessage()); + } + // 保存文件信息 + return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult); + } + + /** + * 上传文件到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的文件对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ + @Override + public SysOssVo upload(File file) { + String originalfileName = file.getName(); + String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); + OssClient storage = OssFactory.instance(); + UploadResult uploadResult = storage.uploadSuffix(file, suffix); + // 保存文件信息 + return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult); + } + + @NotNull + private SysOssVo buildResultEntity(String originalfileName, String suffix, String configKey, UploadResult uploadResult) { + SysOss oss = new SysOss(); + oss.setUrl(uploadResult.getUrl()); + oss.setFileSuffix(suffix); + oss.setFileName(uploadResult.getFilename()); + oss.setOriginalName(originalfileName); + oss.setService(configKey); + baseMapper.insert(oss); + SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class); + return this.matchingUrl(sysOssVo); + } + + /** + * 删除OSS对象存储 + * + * @param ids OSS对象ID串 + * @param isValid 判断是否需要校验 + * @return 结果 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // 做一些业务上的校验,判断是否需要校验 + } + List list = baseMapper.selectByIds(ids); + for (SysOss sysOss : list) { + OssClient storage = OssFactory.instance(sysOss.getService()); + storage.delete(sysOss.getUrl()); + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 桶类型为 private 的URL 修改为临时URL时长为120s + * + * @param oss OSS对象 + * @return oss 匹配Url的OSS对象 + */ + private SysOssVo matchingUrl(SysOssVo oss) { + OssClient storage = OssFactory.instance(oss.getService()); + // 仅修改桶类型为 private 的URL,临时URL时长为120s + if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) { + oss.setUrl(storage.getPrivateUrl(oss.getFileName(), Duration.ofSeconds(120))); + } + return oss; + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java new file mode 100644 index 0000000..9852821 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java @@ -0,0 +1,61 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.constant.TenantConstants; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.service.ISysMenuService; +import org.dromara.system.service.ISysPermissionService; +import org.dromara.system.service.ISysRoleService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashSet; +import java.util.Set; + +/** + * 用户权限处理 + * + * @author ruoyi + */ +@RequiredArgsConstructor +@Service +public class SysPermissionServiceImpl implements ISysPermissionService { + + private final ISysRoleService roleService; + private final ISysMenuService menuService; + + /** + * 获取角色数据权限 + * + * @param userId 用户id + * @return 角色权限信息 + */ + @Override + public Set getRolePermission(Long userId) { + Set roles = new HashSet<>(); + // 管理员拥有所有权限 + if (LoginHelper.isSuperAdmin(userId)) { + roles.add(TenantConstants.SUPER_ADMIN_ROLE_KEY); + } else { + roles.addAll(roleService.selectRolePermissionByUserId(userId)); + } + return roles; + } + + /** + * 获取菜单数据权限 + * + * @param userId 用户id + * @return 菜单权限信息 + */ + @Override + public Set getMenuPermission(Long userId) { + Set perms = new HashSet<>(); + // 管理员拥有所有权限 + if (LoginHelper.isSuperAdmin(userId)) { + perms.add("*:*:*"); + } else { + perms.addAll(menuService.selectMenuPermsByUserId(userId)); + } + return perms; + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java new file mode 100644 index 0000000..5888985 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java @@ -0,0 +1,249 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.PostService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StreamUtils; +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.system.domain.SysDept; +import org.dromara.system.domain.SysPost; +import org.dromara.system.domain.SysUserPost; +import org.dromara.system.domain.bo.SysPostBo; +import org.dromara.system.domain.vo.SysPostVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysPostMapper; +import org.dromara.system.mapper.SysUserPostMapper; +import org.dromara.system.service.ISysPostService; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * 岗位信息 服务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysPostServiceImpl implements ISysPostService, PostService { + + private final SysPostMapper baseMapper; + private final SysDeptMapper deptMapper; + private final SysUserPostMapper userPostMapper; + + @Override + public TableDataInfo selectPagePostList(SysPostBo post, PageQuery pageQuery) { + Page page = baseMapper.selectPagePostList(pageQuery.build(), buildQueryWrapper(post)); + return TableDataInfo.build(page); + } + + /** + * 查询岗位信息集合 + * + * @param post 岗位信息 + * @return 岗位信息集合 + */ + @Override + public List selectPostList(SysPostBo post) { + return baseMapper.selectVoList(buildQueryWrapper(post)); + } + + /** + * 查询用户所属岗位组 + * + * @param userId 用户ID + * @return 岗位ID + */ + @Override + public List selectPostsByUserId(Long userId) { + return baseMapper.selectPostsByUserId(userId); + } + + /** + * 根据查询条件构建查询包装器 + * + * @param bo 查询条件对象 + * @return 构建好的查询包装器 + */ + private LambdaQueryWrapper buildQueryWrapper(SysPostBo bo) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(bo.getPostCode()), SysPost::getPostCode, bo.getPostCode()) + .like(StringUtils.isNotBlank(bo.getPostCategory()), SysPost::getPostCategory, bo.getPostCategory()) + .like(StringUtils.isNotBlank(bo.getPostName()), SysPost::getPostName, bo.getPostName()) + .eq(StringUtils.isNotBlank(bo.getStatus()), SysPost::getStatus, bo.getStatus()) + .orderByAsc(SysPost::getPostSort); + if (ObjectUtil.isNotNull(bo.getDeptId())) { + //优先单部门搜索 + wrapper.eq(SysPost::getDeptId, bo.getDeptId()); + } else if (ObjectUtil.isNotNull(bo.getBelongDeptId())) { + //部门树搜索 + wrapper.and(x -> { + List deptList = deptMapper.selectListByParentId(bo.getBelongDeptId()); + List deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); + deptIds.add(bo.getBelongDeptId()); + x.in(SysPost::getDeptId, deptIds); + }); + } + return wrapper; + } + + /** + * 查询所有岗位 + * + * @return 岗位列表 + */ + @Override + public List selectPostAll() { + return baseMapper.selectVoList(new QueryWrapper<>()); + } + + /** + * 通过岗位ID查询岗位信息 + * + * @param postId 岗位ID + * @return 角色对象信息 + */ + @Override + public SysPostVo selectPostById(Long postId) { + return baseMapper.selectVoById(postId); + } + + /** + * 根据用户ID获取岗位选择框列表 + * + * @param userId 用户ID + * @return 选中岗位ID列表 + */ + @Override + public List selectPostListByUserId(Long userId) { + List list = baseMapper.selectPostsByUserId(userId); + return StreamUtils.toList(list, SysPostVo::getPostId); + } + + /** + * 通过岗位ID串查询岗位 + * + * @param postIds 岗位id串 + * @return 岗位列表信息 + */ + @Override + public List selectPostByIds(List postIds) { + return baseMapper.selectVoList(new LambdaQueryWrapper() + .select(SysPost::getPostId, SysPost::getPostName, SysPost::getPostCode) + .eq(SysPost::getStatus, SystemConstants.NORMAL) + .in(CollUtil.isNotEmpty(postIds), SysPost::getPostId, postIds)); + } + + /** + * 校验岗位名称是否唯一 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public boolean checkPostNameUnique(SysPostBo post) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysPost::getPostName, post.getPostName()) + .ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId())); + return !exist; + } + + /** + * 校验岗位编码是否唯一 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public boolean checkPostCodeUnique(SysPostBo post) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysPost::getPostCode, post.getPostCode()) + .ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId())); + return !exist; + } + + /** + * 通过岗位ID查询岗位使用数量 + * + * @param postId 岗位ID + * @return 结果 + */ + @Override + public long countUserPostById(Long postId) { + return userPostMapper.selectCount(new LambdaQueryWrapper().eq(SysUserPost::getPostId, postId)); + } + + /** + * 通过部门ID查询岗位使用数量 + * + * @param deptId 部门id + * @return 结果 + */ + @Override + public long countPostByDeptId(Long deptId) { + return baseMapper.selectCount(new LambdaQueryWrapper().eq(SysPost::getDeptId, deptId)); + } + + /** + * 删除岗位信息 + * + * @param postId 岗位ID + * @return 结果 + */ + @Override + public int deletePostById(Long postId) { + return baseMapper.deleteById(postId); + } + + /** + * 批量删除岗位信息 + * + * @param postIds 需要删除的岗位ID + * @return 结果 + */ + @Override + public int deletePostByIds(Long[] postIds) { + for (Long postId : postIds) { + SysPost post = baseMapper.selectById(postId); + if (countUserPostById(postId) > 0) { + throw new ServiceException(String.format("%1$s已分配,不能删除!", post.getPostName())); + } + } + return baseMapper.deleteByIds(Arrays.asList(postIds)); + } + + /** + * 新增保存岗位信息 + * + * @param bo 岗位信息 + * @return 结果 + */ + @Override + public int insertPost(SysPostBo bo) { + SysPost post = MapstructUtils.convert(bo, SysPost.class); + return baseMapper.insert(post); + } + + /** + * 修改保存岗位信息 + * + * @param bo 岗位信息 + * @return 结果 + */ + @Override + public int updatePost(SysPostBo bo) { + SysPost post = MapstructUtils.convert(bo, SysPost.class); + return baseMapper.updateById(post); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java new file mode 100644 index 0000000..0a2e485 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java @@ -0,0 +1,552 @@ +package org.dromara.system.service.impl; + +import cn.dev33.satoken.exception.NotLoginException; +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.constant.TenantConstants; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.RoleService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StreamUtils; +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.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.SysRole; +import org.dromara.system.domain.SysRoleDept; +import org.dromara.system.domain.SysRoleMenu; +import org.dromara.system.domain.SysUserRole; +import org.dromara.system.domain.bo.SysRoleBo; +import org.dromara.system.domain.vo.SysRoleVo; +import org.dromara.system.mapper.SysRoleDeptMapper; +import org.dromara.system.mapper.SysRoleMapper; +import org.dromara.system.mapper.SysRoleMenuMapper; +import org.dromara.system.mapper.SysUserRoleMapper; +import org.dromara.system.service.ISysRoleService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 角色 业务层处理 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysRoleServiceImpl implements ISysRoleService, RoleService { + + private final SysRoleMapper baseMapper; + private final SysRoleMenuMapper roleMenuMapper; + private final SysUserRoleMapper userRoleMapper; + private final SysRoleDeptMapper roleDeptMapper; + + @Override + public TableDataInfo selectPageRoleList(SysRoleBo role, PageQuery pageQuery) { + Page page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role)); + return TableDataInfo.build(page); + } + + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + @Override + public List selectRoleList(SysRoleBo role) { + return baseMapper.selectRoleList(this.buildQueryWrapper(role)); + } + + private Wrapper buildQueryWrapper(SysRoleBo bo) { + Map params = bo.getParams(); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("r.del_flag", SystemConstants.NORMAL) + .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId()) + .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName()) + .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus()) + .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey()) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "r.create_time", params.get("beginTime"), params.get("endTime")) + .orderByAsc("r.role_sort").orderByAsc("r.create_time"); + return wrapper; + } + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + @Override + public List selectRolesByUserId(Long userId) { + return baseMapper.selectRolesByUserId(userId); + } + + /** + * 根据用户ID查询角色列表(包含被授权状态) + * + * @param userId 用户ID + * @return 角色列表 + */ + @Override + public List selectRolesAuthByUserId(Long userId) { + List userRoles = baseMapper.selectRolesByUserId(userId); + List roles = selectRoleAll(); + // 使用HashSet提高查找效率 + Set userRoleIds = StreamUtils.toSet(userRoles, SysRoleVo::getRoleId); + for (SysRoleVo role : roles) { + if (userRoleIds.contains(role.getRoleId())) { + role.setFlag(true); + } + } + return roles; + } + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + @Override + public Set selectRolePermissionByUserId(Long userId) { + List perms = baseMapper.selectRolesByUserId(userId); + Set permsSet = new HashSet<>(); + for (SysRoleVo perm : perms) { + if (ObjectUtil.isNotNull(perm)) { + permsSet.addAll(StringUtils.splitList(perm.getRoleKey().trim())); + } + } + return permsSet; + } + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + @Override + public List selectRoleAll() { + return this.selectRoleList(new SysRoleBo()); + } + + /** + * 根据用户ID获取角色选择框列表 + * + * @param userId 用户ID + * @return 选中角色ID列表 + */ + @Override + public List selectRoleListByUserId(Long userId) { + List list = baseMapper.selectRolesByUserId(userId); + return StreamUtils.toList(list, SysRoleVo::getRoleId); + } + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + @Override + public SysRoleVo selectRoleById(Long roleId) { + return baseMapper.selectRoleById(roleId); + } + + /** + * 通过角色ID串查询角色 + * + * @param roleIds 角色ID串 + * @return 角色列表信息 + */ + @Override + public List selectRoleByIds(List roleIds) { + return baseMapper.selectRoleList(new QueryWrapper() + .eq("r.status", SystemConstants.NORMAL) + .in(CollUtil.isNotEmpty(roleIds), "r.role_id", roleIds)); + } + + /** + * 校验角色名称是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public boolean checkRoleNameUnique(SysRoleBo role) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysRole::getRoleName, role.getRoleName()) + .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); + return !exist; + } + + /** + * 校验角色权限是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public boolean checkRoleKeyUnique(SysRoleBo role) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysRole::getRoleKey, role.getRoleKey()) + .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); + return !exist; + } + + /** + * 校验角色是否允许操作 + * + * @param role 角色信息 + */ + @Override + public void checkRoleAllowed(SysRoleBo role) { + if (ObjectUtil.isNotNull(role.getRoleId()) && LoginHelper.isSuperAdmin(role.getRoleId())) { + throw new ServiceException("不允许操作超级管理员角色"); + } + String[] keys = new String[]{TenantConstants.SUPER_ADMIN_ROLE_KEY, TenantConstants.TENANT_ADMIN_ROLE_KEY}; + // 新增不允许使用 管理员标识符 + if (ObjectUtil.isNull(role.getRoleId()) + && StringUtils.equalsAny(role.getRoleKey(), keys)) { + throw new ServiceException("不允许使用系统内置管理员角色标识符!"); + } + // 修改不允许修改 管理员标识符 + if (ObjectUtil.isNotNull(role.getRoleId())) { + SysRole sysRole = baseMapper.selectById(role.getRoleId()); + // 如果标识符不相等 判断为修改了管理员标识符 + if (!StringUtils.equals(sysRole.getRoleKey(), role.getRoleKey())) { + if (StringUtils.equalsAny(sysRole.getRoleKey(), keys)) { + throw new ServiceException("不允许修改系统内置管理员角色标识符!"); + } else if (StringUtils.equalsAny(role.getRoleKey(), keys)) { + throw new ServiceException("不允许使用系统内置管理员角色标识符!"); + } + } + } + } + + /** + * 校验角色是否有数据权限 + * + * @param roleId 角色id + */ + @Override + public void checkRoleDataScope(Long roleId) { + if (ObjectUtil.isNull(roleId)) { + return; + } + if (LoginHelper.isSuperAdmin()) { + return; + } + List roles = this.selectRoleList(new SysRoleBo(roleId)); + if (CollUtil.isEmpty(roles)) { + throw new ServiceException("没有权限访问角色数据!"); + } + + } + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + @Override + public long countUserRoleByRoleId(Long roleId) { + return userRoleMapper.selectCount(new LambdaQueryWrapper().eq(SysUserRole::getRoleId, roleId)); + } + + /** + * 新增保存角色信息 + * + * @param bo 角色信息 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertRole(SysRoleBo bo) { + SysRole role = MapstructUtils.convert(bo, SysRole.class); + // 新增角色信息 + baseMapper.insert(role); + bo.setRoleId(role.getRoleId()); + return insertRoleMenu(bo); + } + + /** + * 修改保存角色信息 + * + * @param bo 角色信息 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateRole(SysRoleBo bo) { + SysRole role = MapstructUtils.convert(bo, SysRole.class); + + if (SystemConstants.DISABLE.equals(role.getStatus()) && this.countUserRoleByRoleId(role.getRoleId()) > 0) { + throw new ServiceException("角色已分配,不能禁用!"); + } + // 修改角色信息 + baseMapper.updateById(role); + // 删除角色与菜单关联 + roleMenuMapper.delete(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, role.getRoleId())); + return insertRoleMenu(bo); + } + + /** + * 修改角色状态 + * + * @param roleId 角色ID + * @param status 角色状态 + * @return 结果 + */ + @Override + public int updateRoleStatus(Long roleId, String status) { + if (SystemConstants.DISABLE.equals(status) && this.countUserRoleByRoleId(roleId) > 0) { + throw new ServiceException("角色已分配,不能禁用!"); + } + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysRole::getStatus, status) + .eq(SysRole::getRoleId, roleId)); + } + + /** + * 修改数据权限信息 + * + * @param bo 角色信息 + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#bo.roleId") + @Override + @Transactional(rollbackFor = Exception.class) + public int authDataScope(SysRoleBo bo) { + SysRole role = MapstructUtils.convert(bo, SysRole.class); + // 修改角色信息 + baseMapper.updateById(role); + // 删除角色与部门关联 + roleDeptMapper.delete(new LambdaQueryWrapper().eq(SysRoleDept::getRoleId, role.getRoleId())); + // 新增角色和部门信息(数据权限) + return insertRoleDept(bo); + } + + /** + * 新增角色菜单信息 + * + * @param role 角色对象 + */ + private int insertRoleMenu(SysRoleBo role) { + int rows = 1; + // 新增用户与角色管理 + List list = new ArrayList<>(); + for (Long menuId : role.getMenuIds()) { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); + } + if (list.size() > 0) { + rows = roleMenuMapper.insertBatch(list) ? list.size() : 0; + } + return rows; + } + + /** + * 新增角色部门信息(数据权限) + * + * @param role 角色对象 + */ + private int insertRoleDept(SysRoleBo role) { + int rows = 1; + // 新增角色与部门(数据权限)管理 + List list = new ArrayList<>(); + for (Long deptId : role.getDeptIds()) { + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); + } + if (list.size() > 0) { + rows = roleDeptMapper.insertBatch(list) ? list.size() : 0; + } + return rows; + } + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId") + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteRoleById(Long roleId) { + // 删除角色与菜单关联 + roleMenuMapper.delete(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, roleId)); + // 删除角色与部门关联 + roleDeptMapper.delete(new LambdaQueryWrapper().eq(SysRoleDept::getRoleId, roleId)); + return baseMapper.deleteById(roleId); + } + + /** + * 批量删除角色信息 + * + * @param roleIds 需要删除的角色ID + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, allEntries = true) + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteRoleByIds(Long[] roleIds) { + for (Long roleId : roleIds) { + SysRole role = baseMapper.selectById(roleId); + checkRoleAllowed(BeanUtil.toBean(role, SysRoleBo.class)); + checkRoleDataScope(roleId); + if (countUserRoleByRoleId(roleId) > 0) { + throw new ServiceException(String.format("%1$s已分配,不能删除!", role.getRoleName())); + } + } + List ids = Arrays.asList(roleIds); + // 删除角色与菜单关联 + roleMenuMapper.delete(new LambdaQueryWrapper().in(SysRoleMenu::getRoleId, ids)); + // 删除角色与部门关联 + roleDeptMapper.delete(new LambdaQueryWrapper().in(SysRoleDept::getRoleId, ids)); + return baseMapper.deleteByIds(ids); + } + + /** + * 取消授权用户角色 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + @Override + public int deleteAuthUser(SysUserRole userRole) { + int rows = userRoleMapper.delete(new LambdaQueryWrapper() + .eq(SysUserRole::getRoleId, userRole.getRoleId()) + .eq(SysUserRole::getUserId, userRole.getUserId())); + if (rows > 0) { + cleanOnlineUser(List.of(userRole.getUserId())); + } + return rows; + } + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要取消授权的用户数据ID + * @return 结果 + */ + @Override + public int deleteAuthUsers(Long roleId, Long[] userIds) { + List ids = List.of(userIds); + int rows = userRoleMapper.delete(new LambdaQueryWrapper() + .eq(SysUserRole::getRoleId, roleId) + .in(SysUserRole::getUserId, ids)); + if (rows > 0) { + cleanOnlineUser(ids); + } + return rows; + } + + /** + * 批量选择授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要授权的用户数据ID + * @return 结果 + */ + @Override + public int insertAuthUsers(Long roleId, Long[] userIds) { + // 新增用户与角色管理 + int rows = 1; + List ids = List.of(userIds); + List list = StreamUtils.toList(ids, userId -> { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + return ur; + }); + if (CollUtil.isNotEmpty(list)) { + rows = userRoleMapper.insertBatch(list) ? list.size() : 0; + } + if (rows > 0) { + cleanOnlineUser(ids); + } + return rows; + } + + @Override + public void cleanOnlineUserByRole(Long roleId) { + // 如果角色未绑定用户 直接返回 + Long num = userRoleMapper.selectCount(new LambdaQueryWrapper().eq(SysUserRole::getRoleId, roleId)); + if (num == 0) { + return; + } + List keys = StpUtil.searchTokenValue("", 0, -1, false); + if (CollUtil.isEmpty(keys)) { + return; + } + // 角色关联的在线用户量过大会导致redis阻塞卡顿 谨慎操作 + keys.parallelStream().forEach(key -> { + String token = StringUtils.substringAfterLast(key, ":"); + // 如果已经过期则跳过 + if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < -1) { + return; + } + LoginUser loginUser = LoginHelper.getLoginUser(token); + if (ObjectUtil.isNull(loginUser) || CollUtil.isEmpty(loginUser.getRoles())) { + return; + } + if (loginUser.getRoles().stream().anyMatch(r -> r.getRoleId().equals(roleId))) { + try { + StpUtil.logoutByTokenValue(token); + } catch (NotLoginException ignored) { + } + } + }); + } + + @Override + public void cleanOnlineUser(List userIds) { + List keys = StpUtil.searchTokenValue("", 0, -1, false); + if (CollUtil.isEmpty(keys)) { + return; + } + // 角色关联的在线用户量过大会导致redis阻塞卡顿 谨慎操作 + keys.parallelStream().forEach(key -> { + String token = StringUtils.substringAfterLast(key, ":"); + // 如果已经过期则跳过 + if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < -1) { + return; + } + LoginUser loginUser = LoginHelper.getLoginUser(token); + if (ObjectUtil.isNull(loginUser)) { + return; + } + if (userIds.contains(loginUser.getUserId())) { + try { + StpUtil.logoutByTokenValue(token); + } catch (NotLoginException ignored) { + } + } + }); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java new file mode 100644 index 0000000..8a0d45e --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java @@ -0,0 +1,47 @@ +package org.dromara.system.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ArrayUtil; +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 + * @version 3.6.0 + */ +@Service +public class SysSensitiveServiceImpl implements SensitiveService { + + /** + * 是否脱敏 + */ + @Override + public boolean isSensitive(String[] roleKey, String[] perms) { + if (!LoginHelper.isLogin()) { + return true; + } + boolean roleExist = ArrayUtil.isNotEmpty(roleKey); + boolean permsExist = ArrayUtil.isNotEmpty(perms); + if (roleExist && permsExist) { + if (StpUtil.hasRoleOr(roleKey) && StpUtil.hasPermissionOr(perms)) { + return false; + } + } else if (roleExist && StpUtil.hasRoleOr(roleKey)) { + return false; + } else if (permsExist && StpUtil.hasPermissionOr(perms)) { + return false; + } + + if (TenantHelper.isEnable()) { + return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin(); + } + return !LoginHelper.isSuperAdmin(); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java new file mode 100644 index 0000000..9c54cbc --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java @@ -0,0 +1,112 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.system.domain.SysSocial; +import org.dromara.system.domain.bo.SysSocialBo; +import org.dromara.system.domain.vo.SysSocialVo; +import org.dromara.system.mapper.SysSocialMapper; +import org.dromara.system.service.ISysSocialService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 社会化关系Service业务层处理 + * + * @author thiszhc + * @date 2023-06-12 + */ +@RequiredArgsConstructor +@Service +public class SysSocialServiceImpl implements ISysSocialService { + + private final SysSocialMapper baseMapper; + + + /** + * 查询社会化关系 + */ + @Override + public SysSocialVo queryById(String id) { + return baseMapper.selectVoById(id); + } + + /** + * 授权列表 + */ + @Override + public List queryList(SysSocialBo bo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper() + .eq(ObjectUtil.isNotNull(bo.getUserId()), SysSocial::getUserId, bo.getUserId()) + .eq(StringUtils.isNotBlank(bo.getAuthId()), SysSocial::getAuthId, bo.getAuthId()) + .eq(StringUtils.isNotBlank(bo.getSource()), SysSocial::getSource, bo.getSource()); + return baseMapper.selectVoList(lqw); + } + + @Override + public List queryListByUserId(Long userId) { + return baseMapper.selectVoList(new LambdaQueryWrapper().eq(SysSocial::getUserId, userId)); + } + + + /** + * 新增社会化关系 + */ + @Override + public Boolean insertByBo(SysSocialBo bo) { + SysSocial add = MapstructUtils.convert(bo, SysSocial.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + if (add != null) { + bo.setId(add.getId()); + } else { + return false; + } + } + return flag; + } + + /** + * 更新社会化关系 + */ + @Override + public Boolean updateByBo(SysSocialBo bo) { + SysSocial update = MapstructUtils.convert(bo, SysSocial.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysSocial entity) { + //TODO 做一些数据校验,如唯一约束 + } + + + /** + * 删除社会化关系 + */ + @Override + public Boolean deleteWithValidById(Long id) { + return baseMapper.deleteById(id) > 0; + } + + + /** + * 根据 authId 查询用户信息 + * + * @param authId 认证id + * @return 授权信息 + */ + @Override + public List selectByAuthId(String authId) { + return baseMapper.selectVoList(new LambdaQueryWrapper().eq(SysSocial::getAuthId, authId)); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java new file mode 100644 index 0000000..23dd052 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java @@ -0,0 +1,168 @@ +package org.dromara.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.dto.TaskAssigneeDTO; +import org.dromara.common.core.domain.model.TaskAssigneeBody; +import org.dromara.common.core.service.TaskAssigneeService; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.SysPost; +import org.dromara.system.domain.SysRole; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.domain.vo.SysPostVo; +import org.dromara.system.domain.vo.SysRoleVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysPostMapper; +import org.dromara.system.mapper.SysRoleMapper; +import org.dromara.system.mapper.SysUserMapper; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 工作流设计器获取任务执行人 + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysTaskAssigneeServiceImpl implements TaskAssigneeService { + + private final SysPostMapper postMapper; + private final SysDeptMapper deptMapper; + private final SysUserMapper userMapper; + private final SysRoleMapper roleMapper; + + /** + * 查询角色并返回任务指派的列表,支持分页 + * + * @param taskQuery 查询条件 + * @return 办理人 + */ + @Override + public TaskAssigneeDTO selectRolesByTaskAssigneeList(TaskAssigneeBody taskQuery) { + PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("r.del_flag", SystemConstants.NORMAL) + .like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "r.role_name", taskQuery.getHandlerCode()) + .like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "r.role_key", taskQuery.getHandlerName()) + .between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), + "r.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) + .orderByAsc("r.role_sort").orderByAsc("r.create_time"); + Page page = roleMapper.selectPageRoleList(pageQuery.build(), wrapper); + // 使用封装的字段映射方法进行转换 + List handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(), + SysRoleVo::getRoleId, SysRoleVo::getRoleKey, SysRoleVo::getRoleName, null, SysRoleVo::getCreateTime); + return new TaskAssigneeDTO(page.getTotal(), handlers); + } + + /** + * 查询岗位并返回任务指派的列表,支持分页 + * + * @param taskQuery 查询条件 + * @return 办理人 + */ + @Override + public TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery) { + PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() + .like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode()) + .like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName()) + .between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), + SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()); + if (StringUtils.isNotBlank(taskQuery.getGroupId())) { + Long belongDeptId = Long.valueOf(taskQuery.getGroupId()); + wrapper.and(x -> { + List deptList = deptMapper.selectListByParentId(belongDeptId); + List deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); + deptIds.add(belongDeptId); + x.in(SysPost::getDeptId, deptIds); + }); + } + Page page = postMapper.selectPagePostList(pageQuery.build(), wrapper); + // 使用封装的字段映射方法进行转换 + List handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(), + SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptId, SysPostVo::getCreateTime); + return new TaskAssigneeDTO(page.getTotal(), handlers); + } + + /** + * 查询部门并返回任务指派的列表,支持分页 + * + * @param taskQuery 查询条件 + * @return 办理人 + */ + @Override + public TaskAssigneeDTO selectDeptsByTaskAssigneeList(TaskAssigneeBody taskQuery) { + PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() + .eq(SysDept::getDelFlag, SystemConstants.NORMAL) + .like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode()) + .like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName()) + .between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), + SysDept::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()) + .orderByAsc(SysDept::getAncestors) + .orderByAsc(SysDept::getParentId) + .orderByAsc(SysDept::getOrderNum) + .orderByAsc(SysDept::getDeptId); + if (StringUtils.isNotBlank(taskQuery.getGroupId())) { + //部门树搜索 + wrapper.and(x -> { + Long parentId = Long.valueOf(taskQuery.getGroupId()); + List deptList = deptMapper.selectListByParentId(parentId); + List deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); + deptIds.add(parentId); + x.in(SysDept::getDeptId, deptIds); + }); + } + Page page = deptMapper.selectPageDeptList(pageQuery.build(), wrapper); + // 使用封装的字段映射方法进行转换 + List handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(), + SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, SysDeptVo::getParentId, SysDeptVo::getCreateTime); + return new TaskAssigneeDTO(page.getTotal(), handlers); + } + + + /** + * 查询用户并返回任务指派的列表,支持分页 + * + * @param taskQuery 查询条件 + * @return 办理人 + */ + @Override + public TaskAssigneeDTO selectUsersByTaskAssigneeList(TaskAssigneeBody taskQuery) { + PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("u.del_flag", SystemConstants.NORMAL) + .like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "u.user_name", taskQuery.getHandlerCode()) + .like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "u.nick_name", taskQuery.getHandlerName()) + .between(taskQuery.getBeginTime() != null && taskQuery.getEndTime() != null, + "u.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) + .orderByAsc("u.user_id"); + if (StringUtils.isNotBlank(taskQuery.getGroupId())) { + //部门树搜索 + wrapper.and(x -> { + Long parentId = Long.valueOf(taskQuery.getGroupId()); + List deptList = deptMapper.selectListByParentId(parentId); + List deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); + deptIds.add(parentId); + x.in("u.dept_id", deptIds); + }); + } + Page page = userMapper.selectPageUserList(pageQuery.build(), wrapper); + // 使用封装的字段映射方法进行转换 + List handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(), + SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptId, SysUserVo::getCreateTime); + return new TaskAssigneeDTO(page.getTotal(), handlers); + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java new file mode 100644 index 0000000..8d69e96 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java @@ -0,0 +1,157 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +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.system.domain.SysTenant; +import org.dromara.system.domain.SysTenantPackage; +import org.dromara.system.domain.bo.SysTenantPackageBo; +import org.dromara.system.domain.vo.SysTenantPackageVo; +import org.dromara.system.mapper.SysTenantMapper; +import org.dromara.system.mapper.SysTenantPackageMapper; +import org.dromara.system.service.ISysTenantPackageService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +/** + * 租户套餐Service业务层处理 + * + * @author Michelle.Chung + */ +@RequiredArgsConstructor +@Service +public class SysTenantPackageServiceImpl implements ISysTenantPackageService { + + private final SysTenantPackageMapper baseMapper; + private final SysTenantMapper tenantMapper; + + /** + * 查询租户套餐 + */ + @Override + public SysTenantPackageVo queryById(Long packageId){ + return baseMapper.selectVoById(packageId); + } + + /** + * 查询租户套餐列表 + */ + @Override + public TableDataInfo queryPageList(SysTenantPackageBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + @Override + public List selectList() { + return baseMapper.selectVoList(new LambdaQueryWrapper() + .eq(SysTenantPackage::getStatus, SystemConstants.NORMAL)); + } + + /** + * 查询租户套餐列表 + */ + @Override + public List queryList(SysTenantPackageBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysTenantPackageBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getPackageName()), SysTenantPackage::getPackageName, bo.getPackageName()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysTenantPackage::getStatus, bo.getStatus()); + lqw.orderByAsc(SysTenantPackage::getPackageId); + return lqw; + } + + /** + * 新增租户套餐 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(SysTenantPackageBo bo) { + SysTenantPackage add = MapstructUtils.convert(bo, SysTenantPackage.class); + // 保存菜单id + List menuIds = Arrays.asList(bo.getMenuIds()); + if (CollUtil.isNotEmpty(menuIds)) { + add.setMenuIds(StringUtils.join(menuIds, ", ")); + } else { + add.setMenuIds(""); + } + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPackageId(add.getPackageId()); + } + return flag; + } + + /** + * 修改租户套餐 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(SysTenantPackageBo bo) { + SysTenantPackage update = MapstructUtils.convert(bo, SysTenantPackage.class); + // 保存菜单id + List menuIds = Arrays.asList(bo.getMenuIds()); + if (CollUtil.isNotEmpty(menuIds)) { + update.setMenuIds(StringUtils.join(menuIds, ", ")); + } else { + update.setMenuIds(""); + } + return baseMapper.updateById(update) > 0; + } + + /** + * 校验套餐名称是否唯一 + */ + @Override + public boolean checkPackageNameUnique(SysTenantPackageBo bo) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysTenantPackage::getPackageName, bo.getPackageName()) + .ne(ObjectUtil.isNotNull(bo.getPackageId()), SysTenantPackage::getPackageId, bo.getPackageId())); + return !exist; + } + + /** + * 修改套餐状态 + * + * @param bo 套餐信息 + * @return 结果 + */ + @Override + public int updatePackageStatus(SysTenantPackageBo bo) { + SysTenantPackage tenantPackage = MapstructUtils.convert(bo, SysTenantPackage.class); + return baseMapper.updateById(tenantPackage); + } + + /** + * 批量删除租户套餐 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + boolean exists = tenantMapper.exists(new LambdaQueryWrapper().in(SysTenant::getPackageId, ids)); + if (exists) { + throw new ServiceException("租户套餐已被使用"); + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java new file mode 100644 index 0000000..f31bd30 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java @@ -0,0 +1,477 @@ +package org.dromara.system.service.impl; + +import cn.dev33.satoken.secure.BCrypt; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.constant.TenantConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.WorkflowService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +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.common.redis.utils.CacheUtils; +import org.dromara.common.tenant.core.TenantEntity; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.system.domain.*; +import org.dromara.system.domain.bo.SysTenantBo; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.mapper.*; +import org.dromara.system.service.ISysTenantService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 租户Service业务层处理 + * + * @author Michelle.Chung + */ +@RequiredArgsConstructor +@Service +public class SysTenantServiceImpl implements ISysTenantService { + + private final SysTenantMapper baseMapper; + private final SysTenantPackageMapper tenantPackageMapper; + private final SysUserMapper userMapper; + private final SysDeptMapper deptMapper; + private final SysRoleMapper roleMapper; + private final SysRoleMenuMapper roleMenuMapper; + private final SysRoleDeptMapper roleDeptMapper; + private final SysUserRoleMapper userRoleMapper; + private final SysDictTypeMapper dictTypeMapper; + private final SysDictDataMapper dictDataMapper; + private final SysConfigMapper configMapper; + + /** + * 查询租户 + */ + @Override + public SysTenantVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 基于租户ID查询租户 + */ + @Cacheable(cacheNames = CacheNames.SYS_TENANT, key = "#tenantId") + @Override + public SysTenantVo queryByTenantId(String tenantId) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysTenant::getTenantId, tenantId)); + } + + /** + * 查询租户列表 + */ + @Override + public TableDataInfo queryPageList(SysTenantBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询租户列表 + */ + @Override + public List queryList(SysTenantBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysTenantBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getTenantId()), SysTenant::getTenantId, bo.getTenantId()); + lqw.like(StringUtils.isNotBlank(bo.getContactUserName()), SysTenant::getContactUserName, bo.getContactUserName()); + lqw.eq(StringUtils.isNotBlank(bo.getContactPhone()), SysTenant::getContactPhone, bo.getContactPhone()); + lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), SysTenant::getCompanyName, bo.getCompanyName()); + lqw.eq(StringUtils.isNotBlank(bo.getLicenseNumber()), SysTenant::getLicenseNumber, bo.getLicenseNumber()); + lqw.eq(StringUtils.isNotBlank(bo.getAddress()), SysTenant::getAddress, bo.getAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getIntro()), SysTenant::getIntro, bo.getIntro()); + lqw.like(StringUtils.isNotBlank(bo.getDomain()), SysTenant::getDomain, bo.getDomain()); + lqw.eq(bo.getPackageId() != null, SysTenant::getPackageId, bo.getPackageId()); + lqw.eq(bo.getExpireTime() != null, SysTenant::getExpireTime, bo.getExpireTime()); + lqw.eq(bo.getAccountCount() != null, SysTenant::getAccountCount, bo.getAccountCount()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysTenant::getStatus, bo.getStatus()); + lqw.orderByAsc(SysTenant::getId); + return lqw; + } + + /** + * 新增租户 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(SysTenantBo bo) { + SysTenant add = MapstructUtils.convert(bo, SysTenant.class); + + // 获取所有租户编号 + List tenantIds = baseMapper.selectObjs( + new LambdaQueryWrapper().select(SysTenant::getTenantId), x -> { + return Convert.toStr(x); + }); + String tenantId = generateTenantId(tenantIds); + add.setTenantId(tenantId); + boolean flag = baseMapper.insert(add) > 0; + if (!flag) { + throw new ServiceException("创建租户失败"); + } + bo.setId(add.getId()); + + // 根据套餐创建角色 + Long roleId = createTenantRole(tenantId, bo.getPackageId()); + + // 创建部门: 公司名是部门名称 + SysDept dept = new SysDept(); + dept.setTenantId(tenantId); + dept.setDeptName(bo.getCompanyName()); + dept.setParentId(Constants.TOP_PARENT_ID); + dept.setAncestors(Constants.TOP_PARENT_ID.toString()); + deptMapper.insert(dept); + Long deptId = dept.getDeptId(); + + // 角色和部门关联表 + SysRoleDept roleDept = new SysRoleDept(); + roleDept.setRoleId(roleId); + roleDept.setDeptId(deptId); + roleDeptMapper.insert(roleDept); + + // 创建系统用户 + SysUser user = new SysUser(); + user.setTenantId(tenantId); + user.setUserName(bo.getUsername()); + user.setNickName(bo.getUsername()); + user.setPassword(BCrypt.hashpw(bo.getPassword())); + user.setDeptId(deptId); + userMapper.insert(user); + //新增系统用户后,默认当前用户为部门的负责人 + SysDept sd = new SysDept(); + sd.setLeader(user.getUserId()); + sd.setDeptId(deptId); + deptMapper.updateById(sd); + + // 用户和角色关联表 + SysUserRole userRole = new SysUserRole(); + userRole.setUserId(user.getUserId()); + userRole.setRoleId(roleId); + userRoleMapper.insert(userRole); + + String defaultTenantId = TenantConstants.DEFAULT_TENANT_ID; + List dictTypeList = dictTypeMapper.selectList( + new LambdaQueryWrapper().eq(SysDictType::getTenantId, defaultTenantId)); + List dictDataList = dictDataMapper.selectList( + new LambdaQueryWrapper().eq(SysDictData::getTenantId, defaultTenantId)); + for (SysDictType dictType : dictTypeList) { + dictType.setDictId(null); + dictType.setTenantId(tenantId); + } + for (SysDictData dictData : dictDataList) { + dictData.setDictCode(null); + dictData.setTenantId(tenantId); + } + dictTypeMapper.insertBatch(dictTypeList); + dictDataMapper.insertBatch(dictDataList); + + List sysConfigList = configMapper.selectList( + new LambdaQueryWrapper().eq(SysConfig::getTenantId, defaultTenantId)); + for (SysConfig config : sysConfigList) { + config.setConfigId(null); + config.setTenantId(tenantId); + } + configMapper.insertBatch(sysConfigList); + + // 未开启工作流不执行下方操作 + if (SpringUtils.getProperty("warm-flow.enabled", Boolean.class, false)) { + WorkflowService workflowService = SpringUtils.getBean(WorkflowService.class); + // 新增租户流程定义 + workflowService.syncDef(tenantId); + } + return true; + } + + /** + * 生成租户id + * + * @param tenantIds 已有租户id列表 + * @return 租户id + */ + private String generateTenantId(List tenantIds) { + // 随机生成6位 + String numbers = RandomUtil.randomNumbers(6); + // 判断是否存在,如果存在则重新生成 + if (tenantIds.contains(numbers)) { + return generateTenantId(tenantIds); + } + return numbers; + } + + /** + * 根据租户菜单创建租户角色 + * + * @param tenantId 租户编号 + * @param packageId 租户套餐id + * @return 角色id + */ + private Long createTenantRole(String tenantId, Long packageId) { + // 获取租户套餐 + SysTenantPackage tenantPackage = tenantPackageMapper.selectById(packageId); + if (ObjectUtil.isNull(tenantPackage)) { + throw new ServiceException("套餐不存在"); + } + // 获取套餐菜单id + List menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); + + // 创建角色 + SysRole role = new SysRole(); + role.setTenantId(tenantId); + role.setRoleName(TenantConstants.TENANT_ADMIN_ROLE_NAME); + role.setRoleKey(TenantConstants.TENANT_ADMIN_ROLE_KEY); + role.setRoleSort(1); + role.setStatus(SystemConstants.NORMAL); + roleMapper.insert(role); + Long roleId = role.getRoleId(); + + // 创建角色菜单 + List roleMenus = new ArrayList<>(menuIds.size()); + menuIds.forEach(menuId -> { + SysRoleMenu roleMenu = new SysRoleMenu(); + roleMenu.setRoleId(roleId); + roleMenu.setMenuId(menuId); + roleMenus.add(roleMenu); + }); + roleMenuMapper.insertBatch(roleMenus); + + return roleId; + } + + /** + * 修改租户 + */ + @CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId") + @Override + public Boolean updateByBo(SysTenantBo bo) { + SysTenant tenant = MapstructUtils.convert(bo, SysTenant.class); + tenant.setTenantId(null); + tenant.setPackageId(null); + return baseMapper.updateById(tenant) > 0; + } + + /** + * 修改租户状态 + * + * @param bo 租户信息 + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId") + @Override + public int updateTenantStatus(SysTenantBo bo) { + SysTenant tenant = new SysTenant(); + tenant.setId(bo.getId()); + tenant.setStatus(bo.getStatus()); + return baseMapper.updateById(tenant); + } + + /** + * 校验租户是否允许操作 + * + * @param tenantId 租户ID + */ + @Override + public void checkTenantAllowed(String tenantId) { + if (ObjectUtil.isNotNull(tenantId) && TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) { + throw new ServiceException("不允许操作管理租户"); + } + } + + /** + * 批量删除租户 + */ + @CacheEvict(cacheNames = CacheNames.SYS_TENANT, allEntries = true) + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // 做一些业务上的校验,判断是否需要校验 + if (ids.contains(TenantConstants.SUPER_ADMIN_ID)) { + throw new ServiceException("超管租户不能删除"); + } + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 校验企业名称是否唯一 + */ + @Override + public boolean checkCompanyNameUnique(SysTenantBo bo) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysTenant::getCompanyName, bo.getCompanyName()) + .ne(ObjectUtil.isNotNull(bo.getTenantId()), SysTenant::getTenantId, bo.getTenantId())); + return !exist; + } + + /** + * 校验账号余额 + */ + @Override + public boolean checkAccountBalance(String tenantId) { + SysTenantVo tenant = SpringUtils.getAopProxy(this).queryByTenantId(tenantId); + // 如果余额为-1代表不限制 + if (tenant.getAccountCount() == -1) { + return true; + } + Long userNumber = userMapper.selectCount(new LambdaQueryWrapper<>()); + // 如果余额大于0代表还有可用名额 + return tenant.getAccountCount() - userNumber > 0; + } + + /** + * 校验有效期 + */ + @Override + public boolean checkExpireTime(String tenantId) { + SysTenantVo tenant = SpringUtils.getAopProxy(this).queryByTenantId(tenantId); + // 如果未设置过期时间代表不限制 + if (ObjectUtil.isNull(tenant.getExpireTime())) { + return true; + } + // 如果当前时间在过期时间之前则通过 + return new Date().before(tenant.getExpireTime()); + } + + /** + * 同步租户套餐 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean syncTenantPackage(String tenantId, Long packageId) { + SysTenantPackage tenantPackage = tenantPackageMapper.selectById(packageId); + List roles = roleMapper.selectList( + new LambdaQueryWrapper().eq(SysRole::getTenantId, tenantId)); + List roleIds = new ArrayList<>(roles.size() - 1); + List menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); + roles.forEach(item -> { + if (TenantConstants.TENANT_ADMIN_ROLE_KEY.equals(item.getRoleKey())) { + List roleMenus = new ArrayList<>(menuIds.size()); + menuIds.forEach(menuId -> { + SysRoleMenu roleMenu = new SysRoleMenu(); + roleMenu.setRoleId(item.getRoleId()); + roleMenu.setMenuId(menuId); + roleMenus.add(roleMenu); + }); + roleMenuMapper.delete(new LambdaQueryWrapper().eq(SysRoleMenu::getRoleId, item.getRoleId())); + roleMenuMapper.insertBatch(roleMenus); + } else { + roleIds.add(item.getRoleId()); + } + }); + if (!roleIds.isEmpty()) { + roleMenuMapper.delete( + new LambdaQueryWrapper().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds)); + } + return true; + } + + /** + * 同步租户字典 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void syncTenantDict() { + // 查询超管 所有字典数据 + List dictTypeList = new ArrayList<>(); + List dictDataList = new ArrayList<>(); + TenantHelper.ignore(() -> { + dictTypeList.addAll(dictTypeMapper.selectList()); + dictDataList.addAll(dictDataMapper.selectList()); + }); + Map> typeMap = StreamUtils.groupByKey(dictTypeList, TenantEntity::getTenantId); + Map>> typeDataMap = StreamUtils.groupBy2Key( + dictDataList, TenantEntity::getTenantId, SysDictData::getDictType); + // 管理租户字典数据 + List defaultTypeMap = typeMap.get(TenantConstants.DEFAULT_TENANT_ID); + Map> defaultTypeDataMap = typeDataMap.get(TenantConstants.DEFAULT_TENANT_ID); + + // 获取所有租户编号 + List tenantIds = baseMapper.selectObjs( + new LambdaQueryWrapper().select(SysTenant::getTenantId) + .eq(SysTenant::getStatus, SystemConstants.NORMAL), x -> { + return Convert.toStr(x); + }); + List saveTypeList = new ArrayList<>(); + List saveDataList = new ArrayList<>(); + Set set = new HashSet<>(); + for (String tenantId : tenantIds) { + if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) { + continue; + } + for (SysDictType dictType : defaultTypeMap) { + List typeList = StreamUtils.toList(typeMap.get(tenantId), SysDictType::getDictType); + List dataList = defaultTypeDataMap.get(dictType.getDictType()); + if (typeList.contains(dictType.getDictType())) { + List dataListTenant = typeDataMap.get(tenantId).get(dictType.getDictType()); + Map map = StreamUtils.toIdentityMap(dataListTenant, SysDictData::getDictValue); + for (SysDictData dictData : dataList) { + if (!map.containsKey(dictData.getDictValue())) { + SysDictData data = BeanUtil.toBean(dictData, SysDictData.class); + // 设置字典编码为 null + data.setDictCode(null); + data.setTenantId(tenantId); + data.setCreateTime(null); + data.setUpdateTime(null); + set.add(tenantId); + saveDataList.add(data); + } + } + } else { + SysDictType type = BeanUtil.toBean(dictType, SysDictType.class); + type.setDictId(null); + type.setTenantId(tenantId); + type.setCreateTime(null); + type.setUpdateTime(null); + set.add(tenantId); + saveTypeList.add(type); + if (CollUtil.isNotEmpty(dataList)) { + // 筛选出 dictType 对应的 data + for (SysDictData dictData : dataList) { + SysDictData data = BeanUtil.toBean(dictData, SysDictData.class); + // 设置字典编码为 null + data.setDictCode(null); + data.setTenantId(tenantId); + data.setCreateTime(null); + data.setUpdateTime(null); + set.add(tenantId); + saveDataList.add(data); + } + } + } + } + } + TenantHelper.ignore(() -> { + if (CollUtil.isNotEmpty(saveTypeList)) { + dictTypeMapper.insertBatch(saveTypeList); + } + if (CollUtil.isNotEmpty(saveDataList)) { + dictDataMapper.insertBatch(saveDataList); + } + }); + for (String tenantId : set) { + TenantHelper.dynamic(tenantId, () -> CacheUtils.clear(CacheNames.SYS_DICT)); + } + } + +} diff --git a/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000..4081170 --- /dev/null +++ b/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -0,0 +1,722 @@ +package org.dromara.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.CacheNames; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.UserService; +import org.dromara.common.core.utils.*; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.*; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysPostVo; +import org.dromara.system.domain.vo.SysRoleVo; +import org.dromara.system.domain.vo.SysUserExportVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.mapper.*; +import org.dromara.system.service.ISysUserService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 用户 业务层处理 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SysUserServiceImpl implements ISysUserService, UserService { + + private final SysUserMapper baseMapper; + private final SysDeptMapper deptMapper; + private final SysRoleMapper roleMapper; + private final SysPostMapper postMapper; + private final SysUserRoleMapper userRoleMapper; + private final SysUserPostMapper userPostMapper; + + @Override + public TableDataInfo selectPageUserList(SysUserBo user, PageQuery pageQuery) { + Page page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user)); + return TableDataInfo.build(page); + } + + /** + * 根据条件分页查询用户列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + public List selectUserExportList(SysUserBo user) { + return baseMapper.selectUserExportList(this.buildQueryWrapper(user)); + } + + private Wrapper buildQueryWrapper(SysUserBo user) { + Map params = user.getParams(); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("u.del_flag", SystemConstants.NORMAL) + .eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId()) + .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) + .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) + .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "u.create_time", params.get("beginTime"), params.get("endTime")) + .and(ObjectUtil.isNotNull(user.getDeptId()), w -> { + List deptList = deptMapper.selectListByParentId(user.getDeptId()); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); + ids.add(user.getDeptId()); + w.in("u.dept_id", ids); + }).orderByAsc("u.user_id"); + if (StringUtils.isNotBlank(user.getExcludeUserIds())) { + wrapper.notIn("u.user_id", StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong)); + } + return wrapper; + } + + /** + * 根据条件分页查询已分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + public TableDataInfo selectAllocatedList(SysUserBo user, PageQuery pageQuery) { + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("u.del_flag", SystemConstants.NORMAL) + .eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId()) + .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) + .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) + .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) + .orderByAsc("u.user_id"); + Page page = baseMapper.selectAllocatedList(pageQuery.build(), wrapper); + return TableDataInfo.build(page); + } + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + public TableDataInfo selectUnallocatedList(SysUserBo user, PageQuery pageQuery) { + List userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId()); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("u.del_flag", SystemConstants.NORMAL) + .and(w -> w.ne("r.role_id", user.getRoleId()).or().isNull("r.role_id")) + .notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds) + .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) + .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) + .orderByAsc("u.user_id"); + Page page = baseMapper.selectUnallocatedList(pageQuery.build(), wrapper); + return TableDataInfo.build(page); + } + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + @Override + public SysUserVo selectUserByUserName(String userName) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getUserName, userName)); + } + + /** + * 通过手机号查询用户 + * + * @param phonenumber 手机号 + * @return 用户对象信息 + */ + @Override + public SysUserVo selectUserByPhonenumber(String phonenumber) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhonenumber, phonenumber)); + } + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + @Override + public SysUserVo selectUserById(Long userId) { + SysUserVo user = baseMapper.selectVoById(userId); + if (ObjectUtil.isNull(user)) { + return user; + } + user.setRoles(roleMapper.selectRolesByUserId(user.getUserId())); + return user; + } + + /** + * 通过用户ID串查询用户 + * + * @param userIds 用户ID串 + * @param deptId 部门id + * @return 用户列表信息 + */ + @Override + public List selectUserByIds(List userIds, Long deptId) { + return baseMapper.selectUserList(new LambdaQueryWrapper() + .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName) + .eq(SysUser::getStatus, SystemConstants.NORMAL) + .eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId) + .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds)); + } + + /** + * 查询用户所属角色组 + * + * @param userId 用户ID + * @return 结果 + */ + @Override + public String selectUserRoleGroup(Long userId) { + List list = roleMapper.selectRolesByUserId(userId); + if (CollUtil.isEmpty(list)) { + return StringUtils.EMPTY; + } + return StreamUtils.join(list, SysRoleVo::getRoleName); + } + + /** + * 查询用户所属岗位组 + * + * @param userId 用户ID + * @return 结果 + */ + @Override + public String selectUserPostGroup(Long userId) { + List list = postMapper.selectPostsByUserId(userId); + if (CollUtil.isEmpty(list)) { + return StringUtils.EMPTY; + } + return StreamUtils.join(list, SysPostVo::getPostName); + } + + /** + * 校验用户名称是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public boolean checkUserNameUnique(SysUserBo user) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getUserName, user.getUserName()) + .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); + return !exist; + } + + /** + * 校验手机号码是否唯一 + * + * @param user 用户信息 + */ + @Override + public boolean checkPhoneUnique(SysUserBo user) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getPhonenumber, user.getPhonenumber()) + .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); + return !exist; + } + + /** + * 校验email是否唯一 + * + * @param user 用户信息 + */ + @Override + public boolean checkEmailUnique(SysUserBo user) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getEmail, user.getEmail()) + .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); + return !exist; + } + + /** + * 校验用户是否允许操作 + * + * @param userId 用户ID + */ + @Override + public void checkUserAllowed(Long userId) { + if (ObjectUtil.isNotNull(userId) && LoginHelper.isSuperAdmin(userId)) { + throw new ServiceException("不允许操作超级管理员用户"); + } + } + + /** + * 校验用户是否有数据权限 + * + * @param userId 用户id + */ + @Override + public void checkUserDataScope(Long userId) { + if (ObjectUtil.isNull(userId)) { + return; + } + if (LoginHelper.isSuperAdmin()) { + return; + } + if (baseMapper.countUserById(userId) == 0) { + throw new ServiceException("没有权限访问用户数据!"); + } + } + + /** + * 新增保存用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertUser(SysUserBo user) { + SysUser sysUser = MapstructUtils.convert(user, SysUser.class); + // 新增用户信息 + int rows = baseMapper.insert(sysUser); + user.setUserId(sysUser.getUserId()); + // 新增用户岗位关联 + insertUserPost(user, false); + // 新增用户与角色管理 + insertUserRole(user, false); + return rows; + } + + /** + * 注册用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public boolean registerUser(SysUserBo user, String tenantId) { + user.setCreateBy(0L); + user.setUpdateBy(0L); + SysUser sysUser = MapstructUtils.convert(user, SysUser.class); + sysUser.setTenantId(tenantId); + return baseMapper.insert(sysUser) > 0; + } + + /** + * 修改保存用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId") + @Transactional(rollbackFor = Exception.class) + public int updateUser(SysUserBo user) { + // 新增用户与角色管理 + insertUserRole(user, true); + // 新增用户与岗位管理 + insertUserPost(user, true); + SysUser sysUser = MapstructUtils.convert(user, SysUser.class); + // 防止错误更新后导致的数据误删除 + int flag = baseMapper.updateById(sysUser); + if (flag < 1) { + throw new ServiceException("修改用户" + user.getUserName() + "信息失败"); + } + return flag; + } + + /** + * 用户授权角色 + * + * @param userId 用户ID + * @param roleIds 角色组 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void insertUserAuth(Long userId, Long[] roleIds) { + insertUserRole(userId, roleIds, true); + } + + /** + * 修改用户状态 + * + * @param userId 用户ID + * @param status 帐号状态 + * @return 结果 + */ + @Override + public int updateUserStatus(Long userId, String status) { + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysUser::getStatus, status) + .eq(SysUser::getUserId, userId)); + } + + /** + * 修改用户基本信息 + * + * @param user 用户信息 + * @return 结果 + */ + @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId") + @Override + public int updateUserProfile(SysUserBo user) { + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName()) + .set(SysUser::getPhonenumber, user.getPhonenumber()) + .set(SysUser::getEmail, user.getEmail()) + .set(SysUser::getSex, user.getSex()) + .eq(SysUser::getUserId, user.getUserId())); + } + + /** + * 修改用户头像 + * + * @param userId 用户ID + * @param avatar 头像地址 + * @return 结果 + */ + @Override + public boolean updateUserAvatar(Long userId, Long avatar) { + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysUser::getAvatar, avatar) + .eq(SysUser::getUserId, userId)) > 0; + } + + /** + * 重置用户密码 + * + * @param userId 用户ID + * @param password 密码 + * @return 结果 + */ + @Override + public int resetUserPwd(Long userId, String password) { + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysUser::getPassword, password) + .eq(SysUser::getUserId, userId)); + } + + /** + * 新增用户角色信息 + * + * @param user 用户对象 + * @param clear 清除已存在的关联数据 + */ + private void insertUserRole(SysUserBo user, boolean clear) { + this.insertUserRole(user.getUserId(), user.getRoleIds(), clear); + } + + /** + * 新增用户岗位信息 + * + * @param user 用户对象 + * @param clear 清除已存在的关联数据 + */ + private void insertUserPost(SysUserBo user, boolean clear) { + Long[] posts = user.getPostIds(); + if (ArrayUtil.isNotEmpty(posts)) { + if (clear) { + // 删除用户与岗位关联 + userPostMapper.delete(new LambdaQueryWrapper().eq(SysUserPost::getUserId, user.getUserId())); + } + // 新增用户与岗位管理 + List list = StreamUtils.toList(List.of(posts), postId -> { + SysUserPost up = new SysUserPost(); + up.setUserId(user.getUserId()); + up.setPostId(postId); + return up; + }); + userPostMapper.insertBatch(list); + } + } + + /** + * 新增用户角色信息 + * + * @param userId 用户ID + * @param roleIds 角色组 + * @param clear 清除已存在的关联数据 + */ + private void insertUserRole(Long userId, Long[] roleIds, boolean clear) { + if (ArrayUtil.isNotEmpty(roleIds)) { + List roleList = new ArrayList<>(List.of(roleIds)); + if (!LoginHelper.isSuperAdmin(userId)) { + roleList.remove(SystemConstants.SUPER_ADMIN_ID); + } + // 判断是否具有此角色的操作权限 + List roles = roleMapper.selectRoleList( + new QueryWrapper().in("r.role_id", roleList)); + if (CollUtil.isEmpty(roles)) { + throw new ServiceException("没有权限访问角色的数据"); + } + if (clear) { + // 删除用户与角色关联 + userRoleMapper.delete(new LambdaQueryWrapper().eq(SysUserRole::getUserId, userId)); + } + // 新增用户与角色管理 + List list = StreamUtils.toList(roleList, roleId -> { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + return ur; + }); + userRoleMapper.insertBatch(list); + } + } + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteUserById(Long userId) { + // 删除用户与角色关联 + userRoleMapper.delete(new LambdaQueryWrapper().eq(SysUserRole::getUserId, userId)); + // 删除用户与岗位表 + userPostMapper.delete(new LambdaQueryWrapper().eq(SysUserPost::getUserId, userId)); + // 防止更新失败导致的数据删除 + int flag = baseMapper.deleteById(userId); + if (flag < 1) { + throw new ServiceException("删除用户失败!"); + } + return flag; + } + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { + checkUserAllowed(userId); + checkUserDataScope(userId); + } + List ids = List.of(userIds); + // 删除用户与角色关联 + userRoleMapper.delete(new LambdaQueryWrapper().in(SysUserRole::getUserId, ids)); + // 删除用户与岗位表 + userPostMapper.delete(new LambdaQueryWrapper().in(SysUserPost::getUserId, ids)); + // 防止更新失败导致的数据删除 + int flag = baseMapper.deleteByIds(ids); + if (flag < 1) { + throw new ServiceException("删除用户失败!"); + } + return flag; + } + + /** + * 通过部门id查询当前部门所有用户 + * + * @param deptId 部门ID + * @return 用户信息集合信息 + */ + @Override + public List selectUserListByDept(Long deptId) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SysUser::getDeptId, deptId); + lqw.orderByAsc(SysUser::getUserId); + return baseMapper.selectVoList(lqw); + } + + /** + * 通过用户ID查询用户账户 + * + * @param userId 用户ID + * @return 用户账户 + */ + @Cacheable(cacheNames = CacheNames.SYS_USER_NAME, key = "#userId") + @Override + public String selectUserNameById(Long userId) { + SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getUserName).eq(SysUser::getUserId, userId)); + return ObjectUtils.notNullGetter(sysUser, SysUser::getUserName); + } + + /** + * 通过用户ID查询用户账户 + * + * @param userId 用户ID + * @return 用户账户 + */ + @Override + @Cacheable(cacheNames = CacheNames.SYS_NICKNAME, key = "#userId") + public String selectNicknameById(Long userId) { + SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getNickName).eq(SysUser::getUserId, userId)); + return ObjectUtils.notNullGetter(sysUser, SysUser::getNickName); + } + + /** + * 通过用户ID查询用户账户 + * + * @param userIds 用户ID 多个用逗号隔开 + * @return 用户账户 + */ + @Override + public String selectNicknameByIds(String userIds) { + List list = new ArrayList<>(); + for (Long id : StringUtils.splitTo(userIds, Convert::toLong)) { + String nickname = SpringUtils.getAopProxy(this).selectNicknameById(id); + if (StringUtils.isNotBlank(nickname)) { + list.add(nickname); + } + } + return String.join(StringUtils.SEPARATOR, list); + } + + /** + * 通过用户ID查询用户手机号 + * + * @param userId 用户id + * @return 用户手机号 + */ + @Override + public String selectPhonenumberById(Long userId) { + SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getPhonenumber).eq(SysUser::getUserId, userId)); + return ObjectUtils.notNullGetter(sysUser, SysUser::getPhonenumber); + } + + /** + * 通过用户ID查询用户邮箱 + * + * @param userId 用户id + * @return 用户邮箱 + */ + @Override + public String selectEmailById(Long userId) { + SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getEmail).eq(SysUser::getUserId, userId)); + return ObjectUtils.notNullGetter(sysUser, SysUser::getEmail); + } + + /** + * 通过用户ID查询用户列表 + * + * @param userIds 用户ids + * @return 用户列表 + */ + @Override + public List selectListByIds(List userIds) { + if (CollUtil.isEmpty(userIds)) { + return List.of(); + } + List list = baseMapper.selectVoList(new LambdaQueryWrapper() + .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber) + .eq(SysUser::getStatus, SystemConstants.NORMAL) + .in(SysUser::getUserId, userIds)); + return BeanUtil.copyToList(list, UserDTO.class); + } + + /** + * 通过角色ID查询用户ID + * + * @param roleIds 角色ids + * @return 用户ids + */ + @Override + public List selectUserIdsByRoleIds(List roleIds) { + if (CollUtil.isEmpty(roleIds)) { + return List.of(); + } + List userRoles = userRoleMapper.selectList( + new LambdaQueryWrapper().in(SysUserRole::getRoleId, roleIds)); + return StreamUtils.toList(userRoles, SysUserRole::getUserId); + } + + /** + * 通过角色ID查询用户 + * + * @param roleIds 角色ids + * @return 用户 + */ + @Override + public List selectUsersByRoleIds(List roleIds) { + if (CollUtil.isEmpty(roleIds)) { + return List.of(); + } + + // 通过角色ID获取用户角色信息 + List userRoles = userRoleMapper.selectList( + new LambdaQueryWrapper().in(SysUserRole::getRoleId, roleIds)); + + // 获取用户ID列表 + Set userIds = StreamUtils.toSet(userRoles, SysUserRole::getUserId); + + return selectListByIds(new ArrayList<>(userIds)); + } + + /** + * 通过部门ID查询用户 + * + * @param deptIds 部门ids + * @return 用户 + */ + @Override + public List selectUsersByDeptIds(List deptIds) { + if (CollUtil.isEmpty(deptIds)) { + return List.of(); + } + List list = baseMapper.selectVoList(new LambdaQueryWrapper() + .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber) + .eq(SysUser::getStatus, SystemConstants.NORMAL) + .in(SysUser::getDeptId, deptIds)); + return BeanUtil.copyToList(list, UserDTO.class); + } + + /** + * 通过岗位ID查询用户 + * + * @param postIds 岗位ids + * @return 用户 + */ + @Override + public List selectUsersByPostIds(List postIds) { + if (CollUtil.isEmpty(postIds)) { + return List.of(); + } + + // 通过岗位ID获取用户岗位信息 + List userPosts = userPostMapper.selectList( + new LambdaQueryWrapper().in(SysUserPost::getPostId, postIds)); + + // 获取用户ID列表 + Set userIds = StreamUtils.toSet(userPosts, SysUserPost::getUserId); + + return selectListByIds(new ArrayList<>(userIds)); + } + +} diff --git a/ruoyi-system/src/main/resources/mapper/package-info.md b/ruoyi-system/src/main/resources/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysClientMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysClientMapper.xml new file mode 100644 index 0000000..fd150ad --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysClientMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml new file mode 100644 index 0000000..e542a10 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml new file mode 100644 index 0000000..9057a0e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml new file mode 100644 index 0000000..6bcce51 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml new file mode 100644 index 0000000..6975da4 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml new file mode 100644 index 0000000..c64b551 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml new file mode 100644 index 0000000..9dd3f2e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml new file mode 100644 index 0000000..43f494d --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml new file mode 100644 index 0000000..5ef14ee --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml new file mode 100644 index 0000000..8c2c080 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml new file mode 100644 index 0000000..d9b25bd --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml new file mode 100644 index 0000000..322403f --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml new file mode 100644 index 0000000..1705bb2 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml new file mode 100644 index 0000000..4ef7b1e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + select distinct r.role_id, + r.role_name, + r.role_key, + r.role_sort, + r.data_scope, + r.menu_check_strictly, + r.dept_check_strictly, + r.status, + r.del_flag, + r.create_time, + r.remark + from sys_role r + left join sys_user_role sur on sur.role_id = r.role_id + left join sys_user u on u.user_id = sur.user_id + left join sys_dept d on u.dept_id = d.dept_id + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml new file mode 100644 index 0000000..f01dc5e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml new file mode 100644 index 0000000..baa4b59 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml new file mode 100644 index 0000000..0d96e13 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml new file mode 100644 index 0000000..79cf4c5 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml new file mode 100644 index 0000000..ded6fa8 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml new file mode 100644 index 0000000..e9f2496 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml new file mode 100644 index 0000000..bc52d1a --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/ruoyi-system/target/classes/META-INF/mps/autoMapper b/ruoyi-system/target/classes/META-INF/mps/autoMapper new file mode 100644 index 0000000..d9c48e8 --- /dev/null +++ b/ruoyi-system/target/classes/META-INF/mps/autoMapper @@ -0,0 +1,33 @@ +org.dromara.system.domain.bo.SysLogininforBo +org.dromara.system.domain.vo.SysNoticeVo +org.dromara.system.domain.bo.SysDictDataBo +org.dromara.system.domain.bo.SysNoticeBo +org.dromara.system.domain.vo.SysClientVo +org.dromara.system.domain.vo.SysConfigVo +org.dromara.system.domain.bo.SysOssBo +org.dromara.system.domain.vo.SysMenuVo +org.dromara.system.domain.vo.SysUserVo +org.dromara.system.domain.vo.SysDeptVo +org.dromara.system.domain.bo.SysDictTypeBo +org.dromara.system.domain.bo.SysTenantBo +org.dromara.system.domain.bo.SysOssConfigBo +org.dromara.system.domain.bo.SysMenuBo +org.dromara.system.domain.bo.SysDeptBo +org.dromara.system.domain.vo.SysOperLogVo +org.dromara.system.domain.vo.SysOssConfigVo +org.dromara.system.domain.vo.SysLogininforVo +org.dromara.system.domain.bo.SysSocialBo +org.dromara.system.domain.bo.SysTenantPackageBo +org.dromara.system.domain.vo.SysDictTypeVo +org.dromara.system.domain.bo.SysUserBo +org.dromara.system.domain.vo.SysOssVo +org.dromara.system.domain.vo.SysTenantPackageVo +org.dromara.system.domain.vo.SysSocialVo +org.dromara.system.domain.vo.SysTenantVo +org.dromara.system.domain.vo.SysRoleVo +org.dromara.system.domain.vo.SysDictDataVo +org.dromara.system.domain.bo.SysPostBo +org.dromara.system.domain.bo.SysRoleBo +org.dromara.system.domain.bo.SysClientBo +org.dromara.system.domain.bo.SysConfigBo +org.dromara.system.domain.vo.SysPostVo \ No newline at end of file diff --git a/ruoyi-system/target/classes/META-INF/mps/autoMappers b/ruoyi-system/target/classes/META-INF/mps/autoMappers new file mode 100644 index 0000000..800151c --- /dev/null +++ b/ruoyi-system/target/classes/META-INF/mps/autoMappers @@ -0,0 +1 @@ +org.dromara.system.domain.bo.SysOperLogBo \ No newline at end of file diff --git a/ruoyi-system/target/classes/io/github/linpeilie/AutoMapperConfig__2.class b/ruoyi-system/target/classes/io/github/linpeilie/AutoMapperConfig__2.class new file mode 100644 index 0000000000000000000000000000000000000000..b237881c69dbd916d968cf9d82506cfff5b0082e GIT binary patch literal 483 zcmZuu%T59@6g@>?6nvoKBhkdA3!{^`H724_Ljq#Zl`cq`xeg_zZQ2frewqtEz>hK( zaA62twD;zoM^F3x^Z5nf61x!!497ypnecpUs6LU?YS3PIflcQ zwpl#l#(A43KK^fh!LXj_kUe#oidcBUC5LQ$HP1P;g-UmurdR~q?)V(O4GfJD4Zu@vWy~D94e^3f+bkR U8ett9s9j+*z_%Q>QGdbCFOx@%od5s; literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/io/github/linpeilie/ConverterMapperAdapter__2.class b/ruoyi-system/target/classes/io/github/linpeilie/ConverterMapperAdapter__2.class new file mode 100644 index 0000000000000000000000000000000000000000..33fe3f695db98b8737b92c05fbd301fda8c6fe39 GIT binary patch literal 550 zcmaJ;%Sr=55UepVF)^C>I(SjMsh|U%1RoFtPfGY@jNC1t^I%)CFgSRRkN8tSWv`*qkses063CpP(M) dFok)EMHwQ~l-T&VfEE@e^~FhC`W9UV-T}Zrl+pkI literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/mapper/package-info.md b/ruoyi-system/target/classes/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-system/target/classes/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-system/target/classes/mapper/system/SysClientMapper.xml b/ruoyi-system/target/classes/mapper/system/SysClientMapper.xml new file mode 100644 index 0000000..fd150ad --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysClientMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysConfigMapper.xml b/ruoyi-system/target/classes/mapper/system/SysConfigMapper.xml new file mode 100644 index 0000000..e542a10 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysDeptMapper.xml b/ruoyi-system/target/classes/mapper/system/SysDeptMapper.xml new file mode 100644 index 0000000..9057a0e --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysDeptMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysDictDataMapper.xml b/ruoyi-system/target/classes/mapper/system/SysDictDataMapper.xml new file mode 100644 index 0000000..6bcce51 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysDictDataMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysDictTypeMapper.xml b/ruoyi-system/target/classes/mapper/system/SysDictTypeMapper.xml new file mode 100644 index 0000000..6975da4 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysDictTypeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysLogininforMapper.xml b/ruoyi-system/target/classes/mapper/system/SysLogininforMapper.xml new file mode 100644 index 0000000..c64b551 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysLogininforMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysMenuMapper.xml b/ruoyi-system/target/classes/mapper/system/SysMenuMapper.xml new file mode 100644 index 0000000..9dd3f2e --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysMenuMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysNoticeMapper.xml b/ruoyi-system/target/classes/mapper/system/SysNoticeMapper.xml new file mode 100644 index 0000000..43f494d --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysNoticeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysOperLogMapper.xml b/ruoyi-system/target/classes/mapper/system/SysOperLogMapper.xml new file mode 100644 index 0000000..5ef14ee --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysOperLogMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysOssConfigMapper.xml b/ruoyi-system/target/classes/mapper/system/SysOssConfigMapper.xml new file mode 100644 index 0000000..8c2c080 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysOssConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysOssMapper.xml b/ruoyi-system/target/classes/mapper/system/SysOssMapper.xml new file mode 100644 index 0000000..d9b25bd --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysOssMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysPostMapper.xml b/ruoyi-system/target/classes/mapper/system/SysPostMapper.xml new file mode 100644 index 0000000..322403f --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysPostMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysRoleDeptMapper.xml b/ruoyi-system/target/classes/mapper/system/SysRoleDeptMapper.xml new file mode 100644 index 0000000..1705bb2 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysRoleDeptMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysRoleMapper.xml b/ruoyi-system/target/classes/mapper/system/SysRoleMapper.xml new file mode 100644 index 0000000..4ef7b1e --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysRoleMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + select distinct r.role_id, + r.role_name, + r.role_key, + r.role_sort, + r.data_scope, + r.menu_check_strictly, + r.dept_check_strictly, + r.status, + r.del_flag, + r.create_time, + r.remark + from sys_role r + left join sys_user_role sur on sur.role_id = r.role_id + left join sys_user u on u.user_id = sur.user_id + left join sys_dept d on u.dept_id = d.dept_id + + + + + + + + + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/target/classes/mapper/system/SysRoleMenuMapper.xml new file mode 100644 index 0000000..f01dc5e --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysRoleMenuMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysSocialMapper.xml b/ruoyi-system/target/classes/mapper/system/SysSocialMapper.xml new file mode 100644 index 0000000..baa4b59 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysSocialMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysTenantMapper.xml b/ruoyi-system/target/classes/mapper/system/SysTenantMapper.xml new file mode 100644 index 0000000..0d96e13 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysTenantMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysTenantPackageMapper.xml b/ruoyi-system/target/classes/mapper/system/SysTenantPackageMapper.xml new file mode 100644 index 0000000..79cf4c5 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysTenantPackageMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml b/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml new file mode 100644 index 0000000..ded6fa8 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysUserPostMapper.xml b/ruoyi-system/target/classes/mapper/system/SysUserPostMapper.xml new file mode 100644 index 0000000..e9f2496 --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysUserPostMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-system/target/classes/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/target/classes/mapper/system/SysUserRoleMapper.xml new file mode 100644 index 0000000..bc52d1a --- /dev/null +++ b/ruoyi-system/target/classes/mapper/system/SysUserRoleMapper.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.class b/ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..4dff86c785ace2f793e072352d3e1009c2eab6b5 GIT binary patch literal 661 zcmb7C%}N6?5T4Z9we_zmcqw@E;KhK~wUt&Bgq4Ez)zN%{O`fczpwaCLBdjBG5#W(V;=b45J*CLQQkbs2B_FXtxk1!R%&w zdBontE*?5~&x+uSpiH1XVq->grZd`2M}oTuDg;g>(oDK%pVD0FLdaYS+F@4Akp!we znQ7*{5d>b6?>XY+cl>3tHu3mNsGV3R6di_+rKTy;)vn@JOrX|7Z@9RXd0=+>mjvfi z<^&oKUOTD8ogPao(_FN*M#r2)Z3!IDC@5A~XFPXwu0g0(;i#WvM&Rtne%szHl)j$D z4F(qhRQ6Vcq|NpFTAkgp_SJvzt1>JzL{b%KoDJh9uo2c~_*oE6QP@kc1=X3Y!FI5X X;NJ;rrPHHy@@ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..608505d3f020d8813d5357fd22c7254689e22ea8 GIT binary patch literal 3401 zcmd5;`EwLi5dJ3DBs(t<2?WBS2m-q~7%(7#C1^+j1U3mKA%fsB*_|u{yEDtoY%q$V z;*A$7-uD$e3#+Wb(khCdw93CpExUJSv$LsGD)^JNRnt5DzV7$BzwVy*=Rdz*2hfEd zBd9>7j4FX@)JSMJrA=yTMl;ju(D*4m=}M^CZJ36;M?z&ZHYTH1Ld>$$YRa~oLPov7A}pR|owTx9%TzN~TGc0Y(^Ui0 zK7Nr*w$#n_7EbKf$`|j5W+{*52*}dUrbUxo&f!o4d-o43AJO zGin772|Uc`nTE>^<$HP^6Awm2zZumu-k`I>^$0vWaw zf!$#m4_P)c1uQlafl;ua;EaIH7WHIt(6P*6-N|QMHgN^=Y*J4q;S~jE1s-8OIFb=p zbMp@49~F3vnczr@S_O{_Ji-3C-}`LavIm?rqn{LbioJ7Vm-GrQ2t0#leLP1uYGkP; zX9iE93wkwIFZAQ{0x#f2-$@Bv96cqhU#u4eUgqh?N9nN~8U=niyejY-k1sw-Nq-4% z$aquWEnJq+9Uiyy4$M(2JbVYV9L3O|&1EFWNz0tnZ5pW;qKO6ji7 z2(Q7Pr-k;_UEL-KA9AaN&hQr~nE9b^OP~pVzXO$ojdPgJ35<+bc{{1^GdTURAjrZ! zVJ_;p>^JjuK|=Fz-gK$m#tg?GuDVUrqPal>jn3av$gY#)Z~g?0EB&lxpH}HcW9ybn zQ(o<{vN_A7%SfC)zybQYZd_+&- z1Mo3Ep*M+ZpHO5hLKExf#p&UD_E}fa2v~Y9yXF_ z8EpTZ0PXG9f5GM(*yiCbUft!Pi{(8YdRXrB(9bgAVTk3hha)VHdN|JVK@S?sl!r9S zQy#J`a~>R)lOCp6p7U^?<& z#N~hpGfYI=RSt0>1T>ZrFpb(a>Hk2)HcHWUBBGO$vXh9|MQM*ydUsPgyC{u&=$h0` zMD!35y+lMG5wVYm*iS?pAR_vSh=WALAtE9{L<|rSgOt)CBH}O+F+493Ov!YCh*n$- z5fMRU&0pvw7ODy~)KwH{ms)H##;Of9R(((k vOfCCt0Hzy!pWg&NJ4jaWa>1vEx99U$7xKrYLjEf7ZQ%glQ3Cwl{sH(GJ8N>X literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController.class b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController.class new file mode 100644 index 0000000000000000000000000000000000000000..bd21495a2a6ab11580537b8e5d98fc2721f43cbe GIT binary patch literal 4303 zcmbtXX?xqo5q_7V1c`!WnYPs^Zk5E59i2ve#R+LUwG|&qXhjhnx~|*0Ai0uYk^lpM za+Kcpec$(eUrC$Dmi;{a*bjaBoAUHs02DzTiR^qKv9mL?GxN^O&i?n!JO2i73U_*t zK!=8;j!tw59CzFWqwG30(=`om+4E)1C^@$8I@PLljhbUyzT+BGW@%AQt<)&{cl@Yfw7wuD9yMk;A-RRMf($NcD;M6

E|)a9GL*NXwXOTz;?2JxW4iF>xOX;#v*=N*Buk=zY)$uz1a zam@P)&g^JNYWP;wn01}HbbU*DSq<+N*d1^OTW4I?T+UgZpTa&2>39ea3v`{dm`EdVy!5kaX7`AWQH=2zvs99G zU*KG1|9WF%vdY9ZpXM8OkktmU_Zl_n68Q;CYB;3Bz~fA-wu1$ng6y`m=0f$q5Th88uA=3Qh`#F{EHUt}uN<;DI*JTajY%9LAG6ot_~;~p(2r6+ZE1j5l(F6OOQq(Hihd*Du!A3+7-%gmm%wR~v^8)<=h=G@(xP}*)RxM~Rn%?3iv!22%@+x~T3nWLT z!>ldnxPtcy^s>P;6I0+|+@|(oiPujz-cMCF^SB!yP`#j5_86b*DSQamHGEiyiK4*h zR?etg_M&2ZQGL@6SJs>*$uPT2`X@KBW6Ls*Th@y*q=tDN3t%?K@|=NS&DI<1wMUVU zXV{47M8lIM6@j{rm*5f~uTcyu|E%0UOARaI^|hfye)uBFxyG3hT_1ocE)I&b@C=5eXg+Re%f<{eyl zt=lE4;DK1?g~WE*9^U>EE+}2F2_|~kUm3HSNFfb*^xl*{^z{W0t@_- z^cS7-EXU58^rcI$_C+2~+e@4HoX%C9TG6Q(7o;s+)0btM(qA=e#j-gZRpcf*}6{|s3RdK6ZFeWsjyB>}~6g=L(xy?Le$>yDgTaxE3)fM)v z8@3Or1KHQNjn)ZiP<@U-w=L|lrZO;uZ3RX-dg=H-fSbG@PLb)l&jJk&N)t{QO|CK zCPrx!yv%+PXW#y2c;s8lMgwTj86wS7ywUQOFSGsl`xe(nfzf(3#V6QnI(~>B_2Xab z7@L1IeALnw}@wj8+5=Y>4Y-A<}SLVCbz`*_Fe1;t?7%!{M1(uU>@w>frY> zUO^HcA-RL=PEr@fUWZtLmK$Hi4l?gv#oh!i-NnAExA2~siT_~t#0nmnn7o6>fK`kq za2JQUcQlh6Ool?MI3}=y6RkCqa|KTiCMQ=gHJH4O3$OC1BtFXDF{JprpKroPIjSDO z5Ds$n7>?j^WI1R)$FFNR%5mu!K1R-Cp_%wNKEYKtuH%#V6kQp>3-~lXLpO&ojnCq9 zbSTS_{`2?(Px>Nxb#jG!U*g`EN$G=l6Gt@kY1prESojKQNpgJ^U*}f>-@rHdpXS%M zNWF0l!o#=m9nu76#qUxJLxC!~x|uEI;;iZZDqFzLYn{Sox=71hu1KZJ3Hd4f-h$yk6hK`<$V zOb|@vMg~8|Pv}Gs`G1O^QJ<3kIcco`hkL)^UJ}2gOai}J3*xW2{tZ0}1NmG0j%x+V W@5%i){DWS;PD+ZDH*kx&HTZw2*!0=} literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController__Javadoc.json new file mode 100644 index 0000000..37c2c43 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/CacheController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 缓存监控\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"getInfo","paramTypes":[],"doc":" 获取缓存监控列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController.class b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController.class new file mode 100644 index 0000000000000000000000000000000000000000..25b8231bb72cf11b2e0b6fcfb92c4c1aa0ce03ff GIT binary patch literal 4952 zcmbVQYj@Pf8Ggo>mA!}<3^u{Jl%yp17L*3;q%07yG1$#w9NRHz+?Hr}2V1OG+DKZ1 zOVc#HruQ2uq3ySxwqM(G(j=s(?U#P)|45qthn}83BWZWFwrJNJ&Z5z1-gln&d2ciR z$A3QjD}Yn@buT*5si8|pH!=dJTyM=Nd2Yq@OvB&w16eVOt`m5!ZA;InxQ-RLp0Tv) z=iN2Sv7D=}H{JLyu-9%(FG+91DoTN8@+nIF=&Lc;qAHfj?LrTFHDq<{f-dm%P8A3| z=u2A`g9UR|1f4*&*(c{55mKG-`om8_M!r5Bdf4 zf8P1?M}K+y=zhMVK-)DV+$KAZWe<$py5Fs2QeftoRp2ZkvEFc4!8A< z88v>12n2S?8&%f}!Wn^Ahqt1O-fh!aGnN9+a@KN*nQ7bfeKk=wy?~L)=&@yBtOr5W znB{*ea5%9j{i^HuGB>iKLg--~kKj>(ff9ouNCd*v=3L1q(Zj2WJ@PL19GS~9BM#|! z437(B0{84S^M=3^!*i)_4gDXJwHP|_u#PA2q(EQMmZsD6p+M*G$VwK&7|}4QV+`X0 zhf?TkQ7O>jmIV$Ex3POaGy13w15XPasF-ER#4MV@Wh+?c$PY{>pv_Ol#3zZ4BPBVN z#WOgj;kb?oObU#o0QF>v8KA<;Hx|`c`I$Rp)=mEfxhZhu|7E(=jgPno`=FRpvE=_HF?a9W_t4r@r)v|A#MzP#ng`C6qQy)c~x`txqlv{y{e zQt2H}b_MGeiFv-IFzmRx<^;0M@+xpNP2IiAm_V;8RAG%`No^5sqpAt)xhR8mx3s|4 zP+>NCw5WHcG*JZK1Aiav^`;?%z?u{s555%4G zMALyMqDVR(LiDSu;$2nDUU$8+p#rgBIi;lj3o^K9R;#KqQn3+{B^FajX6EIEON+}4niTie9W&9kgBM&s;bG0FYsh%A;%*S# zL`uI(1KiR=h*MMNw6Npt-PZ5~F5HjSlZnQ;;##FBcT#AmW6zwM$d>^wunh&5$u zj_nrN%O}&CQ#)Slsqxq|&kCWsOtVMEhb0!{u(m`Cb}t2Hu}td1a;V{}OvSAt0<-r8 zCDq=v45(YIfAa3{K7Q-{Pk#TKf8BbM++JFqomr$2Mzp}VSvQPsok%TX>b%Fh#64~c zBP#+A#o;jLY@`(K{=Ds03U1lBARXzMfh^I-*(JB;73FzL)q#gw?jgYPj>Gl11DY>DV;T)k}dti zdDku1s>vh#_CtM(psK$q%aipgI^OYqwGHI7Y1>OyAbG`kTVQwfdg+SvyemZ~I3ZZ$ z=Nx)Hyh2D{!#h0AZ_|*5Uc)a19{t}-nc6IK_W10kHd*xiBor~3Ey?;HOB1ApX) z&JfoFA(rF3hfiQXCPRFqkzfPgKm*?ZR`CS_*o7=D{~~3-L`^z3j%KcKCV_pG9~I_N zPQOYq(cMDf19cy+ zp-goOPq*MpokzQYsmWty3qA*K15*{RQC1V2@Hi0gF-~9#V2*FfZ@U$~yZE%g2RPD% zr>>eRFnZ}|<#_a>ST%>b9^B$hPgC34f zU5?R2uI>-rx(JOs?j`?&jGksV4mF4y!X~~@B0cxm`^{z5BW}8@gx3j Q;TL?%a&#Ma@GBhrFM05!&;S4c literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController__Javadoc.json new file mode 100644 index 0000000..6960fad --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysLogininforController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问记录\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysLogininforBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 获取系统访问记录列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysLogininforBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出系统访问记录列表\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 批量删除登录日志\n @param infoIds 日志ids\n"},{"name":"clean","paramTypes":[],"doc":" 清理系统访问记录\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysOperlogController.class b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysOperlogController.class new file mode 100644 index 0000000000000000000000000000000000000000..95d2566a483e6a9126248cf2a6de765e23027f2b GIT binary patch literal 3702 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysUserOnlineController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysUserOnlineController__Javadoc.json new file mode 100644 index 0000000..b03594d --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/monitor/SysUserOnlineController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 在线用户监控\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["java.lang.String","java.lang.String"],"doc":" 获取在线用户监控列表\n\n @param ipaddr IP地址\n @param userName 用户名\n"},{"name":"forceLogout","paramTypes":["java.lang.String"],"doc":" 强退用户\n\n @param tokenId token值\n"},{"name":"getInfo","paramTypes":[],"doc":" 获取当前用户登录在线设备\n"},{"name":"remove","paramTypes":["java.lang.String"],"doc":" 强退当前在线设备\n\n @param tokenId token值\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController.class new file mode 100644 index 0000000000000000000000000000000000000000..90e80e1b750b1d1b95a786eb35d55fc539ae28da GIT binary patch literal 5728 zcmbtY33nS;8NE+-q*$3ciIbSRrH~fdcx$F5Yh%~NvK`k!v0ck?Lc)@f=Ea^^ny1W+ zoVcZIg;JnPfR+}@*0PqK6W|<3ov{1>en%kiCpdiX&1f{Ej9Uqgk0s5Ux7_c3_giNE z{-2wF1MoQB?LrD28FXscf;7WX;VkQ>BPxbt=S&{deQJKm&|v#UZrhyx%X4@kdcAb7AzXY zGM_X&W5&K9lzH76wqplFmjdep9c=^XK>nh!X6QA~D(iCf$X4_)Z2!l#xBvOVd$-^H z-R)~{-M;#K2D=&h6X*-9UyE43B(mtmhcdWZLm%#GS{HD^uatOMo$BgS^7knMz_5*9 zsS3waBMj&Jo5A_lWy4<93!Y=y%OjDIiL&9ka$wbPJQ5qpqRc&g#q+BAlk_1~K?4ii ztqR-aBLhoPA0O6mA3jniFt*;86YYyYnVS=$ z%nh5&7{pKp!x|pOeukY5LV_6#TG5}oWRze zvvK}5wdA0NL&}m`)igXVEy>~tj%M(fhGQ6M5>wm{@em|2EpyM$AJV70`va**)gw25 zT*H{$xr?S3Jj1KGQWl@oFpeBUkB=nCL+UoezNoM66k;$kFeBNRlx$2%5@uQ=VH!_n zFr(oFKE==-4^AnS3v#P-5q*YQiO*FIJgH$8a}1d^>7qGW+bex>hcA_kp3<;@0x@NB z3KM?X@>a;RmMLSxWf+S_depKlZ%j#SiJ`Ns@^R;cFiCdX^OntLYn38*RC*+z8)5~ z#j#kT4FuFuK_ZEyiWFFbNjoH00TPwW^D4zNJQ7+n^fwM>3?Y>#@jtSQLJ~Oja8)4*dg)gjF*U!F`~0?p=Ntlg)dpIMUEP`Z9xG> znj$mxe96{LzINb%?i!w0<+g5w_w|A?vBFEM^W3Ret}9i@utjN{yzifTtfU%>W4=}n zDr9a|){G01%*(=A)urHymTgA2p61?3qgs`U!0;?Yh4Vr zNZ1Z1aTd2=icYVapp{nWF@gIX9X-tH@$0n1D`JgAeJIvUwI2E%mTZc4MmsUJm|^;V z*)dT=O$oOSIXyX*pOQ@aGHRu&O{$izQP|QlPq>sQWUKZ;iD0Ty^`v(nO^h1(oJ9}k z36I|c)T`Yaq=y-MEuqTyS;rAD~pL+aL^y-6DFW-33udVd^EHrfD99^A22mJxs z;2*(;hHoI#f#1`03ZJ3RG|dG)VSSc9_xkhjIeeb3Xa&y0Q1>+yQKA(ljdrDI7&HKI z`cL5kmg)N*`n5unt#e>5E@CzOU8Y|Z*tEHXbD3au()S((=LYUdVfNvkojtpTH?Zdq zbfZJz>Q-2e(0h}k*p0^&zCnLsh;L7bZw~~j1YjGoWcejp>(EXb9qf;|G!nrs=%&Ox zNW%@x9%{73noB%h=D31&JRREb4E_27o+Y}Z4LO>ZqVMj&hI>=kz(<=&om8NE{h1-? zZhR46qTM8%EsQSeG=4dO#;-(Z{3@Q4M}qaz*Vkx=ue*32-=GV6`;uymyg(xi-^8~_ z4HE2eGE#!=84S=qn8I}oT!-EacrF6CCj{IRup9tBPh0tZ|F#1B5ILp6;fqZizJ!-) z{?qg?f$ow(Um2~|3B96HDP^KVSOzb>-Ph!uZLJqkl~Wo zUZ2TS~_} zq>g3kd7D1tN)AVSC7;31Nx@RdW5l;)JUjRv76*s^1Sa!EG>`3#K+lHIvnnr!(6?X* henAUm>iebI;8*JN*UFGyI_wp?{tf-V6N3Kje*s$vXU_lt literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController__Javadoc.json new file mode 100644 index 0000000..7865c26 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysClientController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 客户端管理\n\n @author Michelle.Chung\n @date 2023-06-18\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysClientBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询客户端管理列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysClientBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出客户端管理列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取客户端管理详细信息\n\n @param id 主键\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 新增客户端管理\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 修改客户端管理\n"},{"name":"changeStatus","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 状态修改\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除客户端管理\n\n @param ids 主键串\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController.class new file mode 100644 index 0000000000000000000000000000000000000000..f33cf350409e82deae78fc4d9c421a266995793e GIT binary patch literal 6503 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController__Javadoc.json new file mode 100644 index 0000000..1f7d105 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysConfigController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 参数配置 信息操作处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysConfigBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 获取参数配置列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysConfigBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出参数配置列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 根据参数编号获取详细信息\n\n @param configId 参数ID\n"},{"name":"getConfigKey","paramTypes":["java.lang.String"],"doc":" 根据参数键名查询参数值\n\n @param configKey 参数Key\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 新增参数配置\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 修改参数配置\n"},{"name":"updateByKey","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 根据参数键名修改参数配置\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除参数配置\n\n @param configIds 参数ID串\n"},{"name":"refreshCache","paramTypes":[],"doc":" 刷新参数缓存\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysDeptController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysDeptController.class new file mode 100644 index 0000000000000000000000000000000000000000..2d25d217811ae3e0c02824d652966431e6fa4be6 GIT binary patch literal 7863 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 R9o}MJn(g1?CjNj;{{v#(_nH6z literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictTypeController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictTypeController__Javadoc.json new file mode 100644 index 0000000..0cd11c0 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysDictTypeController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 数据字典信息\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询字典类型列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出字典类型列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 查询字典类型详细\n\n @param dictId 字典ID\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 新增字典类型\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 修改字典类型\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除字典类型\n\n @param dictIds 字典ID串\n"},{"name":"refreshCache","paramTypes":[],"doc":" 刷新字典缓存\n"},{"name":"optionselect","paramTypes":[],"doc":" 获取字典选择框列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController.class new file mode 100644 index 0000000000000000000000000000000000000000..5169ffb36a8db16bf2c791749ebe2e403acc8697 GIT binary patch literal 7674 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController__Javadoc.json new file mode 100644 index 0000000..8b19859 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysMenuController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单信息\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"getRouters","paramTypes":[],"doc":" 获取路由信息\n\n @return 路由信息\n"},{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 获取菜单列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 根据菜单编号获取详细信息\n\n @param menuId 菜单ID\n"},{"name":"treeselect","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 获取菜单下拉树列表\n"},{"name":"roleMenuTreeselect","paramTypes":["java.lang.Long"],"doc":" 加载对应角色菜单列表树\n\n @param roleId 角色ID\n"},{"name":"tenantPackageMenuTreeselect","paramTypes":["java.lang.Long"],"doc":" 加载对应租户套餐菜单列表树\n\n @param packageId 租户套餐ID\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 新增菜单\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 修改菜单\n"},{"name":"remove","paramTypes":["java.lang.Long"],"doc":" 删除菜单\n\n @param menuId 菜单ID\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysNoticeController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysNoticeController.class new file mode 100644 index 0000000000000000000000000000000000000000..de7677178a457e6be0432250d63360eff7ba6c98 GIT binary patch literal 5027 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 TtBthN*|WUA!q3$*=nwt_bjL%O literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssController__Javadoc.json new file mode 100644 index 0000000..e71028f --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysOssController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 文件上传 控制层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysOssBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询OSS对象存储列表\n"},{"name":"listByIds","paramTypes":["java.lang.Long[]"],"doc":" 查询OSS对象基于id串\n\n @param ossIds OSS对象ID串\n"},{"name":"upload","paramTypes":["org.springframework.web.multipart.MultipartFile"],"doc":" 上传OSS对象存储\n\n @param file 文件\n"},{"name":"download","paramTypes":["java.lang.Long","jakarta.servlet.http.HttpServletResponse"],"doc":" 下载OSS对象\n\n @param ossId OSS对象ID\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除OSS对象存储\n\n @param ossIds OSS对象ID串\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysPostController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysPostController.class new file mode 100644 index 0000000000000000000000000000000000000000..4f07a19e29dbaf7eede678301ea1c6989bb8b560 GIT binary patch literal 7013 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysRoleController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysRoleController__Javadoc.json new file mode 100644 index 0000000..f905f75 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysRoleController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色信息\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysRoleBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 获取角色信息列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysRoleBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出角色信息列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 根据角色编号获取详细信息\n\n @param roleId 角色ID\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 新增角色\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改保存角色\n"},{"name":"dataScope","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改保存数据权限\n"},{"name":"changeStatus","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 状态修改\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除角色\n\n @param roleIds 角色ID串\n"},{"name":"optionselect","paramTypes":["java.lang.Long[]"],"doc":" 获取角色选择框列表\n\n @param roleIds 角色ID串\n"},{"name":"allocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询已分配用户角色列表\n"},{"name":"unallocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询未分配用户角色列表\n"},{"name":"cancelAuthUser","paramTypes":["org.dromara.system.domain.SysUserRole"],"doc":" 取消授权用户\n"},{"name":"cancelAuthUserAll","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量取消授权用户\n\n @param roleId 角色ID\n @param userIds 用户ID串\n"},{"name":"selectAuthUserAll","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量选择用户授权\n\n @param roleId 角色ID\n @param userIds 用户ID串\n"},{"name":"roleDeptTreeselect","paramTypes":["java.lang.Long"],"doc":" 获取对应角色部门树列表\n\n @param roleId 角色ID\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController.class new file mode 100644 index 0000000000000000000000000000000000000000..8613e7572eb242662d15c18c2cbb3a5ab2a6a624 GIT binary patch literal 1526 zcmb7EYflqF6g^WO6{t{9Q9yhkYAMM0B!nV~kf}p0tM}rTw5}s!DiU-6@9gAR2lfNL!M&t*Vk?xtPF5fN+*?cWGjLVHoEy zl*VudBgil;^)9X&-#3~E!kLEDyycV^@S>?J{Ze{OX&Hv<(uL~VHHL}YLUB*D1^0xm z6HM0&BN)Y48rclSF>!)Cj`UP#6y2wmwEIOBxXt}Tk-6MSjaW1^$3rYdbP<=*n9SfZ zt}xt4h^T6;q+8q721Y(w`SQC zHt1oP+G%O0d|6h3qEMb`ZJcn*Xo}=4ry()Ev4`0}%{4IZYtqI8XmE|$NL?v-dZ z2}hIzZQ-@Z{{ZhK`#~`jhqaZOv_f~a~0O?N;mkU{jnS#CWa@8fl?T%7UiNh)N*Gu;$KZ%mz1C#8Mq@^ zvUZlGbVh@o{Ei;pSDl*)H|egMrfZM3Wq8|BD@E<=xPd;J1J$$VBZd=5d>Pcj!&wE^_oArI`hK^B=$hEK+M0OR>fVp;Cky&i}wv ze(^il*J$Mt`{jszvV)4*2_HFTxJT##+A_#unVO*?9ueG+z7HY;lO*<#`j6;++%@v# EAE?8)KmY&$ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController__Javadoc.json new file mode 100644 index 0000000..d4832ff --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysSocialController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系\n\n @author thiszhc\n @date 2023-06-16\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":[],"doc":" 查询社会化关系列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController.class new file mode 100644 index 0000000000000000000000000000000000000000..032213b6ce534a9b218ccad0b689db6ab9e6e17d GIT binary patch literal 9554 zcmcIpd3+Sr9sj*e$mSSA2qBy*S`-qH0R=1svAKZQ5MmOd#cG}GPLd(JGwaT5Bt=_~ zdQqvgp0!rgNwkuqB2_28X(KG-^wkn2xop>85L7Wm`WuoBZ<-Ci7dwE zm#5U^P`lEnwrZxuXxGA^-J`&z>2i-DyW2Myb-tMqBOW(&IX={*Segm!NmWijtjuL! zz&EL@$!|fI(i2mg6iaE*dkq1vT%svd!Kg$iYb&~D0*cnOZdC>qIb~@vnXj%Zrb(!1xTo~>%c%Got&v2gtv5-p&GjH)C3YGk0%h$j?%s7;Bh zn{^G*!0610#KD$Qs-;C?S}f6-v?RxUe&qgGXH?#&B5U348C5NG!piHiN|3`+iI&k> zjAq1@0TqcJQLGC!s~=CMh1540o#C~If$mjIIkbTV9Oi&->$94NlG`UT;c|SQ;pzGnGihG&PB6T0`fCX{|)((c9q3 z02nqk%Kd6A0T#8nbA$MT{MGt&unePR-dq~Ljn}eH@P(;?(bQ}nG#ExqRrFG-rzVM- zX&ob}#~$leVm!WgDZ@7jE$drc8-^MTM&||k zHkiY`#&N75^6nyu-a%WSlr7lSs?$=e6ykS6IoHC?_D*iLOSrXK@~~DJy^AgjlOjuegRyQXe)uUs-h|g zRpptB5YVEWJpp~KH`W??aTh`DBG0BZ{9g}?_=phSEqM9VHfGKM;=HYx|K)# z)e>F9!Ihgsdc+RPCM{wW({+qyrgz;kws()cB)#{p^!3AIH|s0}OhF+GDpb4T{P6+v(wu^J_F+v(|DgZjopweE=Mi)uLUA44~CvbWVUP zJ;CO+jwl_Oc;Rw)N%TRH&l;+D(z5fpFeX~F!bT$s@l#qgU2RLnd(@=pl#rvXMns8q zD@l!8(HShX`ZdJsYG24WWSyUnQM`K)rnNy5g2@D(25PYF9 z7FWA9Q-h=Gb=?4=q9g)lO>0D#qw3(=EAD%_Q)%SwPY0?LpJ$_e#W;orBp!07%!LI75j{@~p|3 zJ3&WR`7N8V$pT-vI0+Fm`n*jF*_fz1$zMMG=j zI3#-z$)1X`V}WVuD|r+2%{0Gn#EFu}?{+PE6{C~Q=MU3d7%@aWM;M;V>w-^rys-*zkW zca_5X6uSao^8zIb3%5-m2~TWjh@FfMFfxF&cZv*7vEBmeXF&f6Dvtx7lXb%R-G&ww zq5OHK8h2XR0TzSy&mIVV;QbP`hX@(Yi;mE-;}* zusds2xjq_QpEOd5W9||})g3Cr+_V~u=n&Qws!pXxm*h{cT7|2Gl? z12l*1Gb$G~HMcf%OWI+SPepAKCys1UE#jnPf|dA5;zX>|98Xx>yOX2#k-~0`Q7-NB z&aZwd?W!j7%jwz~ZSXR9-Zu(?mY60xd&}E1o93x}19TdI@>O=dYiaUxrR2zMoO7f2ioDD7BTO{m*kvXM^u~HUd1!0C?9+t65xE9DB#Wj5p zCkN;H7#ri}ah(#ej3iF`cYCAKnP>~$py<(E$DSFq{)Qqe0abN^7xX220g zp4&He`^b1lq_2NGed}uNM*rLTF6fU6s_#UF$ z@xKUjiB{4b_&?8{M|aX)_=Xj9H+@*Vm*^h)2v*#S(UK5`2?InQ#b1c-quuyC1B>s+ zXck#ZxR5i?U^os zavGsgNaL!3$42mBoA=ohnD>y!yoZVZ9t;0hw;tXiS)FkM%g#MbpSN+NDJL#)754lg`RW`L%4LKhAfpI8ltAFf$T{#sZPmgZcWv0F93JG}d*u|E9xAE4 zN)RqcXN2C1vVQF_y)R3(Hsy@MSkI!W9j58fgI90c@N*m!I3z1MKy44y3NK}Aw7;&s z;3*`(fj&Fvw~q7II)PeRdysCZU4-(-i?i1Y3p`O;>UyCR@mmB*PQFc|3i=%u@}b|O zB!zgJgl8UK+79ciX!uP-6@2}Xx?soo0f5$fV^FQdHCjE>4jR~hwA-u|15i6zwHib=P ZRpNWK^L-}1&%wM>%$dthX7gy)e*o#J8z%q& literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController__Javadoc.json new file mode 100644 index 0000000..a024409 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户管理\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysTenantBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询租户列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysTenantBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出租户列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取租户详细信息\n\n @param id 主键\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 新增租户\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 修改租户\n"},{"name":"changeStatus","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 状态修改\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除租户\n\n @param ids 主键串\n"},{"name":"dynamicTenant","paramTypes":["java.lang.String"],"doc":" 动态切换租户\n\n @param tenantId 租户ID\n"},{"name":"dynamicClear","paramTypes":[],"doc":" 清除动态租户\n"},{"name":"syncTenantPackage","paramTypes":["java.lang.String","java.lang.Long"],"doc":" 同步租户套餐\n\n @param tenantId 租户id\n @param packageId 套餐id\n"},{"name":"syncTenantDict","paramTypes":[],"doc":" 同步租户字典\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController.class new file mode 100644 index 0000000000000000000000000000000000000000..ca3612aed4c4d66d5be673d56364dc65f0aa7b81 GIT binary patch literal 7350 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 QE637&{u};*e__@C0I(X49RL6T literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController__Javadoc.json new file mode 100644 index 0000000..c261fa5 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysTenantPackageController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐管理\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询租户套餐列表\n"},{"name":"selectList","paramTypes":[],"doc":" 查询租户套餐下拉选列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出租户套餐列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取租户套餐详细信息\n\n @param packageId 主键\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 新增租户套餐\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 修改租户套餐\n"},{"name":"changeStatus","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 状态修改\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除租户套餐\n\n @param packageIds 主键串\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController.class b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController.class new file mode 100644 index 0000000000000000000000000000000000000000..25f94ffe98d316aadfe36f201ddf9461fda772d6 GIT binary patch literal 16032 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 azfV-ZYn<69WA;3(4`RhBfdzp&s{Vh1Ba=D+ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController__Javadoc.json new file mode 100644 index 0000000..ed05485 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/controller/system/SysUserController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户信息\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 获取用户列表\n"},{"name":"export","paramTypes":["org.dromara.system.domain.bo.SysUserBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出用户列表\n"},{"name":"importData","paramTypes":["org.springframework.web.multipart.MultipartFile","boolean"],"doc":" 导入数据\n\n @param file 导入文件\n @param updateSupport 是否更新已存在数据\n"},{"name":"importTemplate","paramTypes":["jakarta.servlet.http.HttpServletResponse"],"doc":" 获取导入模板\n"},{"name":"getInfo","paramTypes":[],"doc":" 获取用户信息\n\n @return 用户信息\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 根据用户编号获取详细信息\n\n @param userId 用户ID\n"},{"name":"add","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 新增用户\n"},{"name":"edit","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 修改用户\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除用户\n\n @param userIds 角色ID串\n"},{"name":"optionselect","paramTypes":["java.lang.Long[]","java.lang.Long"],"doc":" 根据用户ID串批量获取用户基础信息\n\n @param userIds 用户ID串\n @param deptId 部门ID\n"},{"name":"resetPwd","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 重置密码\n"},{"name":"changeStatus","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 状态修改\n"},{"name":"authRole","paramTypes":["java.lang.Long"],"doc":" 根据用户编号获取授权角色\n\n @param userId 用户ID\n"},{"name":"insertAuthRole","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 用户授权角色\n\n @param userId 用户Id\n @param roleIds 角色ID串\n"},{"name":"deptTree","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 获取部门树列表\n"},{"name":"listByDept","paramTypes":["java.lang.Long"],"doc":" 获取部门下的所有用户信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysCache.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysCache.class new file mode 100644 index 0000000000000000000000000000000000000000..b9487f73549a7a087c3a6f007455a557b04645f6 GIT binary patch literal 3974 zcma)9-*XdH6#h2Z&2G{yDS;Lu6rmPqleQ65v?*1f@}tleq)-%4*``aoG}*1mmKkPz z@x}4U8J~2V@xd3Fad=Qh(BZ++7o72L67jotH_4`nr89K*+;hME?z!JN_uTOJzfXP# zFp0GkVu-cXghz|`f7%&tdi4?kYm?pZh zO~HUyT`nwDy^2+}3blJR->wvvIC9*={Jq+gRa&tXBunBwXH{rtW}3^)`&GwXo)DBh zCbkPcLqadu_k?qYiJiiklFkLIylxA3pNU<dD;SOj zR`Mzp&n=X^s$E$3opP-ZEPYkj3iPVIR<=rv?)*@Dcw6xdw}VoQ^ni&0ydrnyp8jOr zDl6!Xt`O)vF??Ns51KfH!wSr0+n2%xg6$mYNFKwmiJTx$*n+txC`L?-3W}~e1%(v; zf{9m!zq{_2T8f#YCSDUWNzPoBa*C>W!^APX$+%an+RBu-L}ge3(;3#yxQQYr6zr;4 ztM-)VmMs68;}hi8e9QHz=FR91!xXp6vlUN=jVn03CHmn71!@p^dd6|>x%JATUAAIe8`3_|jXQu2`7QNNNS=+U%mTxaH0<+dqCM|UpsxFwj>M)i9 z3!pxd1;Dg(9HgB`$ZI{FVR0(ZJb%TmD%d6z8jPIfw48`~x|$qCEWy@sTO5sLmQb_9 zIqqF=)egH&a9Yk-CEu$u7vDtdB?Jbf=PY-rY}Z(d-s<|=M0?3ZJS`tyxwmF_fZvGV z>n$hZ3Mr?dm682&KqVWtR8ourB`1|(W^CGJolcdlTFtKM zVAng?CP}BA>Tnh8+Z@Uy2eRM*+gFSoN#&Dw5v`cGL*$#+hJ5p$;5!W#F^+S7lB3V~ zj`Mvu_bZfKMt_8)e5U0yBcHvwyl{^^LhsL#=xsg+VDLG}1$S`i-RMC-`sm$@gAC@7 z=-zmTi2VUQPT(X*Tu6q;yOWj(D27wClOk%+0U6y?7~S`zSLqwyJi5&8jQ$&5l0oJ} zGo2fKgiJHuL%ghk;STZUFoZlC{|MgVg&|_j1&cOf9&f}vE=3hWkBi%wdlS)j$7S@} zY3}5oA~zrCTi{4+R?Gc@$)Ufk>ug>I)E|NJ2nS<%*PF zV`pOhwJLY6Gktoi^y2U|=(o4gPj{w|6x`;~i{fd}?`)$#-+URPpNAcwSSn;{QymUkpB~@Z=uB>Ju2kM69NO+-LrMV+9rqLI}F$Ou7t)`)A1zraOWD#c#K zC0ZIWHr}I^KpAInnU;IV3auo*<`3+vv{G1L9LJE>jeoFBN9q~+bj0}2 zP@Z9TU?%^^tXJ=a4GB`k59RQ1j5By~I5d$NvFB(5iJlFuv1hRhvFB6bGlheVXM;ay zNyDS3e9pH{*jmrTadlEAd2i3e3R7(K&{34gw*iixZm&KM%`!PHn$lT*yO z{K&{^^{FGpgq%t=rdSF5YH#P{oeN?KHxfq$*YG|!qA@)m(27y++qlln#i`FMZqQO$ z0!ML^mPX7jd`K%Hlky{s=X9t{ilQ(PP?YEVusMziM=!KGppH>nT_G$Hfi;mEy&+g{ z1vl{>CiuyQ-t|$V$DZK+#P!i9QX|s9zcKzDdBV#I8=G!W4#9oW7pmCW75RVLAoEm~ zf{?j?v#Yh)Ec+-gFFJq%=s8@!Q$KCf{XlH!5xlLv{sp7583|! DCW+PI literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysCache__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysCache__Javadoc.json new file mode 100644 index 0000000..e95bf1c --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysCache__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 缓存信息\n\n @author Lion Li\n","fields":[{"name":"cacheName","doc":" 缓存名称\n"},{"name":"cacheKey","doc":" 缓存键名\n"},{"name":"cacheValue","doc":" 缓存内容\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysClient.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysClient.class new file mode 100644 index 0000000000000000000000000000000000000000..f5a9fa5349ba1cb0a4f4287dbf226636f8e933e2 GIT binary patch literal 6730 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 aP&kb*9^m8p6JH45_7eCG23hXMec%-a(j*iB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysClient__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysClient__Javadoc.json new file mode 100644 index 0000000..70717de --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysClient__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 授权管理对象 sys_client\n\n @author Michelle.Chung\n @date 2023-05-15\n","fields":[{"name":"id","doc":" id\n"},{"name":"clientId","doc":" 客户端id\n"},{"name":"clientKey","doc":" 客户端key\n"},{"name":"clientSecret","doc":" 客户端秘钥\n"},{"name":"grantType","doc":" 授权类型\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"activeTimeout","doc":" token活跃超时时间\n"},{"name":"timeout","doc":" token固定超时时间\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"},{"name":"delFlag","doc":" 删除标志(0代表存在 1代表删除)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysConfig.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..cf18877d48c97dc8d336cd2b48bb294a78567506 GIT binary patch literal 4646 zcmb_gO>-Pq6+KUyneLhC8GXcG<1ZpdN+gY>At8LEWq}i6$HJ0gEF%*;;IuRysjZoA zWx7Wo2nk8ZCM$|nie$qkE~;DwR1v2t3o2|(6-!q90amQo6T*4@dU|@sU6H7wO0B-{ z-t$i1zVE#ITKemMKKT=X1-w(h00uQ=3}lfLsCuofTD|2pt(H~W^qNi2tp&DgxdBHl zyLLUaFS>yf>gmD?pAHtbGPOtVcEbCh6M@=w`w(QfzbqVEoeCrcGSQl5}Q}p zEB3x*IBMXS^cIzO-D2RzZ<$w88|K7xt7fu>=cMRYv4aKj04JV)wn%ja9ysUa$MNzS?;P`TEoo}2c%<2xG-`&rlZ0xNJ>9D&(oZi3o| zUaFc5}mSg?OoB zZ_{e5TP;V2UCw2Tt zvc{o|r`B1<6+77W>Q~tYns#8fm{BR7rWD%l=Ug{RziV0-#bJPC}HcoB)OS4ka<6XE*_g z-eDvOihRk(sWT(WeU_*ft~)g zS`&)sInN9Hpk?hUHTgq1{J4O9{6xb~WlMTZV7$9u9e2;$v1>{Is!Lt6HUqCk6}^{K zX#`ZHmo2y6u>J96&)aG5&VON(>X|4@kpjP!VCb}*ge#(0v>J^yC$Q&rye@DfF5F~C zj|*bvQDw`@bVppA?jT&8?oehVM{02v#1s{>bTj1;$ zLn$g%G>q}&7~naP<8L0`5coDnMcyy+y5!?|26ztBIUvv2@Xk{;yz>+d?>shnAK?Uk zNf39LqZ&to_w4k?5Pt|^OZ=S+okREzZTU0;a0Sb}uSC&R-i17NA0qlAwBIv0fG*LA z1BrMfrx2C;iOw8I#G^WeXr!O$+<`;p{}N@A3;lB|6>Xft-sWUQs8&F$XOm%R8_Aiu3;^WzI0f6sbhhN zUJiQcucy1B_I>E)o8{`;{6FGoG%?DTz{;Wfrg-LC!;84d1w4v>;THS#0Os&_yhPt1p2pws16mnwt&i|ST3Ot{?{J$|4tw||UZ$nt zHM|RpmX7zagAH1F{025QX%+A(E}>4VhzGbp?@gW$|KR!b3at|UiBs63RmL{+UBNL; z|2N7S^!#VEvA`c)e1;Rs%>Pejrz5=Br^<}{t0ZbT&+y%4Kg&w7$dV;bAyqQf&N|1L zJlJkA;aKyx`q+j1!-O6L6JG->9-P%aKpm1@20uhP=x!i#e-KF3L9H0VNbts%tcBE9Y6<@>2*c0Tmsfb_Io3+ z)(h_9Qv%Tx{h=w{S?RH8BLADBUXb|YPx!tW`OlX0FsJu4)(l#qR{i+1F5r6bv#!m3 X2^Lkb)B-=l8yppA{Ty%M7pVLfbbfoc literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7229339a3f107b08c4b7802de716d7621b3c4caf GIT binary patch literal 637 zcma)4%Sr<=6g{c6W9zFbxG4xO-57A;W>jbeL8u5;y6K{1(m1BfBtssBuKg<)et;h( z#*Wk?rF4-_`3HI5=w2rjir>B#7u8Ak2YI+4>+I7vl&Q+un`i%g&O zJnicTRusZSs1h{CY{F>9R7xL{vEVL3jo?ITno9TT6Pig?2$@MiJIsm_Nl@>}R59m` zAb9Kk?-6%b}eeI4J#1dX2dhKoCy1xlxLu}gHH|Ij69J$dD1F7DMt zTA5^`t(11mNv$lw@oaj|3hRvLj+Vm1oEo3`NpQAQWZS!6drRMk!;1i_dMiTH^(8IP zo=;wdP8JO5=w;|g=7l!ShSw$72x~L^AcQOmdj(sl&te1HA+|z&C)9R1_OL%dg`>%F IfWras4cvjuIsgCw literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7fec0d41c546f9ba693360088b660ed1c62269e9 GIT binary patch literal 2153 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 H?Dm0omifd? literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e01c767b04694b104763ba3972ef6c4cc0872ac8 GIT binary patch literal 2428 zcmcIlYgZdp6x}yG0_0NC2YqS_qL@I+P-rPOEf%3D8Xgvm*7{&brePqNiIWK~{uO?i zuBB_a`pvcc3;hB93zz#OlV*?#eDTYinKS$DbN0FCp8MzDzy1#35o&#ip(Bn?jV^R6 zBzMhy(R5~9=kHVmBhz__KB#e7LMKSOZhDqOV&S-|aZNZ9z6TuHg(+T0tghn*pmjIHG=v*}`mLxQ)@u3h<!HnX^k<# z4}|yy)3-{lcOYvr8nDSrKapW{s1S-AJ@+PpRv5qel`iWie zES7N7u2_)yx=chVdX3toS8X}ErqF5B^|4a zLg#{8L&Yqw+to*T1vISYjGriKJ z!pP|i1ozfjqfX(ZdL7vg_7uCau*aPbvrev9{*GJZ4B{a0Eg3eF22bv6^z1d~aW*pK zLQix;hAz(Nw=8`tuy4bydj)IBmZ}b)RGtYL#0uA*)*YW`CvVqmmVVxGT%JAKb(r^9 zqi(gT496ED=V#a3Gk8IGmg^r>En~s0RC)LvKZ{|uTMP<6@*?V@<^98_$uEOeiFfQJ z)GvIAVVh6+4fLbHr)~mJgvBorO!?lg60_;s7QC#cY% z?n%Dgq3$W_o~G`*)P0Y-XQ+ENqIv6$=B-dOu!Zt*&AqXP<}#3+XH_bp?)$8q?0f&% z_$wqbuMiKAm(7VbPdw5*{b4|jhWqYw>=OM?kWO*GE6Fjnl9ocdgR*qu{Ik5qIw3I7EaU?V(krLP)q^Ua|xdoDzs?z^>sc0WJY(pSfsvkEWGa6-Eps#Sr zST%BGqq>-zv1_I3;&=)gy5i{8(1VOXrWGI%Gaqjl<+{M&aKQbc`AcTe9^ZQ|g+BDh zF`!`(TLeaf(^9Lm&8l3Mv&dOTK2fzx_8Pg5l&U5Beu2*6y>oJb+caeH7J$UuiECKS#zMbYq&!OEGa1q#=KdU1b1l|^0jkD zxnWA}-5T~tt@HWWwG~IXSHp;-EY|CjWusn~$bA~d9RG5uZu{Dth67R?tC`&1u0u>0H7mI*Ot@i(^ z32tQ|*s~hmEo&-KG^!_L4arjJO5qV%aF4F5HMg3i{k(?v;JtKOGU^P2ECALFLB-Y*#DFS64&U)K@55m3eD9chanyHN!UL#MAX)CH1%E$KE-{cG|R; ztcBA&V=Ja@);K56&8?{|K{qdrq^G9XRVl4I^wj1CVNL}#$z|QRBd=OqM!!bfpb&K)S@x1y6X=qW9%>$w-Htw>Xad|72LMXpGpM!pG%1v( z+lQ!i1|Uk){EWNyz-L^A3-HcP0R;#soR9eDsDS!NK;zCMaFZ!WK$CV@+;f*fc9-G} zyJl>oxIAsFs5Fh9K9iq5!6@gQv%2owj>$mqT-l9N%F(NcxC6Cz7v(N9In-QHYA7)G z)KFlS@gZ+YsTr$LE1FZKG7}~fxU%=lD_9`6`EowR9A{m0vCb~Ygt)Na-29mbEX%Ij zHDkpshI&s7KS<$+_)#1`mgnw^0z=LFzEoYcmQB?cxJU7nQM9cZ@9AfP)uMnd>4Qdf zp={QN3YN9pSQ)?NvAfPuMlA$>KEUAh7y*@{m^8}enUZaeC-4)2wLtWSy^5F+`)-%A z+(S=x_Rt$Rd*}`1Y^3b%p_KhSlmmYc<-py;39*-nmap<;avA`$9>>qwn6-s8EK+g2 zB(U?=Q0Ar^RyHs(-VI>q*CG2O2wdPO&G$tgybN1<`9rUvaRH@o&tr9LFMM%|&4eC63r5 zVhcSbLyjZK5FL3Hy}zQ+fu?gN;2c%Xmxz(n%X|yjGqn-Df~~)7A8+|>T{?5(P%cIJt zA8Mnw!|8W#mR_EKKK-6H`bIeY@Mh`d!RphGw9&7I(~oYJUY^%J{a73Q6XEpH&C<(j zz^6~P(Z4^Oe*b3ac3v5M9kJ!P{Y3}%i<9^ub)Eb{*S$5niiQX1Fs zGCoB~!(Z@ae40`h{)(sZ8A{zE#ir!5lzK#lH^9@BG9rg5e2!ADIE174Jf%J{%iik? zl={UvY{wTV4d6>$YZbfViGQOzj#%DF${!55AvCS2e|69?!2A*uGwut;aLR|xg z8CZEmMP=f*_IB=mxObS>o)OAu%KcE6%u_AwLjG_;PBwp?&+)C1{a=~!Bkcdq$r`@r z)Q-&f5=$qM8NH17*fqTGqSPPKBhrwKC`&>XlxsSyM;#Mu$#F_#*@?QQ2|ebRV!nwL z=9-S`amU2sQeJV-G^r;XQ^Gf~QJ?WTOZOSX@neuwdF{OMHYtZ#7=xN8q@>5=E z$Fw6n#h-MeqEfsQ|6sCxg&|Gg@AxXE4yN7T@HK|H6L&LBzfLKFWB4_`K`F`zKaX!x zis1<+^S3C)>9>SuC?)U`rtxh`N&FrM@hqhj{*0|meVO7+#Ewq%-Qa&8B1}Xfn0pZ7 z20zstcSyw`q8`A*MAoYmEEa$@k*!(<=5N>TN8Oxn;zJC|CDG>6^a{5r$7Gme)Ay!k z<(|5Udz0Z-2t|^A}r1*j05NKIquUh{}1Qe{FWQqVTDV%|wm?a5d% zmm5Lw)?LL2yT$!i-G8wT3(6*XQD0w&*C9czr*p%_olHEf(*?R3?U<8VS%Tvkhm>X3nVdU1Ux1%g;aa`OnBZ)!*jDa-*L*vx8xAjgQ#rT7 zgWePfiut67f_$TZW&S^wGu8~$wiUj^?4{w`q))tRkf+uMfE@A%v< R#~$_vC~?#|4sbXCz5y3A(%t|7 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..dbea3f3319c008146eb8dd8a2b4e6dc3e21342db GIT binary patch literal 2446 zcmcIl+fo}x5IrLS3TR}@7i{B8jGfr%W)_Tt9b^*|5fT!C9Rv!_eG!9LkaktOBT_u( zkI2iqDyd5OEme8R2jpK;>6Uh_wM{7bA*HHm&CKb`>F(|M^PgXT2k;2Z5yTKrU_fFJ zLjvhN^T0G3rd>ClZ0)I<78rVH*_NIch-b3Z1l|$IId0w9cAci_nud4iY1K5gX=mBS zfn!t-y+y007fo$eoe?AuA3+i_ft184oEEtC-|7)vfn;52wp4PqmB86dw%iM@?AY}p z8$Tm)7Uu};MZxDXuVb@Sj$%~e0xtGUR~(lZj=o}g+19GA+>Z4ziOaasv);vDh*}Tf zT?f}B-ol4Z%Ew4dxQ_d5AdT=4*|UE;FiSgsDrB6Xe&-c zMj{)v6kH^cmng7Cn9lXXR!3n{!eE6kbKUbKrX}u%_>$+98m8y5gL@Jmg!tZh689w@ zgb|f3Prp={lPHD}MJ|$fBrzXqEPIP;$80w=yLc?I5Nbp&k|;?mvc@o_bxl#Pq7RGkv9NUY)s!O2Jz9=1>q%?0=p zYY9{&*0CWl-&Z5AJCUxgIxA+YrQGFai`pVlbL<1fE%r(;~{aGS~louU>0)-Pa-zXcYSF~B%r%nl&q*s*Qb+(_< zylpD2Tw=u`O$$7T4vOx?E=ERQa1x!I!I8l2V^og?j#QksTT@FGXFA(Y$|iYG3yiI` zZB5@^)$%MV%Ytn?+SHa~Q~bG3M!XhJ!X2jdljH6i^pv>D(KMlqlGAKCwz72*H>fpZ z5O_vU)*wlGsc8L%b_Pkor@7}4ztEo;zNM9~ffT-@RdxaR9zW1daDx+ymH+0akK~W} zKQJhcenaBfa}2K(@;*jM^%N4yi)96f-*84S>yHH1;xU8MKu5}Tn$>Mi0d?Qy-QqYi0eJ#Ive4+`I6^mz!Oxvoi}+7$2vTB zfb;^@w;pi4PuYr745?iH1(JmqNcecl#fUaZBGM$Oz#-?3ZKi>pbl2u?U~`6KjITR3 beN<1fHyp9YwIF*jSe*d&uuqcvv;q7JknLWC literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysDictData__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysDictData__Javadoc.json new file mode 100644 index 0000000..6488547 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysDictData__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典数据表 sys_dict_data\n\n @author Lion Li\n","fields":[{"name":"dictCode","doc":" 字典编码\n"},{"name":"dictSort","doc":" 字典排序\n"},{"name":"dictLabel","doc":" 字典标签\n"},{"name":"dictValue","doc":" 字典键值\n"},{"name":"dictType","doc":" 字典类型\n"},{"name":"cssClass","doc":" 样式属性(其他样式扩展)\n"},{"name":"listClass","doc":" 表格字典样式\n"},{"name":"isDefault","doc":" 是否默认(Y是 N否)\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysDictType.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysDictType.class new file mode 100644 index 0000000000000000000000000000000000000000..7a5070adf6befeee73193bedffe4325da8309821 GIT binary patch literal 3627 zcma)8U2_vv7=BK($!^jVLV-dkP^<;|L0Lf*O(^nNsI=vywJ4~tO_p|PvRks7&UD6m z^~P&Que^~NhYOuim|+-4Z*a!nB;s@SY|>4Mv@_Z4d*1V$=e+0rI{Wv(Pk#q6h6fpR zAfZFcB8im1h*w)M%QdfR)hx5*RjZzB2DWRt0Y^34oDJoRZr}u~0;yAu>jb9-5`#l? zX&6ZB$YjxptiZuIlfUW*cGWDC*Ky66RsVuh3T9WAZE}<;PLu_5llQF^%dA-Lf;s8A z3q?t|C5x@d2^bPJZB@CTJBFJHYEFdg&SHBLDXHc1omuoqWvXWLL`xZ}c4v{t9)a|N z9Y`zW*4=|cG172z3Ei8;KI|9hjG$`&9WCI<0tr8m#T#+BG(zg%%wj<5<&HN(JG$xn zLs=Zgpun!GwPc_7+>#aCbb>`nen5Bo0=EX&8xV);VedQgsv@F?!^an zt0J&7zT?&T`*tZP4&9O|ax@E5f>X9c`WYOV!c4MxFUnwdWk)nXlMqUDpe&z~R9KMkkqc=Dg)qow8RqtE=;z@s}%g-?W-I zbJpUziE>dOxnfo7q}OGB+;JF7P3^aJ(sAwSdUf8eg=m>KUdgJ=Sv5zlj+9!k=y2P^ zlbgy`ZrB?cKjE&lF~57V;#KFpCG(Q)+BGY%rHyHSEz`EgJsc+5&>WpOWe1C1`5KF^ zY6o_W7Ij98RL->oCW@h4*g&aLk{hW6qw51t;RJ-&S~O8$={zr3v}5Gjq&8Nv+Cv{`5N2k)daY!SI~AryF4k&}%1jk7H=kj08^*7T-Rn-6UqRTha_2lR z@PnGQtitARO`)8Dje9y4WK}N;46K!fcMj z+aH+pyrueb@wIi{vQYY?4g7YDp;6f}RYY;#s#Ip2z%ClNFK{yEy+M^8W8%mGDM{Bf zWVxf1RRqSw5Q9A7GXKw4EZ?_%9aUZjuQ;ULIdw2s_rD&>yiiVIw>8*o0FD2=b0F{@ zN1c4X&!^y{$O&E_RCdVAA$;>b;Jb?eUU<}>;>hGk@SPlf0`W@-8{>Z}RBpv-%95P` ze1J22pXDQG&+*NMhCQzk{R;hOPImB)Z4m9=kchWU8=|iDMEf=*;yu)cXxn#!tJi(}vXu|Xn{uQ**ztEZ2o@3iXWJmMbW4zTs^cIqY^cGV2q{O72qx&Jc^2vNE z2I?#51oah+ye>gT1k&?H4Afsp6VzYG3~)Vk3vItjhvTe(XghBDAkt) zBExLtMjk>ReT$B`s}0!{=e7?=&yT byYvAsNelCwFgPgjap)8<2L&o{>8kvH!e+jq literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d3017d1bbdfb0904c9a2b2e6c0e519377b44c38f GIT binary patch literal 657 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7205883a88f0c1ca6882f60ffa64df945a7f6d3b GIT binary patch literal 677 zcma)4O-lnY5S`T8we_nicqw@IV!-Qap)Cl)ieROe9!hqbu2Xh1OFjzy4gE(R`~m(b zF}5PK+QmaM87A}Qy_dXyyuJazEt~~VVbCU>^0B5|Xu-|gSef&&&rtFH+(eY3LNy`% zOl#?Y9z;<{9YB>qb1G(nXF{d?F`mlA22f*gfy7g^FD~X8szPFhl6QrXt4;>>KBh`o zrzL|$w22W$<^4C&KbeOm7iYAtazJ4_WYFl7(}}#p%u~Bu6TZcVt1tQtT2D?{%;mkB zp}{zl9i_+$i=+&L^Cgp96vk?oSiUmC&#NV*CYbtJe~Run`)zk`d2ckj_Dxl1qzCPl z$cs1Rb!mhC4}&t4-zIHC2{126TjO7!!H!?M{-=RI1%9u<9@Lky0sB6-eEq=J4ih+n P;~`WMXeMw1r$c~GmU7+f literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b8cdc1ebf76edaa0498e0ef9170bcf43607a0ea7 GIT binary patch literal 2551 zcmcgtT~pgu5Iq;LU99Wie9(j@X-L`<3FUm|a)5%+B`bYW$`rhfTEC)FO4|(Z}R$84sclYeQd;j|P_dftUz(Eo{=uMzc zB8Ip?de_)D^qOH;^o{LZv*ZcH?_0Lz%?tF7W{L^CCy-T6MK3$5Za9YS9=e`c*UR)} z+4{cHHxJ#ss!)u*qnx5jB7xo{G{^)}5@#?VaPwq>j%b1Yis`Kq(P~-X+-N3$lwMxh zl^m0wl{km<1a*&~=SSZ}W{RA{pv3#QD4-E-!L$wAW8w=P#G9UDh15e5AK)^fTV>Z zKQv?{#yBEH5zFSjRWb{QjbM$e!~}<=C?xtvgDx?}F|6gLXLwDQm$)S{!+4gh?bUEc z;%*ze+Azvxhp}@KpSH1WuZEn&ea5DVH|Tg?l?=~PHiyhhe8wSZqJQJ3h6Ra5j!aVI zqN5H-Dvnu}_=01S6!Y4x;Y*3H7#$<@Mv(j05)T;|BOrS;tVyghCQg_&x58|XB)(x# zoIrs~!=^+5Pg;5hNfoTR8QEA(&#LLmhGzyF>syKMu+?fp1l`_SM__LLQ~Z#?j}kxO znZV*H_jf^cZ1X@hv(KwquE25^ zJvusd!m`}B9Ib6Ql_`O4b$75)$bj29H3cTSEP2TF743{3TsNQnO;?uAJLGm zo1W=VeVo{|z+7~IwZ?odGA~0H*MBJ5(1YCS`>)=;N9?O;t2hoYC5p#Lo`o`qWc z9coc!Ewax!*Z)a_c??i48PZ^kG?<{ACrJaHs+}SYrs?YzX)r??+$Ig~kOp^2gIUsG zjx@LzslWQV{%Tl1$kTYc{{Ehz{sxdPx# literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininfor__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininfor__Javadoc.json new file mode 100644 index 0000000..e0e9404 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysLogininfor__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问记录表 sys_logininfor\n\n @author Lion Li\n","fields":[{"name":"infoId","doc":" ID\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"clientKey","doc":" 客户端\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"status","doc":" 登录状态 0成功 1失败\n"},{"name":"ipaddr","doc":" 登录IP地址\n"},{"name":"loginLocation","doc":" 登录地点\n"},{"name":"browser","doc":" 浏览器类型\n"},{"name":"os","doc":" 操作系统\n"},{"name":"msg","doc":" 提示消息\n"},{"name":"loginTime","doc":" 访问时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysMenu.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..03278af85ba53a49ffdbbda6626c26eb56bb3caf GIT binary patch literal 12475 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 H`vc$|^|QpB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b7a09219025e2919883f18d5f4448cbe2f1b7fea GIT binary patch literal 3368 zcmd5;>2nlS5dY0)lT9)&AsmU^5Y8MMmNNu41j2^M>Lx%EgP@|5-60vWyAx+;g8>Ck zR8+hGZ&W;@;t~BY6k0{$7p%f6zgYY;mSx#JGrKzhO!#PR)%HxkU-xwP?{&X- zrxZg8WyUh5nhGW8O-qMH^-%9vrb|s{`}J}JP*e^XB7h2kO3aW@``@OnorJPM)npIR zgoIgj^|3-oF+DvPX16m1W??o#GX?1Ex?7R;{rvT6fg0Q+L3Z7CD=AgNoJo#*O+#~C z&l8xB1q63pJMe0+a~JKnUnH=YGh_FA6+=y%(FBLMRG^kaWIqMHjO79=u+qWrF%qiL zolQxoo)k_rZK{K+VW+xUpbqtpp8~$d8&3}I1k@-HT@QrKH$ot3a4dD#*mUB4e9C z8{3qVO*GRm{-D4C2J_C#X=OYl z@GxUb3AEp$H5xlG%yI^)&lT2&fEXb{w6IL4hIOR$S|dp(>`@ zp^n(}91$4ijm5S0uEQWZ@8?fB|{zb zU3(WE6?g(;-j6!)T+!Kl{--oTqQH^9B^rlSvw@nw}2V zALQiU=FHDZ$kxTC%{@E?#5;Mz^>+*82+nf^??~vnn+WdOa{%v2SU+t_x6vuVAJG%E z6KBMJ!{0(PK{Zt zor;b%+*i~xJ=wHL^T-{??dh~m6PTKY>eOIoml@#``!Js;M|ER3M3)dl)lDi&D1T;! z=>$GW_ZtcC(q*TZB;9f7|9yH3k(5~5a2e8%^x(q>^v}zntICJ;FB||q!UcMhxJd{_ z#?p2a(GU2%@i!Dp6TcvE;4;d(f{hl+EmX0bV_`1Kg%*~uTxMYv%LWTgEZ17tz_QuG z7M86RwzJ%6VHeBY7Vc-+ZDAkFJ`4L<9<=ZX%f~FlSsu2au}oUfSsE5bgAMd>%)$u^ z&j%+c<UvgLDr9-JATFO?lQ(mUHQU9$jDNV-*%)4Hlvqi|D*wj7}^;H~<3|&mlqaGL0XxD40QxmsdR2_VbPpEE{g!+_FK73}!B9+h* zRbHZXr>uZ4RC}?d!KNG$ew&D6RA68&rMixY*hmH1L_{=`b~BZ>g^1WfZ(E6oFcHy8L~J7> z+K7nlM8pmvqMeA?Nkl}5hz=rR7tRs#0^O1>VmB@!iYtiWDp~$YSDqW#hdqZaiFT5`sW*mXG+uQpNfXYYmkH25U}tTZ&Ys+mU^17!i|gf4g0JD#;Y8k mmt3D4Ncwo$_G#hVRQ}35{&*jfKOere1NaW#ljJ$@1Mn|qgj>u2 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysMenu__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysMenu__Javadoc.json new file mode 100644 index 0000000..2d08a21 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysMenu__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单权限表 sys_menu\n\n @author Lion Li\n","fields":[{"name":"menuId","doc":" 菜单ID\n"},{"name":"parentId","doc":" 父菜单ID\n"},{"name":"menuName","doc":" 菜单名称\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"path","doc":" 路由地址\n"},{"name":"component","doc":" 组件路径\n"},{"name":"queryParam","doc":" 路由参数\n"},{"name":"isFrame","doc":" 是否为外链(0是 1否)\n"},{"name":"isCache","doc":" 是否缓存(0缓存 1不缓存)\n"},{"name":"menuType","doc":" 类型(M目录 C菜单 F按钮)\n"},{"name":"visible","doc":" 显示状态(0显示 1隐藏)\n"},{"name":"status","doc":" 菜单状态(0正常 1停用)\n"},{"name":"perms","doc":" 权限字符串\n"},{"name":"icon","doc":" 菜单图标\n"},{"name":"remark","doc":" 备注\n"},{"name":"parentName","doc":" 父菜单名称\n"},{"name":"children","doc":" 子菜单\n"}],"enumConstants":[],"methods":[{"name":"getRouteName","paramTypes":[],"doc":" 获取路由名称\n"},{"name":"getRouterPath","paramTypes":[],"doc":" 获取路由地址\n"},{"name":"getComponentInfo","paramTypes":[],"doc":" 获取组件信息\n"},{"name":"isMenuFrame","paramTypes":[],"doc":" 是否为菜单内部跳转\n"},{"name":"isInnerLink","paramTypes":[],"doc":" 是否为内链组件\n"},{"name":"isParentView","paramTypes":[],"doc":" 是否为parent_view组件\n"},{"name":"innerLinkReplaceEach","paramTypes":["java.lang.String"],"doc":" 内链域名特殊字符替换\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysNotice.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysNotice.class new file mode 100644 index 0000000000000000000000000000000000000000..18d242bd569a76f42697a84a48a264720257f5c6 GIT binary patch literal 4646 zcmb_gOLH7o75=U?Gu<=OGkW+rei1oRB55QI3E`2J1x}0|i%5#GgiP#!)0%0dwr0AO z=^lX~ghyb*iei-lHf-Xe%2hxWajLSQ!p2mwWW^s~#fm*4e7E~fPtUk35>-^G)#sk` z-LFrd``vR}`s;r__!EF7{Iq}}3~R_3$Ra0D_1fFDM%!yyZL3!IS}o751-5Is0Y`1S zwh`J_-M|SB1ag-g*9pETFg!i8nTL+NhJt}241p(;O#Xo%*sWTFypCI2Kk(PQz^U5; zx*HnH4S~^>d)B^HYg+DhZN+o97bRiYzz9YKiV<$Z37VWWo`9|gZAXE}4IGo;f&w4x z*^=Xgfs@i*iriN`mv0ov$Y}!=8Oiy96?A;*I&0uu=xW=n!ES-B3kE)gCz!*w9jwLa zj!(}dvIrBF;EM*H#H2tu2CJNp_u*C6a>i2zo|ZF8y%|hgMrI7m%E)LOQMt?DoPl{6 z%rm$irZ2rU1E21CZ-#F$&UJp)z-REBz^RtCYm=jH1-G1FhZbMl4Sa#OrUzdpF;>a` zzdXshCF<}w1E0qiD2ck|UVWouH3d#2vwCIgo?QIt_tL^u&=B$FKDaLtf$eJ zj!G|eETHJ+pr3vtoqp`7^m2Q|^m5Qo|Fv}b<42{JyDp}egMRwWbox_ArI(vIrk8_$ z`djJrXO2oQdqhkx2mSP4k0p3r^@t0z4{@H?1g|Mx)4Zy@7Cyi;z@Rph9pyr5N8v|f zB%YxW>TZNhCRd$(7un2%>Yt(i64~Jg)eoVs&hZ(a4TrPU_wjsWF_pDB{xUQ3e?hU5 zd4#e1Fy1o87{8BFC0ofQKvSkh(3GiHGzrobNUP`x(6pH+ zXxc1P@)A@~pnRo}09DN*K~>YJ6eY+|AX*8~f>|PH!7Nuw5>!^8Ql;DlWgc+14JTUa zXt>MYi7M3Hn<9r-ahnTx0{_At_Uj=m;O}^izF|Cvzu_CSGTd74;hVIwxP{;0F0CB) z@pHUROT(M^87x{leuZ6Z(aPgDuu-Q~z=ybo2CX6<;WE9qc|QDu=hL@nmGDoT#Wt-n zc9`!fPHOtUQP!a6KcbB#{^;T(oQ}-=|73PM!m9(S%*ek=RKt0m?=JgUR*FTIEO`n= zC5zfw_c)UW+Z`qxYyQpvyO4jFkcNll(968%N&4H-#Y;RdzqCXRo?kmRy0}BR>7&*A z(B>cF%InfUVP<5Yl2H*|iZBXInb|Nz{e_eCO12xCHgjPp7l)|IXjawK!Vm?iW@+8f zf~kigJq}T(oOLc;G_OT3p+qx`cj4e3E1+|kcWDiAA%Be~t1^tI@HSesGAzRmTv}Pm zX%!x=9KMZbu}4e8FK`NP(9-3?i;FNm#u;QZ=t6Ly3w`;{>u@Ko^tgcPUsd z0qY?Ly$Y=LgM0XtfSRH|Hl;T!J*Fn|zbVlR5}*7D-!~)w*^(aS^uETLK|9o{AAi;b eTn~QMb+|9Vq6(H;;QROiM+I6x#E^D5(m5RvAcv3oF{qIJ&34e@-O8N*J498@6LjJXgc}hB0l#=2t;nWn#Q0Y*jg)gjP zcx(Uf(P%HnU$$3Z+*ndHGJndtrg7b1sCGb*D$< zC{9&VYvY9{qaDN1WO^oY=WQW9p9&9iHl)!nlrWqw6xl5N?|N@0b^ZQ%0F?`;LeteH z&C#AsUWSh67Sb|{&=F<1vEGH(WmpSmJ^Ua9FA8@Fo2X1|6!N literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..1f27af5864943c0d68ba50e0c6236096e70558ec GIT binary patch literal 2225 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b4dc453ff03f1e4d2f0fd21ff24ed18ecb409f3b GIT binary patch literal 647 zcma)4O-lnY5Phk&YwK54@KW&N$%_F`!djsf1YxCMrI#K`HjQh_Zn7lVLVtjN%7Z_^ zA0@`E*dnF$kjx}AZ|1#8KEK{S0JL!uph9r1O+v>;XUs5aXV!^~j{Qk0+Mn58E=;78 zXT9(T`jO@SIzW}6Ibl;qQ>GHyizkA+05yU$sc9nJYZ22_s$9ra3fg5>%#j53zDyKz zg%JdA(f=A@v>tyGZNfQRlQq>#;s!dr4G9{3T^KIzW$H#! literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..33ae80b38f801019de9ba5efb07d736c061c29c7 GIT binary patch literal 3012 zcmd5;X>$}+6g{17$n*;gOIQRXvSpP4*_jXs3DMvrU=l__MLS6|G|Y4l-95p$pi#jc zcZ_TK6Yxt@rBxQ+tnx=$o;%%>nZy{wH*2cqcHejI>3h$+Z~61DUw;R196!cUgW4GC z6zb8SA#v51GLkvN&L+=}Uo|Iu4GrCvZTUSKYTMc~F|5$g?zq|Hr0e7j*GPKPo^R%p zlYF!6*f)U`mPmGZ&G*!n+Yd% z1>Rgu9-%|}tqP9{{R*MC{G2KIwJ1C$BrAj@bn4iluoJs9tRnJM(X(vR^TwtNriSKu z$qd@QnKj)~p{)vSXlD$G=EtnB&Zry`rqrp>B`JxJL#BVlnUtLNC?q8((X8y%u}|R% z!6t|uF|QX*Z*DM#0}2NvB*BmcgE|f?94VJ0(`ERME9JtOn;g>aW+I1aw$jb`4pm1H-rTHs<9iD=ZVu+XO#;iQsc5ZPN zeJhvjH+-|yvo{o8!E{Jc0hgC&1sgW&YYMN+<{+u`IUbiw*bX-p-jpRSsZ{(kcsqu7 z6yC)x4c*JxPsW_e-jZ>Ki~`di%olPRViS%%WxCwxZnmYDLzP+rwP5>8wLb(ljv2fs zHNCH4beX9<41WwCYB;i-3KtVgLtURU$?0B|=9V>F%#U;ajq#i`fUJOA#&9ipkDPV> z70c7mvxESZ8CmRuGCL`L)o`{&H(WM39;(}Y!tgCz&5el1MC*t5#VvLdjsqjdnmwBvE2bq zh&>hHwAiNtJS}!Oz%ydU0z51BVt^OLz8qje?BxKK*jxZdtQ%lT?5hFZ=(@)oYfE)q z#(X{KH)bKymGDH2Of$FfATJC3!2dL#is&_;i$79;22iYS~RKk5kJY zYI%ZMo}`w&)bbRy?4xG=)N-Io$Jsd@XCobfSz`X7V`EK8$GbqHm;L!os3mi#EzL($ zN9P0RT@Mfo@Rl?~b(6=cn!G9cpv;YMCV;z%kaITT+)rC0!zIoDx0m8;tm2coCSMJ{ PEhX?BzNeLS_5<)Yz+w5Y literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLog__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLog__Javadoc.json new file mode 100644 index 0000000..772371e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysOperLog__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 操作日志记录表 oper_log\n\n @author Lion Li\n","fields":[{"name":"operId","doc":" 日志主键\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"title","doc":" 操作模块\n"},{"name":"businessType","doc":" 业务类型(0其它 1新增 2修改 3删除)\n"},{"name":"method","doc":" 请求方法\n"},{"name":"requestMethod","doc":" 请求方式\n"},{"name":"operatorType","doc":" 操作类别(0其它 1后台用户 2手机端用户)\n"},{"name":"operName","doc":" 操作人员\n"},{"name":"deptName","doc":" 部门名称\n"},{"name":"operUrl","doc":" 请求url\n"},{"name":"operIp","doc":" 操作地址\n"},{"name":"operLocation","doc":" 操作地点\n"},{"name":"operParam","doc":" 请求参数\n"},{"name":"jsonResult","doc":" 返回参数\n"},{"name":"status","doc":" 操作状态(0正常 1异常)\n"},{"name":"errorMsg","doc":" 错误消息\n"},{"name":"operTime","doc":" 操作时间\n"},{"name":"costTime","doc":" 消耗时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOss.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOss.class new file mode 100644 index 0000000000000000000000000000000000000000..0353ee66fc4931484d2ec5d68a36570b68a9099c GIT binary patch literal 4565 zcmb_g-*enn75?u2khHs6|7sFs zN?KDxX=zJe`o!?m0bY1%hMCM1W@tLo2d2D)86J7!AK-~6-YMm~l6F_S(bQ&!8EbX! zJ>UIwbBvJ7sJh-}t>L*X(=%&zx7Bi;T3|V*6L92N zwd$JQu32lE&Sq`dbv73y)sT*1j0k9V?54G9wk(0M1a2+x>=-$w<1vZUUC-XM z9kVIXlH#zABhpcn6l?7}ckI{X^y4}zayr}gnsR(h$8kAUeaqXm>sFC-CvHljc8L>nVzOLgN_$H%UH=PTww#}x%;pDEaY}~c#!NSZk$KPqT{hHau)vlXdx71jmdUwrcoAe4*eA{ja=Db?atx-Slj^IG)S}TQ;A1YI(nN!bcs8x4q=-rfhs{x#_kx-0j*6 zmScHlV9DKSepk4UB|{tPc4nQ?Td{&Iw{evRy=4WK$Gw!erYGUPjKs;43x_3hLb=py zye`r!Bf>FNN^R1JwaFa?Zp0!W-2THH=UY~UV9WBjPzGl*E)S(}vNI}&u3k|XioCsv z(P(Yo4##4OzRBS(Q)lBNJ+97_7J^tQ1PYNiwDoX0E*OkJ?SuEK3$vaKB>6ow!OL~(?)PqS?A@! z5U3qo(6VAuG%D-#ZAP8yc;0mbKk&?*NGATUg4c@J!;e+`M3$J>1txpv&vtg*ZL1dL zH>x@p&3fQ^Y!dG$ZQcNV^|==3eTzPDqgz;7iOIwd4A6;qry zo6R*luog7DA#gbg*>tG2MRDe2Cl%68rlRAEQXxl7g}lY7SQImCK}!yg;Q6NM`=f|T~|D&7$|@x@RICJGcLSpGAt^$I`PYa#F*j!L{=;C0c*3v{q~axx=ZV|ZsL z4DW1x;himy_falj<0tMCM>UQF@A=t}A^s4;miVcJlSB9}ZTU0;a2dhI~yphq;mFA*DR3Q>8G==i=wY_%ywqk}{f`x3D)rw|<)Bs#q>5!-kQ(fA-y zbzdSj{}iI5gG5j5OLPTSkqy&tkTBHMZ1p3k>G?krA>#Z?ZA1$E9+RAB1){3@MR5&l zY4qiT(n}o+#Po8|Pk%j~e)OR9@_2OV<)EMb#dP{Z2c?&%u1hZm{q*bU^y3GmmxsAa zF9-efH`3{k9+Y0zh%UVx^wWR8E5S=~jW{v;08j9m;5Ef-npc(A{3rMdFsRLBMLCgL zQTW9#5>IBBx*KMZQL3{aAfLNm{WG**A)mcp{S?~D89w7{;c&M4F`kVqZe{fhKaAYm zUr? %A$!^tnpz0nT<16Gonp2}7ymB}RFOv3n?2@)acknle;^rVOp3N{|+V)QXk> zO&bM*rj25yAVI|#RHzgapsGvab6_&Z+aTo%vZZ}KELL5o(7Vc3F0 zD^EGCz@??&M|c`Lv{d{O<9L;pCKE4CLH`^_kyD`w!CXU#&q>xBXXM0T4Cf7d| z!;}Q9ha8-Z!D>Iahfi_DOSDIp^j4+&;)VR@NA!ZkC;!6t&B_0bq`SGiudwFegoTw?$L literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e058064aa95b0a02a7457a26be4909ce52223d79 GIT binary patch literal 8681 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 a<2b(d2p{hq@ipP6S^>}SoGjmi7r?(wj*xKx literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig__Javadoc.json new file mode 100644 index 0000000..8f2bc58 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysOssConfig__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 对象存储配置对象 sys_oss_config\n\n @author Lion Li\n","fields":[{"name":"ossConfigId","doc":" 主键\n"},{"name":"configKey","doc":" 配置key\n"},{"name":"accessKey","doc":" accessKey\n"},{"name":"secretKey","doc":" 秘钥\n"},{"name":"bucketName","doc":" 桶名称\n"},{"name":"prefix","doc":" 前缀\n"},{"name":"endpoint","doc":" 访问站点\n"},{"name":"domain","doc":" 自定义域名\n"},{"name":"isHttps","doc":" 是否https(0否 1是)\n"},{"name":"region","doc":" 域\n"},{"name":"status","doc":" 是否默认(0=是,1=否)\n"},{"name":"ext1","doc":" 扩展字段\n"},{"name":"remark","doc":" 备注\n"},{"name":"accessPolicy","doc":" 桶权限类型(0private 1public 2custom)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..ed3f4f8ad39858c1d624d8d076478d6e25587d87 GIT binary patch literal 607 zcmah{O-lnY5S`T8we_nicqw@IVnpz?Dzt(iR0>vl>7iuPxK7zkmV6X?@Q-=$2l%7J zv8^In)qh?yGwVr&oNZ$LPJ?83GPtjqLskYX} z3y(%S28Z*axhR~sL3+LrOBHI;=toQ$9Iq7C4t_b(>v`O0bVj6VaEg+imnccTlyuD3 za=vSp@qSF;4==*JFxETTB7-$L>-0x}tcdOkY(RaE4cH`Xk$;PP+Y)wQcL)^;O$mFj HKLq#yIfKB` literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..922dd0c82b137504abe07ed1ddec42179166e5c6 GIT binary patch literal 2153 zcmb_dYg5}s6g_Le0(%{t2Tf>RBrU|RSd^qBt&_CiJWOjIjfqS89APhx5?k^}f|h?p zzlfQ3rjwa`=uCf9r}s(%6q*1Z`bF2;J@@Q6cdxJh{^$2U0o=#WDI_qUVNhZSNrCK3 zW6RLHhSkxR*I%lZCy=~nTBi3vU?7)oY8V!nw4ILLcI=+v7`nUdda9?l>CLqCEn9DF zyUVWIv{TS9kU|<#Lq_5hMg=C`pBbhJ40n`A`3r4$Okz7j6n!Fn3^B_6Qo6yY1n*)m%}ZN8M4W8o=+?=M&J zP{SjM$9N)e`?y9~wfFjL(dhS;v(W2z1+K&=?1g0AHrqfb9B?PX%zcOVWU;^V$ zH!Y9;iA~crspfN*WqXEa+7_uU1SN3$Jcc&d%rCa{N~fvnDBIiaE4^y>`nIJkuRCJwMH<@lT%12&rJ|3Nk1WS?J}z*)pmtq=6n=6mVL}{ob~Y;$9q1$DD4pE zK%irWP6tk7kY;xhWAr&VPowz)&ChX6(bO&DB4%-k#>HjQb%k;!0?iYlu1GT}#8Wg# z`zg$070*a_GdM#e@h$xr60{$BdlGrujl9*^TWN>2{ZF3C^o0Q?$>Qz*Vhy7U^F zk9jV3{L;19rDvi8xkk*H1=g}5=XVk3Es6==4mf?(j^Z1M@o~+GFM;m^0YBhJirjZU G0sjI#sRca% literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysOss__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysOss__Javadoc.json new file mode 100644 index 0000000..f9d28ac --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysOss__Javadoc.json @@ -0,0 +1 @@ +{"doc":" OSS对象存储对象\n\n @author Lion Li\n","fields":[{"name":"ossId","doc":" 对象存储主键\n"},{"name":"fileName","doc":" 文件名\n"},{"name":"originalName","doc":" 原名\n"},{"name":"fileSuffix","doc":" 文件后缀名\n"},{"name":"url","doc":" URL地址\n"},{"name":"service","doc":" 服务商\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysPost.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysPost.class new file mode 100644 index 0000000000000000000000000000000000000000..64821ae7bb918bb3435979f7a3d235b057f18969 GIT binary patch literal 5616 zcmb_g-E-Vl75`m(ccop+_IeX1QR0StIH~PTx->L}$WCeNCXK1>x^YOMEu`{V*c|PYUQkuZE0)EOG*6x3yAPZn+J+Wml?hqv19yzSFdu zKA&1n3!{1&Xs*?Q3?WZZ}sdvu<-`Qj!fA7?e!8WoMlzIW%OTgk1u@cn#K6&DsO8XaYXuG+GjJUD3glNDU+z_IvNSfH;0(4Yq2mT7BIskm zPUYwc11E8xKwn6pHoJQhMYvrFf2V=_lW@6XIsPsK56JPsh$h^$)IDh6-FQ!D3bpUy zO;bcWmw3y-q~wx&S`0QXN6#8~C>p&O?7zgwdf31tcvN6-!(MZy-DcJHpRW0uu6& zGVHI^7>XG+-{5Sm>CCqqOHM05%WQJ1cKx#5s!8i`FypV*IPKBdZBv?)9S9db)4Z0l z^wMnIZ7jKKmB*c?(_%2n_2s=zlI%))H^`Ck%XHwJ{F$9Gy>jWkl}!Uzrt z)UGxiP&S=@K>@5dY+^2s>uX|ySXlfQNojO z{Z*&Msia3o<#EWuU<9M_qf)A(7b~O3{@7A2bD(3Z208%cjRZgqbO6c`34j_Hil>;4 zeN*a8(-~9?WkRzK#tV%el~Ps2SQ$O`(}C5sIeR^furB^pAW{=PL-@SrDV1K{s7ZirZyU_NgIt8P*`-^t*UdrR%a*};S1?LnWh4jou`+a zkO8do{dPs3CL{Gx*Y!QWWv{D{^#*hJRsr9}cQkxg7RB!gjCRUFt$EE|b1EuuRGmC; zSAD*g1YSu-UTAoRkXxVNHJ~K>x(tt znbh$EfokZqF%`vU#fd}ekfbEX9|r!oeQd zfCP887r~t!MQ~>W5!~4w1b4OsybqIrofYja^Qpoo!FzV%4TxU_u&4Q(3kC=A0m^cA z0`NgR!~3(L_Bq~#Y$>)7{RY}Esq8_AXy3L(Y&cSg`n!ql*_MbsN(xc2o9M{4MC@Kt zh<0}q-McLj+np4mz1>77wk2Y3ltQ$>o9O;+iP$uy5FP9$dT?7J_E{-Jhr5X;wKfF_VS#x9hqg&`}aRM!{*2_A3eBvfXd5!TZ^Q!PV z#p^V$GrXqW#Cw763`_uO<6+(O<5&#NPQ|R*3~%#Trj~SWKeMH);<*Rga*-v0gkNM$n{`!Be;cmr|B||He9{ z9IoMSc!83JPvS3VQPS~aybh029R;VALZ4Lf5E}W zC=G}LBVvQnpeW*De4J8IRM>fZg3^#UjRTx#jm^cUxUVWkH2psq(4gnv!X6Dz@J|v9IjptQM)1=mpZo*=U}~yUC3`< z(y$roJ;r+blx`7^uDYJ3fsU={FsJ#b+q>FnIoq&(fE@Z2NwT&r!?2+Jj49c1@t2-Y@(JNOhuXrga1=~$)fLPP!^Qf-j<9ioDUN?LpPt3Sac3L`<|4 z)78rrExVQ>zmDN2GLUJejkA861S|fm`riWY1^%vJ4fVn{uhLHr~5~COs z$UfKibgiwMEp21xxoWrqWA_cya32bcq>zS8AR{r334y8qo*K*(NVb&A3~Nn+v$=eEAgOGbtrF9okvNNU z1a$_`bGd&b^L1W*QsM$H&9p13OSH^zN#b(I5RRsCRpM>DBajXxEL%+_aQ=vhnrj<@ zjO!9NFh%e{h7X^N3JK7@l$#RoMd{b|j$$#>5+6i){P8sM5;KgS2<7OmYFYL^&nZgW z;yDxH+K1oL&?M$?dtjqx*|d?9M{KN_#HH+hI`2r_#fJkQKK??~M+o=;jVVu*N ztGhjiC4DSWVoAI!;b;6LGORN!`7L3BfQW&6F_E#t;P?1>2hQPv!g}7xMR&qt}c9p%>>9z$D z4a?k9oX=jad?HC{2qbz|O8L_Q*~iyxVpE`U8U?3jPGC!5{zOa1@*)uT3xA?)m}GjGhy}YnCFdC>V+Mv0#Wg=^LiL z5tyo3J-eY+4bJM+u=LDwyA-&**)v@_J9Wb`DD_LGY0)_~ER%H4^z-I)xsN?%JHJ@= zu10O#R+hWpRob%E=~|{TT{_NGZZQbd=(-rCNVfz%zo9pcqTtb)7ZAVFpBU=&K(_4VKIH3s@gExyC|E^aV7bC~`eM1zrO=x-ZrM literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysPost__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysPost__Javadoc.json new file mode 100644 index 0000000..f3dc9b7 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysPost__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 岗位表 sys_post\n\n @author Lion Li\n","fields":[{"name":"postId","doc":" 岗位序号\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"postCode","doc":" 岗位编码\n"},{"name":"postName","doc":" 岗位名称\n"},{"name":"postCategory","doc":" 岗位类别编码\n"},{"name":"postSort","doc":" 岗位排序\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysRole.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysRole.class new file mode 100644 index 0000000000000000000000000000000000000000..5087e0d448014ed57ee04103982ff0a0f4cd934d GIT binary patch literal 6960 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleDept__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleDept__Javadoc.json new file mode 100644 index 0000000..14a41d8 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleDept__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色和部门关联 sys_role_dept\n\n @author Lion Li\n","fields":[{"name":"roleId","doc":" 角色ID\n"},{"name":"deptId","doc":" 部门ID\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleMenu.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..914e0a7420eb54931d495697145a5dc5219eb66e GIT binary patch literal 2627 zcma)8+j7%Z6kW%bEIV-$6G*@f~TRJTi6--8P&p{odvyvla+su33&1To*`BOm5_mMNUIs9{tD*oOit~z3#b9 z!!vY$&kxL|Ugykm^tC;I)wRtf(`gaI8B7jvE+(MO=Z|YRzrxn}*x8 z>TXMK?rn0#-?3Z1Zgl+gb%XmVbz&*O-VS4)In=gFeVyLirB;?#?yqxq#CWJ`Ip%V! zxoLVKGG(p0HN)O8JWHMw8R+;q3~+oofBMqo-l zIe$O5M-Rw5xxvy}GJ}R&UtuXW&A{{+k=zueR6w{g`u*yQD~O!kpkaCf{gTCayHN9? zwKI(tqxuwx7u(Z;wZN!tFBvRb%h`3eO+5-Ux&*h3THtzn0^cR`6FWwrcMPX)oBnv! zb+=nPC5n>~OAx`D>t2=oCyL^`BaBA`?yGd2ASwBFoCBafJycHjvE>4UFbr-p9v%H!(V)=e3lC3Ys!2m?#V*AL20vv>BrD!pW@Uv(mqyFTYwaFZh?6zwjQS2QRTO$Z7FAzsmG zf1Z+t5vXm4wvY0 zvg;~jvK&KOe@8|#FSKzsY?ELuob~Wq5WFbdC2XKNvo&l6+X(Tk5ZmV1!R`PhjylI4 H_6NW_)78X& literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..16458c6659d0afd9db5b0f290a2ee6d7a44f4f56 GIT binary patch literal 2443 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysSocialToSysSocialVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysSocialToSysSocialVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..26d3979e6ef786a0a818a31e033c369001c333c6 GIT binary patch literal 637 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 rIf6)JynFu2{j&VmNSFAs{CWBf3{fM_Oou6NmT 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackage__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackage__Javadoc.json new file mode 100644 index 0000000..a375349 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantPackage__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐对象 sys_tenant_package\n\n @author Michelle.Chung\n","fields":[{"name":"packageId","doc":" 租户套餐id\n"},{"name":"packageName","doc":" 套餐名称\n"},{"name":"menuIds","doc":" 关联菜单id\n"},{"name":"remark","doc":" 备注\n"},{"name":"menuCheckStrictly","doc":" 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"},{"name":"delFlag","doc":" 删除标志(0代表存在 1代表删除)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..308ba1fee3ebd7d7af9ab32e440b3e10e0644253 GIT binary patch literal 637 zcma)4O-lnY5PhlDwe_nicqs@Ty%_M|WmRYeL8u6}^wLAgrg2T#O_qEVdiGy=@CW## z#Mnx$QWg)%%rNt2-kaq8B#7u8Ak2YI+4>+h@_(3sqG2HlH3D1?bnC1{Mjaa>X~(Lc)iI=+qx>Rs&(7q>DCluj06SLi(#G9@@&DYE6=_j+$;b;IF#09Cyep=p_< zWJyw6FVS91E<^ub$SQOs^FkYE!|M{Pg|i-h5P}zlyMj&BX10#4V4ESo9dbJyyVx6` M!qMQ^$H4&j1jX3R0ssI2 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a95d5196869380c2f17f2d44b6b47f515e52f990 GIT binary patch literal 2661 zcmc&#YgZFj6y29sBy)j?QnhNeS}c#00r4HAr6?^nAPT0n58ELb!vL8{XC?^Ms%`%e z{W7lAuGQtYuGJsacAsPdK`Eu5`XwiG?mqjTv+ue0{PE{6zX7<8pOR=oa{?_It!Pt7 zEn91rxoWvZ^Y-Ghoeve-#vIoP#}%6U`f~{!Q0VjgqFM00lI2@wun~lI$t>{8am_W) zoZko*Y}azboR>rb%}E&033O<5qD$fIKL>9`Dzp~uaJrz--PfPpPATiT#f*?1)ab?` z!h#y?P~WSl{+#UFqwxlgC>W%xB_*VXcaYA9z7x|P(|8ld2`B9~yr+>oM%U<1YP==% z-K3xN+|bI0_X69WwMw>Rd0OLbq3b5yYs&`CYP=)SUE9%fOP*T|J*V-mgm!I*#%l)p zH3lTEvl>?_Tkb}E$F##scmsbTH!PdfD;q1*c>;bYCTOR?Qn$Xji-MQ;pAXpK$Ut!s}hQ zjjpxH7aCtmLUPa(`Mg(g*$(`XoE~U=Ejh_S?_4urX)M-@o)4|CQq{enVb_bUdy7~~ zz|mO7io&&h+^_|2>$2s%8LM2j{pnJ9RUwi0+%?1c#GZ-JE4DAfpxB`ZBVsQ^xGeTsgzI8Ih%hO3 zD#EnbY=qll??%Xp{XD`~V!w%yPj51Z=4#%zI81?qXrXOG59jm|j?JT-ZO3qq6LAQ~ zIRQ>!949eF?<`IshtqgKi5}t%D?5ud&a$UOOYNs?^~JTbQm#It2A$k(9UH9wyXxMm z4UhS!RdKzh(MnAt{1t1oE*hmbCFlQ1n3g=nvD7CpjZ7x!q zOVs8vwYfrVu2P$8)Fwl1##r5WgD&e^x~#{#fT}!sU6=NzsxD7})CBwI`&gUHR9E_^ zV_@(ljPy$+B0QACY;3|rLlbty8;aJ#nF5}qYMf7F&QaPXS*~(MSlx@Sy@5~8j(kmc PR!!hJexQ|m@FVay#}JfS literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysTenant__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenant__Javadoc.json new file mode 100644 index 0000000..b25d577 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysTenant__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户对象 sys_tenant\n\n @author Michelle.Chung\n","fields":[{"name":"id","doc":" id\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"contactUserName","doc":" 联系人\n"},{"name":"contactPhone","doc":" 联系电话\n"},{"name":"companyName","doc":" 企业名称\n"},{"name":"licenseNumber","doc":" 统一社会信用代码\n"},{"name":"address","doc":" 地址\n"},{"name":"domain","doc":" 域名\n"},{"name":"intro","doc":" 企业简介\n"},{"name":"remark","doc":" 备注\n"},{"name":"packageId","doc":" 租户套餐编号\n"},{"name":"expireTime","doc":" 过期时间\n"},{"name":"accountCount","doc":" 用户数量(-1不限制)\n"},{"name":"status","doc":" 租户状态(0正常 1停用)\n"},{"name":"delFlag","doc":" 删除标志(0代表存在 1代表删除)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysUser.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysUser.class new file mode 100644 index 0000000000000000000000000000000000000000..7020507a1e391bfe267eaf0a3a50113740b35b05 GIT binary patch literal 9696 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 Iryr8}U+a`oOaK4? literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysUserOnline__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysUserOnline__Javadoc.json new file mode 100644 index 0000000..7b39518 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysUserOnline__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 当前在线会话\n\n @author Lion Li\n","fields":[{"name":"tokenId","doc":" 会话编号\n"},{"name":"deptName","doc":" 部门名称\n"},{"name":"userName","doc":" 用户名称\n"},{"name":"clientKey","doc":" 客户端\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"ipaddr","doc":" 登录IP地址\n"},{"name":"loginLocation","doc":" 登录地址\n"},{"name":"browser","doc":" 浏览器类型\n"},{"name":"os","doc":" 操作系统\n"},{"name":"loginTime","doc":" 登录时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysUserPost.class b/ruoyi-system/target/classes/org/dromara/system/domain/SysUserPost.class new file mode 100644 index 0000000000000000000000000000000000000000..2aff80210186428d743262a95fb79bf382b0fc92 GIT binary patch literal 2627 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/SysUser__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/SysUser__Javadoc.json new file mode 100644 index 0000000..7c27ad5 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/SysUser__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户对象 sys_user\n\n @author Lion Li\n","fields":[{"name":"userId","doc":" 用户ID\n"},{"name":"deptId","doc":" 部门ID\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"nickName","doc":" 用户昵称\n"},{"name":"userType","doc":" 用户类型(sys_user系统用户)\n"},{"name":"email","doc":" 用户邮箱\n"},{"name":"phonenumber","doc":" 手机号码\n"},{"name":"sex","doc":" 用户性别\n"},{"name":"avatar","doc":" 用户头像\n"},{"name":"password","doc":" 密码\n"},{"name":"status","doc":" 帐号状态(0正常 1停用)\n"},{"name":"delFlag","doc":" 删除标志(0代表存在 1代表删除)\n"},{"name":"loginIp","doc":" 最后登录IP\n"},{"name":"loginDate","doc":" 最后登录时间\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo.class new file mode 100644 index 0000000000000000000000000000000000000000..0a2c89c8eadc69b57a7d5b0d1d143f4e338baea2 GIT binary patch literal 7473 zcmcIpTX}+n&_WTcFX-p9PreEiKOcPd`vm;gxu40QlNY})Cui-w{{5f5 z*V=2Xy_3IwaPCba+D_-Q6r;8j#U)BmQqZ+VZLUzN85Omr7K%otVpI#2uA=r zLJ2CpS{PUB+GN$#&1FH!F}Re&ksLqWtUx!4U)Fmigw7^rqCAx++Dbw#8lxQQ9 zBTc%-HL86b-wSw9KvrWn1-VoTa55qqp(RB=$ zJUC3micd=PDOPlP3foGoyIvxNMqw4`_Jj?UcR%EtibrghXove5Zv-oDkZ2bxa-h1= zGZ7XROSFfTStuP-a`%)(pJuiUx@RoQ<*})!CE7>(1+A&53)+NH zEvn{W-JFL6>sHOWp!0*xrVO+lYpuS=U;66D`1?CB#&T+)?aUFR*OW6g$or33!QJzA7*oxR*jwLrZGxp$-D`X0u zjQ1_%K{Wk5Xip`S{gCqjadI9q9U69~Lv)&ky-Gm>ED%9^e9- zwt6fvZ*_(Wl%O74-_$EvP^V&H+BV23yV z#8U(AEVDC4qgK>*>zod{0tc@Vt^k~Bb)ztcI@y>ll=bSOrsJ$tQ2pdy*wru%ta4GS zA*hq4T0_+pboE8DhxZi>=&xx@2wE=4c$;p5XhXp!OlaINOfC|Oc9hpUll1#6y-cs9 z=nU8Mvq+DAsnV-U#)4L`x4&KDcf+zq4e@;RYjtnD693lR!`9%;LjCSjxt_~-W0U{;!tc7+tPFe z&T29Ena>uu72x+5(CUHTzXKGsK9gco*Xg0^4 z%n>WnoJ+ITqKVSR_&TtXVg8~FA#IHB4b(=uHJ_u_dU!6*dKRLYqO>u-R9GyyMp$p$ z8>}~O3Dz4o1H5IhNn}#P@ty)gPCm(@;a4aX9V`7d!ig1*BTiF-mM|`Xnu-Vv zyWnp6QWSk|we+0HJbG?~>6fGFyH`uk3DTqIMwtG~(e%BmrRVJF(Q_kA{}sB2;#TBL z2W`KG>DvP7#m-YJZO^Gy&{u)Bb666|@2LMl86UJG>}yRQzBhVZ>sGri&cxojxDj60 zebMymS4+%DT>;RT(hbm4dgR^!Xs^-- z&|alq?qg8D1L~9eT~PdVQ)cP2>ce}s*W9cwPSSCD0DGrT9H$3yDvHsFDAPmeYoqJL zo%Bseak^DZ(YGKa=&+cehan|tNes{IRV(s}wj zeFsuIy+wbc??RI39eRZxhm@m#(TnswNF5>z)b}BEiY|QX2avi%ffne8kh;ZI9BF?9 zDK8GvZaM*}M;xIW=*N(H#WIf5Cn5ETdubhJ@c<69KgIf&>B?04ztoYUbmo2PPtjrg zq{aKR))q7WH_SMrtL1f5F}i8!2u6qab8Y%u!&vp z-zY(Y6Iy%?-Z?~QU)SguPQ;(xj+h+Ue@WNqJi;&CHGGOvo6pea@8JG%CC&;t?r72+ zl(uS8NmwexqctckCtTHtlC)GwPlYJ8M{QA3mI?vtj7qtxtxDQbr9BnG)*iJ@$yh2x ztTQU(s>YP8rOJ9L#IZeUr_yez5W>!=c2~7mkt~(usU%BvNpx`BZyU_9cALo46Z9mk zofbLz86+4~r0M7IKpXyF@o#K$4vt;e)=xo7!1S-tFCiuAZlHe!DTQr*jGl&+rsrv% zo`IC1zu@wI3R0H-L0jn8klN`31m?4lB;L5OBh>pLDtOA)NjYQqmL3U zz{SMFT@EZ6fcePgUI&~CgMEC2!WoiYF~lDgt#bzAzhd?Rfe-#z>y7h2&7#%L@a#wE z{jXmP;gGa{G>OmC0_0Fh7p3yqTH_qTTq{DKb5&5#h7J*N`i+%$p0j%Sv~e1{{P`li eKrbG_0fA2{Y4rXM&#QC}Ek0!ng0sbg) z%s~nX!D8pJGxN>&?S6fKd;-8N97WI)a80(5Q%jYyO1g#fx{_1Q(8!Erx^UwXwecf* zrd9Hw>RQ_f+5-ABHCM7!rjU=>Oy@p=j({^HS)hLlnJm%N8W}^5l+(?mfNqL~Q9f8L z;63?^5ht7HZ<7C#jyH6!m9$a lfGs}T{E@&>#I^-H&|Uf-?6N=R`X1Nzb2xy*7ryDU`2nJ}o^AjD literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..babbd0a62f01e35b51362cd8033825424052a27f GIT binary patch literal 3267 zcmcIm>2nlS5dXc+CPQ{!k_EyM4goPC$A$&D*@Td6I3k+_NQeTWPIiZ6$nMTMI~$C6 z0g58tct=$HLir88424u#SX5z^f0Ct^-7|ZIU@CmDwrYD`zwUnBzhA%OkAHso6+kC` z3c!a71%8Q2R0#ynXp>qvsinulgQI8kxGhlCVWbUvk3dCp%ZP#n0_#m{ES#{+lxAt+ z>{Qm)Q{e=SjC6QtDjQ82dfE;^K}7&6q=FiWTGR$U=!lSWF(-hdh=v&vs}T;gpt0EX6W`8d@Z3>6)$g>KUqZ z(Tp`>W`2bRi4|B$=Cne&`Qq{gTx&1axtBpZ6w3Jl%`wo28m|0l&9mF7t$$Nd+D@EgbL{#%Oog_m(E6sa3P(NUd3jK zrwi$LdXCQpY?atnSh;*g#SV#`*den(61rdQ|E{m=%W~3+d z#6c}PPO|~*MkjY6b=smlvPDm>M8RH(Zl10t0KHWhzNkbm*H=kv_a)eFzr+Eqtdi_l zqoPmZ8SX%r61P7+%a}wzH;+q6QLkc9;xOAwrqI^T?7`jJt4|tn zz2K6N(Ak9>wR}d!n8Y|^6eOSSxNS`8%&D1k(>o(E!Ego1?V(8(DTy?D2FSC_CnNDP z`vl0Rs8*4cusJvGgCSe9b6MtNQsOM<#k`fYJ5;=ia|&LQc%6@)no?s>I}m&EBpm>3 z^rpmH%zITPXLl!)0bIaE1#e5dgG&OP^F39D&En}q3uJVwFO^9OC~-4Asav%FC!1sQ zjTM>0vbaj5WnNZX&wE_VWq~7)k;43?avqI;DU$e$G3AD~T5cyQoW#sKjfyOx; zOAOJimf~is^X`h`fg`YVW_7eH^A&EJY1%RSmMPPCmuO@UC09eOAD^Jk%f|`!>-M;r za1S!w)-6JfYu+rdv;1PoN0=S6{65SZ2{b*z^^t~wAv0&i_5B7j*;oXm$9yCo8+mUE zG#t&PZ8|tcjI2SFcc;@PZF0j*Q|=y7*$iLIr|AaJ&zjamnBE4KZrX%iIBKRcW}2P` z5xNF1(6d9}eR_jblBA~x{eM8CFiFAM*4q%b=);E(>7S>8I($U`(lfxv_=HA+_YGN* zvp5Am{eWw2zoSyzybI;{ZB+M%+8hKN1XPUO%Aq@*gnwy z0Cl0e*nPbHHaZ-1@nnyKeJl?;IK*nRH;Xv>fC@ zHz`5CThs}9g#e3bR8Iviqc>6mX;#qVVI`Wd3LCK++iA21YY@d+y3^Lt<+C0q>A4U` zBOTgJ$YKM|(R<(`T5tuexQaGRqum9n)dM3B6v2W|@fiVDOPZ_roIs1>1irwRsK8g0 z2?OhCz9!8#uEtmOH)0ADg^uBGNmD5(h==;6JnFY-8Akm+qaM1+g+312AqTHKKr4B< zpf~XN4yFY7qx}xv@Zkm)gamPL1Ir6$|2H=l;SYKT`LTt#*-n`4AZ~UN8@mYg-Na3V zv>o(#m<#9q3~qtLJq31Z8@L8Q=!Da3G|-WiuMK;R7$vWIaUNANR_;ubM_ z2gCS{UJu;dTWK%!5Z@jv27>u7g15-y{XCDXn|66*_LdSIo+q>Cc@}uAMP=1rI7TG? z3BRx2WwP4mGC2(dyJ-)7=dnp;R?rWqX>Gd)HFOV(gY(?8^WyH{m_cAV p=*7I2kGX}UkEh+34&I$BUUgYK?ly|&!}o3iKj24_d=^{>{ss4@H_`wA literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo__Javadoc.json new file mode 100644 index 0000000..47867a2 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysClientBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 授权管理业务对象 sys_client\n\n @author Michelle.Chung\n @date 2023-05-15\n","fields":[{"name":"id","doc":" id\n"},{"name":"clientId","doc":" 客户端id\n"},{"name":"clientKey","doc":" 客户端key\n"},{"name":"clientSecret","doc":" 客户端秘钥\n"},{"name":"grantTypeList","doc":" 授权类型\n"},{"name":"grantType","doc":" 授权类型\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"activeTimeout","doc":" token活跃超时时间\n"},{"name":"timeout","doc":" token固定超时时间\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo.class new file mode 100644 index 0000000000000000000000000000000000000000..8612ceeea1d946dc1119c4ce07af3fdf96bab35d GIT binary patch literal 5241 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 XMX$o%m-zV}F0qxO^#g9%*OB=TMwVnE literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..cae3481b8b3e3cf033bb66a67295674245e9dbf2 GIT binary patch literal 510 zcma)3O-sW-5S^{HvGuDS^dblzy|~~_qCzVOLPRj$Jd{nk#wp28*pEWb{woju0DqJ? zHjsmq;$dfYcIM5zH~aPd@d*Iea1cR9z$Mv2PAyf+D(M!^>q<^JLL)Ph>B8NTdBtK( z&(sDFs;;$-petZFQ*$LtWeWM2&2;V~=m|JMk_Gy=kjWBFt+7Nc$I9sjDWIQXVU!P6 z3wTfd_K1`9_^af^B=9X_+kq|UFZ}?v*&lL#hjY6*?7{vEzYN*@0Ao^~H~;_u literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..5ff17a5e14ffd4e5c0623dbe17b76d13f7dda61f GIT binary patch literal 3055 zcmb_e*>4kP5dVFSlg0Lz#E@`=qd;kb<2V?~861wpff8`Sk&u=`kBz-?me{-QdL5eH zcbm5KcTqZl4rriS^GYSSPT@wDQTEWfoOSO_rC+ zwpL8$=%gFTsikt-H0Jbt7z$d#h(Ic6m*_yJKZyd5}UADpq(yBTbgQXV_Jza-OzML z#`JIKk=TlDq)s<9s&_SB;A(sBcStE@T^=deEZ7-Ywi9|J=tEC*d@xs|Bk*tPO=SOfr;`wSg z9-sYl0*53HS8r~VL~vB%7={Ewl=3C&iegz{eHBeNpb52{ij`Wpraf%biop z^CS)9I8JaEQm1Y3k*!&BCJIhVjIcOF0D8ADd})cXYJOhtjptbVti%h|{ObG&#wE^k zH@ek#dv#Lv^2xuCfCy79nm}MKr{)$F3xxkm?BsA7%tm@pO z5zIqZa8qJ|$GyE?3@U*@Yqmf`$4W&BgRyQaRqT;MA&e59( zB<*8MGi^dInKp|h)6fh%MXRSot6tzu+WW0UY2DNBTXaei70iv_hxnO30(hH#SqyaI z9r~4?0^Y@YbP_x_q(#PJ2toP-J{|ZCt>WH8DA(>IG?5r^5Oxq{+U;Nq)9ns+GJV!T zAJe#lL8kj193*mNa_})a6Ay9x+TeW*J2=I{Q3q$3o^x=4>7;|pOs5^Z$n<3guP}Yx zK{j!Z0tvdoPoj&yyXe$SiEO6-KYD2AZ>7b&4Sm>-eb|8`bUKNhNMjdmirw^(@4)1z0?j>I_e2lmYLflK#2Z2(?`}lys=pZmY#76{38l$BB30g?zf#z{OBhKe8 zC(!m6G71!hp4cyl(<;b`hp6o%dYi6cMDH@9iF=&f(;%5}F!va7vT_0K;qwFJ1^8p| z0SW=!!McPXeD7dORqg-6eU5PEjtXKw;eL>?IYhW0CZvxLqDKk$WArsd|9KuKtWr3O zVO*rs4V;EboE+_P9cNG^$r8p1*YjA$1$>VTexU9ABPQ_^?P6}qL)62gR6h@K9Z~;_ zpsUsBu3sbOExR@1%4{O2Jxi{PXIZUL2U^?y#8oQL9|#7z-719wZk3jS=m@pNmtLhP zofi57+T#O{5J^0O;=tq{Y#g9a!vMAWadG9@XB1eDdOpAMeI6tlV6p4dL1i_6p$324 UN#rkpuiXG{;~Szp!`}k`0MUu~ivR!s literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo__Javadoc.json new file mode 100644 index 0000000..92353c1 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysConfigBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 参数配置业务对象 sys_config\n\n @author Michelle.Chung\n","fields":[{"name":"configId","doc":" 参数主键\n"},{"name":"configName","doc":" 参数名称\n"},{"name":"configKey","doc":" 参数键名\n"},{"name":"configValue","doc":" 参数键值\n"},{"name":"configType","doc":" 系统内置(Y是 N否)\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo.class new file mode 100644 index 0000000000000000000000000000000000000000..a1c17dc51e5cbe17e229daa188b3777ca15a666d GIT binary patch literal 6899 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3a689255af0a2c49844c1b58cd4a78873291d85a GIT binary patch literal 498 zcma)3O-lnY5S`T8we_nW^dfrqVnFb;T4)tPSP@)r9!ho_*D1Tnl1vIc`M*5)1N>3q z*zHNQc*uNY-kX`1e0;vW1HdKhMbHv(Ze1ZK&Q{7P>F1twB`2Jrk(rh0++XXOM)uJz z!#h>i+C|V7(4VTAlBF_*yw9dOrwBR%j?u~j=_O>cL{n=lQOl9?x?u|FrdSw7!D#`n z$fBAsSPgIH(2sIM}O%({a#bR;X^QlmA*AI^q7@;XpALA zXpI+euozjX+LH@8$wn~G=;YQsVBYw!vO4aO3eAliI;+ZW>`#TSuN>R=^sc ib^biyC}P`!4d^a>4>sBFbA5|z+d1sO?i1hi*?a+cmYH?{ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b4b9d61d200f178b0343ffb898f787403cf18550 GIT binary patch literal 3256 zcmcIm>2nlS5dXc+CX-}d4j=@=Aw&dnY*>(+4M(zE(MhYG2nL81{&0xSM~)wmTd?6(9OCv;~-*X;DpmU59nk&(Yc>)a-Bx&oKqjSCjv+szJ zvVsV05(}`9%qc>-`JD0qp0)3OvBX2{UY&8@Kh2pgm1t)_>Wm-Ot5_!S2$q+pGiv0h zlU?9588M8OV;KK@)s0QylFzNExXu8(6gj{_OD-7T?)t7F?xt71Un zu@DRLpqqhpN@6g?qNG6pYs2vVq3VMrY3B5Ik;Nz3%O&r0Mt`&!1{SE{fi@}cD}+WT2{ zYD*MC%Rs53C~<-|(4ql081@8*1udJH8P!WhGtqdJXO|)rs>dtZ99@WOP zd`zXRw3Z#yY=hqeWz?B83IY$pr2N3YD;je^M@3Y#Csqqoi~-R`lZf}Dz_JRErg4_z zhHCN$#ms3V(0XT0)A_Kj^>>=~-aBH-H2(BVY@<>dsJ+uu)L{WW&4ao#X=S`qOm}pf zu;Oah2y80f#DRxneU{$WuztiU+G%~a!Thxc&Dn3=hlN$V_XOGw6itVw zz?e}mh~z%gv}h9>mPvVcc}N%XJduyl(XXGh?5Q|i2yESQ2)TID%H`=4F`Wd>zq54L z5O{|!9@Ql2zCr)*(OaCPU~Shmh^zDv!Ta>jpMfTPK>yM=z=!yV-UROuvZBS}D5CTO zE_VNhYH{TTltb50HyG=7QSYLeWs8gXEEl<0!t!AkD_C~9=wZ3q#aa>@hI($JDRu)} z4)t6^uZ!*cvERimmU~@1&T`1bewL#yo?v;{#nUXuUFa+)T}-hwT|CFqad9$sg%XT< zMIEN=2QY`;TByKzbTw)t%>ueLEW`>d!YVAr2723uB}if^4YGC`H_LE@?g?ou#}ru= zuo9=}B5($s1Va}-MmH{?#{;U%2O|KAV4<&{5MYfI{Zo8Kpe1n_pW_Qu;Y-Sdf%P?C zk>-M@iPZdslmbPeWA`E;4*4sf;hO0`JvhW&5cd?gDyZ(tR-$X5M~>Rn@z;VWv|~u-=DD*pHuZ09T38>lnqa zbYbA;UPpVOpZNA!G0+@55xg@z-U@hR-9?W_X0Mg#@K-W>{>qTYMpW1QiGxJqABaX; zJSOWR9+MY==04g(-}r1&nN{=y8oIh~LXF*o;^GYVZ23m4E8B<-L0;S)?6a8~t=aea mZQye)$q0Y;e7ZRQAb)jb{61(0r&@uCNCEN literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo__Javadoc.json new file mode 100644 index 0000000..a09636e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDeptBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 部门业务对象 sys_dept\n\n @author Michelle.Chung\n","fields":[{"name":"deptId","doc":" 部门id\n"},{"name":"parentId","doc":" 父部门ID\n"},{"name":"deptName","doc":" 部门名称\n"},{"name":"deptCategory","doc":" 部门类别编码\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"leader","doc":" 负责人\n"},{"name":"phone","doc":" 联系电话\n"},{"name":"email","doc":" 邮箱\n"},{"name":"status","doc":" 部门状态(0正常 1停用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo.class new file mode 100644 index 0000000000000000000000000000000000000000..26569c340b4c13326dec45a9a4ad73043b3adf63 GIT binary patch literal 7399 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 E1x}|Q*#H0l literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c95ad5facc3c4b7a8ec29ac6091fc2763cb402e5 GIT binary patch literal 522 zcma)3%}N6?5T4Z9we_za^dflk;KhK~wL)tVgcZT{=AmS_ah(bO7C)N-V}ZZZXQQ!I?4 z;Ix4El*S zNlz{Ogz!$7v--Y$8Q$rUHHgV$U%!m758 oJa1aS7N2eYRN!00wgo%TUHTsEvOi{gkFot64&d;GU;1o*0F2nlS5dXc+CQC9e2M_|`5Rfa`Y*>(+O@L&>5#4ZY5(Pn>Y=&gW?#?Oka9Fo*uV)^o-r3+G-6VsHlMg89}W?9qI+5kMVq9)MT(wZvgm$pqkKa${WW=hP$Z1S)k@R-x`utV!0CpAZ+33CN%X_KU>skYXm z6{y--_wA7~N;@=5%*O&UryYXkvx6JB)?WBU5>Ie=Wg>j{IA^*E zSP@L8U(Zp=6X_IfJsT%jHMihZ5-n&ArsJ9W>6ER#blN0hemVn%VG84=vsxnVr&HD| zSS#_ApN^;J_*}qxi4FeF!4(CYBsODhuRBM!0Yp@la+=`d61)BS z%6bL85>Mk9j~>>i4U@Q^<7eyke{bH_Ml{pKyH8>-_Ib3G?VEz+`{o|t2P6)1!%G5# z9a8F$mgW5WB?h=vCFLJjQ1Gn8b3qTc=h@@1#PdOq(t?7c5-+d^_ZWxjA1}B?za*iu z1NT^2uOK5a?As?TE16X-i#IqXG2+{o^$K)}<9kDNmZd}cV!9pb9g&~cO>4$d4aC!Uqbyx;6kHK3YyuQD`W*C86$r} zhTHvm!1JG z;#2w(e45CLoW)Uu=?}Ql_6I7(_1lOXx{2z(Set_y2MsJ69n537(7|GsPdZr1GU}k6 zAr+t_-j{U$mbZ0E&p2Rm8ragbuU-$9z?po2p!k2rXd<&Xo7<*0)( zmU#y+v$P$Yj9sS$!){TB=}803rmsdSa4tQ$nn^RCULp&y5(}{!i?ETtwqY@nSVE(5 zDbiR*<7GKASb;IJvakxL=y7ottpr09pP>zx(e45j^}r|rMX=E7=LA?C?fwP6B+!yL zjIZ!DDsYK1VPHMYH>A1jYC={2AQeF*Lf7=Sq^T4X#6$gj3H2Ma4WoXSQIB2cLLUe1 zn1fgEAxd5@=*|3n3#aG~pdanG@MZ|tFe4_2gKL=QoBiM1n1ny*Q5D8I;$|aZwu!je zOl)i+)VC5h3DS1Zle`n%#LzBm$3E=95kgSKPMX}ip<@pX-d>uGDV#wcF3_XoB3WI+ zeq6-?{6cSz8^q`>^y7C7x}2@2v(Qa^d#vbaDE%UMCwRPD;*oV%TppRdCZfahWcEBy zpT{~>R{f0uBJnSTLyazz)ghP3D?mdRouThMHmS@C`U7gCZFiu=?jYjeEca~iAXWzs zVr?le?hcOGK#kVm#r(b$a~;VLFS{`vT$n0ebs!#h8^sIZ2RDJM_>m;v1wR4*0XNW4 A(*OVf literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo__Javadoc.json new file mode 100644 index 0000000..19c3787 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictDataBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典数据业务对象 sys_dict_data\n\n @author Michelle.Chung\n","fields":[{"name":"dictCode","doc":" 字典编码\n"},{"name":"dictSort","doc":" 字典排序\n"},{"name":"dictLabel","doc":" 字典标签\n"},{"name":"dictValue","doc":" 字典键值\n"},{"name":"dictType","doc":" 字典类型\n"},{"name":"cssClass","doc":" 样式属性(其他样式扩展)\n"},{"name":"listClass","doc":" 表格回显样式\n"},{"name":"isDefault","doc":" 是否默认(Y是 N否)\n"},{"name":"createDept","doc":" 创建部门\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo.class new file mode 100644 index 0000000000000000000000000000000000000000..569cd9dca3509fb94ede1d29668ae69382ff96da GIT binary patch literal 4278 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 CXx6I$ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo__Javadoc.json new file mode 100644 index 0000000..e94476f --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysDictTypeBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典类型业务对象 sys_dict_type\n\n @author Michelle.Chung\n","fields":[{"name":"dictId","doc":" 字典主键\n"},{"name":"dictName","doc":" 字典名称\n"},{"name":"dictType","doc":" 字典类型\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo.class new file mode 100644 index 0000000000000000000000000000000000000000..3c592903c21141f5f67eb4f5464729382efdf874 GIT binary patch literal 8396 zcmdT~X>=P`6~52frI9VK@z_qfDQ&!@>O!}1Qc}Bh>sF3KoTNzup<{b$E0Hy>B&UQO z$_}NJ7P_#Nt$`9sTiSGmwk$1_9m*ei4yT;MFaGe8!+{dM`{vDPEKOqd7l(5^n)~kk z-uK?Tckg|7B)|Nhr+-L9Tj`Y~wNNNVVT~db6_hz>9yW7Dv$T+#o;_&IRRu-26iS8a z<$^++2KU4$E~s6CR;qwaS7Zg(0s81qSDpq;Bxn%Jm0~)PoWn!*auu9eI ztRt*FO{3FUo1C`}7v`*8N0ue{OpVTBb+oW-&d-+_xlyCDS(PsGgXQfxvs$oAY}usI zAX{RyW&0M4$hu*TMp)NkSGakuMmfn>shZUlsXAYy3s@Cesw^<%O&VQ97h`^se^+72 z^43A_#g%5&8chOtsYaKPfpwTOOIO{zVipB;Z}KgKv$LavH!ygM1~jtwz_e zUIWdzyZUUH(r7yy(lA`VC{@XyI7k6Uiz224Q$+_(e-Rh!Z_ya z1grOHbOWm+P*2OJdaFinbGc{aelYIs8r{g+C~#Ai1y;>!G)HhVp0^y%*%fd7R`1JA z8ZFSGGvyu1+uPlxl2G<{Ug?7x9U^R7d=c?AZqHjX`X)ONvn7peS{Af!$vk9@+a-9} z^@S=xC3sG$iU9hDf3M}{`8HE+#{Y|^wt&uzy;br%sCp(W>`Y;ygzzb2y)IhaVaq9> zSVhF;qk_WDa<}CRC2RZ2(yUe9WzH5s*ukz;++&st+*ZnPb+LdYKR5qIk{w3r-?>t% zB7!GNhYOVg_^v3GYJZ=NR0B zaGA2Ii}t*9N~>y>F^3d7)gpRT{!r`99U0{YGQt2YFMJWSXx4%j+k^I`3{{K>c~yWS zETK|iiC{!y8q?rDP6#6KAS3XcaeU$CK2yzEcxv3!jj|5))HU}3pl9`lBC)GYy|fP9 zZ{W?C9+r&p_Et|=UVduRz#0G~oKcn26x zQ-{K@k&xPHhP`kwewCW0+AMdPs@WkKivCkhP^Uvur`04>9eeNy2jsP5(rja&OvIkB?Y_MaIa%*i$P6}4fEvMsX99p-^P_%9{4Ii63g!HRiAhKiU z

tfn1tJvt;$Lfl~Byvs6@85Cy8ur`IA}SLZ`C+6-8&Ye688KMT%#=1qo$&1!7tE zal={pcuA*=^B}RTJL`DWc4861Gh?rm=d6hWr>d^H>grsss8EsR3wCY+hsDZlu2?87 zTLm1oIkT2|a#yTWZ7jmFRYt;zR?RZbH9>=?$Zo4fLZ_axbr|`BPbS=}ZUPJ8yN)kHIaSd@4mTZWfC(1yo>h`jw#jSFOvK zy~&CAtzzVK*K=5QJ%?q_bGT9S9Bw(D!_q3xVTJM>7VQduI-bK4Jcn;y2ynykoULLI zfi+pe;WAz{D;28}qu&bJ*s$_J3mT)}3)*mMD4fSxeL4eGQVaGzjZc*DkXpD%mv@xl z@{X!o-ce`EI|^%gM>Q?)sGa2<^|HL9P?mR8$MTM^a zp~bwBp~oomFoYIjGKLcM`iLTdL@1sEh`Q>D)~`u~vO0jMx1Q+CHHlD%2N3nw6P>dr z5$g5;q7C&#BWn_&%nu+sqn_yeHHq+M5I~fzC%Sk|BD_Te5S>#`G`c1c-a7(_hU$s7 ztx1H}l>nm6^+Z>#NrX3?0HX8iiLPCf2=7G!L>JZ*O|MCWS0=l^m1f#8WZ#$^oyX_qf8zBd+B{a z^j*!;b9VITdm8B9A57odEIlV(kG`*g{sY1E{ms&IF8AoyH_(4Dn0`aE^n65k^rtt_ z-x^GRMzi#M@_6)THPC-3m_FMqJs)Tu{n-ul9}cEJr&)SFCq4SX2KtW#(+@RE&&RJv zKhi+|(O~+`&C>I!?$PHO=sy-re_pfnTr7C>7c|g+oIVj0wHG!^&ozige^CSdC+Slt zEI5hf{W(XLA0c1GaI&1^ls31azf+b(@f~ZqHef3Tycxz8`gC13!WVYVbA?`mbv=rg z6T?FfP$Yb8_ytPcN0HF6;pZteH8OOZE|E(7XwpdP2?iwm546|l1Zc0(rFSx@OMyD|E+1&W(GAdkqet&%P>%w2>pecu0b?CN z2aH~Q9fNumXr12c1DS>nkZJVkI)nNYNZ0#(Aj{|n$T9}>eg+LFP`^Ilg2Kn(CJi1Z zvW{!Gr<^!Jx6^0fU)|zwbO#FH7RriO>9f#JfM0o7D#(trPc=MMoj^il=CTz6D7a&(SveHl#lBXS}*R2&rHEmHO#B zkOqj??p_*-#s5vMF-pBoJuzy*UtGLSy^fgp--&KXa(i9&3G=T3D!E;TJ>`lg!qLx< z<9}W8Cm*+j0u&CwuAmB@JL=d4e^U(_gYnn8o(iHVf$Tm)|yb+ToBpTH#=9;FB zxHQE*6Vi{Q;hUhG@jUIs%#;-pc=}|}#+9#6qeMnIpNq?uuAjOafUO{Ma7(Yl)(Q!x# z`YA&42}ntLjc%nUA*JYFsMDWlsL`B9G(uSx9XhM4?-$?*tTK z1d$L391_SlAz!U!8X+~5!A8P z_oQakJ$aJuHHK3m6iMpjBsHEjK#B^#?mGL0j)8x2AH)1B@ESNpm|hE5n_*K>Ma#)q z`c>d0J*Ap$vuH)$)*N|l=5L^b8Y0v55VcX>SRV{jS1A6#d-0#g`ODv48Jxg5S>u|( zHHj;aYZ}*1T)T1Y#kC*T0bC|7>uFjdB$%Ls#i?8km7M%vsD+9D8=-}slXJ>o^ykrf iVUB)8KfZx}f^S5T32IvGuPW^dflo;)2(xkP3nj5v(^4Ws`2>lw>FDPodAyH}c>E_)y}Q zo+4WCurs?e-#7Ek?8oQZI{;k6Q3M?U3E4tUEmg`Y>6XsxN>2HOMrI_(OP5lC2F;A@ zh@Pnxcu;k%Z3JBb!?{{0St?V=$84^1A3;yR8Iml}zlKbfXljimYB^F)ubBe+V=RpF z!D<1k^k;|H+I{+RQ7oZHXg01jU`GGy}wK4qxZ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..72cb5fcc0e060148f260970671854fc8bed68c67 GIT binary patch literal 2553 zcmcgtT~pgu5IvVK7yCLmA2gv!8j`jI^JNH0pm9RWM@VT5q``4Z(>4{hFale0WdXx$ ze-V9AW}2B!-a6Ai(jU)+r10Pq02akQW{hBl3M zbSR`YjU6LXG3;_?d2Q1ydI}x)E!*;@6k7Y!g&00ixaqj%Ov!bshHGT%dv(vOW=j0B z?99quJ?E4eV6QuF95J-Uk${dNsc{Bf3PbOYU2_hH&o~O5Wz$UN}GF^~Fx-~w;MTG=u^QLXso)BL+M7-j;R!H5W@ewW)PU-`A zca%ItH|VcweB7jeRyW-xqiRZuy&Bh>JO};+KGFD8@S5q&RxH!@9-Dg-(5G=z0yH;{ zEF_TD7?6l0Bj(HjLbDV4;`X*`seIAh+p6L_TYm7v>+UJi2qTH~<*+X)m;0*e|;g6SY;v0fIoCmP=f zsDq%umB5Nd9?u$j2TA3vsu^jlZO^J?<_yma8tYq)@37i9gb2FXTL)k{{O9-~h95P4 z!V86mr)l!MbLgj8G-@@|U8vS73bCSN@0c!s!e9Gyr{T;VgFdudHhp5G)M!Y7YYMBU zOy}gg#K0eN`ZTp3sh>jItW)CIcI7PFT-vU#nQq=#tH^0fn^p>jYsq)$Z1Xm(y27Jl z)OdG19l5idT$bA#Zh2H;Iw8j)Bqa&;_=(CZD8G54QHgqZU9T9pYFuvk!yG3)}648ebb={2fUg<_;!YlMV z-L^gcoCT|H@sy@*+u`KmY+(%pfu{AEjOleLZP#(PGQ5Rc)A2YBGqX;$=GdI3S&rT3 zyxNmc$V4Y7{29hZAsT%-nz~YyZ)+b7W|B+jhwl?@D z+SUFm#8zLTb8%?UN8CqB>;)f}#9r}nP3#RHpNZ}FF(`J#$C%jLJ|@K8^YK9Jmp*32 z&ihypoAa?O_NkA;&_4HU4f32pitlI9#>=k*-Mm~c@@l)p`=5U)mMd8(O>wwfH;K zVnehT+Lv7aCk>|1#az)L@KXx2VB5HMmU;?oflf)L?=dOj3h; zk@`2@)V~qd4|;0v*5BC@)L#Qq)8zRj)L?=tN4u!+v@Nn6aQgW9IKIvZpPUi-T2K!X@UTrQeZ2$x2f49*T>t<8 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo__Javadoc.json new file mode 100644 index 0000000..1dab8df --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysLogininforBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问记录业务对象 sys_logininfor\n\n @author Michelle.Chung\n","fields":[{"name":"infoId","doc":" 访问ID\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"clientKey","doc":" 客户端\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"ipaddr","doc":" 登录IP地址\n"},{"name":"loginLocation","doc":" 登录地点\n"},{"name":"browser","doc":" 浏览器类型\n"},{"name":"os","doc":" 操作系统\n"},{"name":"status","doc":" 登录状态(0成功 1失败)\n"},{"name":"msg","doc":" 提示消息\n"},{"name":"loginTime","doc":" 访问时间\n"},{"name":"params","doc":" 请求参数\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo.class new file mode 100644 index 0000000000000000000000000000000000000000..613fd5b7c4399a7fd12c34a58bb93e110483d970 GIT binary patch literal 10369 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..29733b6e7e3d789d95073741acef5bd7a708b43b GIT binary patch literal 498 zcma)3J4*vW5T1=OXW}as+KBcxE(lhqfkY653xa275%wS*he6h|I5N3;Exi= zTq@CEvGdsZzM1)UKR(~y0pJ=AB4`P?BwNU-rAk>P-NJcY$th=OWJWSwxUn{2M31xz z$EvQiji4={KT~rhOJxdqpUrgcBj^Y?MUn;jmypR4O|7v+El0}fhAE(%VqugIRttDd ze)foy_57>ke+$QJa4RYCAQsR|DcD@!V#({A{H6E&drbky55ah>^qrZb!>rUpW5_Fy zWSoGb<;Y6a&fAcC*$Cztot(@w76Q(G6*ml?8tlyyHC7o5&|hiA}K&ZAQWM;J0weXch=ciFk(Y&U>6%= zLqtGP!7>q0NJPPMeDKjnAAR)jq(?p8J7sq%a^jn3&zZY(|L^wu-?`uaefB(nrTEs1 zG^BfwA&`kI3Hdveor*7{M0$K}-8)pjAt9?e7zr9R64HxHIz1R6p-9tvd;whxE4t!~ z^~Ve~>8WB9BLzlbG)cs+kr-2ay+BDPJ2Xb15Mw3ekdb;_RSdO3jZ&1O zuCmdrITpqXOu$5flZ90H=u`t1+EzbV;1*UdC)C&Vv!_!9idc`F(8GKg(*RV7_ZP^+d)(fkjv>A)7*8O&t-ANf_y7({iXqiB@?~C1I>pMT^%QjP$92 zl}fCaPQ6%yrQCtkWuu(TCL}o$50(qm@^LmL(6++qs~2eC_}Di0T~mOujRLoGbc}Vm zGMWVLaC1Q#)QDlDn+00jTqOB2+5}c}-*PEgORHjMVy!?sHyxKU$(ONCpcCtDe48Fn z_11V;!WcIb)}3mK7;2BITea*G*oaNGo+Q37wXs~dUCb>4cd|nsE73+Thq_HbVP`y6 zT9_xpFA!jyAY8o`j%pE#mBHHudKfGSoN^!|D6oSi_)@Hit9rkcVHODqgjt09KlMb0 zCJ<#AFUd5;8maD9pXdTH7Vwflf-NI1urrCSSNy#e`fh>#B-&xi*e!4`qutbZ^hYiD z{Q?g#+)cgBm$66SAy<26Fc$0%S@4Gi9&xoN*fJgyc%0GPH0_3B#A6)ket{<#%uVBR zWjrPDG-F2)cD1U9E$FiX&oOiaK^>-y0|GBFlB?6?*CMR*C4rY2$knlVG7bv7>RMl` z(g^Kip;w77YAda7=Mb1YPq3M}dS3=>{G0{bI z;+lUowEFrFZVJcVC8}yDlpMNT{yyq3M^Ao>YV>LWYvQPes#C5w+Bp&yrH(>J!}U5- zR|5w`yT%PfZwU0ZYjNGLHU_zVMNV_pX*Z}sCEq;>*A zwK5%x@_w?N2jVVG@AJ`mq^p`ine!!vZWV0<$7%DDaEjKjOro@X(eq<^^AVMpTRH&g zH2q1#C-mfFAP=9?Q`i7}29w?-z9EDnVd*F`=m-2*b{Uz{sdMmj4IsOvyv&5xL_X63 z6XTdpGBJheG!rwKmYS$wI@`otA`4n8E+Mb{9F}xd44~S?GCr&`v4ZJJ6RViEnpnfM z!^8%rn@wzG+HFE*+H0bZX~e``ObrvenBHUJKBfV_)_hTBR zU=bx^G1a)5a=eskTtih|M%7zR6{@8g*Acg#o(*Wk3bfI4Gn!}@T1C503xa5+y`_zo zi?!H89k34_^vPa_gS4U@#(JE<2AoD0)ovq(s5`zR>7TF#KhuWw3%24{Y{PHpwrW3* z?q(hJlU>~)@|}NFrbItnar%LILsma<7Zg%iZAtC|Thi@^Tx4ebiFMQre;^~R!0L$X zG^-oBB2WU91CjbBd literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo__Javadoc.json new file mode 100644 index 0000000..df300aa --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysMenuBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单权限业务对象 sys_menu\n\n @author Michelle.Chung\n","fields":[{"name":"menuId","doc":" 菜单ID\n"},{"name":"parentId","doc":" 父菜单ID\n"},{"name":"menuName","doc":" 菜单名称\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"path","doc":" 路由地址\n"},{"name":"component","doc":" 组件路径\n"},{"name":"queryParam","doc":" 路由参数\n"},{"name":"isFrame","doc":" 是否为外链(0是 1否)\n"},{"name":"isCache","doc":" 是否缓存(0缓存 1不缓存)\n"},{"name":"menuType","doc":" 菜单类型(M目录 C菜单 F按钮)\n"},{"name":"visible","doc":" 显示状态(0显示 1隐藏)\n"},{"name":"status","doc":" 菜单状态(0正常 1停用)\n"},{"name":"perms","doc":" 权限标识\n"},{"name":"icon","doc":" 菜单图标\n"},{"name":"remark","doc":" 备注\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo.class new file mode 100644 index 0000000000000000000000000000000000000000..679d6273dc2d1832c8c39807bb739068ab2847af GIT binary patch literal 5536 zcmcIoYjYcC6@FHhw357%Wji6y;mbdms(ypsr zo4BPEXhYi2LRu~jfnk6T%>eEIGvqQEF6|5xX86n}KF4hsegIzx<#~5ktCh0E9%h)) zYR`Ml^FF)p+2@>nrN8|9#vcG2#HAD>Xp<3D5JOzTkXf56%+}1RT2l)pvsyKcLUnmY zwRMZbnpT))NH+>2s-+z+By8UqpZM}WdNhFYzky6kOMM7_o&sw%@ty-s; zF$+`6)}(3cC2ho%kT4u`Y*s>c{It5H7AmSSR~R>qxnaSYQP6>`gmxEqLbofLgsuQ| z%C6}ixJyB|0H-|g@`5HfHY(U8+-cW6Y8tj?*dnq;K~6;CmaW>0mT+xTu-$RhG^V30 zT=yyXfN&|Lnx@*?$nvCG)lv-XQm`8zr-Fw_wn(%%^ z!GprvLF{N?bzRiS#}qt-qJ+&=wXBi9q}q?`_B<_S%djm87kXP48W?*E`Tu!>Sq^0F zfI@{+mx+>U9C>>3Z2gjZrtX`QjG z!b!^-mLOL(%Tnh^+Ov9gW%af5@BZZ6-+y-T*7a9!zwrCjSI(|p_~q>vFTMMtmDRW2 zcyHxR2_gYywPve@CAFf@I@e;o^6}JIt+rL5CP!FKWs+~XoATE68}I%6hJ^dqqM6d4 z(MZu&)r~gl0>V_!2y>r=2ks`mef8|^Kc0J*nCEU?|3&?7cQmKx1f|@RqNtnDj&a@4 zCKszSTJ40&G>T$3OKN3Wt?6RyIivQx&b;O$YyzzcCuv>gcp z@A-yknkafk2>givL%q8PTpq=!TB%IwwlY3I!4UidKny)26no(^QZ$uUbr#x z9<^||k6KvnqZU^1Q6H50DAX~79c8qlT9#(X_&%T0T`3I9jEsvC?z=aX58q8AcJXx{ zVNaI%&0QF+h}b&u`%|>{pbej9=N`8(fl1eR6vya&Yz)USHHH%+_8CkQyc>~j_$Zno zxQN(lITzvH$~ki<<(#>Fa?ac{@!ZX8ag)j0c$}jGM-tDm{%eqa@qTfRPHG>f}h_94@3yF2WO%5Sb_o2~TofjIVaevsqm#X2R&x>!laf=F^KoGkqzXzH`0wqTYOZ zF=(cr4X59*UV2f+KD`(;(`(`Mo7YP(x`R(I2F>(Oh0||cFTH3wKD`(;)6a#|?^rLr z=w&{=7&Oz*`wAat{}l~xcmGxFUmq(t*Adev)`)}Z*K&$+N-EVhj_v0@WSD%q7 zO1qN{F`w^$6S3$@{v9MPA=b8%e;bL30bXO+8TRL|;S;XK+nF5TS24Qx&uGs@Z=&-u zl)bs=RgBaTJ;fLyJ;it~CNS}v=(>z_E|!Z2K)pqopx$C4Cks%*1If8W0F*B#3Cb5! zxugK4JWw*13V;TS?F0=Lm0Y_3DISPc05nug6EsxJ>y}=F`MfU zpsWY#$YtxG=n5Z7Ti_kh?R1+JH;wfkA?2atG#}tbX%otP0Yxx~JE+jthW+>_s8vno{e2G>@O7Vq$hE|7^#WpO{%HkQW;Usc$;$O(fNF?uIlZ;V*64D)Pan0oa zYS#Or-lFcP_&M$M#fO+0(RO1(a3Z6@x2~H}x9i608D);jym!BL$}Q}Y_(e?`HucCA zo>L_KQ+D_O_XkG~QpY`5y(ZoNJ0qN4fPgdPKX+I zCM9yQdMICvJE6EAqO#ptgGJd1QPkcnxgHuSCY(^h4^iswto_BL6Qat!SxG0fJzQ>2 zx$EVP^X+U)XR@c^uW zZ1s9zxf$HRhXlMSiMysWW`)PRiTvNuT_EwnkF(yW_**hO>`hPomw4mq_d<}Q=~WQL tS*I$#;dsS6;~XFAOC`LF^QXAa{wAXddSBu3I=;(Miq`k=27Z9te*iWKd*A>7 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..836d26993c55913fbc0adc6d99d7a783fa3ab911 GIT binary patch literal 510 zcma)3J4*vW5T1=OXW}as+6aQBjSF^i8b|~|I2DYYMcBKn=Y+eRV;_Ok{woWAfImtc zFK~r~V6pSq`M#O?cE7$qJ^|nw4kBm?xFnm)sijg`CEdb#UCJqEXk39vYkrNMM0lhH=o9SCDc%{>(wnF#$@45nxpMvpN>N_(>hiRdQ z#*kMY$v6Q=_25!f&fAcAxfITGIvJT)%mtjS6gdo@me`vbHpNWA&0r7qU-+ia<_Ee=o`3)V literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c2fba8412d24cbd8a9fd1fa89f376941b29f2945 GIT binary patch literal 3055 zcmb_e+fx%~6#so8uqOF{D0sn3)mkuwV6H>7UeTJ3VJFNhp@VnGQ2K`_$_r_O&3*TCVgr8mX@~#S_XAPw@(T*C3>e6tP|K{S~KZ_WtLP+O;;8w zwpL0P=%gFziG|9TY3q3{3I$D3#2^*4O0=O}Ao1UN(`H?D*c51+(d-FLwequ5YO$&b zbS8Rpb>AjzOE+dR{K$HV4d@_^%D*%=CRQr+PO(cHB{pHRKr20xwKUb%&S+(dbi=YY za;E=6m&8_VBXN46QM{w^0aw~HzeC~~HXo~*A6{TjcS-DKJF%J_=Etx{;yH9Tx-+Sl zDCC+uRa-Bn&ybsLz}OMCA0Nu&aIu9gdA#&c(%L^^P%&X3`M#PfkW z9-r-V0EZ+F2QN3?#BfyN7zP9)6!K-Nic&>jeSoIx(5PC@D98wGcC+a6a=J0670#=b zS-OqlI8JaCQl)M1k*#TRBnnPT4Doe@0Q6pA__7jbg801J8!52#If)m7`0D%^MkFq9 zHFAl0{7Ky|x&h`SMuS>fb``@ViOa0THRE3`lwGB9i3wKX@@Tw?;i|+G>%?n1S<|pJ z!)EthlDNid@tRugGKT9CH&~PLoUm29T49w}C0=6{jz8eWph`>!vf~={y~oW9x4{2DB}$UmP7^ADJRz2$&+Sn zBG3b6%^E3{ivmjCH0CvnEX^l!YqgbGMY8rvrgu$J9M3!lb6eobQ@F4;>k1YG2G$za z3XBB8S+hVBpq)BI8>^P4HEU9xF7iysnR&H1rCK_leP-C6)v4i5trGe2`MTmo&I+YlGQ3GsSG#Rm zb7|VgmS)<7UOH=*%BDdRCqt{JOsihtP1^g-L}}gA?^|?A6BW!&EeX?Wu=2eyx8AgAPvd<*9<4-?Wy2+^a2`!V_&p#MCN6IL0V z!yqov=>|?iB~F2MxsJ0a(ai!z2-gc(#6^6M9DbnX{3FKj6K!HH%0pDc!<0V{aUF60 zi=eCJ=$@Y=<}JE8;>>I!s69>2jHemos1406f8r`7=nsTLoo<#QAva5lKzxYG;!7`6 z6iyTU0jll#yy)~`8E#{4e_;W(?NALdyxiv VTuEdvgs)u(?%*4u+{51j{{Z&@`ilSn literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo__Javadoc.json new file mode 100644 index 0000000..e732ed1 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysNoticeBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 通知公告业务对象 sys_notice\n\n @author Michelle.Chung\n","fields":[{"name":"noticeId","doc":" 公告ID\n"},{"name":"noticeTitle","doc":" 公告标题\n"},{"name":"noticeType","doc":" 公告类型(1通知 2公告)\n"},{"name":"noticeContent","doc":" 公告内容\n"},{"name":"status","doc":" 公告状态(0正常 1关闭)\n"},{"name":"remark","doc":" 备注\n"},{"name":"createByName","doc":" 创建人名称\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBo.class new file mode 100644 index 0000000000000000000000000000000000000000..85d7e1eea1615d445e91123003feeed143872538 GIT binary patch literal 12566 zcmb_i378y5b$-=5_w?+}&K^>0b?<1khvbPJ9GPB8(P7D6ylXj*93JfsXCRO_(|M~{DYId-PFvUzXTxngG_3t` zowl(yajaG;?=938OBSnl=(LmD8>v}&Yq7?vT{`V%WUNrFR;p9ASytYx(*(T&N+#W3 zoJR+%fs~PSW8Nyr-ksEGiibNkU8z}&OTc-LPPfrdurgoXb=P9PB&cuL*V}fmj*lE- z@IIaP)9q;fY{A-t%494IkNDs+YB=;?snbs~Zv>-|FV)!lkWP2ds}PFt-cc71eRUj8 zM6l0K>GW#Hhii0(jcs|Ij`fDr8;9tjH41XZaPB}=D8I^kpiIV{_&)%+)jy}xn^^4z0uoh{-mKGGSjz*3+h+jM$68&WX5!i|5nyhEpVvV})-mx_1Rze}fg(|c?^S7V2K#u-U3=o$Q8oqmDd zXSY<=iC*rmgK{?HhU!wP8#OIKDcUERFjgXipcm#h%r(dNHpz%CboSAKNf6!>z z9uMnuo<68N_E+q{60|?JfhQw=}|#T=JUr3J1b>mkyjQiR9!|sC|fll zPWUIPoO#Vmm(@5k?Xn=%q|0Ld--z0&tQ}0N26;i^`z~J>N;^k}Ke?%j5ls7vvt{Ju zDq`e%o4|3{?Bi>0sG8AR#|4G#80wnDx_Im2{87Yl{%8q=8J;$!1Nmx^%Ssut=8A~i zvB|dAepE5Acd=|C&rg(36l+D0Z7-KANR(KNz?GRSRpyUYj^}PFlsT~$X5g}^acZ>v zJ@J~iCiFA~=EwmgBs)jRSy-?NRkR@qCodV-Ej+68*fGW^&cR465bM{Det%ugu*>Qi zpr~$1-SqQ=x%GDQ&`!v8iPNr@Q;oCy*ez!bCs4cOq)jAC5U>r&60xER6IeI6^=xnw zBl3gN$WB2LMA1uvwzIvo*>yN+(5v50eolvbVa+|jz3VK2HkXqDGpf^^s2yi`e|_L# zbEJarh6Z$-F~OVydr<#wQB45s5i8bQp^7$gU}r1n6y8keQtKAGrP03`1e*=1SK2^k z@kU4i>y>tONTAqIxz#zvl&o%AZ5jl1+EsZ98{qAO6~I#@B!k@k;?rz*rzB1DayRPM z>=ZN7Shr)vF4^{P(AsU_ud+i=wZT)^0B6_geubydWo7Ij12kn<? zF@@PReH@8ig?jk5y%STr5VsT9x>n^@9J_rtAXC};xJyZk7jx096HD=|7dG*%7a@_X ziic>{8T`&{!w|>QL*7h&2hZRt!c34xb+u>jY)J zqkXY_qH?^Dv)3+r&$c^1jicr%LGSS|R0?R5-kdMblnS-%WTkR^abf(jJBT_*KEMXR zgANQnQbn;dUn=b@;%pcb>xGDVUAUt%%*kM4W{cRc+KF5#^BT;8e-bp7Ypk$Co29zY zW(89_6UHfXsI%;Zx}!&^JL1HGBRQe&lx3)M!3%XR*%Of^C+Hmq4tkcI3CglP0k(({ zWW0$o_Cq^M`C6?|i;7V}>zW2QXxyS=gP@g{ha#NqLB>5t5@!ygUi^X*XkZ;^q$TzMiltH*N{!8@ElEFdvcfM`?Vok0N6U?b6{ zmPEK_2p}42B--4P2v3OYo>6bOp|0aDVsPzNw((@L;rC-rR|6BCgAo^A9 z((}&3rC-xT|GD7K8EluHH!Lpwx+ePH4yGS!m!9`QF8y#5{pW-GexzM`-d?%%V@>qG z6Wsa@?b7qE&85GliT(@0^tpEFc{AwJU)x0gbTIvO?b7oe)1`k|6a5#1>922>p0}

pufk4LXs^P5+^|gI$5y-B z!e>$O2+mCx$3`EfaOlyo&r$Nd6z+I*?6Z`d+Aw;7Zk0s{dvD!<|IE<2;1D!Ve z06J~<8+{DwSD-$l-v_$KTmsNN=2Bw`gO)1L5@V?kbjCCQI%6&~3Rv0UNp!>{K0NrP~1fbKW5#vp^T3N&bBeV_--bpSnJ4jJnhG^9Z5j3FQB zL32Go51PZqdIk+E(0XIo0fipLjA@!*;(hi+a5kITMS70@1hc76`x<=}*AN=J$)Tgl&acm=^Kz@^mgr4^cRrg^lt3{ z{UxLXUC=hsUqMRJr?qS8n~-$+x|X4DK}ylLG@bq$QYY>>F4EsX>Jkz0ZTeeCX>q-H zg8mLtw-^_npudNd5r@P(=-ZHb#1ZjU`Ugn8;&q}-{|Kp1yiv^2KSAmj9}pAt&ybdg zN5oG07f4IRGa^eDAsON;VkLbC(lYTKdXb)oG$6i9-=lwpv|Q`KH~t%>6`Fzm`FBVw zwHt6T^B<5_X_Am=zk#%XL*Y_c<*Pf*T`T?Y2dI4kh4cZco{eU{7lzf5uqomB= zfnD&QF@Oe(Q2Z@;_k%N&9^V|=A~XK-^!Oa|eJnk8o}wEs&@Ucg{XsLt1|y^_FzEmrCM*%k zD=tl}L@SZ2e_1y7q?wSogp0!}VpH60CZ!1rh@wb3rqiY_O}cB+9n(E#N}8~uD6f=b zI%9T9Q>SafI%C&$uh}I{SYnh{mt#6>rll$Eny~QLUiX>Z(u6fed38Icb7n@GGOh_L zkL`88*&|I@bd*<*V|u{sm8M?Tgr&&#deH2XCaglrt52Gi2PRA;F&Ql?VRmR;^g|>J z-1}-N+`qnvXi8vu3WQ$=4T|T51}Q{a#dD$qQkV{kCq)QSge>up2t$g}IdMirAjRkr zF(;ys;`FT8CSs5hbP>Ox#33a`Oe91Ck}d}6d69&a5?kpxp+o8v2kA+Xg487}dPsCa zN{e%JMsz{y7LU-JNJGkqFVK|ehSVdzN!N)Cq+aoTq{SXceVlS4Cu!(KY(YavIr!NF zpCrVK_#CgSv7(Q{4#2^L>QxFB@xeS~qgH{V^S$fK+?%2e9^d!7=ck9LEsceO|EwfqVkR2AvAtMF>MG9Oh@_mx!S)pf;gs=CY-R_E1tHJ+-{o-41^ ztM@9MRn@&$Rkc_9)%&Xk^j&QOyf(Zf3e^m3D%+Wls5J1Onx`+71&ygcu!~;zCx$cl zk(7VkJjnYqJa^(bhKI}8@%$QIC-K~k=P;hrc<#Y-2G6~C&f>Wb&pA9t@Z68*0X)-q z9(;;EMDp69d0S~;FdPi{88syOcq1zMWs|e$0^Hb$rFW3FO&HKGn-&9N`601_i-L)RYeE!D=RxTfr8mLyx~EBHtrd;lLx zoc>^~Nb4b)2{Yf!_s!(v^X(k~8gLvyi9rKx!Uq;JVFh<%=T*iB^wNgM$U9@#&XtWY zX<--V?%hZk|0r?_1W;yB8;X(OsW1s|$3rE309y=BHS$FJmm=n=Ho4NNR=g#gnjslf zIyy1J7gjNNjege%qt*DU=-+IE%@Tg)T)Mcxx8{t9NT9PEt#`C;1{-uX>1P3X0o^6o ehRW1dVTWv;;=2^vldum5Jt#@2NjQX~9>5nfuhh5z literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..1a62933dc1ef9d6fd172e5332676176e7855570e GIT binary patch literal 3401 zcmd5;`EwLi5dJ3DBs(t<2?WBS2m-q~7%(7#C1^+j1U3mKA%fsB*_|u{yEDtoY%q$V z;*A$7-uD$e3#+Wb(khCdw93CpExUJSv$LsGD)^JNRnt5Dy1)0jzwVy*=Rdz*2hfEd zBd9>7j4FX@)JSMJrA=yTMl;ju(D*4m=}M^CZJ36;M?z&ZHYTH1Ld>$$YRa~P7j6i{qQ7^Cvi)VQ|Q;w@=)f8bFraEq^BU4TQ zu-B4Mm)2c=?N3Qq5{)HFr%PC7I?nL72rNM(nK~uY#^`Lz*chK;nLrbkOHc@QR5vx# zW#FY{z$3101klX_E3t~q3A$vyEDRo4`|xW7Ze{pdhBw@d&gWYza65z4GKjBKuwLK} zY>=>+EcfOe!_*yTbSkGySXOqJe$&;{x?Ko#lRy+P@*$vdpQiAMiZ1?3fzf~VnO6xBcpcPwl+nMHAyQsH8ep?M#BJpy~O*=Py?lm z?Ud)Rb!j^pI|MqhllGbw8SS;aY>T3kA6r~tH>aD6WI%UMS}D%=9)Y_#-&_wxt%7cW zy==>Q7}n3^b!TQ#Mz260yYT+A78UFlI8daDOHp$zo2lZx4hkG9Qc}LAU_fB7SZlmC zsAUU2hXw8}7F9{FU_@ZFXy2>n+@k%Mz? z8MT6k1RiGVnTE=-@wh;ejc0m?vu!5&K+c8#S`j zk~4#+&;`Aks~7t5d4U)3q7PCsE{>j(tzWDc1zzUq$4BY092y0FIlLbGP^A5~W%jd)&z5`m0V(8E2G7{vZWlrigjq?l9#DekSWv25^`grUn zY$LdYcR0FtB^}yM{Q{WnJU@ZdY~!I%5yeqYos>LH zWfX+h;Lp=S`|7T4lL;SktAx(*7buwdp>Io|34gx>m4uCRxXx)98L{$qQr~BA`eWgH z!d%pG*>C3Sf`sPbyy;TAjTw$XTy>kKMRS7&8lAtTkXSiy3&huc`L^RSUb z%V7KOWYFGz{TFP$fo&e{;?-Rqx>(-hp@-!@5B)3?9)?&BdpN@KsE6Y$AM~KHOnFGN zJmn$FGUvfzIq6}FD?JKeusHpiHT{2`D+we7MswHyq ziMSjPVTOrlyUHOhgn-5}0;W;hCjB3X*hVSZPDFH4Qg#v%yD05(O7Ct;XBVY$4_%YG ziHIH|qL+y1BO>+@5&MaV14KkW5pj@+I7CDwh=>6qVvtfgL_{1WB8KNBf+?9U5YdW@ zAtEBEtoaL_#6nephPsLZ4bwnFH*Ipor-Evvl72vaOY03NZ8so$c%4fv+*q}t#;OlW vfvIK824K3u$NVP1>>yde%LPmiZ_kHU7sBIGA-oEFTR6aXlmNfCe*pdk9C32k literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..ffcd16c8cf0088ca974a6a4fade0f7d596a45ea7 GIT binary patch literal 654 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBo__Javadoc.json new file mode 100644 index 0000000..acacd51 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" OSS对象存储分页查询对象 sys_oss\n\n @author Lion Li\n","fields":[{"name":"ossId","doc":" ossId\n"},{"name":"fileName","doc":" 文件名\n"},{"name":"originalName","doc":" 原名\n"},{"name":"fileSuffix","doc":" 文件后缀名\n"},{"name":"url","doc":" URL地址\n"},{"name":"service","doc":" 服务商\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo.class new file mode 100644 index 0000000000000000000000000000000000000000..786ba55f91f6241eeb5595f4c5bc488a61e3048b GIT binary patch literal 9988 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 V(Ec9RaXNuf7}81lGyRq1{{n-DaN7U? literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..13cd5a819338c437289448fe3087634d20950d28 GIT binary patch literal 528 zcmb7B%}N7749?Wrwe_za^dfi_FAjKJwX}jDR0`Ichcdez*OcAKGCzerg0JMk2k@c9 zxO-Wo6g*5andHlS`SSJs@d*Goa1=pHz<_Kf=avd(m2@lTbs^^*p^*v6>B>!)JM<}aE2r^^lu@NIhs;qj#`eC(=}2+cZ!)& zK3FZ_ef+maJl>4I9{+=SyrH-`RD2r?=uIiuRNrIH#Lk=P^%`9MQWtRg6pY70KbR#t zOmaOmhP?7f#tAs77!;~>-iFl6S_J;BlUDKyxL7;zFnFqK>ov?~R}5+gr@3i_MM>5> nR$IUppKV?(@GWB7f*t5qz6ZPPk2$}`x&0Il;P8cC`fPpxWP+uL literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9cf1b5a5d3b7847d9d22f49eff07fd6f213c35f5 GIT binary patch literal 3667 zcmd5<>2nlS5dTfCB|9%9+_!*8$gyETP6=1C0f{65k`OLICc8s2WOrtrnFZp7fZ~A{ z;)N$Dig<#@#DE8uC6<2kqaXcfQT_v#T6WLuY$jYqzFAu}J+EJPzdnA`ulJXK&wmSG z87_vAhx`x<1PW0kp=`IZM~NmCy(_w|bGI6|B@`{ybj@BaA-|%sBZOfR$_=wCnlO!& zVk%Lq*Rs`AG(js(kGAz%>ntl~=)1J8Fha-=Lxu>UL|`~dB~)KuwbK}+U2jMj-lf`Y zs$#~wJCtNbl`y)ZvT4A>Hrv$nu3A24guqCQA`R;bjWHEhD^zx{S7QXmVw{8$IwWSQ zimf)NX^MB`pfj3`>JPEGSz=n)<0_%N^x_Df*tgJ?>K%1`- z*pRVNpu^W_Q{$#;XEinpZ1FV$8#1;D+|3${%=%2cN3~lNFZVkH?qL-MVQ@!=BGAb? zZthKWm$r{XPY9?i@8&AYmC+^8&9V&5ReBmf%|;Rt!kHM=q&tzz=OVJpDSa( zz{9?5o2}Rx*YH7sL%yufmGP*+VU`VXg!}BdZ1r)0Cs;DX(YZVsM+BboZMLe^&w5z$ z8G&bgn?6^@QGw@Kwv=po1zv9?wYUqH7X)5pjZ(6G<=!G0ui$tHuL``zEw*F;`UH3h zh4Cb{I2L+C;7vw$Q95JSC6i&Cz{wEa7I+7zB*cc$I@^t4Bc@~0s@a%ICn@^4q3=;m z>T~-mnucJp_6EYivuZ1ER*=Jck7GM6Vbjojx#=@PI3r=j5W>7x;v^Krj0CmfQfgId zOD5H+n(azwlACjr5m%BOimCBB%Pg?FHA}*(8zkbYyY5=&a>1xo7AR)d90@f;F-K~G zF6LaflW?O152_#C^C^a9sdsPYny-YhgM;l&`vET)EV}gS8#lo5#){hI zlX~NN<(bXjvV;k(8QrGqu|u;o!a<#`8`Pkvn^6Q+Zr!Xjk1D(9PE_|AW>1u6CQ~(R z%3(BSq|%12>UJ#+1}A77lkh&xW`#s)B%|jCw2Bgym|N8c=^VY};X``zHc*O>=qWq_ ze2htp>*~FLR=c$Ej5==8o7WaTWb2S)WHhgtaq@A=^6)XnYK9Cz_i`LCZ<~*Y-hUDL7eF> z2O86)1B0pQAj5Q@gZr62>P>#u%jVV}2tL2!A7^cw>FrBXG8Q4aHRva_wt}BOyS-77jsY9s55mezA zs;NsyD0ww>#%z2}nZJNJ_<^P&PI8r($ZV1+rT7$QDcQr(hjaLh5+1`r()t4V_>$zg zC?3ZlPM^!kEBXgbA%sHI^1mWZp+rW!ik-?<>`yv|D|VSH7CFno52aEO2QOVh6=}Hz zo51USyexrVYWned9${lxM56kg#&}=s|5De(R3~5&C15etwU%DZEz+WiH8||W?IL}2vKTuXj@H_7zfzpsqKcJ+l`Xc1WMT8u@ z#os`%0Tc%sKuOjwMi$#F1NzH6n-{V+=Ml~0ZP%uQcW-2`IAD*FO7`;bwd=q);6IVv IgT4d)1Hb6B)Bpeg literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo__Javadoc.json new file mode 100644 index 0000000..6111213 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysOssConfigBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 对象存储配置业务对象 sys_oss_config\n\n @author Lion Li\n @author 孤舟烟雨\n @date 2021-08-13\n","fields":[{"name":"ossConfigId","doc":" 主键\n"},{"name":"configKey","doc":" 配置key\n"},{"name":"accessKey","doc":" accessKey\n"},{"name":"secretKey","doc":" 秘钥\n"},{"name":"bucketName","doc":" 桶名称\n"},{"name":"prefix","doc":" 前缀\n"},{"name":"endpoint","doc":" 访问站点\n"},{"name":"domain","doc":" 自定义域名\n"},{"name":"isHttps","doc":" 是否https(Y=是,N=否)\n"},{"name":"status","doc":" 是否默认(0=是,1=否)\n"},{"name":"region","doc":" 域\n"},{"name":"ext1","doc":" 扩展字段\n"},{"name":"remark","doc":" 备注\n"},{"name":"accessPolicy","doc":" 桶权限类型(0private 1public 2custom)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysPostBo.class new file mode 100644 index 0000000000000000000000000000000000000000..d5ddebe38680252802d224cb7c01791f3c57ea04 GIT binary patch literal 6868 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..4a11da8cf36a23b2e44c9b907a95ba7e3a7e3650 GIT binary patch literal 498 zcma)3J4*vW5T1=OXW}as+KBcxE(lhqfkY656Cr135%wS*he6h|I5N3;Exi= zTq@CEvGdsZzM1)UKR(~y0pJ=AB4`P?BwNU-rAk>P-NJcY$th=OWJWSwxG|M_M31xz z?^RuE8$nw@f2QV2mdX_JA)D#kN6-;)iX;p4FCmj9np$ItT8@;{4O2ij#lk2btQPQ^ z{Ol1Y>-ks7{}ztd;8s%NK`fw`Qn0zc#gf-K`AhHl_nHEZ$H924^qrZb!>rUpW5_Fy zWSoGb<;Y6a&fAcC*$Cztot(@w76Q(G6*ml?8tlyyH{HnUnwk literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..339fc9cb2cf7047d2a40bcebbf834109e516b5e0 GIT binary patch literal 3345 zcmcIm>vI!T6#v~cZD?})07{{NLPemDlz_ZRc{Jr!Nn2=2m6y6rmUd~f8#f!Uz7<6U z72j_}d@+85FUue^4h}Oo(9f)drJ5okQ6oK|94MIVa|j-FD}mOxFnrfb#?fvUFlkr3txv>N7EEMpou#Z+R2 z$%3WkVi|hV^jK=LFl1!aFhZybBLW#hokTqv1XlgK*Qnt;CJcf4G1W?`ikTiCQL;r< zpsB4rS;{MAnVLQp=OyM!%)@;0D9rF!&~~pw`v@nrK%yB71?p&#UQ<;pb+?+QD(6jG zBWZXmv`8$*5;CV1%FXAOFW^|a;UAEAki$o&!Y3v<)8!Ja949grhxHMxka!p?%hMUw za#ZqEIz>y%#&%PhPQj}s+R$E}j%)6xQ?ho`>6D22=^V~yD2$uV8i|;nPDvlZI*CX8 zbX+~h=K?lJZ1h(y{}RDwi7nVFP)j8rq>jiH1m^l^ItleF`FIF%frSo>jxMR`6KZC^ zQW&SNVQj;8?m+6Yc^xz6{&$mDtDCv8}I- zpikma?n9=AwF8P zNnN$T$HCcAeY&NNsiwo^5s9NXR$A4yZ!T{u-`u70gv1k^j-+&`ACy$u$UDqDC82Oa zk`gNW5J6fZ1KvL5(XZ;o-f=ZO!Mi7IWhZCmmM{nsMR#%=lNg6ajudeg$7xCWer}Qz z5?Oyq-dEF>WNLH?!w)@+K?F}rm|P|^nz9tDSYS6xqR2HeqrNtRGZN4EwnHkNMiXrN zti*G^ZArU1f*0{p2ro;#!UtVlsTHXK1*+3jzR5;sC0^rBtH~Fwo@_RZb9f_!HznS} zd4a8!onpg=cM?+YylVF4@>zjU+R#s{+!y(_WMy&U_p$RGRF87k@)jh7Lvpb^PEx^B>h*9@KV?r@MU~-Ds*w(nW^;-=nt}Nx|BV8xYs& zA%OSkpFaZ)_<;VUYk&{&5xoiCA!J3);sk>911@#`hH7!`7D7jEpte8SX(Mc-k!6#O zMJ$)vSjO@p8>?7$*yv)p*2a1gn+Ce>q9J+<+m3YIK(~#Z{4rr;56k^F4zL`safs!x zjmKFYxA7#)Q5z>&p0bf+nYU43dD_Ng^cp1?bc#Ak_Znb6y){vR3+c|)LYl>N9a(}^ zSc)}x0GsG-2bQ51%V|Qk(jZ%bV{`#YVd|Xl=zl>wYUBC4=pZi#^cH@=-7Y$D7y6E|Ckjje?GHsU5u+HSg!Z%2X{+KZhS#4a2sOcm^*F}@EP_9KTr zOd?4Wte+ZnfOsDy#1G;M4&f&Z;W{yT6T|qG?jqdW8)z>ih;Nq_4UOIt!8^s{9gj!W zU3Pe6_L_+f*OS?EJ$)YQQC;&V4ikxgAQ)(Jn5+#rOkM^WdnmPUTsEo9D*6F+9i6uk ziQY!Y#_Qa(%c$@DGbRQ7ixe literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBo__Javadoc.json new file mode 100644 index 0000000..b6ac655 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysRoleBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色信息业务对象 sys_role\n\n @author Michelle.Chung\n","fields":[{"name":"roleId","doc":" 角色ID\n"},{"name":"roleName","doc":" 角色名称\n"},{"name":"roleKey","doc":" 角色权限字符串\n"},{"name":"roleSort","doc":" 显示顺序\n"},{"name":"dataScope","doc":" 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)\n"},{"name":"menuCheckStrictly","doc":" 菜单树选择项是否关联显示\n"},{"name":"deptCheckStrictly","doc":" 部门树选择项是否关联显示\n"},{"name":"status","doc":" 角色状态(0正常 1停用)\n"},{"name":"remark","doc":" 备注\n"},{"name":"menuIds","doc":" 菜单组\n"},{"name":"deptIds","doc":" 部门组(数据权限)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo.class new file mode 100644 index 0000000000000000000000000000000000000000..92d79d6a80fa924794d2ca91f211fffd59df1680 GIT binary patch literal 13444 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 K5+mX=vVI29ZwveY literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f2ba17945bfa5cb07f3ae71821e725ba12bd7641 GIT binary patch literal 510 zcma)3OH0E*5T32IvGr9CdJzPVUR>}dQK1zCAtD%W9?B+NeGK$WidrU~iYW$>f4b-QYAgjj*c8ddDv; lV1v&leQyzegKE(o>l+= literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2a3e79a4996727764cf36585e71abbee15662df2 GIT binary patch literal 4268 zcmds4d3an^760AIGELr1lQyL#EJ7(QSv#$1X(4T4lD0H73+*Jqf*>z5ubJ1(yf?mi z2}D#x+)(ySSzHjc0xqrSt)+@Zv{qGu)yfqBg>eZ|-ku47tbUA)O0iMePbi~N6C9ML@8pk;(ZIznPT z76{bQCOwX!yT*DWN14to+oR78c4(3~3P%&1b|{56mTusoefP&oyoTLt1^3-k9O>~A z3)zoW@WXlyizH6O;?i)2%q*o`2xr1IGqLp)rkC(Z63u8S4abLv;S|w+IBgQ`VK~FN z6uI%kSt=0=!zt=DESGp~7>=)J|D3=IiIw5br7Id%Nvy^x0yUKKS;UHLUSLjGO)sE+ zJ=YaQm%swAi=M8}w8o9pCOw~~)mog2wah|d+T5VB1xwB(iqj?Hyj(*C^mpO%^+>E| zc5%6f3`@7%-V~!ZN}R#O;BpuB8hRzpmg{)~-JxM?5zI*Dz(J7YtwhI1ueA7T^sgp>5@dcMRPLTsqjpi7K0 zmS2TQ>-Z)PmF zi;Fm*`{a77#3hX8b`|v+E|qwDh#xSM<01YX67LN0MZJc1OT35iv&jDjI+MJU=)Dr} zWAH3;9w;?jDREU8b$n8Hb%#rIjl{KK)S*_x^%6HQmX8d-;yrfCYu-%~?`J%p4y7v^ zZkD)(ZE87F%d~^C+$QlsHmK!9L$!tvOME1ZJCU?=p7W1N+!4kdC^dXs;uDONFYE+ zAn`TEaoq=Xdb5O@J)$tv1MbKWpRC#hVSCh zD84807~hF?#S@FpDLN*S8M>Jm^aF_>@_|&Hn{eY9V%p<)B8neNJc*|S*3R_08?p=6 zCT)F-{z0;(UI}$viEv&-X@|+YdElm{ z#-HxG)=_YE30F^!6Y~N;4gH3jwo~2>Yq*9(RpXqO3#=}kcmfa8eU=Vt0Z3rUAxsYm zto3iejV5<;aiJjH_96SRl;2H(rmYi}OH;~-nK!BBam%t@-K8U!V)q-B&+){#okkPm zLfaXS(a`D`woBEE_1M{*Z5fu^Mf2I?G!F|rL&I?uNt%i2`)BkNBPm$hx(8x6{fOY_ z^v%maJ$^yo(g)y|_!T_~es2gx#*r#i(g&ih?LkzDUHcH-wg)x+?QIIR3JomhDICf2 z7=`0lo}jRVWvfC5%Vi3kBu*aaIDq>0eK>Vn#~!RvIE@#(6*jQkq_COgfWj7*LkefJ zJV)U?mKP`_S#DR@!O~KABTHA|LY8k*cniz7DO|?#T?&`8yh7n>me(oV$npaUx3c_@ z!tE?Srm&OcT?(IOxl7?5mP%nS%P%Q>h2>WjzRvO+3Xin!q9Rp#MZAvYU!akm=21Zx z(4U1S8qklTDf(zE!7*5hV{tM)t;2EX!SOWKEu=wg5zZyMBov3@vok zx8i!V;Z_=a??4CcCJ*;e2lrta9>8)uLIdt&=%fa%p#4|kIr9E8R^cC5Eh=b?)zIZN zwAF7~&`@e0evRKyV`t+(_$_`%&F!I^<~cl%3cL^yz}NhqG=K0kk?Mb;FN$cCu8S8* zQzgiW&yJ@8c5I_r$Wj`m$#pjX3+c7<;rKr2~!wK# zsB3N853PMaq6$Cace3VmkK#q6^IIN0F(d^zyhNixFAo==6J9L`@&i9dcT U$X^71^aA)3{!Eh3*1rI+00r}8ssI20 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo__Javadoc.json new file mode 100644 index 0000000..294f264 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysSocialBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系业务对象 sys_social\n\n @author Lion Li\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"authId","doc":" 认证唯一ID\n"},{"name":"source","doc":" 用户来源\n"},{"name":"accessToken","doc":" 用户的授权令牌\n"},{"name":"expireIn","doc":" 用户的授权令牌的有效期,部分平台可能没有\n"},{"name":"refreshToken","doc":" 刷新令牌,部分平台可能没有\n"},{"name":"openId","doc":" 平台唯一id\n"},{"name":"userId","doc":" 用户的 ID\n"},{"name":"accessCode","doc":" 平台的授权信息,部分平台可能没有\n"},{"name":"unionId","doc":" 用户的 unionid\n"},{"name":"scope","doc":" 授予的权限,部分平台可能没有\n"},{"name":"userName","doc":" 授权的第三方账号\n"},{"name":"nickName","doc":" 授权的第三方昵称\n"},{"name":"email","doc":" 授权的第三方邮箱\n"},{"name":"avatar","doc":" 授权的第三方头像地址\n"},{"name":"tokenType","doc":" 个别平台的授权信息,部分平台可能没有\n"},{"name":"idToken","doc":" id token,部分平台可能没有\n"},{"name":"macAlgorithm","doc":" 小米平台用户的附带属性,部分平台可能没有\n"},{"name":"macKey","doc":" 小米平台用户的附带属性,部分平台可能没有\n"},{"name":"code","doc":" 用户的授权code,部分平台可能没有\n"},{"name":"oauthToken","doc":" Twitter平台用户的附带属性,部分平台可能没有\n"},{"name":"oauthTokenSecret","doc":" Twitter平台用户的附带属性,部分平台可能没有\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo.class new file mode 100644 index 0000000000000000000000000000000000000000..3efc736cd9b86dad734dc878ed1b178bd463f405 GIT binary patch literal 10663 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 UzmMyu^mDXwkp7$g7iF0KJ0sJ)U;qFB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d69cd7912502a9b3bd346bd01111537121757da0 GIT binary patch literal 510 zcma)3J4*vW5T1=OXW}as+6aQBjSF^i8b|~|I1#*b7GdwQo)hk7k9`DE`>!ng0sbg) z%s~nX!D8pJ^L;b(?S6fKd;-8N97WI)aBXZMr`A-;D(M!^>q<^JLz0=1>B5aQDe@yT zHml@O)wQ+}v<38MYOZ9dsE|+DOy@p=j({^XvOxb9GFc+k8cWo2q?~S;0=g*{q$%zNCfL>~X&GkK&ywdrqwnq2m@45m`p96WU^aIV&VOHuP zk@3o-At&HuIk-}_^ETvOHo|#MCpYwpg@B8-B8S17279-}O(s`NY6qveX@pg6tatpv l0=D>U^G5w8?=&*1@9V6#q@P(9BmFO4&g`q;yFeke#x10jZ{?(1lHqX)?4!lbJY~7U~WtF1R6X zxPqdHYjK%caKYmdkG}cnqmLer|A0q5-aC^?Qi`1N=E*s^nfu-ScjtaLKmT*#8vtu? z$&Vc5`j97(j{*sS{Yt+QiYa<`Xmi(oHDXC9Sgq-rwN^rIc}1rW<0Q;8% zgpvbEOO1!3^rY#bwt-~3sw=wXhYz`a$Phjh35-Xvg!2E^>oPK`^@fD;-Ky25DrTgo zQ;GGd5=zS}!kO6GEK}3FYuU*Jff7t4jpS7tlgdXcRCIDklLRJXii9F^(qO8Jr8cSw z%CuyJkFb&QFil`OW{@~}$QGZN?ZAUqvSk+EE01y)KZq?B8!E8awa~k7pUXoLMou^h0E6<(8&4alkcV|%WV|6jWf$9 zIp)Y{61bf^kRfsV)0GShG;{MXBpJSp%>u0~U&0U?x}`*{j-+a~C~hIP3be6W2_t#+ zv5XFZPS!5YXt(wlx>LjL0y|i>IHQ_6ld((SPS)e*Z!qEsMIZ1y?h&}l>+%stG8BO> z)(VhTSc|B7Qf=vrcc~_qA}XM=UVz+Pbtt1-poca6q*)h@nrbr1I{O8BS;tR0X|{~G zfX>p4aijCLvv5M-ZWd-tJg$tSfW@-oNVZA0OoK)H1rD(2I1)`UWef=1<5}IR(nRTH z(fb7M_pEwc84n6P#7GOW+Nwl)m2TCA@vy)V23(NktOFU32psi#dBeekW~yE18 zm+>-A`tXXtt2}m#GA{+a3e>rg7!5xbdR^cR?)id5pH&x&`Ed%TeRxaYZJd#?W~>vn z-AGSna*$BXrg$PI!51;~e$}Me*IynUtF7AWNT$8iR*XrC^Ldw(IV)ky4TLZ@>pq;5 zuyU+m*}YIg<(LhTP9a^y?g*1G|2m2pgy=?(bF&q@_hfq5N|-z{yMct4;nIZqyjb`RRhx8`s36hTlyI)3(wKpo_3mOKJppovs`7l52)evAaMe6TFn{ zquWnCV3@rj+KWupu&8<=9@%sO=vFPQ0HlJFkwU-?97?V|7Z=_y21Vs7OSr1SJ6 z2OrQk9|OhskiLa0fRFGoJxToDkQ6CPCy_@V;D@RokuMEigm1?X3Y&vfHvBdMOiOJ{ zWjfQwY^FEcC}Ub_qnhbL8;gl7YpK4B;^0NB+EG1()i&1gVZDtFOgGuMgK3M6Elk^O zY-769#%`v2ZA6&vv!OAK*)W)zHu{(zv~e%f2W%W-`ml{hnLc6TDW=cbI1wDAMDm>E zbS4T=L%lIBC=q^VG1U|MzubXg}Hng?70p!q8}Ui=zbt*n&gYO80pij-wqX z(Sg&nft|xP!fQK*Y2*41JMj~B#V=&xSM0`b*n{7(*TH)Uy@U1CKQ5vg0;yjFO}YoJ zqr%8*MR zps2Fy66D||_-wq%??CndD9joFMX9*Bv)E<;7!J5LFQ#lRCYr;?j!hfyT+d!%mObuN TvX_IeoB+NC|54-_^eyl&JnE}d literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo__Javadoc.json new file mode 100644 index 0000000..d01b4d2 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户业务对象 sys_tenant\n\n @author Michelle.Chung\n","fields":[{"name":"id","doc":" id\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"contactUserName","doc":" 联系人\n"},{"name":"contactPhone","doc":" 联系电话\n"},{"name":"companyName","doc":" 企业名称\n"},{"name":"username","doc":" 用户名(创建系统用户)\n"},{"name":"password","doc":" 密码(创建系统用户)\n"},{"name":"licenseNumber","doc":" 统一社会信用代码\n"},{"name":"address","doc":" 地址\n"},{"name":"domain","doc":" 域名\n"},{"name":"intro","doc":" 企业简介\n"},{"name":"remark","doc":" 备注\n"},{"name":"packageId","doc":" 租户套餐编号\n"},{"name":"expireTime","doc":" 过期时间\n"},{"name":"accountCount","doc":" 用户数量(-1不限制)\n"},{"name":"status","doc":" 租户状态(0正常 1停用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBo.class new file mode 100644 index 0000000000000000000000000000000000000000..6ff823e42cd3e7ccae5daa54cabf40860c853275 GIT binary patch literal 5425 zcmb7HTW}j!8UBtfX(f4+_?{?D+FV>>*^Y(V0I8fnV>cI5+fCy%g@jAi(qeBU?Yg@w zx8~MD3$%rlaBWC|76!;Lex! zxwa92yH)g{S3s%hW__yc2y~r`ARDCpDz-|}l&y2?75Sc=itV_A3Q~1)Q7=^_Z^^B4 z%RLc}3CpVLn(5iLQ^lPgjpJ%=-N}+>mx|rkBcLwm;Wp*gx(D+S4$lsW9#C;N-Y2km z747e@w+SEYP-+aS$YV$#OO2UulRbm^HQUT$1p5_?swm+7^sVRGx@%MmM{HYLp=;E# zt}mUod~$((gHeu$<}c_acRXr!#EN@V+$-(Q(27%@3#DxzQ1L;0NT4^ct;LIdO?wLc zC>8HhQ4HzkJXdxzT@R_uSmxQ*npV*#EwiM#j~ebGCA!;mxq~MMTb&vi2j>2tGoe{) z)&7es?pJXH69VayW*&X4u2lv4qGpATJS$7@0To9jIHgM@6XrM`P;ep)kC*wrf(+kB zRXm7k###o-s1L49A$S>PJk|V!RB7L_qGkqS>xiSk|gW*_&n;VYF=a5Z5WpTJCJU zS{?W5({b1V1h(J4`tskNz47+XU;M|XGSa zV+k6S*Pwz|>4l?Z!#ytHq~F{5BW=mx#*Rynj!KjdHn{V3NmoDDE`f9Uz!|Pjh zq+AY-x+5@Z%3O|d-u`LBDl9O)>+^-GVJ_)L)zAyts(%Yd>aI1TEiK7jN7uNT%`#(h z=ua%!y5leg0<*Hp2kEQPpsA1gzT(5yM`iUpqkdgH;>i~*!yI(1x?R#oR~yP;eq`64 zkv;jmK*G@6x_w$>++_o{N?P@dW*c%GOeWk#gV7pm^2-K}0q&=Jx@y(t ztxDmzZtAw?>Sa!G{F9L}@DbtAUt|O3dDmDBhnu+9 zQiVwxFa(<>b8~e=}>)}ryjT3 zCa)Jn8>T_WClV~Dz1 ziSp|b@#-2w)YnQhx-JoKyD>!DT8Zvmmx#CD7@{4mLWjPZMb--EX>4z#9cw5jZlZ7TfpE2Cw0M ze2G#Pe`bgOGNlgug?aZhB^A%mwn_9V>3?Cff^_Cx^eZ^dPg=Z-ZN8X^id*8R!v^wr zOO_?%U*(`i?&I!ce@e>8OQ%Fn72hd-drCH(lB6r7Q-T6tX<--guP$kL_=$h=nI`E= zo#Tgi{>>a_LftjHqjP+bxs&c3z6xdkbv%4t&L1cyXTjF-93|=2vv{6TlBseJzD_B{U~a`XC@Ef8|BCE;ye=dZq=jH4A;f#6 zSRJ>?i9RGlK!`~+PX(}41h$H7o%O(bpfrP5@i7Yle|n9|s#g3O6`ML*0vElcdcm8O lt?!$3-h2s{@U64>Hr)w2Rp7h)UcnDJ%2N6fUdB(5`wsyqwRQji literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c7ff2a1a4341b24901b8ea3c4629e275274003af GIT binary patch literal 1714 zcmb7ET~8B16g|_HuC!LF+L~NnyCMG7DstJ&2ND2~Leer=zx8pL{ooQxgiTnni z{3pKRgW=g9WxTtf(XwsQhn@7REAsskSCWZH@^T=4;j_agNiSiF3Wma4@;9iMSk;7|KWdn7e(heD_WFNO;!4 zb%rIWU0>S6sO$En8VK2!!rkJb_*1>|uCRx?w@+OUgcT-a$cH*Io?uvb8!0OTv7?S< zD7$^Jsg$N*i!(J@4 zO08;KoVSLjgFq{qjA%qw_QOWo8UlNltdF!*)pJn|!reUwt=8(xEA^FHjbU|I=-+hy zQ@oh2xRaj#)f%^u`a@12lm!CY zB$B(xVUaA)2qQ~#X?^1itbT^P(|vA;OsY2{FW?iV5{8ikY#r#eZny(u}0c;sK#%u!@Jtyp~9tBkhlfx$2>Y^$+xC GgNENS&fz=& literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f72bd8b28956a257805324731725417a1a734e68 GIT binary patch literal 3401 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 Mg48UcIKAfI0E#xa2mk;8 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..59d0c0e65906bf1afc9c456a8a8e78756af3ac8f GIT binary patch literal 498 zcma)3J4*vW5T1=OXW}as+KBcxE(lhqfkY656T#EUBJ5qpbHd&3v5!D1|Cfb7z#k=! zxm2RTV&}2*eKYgzetf>Y1HdKhMbHv(ZfqeZ)>O(W>E_O3B`2JbmYI?1+&wz9BlBRE z;jOA`v=Oug^rvd3WT|u^@3JZ8K7x*bV=}TJ{}M7;lCF_TLOD_n8>WD6N`+QFSQPM@ z{Ol1YtN9nn{}zr{;FeP2K`fw`nqYIhrjpk=`b+QW_nHC@?}PSK;fB-?u{uDR^0mP?aJtq{v%}f0Ig5>E6SVfl$gzN>%Eeo^N`(`|IhM-~RsTX8@b< zV;OuX@S{+o2*m-!SAyi9oH98VN>IMqEv) z!SqDh)Z)P?jr2q?JdqwuYpF8$QBVd2(vNb93RDWz{rjq6!&}&42vm${W>`~Gkl?bWeud4Ho)`)77BeJfViv7P-?3tL{oM;1hS;Im5_2$Dpqw`8OlhjAb!kb8 za^|!>x(#=S8j1N>Kycb27d|U@0~_s_UnKDWn^&gHcTBLSOC)O9jxuG3^$M0sJcMPr z?hNR03VF(%jH$Km?VLNKV4cKzY!E1=ko%}2;%R{yUN&uqdemgdkC4Dzn?+mKttZB{ z=yo+dO0#9yh)rC9RAn>W%ucQ3Nc`9$(azJQlt5<}PG6@)7stnYbKUKTGIpE9BOD!L zJ*|Qr5|4UV=G?({OZ0eHPpe>;L?72I)5sQjRVNGm5@9YlrZKBmFeowP;d}MSxQE{> zvCqS2^$HG19Q5#PXJ8^}XZdl7Cp>&suRxU;W_$_xvy~27jKhpdXbdhPXI!O%5s6Vo z@*(OQH4<7P6CZXC^1MeOTg%=XF-EU_#;;swg63=_sevLZIIAdRsIO$=t z+I0$E#w&ijDshUNR(ZCpsF(zbA~9+o3_30GI#*3`GGn&KC~If%rXO!foW(hT4f%DX z0mJQTWIRbV7Ei_m{1GE@SW8joNY;1fXD4(YoV!D)ArA~k@ivF>jzCY|o9AQMkM{&x z@{8tf&1ko_g1)LH|Bu) zNuin=St*cr4v03ouJ~XHEX^a+bmzsnpemi)WU3_z%$Xh&9bY%Dmg&&eyYHbKjdR6@ z+9;HAItr0-sxa41RgY$l8d1B|X{MH0deke1wl_B>037iWZ9u3h4)2YWfvL;_`L)_gzJ4PoT*{nT0Br)fVQlTxel2 z%Lgsgv23)^%yOlL)g;#THs3^L;5s($YrcwB3!8be!@^dU+b!&5*=u1p%K-~}Snjv* z7|SOuL|7iOptFowFj%H6WLO@xaGd3{7ES~%lf#8}ki(cq-?L~`O##oP_f!qNV&>CR zV*%>05G$|Gg0D4LFTPoJSKSDuA!h zjEj_APGF;xBsYPSE_{MdDUlWUjDDX}GCMJbFYqM_Xq}UANAoplzOgmF;=j=Chu=@_ z_gm5w2{Piaan5Dq7Hz|9+-5ccmpS17!a~5pi#O3ot86lAczg{n3GherHN57-BuWB; zxS7N}5B7g^c8vG{)=;1=#Myev;RfPtBWXj#Mk{f)i8yPc|IO&Y7Hp&U%`W;nh^rx!~cJ28P?oS@lL^eQ=v-Bc6(#6lPsFn}u<#5H<-{DM8Wg}wM4`)w}Q(Anvr zdT`j%QRRM7+Nb!v?efdINt<70bq>+wtYlW5l^(wpC@TIFgGBBhDD+j^443+Bh9`ll zc5?4Khh?mz#RX)pys_y9l)w%6Exf@soqKRga}I8~>larI+pGd6s~npbT$`&&`gq#5 eY2p0+?3L!&E21hSdp>+`J8%&{kmTNR3HS%GSVx`! literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBo__Javadoc.json new file mode 100644 index 0000000..59030cd --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户信息业务对象 sys_user\n\n @author Michelle.Chung\n","fields":[{"name":"userId","doc":" 用户ID\n"},{"name":"deptId","doc":" 部门ID\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"nickName","doc":" 用户昵称\n"},{"name":"userType","doc":" 用户类型(sys_user系统用户)\n"},{"name":"email","doc":" 用户邮箱\n"},{"name":"phonenumber","doc":" 手机号码\n"},{"name":"sex","doc":" 用户性别(0男 1女 2未知)\n"},{"name":"password","doc":" 密码\n"},{"name":"status","doc":" 帐号状态(0正常 1停用)\n"},{"name":"remark","doc":" 备注\n"},{"name":"roleIds","doc":" 角色组\n"},{"name":"postIds","doc":" 岗位组\n"},{"name":"roleId","doc":" 数据权限 当前角色ID\n"},{"name":"excludeUserIds","doc":" 排除不查询的用户(工作流用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo.class new file mode 100644 index 0000000000000000000000000000000000000000..b5e908cdddd4910ae5884a3a68e8323998e42770 GIT binary patch literal 2792 zcmb7GU2ha+6n@^_ncZzWZI?m|YYT!D?FVHML7__vw0srYf-DpTO`Psdy2I|y)S20m zdS^_$^Hz;lUfGy55feqyM58yD_#3=L@CSG);`8pzwzD4*ZMrk>d)_n8Ip;YaGr#`5 z@gsldqH!o1RKx_5xAhf0UDBHFQ7| zIAl9Z>AYi?bw^LTtFC91(|PVpE4^r^v#aiP*Kn@ru6xIJ@>8}zhh56o_5wY#TjsK! zV_HiYX`o9(w?yx-j5{^ucFMPD=)rb@L{7KPy;spo0=+{a2;bw(@J*@QtDz4&1-h0D z?{e7aj-lbuGl5x2LrTMQ5)1#8*db;Jg0>{H{2QD-_)xys>UJ}?*Wz8hPhGXg_^L>4> zMDs~<&FzBWxTbAgpE)ZaE(vtj>@Mh~ilNd!`6mQYS1XohmW>6|H3@LWvTRTH_$VEe zri;4c>FE_3$XCVboD9HWay>UaZ+lZLlVV07UN&4;U!n)Sk3L=d{p*h&fAPV?`yc=D z;SUe*Z#@2LLtuBkrE9Cp_11bHeR8+ebBfPv_pE6d^Of?V;au}W?U}W6j8td5^gIwM zUcsd6hiCs^Q8I%5z`q%5r3Du~vn9K{XcyBL49jqI&&czUF1Mkq>MAiv>F@%xGG}-N zn?>*FWy51`{AWYe#5A!p!o3g_vVdxP1;ZhT3~jKkceYiJ>SexKsA~iQwK`d6*3)yv zIej@GPQ7wf z*|sOEXW8e&?T+C}JKn(6II^-|t_cioO#{q%~ z80C-CoYyh#J19TIU)sfCyi7qS#CB|nB62o2>mF&=J%Tpk@U=qiR|u5mPVladd=K#r z7ZDugHC7dBIL5W+E8tbU#@+GY^aSrLE$nOp`WErKJPZT%Jrjr%y#-KbBhbJzfyR*` znKHC-0!E~_BctCT-a58EUn7W3#w|$~ILYT!zU+`}2za73eCL0KmwDQR?{0$UyDsql zPkI)o7lqN0FQF>yqdz0@In?O-=ub$@9UQrbWOd8Mj`@SUj4NZmpd+O`z_vALV=3hx zcGWcc$5pEIkH=D~)QLSn&l);YYARM!Qr2lJ+LZf?z7L!H6flWX44@ZToMt^lI3&*E z3}sOk?j)wTQgDHVJ&2PNR*YS8Vb5fb8 zk~@&h6i96%Il6}U*gfodSIYax6?u?Sf|G4 zTYH9XMzNp0aEU9WO4=nTPbpAHnh+$4UkOjCw6%{&K`+#rLQO}h7g4RDmS5lOx#JR+ xQFqCJWpEpK0cdQ#@HprSA_cU9*Ur_OxQVxs`UiApPCWns literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo__Javadoc.json new file mode 100644 index 0000000..2531bbc --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserPasswordBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户密码修改bo\n","fields":[{"name":"oldPassword","doc":" 旧密码\n"},{"name":"newPassword","doc":" 新密码\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo.class b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo.class new file mode 100644 index 0000000000000000000000000000000000000000..9202aecacb5c52e720e261489eef6cc67a36f380 GIT binary patch literal 4216 zcmbVPYi|_S8Gg>*cRdE<_`(`O0(FS5On`*I8bW}Y;MO)SCQcfhG~@Nb9=to_?2KJI zKvT7ilBk#TL#sw)Zhrwru~vi{T;DQ{zFsxoSE76?s|(+CC|=#-t(O2 zytnht@xT6a`)>eF;KxaX5RN0FA&QtluU(kZCkuAoC>Xl4=(sYkPjX~h`h=~IE;`RU zvM^GxFPk}e+7?JyW_D)S$V-97!7IkRq2~;1N*{F#rZv^4$P*fpia9FDl2e*G4Vu!_ z%}(2vwC3^?vY_p^@>}qu~)eD$trYX5<;$${OwqraMi^aSh9L1jaiy zZ~p&jYI?B`--@GM!(-SlaIicVSv#M%Ej_Jp`jC9j7rw9`d^zfastieKAfMpBC~E^=SwNX1PC!W?bN%Q4e2Cvx(XW!WxGXD9{s4%TqZ zb7{eG^cNkcPavL`j$=%bw0-?Ie_DHcW$nGs)|Wo{>hoXT{pnvn*_2%6#-nvTU^{+nvsJPj~mEK)koUQcma4ioVX*s5A&P&}WMMEDg zDrs6m+3LzECi1EK6L`TYE#-0ZmXRXbKXhtfP+}|G56)O%)X;alb#gbv#r_-8c9nhU?0L#SLQxIVBfnSs@)KGf!MQdgR)8_t7Jr zCl6ja+=ae_B zisKeE#?CRGsUhi3+mj>gw0X(c(7FT{dU;{PqFC0j7&a={rU-IvpG82h1DChm;4m{r zwmU5g0`^zbO{f}mMxI2P)?`RsB?6*Ou02Jf(-LR! zZS?z`XDgOHr#R1focjgU2Q*p`|F%gZY>RayBf*jsIP%a-NA zyQp6t;w=)^(ZoC5T{jSoEO-9{q4yCDFL(bPp`jic`?xpk>Rv&&FVUCb9{yw^z5hgA zI`SoUEJ5o{M{eOj5z&;164I23rK1WH`x1>ys82`Ju`*C=CQeXmCXtRSP$B@u(}^-r zTP8_RTPBrGDo`o_CDW-QD6&lZ!(}JG)$@PW_p4OYcQB5ZnT}>G;T3j+5Dws1_yKic zJc+mQDy0a~GcYJcS^N?clwz32S!5}(p|e3vQcB?W?81^#5+7n0E>lWjigrAWhIr!N z*cL}9`3+j)(D|1T-(aUNCjW<6JZs}sWCTa~7_C=FIjWMRoGw4fzSI6mj+UH` z(pBYjaFSoCVi)TF4AQWq#5;V)N$NE89q(Gf!4u4V!|?8gzG)xcG|YbWrWZ%*J#7_*p$Nna97 z(G^M|ehn^DRtemXA>=4U_%S(zJf$ep-3p6R%uCEiNZdmkB20`B%mswF$AueXs_(Hl zqD4Rv6RA`Muvi&v16i#N!0}4(2EN7wmsB*{Fl;Z=vv`f~1pP1YS-|TYr6^s+b-aP} Fe*yc;q2>Sp literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo__Javadoc.json new file mode 100644 index 0000000..f854241 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/bo/SysUserProfileBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 个人信息业务处理\n\n @author Michelle.Chung\n","fields":[{"name":"nickName","doc":" 用户昵称\n"},{"name":"email","doc":" 用户邮箱\n"},{"name":"phonenumber","doc":" 手机号码\n"},{"name":"sex","doc":" 用户性别(0男 1女 2未知)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo.class new file mode 100644 index 0000000000000000000000000000000000000000..c20df93cb9686ff1de9673cde83c7d7800be2af1 GIT binary patch literal 1916 zcma)6T~8ZF6g^|_dW~6vLjx%d4QWFXup#aT{RoD%#DUflq)|wz)V_4EM|gw1OLxae z{EI$T{Q=Dj52@5rDGycq(n$SHZId(J#cTkzmF%6lGk4BC_uM=4=RZ$>1+awG0y4-t zuw2;42^1g6Jy~f>f4lP8)+5!>0=Y%c_w;Rn?DWj$0P+}cP;fB_SKwL@ZdaON(2=36 zMEj9eol29I=U4WE%JQDnGTaP^;dQn@58DDGYsUdLbm;lp)dC^Uxfn)KAm5Pw$~Rp} z&(Z0WYs{rO^QCbfaq$W+2n=j1T~BZ?OwXj;`^XuLxwvSMbIQO*Cf#utui+AdwPe() z1x?jUtv*6QUUzXBlL8kza!1tyzajM(o~Dx@Y3b`o;Ch-?66cK20#=MXyyp4pUbnNQ z!iRFJ%~&IAK|{7TW#}0@S+sP^Bl?ZC|0QTu;L?Mxuf2|{`+HvG5op=>11+^jswPG| z=xhZ$l~0tfLa9}gM+Tx}y|XvE?ZIy0Xxtw6$%U* z?o&q5Kd7&-5Vg*lgevN`*KW07 zj(X{)=^ygE69hWaq1=rLN5eVXDqsOs2aBeNO9E5Jt>*cA!H%lL&~aT?WkUzyzQA|s ziYAUR=%>76d!p-RkKEORcY^|l>bpjrJgusEd_?7s z5}%F*UJ^3`Zrx{DYi$`tDspg#7x7fCXQklauE6DgcV$`PeDMbFT85WG@XOoInZr4s z3EEd^RcHy0cIg+0A34eJ2)Jz)3wV=XH+H~POwqcQ>|W<6%pE=j^b?#X+)M)%{}bp2 zrjhM2THr~;I9DqF4Cic0W3fj<$wqxXQ*zD6@O^GI zlu#zOQQX8VCCu4qf)Eq{LOf@d z$96{WrqI!}XxxPJ{U)5}TCZ^p$)}8klbx7u=|Vy(jh4lG#LnP-e84eJv=8~ejgM&+ LI9o;yD;R$P2}O7I literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo__Javadoc.json new file mode 100644 index 0000000..6710099 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/AvatarVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户头像信息\n\n @author Michelle.Chung\n","fields":[{"name":"imgUrl","doc":" 头像地址\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo.class new file mode 100644 index 0000000000000000000000000000000000000000..f59600ef8de378d10066459a26e0f07a80885acf GIT binary patch literal 3331 zcmbtWU3U{z6x}zO$xOqPwka({P>TlbcLcv6p;ZVi6jP`aiUKOrbZCbrGj(QC#s9#& z%O4;wJm^}8Yw_UH7hKEVB;vj^lXeoK__0=-IrrXu_c>>ubMMS=e?0mLzzl9>kwRL7 zVn9Vkp#QeHZ5HdMvtGQodfTc60-2MxV+XSW>Cv&39_Z-NkTtLehQOrjtryokw_$o_ z(ZAydR-?Gak?j<>-D1V8ZCF*?4;GwT?usj**fa!&tD%=>VAqRFp1Wmvfo=I^$-UP= zANuKZZFSlH%3?qfHjJq1I_n`SXJ8Qf1dN*7Xqe90a$pAj4mRYKZp&FR4jb5y0|I)@ zbml&9nstGp(FAFfW_j$I1ixV5APx!itXsjEID*{hSOOl#AVqu0z{`?1V@Xn9?mleb z6}&2-akora;6Q6{XRZ={#K3EKU7(NfN?Rg3E|aOGFlJyJ6HH~p^fxN*8s%Y47ILiQ zl!0j!1@<@0O{?NMH8Z$s2Lw5OU^-Hq^KsIhk#y!3jdvXx8h+~z<7VcWjr%mo+Yai<Om=YCl5$fY5$%oC!X?T{ z+;F>`ceYxRw)M#WNmE86*#EgispEqtpt`|^(E~SXQh|M~ zHb^$JKz7+}dNpg_maV$4F=SebtDH4^U6)}s!a2jFE3gt`K}3{e49YvjnF>IRW>OyTtCK{B1eKx zb^J$&??cF&{LO@ud+`=+BLd)Uyu;DE@#=9tg?uACL-YXJcU(+imuTR*M0_!IA?ocU z8hkDhUpf?_J+%iI=p-8ILKG=n_%CgowqGLdt3goa8>0 zw*pJjuHX!2yV3XlQ+iqC9eO!vr+*LcLkZ=mCZiva^yx%}qEbH_ebhUrh>qGI!*7$L zyAB8GFp}+bhhu&|M0tthblgLNyA$KzLRIch`~v+OsOkF?KSN)f9Dj(Ra7ZJ6VUj;3 zW$IV#$t#aBa1X{*UU`TYTZoa8O2|kllUF4s^BB2%=*_G7OafFWX#^EYdR~(tJqBrc zy#-S4cg_Ds6zER%?xKP-%ytN0Vvg;fLIF1BIhW?gN)2aeDg2$sIa(?fsrCY`4C*|Q z=V@v1_|f$NEge<*oPeR}zhkck{RxIOr1+P}KBQ;|u5XE&X1H7xsX@l6cx7(n=vq zIhUA0ns?7Jd`L^-8QM>zEP)jH3uK;hLZQe)P*@1@lc|0k}Uq`LqB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo__Javadoc.json new file mode 100644 index 0000000..94e1780 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/CacheListInfoVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 缓存监控列表信息\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo.class new file mode 100644 index 0000000000000000000000000000000000000000..9e6d59c6c589fcbc00f52064083c5b584e128867 GIT binary patch literal 2885 zcmbVOU2_vv7=BK&o1`IaL!pIOR6dIIlSM^=q^&|JP)Gr3Eq>g%P0ln+lij*|(wY7f z#~&a!TS{x;Ecb)pW&s5&)MC!n>0G&^kdI?&wHNteV_MZ_qV^E{RChRpXQN5 zIt!x!6B&WxBYWGnnzp-P-CKVoYf2z9>$r}Z7f6p!to0#>zAW+u96~{0#`8C=gx7hZO^(cx74aH<%(<)Y0VQjRBOoErmWwQI{}SVLu+m2G_9%=sES4( zC}2=Sn|0m}@{}AdU>Km!kY!0#3>3JcFN4bGX^1SIDPRm|1&+1s zO}XH?HCsJ&6qVdS*{))s7h`w#Bkgu2_AQKOMfr}qQ4#1{aW-6AwS5{p-F0I&K|s}` z`aCZz98jvcR->&vuW8jhUq*>lOo^rQ(gQ=I7*TkGRmYWg+pTr!uiEQP`Y=@WYIbwY z_8q;Cg@$T44AH8-QYp~P=!3SaoR(a2x1GQt;8oZ4l&u`{rfoI7*1ET8-IT8MZ6)ix zGIk(`Jwgyz?4kC5h!_aEYUs#;JWi|$jC9hnv$ac2aapQ{SHI8ZXh|h~hIO_Zp+^83 zGe^^5?FrmCc;(fD(U^h_IFu-xsKH6A>8XbF*^fGvV;wDeI6Uf<JXH~w9fnT=S$ zDbC*%2V#mpd_6$mt#Egad(QN|{W$u#=KF^732Io}2|mrqA0fUAuT1iPCKUE#ifetD z3Yf+WpXcLKi%<3+jv?Iz^gXiQ@-T&cpd&qiBL6OQ0do5H0PODuJpPY>Z+8K{gLh$s z9#-j+rYJKx^#igx)^x(fDAtikBaT(`5RrM2+7S<0a*mO|M~TTEL@{Ri{Vv0odK>Ql zuZE+nB@GW^eBbckp5e<~hWSp7Dg1-cWa(#PYVsSH#*?XEkoy{D`pMMK$SqG#K1DIy za&h$TH2;;2nO||JWIV^=$0*E{jHfuht1((OsWMv5luWIYd5)pS=r5V2%&wC0q$j7h zA|LiRZQu&Z3}hH9sIaC|oD0`6OPS8cJim;}%-Btq^gLH4r^hHh;3|U;iGPycK)F9L zkVWnVMzTopHz!`;c(m->%ghxLlq^<5f62teT%mbg3Z`a6dz~!SWF_oYy{`WXeb_^< zbfF9Vi9#6NQ@`_R@>wocW{tU!+!Mu0gVg4VQ;(6Id5Sl_(DKo;p$|$%e3H|I^XNox zA}>a$F_CFp!c|)2uoCdlZH#t%U;z*KNO5;|TjwRgYGe^Wb R{QHQd0!AmWiZy(K(%;{3Rp9^t literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo__Javadoc.json new file mode 100644 index 0000000..f84d392 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/DeptTreeSelectVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色部门列表树信息\n\n @author Michelle.Chung\n","fields":[{"name":"checkedKeys","doc":" 选中部门列表\n"},{"name":"depts","doc":" 下拉树结构列表\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo.class new file mode 100644 index 0000000000000000000000000000000000000000..6d649e32ad1d81b80659c7ec83a0da102f8d7c5b GIT binary patch literal 2885 zcmbVOU2_vv7=BK&o1`IaL!pIOL_Uh7Uo0vLByAO9fkFyMYVqU7ZE~hrn(WryO=tQ~ z9Djh^aG^7bGh8@&gERgHe}uKhl0zBHw~|YQAgPn`MEanzd=0e#fP;GkrG}Vgytj zsxR?E<$zM%HkuvZaau;*ab=iTpD8g^UIt(&6fF#Iv})P%Zl}E=-8FNgMIXkhPTg#+ zo35qykx=uS7DF_uuT%;&Gx?xn`&L`7*gKYI5%8LAJHF{#6*T5 z@XFMI91aLUV0nPr{~=<;>#Lz72l6<*E-=wc%kFlUn*6Htn@;0Co1-m#=`yTy{RjgB zP?#B-4r))}#=$GE9*n{iY{0Qt*@O*FT6M>7N|*hpQaRPrqKAW{URgF!3)+(%9V$e- z;hJyOw^q&Vs5tcd4^~!}X?len=1Q;A;y}su!lkC7%NgGZOJCqW9JO-$L9@CHV5+4Z>M8#~i zYL+j{89Wdu_7hNyrEXEooeFqe6w{=9#by^(TBheoFO82`hzA%L6j&M$1y26EDl;3h zfYY462@b>rfB1TUz?;GDJolXGd;21WxaRwY@@Z-q+zCGQnI9p(3$D!Ye<~0TW0q@m znF^T0Jf9b$Q-e?TAC4i}2lPGC-|{eleV`))fI|N+_5pJG4*(qQ2R#0dfN%8yzKwUF z1s+!ElA1P$P;}@eq=EiP|9#N^+i&ze|bE9z;H3`n^8Gmj@dj z{;!6^ti=tFqPTB(bkFdWKEr&cMilQz`KLJfg_2K}G<8tWqLYjwoJS`H z6L~2_jfhO*GOpn|UD8>M6|NG<;v%V3M4n|IEpw#>q}_)0k^+sS2|=PD#7ipe?-NQe z4!x_;)zNxIRO{iCZ%8I8jQWa#Wz-`oU=`dmoB{e9H$GBEqDbOdO5#?KjuqVIGeg8X R{QHQd0!AmWhIM>`!rzd9RyhCw literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo__Javadoc.json new file mode 100644 index 0000000..dbb7f4b --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/MenuTreeSelectVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色菜单列表树信息\n\n @author Michelle.Chung\n","fields":[{"name":"checkedKeys","doc":" 选中菜单列表\n"},{"name":"menus","doc":" 菜单下拉树结构列表\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/MetaVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/MetaVo.class new file mode 100644 index 0000000000000000000000000000000000000000..18e96bd44cdc9f0f32c62e9c9fdd324580719210 GIT binary patch literal 3942 zcmb7H-*Xe!75-M*)vnAM3&)745DJc+*s{zflr%xY)QO7|7aJ%hPU|FX*7C+$EbY3| zni-z@)PJB)4KIBQec+*;DI}AJPWzJ1^lxgKe&^nmkR=u9j92&Ed(ZvOch9d~|LZ^B z{0+bo4#to{)`scALe4ntrtB-Q2kw)Dr`_D`6BSR}Ez6=C|^2khd}B;uu^5 zug2{?Z?_${{I>6P?st-)h&yVbTl?Os+pg-%Q$Jv{w_n<1Quy z%na*sBnu~8OyVU2b`-Dp^#)HG+p>PrMNug>!)SjDFQa7R2QE(IjDh)nCiS@0iX*Qc zw*&7m37Z{HoBL2?-YD!elH|a^$+=-h^V?%Ib=JiXan68K_oHjSIrN(Y%GxR3hn*W;#&nhfdd-~}bA30ZJCNujQ@$M~VW-Ca7HjmD|5VLKecKL-=M|gy1t1onRlskENd^7Ru z`y2j&y0wkfBQ>eh*ud%Ahfxx?g0<*g*a_*QccUmy{3K*hrOujhYbW0K-VdUn?I*!5 z{o! z>q*?cZ{QF8(M}aL=m&nZ+YCB0>v6n)cu*TomcErE2k+cJ2u7%X+^65|KYdFn#ERc+ zZiY!va}XLR>ub-cSS%TpbK)%-)7C1YIBv<9H{h;C%$Jp>-{}M$8|-HlhE+gBsoJjVi7Ku)d;XeE{YC5YNkF`x z61NEBd%{>Y92?j8XYk?rGM^LX5wGgY@XefF#-pDlBdqdYVgH#zM)A$5#Yx4>)e0%E z_o*YhA8<6}9X$eQd=Ti=bAk9BF#@RYXn@g~=K}EyVFb|BAfxlo1zN+;m7$;zJ{rESte*`p1#GAY6MkX{ejOV_>`xyl z-Dkr~S@z&3hv09FX5Uwg&xV)W?ZFp^;Q2ME*&D0$Yo0!Quu%RImicJmA8;PP%0627 zJDiP5`3YW8QwrxReEukVoXp@7+*e#>_85hX_zeFfvT^KTqy(YxQF zXd}Zv$M_B}Ycbz1b`$01fU8aU+D{YZGU-X0TjJxv!t2j+t9L7lcad8y%Q1tK!7S&u zIWbv8#-|)}R0|8WE9TOfLaiYo`vOkk=0jKo|Fb0(HQ8XyoWjCG*o#kaQLR_1rfihV zbjOiM>MgHosVxRk9db&R+B!2jE>|^)^afdcj$iNvEAN_J`dnVMXK@`L^Hvg缓存\n"},{"name":"link","doc":" 内链地址(http(s)://开头)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo.class new file mode 100644 index 0000000000000000000000000000000000000000..d8270f9f3399169e733326e05ba73b21cbcdffa4 GIT binary patch literal 2998 zcma)8U2_vv7=BK(Uk%$fL<$5D&<1RqmMDHfLQ$xER9dJl6a}1No38EBWVh~as{Ik% zJN^K<;X-E=XSi_m250;U zLWL%fdt_}|<+|mrmTxUTvTLD$cENF-@S;FwbZn^~2KsemP3(gyaN6@%%PYRuuzaf= zYz3j+D6eqkxaCc+JnwtoICXo;6HuCg?F)>~zV?O1t>6xEOI}r;GiYK6Ie~uPtJ~Ln zuel+RpY1rf82XO88bR|W-iV+ZUJypmED4599K<03qh`5RzHM4{f#J~c0e#gDr4s_~{EC!>E zlUL0^^}O}wMs=q=Qc>s)F_J}QehB_>X`lP4GL{(2}287G2m#$XEqGJLW#bJi!DXEd@ia@+@28yf9rxGHlcII82nL;MoK%6w{( zF^hLOH)85)r8oWlz0ymqwCUwyJ3W8kV(-N{2HwvgAD6~|f~q_%{RQJksF|mwKVi&Gj6cJH zXvxXpn-hFgl*zxbub{lZ{wFXe3(7MbYavclR6m+Q>M&m7ppHI%4Dk|&<7t0-+LA`K zE4hmNuaZdPJiU|3Q)O0VQ0Yq*2NerXZ3m??6d6<^ys0jB{@P-UG}N^?!%-vYom};T zG8Gl*SgyLp@))_&6X=uAaQdONpQtEuqo5=^hAdjVHBwQdE!Hb~$tbAN*0J6txELRp zc$>ijt}wl_ACQeX%l_ bjfy;nn;Z?Y-s1NT?sApo>`UCk0~G!Tu|q^3 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo__Javadoc.json new file mode 100644 index 0000000..79ed033 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/ProfileVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户个人信息\n\n @author Michelle.Chung\n","fields":[{"name":"user","doc":" 用户信息\n"},{"name":"roleGroup","doc":" 用户所属角色组\n"},{"name":"postGroup","doc":" 用户所属岗位组\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/RouterVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/RouterVo.class new file mode 100644 index 0000000000000000000000000000000000000000..8a1b21155bad6afce3be5547ebed272a273ce5f8 GIT binary patch literal 6338 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 bI2jh8h@*k4H2sc#j~1WYJM;(o6RH0L5!vHx literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..59dd3d74a287532eb58f892b696cd2b31d72b958 GIT binary patch literal 572 zcma)4O-lnY5Phk&YwK6_Ac7!x^kTr1vMSVqAXEe^z4TDhZCq1!lO-PuJ^Qab_yhb= z;@CH#MyN70$D$NG6FTLO!?8?!gc`%KGCWoOH4J&CbRiXK@LS>JtdgPLRjC#} zSjq6#`L7Xome*f(RvkKC!kpWQZ(@c<*94o$JC)H$Cv$9p@3WtA8IGQU_9~b6x>QaL zGuhJGc;S`Nj^SY1I2VQUHYA?Uj8mUlV)Tnj8BQ0PYz1#--1d|=7@Sj4H8@G47pu7W zv!~v#6e&b1FO2n$mcy_{XPy24=oQgj!3OHn*uW;mL&CQR+fJ~9-9A`?CieQkH!2Oa AI{*Lx literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8bc0a62dcc186e6b53b6d19e764b56f25b3c2630 GIT binary patch literal 2248 zcmb_dU2hvz5Ixtiz1Y4^+_a$$ZE2w-*s+^U($Wvyq=b}&5GQqOV_FCw8~fsJYwud? zjZywpc-cxIp-Ma;@xnhs%y`$%wh57ukfj~(y>rgYnVmcL&%b~94Zt$$NklNFAu16= zTp;t@=oxy;u$ubAz2~a#3dHZ3mg%ktjAe5*4Q~ltvz?~iaO}3>7<%`h>#DZipf}Uf zD+k@RmZ>Z^2@PXOq#!kX~&lfGkPeU`U$cgm+T-Na7ZMs0?9N>#o^TRkN+^ z{eF6PB<^y}GX#5MGlinWJw_%88N#ec+-FRZFvH~(RwX{=+!EwnaSeCB%TgXle8zbt z$a%23fzLH;N_>GWf#p&Ar)m%TaNFo~l(X6Hv;?%eZS|BxJ>AQeM&&A=;yH{`%#Gxg z#0Ium%#OgL|B%9H>>A1fcSqHAtVROSHM^mx|4OE%cJ|wQ%BdQAEn1l@*>$5;GaQrO zgT<)(%KSlZLr}|h#{whTZYdFmXfw_^12$P_(f`^NDQa4C~zly;{7>T3=NoIB|MpeC4t!!peH&eEB3xqSL-GhcxISq z%|5YA^E?CvrXTNHE*;65*){1)tXh^$$H%lS%H6MDx5LxyN0#)H?Yz)wI6KOAXfB3+pXpBokLk(VKpGW#O5Xuhd`WMD z+nKx={1;y)WS`{!KujF|3hn7jB(@8A4@nOhw&y%tV0+2K6}Intm|>gskY_vZVUg`k z54YKV>|vShCmz-chr~VB&*v890-QmV?twU_=zcj*ll}sY<7v#&5TD0I8fBNTg3DN^ z)g4?xjbwBFSN$A={3%=7`HFOmlaeQRN*ccI#}RRSLw{m|_I;gOfzICpon_WpIOP2P zXMIalWss66T?ug-{o}}!z5*$^POJ0u(@Ea~>02ayOQi2+NLzWRtsH0r%Gf=wEfMK! z+XXVKr2gAL-)*W8f5-G({uNS%SI|7HbMeE?poN+t9R%chF=qzY&G?+(1)Mj?MtHl= b>7jHQUn0cE^(VdvzV9dS0}QgwVF|O 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 A^8f$< literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f77e8d01d8f50a5884053dd00f4ef0ff7fa5b9f3 GIT binary patch literal 2155 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3d37f7cff218686086ea8aaecf6dc3332561b8b1 GIT binary patch literal 556 zcma)3O-lnY5Pi|wwe_od5JB|r#enE(Rj7&}R0J!%^ia}mT&L_NOOh@0yY$GpA2yaG7GR)htC6YEkra5h&?Nk8^M=W@Um89B1DJ@!|+2p#)i zXX&jf3hg3P1R6s%QZiE}m3RH2PC|sLz&=@-Qg|x+G9y!H%1Fx#<@J;)P-|0aR4APm zcy4{yh+Fgdr>*}j9M8ectiQuz1|U%Dy7#fdi=MKuiJEH wGR%%BFRTlm40js%=)cJ1UP&$rrHo(tqATqlojvF7-MfFj`Rx^ekI_h>4eb^>Bs$S0 zklA$(9J}gx6?<)aSCxE$u7|GY`tt(qW7(pGZh>KKDt6iEnqwThaoF%x%`VfI>)Gpv zjU`q0Q?SsULK@OSuf#d@35@>tUkAGRV^ItAR+PVJl;f)nx26R8$FhY`*1qpn?Ijw| zGyi#seq11U<6ZcLv6JX*k);esT*7669-?QB%jE=h=(wQ0N=Q8@@gA-cl&G7~ChajY zqP;G0gK5)5`@}KIBVv{}Br(h!Y2r8@Ph&*l1AG|anS0e?j~AOBL;7{!xUrOvB*u`9 zXpZ3nvBxAjk~1NZWBR_>wC7v=?5_Z8WsfMpj2;Y$ShT)RniHS{oYvGy1cX%#vzqLBw(D7MWaq4wtmTUE@ zfK}4ofiiUJ>SKl0c=Bi9;uZ4Q7BDGn;s>_yqrghbi?_mTVM}1PH8&@+BG9p@%Zf_2 z;ChNma$A`VXS+%x{RLfeszt}R{2dQ=_&aVx;H;b^d(DZ}cn|Wlq+=>m0xjo&wvCz~ zA5MXh7BWpOi%PAuM;jl@&a5bZN0+HhP&4qAAqy;GT3{}DprVePkJ?*!^y87ZKPHE$ z-=6a8sle2_-Zv%n*yXei$2C*brzB^R+pxgk(|ymU)?9QOF6Dl~^E4eOS9_#;JWN2N z&JFAZ+xbPCJ)5owqqKimSN5W=)#*fgexCZ{Cfz;)KhagxNs(?KdOGxFQxrTp{u1I> zdTGNpJ$V}FMTwp=0-y{p;^=o+&t9TuB{vZu6(Ga$Vt^|g zuLZct@%;d!9LEFP;y4xH4#&9wd5-e|7C0^i_?+XH0Ybhf0oHRzv{rklZytU0ejXik zGj(Br?!C)&=Ukx+Vi2QrrA*=~bpqUE! zJ4X(8;F7o9a6Qq5J$mUBG#~kY9{c|*_P@pcb4RTAfA;-=)Pe4)4rIx9j=pY@?@4lK zlkX{dnc2hrw1u9lKxTomQj2}xqs;NX z_l{4zMmqNzR)8XJPO^BcMDg^-3vwQrGXqpJ5vLb(&QNUQ>5wzP_h<3-B=~q=h_4Mg N6i~;{6uEv4@D_RbQCa{1 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVo__Javadoc.json new file mode 100644 index 0000000..9cc872e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDeptVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 部门视图对象 sys_dept\n\n @author Michelle.Chung\n","fields":[{"name":"deptId","doc":" 部门id\n"},{"name":"parentId","doc":" 父部门id\n"},{"name":"parentName","doc":" 父部门名称\n"},{"name":"ancestors","doc":" 祖级列表\n"},{"name":"deptName","doc":" 部门名称\n"},{"name":"deptCategory","doc":" 部门类别编码\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"leader","doc":" 负责人ID\n"},{"name":"leaderName","doc":" 负责人\n"},{"name":"phone","doc":" 联系电话\n"},{"name":"email","doc":" 邮箱\n"},{"name":"status","doc":" 部门状态(0正常 1停用)\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVo.class new file mode 100644 index 0000000000000000000000000000000000000000..a0775ee48a97ca3f4009d69e5d01f6bcd54827e2 GIT binary patch literal 7289 zcmcgxZFn6;6+V;P@4Gi2Hy>r&QdDLD|q~N!pT_Ky2FZrNZWBNtWE~hP#_c zKm`PZf9WwYQddcHMVm_*NZ3JY#wY|$IAi~fM=o8vB{ z)Fe9n?xcms3|F5s>^f7uoVQ7%W@?eRF}I9ow<)+m$G4`easbV1)JE-$(wuVGoUlra z@(Om$FWZu}Q=>H%=(t&$xA?Pkjn;B)FsJ>CbAfWbMi&OkqUZIOOwZ%Uk7=|q7+hkA(yHtR8 ztlkWe+cervJ20i9>FmCJ-o%nRwkT^7`_bEdBL{y%qfgSO7-gp{pZi$2HNT}>84x&@ z@9(EIx{Na?EKck3@t@J?vvfsuyl{8NvhktAIlfn;D`_VqO+HWhynWdK>2;3(oJOBl z@qy#H;VO;#xgnf5_dVC|)@V42g!r9pHv9Xfzxe2E$F@hHEssmK)NT z>b_tfxb}-0?V~Y9IcWQpt*E$6-HZl0pwT#8hs~Hay=mcG9RI;Qg60N|Zls$St(i4v ztbW%in*MdR50K;ersI2z-ch$L*ac-*La!<+>9_yCrn+YJ+{o!9>C24TgE+Mj%U0Po zOZJ`SM2R0@FX)b2WzTk<1A_yM*btl>Iw9EZIGn}*Fh=^mdB?}mAGbXl1iKu^^-Ui` z;jL}MMR&FU?g?|kELe9Gty00P01CUgVzlheS!I8*mr;Cy$1qOf((%Jf54?8njVI4N zdvB$C_R+_ePCr)dKKtOg<8M~F?>}*3>7F+#-E%LVS$gIXbk80+xpe6H_s<-8@5FOB zI7Qc4z|*WUqf3X?42Ox%x{jQqM2QKC7z~DCj+cG(sM?kBfqUHYtm$K11}XIBMa#R{ zLAp#VJ@??*mtNqredy_>GpElUKK1_Lml?&xacmy89qXF;*$Jz>Uu;T#*e#l+aT6N_ zA4_G-pSA-htLr#_rp83p$^9C179w^mKU{KWC)}CBUdyq{$X}BflJ(R~)V3l7y2o*B zMl65YogBq&F>ArUm{>SWB%n@pSQsgMq$b&A-dUCy<#|8MaKlf@HeJfpz_9ew1>2C%X8BB{r}r&?|~6KsZAI zNJWJ~x}mvBAvH}Eh;)Ghk(%mbgj;K*)l#b9s+d$^UclZuChES#AM z^wMpjBON4A!WZeT>asIk$^tW8%2JYD;k>h5>I751D-I_@d(53L7p*-uPoMc^mC+8K zV|mi3p9cr09Jg#8aAXz<0&m+e((@EgCVaDu zJCM=lWl3szN>Jv9AuU(AuJ8F}b56vs*PNhJ8G4moOVaE7HayL!t6I?6&VoB*6~xMM zBjAGEV-|h4yvXQ?8sHKrNUt`X$&%%D4ZH5l{9NyOFT-U6`9?*+Z&Db-(n(QCihi?H z8naP>r3m-JL1o?J?v^lCcd~68xy%nvC;wlV?C|+;IXpOAt{fcRsT>^M5eFy0 zSE`botQ!F_=peZU1*hdD>357SUg6>>&n4+?MjOr##VHVOrcEe~8i>)CP|vTWuh7kq zZ^512KqeY$eDsUxH{o{@&AN%0N4LU;Qa#c(1siJfNZT}QD8?ggHf$)#BW<_AhRQsc z7mD%V7v;Cau7`CJP0VeEN=2F_2gbD?xzM8|k7S*L4Yhfs?RL_k$14#qWjwEd9>Z^Z z>#M|G3?|^=-$bD7ARjV!6#z6(3;6x2wBCVV#%uKzL@!hF*Dy9vm1t94A{6ZrM7dg` z&2@=T%|{Tm))H;6ON25%f~cdG=+e4GcrAz^x}cWmin>I2kBA^zS4-4amk2K&5kwnm ziTdjj;YB5aXj3iGP+cOt*hCO@)e?=?CBnN<1kvVNqVc*!i*zS71|edAuz{cYtv#<$ zGCD>&1wzIMj~|g@?!ve@Dm3Jj<$?1x`g#<7Zng9xOG$d(Sx)~Ax;u)#b+z;&(MkHY z74-K+(|4?vUgSzizh(vfz0vd+td?G+TS>om1^qXp>DR56o@Z=ElK#RK^!G*6Z&)oo zzX&Sy8&}ZZA5Fh$we;eCk+Z*O1^olj^j)i^7nhQxzhnjdx9GvBgSmON^x|HV^xZ4y z@i|D)H?|`p*Wije)U)+@ipP%iyiKX6DBgIi=PgQ&Y}}(;SqMptPP*K)Z}AK)Vc0&vK9^L68*CfRO`ez-ZEQ9MmL1IlV~%?KPSK+H17v z%^cJsLCt!L0va+}0U9#$dMgLzC8$-;E1(gh4WJRDU2o%{b_r_J+ZE8L(E-q?(W!TE zP^ScS=$#=bb_^M@Q7H{Xjq#q?t1y4EL-Y_GL=<$eyXaxm9SzjQO7sYHjrizzD}5VM zjP|lY`VOQxjj(=t6jFjptcxCll%z7-K!+fu=)3eG+CfUwVfrUM4k<&Y=r8m=NLhM= z{!C9m(&(@B3Vk0^j{Z(3=}AaUD18oL)In-y3C!dOq!xBD&Cm}ZwXzBqxeGjLrCq+MH%`dNF8jR*3mPNI_bw){~fd`nff<1B`Ng*btb6+e^cxOxN667DN!*YLdB?EMlvuVIOV8hXc{n5fhkonA!Nmm zF(HPZoX&9Ekq~5(@-g{Tr+|#{ZKj+AN1>KEhso`uPx&B>T}M zRh~K^Nu`~as>)U$Ckb=)2&} PiyoicoAeg_p7j3$R&1hf literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f3a5be564f525fc17cd24a3469c5657dfa7d2f76 GIT binary patch literal 588 zcma)4O-lnY5Phk&YwK6_AcEk{gBJr{*A}Wp5GsO|UV12L8rLbi$&zFX{RRFf5B>mu zlo(qNtCZp)nHgs0&3l=Ae7?N{XyGtIg`s6^!Y9^b!V2!@&Z~@1LPVO+4DZifm!$6s zF9znxl)`(F=gLN?GBl@RCU`1z!XL&{C4Gb%!zme_kbf!0JSCkgN=fl+;ncE|q28xN z3tw2p@Y?%}5%<>jU-kY^JYG{sXIL* zN8?m=v^HLNGTJd5EyiaecitA#^W_7CSv6_&GbIe?E5&vSZ)WcX1^ORawxwqUdh&%@8t)0*blirq;W{nTH4Sgi)2d}`(3@o& z)je0EOJ1{+G3U1e&uVzrdO>3pFQ(CcWc zX;2DP;vAuo#9l#fCts2S=qFn;v=arkL=W&9ElG-uCch|G{SmKkIQN{A~YllxI z$}ywFMi!q*JdQmUym_^0cAA<~d?B$Adn7ip_)4O}9s^X?Wkqeh!|)}ECk!8;;>D}a zu$)F!Vg;)LbI0%I6({j!ESl}Mau-@{I=Xb-v3C`>$uIfJ@#B?_z$P-43dh7{@C;wG ztTlnvcOr7!3~78L@aXso52=_yZ}_pEtXQ^M>a^CCyJD_4`SYzfb+cJBU5nqN#a_K- zc>?7lYVhXNIV3BeQ;AZWZevoQ_zuCyD@)@s9*6>?M>r=>jfPoOoAn)Plt@Z$QRyvb z<0(ztmeR^4Sxjh3;C}L34rg{L9DKq2h*qM>nOqXMb%^Vsz)aQYxOMf|;!+n9Ol!_t z3O2!mT3~p&V{01THOsT;T;^=s(WbT>oA{3f#qioZtTtKJ&yKre&}HH(N7E27%1*28 z*vi%=T&MO-LEt%ET76{cuA=9+^k$G1ygK#*;#c~U!guuKZD0`J(^G~3{D2?nO>mPF zik<)F%a80&*E63%RWZfe&8d|w&=rPd&kFzZ14Lh zv7PlX$9CSw=WM_9u~^)v96bTA2Xqetr_f7xRzHU5?L6H^7wFm;rpbPhhVLcJ;4)@$ zg@)KwEa4hz7$NRA0xcsU-$)BFr=LlhPGA}9sFR+JAeZQeqCb6t_Cw99k>NoBB&}1V^$uyBCarf#>r6uD+H0L_kxtOr zZT?s1Kq}C=3FPMJd>fJ0dsM9+;xITi{tDURE2Moq<-Kyom_BMp#T!V($ni?B;B%3jh(o(A<*%9u*Y7{ zxHGe+E-&S!r4ukEs{esfo;!DTch(+iM;Y(A z=RD`R_uO;txikOz@9n<x7R8 zbPo;B=U^bGBX6Pyra;m2mr9Giw`TcPDcB4`d#$v{k>i#&ywcoeFy++3%bV-=yhox% z4l0YBq}raP>bXnflJ$UzgXj}5BRw?aPkjjOT8IPQ5fm?RcKZ6DB@|dpLK^a?d~0u<8N>Ly5`NR*Vln zCBgTaxDTHZ$Sv8S3{OVXKQx?xM={Bb9W?QPOblUIpeOcLksj{wk7Jea z5fh_HxC~e7A2d;tdbx<%C}OGotclOzA%R|MClf)pmX{2>3lE$40=~$wm#tuV(p%*A zFvpdCR>m0LV4Ot2E zPT-K>oa=g_71EU6_&#G?_YZVjXz5L%fH>ebNl`4TOVG3 zQy`=E|6tW|?Mscd1>3)@0_?APHLE^vF=(zgR%XIwCtC3S&mR|jJdVBMZlpxtU#)v< z3*Kt!qV3u~kH#WhazVSu@7k5|;dv%t+76e!#Tj;hH9KS)Slh9as_l-G6lYXAHc_&q z)kLb0nLPR@%eOgkqDbg3*iw=mB0i+dix)22J|~cyG}vr9W~6Nmds{}e$^&h)QnUeT zfeC<8D0&293G75I~tDyBvrk0p;cR*w$|gUYBRHy>GO=N67{j5QD^(rTT9MG zl3JaT)k5^a=Bzz~NqQsn)ONE4&Up>LW?yjRk?HT~%MZ$PCGhY*YQM7NdcJ+djn70> zAfr_t$tAXi#zLv?xa+o4ckINe2}JF>e}!GP3+MRo{ea_1jt}s6iqHA05CJaG#*04Hc9Aw-?Wwj$Y2yu_YOB!3 zt3K8C7-wTo;2OK|HLj+_k>IaZ{0qeE(Q>Q&n~jtMn5HZjP5>_9asJN4*01wd$g6)B z(VNh3(b$DH(S3Uo@hu>QsCOsPsXdAKevm?RXeZIwoVeqWp0lA9ma2AF$8^-i#aSO+zA%#z08s(pIX6&EnDP-Qk zp&KyA3Yjh3-$a}&YlNIEXA7FdWZyym4fGbYLN);^mUV)PWuu@=kP(CQf{_4?m2(7* zmGgz11m$B;u8>cFPM3QKI$bskJrZQbAWBV8<|aeyPILy>QBlzQ-29LEwR6U$uNIrQtse{evD@ez*b=;D7ve1yA|nA=-KoaC!JlAMtr zRdEfSVQljJYBIZWOOnk}ZHYR*&8{o^?=>z`G}*81U>EY+g*5Ex;ywNvBz>iC{A^|- zDwGp_1ok&mntXgKA_HMik2P=$G!_Sz;6^4<=kC{@L_WPNhHA)#?twzmfl#ii{3J2qunSIv6zATHN}mQ7xpokc$s8AMLuJEPT$6tfLo~rr>^;9 xDc8Klvm{G2h~8i1g%NTr`(qE~2A_=@zKdt6FgV!c^E~qgW>4TJc!Ak0{14r*c|-sJ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d687505c91a747fd16a2ed3f4fed9f0bb348730a GIT binary patch literal 588 zcma)4O-lnY5Phk&YwK6_AcEk{gBJr{*A}WG2o=GWUV12L8rLbi$&zFX{RRFf5B>mu zlo(qNtCZp)nHgs0&3l=Ae7?N{XyGtIg`s6^!Y9^b!V2!@&Z~@1LPVO+4DZd|ElJ;> z=W1a3rW8JiJXbbCm7zHmGr?1#6aF}!D(NHC7*5IXg#1e}<|*l1QA&zm3#XQy4D}u* zTKK{$hS%<2jJUhL|El|c;_;f=lBBpDGcFeEQ(OotunlYndmQpRA-5~Bhy5X#L=y)? F;0vzSyMq7# literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b28da1042769454de672b1cc01066d6d296f4ffe GIT binary patch literal 2027 zcmb7E+foxj5IqwvYm$w|3o3X=g(O5actJGYFo>c-Ex}azxFlm(NOn@20gEdC!VmBl z@FiAhmF1gNew1bR?nYNdD!gp(%$zxWx_i36|M>I;z-=rh5JR7VeiH*26iBbxo3_=k z-MaN`WldJKz~C*%b@Uy9zD%}aV4uK6<<+g4r<%5BTkWm3mQAZhE625#w%T(}RWEO~ zWC8~I5=g={kTS6!2Ly8ezqzTRmn%vjRhPQtNn6Whrzr&vWwK>o-iCG>)*S5@*~dW> zhj5tS?LXm%Gk>GA6_zt(;wX*@#EG7@F4Q8_e&l84)_v+>6C*f5P@?WayR^TN0qrRh zr*TFg8PYzrS@V&uW*@$!Jtw3-XJQoR2_8}h@S#w16dllCG%*&X?`Ak-A{*ri_LG<} zk!L(d`9e~q);U*`CM-sCK;7LbTsCmU#8q4qnC-nl%PLarMZ49K-a@n05HPCB-IN|Z zowu2C?|j8wun|wiY>&7Erf{9Znh|)pCn3FhFmO}gcJC4HkTHS&lB&@|IZ$?7`E;YX zBE4mMrNPg=tg3dSVtWp+!_9uZ>a+z)yX4^SM%uwE*QrRZZLeMs$nSxSZY8PXyFD&2 zzRTrk)u=z0v|U}NhZ2U8UX*%O)t=K3X-X|U3X26z3Cu*hAQ(f%pqKr=2zSC^5Zw|O z+u`btz{HZ;@Tzj&;Z$cMN-OF=37h2EBQX48!__p8Do)#>y3D$+(zbS#OZszuGTJTf z^4A>J8|AHAG#@>wG>t^7q?#?|N>>+gj-F=>0yk(550IttOWz``EV6=ka~~l-&`%7v z=*!1IiiS2|1_0c_U0Ml#kO?|Gh+otgNC0kQoV#;cErFXksYNOX{9d!&QoY)^J@ zmhFWO#@XgNxRl?fyM4aDF~sTrAo^*%4q}J~_%Rxs$7#w9(S!39`m)%1L;}H^TSZ@b&8ntoXSmnMKb>tMh68> zUbI+7q*$rYA;-_0X<$Aba6Sq-uaJ%LvCrAT^lp6d2p{K@_+nV_1w6(Rvix4kz)$!3 B^R@s0 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVo__Javadoc.json new file mode 100644 index 0000000..1139f9e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysDictTypeVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典类型视图对象 sys_dict_type\n\n @author Michelle.Chung\n","fields":[{"name":"dictId","doc":" 字典主键\n"},{"name":"dictName","doc":" 字典名称\n"},{"name":"dictType","doc":" 字典类型\n"},{"name":"remark","doc":" 备注\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo.class new file mode 100644 index 0000000000000000000000000000000000000000..0fe3aede09b4bc7bfa5e6ade6692814b7e70ed95 GIT binary patch literal 8315 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 Qev4KN(wp>q`XlN80T3No+5i9m literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d1a7429725197a3e5577116cfa168dadec3f6301 GIT binary patch literal 604 zcmb7C%}N6?5T4Z9we_!h5JB+n#emmUaTNq%MX=IK4<+5E>y+KhlAl7K!8h{Y1Nczl z*m`NvqK9OXd^6vCGn4m^*EayTfc*$+0ur*h99k-sRnkqJ*QFft4UL?T>`YxsIT|!0 zvR!(jg@=1pRoX^S7tkK7iIRmfxqKLmb><^z2slQPIr`@?kOi7bV}V*;E2rm?0-7Dn zjq<^20Waw?N1U#XKTrQ7K3?IyP*!{y3utvH*i7GI!O~6^@L&3H`Xyh$(PJ)U?!qemGd@aUd|iA`5GCS5$2rh$D)(qY3_S7^XvD|IH(?+X40#_ zR<<<1?l&bfMOap3z2l(?SmU+Me+2jx@m_-sXwGa4HrXCBzQx#f20O6Z1Cc=+_Id!H DH5kJi literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..5c99ba1a420b2db36c7975be433f9bf2e4734a2c GIT binary patch literal 2553 zcmcgtT~`xV6x|mHDann*52{qHXj|kX5D*n=l$H;%)Bsj6Ew!y3k|7yLX41(77O(w9 z^krPDuGQsR*XkeX59oVW_nAy2D6-(CFLP$j-Dlr(_C0g%U;qC82Y?6IjiC+gQFLfT z(5aBzGIoq~*|3Z0m5nVk?%ti5m!cE65rVFl9Fp!o^uqsil(^!&iv$ibW>(xdSqE-J)HyJp&k?FsRPL&U3|YlYOk8Xw^@;iNu* z_q39S=mz~&jgOo3&uXT-Y*b81u}|ZAljp!6$0r(}3SKjvxw2*2-eYr50{S&>N`U6Z zEemlBY79w4f)VrPj+Hmp_Nu`iDUA^cNid{!C62Vln8b*dtDfQ2YqG^HjS0bvY)x+* zcQo!cv5QrsPzVljO5^h;w&{%{qj6ubN%97Vo^|quXF0aePiuT3AxYA|wHU{Y#;iof z7&+@YyOc^|<~1HlOpGya+;Ke8_)5?bqE~|4zt(sxzzBijiDOA)SumZ%EY*s__C(_w z0d*1-xZ+sVSi`f1-a%4pR>f>-th#5F)ANRB295Qt#&=k696}4a*;@x-IsE7NA&MV0 ze!>fdho@=sHRsSzvt(4Orn^|FmKCCT$KEkr{)E2{WKYAHIR<@bx6I&)ky4`}1#T#; zpE8}3?-B)n$eGjBdZc~|9dk~BXWN~%Y;(C@*)ZKTW1}pmEp1xP8LlPYp|is)Sv7@6 z$Efk{csg=tIk^nCH{9Zw!sw|88JFNZ4Vo>Opb95fj6M(q6OQSM z>6tDIl(fbbrdmf>W6)<>CT8eq9k-!Nq5p``BZ0A1r|#y>1xrL9In;GI=e^R6%7jNh3NWAbS|2&0Gel!4NeVVa}t}AkAvWsKGeDZc&2?YH*tx+@S_{slg;Qn4$*v zTIw&oslOD~4|=Na*5B0@)L#XXGvxUt)L@b-NF|dX1=$@8z&sn=0DUREcmy s(Ns8jnAK#1(+xQ%Xxn5t;PmnHaeQ4Zd~!zQYeOwaz(bu@`g#ZW4~#N?i2wiq literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo__Javadoc.json new file mode 100644 index 0000000..57ecf8c --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysLogininforVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问记录视图对象 sys_logininfor\n\n @author Michelle.Chung\n @date 2023-02-07\n","fields":[{"name":"infoId","doc":" 访问ID\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"clientKey","doc":" 客户端\n"},{"name":"deviceType","doc":" 设备类型\n"},{"name":"status","doc":" 登录状态(0成功 1失败)\n"},{"name":"ipaddr","doc":" 登录IP地址\n"},{"name":"loginLocation","doc":" 登录地点\n"},{"name":"browser","doc":" 浏览器类型\n"},{"name":"os","doc":" 操作系统\n"},{"name":"msg","doc":" 提示消息\n"},{"name":"loginTime","doc":" 访问时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo.class new file mode 100644 index 0000000000000000000000000000000000000000..249461ea0121d41ad74628b0c6c58df0c6bc0513 GIT binary patch literal 11208 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..ad6d748e4f9e7b4f34907550597fd90f9a6c9fd5 GIT binary patch literal 559 zcma)3O-lnY5Phk&YwK6_;HBu@iviKoTA>Pp&>~prrH7JkyY$GpA2yaH%rKSG7!+}M;)tjUEH+|8VqIiJu^X`;j+Ei4@=syRGo=fuG9~$yaB{(9sP|Q>g%4IT zJa@lq#NE~Wi|+phj#uE8R^rQ;q0u+NCh|sQG|u5~eosEfWN6(7?Nu&sb*Y>hXR@QU z@xm*k9mB!AWiATmZAd&{7^WVz#OOzrG93SCt`odjV6W%6(dd*&)!-zFp8f6PYd3?X x46!4X7sh%=3t?EJyG}a?Wf8pZuTlU2 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ddd5df94e48a01afe6d2a094f444d49f7aa8d3bd GIT binary patch literal 3365 zcmd5;X>$~15Pl}tCYhHIuE;5uV2%w7aI6S=#U+fCA&N8>?9aa@I*z$ z3-HFM1Q)klqCBa$#u{gK^=kD7gshO(x3D(*CED6XyR4WV4aV$1H2#B3{R z*hVBXl5xyrB*wRRD$+fY=`>SAl?b7@5;{}}QxvK&Rm1ZCwi>pwhP{@CDgCC?YMX{* zwwY-LFuk^}BNtYOmFka*|7i--F@x~TMEH!_$>_RX31yZ-4erQy-xE)odG3dtcp}oq zWj*(E6y{=HzIz{@b)Q4~?iVQBDch`I^pb-1m;|{X?M zj*nihaJQg!qH}s3bqe)p@bTiM%aFilPRL8QW5#CMZ}&&tnBfc8UQrEm{c z`|fw!G1KlEN@|!j!F_wmG5by1OU+t^by)BF&*5wG{b%9+0vi=JN&F#izs`VUrb)5< z7-Y!XtLSuWQP?UtB^6*L(^iV95%4yJRsk#FI`=`xc7+{cAvLpi$h1e8HX|t}yA;~R zM9L%oi;nvgI>e@uHtm@m#G7K!rLbEJDrqpT*0EP%Uk=@B^bL6E9)Mwzrq88 z7G@>&JtJukeo)~-feW)ay^eA^O`><(qVk`+t(d$ufnP7tC6cYOL3a9acPf9Mx2@UQWbAE(y zLdO}r9KtIKuga*b@@CSwM-8QY3Dd9z^_s%#c!Q(Uh{akG3~f$+K&@6H!O0r8Qqj7D zvj4Ya^XD|AYdZ?te)KlDATiOp0x+`p1zG%U4V?uqUWn%q-qo;p!8wr5 z@Q*qTOAE*}=MY=7Z;vk8cr5O|J{)&((#3P(F~(W! z?d>2hKj4L_1T(nL8t!s7|L5?|G8fA+j~9mdJk%GUnVKC~h%PKbFH?93OK=2Bk>ZVI z7|U>y=+nHVoJB1zpbnp+!OPboKPN%Hm>qnCkD0eBqCO$22%mYeXl4Aw%xnDa=k;8W z*WW2isJkh74Ufrw{ulXl@#1wvvRUnFypFkH>aO4=4f4=<1!s$}e-!0mjX591tbA;F zxG_saiATh7CKy=Bt*#;wYnY(5Bw`)4>zUdOBw{1qHj#)ZiD)7bn@L17iP%CSwvvbz z60wa$w33K660sfUiM)uNO!F>W;V<$8klG$MGmo z-NOF)#^;&a^!sN@eZw{A;cE!FcvA{BzX{9pns7=Gm(-2;tOiD_eV>;CpQ|a0wbx40j_|^;HJA6+mbKnQyU&@qRZU6uP literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo__Javadoc.json new file mode 100644 index 0000000..f81c3ad --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysMenuVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单权限视图对象 sys_menu\n\n @author Michelle.Chung\n","fields":[{"name":"menuId","doc":" 菜单ID\n"},{"name":"menuName","doc":" 菜单名称\n"},{"name":"parentId","doc":" 父菜单ID\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"path","doc":" 路由地址\n"},{"name":"component","doc":" 组件路径\n"},{"name":"queryParam","doc":" 路由参数\n"},{"name":"isFrame","doc":" 是否为外链(0是 1否)\n"},{"name":"isCache","doc":" 是否缓存(0缓存 1不缓存)\n"},{"name":"menuType","doc":" 菜单类型(M目录 C菜单 F按钮)\n"},{"name":"visible","doc":" 显示状态(0显示 1隐藏)\n"},{"name":"status","doc":" 菜单状态(0正常 1停用)\n"},{"name":"perms","doc":" 权限标识\n"},{"name":"icon","doc":" 菜单图标\n"},{"name":"createDept","doc":" 创建部门\n"},{"name":"remark","doc":" 备注\n"},{"name":"createTime","doc":" 创建时间\n"},{"name":"children","doc":" 子菜单\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo.class new file mode 100644 index 0000000000000000000000000000000000000000..b5616aaff06576ebe3ba8c97ce21c697330c7ee7 GIT binary patch literal 6323 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 BwNn59 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d2a956b4b2c8b55e1a5fe0da593a9ea8b576e69d GIT binary patch literal 2227 zcmb_dYjfK~6g}%agza_erVVZAgFs2}t5%vqAGm2rTv`X5G>wf(d5&TWSBTW`>pW$Ts0 z?v`?`x*3Cpi5TLL8WIvSI46+$cie#*L2F7N-Zb5!V;Zixekd@TN|#5%%F1pQnE$-Q zEG|%TH=KMS_0QaNjfKofyp2l&i6M2>YMUYQo@=%A$FyXhd|u)mT%q(Kxt~6uA7%UW z*Cej9NmlM}!A65cE=asL5IGu;N{({x{|#x^yww&|J< znPDln1n!0Jl-~*qp}rD~gxgXuB(QV}^wh*yMfIGz`NZN4UL5MIsZ+Np&mB-;ey3-< z)VOL^*P@eHvu#CJ%~CdL_xG>c;g<0uTlz^k`#SY!$5bv|e7&gJ9c9y9E>Ke{QtKD^ zg8l{fybG+l>KF0?h9_5aRbE2~(fERv@s@{}e`8S<1R^*I{3 zNuKiLNheRsi?4I-!jr9HO0?9SvcoBHIOS{77mB?gYBc6K=&BHox zcKFb>(4i-S1$mE{GYRY_ea^1~&f63tJl*H?P&$h*8sg(UC%y>2=?nN4-%;ec`yTik DzojGB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo__Javadoc.json new file mode 100644 index 0000000..4e50a49 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysNoticeVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 通知公告视图对象 sys_notice\n\n @author Michelle.Chung\n","fields":[{"name":"noticeId","doc":" 公告ID\n"},{"name":"noticeTitle","doc":" 公告标题\n"},{"name":"noticeType","doc":" 公告类型(1通知 2公告)\n"},{"name":"noticeContent","doc":" 公告内容\n"},{"name":"status","doc":" 公告状态(0正常 1关闭)\n"},{"name":"remark","doc":" 备注\n"},{"name":"createBy","doc":" 创建者\n"},{"name":"createByName","doc":" 创建人名称\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVo.class new file mode 100644 index 0000000000000000000000000000000000000000..a036d8a988af6b1c98a71f711f44cf2dcd28b6f7 GIT binary patch literal 12618 zcmb_i3wRvWbv}2keP}hSw`7kkzt<00Hj8-#7-I+U1C+`@{ZL|XV%E|`T6?uCc1J2o zNDX$~3S4X`PD}{6r6n;n1e*c^8xoSVAtZgIN$Dd=A4zLTI4wz=(x#6P`k%RXc4k*& z@7gJ!2c3J)fBt*t-ZST(d!=vu{PY)zXtlUHN&%V{rYens6cSXwD>4LPKL-|z3%;&d^44Q(PJpP>-%j`3Ac2~MaGijEfm=~TG)O`Cn z9A;}YhkFbSm{xzbm%E&&(R^0La^{^wX5QLZuq@OlZV!fEH)&;aJQ#LatkDwt4cTyW za==!$YqZQ(_L_s1qg<}h3RZ?0xiyz&?}SE|vQEz8AgeCZ=yFzR4C~7FB&}37!-gw0 zdLJ9A*>EeCW`MO)Uwnw+cMTxwcp0zE{!(Q%@}^4Y2AX(>{wXZ?t$A;!;yQdM!(FwA*@0&ooDaO z8f~Gig6iOXLs2}m6md8a!9E|<=tGVV_vkDe+iuh7cDC_oHrrFg+7D~=5gua=v}-*t zdWS|y+9~y03X$Ag)U%3Zrs>tlWOxKLTR5Cq*{4xIr7*oEZ-5YOUE1y!q*2;U=`amw zlp%a+@*}pF<@#JMIReLMuW1h2Gml35QZI>`dmoitjypBV@fdjmWSH|HEscg)%Y)qH z{RY_hD;nM9%mU9R2R7?JrqRb8{W=x!tp9{YzsmY3$QX~9XZ1ZA-OK7iAPlm0pGLpN zT3%oVJCV<}U)Sh2*rq9)9sF##Pow+U5QE_Zh4^R7Z))@aTX-ect9WPqA&nlShoqjn zks;sctfU+C9ET5UbeKMgb?i^(``2cB@o^wqcJjI$(dZHSG={`0a8tqD>bC~c<1-pP zMvp6xEm;{Zf|mGtc)ki1SB*&Qzpc^l&=Z2D4AV`}`#CR24e7j?|2LvaI;#XzZb0tRd)~{QLT`>zJ%#D_u(Q}3UJ5&+nM)

5+=#J>BcC0A?Z}yz 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d9ed2123d12b723540a278ecc368dec271b364d7 GIT binary patch literal 580 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 UKgRV7`W0p=NWVr&{2l541tUlx<^TWy literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..2dc759d2c8ba01d2f0a1663682cda2044f69a795 GIT binary patch literal 596 zcmb7CO-lnY5Phk&YwK6_AcEjkycqDhTB(8{R0>vl>7k_CxK7zkmV6ZY6Z}ga`~m(b zF?KyvDMb&-%rNs_-pu6vG6u<#irs`%+Tm*ZxVS+SrB%zm|i}EvoGlkM-N^(%H^G! zlBH25+e&FC9BE}44(1ASQCMeu;&?fP@LDaIkC)+eX~S*rbXi-jVK_VwpsKerkhcEV z*3ZrLzX=0RM0uf&vteBfYvHVizk%RI;jUl<^|@_eGuXqB-wL_y1UuLrfF)>RZvcD( Ds29Go literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..13cb1e5a59466bdef12360da19ba7a7314f8b351 GIT binary patch literal 2648 zcmc&#ZC4Xl5PmLiDcKu{C{?Ofsx1W)35W_B#3DjP!%GQ`wJ)~I<`NdjZo0d{KwGu{ zh<;hmY0v5LThHl_YCDtc;-birPyLd~&VA;YndiRD-~asnCxBb{HI61U$Iv3tiZ+4d zhQ6(5wsfnMSzO&vh9}TAVOpj)DbUA6@fj-+QWr~hn)*U_L?zo;RXNvS?TABQg zyXd;pwzX!K;)tO+4h=GfghU5A1yXMh-L?-z7i@u!lJfTH=86Jc{R6pI73OTKl;tcZ zB)V{t@a}8)ll`y52MSzKx5WE6Eg&gDqu2*(N8r=}`n>0uL4qEM4{(<7lpuodj?xG4 zMuPJaABG903`4mtCE!wfB|Zw7A`2QWNqihez803fqHF2kE zY$|U-FDp)xmblCz2`V?bq9G$O%rWg0v*f5Xv&Q%<5~GZ7Cw%DDa82SmV>QCgSjCEM zS{|dvC2lZUBlIi3hOERy$bGkd92h+*aXaJ=y&9$@?l3k^+;i?d&#Sl$zAG`q;5bq5 zyES|+aW7HOxyagxI{Nd(}GelEfDwHuP%9ORO+9#vRtY5oRq& zJY-~yyQ}*&Jd*f2^B+tt;BaBXXw@Ny~GcU?Ig~|1~1uLrcvMgRSAP5I*I$> zn!;KPC5d&I0@KI1BrA6G%FXMQigM=4l`U$(u&r(7&<%dppF0L)_6Tq^S9aiCfpI8o za&J`C!{gQR&N*VR1a2Rr&BKHfXqmQ)iZ&=`T56$MURBPDzPd%8uAFV?TLs-Q`8#m7 zcd{_QgYoX4GUa84jqL_dV=>~Nr9sTKCplEKG0P#HtEm={Uqm= zw{91g=v^->PdU^Z*EAw99)0N=lOY>am*DeG zC<+!D4_Wd(PyK~fvG)gJk6xgCKArLr_mO0K%EuYD=X_jXd(p=yZ2Ntr*bey^VSClb z7~7jZZn6E$$28knA9HMTJ{H+7`}mUWS3bUB``Cw`-lH0t>vi9!feD;I3)wbw({Mgb z6Y&fUtseBztQ*2vdi>8}66Y~X-UVDh0lj!k60PAPEL_4i4Xmex=H7c7{RO>Kr|?iE z4LZoPjVIK9t)5%7VTb;-3R-VyWHvOyzkxn;WFfP0}Vy+DuT-lM!8N`?}NuT|j#5zNt%lQ(c!` zAUQ?n=choMF;bV$Phv3j5?cBtVm^wznbAWSiyXp4kdU=z&Lps#Y;gV@aE_8~;^jK0 ckBy`F+9Q0tcf{9(U+M)s#WS*e51s@60V|l15dZ)H literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVo__Javadoc.json new file mode 100644 index 0000000..774054f --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssConfigVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 对象存储配置视图对象 sys_oss_config\n\n @author Lion Li\n @author 孤舟烟雨\n @date 2021-08-13\n","fields":[{"name":"ossConfigId","doc":" 主键\n"},{"name":"configKey","doc":" 配置key\n"},{"name":"accessKey","doc":" accessKey\n"},{"name":"secretKey","doc":" 秘钥\n"},{"name":"bucketName","doc":" 桶名称\n"},{"name":"prefix","doc":" 前缀\n"},{"name":"endpoint","doc":" 访问站点\n"},{"name":"domain","doc":" 自定义域名\n"},{"name":"isHttps","doc":" 是否https(Y=是,N=否)\n"},{"name":"region","doc":" 域\n"},{"name":"status","doc":" 是否默认(0=是,1=否)\n"},{"name":"ext1","doc":" 扩展字段\n"},{"name":"remark","doc":" 备注\n"},{"name":"accessPolicy","doc":" 桶权限类型(0private 1public 2custom)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo.class new file mode 100644 index 0000000000000000000000000000000000000000..2de86348aa43035e9d98d37e6299deb4d3141dca GIT binary patch literal 2820 zcmb7GT~`}b6x}zOFTzmLw6slIu_#p_(A4_XCV;ls4=PZELj8JhNJf~F%;3y`@*{kA z`2*}rA9O9PYxTjUFLf<{leO+UGa*BgW$Ri==H7Gn-S?b*&bgVt{(1ZxfEj$6Lk3wL ziU}2(K>oh9XO$b4yIH=oao?_m0@}3WI^nE9c5HmT4+i>lCrgObwt(rMUB zR@0Woqb3T{sCq##U(eBU+{6%05LUC?>tF3!Bpez`F~(k3#~GM`QznWy%@8*2a7~_l zd~7_0O-`2*oHg;1q}6Q68OY5qn>Z&o_jB`yNg#l)-9ZqUx~q+1!BH}M)?r*X>) zw&uLL9mzFcpvdDUCQuSM*|fIpInS+G;XNlL$PGfv4FiGO=>QU^y4~!y^oT`3iBBI~ za9n$7x4B{acdd;E{V6PXHLJ01`Hq|?MkU;G=)u&&|43w2;LOUd8#+yU-raKohjdq6 z*9)!CVNmjT@u5*hPBsn;gt|Z#=b(Y?u9d3E`WtLLY4sD-A{oK=% zp4xI22`(U5P3byHvMviH+_HUQWn80Cz4b+=csvl9TNNg7BwlM9auFb^HXa|ZCbNOn z(5h`OT04n!>hj9`;&u8m&)|GJ*ln;`l;q6OHl;S25E!8shbxd<^>+Q5En^cncDPS2 z$o8Nd*E}x_Lf_hnbqNMFEatF;J35wSNqr zj7ggjljm9j%5fy%j2IU%=UtZ6T*C?iJJ7+hIp3v0uh4XSEHM1vP^K}~0V8bl3|lwL zU*2;ZW#r`)J$WDT*$>tlG}# z-cemdKSTeKiy5?u^3NsWebs|#pp$6mxkS9+dJyG1iB3P4=uNyu6{SWM5=u?AiPA67 zdy8};MkFFh0j2r^Z*!l@enh@Qxp#Wg54E(nz3KBWN-t~WfWFX0&wrd) z9C4X}_c6$COA|jpRUVf9fbl)l?8DOUFcv2#9^qIt<>2JfB!4Q()Su`tDo=3q0nDkQ z@(5>Ih~bJ#$Z$m~suH6;LE!-gifU0yfkrAiK_eBTs7sKMfb^o#0x1vaP&QS6aUp*m zJ9?0#Z*dt{808SYVU8~{kWo0O(w5~VRl_t#3U1;C-!`tWXBP23W;xQ(V4uCmkq#ec zXuZO&yUH_5Fm>Z^9MNGs#R(l5ehl#xr{ZB>de|zB%N^n>@+~2$Jn5aRJXNYHgGx75 z98_F*>OoK{Ly_B(!mD(!3;AbH8rHSAz^6viwS0A2nTZl~HecOhdW?MO0raUy82v)p zhbxL)C@RT{A(Iv_ja1ZViTR2)8AUZ(I@>!1v+;q6w^^*<8s_M&ie-GjQ3g4Di0h0X z%U6|4lwPJ_7AKhonF1;D*U+BPpipEXC@h3{MtFOkk%l3tEkFyS95y8|Ed^^MJFNtF zH1Ms1i)Naq%R96nC6sdUJMtJ~KkYKL7v# literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo__Javadoc.json new file mode 100644 index 0000000..f1b1dea --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssUploadVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 上传对象信息\n\n @author Michelle.Chung\n","fields":[{"name":"url","doc":" URL地址\n"},{"name":"fileName","doc":" 文件名\n"},{"name":"ossId","doc":" 对象存储主键\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo.class new file mode 100644 index 0000000000000000000000000000000000000000..dd73ed3262ddf2a3473c71d3c6dbc2ec510e770c GIT binary patch literal 6245 zcmb_gTXP&o6+W}t%k1t*TCHR|V;f_Kbz(_&HV91cNRDmEmLntC#*!5vfIV7`rLlHr zl$}{6GWYxa60RmdxW`;vMW`aCNKq6#5UP0M!B6l4KY$mCDvBzC`Ob9D?(Ax8sR~pY z&FMa0f8BlhoYP11hyT3vYa%*IKgm&ox-yj1C`D<73RlfFvs^WurSiFjt5(HVC_QF7 zw*RO?T?Yo|v!qfsLphD|q$#xDtuK`q>u$}gn`Lj^^Q~HW5iQ#(ues&fb?=<#&ASSv zT+f?Y1pRc2f7*4HMwzciqh2Z~q+YSB)>*S=DO8N$X8pP?kwuOA8L7E-d&zdpDx;ZV zn?~DNkzDy$Y~O-78JntjU@(FXjKyd5utu+C+O)--9uIz_-TzE3+D}&&xU2)8I9h=x*XVNL)#{3Mx(QI4(3`mz2yma z5vK^}oGQYl->lIEnpJ2=&0Mi2T&H6CkJ~;#j^~?>?`^b`WSM(ix@@xS!6b{ApU z@;uQ)my5~JMTG`}z_AfjR^2wM_BC^%%FYXqLv!A$d$#LboI0tHat5Xk_d9P^8&(Q- z;U7gI{X)a>;r8>kXM^B`@~n7ZFEd912*)AEiLgPipp9S=ifD+0D{1)<6Y{iSWC;4O z#c_h@fL=xijvwhZnm%Qo;T-HQ^HJp3xFwm8^Fe3W>JC&DnL`xn5!zOV0C18OGfP0L zqfd~x?Y=1IXzT0^fIKiXNVD-w1F(fidD%RF0|1uv667|CIR!gU;T-Fh*QoLx8Coz~3dynLQp+ygrRbG~ zBMo%n){~`RUwJuL?5Vp+B^Ixinrl*hSNI!FbJlItE7l|oiM59}?n9g{6goJKgt3J5 z*H|c5ZD-Z8tF{#hW3POo;k(!yViX~f_RTsHtwQ(TBk;r&Ko`bc*Y}VgRz;wAy=i(b zN8h4vXXrbeg}KX zngCFR7SXb#_6pt#7f>6BeomPepo|jj-joPMQw&jeC(*u5iBL|(5cPEuJ+LVeYOffg zfli{~O^Hyd#Src2BzkyLA{2NrL_0f)4sS|?$~A^)PbZPFDG_SO7@~chM8`KJLctkB zRO%!;wJFgOEmK$E*#-y`?5sn>FH$DnwYLj|bZvHfjy#2Ij7#CdK)|&7`&C+rqwn4- zJqL7?o*V7-)p+{8t^qef4^t(6EKN;^id$vl?Ik-u`cLRMr-Z=ZVN-t8obWCov8^?>MFKv~c?}p~; zxzSFKe}9GT6Msa=Y(wf_86J9`Qpuacza{lqN_E{F{tc-!2ZwIagFzF*@Y#d-V@+95r8i^?Hl#7F@$Vx;vHW702E@dkD4DLowl9X2um9X3=w!yr|HGP)W8 z9Wk;19WioxmO(iQ%IdiYXw1k1G-haeoeUMo(4^4^(42tmo4$VOco zuI1a}7{c78tdLI)oZ&WQp4MM%p=xInvI<1sw9a4&Bls$9}QktrC zhu#G#Lv{KWy&IBB&(NRfJ&>~WRk}^@g_NUP^dh|vQl5TAKc)9W(&*3hdHMjPZu%>I zl0FEj2j#>HeF##ol7<_77*avmPm}Z!NPWsM9jA{%Dk^7C1$_)szjB^-(Z?YT&?m6h z8tuub|E8V{sjtxX3?=ZZDzDIeLd^bu#W30X9ZsL*Pf0T29D!Z=E=jSs^KnFr8&M^R zt0Wa32MoN14K+h*t%F_Rk13$JjHA7dH`j0fER2pNj|PFWyD++puu%)cHz;%H7ENE~ z{t+X|3Oy+`DhHEL9X3*d3UL$+QuS1*I%1>)Rl2D{bcs=8MkY`pu;i#rs5)k-fl6(v z5N=}BxRDK1h%`AW8>%LaT%gJ|Rfs<^YRbq5DukXKl@CV_e$QSmxC5FeJs27!f@c!X)Jt@p zsI!ud{%bWPojiKwCXshJ&0G)GkjHFa!}Dx~zE0nOLPg`7c)mwJKr097dHNx|TK_K- Cjg3kG literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a365228d6cfca523aa74e5292e8967c84d3e5a22 GIT binary patch literal 548 zcma)3O-lnY5PhlDwe_od5JB+n#Xvo-3RMt1N>3q z*wu@a>LHmKX5O25y!VgSHvpG7h)@$aw=R_vXLIG0^m89{E+<@(kuxj%bKmoRU>|Lj z-K(O|E<#9oL0 z_cuq}U5&r!{_EU$#aJaIzKR8!eOtOj-%`fM952^;_H`n6A4(G_*LP+{p2nH(7-NG9 zWQ`X%TvSj-mJVdaml|P5Lq|y|&j| z@AVSUFqA+NQbS7O6vhQ+{yk~e4)f}^K(eLWvZD-FE$<0TWU|#GNmbiwm6-gr#01U| zxEBSV$@~+Wt+R?ri4Sm2AazK+X?9eEyziQA{Q)iMlTS%}hzkTiBoE+!(;uM&`b!d* z+2JVBllheE)FM2W$10{cTr+>^M^s05*E%Gos=zL+m0mKd2JWu! z@eq#$76&>ln|5&CR*h~~IV+uRTR>~r)~<5s;C3?Afmli>zykhK_P-$sl(E9<9}7Gg zbmakfHBP zg4M`HJ-!x~zC;TePHRr!`d}245U1`zw?p9S2`S+o&?&6BM&mVYcBnYLs@#`$bA#GY zN4d%&9#(Ku;CA$m1dXf|=?&pXw6%mo0<-T)eJ?Okv-?g%@wE`R5{RtZ@7ATr{Yzl# zS>JN0?bOYlNkw0>EZa3))3!);&UfGI^3C62Ge6qSYn}S4qilDttMszn>DrdE+!A$_ zGPP_vW7NM#C{o*|=PG^a6a|mw4j_J}ml)RQ$-3ZX02_EpUxH67p*Z<1{|6{; zo}nDcOhDj<-DA;ds}>=Y@UZ z9P)L{)9S!!3{&flW0L*~=cp~8r`|b*S?ah&T)-_{q=s>cbX}&LXL|DDt`c G9{3A|kp@)& literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo__Javadoc.json new file mode 100644 index 0000000..5572604 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysOssVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" OSS对象存储视图对象 sys_oss\n\n @author Lion Li\n","fields":[{"name":"ossId","doc":" 对象存储主键\n"},{"name":"fileName","doc":" 文件名\n"},{"name":"originalName","doc":" 原名\n"},{"name":"fileSuffix","doc":" 文件后缀名\n"},{"name":"url","doc":" URL地址\n"},{"name":"createTime","doc":" 创建时间\n"},{"name":"createBy","doc":" 上传人\n"},{"name":"createByName","doc":" 上传人名称\n"},{"name":"service","doc":" 服务商\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo.class new file mode 100644 index 0000000000000000000000000000000000000000..970b3a71b631c9d9c9c65dabff9baf3b93d044dc GIT binary patch literal 7383 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b81e253a0b9aaec5dcb8cfe5e89e4d31163b9a89 GIT binary patch literal 556 zcma)3O-lnY5Pi|wwe_od5JB|r#enE(Rj7g>R1_<{^ia}mT&L_NOOh@0yY$GpA2yaG7GR)htC6YEkra5h&?Nk8^M=W@Um89B1DJ@$9jhmL)) zv-Cz4g?14t0*#>>DVZsg%G>@>Cm}*rV4ti^DLj>ZnUN_pWu)bW@_Nb?sI@6IDwIwO zJh#4U#I5=K)7JkMj_2TJR^szmpx(BnOY{|Gyw2Wleh)v_6xh8lO`u#~n-O{HXS!*O z4Jwc|USNANGFOEUu1tcQ8s-_*#F|G+1rB~R*DQmbVlOASUhjxWmC|b#J^tIr*KIm8 w8D>Y67uE&O2N780x5PIGXA%DkSVnCU>saBq!~Iq6ttD8;Mi(MM1Djpo1BytmV*mgE literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8c4e77e671582f55ac73458b1c16798b8fee7838 GIT binary patch literal 2292 zcmb_dYfl?T6g|Vs#U2NTgd{XinwHq$us{-$)CnzxrX|?mV(KP+ve*-6gS}&|*Hru~ z`eh@vQWYs5D)meLQPg|)5jK<}f2b_&^~|0*bIzT+cm96+`=0yC~3~%~cclKwv^U4WsVpmg$&AXTRgBmQkmXWgC_K zPFZ){BogRPA_bX1TH+K&1SbD`)t-(PR<%I7q1oIEIaZ%e1pL$&4LtG>%QAf~-_7EA+ zUY58L(XOaA(XzN}5)%ah!ie((^C`?p%rkx@l0&I&XlI|-+?Ke*Yeu5I-@QxWuEagu zKeSQN4%Nxndp1^W;!=*E&Vs}PJUsLf;LpWFo32X`6>CMfNtOyJQr8!cxY_;BP?I>r< z+-Xv6j}~>!Y*tOj;&C`R;6ArH0w?7p-Vu)M#%EBVElsB}E6{Te=-8-L@z*SHy@yOw zW1%9e?b5-AvNI*+KG*d!b-k8yl|vR-#GJsrcqs>cvk){P|04}&!Y&q{qON$%(qn@5$)8n;+feKw1gB0nWpy#(VGAIh3oq7rJ8~y1+m7e?> zNaH(t$^d{TcuFI|g-a-2{Dv?`pu5$dy z!z9Nk4>vi^dbq`L!NaE<7dMz_&z8NdzlH$~c}$zPtF+@#qV`WfVJmi*0;zj^X^JLawY z&RaS329&Y=Z*RkWzPD{4vqT(b=y{3|3pJm%!biy;v!hIF_g=ZiTr oz;-6!+zB~vQS9T_KBtHBNqoaGKF&Y!^`Yhqs6$cYdVB`_17|=m+5i9m literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo__Javadoc.json new file mode 100644 index 0000000..66ebd13 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysPostVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 岗位信息视图对象 sys_post\n\n @author Michelle.Chung\n","fields":[{"name":"postId","doc":" 岗位ID\n"},{"name":"deptId","doc":" 部门id\n"},{"name":"postCode","doc":" 岗位编码\n"},{"name":"postName","doc":" 岗位名称\n"},{"name":"postCategory","doc":" 岗位类别编码\n"},{"name":"postSort","doc":" 显示顺序\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"},{"name":"remark","doc":" 备注\n"},{"name":"createTime","doc":" 创建时间\n"},{"name":"deptName","doc":" 部门名\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVo.class new file mode 100644 index 0000000000000000000000000000000000000000..f65c0dc330cb34cb9b8e75f12766d5040162dd8c GIT binary patch literal 8220 zcmcIpYkXA26+c7vy?66YaFtSls38PbKz!U7D+Yoo3D5*$L2SI)y(VimyK(n!YOJj& zT0uq7YC#1b^%1mG@j=wkQtd;neYf_ZeS9J@d}+V*OMkyw`=2|ryLWdl*?cKKZuZQa z|M}0{bLO0x+5O)Ws1}N8@qtihB0kXKB@cPs z{_aFf?@cgrB_VV~d=#K^H&rN9NmUpxpB*s$=Cl^W zOzIjfBX8=zNe>$>OSk)|hHBkZr%*l3$Lwc+U(0O#ewC+hH z4MsH<>yEgg59mqLRgDTQ<>uaqW@tU(#E8xbmMPRs%NbP->+y8kpdKFLBZiIGSU%I$ z2@I;mO{S1S7nwE@eZWTBf(#3=Z!ND-GX)X3wirll!Ljy^(9~-}}k9JF9<@c{@oj!E* z^sXbP4;;zEU!3co+IR1%6VIJ`^S(U5>ef>y?uPBD$w_NJqlTG%ho<&EGX2zpr+4m| zzVC(8Pro&N@a3uf&rjX`+RPmfPaiz_$+MGy$w5oNWRyO+cVc?y9muE%-hRv22;x_b zEv+xk9TDq`L{nm2xu%}IXZp1xh|tvT$EQwAP9K;!eE<yd#NVw{`^(((q81HX`%Ixw*TeYaPPVf%8aGPo-lxg}JkS_nMM$ zadm@@6RR6++$5}oM?5Bj`S!ks?CFh`T=F1@LA450kzTjR1qn`zwKiM?(BJ9@f56pO}3^k^)qTehQAXieHkz*i_n z$adk6Urk)jE(YExT3RNe@Tkc< z#j@d&STkM#8GG-rSRZ-hjtq6a(s^B`RaAVQgjP+xI5YE#-PJ($yRqObhtIy z>b?dYu1Qk20Ig9xV!Yev>tXr^-45l>6y1S-T%BxL?t~6kBwO7s=x{-@9pSFr2zRIG zn?T~;WXp07bhtp->UKkiizfWF0Qx<&27m8GYc={AKK-u}YkHmB6QmqPa~|D?zud)y z%fS8ks|XnFr3cVr{Dun@r?^Z~_?q6J>ZY>ebk-~A6%0On64j9d7mXZ?PqOTTj*qb) zpN!wpBx49IKC+X~=okd+bQW2NoVG-`GT9IT(65;Y{Lv(Q= zQBO%C+;?q=E-fV5R+0!`OV|*dRhVej6tQ2~57I+aW+t5qLY`W#re(*;ol7{8vUTQ^ z>IFjP2v0RpHNVAE3nxQ-$(5gh57Q%d^b6)nFAA@uUsy!{ZF~B2=SnYXx1?WOM1Oz| z+Rc8+T%Fg$f&Xrzlx|06#BKoK4 zJ4N*8N%aN29ORQAZ_sA}b*p}Wx>Y6U=O9Ib zAXz}YY5<^KwLBQ$pmGTc1j{X;ZE6KT+tkWn1qW41P(`rP0@|Tg0klJ{4pwncwFFfK zt1X~DwFaO*wKiD8LA4T86Rfp>`qess`qlbi9S7A*P+hP-19I@HUuHR8iCR4)0+*@P z>@Yn;&m!t|Y&SiJBiB4y!D940`pW21b|Z~La?lpmK}R4tX*+A97a+N4j5W}Uklb`T zTS(u9%i|60;J^c02kLhE236h_FMjz74kQADs<8%yCfc}A=S0I(M0FGy` zLaJaj*m+)qRLNG-5WNnmid}|1@;Ibwb}hBj1f&{vJ-&y315z!!4X5}wA=R-vv4-D* zR8Nz5|1nzZ_WXzc)Z$S-rFu8j;J=4`N@oet`+pNNY4l7%8aen63NlMChu`_$>g4%T zxJg^L*32diD1yYpC6n~I0(Qo~3xCTv-*; zR#kMP6JPa*l}U$m0mh2&=y$kg{B zDSRc*OH=)4xZmJ+O%KDRg?)xu$i_V0sv(D|!n!uKWtO%Hs3T_vkij_eyClqIf#r~e zy%Oxs2j}oM3TfggGRaxl>!cxmZ^gRCb5SAbmuCp}$e^fBc8{UH||9 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..dddbc346943feec1c296d1d7ef84d1061274f606 GIT binary patch literal 556 zcma)3O-lnY5Pi|wwe_od5JB|r#enE(Rj7g>RD@P~>7k_CxK7zkmLyx~$^YfSAK;G? z$F_J7tsat@VcvT)k9m84c?EERod`<;XV#^1=xnZ>l78ZY&gGCRGIDHXXX4v7(_Q;u z=joj)3hg3P1R5hXRx(p2mG^^@PC|sLz#&Y67uE&O2N782x576EXA%EPSVe6b>saHs$NhEgZ6w&lRu3XU1KT~|1J${%!vFvP literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..66af86e2c2a845d5abee6ebb4a0ae1c63bcab241 GIT binary patch literal 2445 zcmcIl*-{%v6g@2#1*x&+1>1N@z)oxlWCj}>FS4Cr5fWkvJBY|Qs|Tqq4M@|f(TJ4( zioA@glB$&7Qk9o{K>j6_duIs)A(US7GIyru^yzc%?Y{l{UqAl};4yRx2@EAMEHQ#n zfy}nKYZ@)nZWzzEwpGm)7=2{fmit6tD4VM$@t(l6b{aoD{hJ-?MggG_k4$#v95lI?8m_hSgRAr?a_|FRSNTEn}I+ z3(S8?;xx_>yn7ISCVLp2tFn{{iE}tFFh=yOakUS`}ja09n!9utodxD*@stL#|o*ZC9dKc!9(f*J`rk;qXYVnB(5`kDx`m=`fNTc zkz<-vNaGKuF)NYB&3!Qy?N9|L4v1N`UDZ&IZ`6>O$E|%e0sdTEO#~0*EJ)m8Ig;d1 zCCo}qcl>HEO59^Xk_5$mr13!FAqtccno(AEuh>+z9ZpEiZS@apd#b50rtNEcEb#;% z(?nuCV&Vaj(Y!$9lEl+!$z|1X4=l;qTbB4VqCNtU#%B_rvrXPB71wloU7q%Z#54BD z+aelGqb#u&Vb>L%i5ZmaW!$ z?JebOm|HDw9wl8fTUFDs_&XdNcAHjL;JBQ`ThgJ`xCXSLhfSw3FEDTpsBF|Lxt$1H z8z9rv*=Up1cBt^7>`Ym?OXE=yMfaSVTCv!`bhu}#`iSJrakmzjT<_T~b?~aywJ7&Xwyo(XS=uJuGkyZP9qx;7 z*v^mI*)ixQag=uZ9c2`CyQ6Joy9G?smPhr1l_dw9h06Awj>D;`!kmOMPq@6j4VzOILK5dx<$Oc&QECg|%t zT}c<{{+OgDe-U%IghgDYws!?9G)irS^iI*-tG<`1KyT=Ulw%7u@^k|0s6&yTH~v~; z6b*VA5%fRs{4(_XN9cKzJ?HmWpjXA*LQqo_8rpscSw3z=VHV+ zNiw!c#=`|Ucg&dqnwfxeJLFuTnBd<&r-#ks_{L&du{9KH3oxyg&mBsu|P7!GNysLWi2hzB5Bv&T^Vcw zxN)I{I58oGI-zyy){WcLX&wcVkT%Vug_5SFkF;rdv}yWCnxv#@(>84(&Ua?!-o4tr z@ve>k3qKEY=A7?*Gk5N}b7p4s#UDKT86w&w>=+poh)~d^5QPQB?@Ap^C1+CE$>dG@ z?n;jr1%sT?L(a!BAbucoVnk!Bz=Pr{hsVd~=^5bddTVT>cR@JA*$J2$v?%Z@b%lgG8 zEup38Cw|o~8cjnWDDc57ANvkAzZhtzf`s*>NmsL?7|IXB` z?6KdZ0jbPp#-|s-*$)wG!sVnj$?mncn*O;_L`er8F2ia=Ub*wXIQ{!7^CUf~r zacY(+wwrW48^SQ$m_Ed+VUuoPRd8GnX2hgXR>X2V?Jnm{Cf&^Hcu75$9?z$XOtQ{$oTTV!CecFLp--KBcl?Z#%?JXRf@44*M+mf=jYMFuEqb0+O~v|}lC}4m^mf+rtnlbL0$G2*Ne?*sojNjE|1&1N zgY{A1w{dW?@@GwY(4pQUNXVTBJw!s}IhbUVfG3lLbiE*bYN?H9bliuxck8z-~ z@==rC!%7oa89yAWYc_nGv5w(%^(hM;BbFPZeq ztc^hHjPL^{{R-=N>^Hfg%jjP<>DSoOI?tk_m+il9(g*2`^4#hP;1=iAdqdcu-!$n% z9F@_jRAGvHZ^3eV)}#;9Zwu<2O--k_=Cb3d;;s1VAQg&OCNo+F*)E+&s>>Ws?VI6+4Idq6zI48T<@%Q4>yTM) zK=?Q>drxX+E*(Np@P7hJD+dX}dnA)h@0^?6m(K52L@gt^aqy(T24bxY7N;@=L46~& z=HDSf3wF(Ai&%7rvj;PU47j#rv$x=dlt`z$H{rt7dCO zSoZG0BaWtvQ@M$ok^5)UMLa0JKsczy5=#%{(h@mu0oU`#B$*Q!Qu7!-ok^xzOn$$mI?1$L&_Vj~Lo|DN{aj0mHHd zy}N8-#Y0msR%%e*B}(<67A7o5fGTe8tF#DV>6zD7OOG0ncfoPqg(osG5du3b?+!_) zNW8*aaVnihw;VAE-h)M@MvC=PIVZClo=F*;W`i`AHeij)Tv8}+UPU>xYHz2hjA{qw z8l7fbQhWAdf|?cke4T`OcVKu(g`2NboguSeU*vY?G}UwPQ*jbRWR)IMDHOojr@4TV zA|}Tn_iP9wkC<=ppcwuScWE^{&q)ciYX9Vb+sQ-3gwrR1*vxa;rPRPP0z3jLY>ariP#zP0~=> z3-ZR0qcP!CwU>dMxbG;3ItIl$ZxgAYURA?bF*QCtn%b`y%+SrdhDWzygNM!h+zd`N z0r>$$5>B+&B}#!ENjOm)NjM>ECgz1^Lt=geMiNfA)k#VfS#^n05QP&uWWcWDqh52W zK!_&XAP6V)D~=^RFEffE%QXitGBN-CM7S;AO(>z}zJA^$H+x#nJk}??6BaGz)T)e- zQ)}?{jLc)6L);opb%F*)knJY1ahcnfoXKSOr!zB|bTU=SCP^&lIn4e3bRJ10jB^b( zRf1NYCtJC_z#)EZE>|oR^QrwR!4#UpVlXDwh-5^p#TH6jCMZ!lM`p4I@d+f==+&-j zduqIx%Og@xcoUZfD$*UP?8HpEkQmA3rswt#op)a|&yn}3KJeQ;49@w)qtX;xQ!_JT z860z>;&LHYyHC9**OQspBnFnMaAe5|N0wDMvZTUM>PpFxo6Z52Wp8M5TZJY|&ML^V z6Phf`&}2b{rj#T>8HbRpn4o$90-~arU3QdW0x7eFR zFIJr4EOsSZXHtbix)2dpBA6-y!0)|A#0Ei&&ksd}svw|c*ykH0=p(p4=%$a+$07d? zwr2)Cg@OwYDdVm}*0`XMHLf3IjXMWfiYzVk4e}k@c*z>Hq$2|n+iamqG!?iw6^{(YQab93Zkbd@=+KKDiJNHN`w=( z4^cxo(bB3!IF$Pk#mk9SRwcr5-G`{HoT#rV5l;9%M4jbC$*M%S6!0PHE+@L8DiN+p ze25mEEqiMls}kWZ!iQ*C`G_`GCBnsp4^g6=Xlqp>+;#X6tu80pQI!anBR)iZvdh^{RsI#`tm7h66=+scXVtxANuFdw2F z#~q6e!I;l9m>XlFUmBUOoTG3P_{)^eibRf&F&K0^VSAZ-vDob&qn zpQea^hU`!Xogq1U@)kkR@53*I!y3iQ(&lIV=^JXL=beX3-&8^WIr_Zc=;O80^M=Ny zZ>gaFfNcOaAnOwbJwc-lb1g(Eo`){n}dT`PksnudAT{Q-Au)Yo+JY zh)ch|g8oH+`YUUt=R=N5zoCNu&;02()=JN3CzpPxg8t9_>94Mpo{wZM{pJe#zwoDj zORe;L(sSvzRM7vWKmE0}((?h*rN6F%{>%RK+iIofbE!*zeFgnr`P1*Hm7b5gF8vJ^ z^ndM7e`Brme2RAIM=R*R;!nS`R(d|1yYx3#(EknnZACi4M&zxv(({?$r5~%H$8X(= zKKumsFqaVp?(gsWAccZw`#(p~_fsfvw*Rvf9UbU@W$ zd8)U9&r$OkG6${TGn8`R6LtuY2|H|s7!!VuTFy{|6|%w}(4-v!Xwr^a5e7vyC}KrD zplQ1fplLg1)iEfhL3LKl1IpU<0A+2{s%Ma?L6AJ419k&I2kb_xfkBNL)L=DwKt;O= zprReOniv$N-Im3mZVj@mZV%`odjUWX z*$b@&3|go`3#^46(8Km3fF8CNTZi#?!Y_7Z@O*-Nb@3|gu|ORS|H&~bYi zK*#On)-nby*PvzAau4V+dj&v`*$Ha}gAy9F!b*5RkJ~E&dfZ-Rtz^(D4O(ff@_IKI78{K1^leBj;#Old{TrlKvDa8euR&@PZ#NA3 z4y1PR4)HquJERVAO1w(nh14m|h_BFpK>0Q>JD3-&_m7_gm2;%%(a^sUnyf3{5Lz`#0|N540SiIv+s=$T^-!CFg`TJDe#U> zGWT&4Uwky)e}*E1&(Lp3{e&H4gB8@4DCa|EnzTdGgj6V3|)Trl@N|##CNKyH1*rEVWmiW4hapNmI-)(rsH;tG_|-Uq+#XtnB6K($iUjG)iFJ8w@Fi*YeHUDUMK8!X+lcYUhR(Q zNxMUuI$RSHwemV?cS;j-wD#(BOsDKFY3g!K$lS{7v~5WflD77;q-mjlRtT%G)G-|} z?h&TEI|vyEMFS**+Kfrjh&T_>ps`alK?>3i<8l#)6rypXOEg0Y)BWNN(E=$#?-O4W zt&pPhlz3jWL8_w{#aYn~DMsHE?-3o4>P1K#6rGSvu~ghHx*#=(A#shcAT^3TVx{PY z)Fcjwm{PMUYy==jl^efjKL@N+-n2 zV1n~i8W#4zO2~4p21n+DOL!lHc8ONFl)U_H+7W+otsW3~??3sxLH>hmf3tRv{Rn%h z_wyk%N&Sx|De+VRX)5!)R3*0RI8E44jj+U76I9c39+q(h_w)SIZ=qJSCU2^ZyfpF) zaL`@EYwn`d%Z2&qj+!r|qf%cN?54YGxxns9Jzk8b?zHv7J1zBlkjAW1>;Ot*cvBR57}yZk@;#zc-+%f$eX}fjFr9C1Fr}Hf1VnmBI3>K9`B9UmXX(;# z>4907Vqm2iyJU2Fc-@z1c%>0uN=6KF{_lulrTfF_qtu1t4AGr@EJ2w-nM9dJ$)X%U zc^gU*t&&vVI7WRj?BP literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..672c6960201a8f962ffa589a1ed6537f60cab7cb GIT binary patch literal 572 zcma)4O-lnY5Phk&YwK6_Ac7!x^kTr1vQ?;pAXEfbdg-C0+qh2IO_qEVdiGy=@CW## z#Mnv^DW!*GGR(X;?=kuOdj9}$h5ZN>hD&WSJ~X-zMsPc^P8NI^GE#i3c`~tyPD$il z{jBH7gD6XBB2*cgBQX{{7b@eAgON;Kgc`#!X`YdL^#h)hDkbG4`Hir0hGeKGlquo7 zkqmF0{~U2=Ilk3dRdl?hb8aWTju{$>_9m5glm|&C^V$O6XFqZoj-I@7RLFZZCQE}{ zww2OOIMT{8983onqO{KV)bW||FsGJk^+FlL=|Yoj@ARzqcG}nPp9fIYTNy|%R&n!Z zPu*Xtzz|VUYU6BJ4#QeF>){U|yrOVduz~tCHn17uVW@9~+IET^?DoJ?G_ltMz5xe4 BwHp8c literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..803410d58a95d2f1eb0d750edf00bd076eb92cf8 GIT binary patch literal 3368 zcmds3X?qh@6n>{$Xy&#Q3bJoPAzdIK$`)EEr9hwyG$D%nG?}JDlbJY~7V3fviaYMO z;|huk;x=eeL_cUBKlu2Id^~5CBo*vazxrj)%(?G*?>XnackccDud&MjTJdubWhf7z zLZA{=66y{sBT6`<=;?58|6w(0NvPVY>6+Chp*+->2w<9o<%XFKr%WTOm`XT5nzz(! zI7MHY9*&LXV@6U_GC>4T9)t`LK#f2xrb`I@d)$ao3{4mkYSOCJVXBIy#}VP>eY z%Smn6(lX(lFNBFd#} z5Ln4{)kJqNubR;m*BlaP zETAX{whQb)huhZTXhkUMmfb0^i>I7UQ}(F?rkWot%(+J(%5zSqIVX5yetWZqa~1+Rxhe%FqN3GnRLU+wl$~ z<>Z|a$TFTcLg|PMLm~6(oIB;4wdwf?LMp0#7iSS3$RuY|o?( zQ?mxM+?}Tcp5_o<1rx_)JS%XL<9H*`*gkcXBc2y{fg^Y$_+A+=3B1hM0Ac-3o)UPK zkpV)wJ{hkIyumo`d#^&ftC0L#0&g>#`(8RC;~jx_Ii`L>OiWFhs>K<-FYp0J)=!A^ z$Isww03Qi_jB^rNr~2QF8-@RGx01`zA0wN~P$@}6A5l&Emyd+HrpgtW1X-9R(l{kl z5NGfy7xS5f1OFj~sj&xeUc%<7)^$~nBvi1@w3@m!UF{jp_N!)G>Cf<~(`6);OhPd= z{`Q;|)}WS`ux*mcC!S_k&B&@mXj;Wgua(d=Wg?2HrsLK6kjmoTqyShwgRkkIlPDbcR$hNW2aGo#$y{^fIgY7cNpM+|c)OqUW< zH7xokg*%LF&d^oeieMQn#43s$&=)P5j z*>sulxD{u@AI6)C7 zu?nXU!fCq8oJAAPqZu~cU@l`dekHa)u-57MQn#;O&#A-s2H#TeYw-)=FH+yXb8?ib z@IAd$N;K|jbI#M|h^NgsYtwRpYx|#QqEpX7ceV=Zd=)lRPqvUI5$gU{>ToM{v5iKy z(Q`X#(oUM}AWb?*lbxhVCuy>aG}%p>>>*8}q{&{=WFKkLMVfSzCOy>SUeaVgY0_7s z$9O@HaZe9m9Aj7OQC;TfF$UDN(|)<+YJ!cVD({z?rsgYMdy8r+H literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVo__Javadoc.json new file mode 100644 index 0000000..881b123 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysSocialVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系视图对象 sys_social\n\n @author thiszhc\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"userId","doc":" 用户ID\n"},{"name":"tenantId","doc":" 租户ID\n"},{"name":"authId","doc":" 的唯一ID\n"},{"name":"source","doc":" 用户来源\n"},{"name":"accessToken","doc":" 用户的授权令牌\n"},{"name":"expireIn","doc":" 用户的授权令牌的有效期,部分平台可能没有\n"},{"name":"refreshToken","doc":" 刷新令牌,部分平台可能没有\n"},{"name":"openId","doc":" 用户的 open id\n"},{"name":"userName","doc":" 授权的第三方账号\n"},{"name":"nickName","doc":" 授权的第三方昵称\n"},{"name":"email","doc":" 授权的第三方邮箱\n"},{"name":"avatar","doc":" 授权的第三方头像地址\n"},{"name":"accessCode","doc":" 平台的授权信息,部分平台可能没有\n"},{"name":"unionId","doc":" 用户的 unionid\n"},{"name":"scope","doc":" 授予的权限,部分平台可能没有\n"},{"name":"tokenType","doc":" 个别平台的授权信息,部分平台可能没有\n"},{"name":"idToken","doc":" id token,部分平台可能没有\n"},{"name":"macAlgorithm","doc":" 小米平台用户的附带属性,部分平台可能没有\n"},{"name":"macKey","doc":" 小米平台用户的附带属性,部分平台可能没有\n"},{"name":"code","doc":" 用户的授权code,部分平台可能没有\n"},{"name":"oauthToken","doc":" Twitter平台用户的附带属性,部分平台可能没有\n"},{"name":"oauthTokenSecret","doc":" Twitter平台用户的附带属性,部分平台可能没有\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo.class new file mode 100644 index 0000000000000000000000000000000000000000..6d9d6017c0ed0613e43b6e40b3c5eae470d620be GIT binary patch literal 5272 zcmb7I-*X$)75-M1v}<|o*p3||lBNM18vjB#ga+go8k~eUl|vdQrX{pxEpP3OrCp<4 zxiS4g0;ND8B($N)bTZR2q;Wfw4s)dm`^X<9ko_p?<|Nftw9|IV~r4(YQQxVsZKvF^TNn_T?6bySZ^ThZ`Gw&%#?y+pk zdqhFqj;^tKXsB0_($N52LB=UfW+qBb(I^=ich2?9VrGIP%g)R?nbA4-m}wifcf`m~ z8bL)<-kcU5O zu>@byu|rTNO~LEGty@PAdKI*hU}SaN?NvmT$i-W2^M?1N2vwYKLfcs`s(KPRCa1#x~sO(h|#-NN|~xK#`>&wepl zEL*c=83pS(W4ypwG`s$A%q+Q*hr$9NRps^DEm{BO32~Jb|C<@X?%eH3~%`wZh zNU+zo9VUscoM&$??-VoS9yi8~jCm?=7Ba>%AhTa6j+C4kv*gVUC`il-ZZ71~{I3>Y z`EcPkmu_9XV6ljFDK1<%w>1AA?F%ox|LK{FpPs+6aPBQ(PcB@2dGY<-4LOul?@U+kaZT{O-bqYtm!!^2bY8ZxX+B_QvArGhFGsW6$#KW=X*Vx$x#@;6=v{ zVh&I;;C% zVf$V-R)&q7e|~zzm{(~p%*Y&Yv-2c4VB|fg#B=y^xL54tQC4kHp_H{TsC2PJhi!I~p@QMMrmN!T3bwDxT~ta`yrp34|A%soW&Us% z&+r%&JO&kaVjuQXKESgphR6BvTF3D)$4&e^#OLcLpt#7<#(P<$ZG<*n!y;{mY2$S) z()I*xyq87Vj?l*YS76)1(IGxEmT%x_9-}x$<8c>bXraK{EA3A*?hHo?KNH;_LivL~ zv2XHk(pR?OTa?8V3BXf0!Oy1y>$myIa>e#lM1O?(9*r@q5N%tNh06?%#l3465l(d@m|F9qXl+Eg+yzucDufj(+oc>17uQ=*6HqdVcMa z(Z}MfiVXm6_jF%FB7VK+uh4#pMBVkCzd#%5?Y@Dn{*c1mhkN-a8}IuY8q)Dk&@vCb zFCD*udn<^pY=V%kY%-k?nB*sDokwFjkxqs{eOZ;DzO0s31xO1(YFZ0{`m^-}^=DJ* zdI3rWp!#$w1lpBtAZS-sPd5mV9)Ku?K)bVz1ntf?r5gpPDF8L5n<}9Abo>?dp374hYnG(5jz2l-h~(re8Fd*XwBv2AG{m}04E%{}u_`)(lnjL>&w?|)-^5}Jywr+mcUJRF+OmlyO0O-^ z1@p9=K~OMtcn7C2$LS~VHlCvt;}T!N515iV+=CbKLrQTx!m|1ir3Bmk2!2c{$)(?k z=P9W;j}Dxsq=`jW?uPz36>$}sqHv-4)%$ajt&C$r(T+p~P{G8jRRJs+f~_EHwEwSpKWr2#D{+aLKP}PMX{xuE=rol>(qObOCE)OhQH&&5AdVJ z*t)7x=pvaUGv{Q^%zS>me*n0|L4pdyt+5#&SyKorxSKk!3Os@Rk!&+SHadr?-N!%;gL~Um4*oyWj`nRKRM`9OyeK3gz_WQs$ DDY(lk literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2f0c65f0ac2535f7d4a6cac6384dd138d8fb563c GIT binary patch literal 2215 zcmbW2-Ez}b5Xb+=aU!h9!2|-NP|8<>zlaE-#I2zvgaRpc2yw+_9Y{&M#7nn$Asv6D+WR=@6>#k~Bu4Q)jyPj;Db^5X$ zv$EgamX76kn^vu9HKYy=6FR10Xh<5E!C3+G^zc1(Orfd-jD{QtuGa--)0xsCXGuAY zBIh}0U>4`eyL-g@e0tb9Q)Qw#0~c{gVCGPK!)i-`3rFNDo@<8*<_&y-D->~xo%pED>sZuRzIl(mDHLwVi0>j)xffu8-4C4C5EE%{z zz^izc*9&TSVBnhp-e7bE1r6UC_zp#ZS7WaCwi@0=WvkPX?s~h^63}YO*^@49%wN)_ zF_nuW0)}%IGvhexSixhim(Iz%@wvvzrQwOdi!n<-ZBhl|YpPDW{%py1385!C z>J`;fx?b-hM}#YpUH*j&!^t^{5rP9t3`%yJC_oT@mzLr7x4L;L+?yh~McYhNtx8 z-#`*;^fdYoc!nS8OYqqsFAn~V?;NsEa(`n|9Q+CG?MEca`J4~kM~dwQAD7u)_3;(k zn?Al~oA!}sd(X#m{(v+lg1lMi^nMO;x&fvzNB7JnYVMb*_s(O1n)V{D;32LO!L@+x zdOv^2MkIKS7sNP24elk@iSMUCTTI~;!a|G0)<$#M+^t|5QGO#hR80SVH% zMeMhU{SGmti9JK4Sz^x-d!E=ABix10+=Y;vI8Zvyorne8B_Op*^Is0xSBRY1liA!S zOy@sA^YM@;GrEXcWD%2LLY@oOOaY}-UvneWTqYai-+`u&N2Bx-5j~z;(u?7B0I-QS KWO*NL0sjHS4>IEb literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo__Javadoc.json new file mode 100644 index 0000000..e29f000 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantPackageVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐视图对象 sys_tenant_package\n\n @author Michelle.Chung\n","fields":[{"name":"packageId","doc":" 租户套餐id\n"},{"name":"packageName","doc":" 套餐名称\n"},{"name":"menuIds","doc":" 关联菜单id\n"},{"name":"remark","doc":" 备注\n"},{"name":"menuCheckStrictly","doc":" 菜单树选择项是否关联显示\n"},{"name":"status","doc":" 状态(0正常 1停用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo.class new file mode 100644 index 0000000000000000000000000000000000000000..3ff1511cb7f6b9ee3717389344bb9c1df25360c6 GIT binary patch literal 9553 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 Tw{VTqJ17NV9jCw0-$?yGxiDY4 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a5056126167ff69ca6f973547f0602312db66d06 GIT binary patch literal 572 zcma)4O-lnY5Phk&YwK6_Ac7!x^kTr1vMN+T5GsN#z4TDhZCq1!lO-PuJ^Qab_yhb= z;@C3$tQ51!=5vmN$u_y)4giiU>a4Zuap~i5m3{RDR4MUzOT}YKF$!~>|GbBU3qf#w= zu#(}e{huRlFUMcCR}~#E>73h%Z(@c<#{`?mdzF!-lX-1{@3SAd3`fsFdzH%vT`H%B znQUooyzt6s$8azmoQuMF8xqfF#%WG1G5STN45tfCwt_da-n(hvU~o>LYH*TBFII8$ zXHUIfDq@IKUKr~gEr(%^&N}@8&?}<5f(_KCv4KsBhg9F9+IE5+?DoMDG_ltQz5$W9 BwUYn< literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..bef2c16e24682c126d6f7aeeb560d97a41842fb4 GIT binary patch literal 2663 zcmc&#YgZdp6y29sAaj9~7Tem^VzJ0068eUwr6Lri21!Ug((=a8OiIWKht+nbO z!Y|XcbS+oExt2dl-6xrlv>+>f@=H$U-hK8xXWw(r`SY(|e+O_AKS$Am)(F}(+R>p9 zdu(o*iM;9L5_i`hTNz)WPK80&%O$d&TQEH{QQ9f_Rw0q)m+d50 zcS>uPV>*5m5wu2OKu6H6(Su%v;eYqra_g>XSD`&;`3qTvzTuHnJ*1TDkNsTvgig41_;r)%|A-YO`M&m7^ z?<4)J>-c8IzhAPvC9_~jlmi-X3tb=S_H7#&)Obg{d+XlI8?IAv9nyGLTzl)T;hupJ zjZyLIsrVI&rn6H!F|P5Rxb;-r8nz51G$zC=Mz55ev7C~%R4%MroVD1G*p4J0*g2)c{txk^z8cv|C@fV&8;ts0oo_&~6o z#4b3#=L&RAg9|*4nCpMU5pXH%-=MGqY*ttc9$= zmo@H5)o3y|Y#3P8Si^mVZhG9_F4~^8W*4l6>MQ$pJ~3zdR;Btr(fAY(2q#Y?yjF#E zbhS)A*Z4vLl8c_nWZbgDa^R1|^ibm~iAgT{)jb2I#(FL3Rp0c>72UHMRxRn;Y7QF_ z*cy+qsc^H|XSU|VXNMTMzm^V+A8LffpHWpVVTY$tp|Yvy`h$|dDy%zWDPZ21ls+x!i?q;Tty z%wKJO`%aWwN%C0J%S|YZHcdpIE_UZ?BU3nkh-3YRSk)}5%q9yWOdz&s`5SI_na#dn z`Ig6IB$NvZlZ}nBIxdn8eK=fcY~bON!q5S(2Lhw3ZrRIN^R@_lelO0nd!S6?GAk5L zuJCp71*h$j&6}8U9GB0>b{)oE)vr{PrvFG%dg6MU3C=Lja{Zm6m6&x4MRsAwPqKUG zI35*T&dPRLj!6D~!>_Z^N?;0W4iJJ8Q@eVl{y1gG0c3~?ro z;}mDWX-wk`=DE6rvq)nA4=K?joMUE#*y1#MMzrKUP|YvQotbj?2{q{9Y1`Og{@+&4 zRvq|`f7;n`K1x>_o_JOyGi)aLt8n`=~8 z>Zf~j>?Mr&OGE-ZlFMu?!bn3Ac83Rw*1{PBp2n)2&qB^iv@Nn-;S7*JjIXPKPwtL< RE%>1lz;paaEAQYZ;2*ESl==Vw literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo__Javadoc.json new file mode 100644 index 0000000..5af052b --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysTenantVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户视图对象 sys_tenant\n\n @author Michelle.Chung\n","fields":[{"name":"id","doc":" id\n"},{"name":"tenantId","doc":" 租户编号\n"},{"name":"contactUserName","doc":" 联系人\n"},{"name":"contactPhone","doc":" 联系电话\n"},{"name":"companyName","doc":" 企业名称\n"},{"name":"licenseNumber","doc":" 统一社会信用代码\n"},{"name":"address","doc":" 地址\n"},{"name":"domain","doc":" 域名\n"},{"name":"intro","doc":" 企业简介\n"},{"name":"remark","doc":" 备注\n"},{"name":"packageId","doc":" 租户套餐编号\n"},{"name":"expireTime","doc":" 过期时间\n"},{"name":"accountCount","doc":" 用户数量(-1不限制)\n"},{"name":"status","doc":" 租户状态(0正常 1停用)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserExportVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserExportVo.class new file mode 100644 index 0000000000000000000000000000000000000000..37101701222361b8c17f9ee8c63b5ce2a59aa31c GIT binary patch literal 7647 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 NDpUFyevUU#`5*HQkl_FT literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserInfoVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserInfoVo__Javadoc.json new file mode 100644 index 0000000..190df37 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserInfoVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户信息\n\n @author Michelle.Chung\n","fields":[{"name":"user","doc":" 用户信息\n"},{"name":"roleIds","doc":" 角色ID列表\n"},{"name":"roles","doc":" 角色列表\n"},{"name":"postIds","doc":" 岗位ID列表\n"},{"name":"posts","doc":" 岗位列表\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo.class new file mode 100644 index 0000000000000000000000000000000000000000..2b87aec4690470d7038c35388835f6605e4ffdaa GIT binary patch literal 13002 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f0b3e7d3b0f0afde86e9e68a59822c658fd7108b GIT binary patch literal 2725 zcmd5-X>$}+6g@B7km;8YHra(3z-(mLw_ytb6rF^agi&13&ZL<%ndu(8JAt_2ig81K z3Vvy-w94X}RsJZ;b9?%c0g;-I)>O^yzJ1<#_nvp(y?_1v+aCbV;O8t_(3(M;Mmstb zdT!ZEcCKQ3<=oZTTTUrb=s4|qZgf_mwSS5epb}n2FBd401$H0{_8HoX zPK_~3?)@4AhQW9(3~3CT425^Xt~!Dq(a4!pR{a(ZY8*273AeOh@JBR`8vLr?!f}lg z1}{7_%e936lt$j*SN#^wXq*-N8cK4Bn>WLp!6ynwo6F`YRTSFB{5iI)wFTF6CXyPSv1cpN#0q}Nt`zOSmG{)y z7R|e%!t*p~Y>iLtCTEc6mUd7+pwP4iJT~@hxu*(!O(@L{%OWl<@Zi(1d&Zq;-k+Of z`>#5Y6EFn{;-JEb#`ahrAo+SXPWoEvN!xj&i{s%LOP>kMPWy{N$+_%`ti5T?6#Zw2 zGa^$%Ve8bQ7jcpl-O#1>qn_vUs=B_%xCavf!kV=Go01N1{6dZsEpYsZ?JYOvS8LLb zqC9$8axGB!n3J=emIIUjpYkn7tHe9_5b9SxwBR%T%V(eqclodD0DO)w_@<yUxxlfyL#|DGS?rXb9{IxMm9!|*o`r^h}{umx7a-~UKTqTW53t~F%FA87UQJY z(=pD8y%6J)*jHn`E_Ncu8)9c-yeanW81ISwAVx{-%^0rON(_Ja0b^=S@|eO#KCeR? z2W|&8ahz}FDBZ$&x0ST)lML3Q9;KC~

)PE;wcDI(w<6jNKakk}Cz?%Q z17qD!%|@u%LFRObnjNM(N2tJ2dXMpUoSL1WW+$oHDQcFdW~Zsy8ESTxnw_I&=c&Sl z2EA4u>$Q^V1+4J*FTFZj61`S{o>6jrSJ#YtwkEoF4GukmHT(#f7=aviW6@?Binc4= vP|iR&d$?auo%8#Y^Du3Td`>uH+<6{fX9J&{DfwFPLlVG`_=#5T&3)h>UEG@I literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo__Javadoc.json new file mode 100644 index 0000000..f1a5a7e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/SysUserVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户信息视图对象 sys_user\n\n @author Michelle.Chung\n","fields":[{"name":"userId","doc":" 用户ID\n"},{"name":"tenantId","doc":" 租户ID\n"},{"name":"deptId","doc":" 部门ID\n"},{"name":"userName","doc":" 用户账号\n"},{"name":"nickName","doc":" 用户昵称\n"},{"name":"userType","doc":" 用户类型(sys_user系统用户)\n"},{"name":"email","doc":" 用户邮箱\n"},{"name":"phonenumber","doc":" 手机号码\n"},{"name":"sex","doc":" 用户性别(0男 1女 2未知)\n"},{"name":"avatar","doc":" 头像地址\n"},{"name":"password","doc":" 密码\n"},{"name":"status","doc":" 帐号状态(0正常 1停用)\n"},{"name":"loginIp","doc":" 最后登录IP\n"},{"name":"loginDate","doc":" 最后登录时间\n"},{"name":"remark","doc":" 备注\n"},{"name":"createTime","doc":" 创建时间\n"},{"name":"deptName","doc":" 部门名\n"},{"name":"roles","doc":" 角色对象\n"},{"name":"roleIds","doc":" 角色组\n"},{"name":"postIds","doc":" 岗位组\n"},{"name":"roleId","doc":" 数据权限 当前角色ID\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo.class b/ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo.class new file mode 100644 index 0000000000000000000000000000000000000000..5a624ef940d20e98ca3b16ed427925382764e2a5 GIT binary patch literal 3236 zcma)8U2_vv7=BK(o86|{uRsft3TO+oO-uY1lC}bsLN$fjKv6(to38EBWVh~as{Ik% zJN^K<;X-E+XSi_m250o#}Vma(@XYn8yWosE(}cg5at%%I`XrP0<4Gtn}MpW_WB^1r`qJJyv(ea-T&nQJv( z&z9Y)Sz9$dTdw0xCD^nX!z+@oS70=7WToK*cHLTZc5L6Ks`HNH24)adO}1Qf>uc^- z;gaQ8o*7u{ymF#F760SA<~Qpizi(0}R@qHUR-$6_UV z;6{ZfaIl%NWO)f>DsIE8S_`%;sQ$gOI4v8EdAQ)ZfggD0c9ammKaJH4Zs2nbU&uzf zDKNG-`D|y$-LeXi&8W8)%xd6zy8=HXhe!;JlwLNSbq=4gvg>X&wo3`Zlst6+5s>I&O1p?S(!r^EoS~jwd*k%aGGq!Kq>_I&6jcn(6zN zui*p| zhE|UrqPJbqp$>|oKtF8rjN`t8!ohZhBl}i(24`c1MaCvMPfzB5h1Qw0;Rq3vCJB|< z5h(JW$~I<7TA3_i21-akIjO!^s!t`TjB@g#`Y7qML`V5bvkYW%V}tTIB5JP9@JF2u z5AN4+R9#8K2a<;6ac9H)NskB>XBcreJ-?Tq{0XY^Apa-yAEBlmdi4Mw*CYMU{|a#dJ=UnDi55@1r-T=F$n!Xi+0*w5aDa z3DRSbmeZRcEjoiQP%DncZ`3<)p}eXK}Tj zrFXJgRmrLhD%qIHYEqvEr7{#5R9rh3+O+e3CMKwc-6~G=ou<<31Em>dHcZgSKxvcd z(FgMPp-n%+$vblYSW%G&IVC>PWzwRf(V`k2F<;>&J*S38Bb`$)7a5GbO<@I};8S|5 zVi{#hUC8jc#0XLtWqV(tq+pJOT&1LjB!7qWGj1p(SqKsfA)XPwx9*Y~Lr|N5CPr!9 ziec#lY!BJKOK@B7E#tF@NA_TfApluPp`?r7(Z?(yv`?($P|n6ABu9xPL?*d{Ykcd} TdY#`}_>!v(rLS-YYsmcv`}cbA literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo__Javadoc.json new file mode 100644 index 0000000..1881313 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/domain/vo/UserInfoVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 登录用户信息\n\n @author Michelle.Chung\n","fields":[{"name":"user","doc":" 用户基本信息\n"},{"name":"permissions","doc":" 菜单权限\n"},{"name":"roles","doc":" 角色权限\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener$1.class b/ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener$1.class new file mode 100644 index 0000000000000000000000000000000000000000..85c92d97f4bccc0fdf57895be472503749882dd6 GIT binary patch literal 2323 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 I5hoz}KSR}$^8f$< literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener__Javadoc.json new file mode 100644 index 0000000..c966272 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/listener/SysUserImportListener__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统用户自定义导入\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysClientMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysClientMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d13a86cdf038b118a6ba22f0ba8fbab14b886510 GIT binary patch literal 375 zcmX^0Z`VEs1_oOOZgvJHMh4CNqICU~qWs*%qD1}T%HopLT>ad{f`Zf{{ou-C=bX&c zyb@n9pPhk)kwG9Uu`E$PCowNw-#;lUHMxYHfsK*D6xopE{M_99JpJ6tq{NcUV*TX& zqEwiPPKm{-5W@m;N{bm8ID<3O^Abx+i&7aGX8E8SZS6yru{J2$pk7J=dN4B&;U!eF zQ5BWtBh-cETiaPPGH?awmlh?bx@G17T`GbWFnS<|14Dt4ffad{f`Zf{{ou-C=ls01 z%yeHcpPhk)kwG9Uu`E$PCowNw-#;lUHMxYHfsK*D6xopE{M_99JpJ6tq{NcUV*TX& zqEwiPPKm{-5W@m;N{bm8ID<3O^Abx+i&7aGX8E8SZS6yru{J2$pk7J=dN4B&;U!eF zQ5BWtBh-cETiaPPGH?awmlh?bx@G17T`GbWFnS<|14Dt4ffw6T{9e&T|vdc0+SOONM8jwf=#jz?VE+9z&SzR!)GzzrUlikB+$Xu40*~nTI zwN-mnT3cIs^?U2{_$gX_Z2jy9{~tftr|+4WWM`AGA-K;oJ7>0~hkk+n!M+JIDMyImK2|UuBf9QGktQDF;v(fPU(5#$nx>YT&Kppc2 z*256!qa3>>P#hU8-zK}F)^ekPO&Fk-fwEOK6u35W@wOSRrphfKSInUxuui&F6@;E2 z}o zdvv6HSMhM;^^|NEbbH-SW2q_+@T%vU4cVs)(NAFDMpF3 zH1A|9i+gBTcPFNhOG0ctc4Ai+_ZrxZVSznqV1iZpD=JzpC9gazGBr~88&^D!zqFL zRx%|8V`81={-lAYGQffnXR8xm)DoA37HQ00W zsNgwWSI;kT;zH)Kz+MzMkhW(@m554sk{P;8#Az|f>ds;qr-qK4I6Vep8z)(997Qkl zj1krRBncU5i}nk=xAtT@Tu!T+ChnP4>|D7TVU9CD ztC!DPHO5J&vWviXXgwSWl?_>)QKl7jXS1zrU`AAwlTj}+B4eLU%DQU%^V0|$??q^)rlEZoz*3|8tNJK!0IdxFSSiq zt}VOUKK&)+TqA0 z<@4r^=2m>t!MU?9EQ|Mi#cTRib<&CgFY#*J*Y4MSmt)ho=Y>JYkCV8e1)KWut2};< z-(>NQfp>AeqeUl}#E_Fha=PI#PFHS}cG$7;)(YN;Wt@_3%~rwgvgge<8!L?2DL4~> zG2yvZLlsvUofCoyY1K!&ccP5_g;kQ*n zk=8@t$GknyD}xsxc^~4zXJT~krZ2kmWdOpYYdEE5{?*2E1GWduD88rD{poPFOem0KbPLAJuxSr$AwwNhi z#8p0#Jz98)$|t(ExD^BZ6PocdUZFPn6@hw{w`+^9UyG1UL-1-Ff@=eLypA`xp)L7} zJah$AHxjs{PCR(qHu>0sURL&QE@G+kK zFM0PwVD(3GwnYFL(fT@mil6cQo4hun_Z#fUV!y}_evJ}=jS+eaZ}V*iKgTb4A0XW? bIg$o+|{4Pf5G4I4{ZNGVS+$_ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysDeptMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDeptMapper__Javadoc.json new file mode 100644 index 0000000..b310030 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDeptMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 部门管理 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDeptList","paramTypes":["com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 查询部门管理数据\n\n @param queryWrapper 查询条件\n @return 部门信息集合\n"},{"name":"selectPageDeptList","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 分页查询部门管理数据\n\n @param queryWrapper 查询条件\n @return 部门信息集合\n"},{"name":"countDeptById","paramTypes":["java.lang.Long"],"doc":" 统计指定部门ID的部门数量\n\n @param deptId 部门ID\n @return 该部门ID的部门数量\n"},{"name":"selectListByParentId","paramTypes":["java.lang.Long"],"doc":" 根据父部门ID查询其所有子部门的列表\n\n @param parentId 父部门ID\n @return 包含子部门的列表\n"},{"name":"selectDeptListByRoleId","paramTypes":["java.lang.Long","boolean"],"doc":" 根据角色ID查询部门树信息\n\n @param roleId 角色ID\n @param deptCheckStrictly 部门树选择项是否关联显示\n @return 选中部门列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..1475e1df0e2556d9a5509898422a4bcc3d69f26b GIT binary patch literal 2943 zcmb7GTXPge6#ja1+08N}aRPw=LIMF2A`GGkxCG4&SXshlF$k#GyVGoj%w;o|z~U8A zUVY}p^34aUES`cwmGbN#vC1Dnm1SvpdS=$0kY&NGnw`@<-QVf+o$s8P-~M^{3xIKa zokogbqU=~&i942|JAr1^O58WRsu_4%*>MH^*}CByj_qlSfpBYDfmA zRV&uKX`}2cK_WmrS-GV&s&Um}btcm;b&Tw*ccrpK_pS%NNSpf&bh zs8xlG>{SH^r0bPOK4sXteEPbAgEHvNKA-OQbe^&Rpf0>vf7F;9JBwKqWwW{Plni3Ujn1Vp z$8azi8RgD$?0RpD`dVCLliU+gah;`>M=FjAtX_AMHK`+p;iTZ|o+7z73W>U4B;=lg zVT;+oDhc-jFPXGoEjVRv&T%Rv8po6E{=7jh_ZE_8eNGF=QN`#~8qu-T)fGoVi*j?8 z8j2-I$mF8yzeF*de}PbrHak)*j3pp&d70TqKMZ^`ft*13?x` zxRJ&Q1saBW5q>4KU^GEjGxfC5S4W5Z17UwEu|HEV3TjYF-nNAswm;#eahn=oqbaQj zW+e-0+@ZeIdMRl(qKrO*Hc-=Nc$ZF)qWeX>hc;ZIkw81m06X_Q0=x78Z4Z$K#+I?> zG1x=&0L$oojCDVwKZX0@_RI9I(l%fty6KBy0GqLm>?<_WAA#Y0d_W_D#fP{`4nHEh zgV6xsbfr-0&7usQ9?>b-VLFYZ=gFRBY$>G1$^Z5rXna7fU3~ESA9NpB{OR^xy6+xS zN0zbY9{SqGzeo3&x-T4cw2yC*Tks=YG9vlgL>Hq=C*1v+@9+)XUsK;$#^HOoLv~I* z7TPz+eoLJU?FF)@)Z?LjmF$!1sn9NlY}}_Ai8Mp^I?@rc>qvXat|JYRT}N6^_DS`0 zh}0EweE$(Th5Vn$ uQyL;Z=V8!_6s}`|?pw(+>4oIM$4%VA$MNWsc=S1~k)N7h;7fdkfqwzk^HtFR literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper__Javadoc.json new file mode 100644 index 0000000..c7fde9c --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictDataMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDictDataByType","paramTypes":["java.lang.String"],"doc":" 根据字典类型查询字典数据列表\n\n @param dictType 字典类型\n @return 符合条件的字典数据列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictTypeMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysDictTypeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fdcbb88ca4612548b2a8806a1ee169a7b64757d4 GIT binary patch literal 383 zcmX^0Z`VEs1_oOOZgvJHMh5NtqICU~qWs*%qD1}T%HopLT>ad{f`Zf{{ou-Cm(1jn zkjjEoU$6)}0}CUAKvrT|qJB~VEMsj@v_Uu?MT4v<4dSxk`F zh>Bunq|u+J`TubI_yq8X+XN$ldv=xFI5y-+`rfz7NJCAdoGf~ubEU1eTXwI*F2S|H zY)5;NHQ7oo*E?0V32p=yzdW8t1-?TWLfOdu_|bESIGb@=%1kC5hHCPE?tSE0rsY+!_B K=o3tbnVtaLe}Fjv literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysLogininforMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysLogininforMapper__Javadoc.json new file mode 100644 index 0000000..f89cbd4 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysLogininforMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问日志情况信息 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c4363358d7dfc34d0842703b89770e03f6308f27 GIT binary patch literal 4380 zcmbtXTW}ml6+OLr>}oZ(wHzebPL`}}$Lq+J193*X9cirD znbpj!9EC@KkOwb^XTU%pyb_WCF{wf+l;V*OekkCdqWFV?Z}_5s!0CBtXQQ(#jl!#BN}RrmC=<4XS671K8z z+tX+2(w)Tj>}{;bRjFy!Kv1q zKz?^$@%k(Jj$=)mzV6j)HOKY!(($@oRu<&b&;)ue8ncFO8TO=pa^j*a`)RBe*z35H zdc}3BhHKE~YSpn9?e~1cCd{1Y%jyU>qPkuNJpy7hgB+U?wS~87SdR??Dbp4>w7dA$ zb@KNw9qL;;lp|CogBu9DSHa$>VKd%ASUDqbum$W=h?b}+WE9+14cpKwkagUObcg4L zyt2SeEnr)Mv?0@towzBDT^e?yPheNlabDmfy&8m7d2CeL_0gcm6+LOu-9^*$1&;1s zCW;B(L^R1q7S(;z(iKWRi+;Q-jhi*x0$pHR!{eqs>r6|%Bwf?6%tvG;WSzj;N$D4= zHEUG*Q%>cCQI!lFDb-Ld`L1bC68l!%md5QG_F;b$Yr+W((v;y%jW`t|kgSCa1_ZhZ zul9Uqt|k@2Aq{sRPg={Fx?y<&>sxvHd?mp&RV!_6y;8%|8FZ=nr!?HF=I^}T{E|6obLXzipjRoK(Quzq(x{~37ukQ7QEx%O z3iH^sV*)DuaSi8{{)R|Dv?{TRp27Q6c#>35-kOwdK7$Jaxu#b|ha5@65a?}Cr(juf z(y)fy$$FJxI`(i`)>PrifH}6MV9%0^m917#0Jm187qOEC)3LL75Kv|^ zX-o<1PwqCVQ&G(g>s6F{!-glr#5=`O%zcN+r?{z7XL#;Du3o5+*r6v#Ean2q!MR#c zsH3bS4Hvy6aQVMa+r!1A$x(%94p9EclH6XI7QKJEZu@3cj+vf0Vadg94B58B)KTXS znHHE})Qs|!)Xm_4(v8LhJT}|yFX>pZGEjG*Q&PD*fwj1J{wtiQNPw@fLI%vZDJ{n?3()j;aAG5 zfjHY2y|_}%M5d{jG-z|z3W%_hRB4gSF)_9;S>k*PYOZB*s*g;`^0cZgWnW#Z_AjrQ zq-nrkO--!1hE^Tnj;970<`=Gz(qCkY^HF z;q5NpMB)`!%#}pD3Awqj%{uYnGv=_m@$yr0>TX#cH-n^Wx*6S~4iFaNVaM@3pI73r zB718(@r5kDh-cFHl7=tiO4C^r`6P5XH4L8WzT+~Ks||~Hki@_fEus;wakpVtEa~ki zI?i;xmQOe@I&~5w(So6(y5B5!pN$ko49hB+zRdTacTESrmc_I9dKzan3_$O}a{*hH z=Y8^Ajw0K}&w~#21LA&1;eJ=cozU5PLG`|;VF(x4dr9?P*7(W7BVH@mwseF0gY?q) zA&-Z~3Es5HX78kNm52ECr;@*+EBPg}llLQmNm`d~7ckL>He6H|3rw@I_@q#U&6Zy! z0uG;=hZ#IpmDRw!Tl(eno4;i{p#Sl&e_?y<>>n<_!nUtJcVHd|uRw1bd;xp%Vzt?tjgJLq+E4sL#ls^U0*)Ssd$-HRzcuk!gP?HJBHC$_Uamb-f% z@3|s2Qobj5B9OZ&pUjA&0dmyl>Ye6~e>g#xLJU8(gDnF;!LIQR&rog&@Y>H5d$DhKdId+-P zCS?DGeQDe(R;^l<-SQ6v>L1`0{0KMv2Vr~&N&o-= literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper__Javadoc.json new file mode 100644 index 0000000..c3f319f --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysMenuMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectMenuListByUserId","paramTypes":["com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 根据用户查询系统菜单列表\n\n @param queryWrapper 查询条件\n @return 菜单列表\n"},{"name":"selectMenuPermsByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询权限\n\n @param userId 用户ID\n @return 权限列表\n"},{"name":"selectMenuPermsByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询权限\n\n @param roleId 角色ID\n @return 权限列表\n"},{"name":"selectMenuTreeAll","paramTypes":[],"doc":" 根据用户ID查询菜单\n\n @return 菜单列表\n"},{"name":"selectMenuTreeByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询菜单\n\n @param userId 用户ID\n @return 菜单列表\n"},{"name":"selectMenuListByRoleId","paramTypes":["java.lang.Long","boolean"],"doc":" 根据角色ID查询菜单树信息\n\n @param roleId 角色ID\n @param menuCheckStrictly 菜单树选择项是否关联显示\n @return 选中菜单列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d7ea27efcec58744fc3c6915ee9fafffc643fe1e GIT binary patch literal 375 zcmX^0Z`VEs1_oOOZgvJHMh4CNqICU~qWs*%qD1}T%HopLT>ad{f`Zf{{ou-CzxgEQ0f5=%;pQW+U$`JfwZ?L(HaHYnPlUP=LaFf$L~B~-If z6_w>9)P?0++gUR*a0Ta=7A2>;W##}~DuNa;dLV}bLxGWj8Hibdfy= GG#3D>V|i5o literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper__Javadoc.json new file mode 100644 index 0000000..11e94fb --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysNoticeMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 通知公告表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..689a32e6b02a93bb9e75ff24547218865b8de755 GIT binary patch literal 379 zcmbV|F>b;@5Jmq&5(j8#xI~IcYOO=YQ!j9MGI8E~@h79L&%<{334 zb1D)U?lKiu9^M4L`jnWp=0fUrM^$QN%tk$szhu=7w#jQNFp1KnpsF@X;1E2c{or5N z<>2k^Y404SMbFa^KD=tUcerK$#}}AJT$@;}(%flXJZJOyr`-i1Fn0Co0tQC#y8ezy GH>X#)u6nTm literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper__Javadoc.json new file mode 100644 index 0000000..9867e80 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOperLogMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 操作日志 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysOssConfigMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOssConfigMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..61c99be52e2c55c52aa7ade30fe7742584e52bf7 GIT binary patch literal 387 zcmX^0Z`VEs1_oOOZgvJHMh2byqICU~qWs*%qD1}T%HopLT>ad{f`Zf{{ou-C|Keij z{JgZxbYHL#I|B6or8Om@FZZ&B|^f3)p$2`(Xk|u6SlMBfuolZjYpfp=!Hr3*w!!SJ3nRrTB%(sW5 z2y+KLhUqsUR8p#p%kn^ZVtA;u_~4dg#2dCt3&Y?BNt{t$Xu)t<|Dyf%U)WjWtj-hJ zbV*j{X@Z-Iv#LdVJVV=7*FF?z!Kr#5ZZ*9pM1^#f literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysOssMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOssMapper__Javadoc.json new file mode 100644 index 0000000..de583ad --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysOssMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 文件上传 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysPostMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysPostMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..982d1c1f449b1a37aef281f321177898b62c892e GIT binary patch literal 1471 zcmbtU-A)rh6h5<3N)Z)7Mf{h9h&N7Rf;Uy8XiQ9sHWKlI3o_k3DTBK^b!Hari}(~i zffqi24`uwO+m@E3C4`I3%$z;v`_BL0f4~0_(F=N5rAW{tW7{&ZCR0{P*L9vVnW;{P zt=#Flrg46|_o~v2pv6OVq-3h{w*1&SY;rmsGP2G7z$8s%FJsRZVa>oP7PRoKVB77}2&(PqHasmX z3$cEl7@s#r)7`IFg8J!P9+^SWc1``|*|RYXyWb6fJx|J}F`V#T(CVim_d4TU?Q|>U z*LiMyuh_`)v#~Us=sGpjly8++O}3eKp>gVhDn}|UP@kt~0C;24A`8YBzH(R4T*4jy z0Rad{f`Zf{{ou;tp!}Rv zm(+q1U$6)}0}CUAKvrT|qJB}?#Gcs@nXQt;RmXsEyGBV8cK{wjkhb&`lP_#ikl>+o)W*)Mq zP)*0J%+8vTfh#z_v?w{%Ei(t`P%(^<(F3_07z~UI%s|Wv3||HYCI)se$-%%0rnvw@ CKzefk literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleDeptMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleDeptMapper__Javadoc.json new file mode 100644 index 0000000..280917b --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleDeptMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色与部门关联表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..4aa57bc71a24a578076a672649ed055f043a1220 GIT binary patch literal 2035 zcmbtV-A)rh6h2d1%Abg!B8rMA0yj)zf)`eeA~7*3+Can$F35CuQU-T->dY?M=P>ap zd;%|g03XWuO?OMXXp5DL$?Tjx=ljm@%+Fune-P1AS}jw7(TX+=?i(EnBe-qZScW_l z&89Sbw`F&9Ah+A6G8Gw3ABkhZ0}(a&+xn68;xdge+USMwbQtQ0hpoDZmF1o`vV*rN zYz9^f63b}D$^aNO(U6X(s%*^Y+iDdMye@R8e4TWFny}#Vb1WmP0FPrsMV2=OHV{GN zU@HA>+m3iT@|DxJ{Jm+1RaxtAayA_@vMu97?bndKP{z_AtRkF}j3z%O(zG%fMq|6G z0Z$Vn8CyJ0j8Ce)>CP(VqkbytRIKuB_(c30?0K>^h~ZdweBaaXp3(eH62&T%d&;VM zAYVk0j@xxcf*<8FaH`?Ni6-9?v8YKCD(iX%prvCGBq+_pApl2O@{ZXvE;2aVQJjBz8Mwv-J*DbibGWLXr;x2^(=WciPo6wTB9M zw(Fbiy7aXt?DX!fsxz;g%N|Az#$ dMY`KXTLM~|sC)Qzzt1n|r%KE800sqG`3-ad{f`Zf{{ou;tp!}Rv z-_*QPU$6)}0}CUAKvrT|qJB}?#Gcs@nXQt;RmXsEyGBV8cK{wjkhb&`lP_#ikl>+o)W*)Mq zP)*0J%+8vTfh#z_v?w{%Ei(t`P%(^<(F3_07z~UI%s|Wv3||HYCI)se$-%%0rnvxA C40@9Q literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMenuMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMenuMapper__Javadoc.json new file mode 100644 index 0000000..4fa2956 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysRoleMenuMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色与菜单关联表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c6e08279f7aef5ac4679c6a60ad3e6e36cd9fac1 GIT binary patch literal 375 zcmbV|J#NB45QX3J6Z6wh*pegZYhP+BEgg^A$)xrPD?|CF*(3A>CI>o^ z%&ExaHa%!nMtBjJ{f8*FmJ4a?luF~JVyFLzEAsjWw#zFoFicEVP+2)G@VS0O$LpuC z^VZw1rF}4Hio2yYyM1)x``rh}%UEEPaOISKH+fL{`Vh?YCOo7d&<)iO;Q}2*O&?&` G%+VE^xOq7M literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper__Javadoc.json new file mode 100644 index 0000000..ce51ddb --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysSocialMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系Mapper接口\n\n @author thiszhc\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..84932a9f6e1ec7ecbc65b6480d83db0ffb38fcb1 GIT binary patch literal 375 zcmbV|J#NB45QX0w67$of;1X%ripnGf1r;brj_Aks$};lqqTMx;ufkC%I6w{+Widfu zmlQLjk!C)<_kMm)X8<1=BY`DYfFVPRJFOr`m`caY0sGVVknD48yp{6}id?hU2P>j#f`$ z=dHJYOPM!VsJo>$yM1)f_q(l*J|l)vtSgg>Wl?&ilTI+xi*TO;L(kWX4;Kg!Hhq9$ GGe>{BM|pJs literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper__Javadoc.json new file mode 100644 index 0000000..e3e52cd --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户Mapper接口\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..29225a9f507262980059f314df49fbde6c7e0311 GIT binary patch literal 403 zcmbV|J#GRq5QU%lTYeh)+ySRawSj_yiU_1d^nWUhv$l3owhcNn{h+LVqCR^t594bSPhy6CVhStdEX%{+Z_nKt{i_MqFf>E7gYiHE LQI)&sRkeQxT{?t8 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper__Javadoc.json new file mode 100644 index 0000000..98e44ec --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysTenantPackageMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐Mapper接口\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5023fa64658bf36832aa2a4a909ed9e9573de3af GIT binary patch literal 3465 zcmd5AFph@}_LYf38DJm35T2opeZHA6XnbOkC@Q_(sJ7!Z!>*#~V z5B(LH$xQ!4{y_SW$#Z^Gre`JDmO*$7erO+LX?L`H&OP_syYjpD|GXihZ|S={Wf)yk zZrw0lWpkGsUeoi1ZI~EI$JlFnzj?wfP>zQ3G+d-SjWD{EvcTqzhHzU8cES;(;h+d#htqGbM>jH`FWaTw31{DYPND(q#{Cb%$wX3 zQNX+4%IKmeEbOt%>q3iHk)F@!)%@wviRZp>JOpMS*t$e~4UQY4$CTdYJjx6L2Ss*- zf2hn|Si%;*a1mAxq>#ztvp~4bI01}C_hcPR16MFMJ4lRceHdi@>_YUnZD|0tdLbOC zRz>Wq@_L!km0tqKm$ulKo~&A8!*P@!<{1L7b}4YoaJ>Dd@qqh$SGczHv}dsC&=I!+ zq-N<18*C{nu=V2XAEL=<#1swx5ps=;1`B%dM52gB0vNbGtq0-sTz3?0mvn`5BV@xH zymlxI8P>AViNb@i;Vlrzh(8%kL^ac?mj^w(bZR%KgmoPF(lT__Ve=Pf-=)# zmX2ZdT6Mw&`L@9Mwx-h^1%7zmP_7^Kjlch20YubdGmn}br%XlkH!Mrl(DBWP{Y)H` z!@K9lYYKIsvmG_-srg9Gumx9?Q!kf((x(Sr(7imT9~g~C{k`3L{_3a2pI+Ig*r-<~ z6ZzlP&P8K?n4}(^9%t`TILHv?mNHR)7b?;bj{>_Y++R6*1P+u6G`04*EA=>@%=w2B zO{3IR^YQ7Ob{L}=W>TnX;Fk&UTM?Y=?CVFmG`{h7z==8;+f#vC6FMhrUymGN!_d9yFbTWOH^;-WI$L4n# literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper__Javadoc.json new file mode 100644 index 0000000..91c635f --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectPageUserList","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 分页查询用户列表,并进行数据权限控制\n\n @param page 分页参数\n @param queryWrapper 查询条件\n @return 分页的用户信息\n"},{"name":"selectUserList","paramTypes":["com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 查询用户列表,并进行数据权限控制\n\n @param queryWrapper 查询条件\n @return 用户信息集合\n"},{"name":"selectUserExportList","paramTypes":["com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 根据条件分页查询用户列表\n\n @param queryWrapper 查询条件\n @return 用户信息集合信息\n"},{"name":"selectAllocatedList","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 根据条件分页查询已配用户角色列表\n\n @param queryWrapper 查询条件\n @return 用户信息集合信息\n"},{"name":"selectUnallocatedList","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 根据条件分页查询未分配用户角色列表\n\n @param queryWrapper 查询条件\n @return 用户信息集合信息\n"},{"name":"countUserById","paramTypes":["java.lang.Long"],"doc":" 根据用户ID统计用户数量\n\n @param userId 用户ID\n @return 用户数量\n"},{"name":"update","paramTypes":["org.dromara.system.domain.SysUser","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 根据条件更新用户数据\n\n @param user 要更新的用户实体\n @param updateWrapper 更新条件封装器\n @return 更新操作影响的行数\n"},{"name":"updateById","paramTypes":["org.dromara.system.domain.SysUser"],"doc":" 根据用户ID更新用户数据\n\n @param user 要更新的用户实体\n @return 更新操作影响的行数\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserPostMapper.class b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserPostMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a55a7be2bbd8d5dd5239a821758a424a73540574 GIT binary patch literal 378 zcmbV|Jqp4=5QX3R7ZV#RFCn;6$_Tww#?H%)hZ;kBOMBue zWiel@w<5A08VvncOr)e#8JESHY+`t%w0JTnWW*h|OmoBFhe@1~&9z`S%s$bB*W`)Q8Y#aNWhEMr%`WUCo7;j;F@rCvz-Z3!ACZF*tUph*9fI zGB>Vju}Q|@^eq0;iA|A5=S`#ZQt?3m7CaFN7~GGPwE^ zHu|o1OZb;gvspEY|F!05{Z4))by=H7u`t-8 g>QUZ|q6=XM0vOP(M+7?dr~=rhYQ7HOaNRlj0I=h#xBvhE literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserRoleMapper__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserRoleMapper__Javadoc.json new file mode 100644 index 0000000..6b8316a --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/mapper/SysUserRoleMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户与角色关联表 数据层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectUserIdsByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询关联的用户ID列表\n\n @param roleId 角色ID\n @return 关联到指定角色的用户ID列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner.class b/ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..35d502bcc6f05ae1caffa60b6f37fd50e317a864 GIT binary patch literal 1371 zcmb7E*>2NN5Ir|do2BVOx-TpR3P}nzU072pRS`v%0<8$jyOZ3wZf)P_+9~t{kSZ35 zC*BZ`ydkj(iUc3Pe+0x&Am%zzQY*jsy25# zqMN4%W<-fbr6+4T{C3qYaCuiJOkb>`Zsm1pD!*|U^wv!xG1qFa4j)ir8Pugg!6dzs z@t;{TL~q5emyXiJC zj0i^1M=0mW8?49SJf_K`4A5|aa?j9vknAkx>8+iVBg1HyE;b++8<5e|2aKeq-h(xP z6j>1UCO~u#AnF%D^3>C|)3yEeg>eZn3RhK4_-TMhJn#|6-l9t(Fu#;KLJx7cOlJXH L!Bw*A^cwIBx)5jL literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner__Javadoc.json new file mode 100644 index 0000000..161cbe3 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/runner/SystemApplicationRunner__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 初始化 system 模块对应业务数据\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysClientService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysClientService.class new file mode 100644 index 0000000000000000000000000000000000000000..161ebb37fb5417e1047ac4d3db2d913efe45654e GIT binary patch literal 1439 zcmd5++iuf95S?|~+@SPADR&CIw3QJ10SQ5J5mKZef{e=Z#$KGQ*1N@CNAh3rJqYmu zd=z4K?KEzhA|hURu;iV~IcH~Q=I5_(KLFqrJa2+W;Dt_O8l^g6DWh4D8J^ILr&AGf zItYsFL<+7PGI|tO&OI;#q|C7jE9Cm`%BK#!Y>99f!@(@9x&7@?j8@9a74%` z6rE~%L2|0Qi2jb7iH=4nC*g*t839iq>{dll>aj%qI#FO!u_{$7ba%5@n+|=%Vm=fZ zUg+!5A2g3^ntk296dCFy(TXO;m>H4LP^X-pBP_MpA8eHt%5iPNM>dxH4Kr+@KHI{0 zV~vHjSPlmN0}(4`@{|+!{-5dXT`Ee|R?DBfk9RBkrz}18&-LxHQ2OJt)p8>wwb=+Y z`G@osRdXW6HgliT41+T8#;5- z4QILuo8Y;qwg&=OV=K{?!f*W3|(ltd)0Ig?pINWkCgDh XMLvW_bK1vfesY0*fbmc9?*Q-&9@Zfs@L1`D##*IJGny5d;VI3yo`{Ik z{;+%{G~HE0X@c8Lefyt zDg3tT%~(b%O_ii+5i%n(8Y#``5rR`2;cd=!(d(YhVULAl{+t=smj|kc$-m}iq~cwy zHsyxvj6f}NB@$S*AsjlMha!>8u{q2X=qC>gJoV&teJ^q&#?*Ra%SQj;z92gdA#vS|XNSPn;*s4Z zPJ0@Jia;YjikT^Q5lM=1J%9h&3Bajubw19`!2XmHXVTO><7H+$EE?e|oauDYsD(DK{G}M9^Tym|^VCjEjQ~c)`wC!fiNG?{Ab>jltp>1S zKURTH0B2F%fOBYW)yo9VgT1XTK(i99JJChBREb(n)P{``7ac9G$GnUHSKw-8ea%^4 epBLSLo0ZiqXLTFyxbI!KSE(#Ef&2Il;K46v8KSEI literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysConfigService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysConfigService__Javadoc.json new file mode 100644 index 0000000..cc650f8 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysConfigService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 参数配置 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectConfigById","paramTypes":["java.lang.Long"],"doc":" 查询参数配置信息\n\n @param configId 参数配置ID\n @return 参数配置信息\n"},{"name":"selectConfigByKey","paramTypes":["java.lang.String"],"doc":" 根据键名查询参数配置信息\n\n @param configKey 参数键名\n @return 参数键值\n"},{"name":"selectRegisterEnabled","paramTypes":["java.lang.String"],"doc":" 获取注册开关\n @param tenantId 租户id\n @return true开启,false关闭\n"},{"name":"selectConfigList","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 查询参数配置列表\n\n @param config 参数配置信息\n @return 参数配置集合\n"},{"name":"insertConfig","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 新增参数配置\n\n @param bo 参数配置信息\n @return 结果\n"},{"name":"updateConfig","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 修改参数配置\n\n @param bo 参数配置信息\n @return 结果\n"},{"name":"deleteConfigByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除参数信息\n\n @param configIds 需要删除的参数ID\n"},{"name":"resetConfigCache","paramTypes":[],"doc":" 重置参数缓存数据\n"},{"name":"checkConfigKeyUnique","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 校验参数键名是否唯一\n\n @param config 参数信息\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysDataScopeService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysDataScopeService.class new file mode 100644 index 0000000000000000000000000000000000000000..333a8b9a329d39fd5c904b7608be3531831ee34b GIT binary patch literal 296 zcmZvX!A=4}5Jam{b_F4L_3lA0&Ib?=24X^jfjD0r3J_yK;Du{R#% zz_DI+s;j<#PG10CFwW5-dMJPx`p&(4VV1eY=qr}DWgs~lw75~M8 z58$H^XY43L9Tzoa5yx}ynRD(vzB9jm|M*EnFX%~y3XHa->T_4gp{;BlPQpkGc_`G_ za|GYBCgH9aMOM15P?6Efkv+D#ZwGz;u6HDyh*2#RK3+7k>xBqBZ*+55U1)d#?@2zT z?Z{TMo6yCP=X1Tc1%bCB8c6p&>KTeisE|?71vR53%j*Yr6f42VJ+nmnAGM8VwH?aV z4vJYdt$kENr0os=L)!`XAdaN;xg(WGeT=}&HGMmEBQdutgFZ^oMbvw-=eyco4YCrm z8ErPQ-sPBC($2xb?^*ByE@Wxj-Lo{YZk*IEb|xRBFZNv1hv_;i2n)(;ihee2H{etK1GMR4XznQJD%3~`}o@5MAv8N8%W)xjV$^W-Oh&Y%!lsMJ%d6^ h;M%17CX^~apob>(C_z1*4>hQ1P}qpY7M=y#{sU5H%{Kr5 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysDeptService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysDeptService__Javadoc.json new file mode 100644 index 0000000..fa04983 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysDeptService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 部门管理 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDeptList","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 查询部门管理数据\n\n @param dept 部门信息\n @return 部门信息集合\n"},{"name":"selectDeptTreeList","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 查询部门树结构信息\n\n @param dept 部门信息\n @return 部门树信息集合\n"},{"name":"buildDeptTreeSelect","paramTypes":["java.util.List"],"doc":" 构建前端所需要下拉树结构\n\n @param depts 部门列表\n @return 下拉树结构列表\n"},{"name":"selectDeptListByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询部门树信息\n\n @param roleId 角色ID\n @return 选中部门列表\n"},{"name":"selectDeptById","paramTypes":["java.lang.Long"],"doc":" 根据部门ID查询信息\n\n @param deptId 部门ID\n @return 部门信息\n"},{"name":"selectDeptByIds","paramTypes":["java.util.List"],"doc":" 通过部门ID串查询部门\n\n @param deptIds 部门id串\n @return 部门列表信息\n"},{"name":"selectNormalChildrenDeptById","paramTypes":["java.lang.Long"],"doc":" 根据ID查询所有子部门数(正常状态)\n\n @param deptId 部门ID\n @return 子部门数\n"},{"name":"hasChildByDeptId","paramTypes":["java.lang.Long"],"doc":" 是否存在部门子节点\n\n @param deptId 部门ID\n @return 结果\n"},{"name":"checkDeptExistUser","paramTypes":["java.lang.Long"],"doc":" 查询部门是否存在用户\n\n @param deptId 部门ID\n @return 结果 true 存在 false 不存在\n"},{"name":"checkDeptNameUnique","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 校验部门名称是否唯一\n\n @param dept 部门信息\n @return 结果\n"},{"name":"checkDeptDataScope","paramTypes":["java.lang.Long"],"doc":" 校验部门是否有数据权限\n\n @param deptId 部门id\n"},{"name":"insertDept","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 新增保存部门信息\n\n @param bo 部门信息\n @return 结果\n"},{"name":"updateDept","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 修改保存部门信息\n\n @param bo 部门信息\n @return 结果\n"},{"name":"deleteDeptById","paramTypes":["java.lang.Long"],"doc":" 删除部门管理信息\n\n @param deptId 部门ID\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysDictDataService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysDictDataService.class new file mode 100644 index 0000000000000000000000000000000000000000..3e852dbb58ab506e52bb320fbe316428aaac9cbf GIT binary patch literal 1330 zcmd5+O;6k~5FMw$?m`QcuhLKGZMooUr2q$tkXA|sRp=htlarWWn#5bjSt);mpThxh z?vJWE&U(qFP_?UGdPw5Tc;54yXZ!n)>l*;rhqo;S3?nU z+Vji&NQC-`Y37e&Etny&e94B4CM=8TNpQ(SO<*JE2@XzK%*Pd;$T4x%^&Vh|kWXYZ zkaU9LP`Zt|p-fYm(Xwqp4Rr_Zn3>#y^iGH;B$CD zJo8bASv!esC6y8(As&32nVmCdZvOTA`wswk3D4_b5!jQ;r=F4_Q;f!Gta(Udu13P; zv^PlOL*eSLO&%?&*MRZhT<{Tre$9<_Y9MN$!?=TLqxczGI?GT%aQ-4 z6-%{fBtwrCln692LifvLzD^?XHNlAKas%>_!1_QY%H?lFfX8>{EaE*=?ivA12X1qK zE4Y_epavGy@oUY3RrA1W9WN_WUxjO9^$PC0sj7h|ufqm<%1t-%dkdQLOk1eB0o!P5 zK+wxgF#m%cxK)VIF^X=(okDas6WxRR+4Dg;jEB=O9^t9S7ptDYZsE`bPv9xuEqL|^ D_4^F1 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysDictTypeService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysDictTypeService__Javadoc.json new file mode 100644 index 0000000..75fd2ab --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysDictTypeService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典 业务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDictTypeList","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 根据条件分页查询字典类型\n\n @param dictType 字典类型信息\n @return 字典类型集合信息\n"},{"name":"selectDictTypeAll","paramTypes":[],"doc":" 根据所有字典类型\n\n @return 字典类型集合信息\n"},{"name":"selectDictDataByType","paramTypes":["java.lang.String"],"doc":" 根据字典类型查询字典数据\n\n @param dictType 字典类型\n @return 字典数据集合信息\n"},{"name":"selectDictTypeById","paramTypes":["java.lang.Long"],"doc":" 根据字典类型ID查询信息\n\n @param dictId 字典类型ID\n @return 字典类型\n"},{"name":"selectDictTypeByType","paramTypes":["java.lang.String"],"doc":" 根据字典类型查询信息\n\n @param dictType 字典类型\n @return 字典类型\n"},{"name":"deleteDictTypeByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除字典信息\n\n @param dictIds 需要删除的字典ID\n"},{"name":"resetDictCache","paramTypes":[],"doc":" 重置字典缓存数据\n"},{"name":"insertDictType","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 新增保存字典类型信息\n\n @param bo 字典类型信息\n @return 结果\n"},{"name":"updateDictType","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 修改保存字典类型信息\n\n @param bo 字典类型信息\n @return 结果\n"},{"name":"checkDictTypeUnique","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 校验字典类型称是否唯一\n\n @param dictType 字典类型\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService.class new file mode 100644 index 0000000000000000000000000000000000000000..fbcbbe77a39b27ee73c96084607165716405b677 GIT binary patch literal 1049 zcmd5*$xg#C5FH2FLfN6LU(jAKoC63Ugj6YrqM}|nIf)6b61#HTO8F1Ih65)~d=z4w zRD_})C|o#LUgpg_zggbipI-pr6!vT25I9mgqM=p^(~PEBYIs6Zu16x^wB5~8Penos z`Ji;Sc&))af%QHcF&Z-&(Hpp0Hv=v#(+%0094g~URevRDL;XH?ee5paA( zpivaRj8zo=eAakg-d95-VrnDcF9&}N@r%T4huF#HOBY{c?GT%z(Y!DIm-oG=WaPHm z1Zs9Va==;;b0*6q5SVM)6xF+Gr~`f_V(gxSsZ(`mg;xon3l1kh1&6ExRdAq&w?zjQ z?1rn3%Yh{{FT)DLt+_&A73^59!TQ((pR7lL-aykPY?bInj^2hHgb>)xL+*V59R*23 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService__Javadoc.json new file mode 100644 index 0000000..da1e751 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysLogininforService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 系统访问日志情况信息 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"insertLogininfor","paramTypes":["org.dromara.system.domain.bo.SysLogininforBo"],"doc":" 新增系统登录日志\n\n @param bo 访问日志对象\n"},{"name":"selectLogininforList","paramTypes":["org.dromara.system.domain.bo.SysLogininforBo"],"doc":" 查询系统登录日志集合\n\n @param logininfor 访问日志对象\n @return 登录记录集合\n"},{"name":"deleteLogininforByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除系统登录日志\n\n @param infoIds 需要删除的登录日志ID\n @return 结果\n"},{"name":"cleanLogininfor","paramTypes":[],"doc":" 清空系统登录日志\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysMenuService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysMenuService.class new file mode 100644 index 0000000000000000000000000000000000000000..0d31b578156cecbb06b6716862977d4242b1ee24 GIT binary patch literal 1924 zcmb_dOLG!I5bi-9f*LWz#Q08pL86(9UL@v#rB*DWRMvR#w(L&9Cd&@)gK|&)FAx3z zf0SkS?q+8Twg^;t0A~8@cYo9T`TOfP0K5TSfdYda=?=K*%8~Bs+zUNljJPMBgBpi0Z12)w$LWEZZciBVW&Xu4tXZ^Ad3cmB&e9sq$i_PJ5hZg=9aL0luY#>y0#7 z8iN+SQU*VlNo4B%%w}Uad>Hsr+T4(?h!=y8(Kv<7QYhL32hs2{3!@Vfb6)2RZNWE< zw4(--m-w^mtbE g1fD9bXOUrZR@8zWr4_s1h385{-DL0rzYDPU4~#*Rd`9& zrqW2AGt{$Li3}|pV#ZGANgQRu6k0NT|If-8ER;U)*<97>AF6&*{Zm`AYmRHoupEU9 zgWkAm;#g(T13CZ7$y8 z_m&p)t!-yMhUc&wzJ=|%2brvg jL+{Yj3v?=UcZS|wHtpeMg>sy)@VYYX6DPyLEQiB8f>B+3 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysNoticeService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysNoticeService__Javadoc.json new file mode 100644 index 0000000..ca3f148 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysNoticeService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 公告 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectNoticeById","paramTypes":["java.lang.Long"],"doc":" 查询公告信息\n\n @param noticeId 公告ID\n @return 公告信息\n"},{"name":"selectNoticeList","paramTypes":["org.dromara.system.domain.bo.SysNoticeBo"],"doc":" 查询公告列表\n\n @param notice 公告信息\n @return 公告集合\n"},{"name":"insertNotice","paramTypes":["org.dromara.system.domain.bo.SysNoticeBo"],"doc":" 新增公告\n\n @param bo 公告信息\n @return 结果\n"},{"name":"updateNotice","paramTypes":["org.dromara.system.domain.bo.SysNoticeBo"],"doc":" 修改公告\n\n @param bo 公告信息\n @return 结果\n"},{"name":"deleteNoticeById","paramTypes":["java.lang.Long"],"doc":" 删除公告信息\n\n @param noticeId 公告ID\n @return 结果\n"},{"name":"deleteNoticeByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除公告信息\n\n @param noticeIds 需要删除的公告ID\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysOperLogService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysOperLogService.class new file mode 100644 index 0000000000000000000000000000000000000000..039fc2a80850dd07e41da91f639a41140f8f0af3 GIT binary patch literal 1116 zcmd5*OHRWu5Pc5N^8f$g0PO;NfB*}GkSYZMDq_RRNlZwU#FgV#$}zYO3l6}c5aT4M zRIs38!@`O)o;NdZ=FQvt%PW9W95&%F94Q^~P^(mE!SflzE0+mfZbT$&fEVXve{Oj{#1AQ3oN-_AQG#>jj=2UZ zO;yIz!WSmad7!l9eG1QQj@yCMh1>oe;7<67ybwlovPb1o`B&0Bsqlsfr_xBBGc;Aj zl3~u~D8tje8%LQi11%X|{~M8$G4l1`>c$SgHuhe*XT*9b&S2O zuNc;x97WRpaXdsCnUa|?~8bBb2k{s zpOzVD&|c1<0S8U`n{zO0KXm5lI9QfjN5QfL;N4k_kffgtq_uUKTzGW+=2x+B7U9@O9JBgdRay-R$R?6?--*Dj2 zV}BH4oGt7wq=?=)L`lY;=bf?Nx%&R~8vwk4moY>PINE~e7E56TceV4fhO(<^lg9wDnv4Hzs@(sg`er7ejLz+K5u5lL@Q_L*Els z7~v}`8C?E#@DiIr=p494xi!zEzjf?djZ01p=#v`nE#e}?v8e*t++$xnVko>ImEJX?X#&+|s% F#SabLUV;Ds literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysOssConfigService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysOssConfigService__Javadoc.json new file mode 100644 index 0000000..2042c98 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysOssConfigService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 对象存储配置Service接口\n\n @author Lion Li\n @author 孤舟烟雨\n @date 2021-08-13\n","fields":[],"enumConstants":[],"methods":[{"name":"init","paramTypes":[],"doc":" 初始化OSS配置\n"},{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询单个\n"},{"name":"queryPageList","paramTypes":["org.dromara.system.domain.bo.SysOssConfigBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysOssConfigBo"],"doc":" 根据新增业务对象插入对象存储配置\n\n @param bo 对象存储配置新增业务对象\n @return 结果\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysOssConfigBo"],"doc":" 根据编辑业务对象修改对象存储配置\n\n @param bo 对象存储配置编辑业务对象\n @return 结果\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 校验并删除数据\n\n @param ids 主键集合\n @param isValid 是否校验,true-删除前校验,false-不校验\n @return 结果\n"},{"name":"updateOssConfigStatus","paramTypes":["org.dromara.system.domain.bo.SysOssConfigBo"],"doc":" 启用停用状态\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysOssService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysOssService.class new file mode 100644 index 0000000000000000000000000000000000000000..6f1bce84cc3161d412aea52942308e1f7032128e GIT binary patch literal 1434 zcmd5+%aRf?6um*90Ucj6zTb}pvoTA{VrCZjD5+u!6pN{H7rH}}nRKU3(jXt<@3?T` z2l!EzH%$YAXwB?gq`Px(-*eB&N%G_8x9#^`T zZS|(6V@z*0^`J=L@-Z7TDp?%T&fu8)mcZ7hl#8!!XxAYwXDbOzc~ zjg{Yg6-6qh(R9G9Fw|F?(*!Z81AgZ^G+4@NW}sIA7`$aM2k2aI=d%IpU?>(&?uEwBura+IRAPhBwyQ8|LRs8;{ODm z=Y)l#X9TDOY7)J5Pe?AE(sq&n~n||OhXl*M2eJ%C_aJN9T`Wvw&YKwT#bSQa45uVQX~b4 zYBcj^-evxnWM1eB1 zgJ~l$RMt41av*_+|F|9xv{VX~)t;HZ_cbS%4}Fc4&!MIl+cNR^*O+&`@lrtGh`$9C doO*x~1uE_a0w-LCJ%ABIr++|vf3{sZ{{dH-WhVdt literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysPermissionService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysPermissionService__Javadoc.json new file mode 100644 index 0000000..28377d6 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysPermissionService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户权限处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"getRolePermission","paramTypes":["java.lang.Long"],"doc":" 获取角色数据权限\n\n @param userId 用户id\n @return 角色权限信息\n"},{"name":"getMenuPermission","paramTypes":["java.lang.Long"],"doc":" 获取菜单数据权限\n\n @param userId 用户id\n @return 菜单权限信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysPostService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysPostService.class new file mode 100644 index 0000000000000000000000000000000000000000..ca8b32229dbe777191deed8db10d2e39a6628a9e GIT binary patch literal 1942 zcmd5-TW`}a6h1Cn%LZ$=wT%01+}aIh9(bY!i83J-bx_o845Tvxb59Dpf?#UQcn{?&Re zN-LVu3){v~ujd4BO$q0UaiUl4P-Tq0(uXX``1G?h(R%_#HPZ@ZLsM66)CGN#13y{N zRyMvGsfxx^H1YWS>5LwgoZ^&XK4|_iiJO||gvkQTRmiGw#EsAD3VMS_{J^!o1bB+K zXCL181T@A=VWt>sh6r4#CQ_ltU8+u(@il?iGPc^~qo@-_Gg*{PyeMUKNuG+)!Aeh> zVd-l1580M9&~Vvuk&;x==E@UY3j=}v!N_DWAKdgs;2HdtWnpyfiw7a z095cLScD=JpoF`n0-RMp{Fd=6z&TW(hm}OVNFsHtDx<0bt6H^|daa|X3N;K8n_j^E z23*9w3W6w?K)pbh^S!U2>MC5*z}HjY8>qSow=@v4MbYhP(I(u{R<yCq?%n$NTUg cYgLDa7GY$B--2x|dKifwWkjgoi3&!41Kltz`~Uy| literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysPostService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysPostService__Javadoc.json new file mode 100644 index 0000000..c5d3a4e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysPostService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 岗位信息 服务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectPostList","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 查询岗位信息集合\n\n @param post 岗位信息\n @return 岗位列表\n"},{"name":"selectPostsByUserId","paramTypes":["java.lang.Long"],"doc":" 查询用户所属岗位组\n\n @param userId 用户ID\n @return 岗位ID\n"},{"name":"selectPostAll","paramTypes":[],"doc":" 查询所有岗位\n\n @return 岗位列表\n"},{"name":"selectPostById","paramTypes":["java.lang.Long"],"doc":" 通过岗位ID查询岗位信息\n\n @param postId 岗位ID\n @return 角色对象信息\n"},{"name":"selectPostListByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID获取岗位选择框列表\n\n @param userId 用户ID\n @return 选中岗位ID列表\n"},{"name":"selectPostByIds","paramTypes":["java.util.List"],"doc":" 通过岗位ID串查询岗位\n\n @param postIds 岗位id串\n @return 岗位列表信息\n"},{"name":"checkPostNameUnique","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 校验岗位名称\n\n @param post 岗位信息\n @return 结果\n"},{"name":"checkPostCodeUnique","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 校验岗位编码\n\n @param post 岗位信息\n @return 结果\n"},{"name":"countUserPostById","paramTypes":["java.lang.Long"],"doc":" 通过岗位ID查询岗位使用数量\n\n @param postId 岗位ID\n @return 结果\n"},{"name":"countPostByDeptId","paramTypes":["java.lang.Long"],"doc":" 通过部门ID查询岗位使用数量\n\n @param deptId 部门id\n @return 结果\n"},{"name":"deletePostById","paramTypes":["java.lang.Long"],"doc":" 删除岗位信息\n\n @param postId 岗位ID\n @return 结果\n"},{"name":"deletePostByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除岗位信息\n\n @param postIds 需要删除的岗位ID\n @return 结果\n"},{"name":"insertPost","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 新增保存岗位信息\n\n @param bo 岗位信息\n @return 结果\n"},{"name":"updatePost","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 修改保存岗位信息\n\n @param bo 岗位信息\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService.class new file mode 100644 index 0000000000000000000000000000000000000000..4227163b2f15d3f44b333cf4511b8b354db52eb4 GIT binary patch literal 2745 zcmd5;SyR(c6h5iY0?Hz*3oamN3rbwTg@Q^&XV5BWg$JE+CQYv;nC4;@oc;-akK=eL;V)l`Ss z2ZqknjZ)ot$4yoWo-@>?(9oWCpsA*2Rn^V%9@AZgh8dr^0$3MD^U^`Nv3h zAZUqf$MT7D$rb$$d#+)sqLpB){PW?CM2|?(PNBYyDcqDS!pM0Y}purKx zD^_n%3`Ir^0sqEOjSg6MnpwpySEbW8``ZcU>Q<4J}ys&}* z!7wJ|f%Ai{Fhm~BeryUAOf7&RpSU1Ijqp-Es=avgH7c1GGJC|`6%;Fs*dRj0nOLrg z3NnJjpZ~$2_)QdJy2&(a(=rW^CGOcedtr#S zkGB1GSP;veR!E^!`0+t>zDuEQN>hq5culs2hHK<-*C>r8of^lf2|5R9L2M!ILNd!mxF+cmph7idT_*9H=n7qx#8Z)+X}GS@ zj6@>|m}cXq>vW?Xm8G0C1!3lBzTI?_Zb{REPp`&Jx9LuZLZQJ$cYWl&IC7DeBwrBq vK0S~oB!>(h(j#eF_Dy+OX$`UJn;$2epTv`UN^7!)I2<;k0M=)CO40gXVdV3v literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService__Javadoc.json new file mode 100644 index 0000000..eb487b8 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysRoleService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色业务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectRoleList","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 根据条件分页查询角色数据\n\n @param role 角色信息\n @return 角色数据集合信息\n"},{"name":"selectRolesByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询角色列表\n\n @param userId 用户ID\n @return 角色列表\n"},{"name":"selectRolesAuthByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询角色列表(包含被授权状态)\n\n @param userId 用户ID\n @return 角色列表\n"},{"name":"selectRolePermissionByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询角色权限\n\n @param userId 用户ID\n @return 权限列表\n"},{"name":"selectRoleAll","paramTypes":[],"doc":" 查询所有角色\n\n @return 角色列表\n"},{"name":"selectRoleListByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID获取角色选择框列表\n\n @param userId 用户ID\n @return 选中角色ID列表\n"},{"name":"selectRoleById","paramTypes":["java.lang.Long"],"doc":" 通过角色ID查询角色\n\n @param roleId 角色ID\n @return 角色对象信息\n"},{"name":"selectRoleByIds","paramTypes":["java.util.List"],"doc":" 通过角色ID串查询角色\n\n @param roleIds 角色ID串\n @return 角色列表信息\n"},{"name":"checkRoleNameUnique","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色名称是否唯一\n\n @param role 角色信息\n @return 结果\n"},{"name":"checkRoleKeyUnique","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色权限是否唯一\n\n @param role 角色信息\n @return 结果\n"},{"name":"checkRoleAllowed","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色是否允许操作\n\n @param role 角色信息\n"},{"name":"checkRoleDataScope","paramTypes":["java.lang.Long"],"doc":" 校验角色是否有数据权限\n\n @param roleId 角色id\n"},{"name":"countUserRoleByRoleId","paramTypes":["java.lang.Long"],"doc":" 通过角色ID查询角色使用数量\n\n @param roleId 角色ID\n @return 结果\n"},{"name":"insertRole","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 新增保存角色信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"updateRole","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改保存角色信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"updateRoleStatus","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 修改角色状态\n\n @param roleId 角色ID\n @param status 角色状态\n @return 结果\n"},{"name":"authDataScope","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改数据权限信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"deleteRoleById","paramTypes":["java.lang.Long"],"doc":" 通过角色ID删除角色\n\n @param roleId 角色ID\n @return 结果\n"},{"name":"deleteRoleByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除角色信息\n\n @param roleIds 需要删除的角色ID\n @return 结果\n"},{"name":"deleteAuthUser","paramTypes":["org.dromara.system.domain.SysUserRole"],"doc":" 取消授权用户角色\n\n @param userRole 用户和角色关联信息\n @return 结果\n"},{"name":"deleteAuthUsers","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量取消授权用户角色\n\n @param roleId 角色ID\n @param userIds 需要取消授权的用户数据ID\n @return 结果\n"},{"name":"insertAuthUsers","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量选择授权用户角色\n\n @param roleId 角色ID\n @param userIds 需要删除的用户数据ID\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService.class new file mode 100644 index 0000000000000000000000000000000000000000..c6114162be97a7f9bb0c7682c87ed5154fcdf5a8 GIT binary patch literal 1048 zcmbtT%TB^T6unag6cxb-zBfh_OpNmZD8?>KNKi={aXqvX7*aYqos#s|T=)Tgl<~Gj zNb(HKg#i$?pn)j*C)j-&s)~(RDq%D|h zC6yd35-9fAfKiuu9s1Djaa$8uehIh=&9Lqes8t#%z|u;1o$6WR8x;pNg+~XHj$~T0 ziu`w6ccs%rLw&Bf@(CCMi4&2A@KNxxGJ~-_#%M|ukNpH%xHOtZ38O8M&k`Mv=|FJ; z-GA_1&ag6Zxf*Jh;;bSgX84FnN0}XuXV#E$VpFEG!4Q4_D|${#dEp^7`Y|z<>-nRI zcfpj><;=qy=7VR4X`aw+I^4y-_#||<#a!VeOLF?t6(*<(K2F={>?Y9ND5;b2!O?b2 zXT^s2<{$9$re(=M+5A?xxH#phH*yh~$r2#2fX@sdw@4rZSv=?Plp(ML(JNYpJQ!c4 y73{3yXTTb^3b3BGilbHuTN|*M65$ka+z#xfoO>hAeZ(Ea!iS$eDJqo! literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService__Javadoc.json new file mode 100644 index 0000000..957e734 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysSocialService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系Service接口\n\n @author thiszhc\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.String"],"doc":" 查询社会化关系\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 查询社会化关系列表\n"},{"name":"queryListByUserId","paramTypes":["java.lang.Long"],"doc":" 查询社会化关系列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 新增授权关系\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 更新社会化关系\n"},{"name":"deleteWithValidById","paramTypes":["java.lang.Long"],"doc":" 删除社会化关系信息\n"},{"name":"selectByAuthId","paramTypes":["java.lang.String"],"doc":" 根据 authId 查询\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService.class new file mode 100644 index 0000000000000000000000000000000000000000..8a91eee12c252c13fcf74ec8d6e11b6127510acd GIT binary patch literal 1625 zcmd5+&2G~`5T12uLjr};mhxME+Dm$24{%G#!G%hZ0tBTLiQC#m(I27Y>%ZGqc|}v-8cI{rd3}0A9mx0~`V`RT9!5Q87yxP4iUqn5I0L z2%pp5Fi(%TWKs{9f678Ww2lT`Bd~VDCX7Z*hV+AX!hKDk`7Pr~?&iIKz(Kn|4d^Qw zcJ}&nr~)Jwl1>z@aviG3} zmT&@R|7Y6!m)@q-#+420Vx_H=N2mtdkoESSl|iOOM2!t2-p&~7FY*_H~&7e`sIGuICdIUBD6piMeg&rNVNCakwAX>LvB87SmRAhuDl;F8~(1s{8j8t)a>ipC5_{-*S7=%6ws#;R*o)OSpUinz%ui zVFk|(JS`Kr4rZw~p#@H1YC3QOJvZ@N#m|9T=)MhWc*CCW;CUT3%5X$5;nuZ@uDh@` m1xFW}?#-I+!-HznLwHm*J%;URR!@-T=^v_R82h})Z|65Bn(>DK literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService__Javadoc.json new file mode 100644 index 0000000..232146e --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantPackageService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐Service接口\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询租户套餐\n"},{"name":"queryPageList","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询租户套餐列表\n"},{"name":"selectList","paramTypes":[],"doc":" 查询租户套餐已启用列表\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 查询租户套餐列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 新增租户套餐\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 修改租户套餐\n"},{"name":"checkPackageNameUnique","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 校验套餐名称是否唯一\n"},{"name":"updatePackageStatus","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 修改套餐状态\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 校验并批量删除租户套餐信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService.class new file mode 100644 index 0000000000000000000000000000000000000000..1fa21847c323083ccf218d00825e6db11b369af2 GIT binary patch literal 1834 zcmd5++invv5FKwXX#>4qxZiIHwD^&Sl%l2uDN-mwDMjMV*)@sVT|4YLh5ZY@2O&Oy zk3x*?Z8uF*M8pdZyV@O(&zU*)nV-MD{Q!XHuwDRBEiVn&lR(LACFkB@}U zX|0(idt5T9n=Vp-aRT!P?1<5j$u@n{I^e!0F#V~=nqqN1eNT{!3PP+(84fb23(tsT2ZrEe3knb?fYVxBI z#%n1Q+F)52{BDZ2WV#n~0^k3$dN)pql3lCeN4|-@x%=a!$NO{sbs3Pp?5 z!~H{tu@#2uGsmmGGR!vn1eOCHqT${P-PvcM2#lMN^Vnrp<82j&Xn3JyrO)KYEo7%L z(AJnRFa?oVR055Re*kc!5717H&A+EuwS8`@sLN!!i*w_h6lmxX1^Yl?$pUTpzUoO` zW!Q<2C_@#)>^YnL@=I65d{0D}xsasNcX~INe~4Zs@N9_QgS`${4$W>c%z&EBk#~d{ zxnrd=9$K-fda=)6i4d7q&&=zmW)e>lz;qn>0JGx+CSVf(3-~udU<%AcpN3){x?n>W zVFo;#HSNJHCePtBkBf|?l22Vw$3s<#%}^o@a@6cZ?g3j AU;qFB literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService__Javadoc.json new file mode 100644 index 0000000..c8031f1 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysTenantService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户Service接口\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询租户\n"},{"name":"queryByTenantId","paramTypes":["java.lang.String"],"doc":" 基于租户ID查询租户\n"},{"name":"queryPageList","paramTypes":["org.dromara.system.domain.bo.SysTenantBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询租户列表\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 查询租户列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 新增租户\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 修改租户\n"},{"name":"updateTenantStatus","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 修改租户状态\n"},{"name":"checkTenantAllowed","paramTypes":["java.lang.String"],"doc":" 校验租户是否允许操作\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 校验并批量删除租户信息\n"},{"name":"checkCompanyNameUnique","paramTypes":["org.dromara.system.domain.bo.SysTenantBo"],"doc":" 校验企业名称是否唯一\n"},{"name":"checkAccountBalance","paramTypes":["java.lang.String"],"doc":" 校验账号余额\n"},{"name":"checkExpireTime","paramTypes":["java.lang.String"],"doc":" 校验有效期\n"},{"name":"syncTenantPackage","paramTypes":["java.lang.String","java.lang.Long"],"doc":" 同步租户套餐\n"},{"name":"syncTenantDict","paramTypes":[],"doc":" 同步租户字典\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysUserService.class b/ruoyi-system/target/classes/org/dromara/system/service/ISysUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..f2f1b6fc3b0ced6f75b7aabf68e48fd122f7517a GIT binary patch literal 2663 zcmd5;$#T;`5N(-YhX6?+Vc+*GfY>*OKumygl>vi+1Ds@Oa1>;X8I2PB6MPTFfe+xL zDBfrkYfA-(69<>2R`;9N@AZuI>-UeJMD&oJRH$Uo92Xta5xi>&%MAK~WL-00V$HRg zS#R}&cerWk`wER1G`VW6S*BiE(X={DWjEXa!EZB-O^_X|LwcKdBhx`AnP!OR|jO@;nCWTIc49j@T5)%Mu3C9S&uiC01V1(Pe> zX`;_AlS~8#jf9|U&@Qz=gpKQ#+wmT={BAT7nmMA-( ze(iA~wJ8sV?r63V`5a2uGgU1xSO2+qIO>{c+`yD>V9E2iZAs>6{s-c=d@CDIwOi|} zreDHigBE6V7tyq~q;UOCZhE$m(V$T^9vbOTqGzq&T;V?R!){v*&+cCOZake=cMO8! z$%bk0?GY#|0t#g!3yaac5#uHX71t>^SkZVWFFUL!6|$elS;*roR`ZekYz${_)>viI z8}6~^f`>hW&Tk@9qFZd8LGe_m;wBGdTs&p3F#EF#Dzo1C?w1he&ksMYA87iN8*5zI)Pd??}5>n>!VVt@@>(p8?;BT4t60Ey7=MH zy`{X{*Z}BuR5IW4qX8HTdk!|3#vM->E`@SsGhaTY5cNEx-HL#fbq9krnZUIq&QXLe z6ckE9Y>+~ancizgaM1hZ?40)(Vi6q z>s;V++`;=xOHk{pO|glm;5U&?Lub=7MKzF^I*rt^RqHQfvl(=@z&F2yu-UUn!|B}n{HoevWrGabfe!+rqaz0Gq%xJLg1cQM8dZPzjp0|K-FUo*_QsEQ zLc+nLaXgyXx^i;s$NOkMc&K#&JVokDV>%r=5QPrXp(N{Y6gomj6T-((e|*5|1VB#G zseHxhV(1K=O|sAy3eOco=Zm2WbTKK^gf10BGc=oIY4|ysk3+G}m!nm$6f>`qnPg%K zx)x<#ryJSu%_w}U2ymP3WHawZnfLMl_oMIws>azcLU*))kHvvEkQnML(xYS!62%`Q KZwVAjRQm%2yVZ*T literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/ISysUserService__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/ISysUserService__Javadoc.json new file mode 100644 index 0000000..fb9ef4d --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/ISysUserService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户 业务层\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectUserExportList","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 根据条件分页查询用户列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectAllocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 根据条件分页查询已分配用户角色列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectUnallocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 根据条件分页查询未分配用户角色列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectUserByUserName","paramTypes":["java.lang.String"],"doc":" 通过用户名查询用户\n\n @param userName 用户名\n @return 用户对象信息\n"},{"name":"selectUserByPhonenumber","paramTypes":["java.lang.String"],"doc":" 通过手机号查询用户\n\n @param phonenumber 手机号\n @return 用户对象信息\n"},{"name":"selectUserById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户\n\n @param userId 用户ID\n @return 用户对象信息\n"},{"name":"selectUserByIds","paramTypes":["java.util.List","java.lang.Long"],"doc":" 通过用户ID串查询用户\n\n @param userIds 用户ID串\n @param deptId 部门id\n @return 用户列表信息\n"},{"name":"selectUserRoleGroup","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询用户所属角色组\n\n @param userId 用户ID\n @return 结果\n"},{"name":"selectUserPostGroup","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询用户所属岗位组\n\n @param userId 用户ID\n @return 结果\n"},{"name":"checkUserNameUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验用户名称是否唯一\n\n @param user 用户信息\n @return 结果\n"},{"name":"checkPhoneUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验手机号码是否唯一\n\n @param user 用户信息\n @return 结果\n"},{"name":"checkEmailUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验email是否唯一\n\n @param user 用户信息\n @return 结果\n"},{"name":"checkUserAllowed","paramTypes":["java.lang.Long"],"doc":" 校验用户是否允许操作\n\n @param userId 用户ID\n"},{"name":"checkUserDataScope","paramTypes":["java.lang.Long"],"doc":" 校验用户是否有数据权限\n\n @param userId 用户id\n"},{"name":"insertUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 新增用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"registerUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo","java.lang.String"],"doc":" 注册用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"updateUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 修改用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"insertUserAuth","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 用户授权角色\n\n @param userId 用户ID\n @param roleIds 角色组\n"},{"name":"updateUserStatus","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 修改用户状态\n\n @param userId 用户ID\n @param status 帐号状态\n @return 结果\n"},{"name":"updateUserProfile","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 修改用户基本信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"updateUserAvatar","paramTypes":["java.lang.Long","java.lang.Long"],"doc":" 修改用户头像\n\n @param userId 用户ID\n @param avatar 头像地址\n @return 结果\n"},{"name":"resetUserPwd","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 重置用户密码\n\n @param userId 用户ID\n @param password 密码\n @return 结果\n"},{"name":"deleteUserById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID删除用户\n\n @param userId 用户ID\n @return 结果\n"},{"name":"deleteUserByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除用户信息\n\n @param userIds 需要删除的用户ID\n @return 结果\n"},{"name":"selectUserListByDept","paramTypes":["java.lang.Long"],"doc":" 通过部门id查询当前部门所有用户\n\n @param deptId 部门id\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8f6c88983e6605eb1e8dfa2975c8cb966b801fbe GIT binary patch literal 11042 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl__Javadoc.json new file mode 100644 index 0000000..e3a7310 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysClientServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 客户端管理Service业务层处理\n\n @author Michelle.Chung\n @date 2023-06-18\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询客户端管理\n"},{"name":"queryByClientId","paramTypes":["java.lang.String"],"doc":" 查询客户端管理\n"},{"name":"queryPageList","paramTypes":["org.dromara.system.domain.bo.SysClientBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询客户端管理列表\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 查询客户端管理列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 新增客户端管理\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysClientBo"],"doc":" 修改客户端管理\n"},{"name":"updateClientStatus","paramTypes":["java.lang.String","java.lang.String"],"doc":" 修改状态\n"},{"name":"validEntityBeforeSave","paramTypes":["org.dromara.system.domain.SysClient"],"doc":" 保存前的数据校验\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 批量删除客户端管理\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..aaa90cf8d3cc64262b4bcb3b0a2267271bc47d21 GIT binary patch literal 12243 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl__Javadoc.json new file mode 100644 index 0000000..20a5467 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysConfigServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 参数配置 服务层实现\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectConfigById","paramTypes":["java.lang.Long"],"doc":" 查询参数配置信息\n\n @param configId 参数配置ID\n @return 参数配置信息\n"},{"name":"selectConfigByKey","paramTypes":["java.lang.String"],"doc":" 根据键名查询参数配置信息\n\n @param configKey 参数key\n @return 参数键值\n"},{"name":"selectRegisterEnabled","paramTypes":["java.lang.String"],"doc":" 获取注册开关\n @param tenantId 租户id\n @return true开启,false关闭\n"},{"name":"selectConfigList","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 查询参数配置列表\n\n @param config 参数配置信息\n @return 参数配置集合\n"},{"name":"insertConfig","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 新增参数配置\n\n @param bo 参数配置信息\n @return 结果\n"},{"name":"updateConfig","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 修改参数配置\n\n @param bo 参数配置信息\n @return 结果\n"},{"name":"deleteConfigByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除参数信息\n\n @param configIds 需要删除的参数ID\n"},{"name":"resetConfigCache","paramTypes":[],"doc":" 重置参数缓存数据\n"},{"name":"checkConfigKeyUnique","paramTypes":["org.dromara.system.domain.bo.SysConfigBo"],"doc":" 校验参数键名是否唯一\n\n @param config 参数配置信息\n @return 结果\n"},{"name":"getConfigValue","paramTypes":["java.lang.String"],"doc":" 根据参数 key 获取参数值\n\n @param configKey 参数 key\n @return 参数值\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b7e561b9f4b4c738217b1a735422a97b0ec794d4 GIT binary patch literal 5475 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl__Javadoc.json new file mode 100644 index 0000000..3642df8 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDataScopeServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 数据权限 实现\n

\n 注意: 此Service内不允许调用标注`数据权限`注解的方法\n 例如: deptMapper.selectList 此 selectList 方法标注了`数据权限`注解 会出现循环解析的问题\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"getRoleCustom","paramTypes":["java.lang.Long"],"doc":" 获取角色自定义权限\n\n @param roleId 角色Id\n @return 部门Id组\n"},{"name":"getDeptAndChild","paramTypes":["java.lang.Long"],"doc":" 获取部门及以下权限\n\n @param deptId 部门Id\n @return 部门Id组\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..145b37b291b79d21480ee06aaf6afc40db983314 GIT binary patch literal 20719 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl__Javadoc.json new file mode 100644 index 0000000..10fd830 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDeptServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 部门管理 服务实现\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDeptList","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 查询部门管理数据\n\n @param dept 部门信息\n @return 部门信息集合\n"},{"name":"selectDeptTreeList","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 查询部门树结构信息\n\n @param bo 部门信息\n @return 部门树信息集合\n"},{"name":"buildDeptTreeSelect","paramTypes":["java.util.List"],"doc":" 构建前端所需要下拉树结构\n\n @param depts 部门列表\n @return 下拉树结构列表\n"},{"name":"selectDeptListByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询部门树信息\n\n @param roleId 角色ID\n @return 选中部门列表\n"},{"name":"selectDeptById","paramTypes":["java.lang.Long"],"doc":" 根据部门ID查询信息\n\n @param deptId 部门ID\n @return 部门信息\n"},{"name":"selectDeptNameByIds","paramTypes":["java.lang.String"],"doc":" 通过部门ID查询部门名称\n\n @param deptIds 部门ID串逗号分隔\n @return 部门名称串逗号分隔\n"},{"name":"selectDeptLeaderById","paramTypes":["java.lang.Long"],"doc":" 根据部门ID查询部门负责人\n\n @param deptId 部门ID,用于指定需要查询的部门\n @return 返回该部门的负责人ID\n"},{"name":"selectDeptsByList","paramTypes":[],"doc":" 查询部门\n\n @return 部门列表\n"},{"name":"selectNormalChildrenDeptById","paramTypes":["java.lang.Long"],"doc":" 根据ID查询所有子部门数(正常状态)\n\n @param deptId 部门ID\n @return 子部门数\n"},{"name":"hasChildByDeptId","paramTypes":["java.lang.Long"],"doc":" 是否存在子节点\n\n @param deptId 部门ID\n @return 结果\n"},{"name":"checkDeptExistUser","paramTypes":["java.lang.Long"],"doc":" 查询部门是否存在用户\n\n @param deptId 部门ID\n @return 结果 true 存在 false 不存在\n"},{"name":"checkDeptNameUnique","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 校验部门名称是否唯一\n\n @param dept 部门信息\n @return 结果\n"},{"name":"checkDeptDataScope","paramTypes":["java.lang.Long"],"doc":" 校验部门是否有数据权限\n\n @param deptId 部门id\n"},{"name":"insertDept","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 新增保存部门信息\n\n @param bo 部门信息\n @return 结果\n"},{"name":"updateDept","paramTypes":["org.dromara.system.domain.bo.SysDeptBo"],"doc":" 修改保存部门信息\n\n @param bo 部门信息\n @return 结果\n"},{"name":"updateParentDeptStatusNormal","paramTypes":["org.dromara.system.domain.SysDept"],"doc":" 修改该部门的父级部门状态\n\n @param dept 当前部门\n"},{"name":"updateDeptChildren","paramTypes":["java.lang.Long","java.lang.String","java.lang.String"],"doc":" 修改子元素关系\n\n @param deptId 被修改的部门ID\n @param newAncestors 新的父ID集合\n @param oldAncestors 旧的父ID集合\n"},{"name":"deleteDeptById","paramTypes":["java.lang.Long"],"doc":" 删除部门管理信息\n\n @param deptId 部门ID\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ec36e6ef2f91ae5a0c2fde0cad4afe46c07fb1ba GIT binary patch literal 9445 zcmd5>349w@ng2go_Q=Y_c9f&INz>()*}ojSPX*pW1`r<_=lkB9$Dcm-7=Ue}CyEeiG=z23qE6rYcW9G)K zq#3s|W9j(7gmbBtbT2hrW5Db0Ww*eBMBYlLo}D*y6Z><<*qE6UIM~uxfn18jt!zAD z2Wf4$yIT8_b|#)M?2MJN^YP3?!f-8TES-1aNjqoqE1R-h%g#FSgOW|W&&VWFMv!G! zJ*A20s7F*FnlK!*--oic5|WG>48riHcSWINzJ>-Jjc5{B7nFh^Gj_HB&x1B*44d)2 z{8C^9YLzksx?5%u%Dllfvkv8nQ^sM7Vv&rMrO@n>#Jc7ohJ_jy=~#><0_{NFx(cf`oU7wJtf8}3RjG<1*S6E6mK*o2<_OG7m*PlZ=WH%}%5fM) zE7~-)>*&B*fwrJ=e9x_t28d_abY+Seuya(=V&YK(r;Y4zyf^Eb!)C54#^e>(u^#6$ z*cip>34yLTkr!ll@?&Ep9v|41&n9KKQHL9GfrblpT!c*mJ+tdDV3lf_NFZb$6fjz@ z383GTxQ-FoHM3`yEHPc>JqgFn8A-PgbyCw?babMN-sNkq&q$a|$&1QVH{j;1>@X$W zhHecP>$n6x0#j^$Kwpv-s?G~tMX&uxsAh2n6dsg)eN%d+SgV;~1UOp9gY0I^9 zB*&`s=FE|&;91I7hoqxkBe1!Gb^>;(uCEws5ZCZLf%UWNCV6fAO)>5G+Ob$_m^sTx zTQ8LPpH?Vklp@#bW=&J$W!1`{ExD$3WF*(9rv%AUcH26}z}SzbxB7=~28;~H5vzQah4n7fUP=|qqhh)^jnNHI%F9b6X04VcjILLD!{KUNOvoSCv5 zwQD#YEkCGhP1bhIvulE$Bcok}R4OvBedLwf4%Xuhj7>{1bDbXQM*t zx_v@s9)Z=tg}&6jcSr%e4OYWHSFSHqqBL(vnq#VF^XuWAg^mbbOPBol?XUUiqxb#n zU5B4~`2HwfjoW0FdcEA(0^$}}4@%6p>$pRT7tN2cAX5$`bLU+;-iW(PxpRk|q6D$B zB;RK<#n+zn|Dw1LZ`SY@9dE_k1R6?SFXstp<3>7f?l~Z^u;q$iP$)7{yaVsl@Gc$q z%TzPRPT`rbVCJmt?#`#v680e-?+I>BgOXyad0fDOQ*!ii9iNv7my&y-WHHjR7RntklBSB4 z2nM96hvob)>-dVCzoPQ|68H$#%lTi|@eMiu+}Y+2Si?M<)R0_8^zccKP zSlnGUm+_jWlvz&o%+0 zdYQ#k;lV^%Vl4BTSDw?}rHx2cKjrzkJR)aAijTm{%}vuuvApt*0)_oW@?;<_;z4pc z*Fk107JW>&YfdpGFd(ILk~e8Cm_bq#jV%4VO1S`l={09Fy^3Ce=Bx5q*UFfKmSb_} z=*hBnQ+JT07FQUYF?n-vKxTmJ?c8WQDUTv?qd3t!PwdUROiocXsLm;5GHUW(Mqib% z*GY(;ff~H3wghD%sU=4X&sS$Hx))iWp7XLm4ND%f?xQ#^`L3@>q1uIMS1VP&)Yk=z zjSAX`^`-4h!XAxZW@gPCEAtcuUbwncikM!RxO&>@rb;zg>2yQ*UV$U9D&QN{C{W)6 zc0QLhcUfubY-wPt@ar2{nXQvfCg7=Kx-ogfpEGTjyO}I^Wtl{wnzq}v>+qgw%uD}H zW1VP=igwYViM6^|C*oz5n-9;Eo+}JirLLW$4H}HJTh?()Fwp#U9*@h7Y$|O!tNUzw zG(Q%+B%7HF$`(qu>I%Aj;Y=`7fjf+Jdcbnct|s(1)`|`C(9qT-E|8aprxT|Y@g>EvKNiRSn`3|CSbd0OKmx#@`3d2FNb)cEUrvF=NpTRsgfd=?Z?ykw6!RHj08Cp5~a+1Fb9g7a}ETjXRV^fNp7rN3e0|2zG}b#Z^Pp z14SN~#J*$j#C*K|eO| zxf8o7_Z0!DyNgnHiy9GDZr3ep+47869}+Z>kWMZ{9p&=?Z|AS{js^+1{U}U{!72f$ zQ-p>TBk85m^9%mnAR?lk1!sEQ;m z!H7cGM%P%)mw~#NPeUxic?zMFxu=M_M>L2=qL${JkI>VIXrf7oKVefrkOqzjv49~K zRz|&>+{5fUzde?i!i#C6LYTcGgzmH6!r1fj#rRR&%D{UBuO5oM<_KQ*F)s3eFHxz% zVdio9wldG~A7}Eop$MA9ivZ8}y*A4CRZ@@;S1c1Tv5>SRXsY}K)@Vo+G|%~k+;BoH zVtXOsFGff#xfa6VedrmEcow^wPeGzLoSsBCQKFlP?-ojQD|F1-6ilx4@Jx&Wr z8x1kT+_?z%OyNyac>8hOr%dHXVj=XHVT#em`R^_dz};)7@ZNjS)UkFFADqNP_j3Ds zF#I5id$#mq@(wKEu5k|Tq66NE9lU(J8h2wq?hR;QsA$t6u}o#61-M+fWQZ%4h_h&2 z&!*gsPGG-=`)JmJ8!jV9fxTim=g8dBO;Ke4M%#|y!)@&!fhGgP%M)Iho~?L$VHz#+ zj;bB6=q&YoXMZ*qa*0?0G)2WqaSj=gMa|7*#Vk?N(Kd<6zR)%*=aC0E_xb#UKl#0H zweYv~QzK8^&)=N~k31=Ny-f$FZoGxR1MRVoPvT$hLA++$A+)u}KB1mghWWItJ@!fU zw6K;>4ehZ{si)eyZOh)rrJ*T)$v?S;Ea&G#lzbOIPY}naBX7e_{(dg@g-Lwz9&BOz zOR=x2_FA^T7W<}ZuVnjMvG1z(Vz!@%{Xn(rRpxz&J){)6lD|Hs(8X-~ltLTX_9=zd zu+JixY(NxYS9ACtJ9Z6A}kmF*{DijsJd z+9!QV&k$2lPuz?Om{yTT0n-_57ck9ZyP)xtY!@{C2eu0ue^PC0e}S%|F{=ZlTvLUED*w5jZAbJ^1t|EY`XqolP}bc;*S{8vO968iuE literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl__Javadoc.json new file mode 100644 index 0000000..4618d7b --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictDataServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典 业务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDictDataList","paramTypes":["org.dromara.system.domain.bo.SysDictDataBo"],"doc":" 根据条件分页查询字典数据\n\n @param dictData 字典数据信息\n @return 字典数据集合信息\n"},{"name":"selectDictLabel","paramTypes":["java.lang.String","java.lang.String"],"doc":" 根据字典类型和字典键值查询字典数据信息\n\n @param dictType 字典类型\n @param dictValue 字典键值\n @return 字典标签\n"},{"name":"selectDictDataById","paramTypes":["java.lang.Long"],"doc":" 根据字典数据ID查询信息\n\n @param dictCode 字典数据ID\n @return 字典数据\n"},{"name":"deleteDictDataByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除字典数据信息\n\n @param dictCodes 需要删除的字典数据ID\n"},{"name":"insertDictData","paramTypes":["org.dromara.system.domain.bo.SysDictDataBo"],"doc":" 新增保存字典数据信息\n\n @param bo 字典数据信息\n @return 结果\n"},{"name":"updateDictData","paramTypes":["org.dromara.system.domain.bo.SysDictDataBo"],"doc":" 修改保存字典数据信息\n\n @param bo 字典数据信息\n @return 结果\n"},{"name":"checkDictDataUnique","paramTypes":["org.dromara.system.domain.bo.SysDictDataBo"],"doc":" 校验字典键值是否唯一\n\n @param dict 字典数据\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3bfe78f77804ce4934b7e514edba17e8fe92b1c0 GIT binary patch literal 14441 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl__Javadoc.json new file mode 100644 index 0000000..65a26e5 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysDictTypeServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 字典 业务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectDictTypeList","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 根据条件分页查询字典类型\n\n @param dictType 字典类型信息\n @return 字典类型集合信息\n"},{"name":"selectDictTypeAll","paramTypes":[],"doc":" 根据所有字典类型\n\n @return 字典类型集合信息\n"},{"name":"selectDictDataByType","paramTypes":["java.lang.String"],"doc":" 根据字典类型查询字典数据\n\n @param dictType 字典类型\n @return 字典数据集合信息\n"},{"name":"selectDictTypeById","paramTypes":["java.lang.Long"],"doc":" 根据字典类型ID查询信息\n\n @param dictId 字典类型ID\n @return 字典类型\n"},{"name":"selectDictTypeByType","paramTypes":["java.lang.String"],"doc":" 根据字典类型查询信息\n\n @param dictType 字典类型\n @return 字典类型\n"},{"name":"deleteDictTypeByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除字典类型信息\n\n @param dictIds 需要删除的字典ID\n"},{"name":"resetDictCache","paramTypes":[],"doc":" 重置字典缓存数据\n"},{"name":"insertDictType","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 新增保存字典类型信息\n\n @param bo 字典类型信息\n @return 结果\n"},{"name":"updateDictType","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 修改保存字典类型信息\n\n @param bo 字典类型信息\n @return 结果\n"},{"name":"checkDictTypeUnique","paramTypes":["org.dromara.system.domain.bo.SysDictTypeBo"],"doc":" 校验字典类型称是否唯一\n\n @param dictType 字典类型\n @return 结果\n"},{"name":"getDictLabel","paramTypes":["java.lang.String","java.lang.String","java.lang.String"],"doc":" 根据字典类型和字典值获取字典标签\n\n @param dictType 字典类型\n @param dictValue 字典值\n @param separator 分隔符\n @return 字典标签\n"},{"name":"getDictValue","paramTypes":["java.lang.String","java.lang.String","java.lang.String"],"doc":" 根据字典类型和字典标签获取字典值\n\n @param dictType 字典类型\n @param dictLabel 字典标签\n @param separator 分隔符\n @return 字典值\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysLogininforServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysLogininforServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7a1d8583ce3be56233fbd14f47d071bdbca5488b GIT binary patch literal 11909 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 ZpXn9Ps2A|`OJIyY8&NN*SJba5_`muW1!DjJ literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysMenuServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysMenuServiceImpl__Javadoc.json new file mode 100644 index 0000000..c203852 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysMenuServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 菜单 业务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectMenuList","paramTypes":["java.lang.Long"],"doc":" 根据用户查询系统菜单列表\n\n @param userId 用户ID\n @return 菜单列表\n"},{"name":"selectMenuList","paramTypes":["org.dromara.system.domain.bo.SysMenuBo","java.lang.Long"],"doc":" 查询系统菜单列表\n\n @param menu 菜单信息\n @return 菜单列表\n"},{"name":"selectMenuPermsByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询权限\n\n @param userId 用户ID\n @return 权限列表\n"},{"name":"selectMenuPermsByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询权限\n\n @param roleId 角色ID\n @return 权限列表\n"},{"name":"selectMenuTreeByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询菜单\n\n @param userId 用户名称\n @return 菜单列表\n"},{"name":"selectMenuListByRoleId","paramTypes":["java.lang.Long"],"doc":" 根据角色ID查询菜单树信息\n\n @param roleId 角色ID\n @return 选中菜单列表\n"},{"name":"selectMenuListByPackageId","paramTypes":["java.lang.Long"],"doc":" 根据租户套餐ID查询菜单树信息\n\n @param packageId 租户套餐ID\n @return 选中菜单列表\n"},{"name":"buildMenus","paramTypes":["java.util.List"],"doc":" 构建前端路由所需要的菜单\n 路由name命名规则 path首字母转大写 + id\n\n @param menus 菜单列表\n @return 路由列表\n"},{"name":"buildMenuTreeSelect","paramTypes":["java.util.List"],"doc":" 构建前端所需要下拉树结构\n\n @param menus 菜单列表\n @return 下拉树结构列表\n"},{"name":"selectMenuById","paramTypes":["java.lang.Long"],"doc":" 根据菜单ID查询信息\n\n @param menuId 菜单ID\n @return 菜单信息\n"},{"name":"hasChildByMenuId","paramTypes":["java.lang.Long"],"doc":" 是否存在菜单子节点\n\n @param menuId 菜单ID\n @return 结果\n"},{"name":"checkMenuExistRole","paramTypes":["java.lang.Long"],"doc":" 查询菜单使用数量\n\n @param menuId 菜单ID\n @return 结果\n"},{"name":"insertMenu","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 新增保存菜单信息\n\n @param bo 菜单信息\n @return 结果\n"},{"name":"updateMenu","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 修改保存菜单信息\n\n @param bo 菜单信息\n @return 结果\n"},{"name":"deleteMenuById","paramTypes":["java.lang.Long"],"doc":" 删除菜单管理信息\n\n @param menuId 菜单ID\n @return 结果\n"},{"name":"checkMenuNameUnique","paramTypes":["org.dromara.system.domain.bo.SysMenuBo"],"doc":" 校验菜单名称是否唯一\n\n @param menu 菜单信息\n @return 结果\n"},{"name":"getChildPerms","paramTypes":["java.util.List","int"],"doc":" 根据父节点的ID获取所有子节点\n\n @param list 分类表\n @param parentId 传入的父节点ID\n @return String\n"},{"name":"recursionFn","paramTypes":["java.util.List","org.dromara.system.domain.SysMenu"],"doc":" 递归列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysNoticeServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysNoticeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fa1dae058dbfd14cfdc9cbd0e171132735b95f7e GIT binary patch literal 8695 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 F{|7e0nVSFr literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOperLogServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOperLogServiceImpl__Javadoc.json new file mode 100644 index 0000000..c1d4d71 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOperLogServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 操作日志 服务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"recordOper","paramTypes":["org.dromara.common.log.event.OperLogEvent"],"doc":" 操作日志记录\n\n @param operLogEvent 操作日志事件\n"},{"name":"insertOperlog","paramTypes":["org.dromara.system.domain.bo.SysOperLogBo"],"doc":" 新增操作日志\n\n @param bo 操作日志对象\n"},{"name":"selectOperLogList","paramTypes":["org.dromara.system.domain.bo.SysOperLogBo"],"doc":" 查询系统操作日志集合\n\n @param operLog 操作日志对象\n @return 操作日志集合\n"},{"name":"deleteOperLogByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除系统操作日志\n\n @param operIds 需要删除的操作日志ID\n @return 结果\n"},{"name":"selectOperLogById","paramTypes":["java.lang.Long"],"doc":" 查询操作日志详细\n\n @param operId 操作ID\n @return 操作日志对象\n"},{"name":"cleanOperLog","paramTypes":[],"doc":" 清空操作日志\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c401e98ea6615e8f36fc9e0080ced0fa4a7f1cf1 GIT binary patch literal 13307 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl__Javadoc.json new file mode 100644 index 0000000..0fd8b80 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssConfigServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 对象存储配置Service业务层处理\n\n @author Lion Li\n @author 孤舟烟雨\n @date 2021-08-13\n","fields":[],"enumConstants":[],"methods":[{"name":"init","paramTypes":[],"doc":" 项目启动时,初始化参数到缓存,加载配置类\n"},{"name":"validEntityBeforeSave","paramTypes":["org.dromara.system.domain.SysOssConfig"],"doc":" 保存前的数据校验\n"},{"name":"checkConfigKeyUnique","paramTypes":["org.dromara.system.domain.SysOssConfig"],"doc":" 判断configKey是否唯一\n"},{"name":"updateOssConfigStatus","paramTypes":["org.dromara.system.domain.bo.SysOssConfigBo"],"doc":" 启用禁用状态\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysOssServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..180f9ec328e798cccb29c66fb9faa9d251705829 GIT binary patch literal 16168 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 U@8SgCb4;Mp`K{tn9DNM@4`7)LOaK4? literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPermissionServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPermissionServiceImpl__Javadoc.json new file mode 100644 index 0000000..10187cc --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPermissionServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户权限处理\n\n @author ruoyi\n","fields":[],"enumConstants":[],"methods":[{"name":"getRolePermission","paramTypes":["java.lang.Long"],"doc":" 获取角色数据权限\n\n @param userId 用户id\n @return 角色权限信息\n"},{"name":"getMenuPermission","paramTypes":["java.lang.Long"],"doc":" 获取菜单数据权限\n\n @param userId 用户id\n @return 菜单权限信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0d023b3625c829540ac7fba87cb4606598a53cdb GIT binary patch literal 13719 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 PKvfVF4)QRn?AqT0{*VOv literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl__Javadoc.json new file mode 100644 index 0000000..39f6714 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysPostServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 岗位信息 服务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectPostList","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 查询岗位信息集合\n\n @param post 岗位信息\n @return 岗位信息集合\n"},{"name":"selectPostsByUserId","paramTypes":["java.lang.Long"],"doc":" 查询用户所属岗位组\n\n @param userId 用户ID\n @return 岗位ID\n"},{"name":"buildQueryWrapper","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 根据查询条件构建查询包装器\n\n @param bo 查询条件对象\n @return 构建好的查询包装器\n"},{"name":"selectPostAll","paramTypes":[],"doc":" 查询所有岗位\n\n @return 岗位列表\n"},{"name":"selectPostById","paramTypes":["java.lang.Long"],"doc":" 通过岗位ID查询岗位信息\n\n @param postId 岗位ID\n @return 角色对象信息\n"},{"name":"selectPostListByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID获取岗位选择框列表\n\n @param userId 用户ID\n @return 选中岗位ID列表\n"},{"name":"selectPostByIds","paramTypes":["java.util.List"],"doc":" 通过岗位ID串查询岗位\n\n @param postIds 岗位id串\n @return 岗位列表信息\n"},{"name":"checkPostNameUnique","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 校验岗位名称是否唯一\n\n @param post 岗位信息\n @return 结果\n"},{"name":"checkPostCodeUnique","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 校验岗位编码是否唯一\n\n @param post 岗位信息\n @return 结果\n"},{"name":"countUserPostById","paramTypes":["java.lang.Long"],"doc":" 通过岗位ID查询岗位使用数量\n\n @param postId 岗位ID\n @return 结果\n"},{"name":"countPostByDeptId","paramTypes":["java.lang.Long"],"doc":" 通过部门ID查询岗位使用数量\n\n @param deptId 部门id\n @return 结果\n"},{"name":"deletePostById","paramTypes":["java.lang.Long"],"doc":" 删除岗位信息\n\n @param postId 岗位ID\n @return 结果\n"},{"name":"deletePostByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除岗位信息\n\n @param postIds 需要删除的岗位ID\n @return 结果\n"},{"name":"insertPost","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 新增保存岗位信息\n\n @param bo 岗位信息\n @return 结果\n"},{"name":"updatePost","paramTypes":["org.dromara.system.domain.bo.SysPostBo"],"doc":" 修改保存岗位信息\n\n @param bo 岗位信息\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4f57bd5200e8cb2f544fcd3980bfd8eb39059450 GIT binary patch literal 22833 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 G^#1{oaY#V` literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl__Javadoc.json new file mode 100644 index 0000000..5014e90 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysRoleServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 角色 业务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectRoleList","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 根据条件分页查询角色数据\n\n @param role 角色信息\n @return 角色数据集合信息\n"},{"name":"selectRolesByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询角色\n\n @param userId 用户ID\n @return 角色列表\n"},{"name":"selectRolesAuthByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询角色列表(包含被授权状态)\n\n @param userId 用户ID\n @return 角色列表\n"},{"name":"selectRolePermissionByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID查询权限\n\n @param userId 用户ID\n @return 权限列表\n"},{"name":"selectRoleAll","paramTypes":[],"doc":" 查询所有角色\n\n @return 角色列表\n"},{"name":"selectRoleListByUserId","paramTypes":["java.lang.Long"],"doc":" 根据用户ID获取角色选择框列表\n\n @param userId 用户ID\n @return 选中角色ID列表\n"},{"name":"selectRoleById","paramTypes":["java.lang.Long"],"doc":" 通过角色ID查询角色\n\n @param roleId 角色ID\n @return 角色对象信息\n"},{"name":"selectRoleByIds","paramTypes":["java.util.List"],"doc":" 通过角色ID串查询角色\n\n @param roleIds 角色ID串\n @return 角色列表信息\n"},{"name":"checkRoleNameUnique","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色名称是否唯一\n\n @param role 角色信息\n @return 结果\n"},{"name":"checkRoleKeyUnique","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色权限是否唯一\n\n @param role 角色信息\n @return 结果\n"},{"name":"checkRoleAllowed","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 校验角色是否允许操作\n\n @param role 角色信息\n"},{"name":"checkRoleDataScope","paramTypes":["java.lang.Long"],"doc":" 校验角色是否有数据权限\n\n @param roleId 角色id\n"},{"name":"countUserRoleByRoleId","paramTypes":["java.lang.Long"],"doc":" 通过角色ID查询角色使用数量\n\n @param roleId 角色ID\n @return 结果\n"},{"name":"insertRole","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 新增保存角色信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"updateRole","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改保存角色信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"updateRoleStatus","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 修改角色状态\n\n @param roleId 角色ID\n @param status 角色状态\n @return 结果\n"},{"name":"authDataScope","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 修改数据权限信息\n\n @param bo 角色信息\n @return 结果\n"},{"name":"insertRoleMenu","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 新增角色菜单信息\n\n @param role 角色对象\n"},{"name":"insertRoleDept","paramTypes":["org.dromara.system.domain.bo.SysRoleBo"],"doc":" 新增角色部门信息(数据权限)\n\n @param role 角色对象\n"},{"name":"deleteRoleById","paramTypes":["java.lang.Long"],"doc":" 通过角色ID删除角色\n\n @param roleId 角色ID\n @return 结果\n"},{"name":"deleteRoleByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除角色信息\n\n @param roleIds 需要删除的角色ID\n @return 结果\n"},{"name":"deleteAuthUser","paramTypes":["org.dromara.system.domain.SysUserRole"],"doc":" 取消授权用户角色\n\n @param userRole 用户和角色关联信息\n @return 结果\n"},{"name":"deleteAuthUsers","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量取消授权用户角色\n\n @param roleId 角色ID\n @param userIds 需要取消授权的用户数据ID\n @return 结果\n"},{"name":"insertAuthUsers","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 批量选择授权用户角色\n\n @param roleId 角色ID\n @param userIds 需要授权的用户数据ID\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..68e90ce0289ad3af19cc038bfa4f12c04a015237 GIT binary patch literal 1345 zcmb7EU2{`K7=D%{oF<$|Ar|>)`4Et{6jrGgOQB=Oslu32hG56R8J*K)ZIoXp4{GjrJ7#gV+_Py>pSvPw+d#t)WWd$PbayiF(S;2ca9br1g8JrcEYi6?D_r`RIWK|w7H>^zt z-x5inqTN&DH`AUU2%MY$zW#QqYYT*YA2Sio#rOc{1!f7^Qv1uxuak1VCmX&uMl81z z_uO>VHdA{Ou;H!F_9lQAV_XVor|JGo*;G5HO}1?-n8W1=S7KZZT-5_PVk$a1E6??e)HDj15nykFY3k?|AT0=Z>7m4R||Np!lU}DH2iFnR?n! zca?n+3J^G3H_fEGlUN<(iL&V1+6k=Ik3aQ4@>~-*MLLd>5?FYn>60EEpM%$J*e=o4;tsNf$3UWx0N$s5X4k>}(~yNk!9J%C}AH8K*r}URlOh z8m4cX>MI>+nEemN?}kwoxbVE6d7Y{q?KElH$TH&-&sieQe9n^Vg}M7F!2fJ)N3y3@ z89(SLIceY;uHhDUmTYi=!_B?rd7F~tEqIp}e~0)jH!txFW}t>UJmawg?$R0j{urMS zgu!BpQi;0G2+;vb#lzbpRM(eytQ6;lI6qSyqDEb9h+EWN7~*Q-kcN1yD-{ldM?5xB z8ew*bnGvoXpgO{h14PANQ4D%&Cf|InfRN$?{uKZhnd&9Z{2Z#d%!IFCmaDbMikG+@ z_i+QOxQR_J#Mi8Ti{D9A}!uM+Uj#w)w;&Vox lL3!$LTo)p)&V0df;BS@c@(CgY+`#dJ{9MCB-hs?Vz`v%!Pf7p) literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl__Javadoc.json new file mode 100644 index 0000000..2161096 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSensitiveServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 脱敏服务\n 默认管理员不过滤\n 需自行根据业务重写实现\n\n @author Lion Li\n @version 3.6.0\n","fields":[],"enumConstants":[],"methods":[{"name":"isSensitive","paramTypes":["java.lang.String[]","java.lang.String[]"],"doc":" 是否脱敏\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..60f465c74901bf088e27192dad3e7d1e83f3013a GIT binary patch literal 6213 zcmb_giF*`h8UKBoW5aex!lnc%1R)U21>0Jn&=5kxQI>|QAwj6uWOtGbnVng7W<%4e z^{m=zz3PEl#S>{gsFiSOOSM+5*89Tyz8?Ppwfgw`W@aa|$tHmHd9pL_eDi(p`+M(q z^7MbsKL(%^f185{%AzP&P=QK;HCApokkVYJuhwqSDk`HxpxI zQBZThilSDaJ7r}OgQ}I$(^fu_86Q*~-Od_$JCU+-8ZTyAcXZ3N6G!q|ZamSeW(L#h zK1m%RmhESP;eY6fDGbv*H>I;p(vj<_v32KfNQ> zk2i-E?X}F|ju;lBA&Mmmo{yyhOHyWHB=1<3;bG1@y5U=-pCsAo_HN7Boi|9&_pKQ= zTg#z1W2RBTa;y-jpjO7XKnDfSZX79cRCf|~KAW|2PNHvn-b_hj5n&BhDtG~!1tQuJ z0k!$ibazc(xtzq1JGuvLC#R+y-wPC3k5&b3X!q>bop(m0{jM#tU!RlHT??*8B8ux3 z+<+HOiB9UAvCK(R+6nKFw583AaE;kR`;7`L3R`o_h??uu7$#a+5>lon@hHp&dypx|b7ghIYow;h44&6lx!$PNYl{U~vrFS)or=#)NSIIa)l^pmBO z_1#1Zhei~e1+Jex45ovLqDNr)%y}3jVGLWbEsE_5Zov+L_VAJEeqd>#&+{qAcSV$v z$Fv*`cGK+oZ822aE>$pMbi_^tx1yJsF~-u8-ex+wGv1>OG5h<}F^zfKT&nE(6(!K5 zqh&xkbhm;%*vmqoo6KJ#E17S}7`kzrf<9RnDwyoav<#Gf1p_$166vdQ89FJ!|kO@(;8F7>+5n)3=iO#?5FRal0AOyZW)N;gHvjS zT|CevgS6ztAV(aw1h;*A6UC;mWeQwpN%G>cf#tf~3%HtI-PCsHGlN=gzZ^-}tb47L zY7D4UhtK|Exig}(ajYvPftt@gf>ByTXF|q9<=ThLeDIvHmor_4*_xviPfxFnY@Drf z70(=n;yBqpD0h&fNNXw7e({^af*EKWIV!N_%A40rGZnS2FE-_PwqVY~&z=3oS(FMw zr(+XQ%n1TrVB|TNb2f=n!b^&s=Nd+Ov1hz62sVbJ*6RjdOoV+_nP)`F-ccKh7k9J3 z?#nW`N|Z6L$@PrOnYHWct>X?Fg{H*lQPTw8bVa^l4h|VA`;IsyFt^W9Q=^;?{Dcd7 zn#5Jh-n*x-&8$TfSEmnr5=j6qME8*GbQKVZdAwJ{VLJw-y$8M)e2M zy;rdRDjl)9r0r+;GHV%NgS#zHV`MZ|V%^qRs=7_na`@@P4;@)+3@bBejV5ls_pw{T9g999@PlgM&Rb!!=yj?FKOtXE_0no9g2 zh9BZbQT$lJPw>;ChUWwK?7|Z&=LN^g@iVGgHJqY_d&2(r&v`O-sAk&G>=nJ1HJZ?r=k6rUUviqt69KZ?I_R+xP&!^krhmT{6F z;uqHk_>0Sbc@RyE^n>^i-+Y))J-kPFuWtPUMB6z;Be;mUr??Wqab7FA8~gAM=Cw^={#h(KPgIcf1ez|Q zhE&U0tU8Yy-PM+0b&b1vle@acTiqo=wx7fL2qeNX7hyg1;wFyi?O1|UScBEriG+)I zsRtlH+>euZh#+_J|1S^Y)70lPJgWpNpXG|L%}Kua9Dh=jz$5s)uhl+kB@NafvG|%5 zRN8nET>-kV{nmu+*ASp-z@s3Og2YDyiKn?ZfisjNU38ZBa^Abz;@xMlO^@#F=$X3y^&7ViOj>?yMw>7d0V?K@t#PWxNjcs%Wmx1w~_bGwzxe3=NOiib)LZD zw)j!^sji$))ot-R+^33)&czRLGkM?d-aN-ICOyR8KPhj#>bS`8{)+hB6L`%rp^|=W z{0%PMPx_wtn_W6d`o8%6F5OA`ZSi-y^bP01x^;>xKagb6dWL%< y_%^=7yX5p;-oM9RJGp*3r0 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl__Javadoc.json new file mode 100644 index 0000000..baf131c --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysSocialServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 社会化关系Service业务层处理\n\n @author thiszhc\n @date 2023-06-12\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.String"],"doc":" 查询社会化关系\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 授权列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 新增社会化关系\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysSocialBo"],"doc":" 更新社会化关系\n"},{"name":"validEntityBeforeSave","paramTypes":["org.dromara.system.domain.SysSocial"],"doc":" 保存前的数据校验\n"},{"name":"deleteWithValidById","paramTypes":["java.lang.Long"],"doc":" 删除社会化关系\n"},{"name":"selectByAuthId","paramTypes":["java.lang.String"],"doc":" 根据 authId 查询用户信息\n\n @param authId 认证id\n @return 授权信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..208fa6e169ea7f09dd31746ccaf43133f11e8a1c GIT binary patch literal 14865 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl__Javadoc.json new file mode 100644 index 0000000..72f6c9c --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 工作流设计器获取任务执行人\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectRolesByTaskAssigneeList","paramTypes":["org.dromara.common.core.domain.model.TaskAssigneeBody"],"doc":" 查询角色并返回任务指派的列表,支持分页\n\n @param taskQuery 查询条件\n @return 办理人\n"},{"name":"selectPostsByTaskAssigneeList","paramTypes":["org.dromara.common.core.domain.model.TaskAssigneeBody"],"doc":" 查询岗位并返回任务指派的列表,支持分页\n\n @param taskQuery 查询条件\n @return 办理人\n"},{"name":"selectDeptsByTaskAssigneeList","paramTypes":["org.dromara.common.core.domain.model.TaskAssigneeBody"],"doc":" 查询部门并返回任务指派的列表,支持分页\n\n @param taskQuery 查询条件\n @return 办理人\n"},{"name":"selectUsersByTaskAssigneeList","paramTypes":["org.dromara.common.core.domain.model.TaskAssigneeBody"],"doc":" 查询用户并返回任务指派的列表,支持分页\n\n @param taskQuery 查询条件\n @return 办理人\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cf5c3d00e4075b426de21aa947100b2b5b854f38 GIT binary patch literal 10155 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 Y9Vq#Ai#VuO4sm~kv<{0Sf(7<}0ngCQr2qf` literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl__Javadoc.json new file mode 100644 index 0000000..e87d560 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantPackageServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 租户套餐Service业务层处理\n\n @author Michelle.Chung\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询租户套餐\n"},{"name":"queryPageList","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询租户套餐列表\n"},{"name":"queryList","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 查询租户套餐列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 新增租户套餐\n"},{"name":"updateByBo","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 修改租户套餐\n"},{"name":"checkPackageNameUnique","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 校验套餐名称是否唯一\n"},{"name":"updatePackageStatus","paramTypes":["org.dromara.system.domain.bo.SysTenantPackageBo"],"doc":" 修改套餐状态\n\n @param bo 套餐信息\n @return 结果\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.Collection","java.lang.Boolean"],"doc":" 批量删除租户套餐\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantServiceImpl.class b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysTenantServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..db0c47d3ceea47fa13edc0f07a3d42990843cc40 GIT binary patch literal 28493 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/target/classes/org/dromara/system/service/impl/SysUserServiceImpl__Javadoc.json b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysUserServiceImpl__Javadoc.json new file mode 100644 index 0000000..133a226 --- /dev/null +++ b/ruoyi-system/target/classes/org/dromara/system/service/impl/SysUserServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 用户 业务层处理\n\n @author Lion Li\n","fields":[],"enumConstants":[],"methods":[{"name":"selectUserExportList","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 根据条件分页查询用户列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectAllocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 根据条件分页查询已分配用户角色列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectUnallocatedList","paramTypes":["org.dromara.system.domain.bo.SysUserBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 根据条件分页查询未分配用户角色列表\n\n @param user 用户信息\n @return 用户信息集合信息\n"},{"name":"selectUserByUserName","paramTypes":["java.lang.String"],"doc":" 通过用户名查询用户\n\n @param userName 用户名\n @return 用户对象信息\n"},{"name":"selectUserByPhonenumber","paramTypes":["java.lang.String"],"doc":" 通过手机号查询用户\n\n @param phonenumber 手机号\n @return 用户对象信息\n"},{"name":"selectUserById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户\n\n @param userId 用户ID\n @return 用户对象信息\n"},{"name":"selectUserByIds","paramTypes":["java.util.List","java.lang.Long"],"doc":" 通过用户ID串查询用户\n\n @param userIds 用户ID串\n @param deptId 部门id\n @return 用户列表信息\n"},{"name":"selectUserRoleGroup","paramTypes":["java.lang.Long"],"doc":" 查询用户所属角色组\n\n @param userId 用户ID\n @return 结果\n"},{"name":"selectUserPostGroup","paramTypes":["java.lang.Long"],"doc":" 查询用户所属岗位组\n\n @param userId 用户ID\n @return 结果\n"},{"name":"checkUserNameUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验用户名称是否唯一\n\n @param user 用户信息\n @return 结果\n"},{"name":"checkPhoneUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验手机号码是否唯一\n\n @param user 用户信息\n"},{"name":"checkEmailUnique","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 校验email是否唯一\n\n @param user 用户信息\n"},{"name":"checkUserAllowed","paramTypes":["java.lang.Long"],"doc":" 校验用户是否允许操作\n\n @param userId 用户ID\n"},{"name":"checkUserDataScope","paramTypes":["java.lang.Long"],"doc":" 校验用户是否有数据权限\n\n @param userId 用户id\n"},{"name":"insertUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 新增保存用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"registerUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo","java.lang.String"],"doc":" 注册用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"updateUser","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 修改保存用户信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"insertUserAuth","paramTypes":["java.lang.Long","java.lang.Long[]"],"doc":" 用户授权角色\n\n @param userId 用户ID\n @param roleIds 角色组\n"},{"name":"updateUserStatus","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 修改用户状态\n\n @param userId 用户ID\n @param status 帐号状态\n @return 结果\n"},{"name":"updateUserProfile","paramTypes":["org.dromara.system.domain.bo.SysUserBo"],"doc":" 修改用户基本信息\n\n @param user 用户信息\n @return 结果\n"},{"name":"updateUserAvatar","paramTypes":["java.lang.Long","java.lang.Long"],"doc":" 修改用户头像\n\n @param userId 用户ID\n @param avatar 头像地址\n @return 结果\n"},{"name":"resetUserPwd","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 重置用户密码\n\n @param userId 用户ID\n @param password 密码\n @return 结果\n"},{"name":"insertUserRole","paramTypes":["org.dromara.system.domain.bo.SysUserBo","boolean"],"doc":" 新增用户角色信息\n\n @param user 用户对象\n @param clear 清除已存在的关联数据\n"},{"name":"insertUserPost","paramTypes":["org.dromara.system.domain.bo.SysUserBo","boolean"],"doc":" 新增用户岗位信息\n\n @param user 用户对象\n @param clear 清除已存在的关联数据\n"},{"name":"insertUserRole","paramTypes":["java.lang.Long","java.lang.Long[]","boolean"],"doc":" 新增用户角色信息\n\n @param userId 用户ID\n @param roleIds 角色组\n @param clear 清除已存在的关联数据\n"},{"name":"deleteUserById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID删除用户\n\n @param userId 用户ID\n @return 结果\n"},{"name":"deleteUserByIds","paramTypes":["java.lang.Long[]"],"doc":" 批量删除用户信息\n\n @param userIds 需要删除的用户ID\n @return 结果\n"},{"name":"selectUserListByDept","paramTypes":["java.lang.Long"],"doc":" 通过部门id查询当前部门所有用户\n\n @param deptId 部门ID\n @return 用户信息集合信息\n"},{"name":"selectUserNameById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户账户\n\n @param userId 用户ID\n @return 用户账户\n"},{"name":"selectNicknameById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户账户\n\n @param userId 用户ID\n @return 用户账户\n"},{"name":"selectNicknameByIds","paramTypes":["java.lang.String"],"doc":" 通过用户ID查询用户账户\n\n @param userIds 用户ID 多个用逗号隔开\n @return 用户账户\n"},{"name":"selectPhonenumberById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户手机号\n\n @param userId 用户id\n @return 用户手机号\n"},{"name":"selectEmailById","paramTypes":["java.lang.Long"],"doc":" 通过用户ID查询用户邮箱\n\n @param userId 用户id\n @return 用户邮箱\n"},{"name":"selectListByIds","paramTypes":["java.util.List"],"doc":" 通过用户ID查询用户列表\n\n @param userIds 用户ids\n @return 用户列表\n"},{"name":"selectUserIdsByRoleIds","paramTypes":["java.util.List"],"doc":" 通过角色ID查询用户ID\n\n @param roleIds 角色ids\n @return 用户ids\n"},{"name":"selectUsersByRoleIds","paramTypes":["java.util.List"],"doc":" 通过角色ID查询用户\n\n @param roleIds 角色ids\n @return 用户\n"},{"name":"selectUsersByDeptIds","paramTypes":["java.util.List"],"doc":" 通过部门ID查询用户\n\n @param deptIds 部门ids\n @return 用户\n"},{"name":"selectUsersByPostIds","paramTypes":["java.util.List"],"doc":" 通过岗位ID查询用户\n\n @param postIds 岗位ids\n @return 用户\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__2.java b/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__2.java new file mode 100644 index 0000000..a9ef3df --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__2.java @@ -0,0 +1,14 @@ +package io.github.linpeilie; + +import org.mapstruct.Builder; +import org.mapstruct.MapperConfig; +import org.mapstruct.ReportingPolicy; + +@MapperConfig( + componentModel = "spring-lazy", + uses = {ConverterMapperAdapter__2.class}, + unmappedTargetPolicy = ReportingPolicy.IGNORE, + builder = @Builder(buildMethod = "build", disableBuilder = true) +) +public interface AutoMapperConfig__2 { +} diff --git a/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__2.java b/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__2.java new file mode 100644 index 0000000..210a58d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__2.java @@ -0,0 +1,10 @@ +package io.github.linpeilie; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class ConverterMapperAdapter__2 { + @Autowired + private Converter converter; +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.java new file mode 100644 index 0000000..45d1917 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.common.log.event; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.dromara.system.domain.bo.SysOperLogBoToOperLogEventMapper; +import org.dromara.system.domain.bo.SysOperLogBoToSysOperLogMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOperLogBoToSysOperLogMapper.class,SysOperLogBoToOperLogEventMapper.class}, + imports = {} +) +public interface OperLogEventToSysOperLogBoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.java new file mode 100644 index 0000000..c8248dd --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/common/log/event/OperLogEventToSysOperLogBoMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.common.log.event; + +import java.util.Arrays; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class OperLogEventToSysOperLogBoMapperImpl implements OperLogEventToSysOperLogBoMapper { + + @Override + public SysOperLogBo convert(OperLogEvent arg0) { + if ( arg0 == null ) { + return null; + } + + SysOperLogBo sysOperLogBo = new SysOperLogBo(); + + sysOperLogBo.setOperId( arg0.getOperId() ); + sysOperLogBo.setTenantId( arg0.getTenantId() ); + sysOperLogBo.setTitle( arg0.getTitle() ); + sysOperLogBo.setBusinessType( arg0.getBusinessType() ); + Integer[] businessTypes = arg0.getBusinessTypes(); + if ( businessTypes != null ) { + sysOperLogBo.setBusinessTypes( Arrays.copyOf( businessTypes, businessTypes.length ) ); + } + sysOperLogBo.setMethod( arg0.getMethod() ); + sysOperLogBo.setRequestMethod( arg0.getRequestMethod() ); + sysOperLogBo.setOperatorType( arg0.getOperatorType() ); + sysOperLogBo.setOperName( arg0.getOperName() ); + sysOperLogBo.setDeptName( arg0.getDeptName() ); + sysOperLogBo.setOperUrl( arg0.getOperUrl() ); + sysOperLogBo.setOperIp( arg0.getOperIp() ); + sysOperLogBo.setOperLocation( arg0.getOperLocation() ); + sysOperLogBo.setOperParam( arg0.getOperParam() ); + sysOperLogBo.setJsonResult( arg0.getJsonResult() ); + sysOperLogBo.setStatus( arg0.getStatus() ); + sysOperLogBo.setErrorMsg( arg0.getErrorMsg() ); + sysOperLogBo.setOperTime( arg0.getOperTime() ); + sysOperLogBo.setCostTime( arg0.getCostTime() ); + + return sysOperLogBo; + } + + @Override + public SysOperLogBo convert(OperLogEvent arg0, SysOperLogBo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOperId( arg0.getOperId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setTitle( arg0.getTitle() ); + arg1.setBusinessType( arg0.getBusinessType() ); + Integer[] businessTypes = arg0.getBusinessTypes(); + if ( businessTypes != null ) { + arg1.setBusinessTypes( Arrays.copyOf( businessTypes, businessTypes.length ) ); + } + else { + arg1.setBusinessTypes( null ); + } + arg1.setMethod( arg0.getMethod() ); + arg1.setRequestMethod( arg0.getRequestMethod() ); + arg1.setOperatorType( arg0.getOperatorType() ); + arg1.setOperName( arg0.getOperName() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setOperUrl( arg0.getOperUrl() ); + arg1.setOperIp( arg0.getOperIp() ); + arg1.setOperLocation( arg0.getOperLocation() ); + arg1.setOperParam( arg0.getOperParam() ); + arg1.setJsonResult( arg0.getJsonResult() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setErrorMsg( arg0.getErrorMsg() ); + arg1.setOperTime( arg0.getOperTime() ); + arg1.setCostTime( arg0.getCostTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapper.java new file mode 100644 index 0000000..fc090a9 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysClientBoToSysClientMapper; +import org.dromara.system.domain.vo.SysClientVo; +import org.dromara.system.domain.vo.SysClientVoToSysClientMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysClientVoToSysClientMapper.class,SysClientBoToSysClientMapper.class}, + imports = {} +) +public interface SysClientToSysClientVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapperImpl.java new file mode 100644 index 0000000..48d08ae --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysClientToSysClientVoMapperImpl.java @@ -0,0 +1,54 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysClientVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysClientToSysClientVoMapperImpl implements SysClientToSysClientVoMapper { + + @Override + public SysClientVo convert(SysClient arg0) { + if ( arg0 == null ) { + return null; + } + + SysClientVo sysClientVo = new SysClientVo(); + + sysClientVo.setId( arg0.getId() ); + sysClientVo.setClientId( arg0.getClientId() ); + sysClientVo.setClientKey( arg0.getClientKey() ); + sysClientVo.setClientSecret( arg0.getClientSecret() ); + sysClientVo.setGrantType( arg0.getGrantType() ); + sysClientVo.setDeviceType( arg0.getDeviceType() ); + sysClientVo.setActiveTimeout( arg0.getActiveTimeout() ); + sysClientVo.setTimeout( arg0.getTimeout() ); + sysClientVo.setStatus( arg0.getStatus() ); + + return sysClientVo; + } + + @Override + public SysClientVo convert(SysClient arg0, SysClientVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setClientId( arg0.getClientId() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setClientSecret( arg0.getClientSecret() ); + arg1.setGrantType( arg0.getGrantType() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setActiveTimeout( arg0.getActiveTimeout() ); + arg1.setTimeout( arg0.getTimeout() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapper.java new file mode 100644 index 0000000..71e0312 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysConfigBoToSysConfigMapper; +import org.dromara.system.domain.vo.SysConfigVo; +import org.dromara.system.domain.vo.SysConfigVoToSysConfigMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysConfigVoToSysConfigMapper.class,SysConfigBoToSysConfigMapper.class}, + imports = {} +) +public interface SysConfigToSysConfigVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.java new file mode 100644 index 0000000..ea34707 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysConfigToSysConfigVoMapperImpl.java @@ -0,0 +1,50 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysConfigVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysConfigToSysConfigVoMapperImpl implements SysConfigToSysConfigVoMapper { + + @Override + public SysConfigVo convert(SysConfig arg0) { + if ( arg0 == null ) { + return null; + } + + SysConfigVo sysConfigVo = new SysConfigVo(); + + sysConfigVo.setConfigId( arg0.getConfigId() ); + sysConfigVo.setConfigName( arg0.getConfigName() ); + sysConfigVo.setConfigKey( arg0.getConfigKey() ); + sysConfigVo.setConfigValue( arg0.getConfigValue() ); + sysConfigVo.setConfigType( arg0.getConfigType() ); + sysConfigVo.setRemark( arg0.getRemark() ); + sysConfigVo.setCreateTime( arg0.getCreateTime() ); + + return sysConfigVo; + } + + @Override + public SysConfigVo convert(SysConfig arg0, SysConfigVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setConfigId( arg0.getConfigId() ); + arg1.setConfigName( arg0.getConfigName() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setConfigValue( arg0.getConfigValue() ); + arg1.setConfigType( arg0.getConfigType() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapper.java new file mode 100644 index 0000000..2865e4e --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysDeptBoToSysDeptMapper; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.domain.vo.SysDeptVoToSysDeptMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDeptVoToSysDeptMapper.class,SysDeptBoToSysDeptMapper.class}, + imports = {} +) +public interface SysDeptToSysDeptVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.java new file mode 100644 index 0000000..091475d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDeptToSysDeptVoMapperImpl.java @@ -0,0 +1,58 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysDeptVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDeptToSysDeptVoMapperImpl implements SysDeptToSysDeptVoMapper { + + @Override + public SysDeptVo convert(SysDept arg0) { + if ( arg0 == null ) { + return null; + } + + SysDeptVo sysDeptVo = new SysDeptVo(); + + sysDeptVo.setDeptId( arg0.getDeptId() ); + sysDeptVo.setParentId( arg0.getParentId() ); + sysDeptVo.setAncestors( arg0.getAncestors() ); + sysDeptVo.setDeptName( arg0.getDeptName() ); + sysDeptVo.setDeptCategory( arg0.getDeptCategory() ); + sysDeptVo.setOrderNum( arg0.getOrderNum() ); + sysDeptVo.setLeader( arg0.getLeader() ); + sysDeptVo.setPhone( arg0.getPhone() ); + sysDeptVo.setEmail( arg0.getEmail() ); + sysDeptVo.setStatus( arg0.getStatus() ); + sysDeptVo.setCreateTime( arg0.getCreateTime() ); + + return sysDeptVo; + } + + @Override + public SysDeptVo convert(SysDept arg0, SysDeptVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setDeptId( arg0.getDeptId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setAncestors( arg0.getAncestors() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setDeptCategory( arg0.getDeptCategory() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setLeader( arg0.getLeader() ); + arg1.setPhone( arg0.getPhone() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapper.java new file mode 100644 index 0000000..9b80d1b --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysDictDataBoToSysDictDataMapper; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.dromara.system.domain.vo.SysDictDataVoToSysDictDataMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDictDataBoToSysDictDataMapper.class,SysDictDataVoToSysDictDataMapper.class}, + imports = {} +) +public interface SysDictDataToSysDictDataVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.java new file mode 100644 index 0000000..0aa354e --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictDataToSysDictDataVoMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictDataToSysDictDataVoMapperImpl implements SysDictDataToSysDictDataVoMapper { + + @Override + public SysDictDataVo convert(SysDictData arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictDataVo sysDictDataVo = new SysDictDataVo(); + + sysDictDataVo.setDictCode( arg0.getDictCode() ); + sysDictDataVo.setDictSort( arg0.getDictSort() ); + sysDictDataVo.setDictLabel( arg0.getDictLabel() ); + sysDictDataVo.setDictValue( arg0.getDictValue() ); + sysDictDataVo.setDictType( arg0.getDictType() ); + sysDictDataVo.setCssClass( arg0.getCssClass() ); + sysDictDataVo.setListClass( arg0.getListClass() ); + sysDictDataVo.setIsDefault( arg0.getIsDefault() ); + sysDictDataVo.setRemark( arg0.getRemark() ); + sysDictDataVo.setCreateTime( arg0.getCreateTime() ); + + return sysDictDataVo; + } + + @Override + public SysDictDataVo convert(SysDictData arg0, SysDictDataVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setDictCode( arg0.getDictCode() ); + arg1.setDictSort( arg0.getDictSort() ); + arg1.setDictLabel( arg0.getDictLabel() ); + arg1.setDictValue( arg0.getDictValue() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setCssClass( arg0.getCssClass() ); + arg1.setListClass( arg0.getListClass() ); + arg1.setIsDefault( arg0.getIsDefault() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.java new file mode 100644 index 0000000..8efdcae --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysDictTypeBoToSysDictTypeMapper; +import org.dromara.system.domain.vo.SysDictTypeVo; +import org.dromara.system.domain.vo.SysDictTypeVoToSysDictTypeMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDictTypeBoToSysDictTypeMapper.class,SysDictTypeVoToSysDictTypeMapper.class}, + imports = {} +) +public interface SysDictTypeToSysDictTypeVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapperImpl.java new file mode 100644 index 0000000..fddd9b2 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysDictTypeToSysDictTypeVoMapperImpl.java @@ -0,0 +1,46 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysDictTypeVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictTypeToSysDictTypeVoMapperImpl implements SysDictTypeToSysDictTypeVoMapper { + + @Override + public SysDictTypeVo convert(SysDictType arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictTypeVo sysDictTypeVo = new SysDictTypeVo(); + + sysDictTypeVo.setDictId( arg0.getDictId() ); + sysDictTypeVo.setDictName( arg0.getDictName() ); + sysDictTypeVo.setDictType( arg0.getDictType() ); + sysDictTypeVo.setRemark( arg0.getRemark() ); + sysDictTypeVo.setCreateTime( arg0.getCreateTime() ); + + return sysDictTypeVo; + } + + @Override + public SysDictTypeVo convert(SysDictType arg0, SysDictTypeVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setDictId( arg0.getDictId() ); + arg1.setDictName( arg0.getDictName() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.java new file mode 100644 index 0000000..4ebbb5c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysLogininforBoToSysLogininforMapper; +import org.dromara.system.domain.vo.SysLogininforVo; +import org.dromara.system.domain.vo.SysLogininforVoToSysLogininforMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysLogininforBoToSysLogininforMapper.class,SysLogininforVoToSysLogininforMapper.class}, + imports = {} +) +public interface SysLogininforToSysLogininforVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.java new file mode 100644 index 0000000..46a54f2 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysLogininforToSysLogininforVoMapperImpl.java @@ -0,0 +1,60 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysLogininforVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysLogininforToSysLogininforVoMapperImpl implements SysLogininforToSysLogininforVoMapper { + + @Override + public SysLogininforVo convert(SysLogininfor arg0) { + if ( arg0 == null ) { + return null; + } + + SysLogininforVo sysLogininforVo = new SysLogininforVo(); + + sysLogininforVo.setInfoId( arg0.getInfoId() ); + sysLogininforVo.setTenantId( arg0.getTenantId() ); + sysLogininforVo.setUserName( arg0.getUserName() ); + sysLogininforVo.setClientKey( arg0.getClientKey() ); + sysLogininforVo.setDeviceType( arg0.getDeviceType() ); + sysLogininforVo.setStatus( arg0.getStatus() ); + sysLogininforVo.setIpaddr( arg0.getIpaddr() ); + sysLogininforVo.setLoginLocation( arg0.getLoginLocation() ); + sysLogininforVo.setBrowser( arg0.getBrowser() ); + sysLogininforVo.setOs( arg0.getOs() ); + sysLogininforVo.setMsg( arg0.getMsg() ); + sysLogininforVo.setLoginTime( arg0.getLoginTime() ); + + return sysLogininforVo; + } + + @Override + public SysLogininforVo convert(SysLogininfor arg0, SysLogininforVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setInfoId( arg0.getInfoId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setIpaddr( arg0.getIpaddr() ); + arg1.setLoginLocation( arg0.getLoginLocation() ); + arg1.setBrowser( arg0.getBrowser() ); + arg1.setOs( arg0.getOs() ); + arg1.setMsg( arg0.getMsg() ); + arg1.setLoginTime( arg0.getLoginTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapper.java new file mode 100644 index 0000000..fdb9a6c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysMenuBoToSysMenuMapper; +import org.dromara.system.domain.vo.SysMenuVo; +import org.dromara.system.domain.vo.SysMenuVoToSysMenuMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysMenuVoToSysMenuMapper.class,SysMenuBoToSysMenuMapper.class}, + imports = {} +) +public interface SysMenuToSysMenuVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.java new file mode 100644 index 0000000..0364691 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysMenuToSysMenuVoMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain; + +import java.util.List; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysMenuVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysMenuToSysMenuVoMapperImpl implements SysMenuToSysMenuVoMapper { + + @Override + public SysMenuVo convert(SysMenu arg0) { + if ( arg0 == null ) { + return null; + } + + SysMenuVo sysMenuVo = new SysMenuVo(); + + sysMenuVo.setMenuId( arg0.getMenuId() ); + sysMenuVo.setMenuName( arg0.getMenuName() ); + sysMenuVo.setParentId( arg0.getParentId() ); + sysMenuVo.setOrderNum( arg0.getOrderNum() ); + sysMenuVo.setPath( arg0.getPath() ); + sysMenuVo.setComponent( arg0.getComponent() ); + sysMenuVo.setQueryParam( arg0.getQueryParam() ); + sysMenuVo.setIsFrame( arg0.getIsFrame() ); + sysMenuVo.setIsCache( arg0.getIsCache() ); + sysMenuVo.setMenuType( arg0.getMenuType() ); + sysMenuVo.setVisible( arg0.getVisible() ); + sysMenuVo.setStatus( arg0.getStatus() ); + sysMenuVo.setPerms( arg0.getPerms() ); + sysMenuVo.setIcon( arg0.getIcon() ); + sysMenuVo.setCreateDept( arg0.getCreateDept() ); + sysMenuVo.setRemark( arg0.getRemark() ); + sysMenuVo.setCreateTime( arg0.getCreateTime() ); + sysMenuVo.setChildren( convert( arg0.getChildren() ) ); + + return sysMenuVo; + } + + @Override + public SysMenuVo convert(SysMenu arg0, SysMenuVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setMenuId( arg0.getMenuId() ); + arg1.setMenuName( arg0.getMenuName() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setPath( arg0.getPath() ); + arg1.setComponent( arg0.getComponent() ); + arg1.setQueryParam( arg0.getQueryParam() ); + arg1.setIsFrame( arg0.getIsFrame() ); + arg1.setIsCache( arg0.getIsCache() ); + arg1.setMenuType( arg0.getMenuType() ); + arg1.setVisible( arg0.getVisible() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setPerms( arg0.getPerms() ); + arg1.setIcon( arg0.getIcon() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + if ( arg1.getChildren() != null ) { + List list = convert( arg0.getChildren() ); + if ( list != null ) { + arg1.getChildren().clear(); + arg1.getChildren().addAll( list ); + } + else { + arg1.setChildren( null ); + } + } + else { + List list = convert( arg0.getChildren() ); + if ( list != null ) { + arg1.setChildren( list ); + } + } + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapper.java new file mode 100644 index 0000000..0f5301c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysNoticeBoToSysNoticeMapper; +import org.dromara.system.domain.vo.SysNoticeVo; +import org.dromara.system.domain.vo.SysNoticeVoToSysNoticeMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysNoticeVoToSysNoticeMapper.class,SysNoticeBoToSysNoticeMapper.class}, + imports = {} +) +public interface SysNoticeToSysNoticeVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.java new file mode 100644 index 0000000..4ae5f05 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysNoticeToSysNoticeVoMapperImpl.java @@ -0,0 +1,52 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysNoticeVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysNoticeToSysNoticeVoMapperImpl implements SysNoticeToSysNoticeVoMapper { + + @Override + public SysNoticeVo convert(SysNotice arg0) { + if ( arg0 == null ) { + return null; + } + + SysNoticeVo sysNoticeVo = new SysNoticeVo(); + + sysNoticeVo.setNoticeId( arg0.getNoticeId() ); + sysNoticeVo.setNoticeTitle( arg0.getNoticeTitle() ); + sysNoticeVo.setNoticeType( arg0.getNoticeType() ); + sysNoticeVo.setNoticeContent( arg0.getNoticeContent() ); + sysNoticeVo.setStatus( arg0.getStatus() ); + sysNoticeVo.setRemark( arg0.getRemark() ); + sysNoticeVo.setCreateBy( arg0.getCreateBy() ); + sysNoticeVo.setCreateTime( arg0.getCreateTime() ); + + return sysNoticeVo; + } + + @Override + public SysNoticeVo convert(SysNotice arg0, SysNoticeVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setNoticeId( arg0.getNoticeId() ); + arg1.setNoticeTitle( arg0.getNoticeTitle() ); + arg1.setNoticeType( arg0.getNoticeType() ); + arg1.setNoticeContent( arg0.getNoticeContent() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.java new file mode 100644 index 0000000..80832b2 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysOperLogBoToSysOperLogMapper; +import org.dromara.system.domain.vo.SysOperLogVo; +import org.dromara.system.domain.vo.SysOperLogVoToSysOperLogMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOperLogVoToSysOperLogMapper.class,SysOperLogBoToSysOperLogMapper.class}, + imports = {} +) +public interface SysOperLogToSysOperLogVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.java new file mode 100644 index 0000000..7c0879e --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOperLogToSysOperLogVoMapperImpl.java @@ -0,0 +1,72 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysOperLogVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOperLogToSysOperLogVoMapperImpl implements SysOperLogToSysOperLogVoMapper { + + @Override + public SysOperLogVo convert(SysOperLog arg0) { + if ( arg0 == null ) { + return null; + } + + SysOperLogVo sysOperLogVo = new SysOperLogVo(); + + sysOperLogVo.setOperId( arg0.getOperId() ); + sysOperLogVo.setTenantId( arg0.getTenantId() ); + sysOperLogVo.setTitle( arg0.getTitle() ); + sysOperLogVo.setBusinessType( arg0.getBusinessType() ); + sysOperLogVo.setMethod( arg0.getMethod() ); + sysOperLogVo.setRequestMethod( arg0.getRequestMethod() ); + sysOperLogVo.setOperatorType( arg0.getOperatorType() ); + sysOperLogVo.setOperName( arg0.getOperName() ); + sysOperLogVo.setDeptName( arg0.getDeptName() ); + sysOperLogVo.setOperUrl( arg0.getOperUrl() ); + sysOperLogVo.setOperIp( arg0.getOperIp() ); + sysOperLogVo.setOperLocation( arg0.getOperLocation() ); + sysOperLogVo.setOperParam( arg0.getOperParam() ); + sysOperLogVo.setJsonResult( arg0.getJsonResult() ); + sysOperLogVo.setStatus( arg0.getStatus() ); + sysOperLogVo.setErrorMsg( arg0.getErrorMsg() ); + sysOperLogVo.setOperTime( arg0.getOperTime() ); + sysOperLogVo.setCostTime( arg0.getCostTime() ); + + return sysOperLogVo; + } + + @Override + public SysOperLogVo convert(SysOperLog arg0, SysOperLogVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOperId( arg0.getOperId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setTitle( arg0.getTitle() ); + arg1.setBusinessType( arg0.getBusinessType() ); + arg1.setMethod( arg0.getMethod() ); + arg1.setRequestMethod( arg0.getRequestMethod() ); + arg1.setOperatorType( arg0.getOperatorType() ); + arg1.setOperName( arg0.getOperName() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setOperUrl( arg0.getOperUrl() ); + arg1.setOperIp( arg0.getOperIp() ); + arg1.setOperLocation( arg0.getOperLocation() ); + arg1.setOperParam( arg0.getOperParam() ); + arg1.setJsonResult( arg0.getJsonResult() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setErrorMsg( arg0.getErrorMsg() ); + arg1.setOperTime( arg0.getOperTime() ); + arg1.setCostTime( arg0.getCostTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapper.java new file mode 100644 index 0000000..c9dadc7 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysOssConfigBoToSysOssConfigMapper; +import org.dromara.system.domain.vo.SysOssConfigVo; +import org.dromara.system.domain.vo.SysOssConfigVoToSysOssConfigMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOssConfigBoToSysOssConfigMapper.class,SysOssConfigVoToSysOssConfigMapper.class}, + imports = {} +) +public interface SysOssConfigToSysOssConfigVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapperImpl.java new file mode 100644 index 0000000..646e2be --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssConfigToSysOssConfigVoMapperImpl.java @@ -0,0 +1,64 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysOssConfigVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssConfigToSysOssConfigVoMapperImpl implements SysOssConfigToSysOssConfigVoMapper { + + @Override + public SysOssConfigVo convert(SysOssConfig arg0) { + if ( arg0 == null ) { + return null; + } + + SysOssConfigVo sysOssConfigVo = new SysOssConfigVo(); + + sysOssConfigVo.setOssConfigId( arg0.getOssConfigId() ); + sysOssConfigVo.setConfigKey( arg0.getConfigKey() ); + sysOssConfigVo.setAccessKey( arg0.getAccessKey() ); + sysOssConfigVo.setSecretKey( arg0.getSecretKey() ); + sysOssConfigVo.setBucketName( arg0.getBucketName() ); + sysOssConfigVo.setPrefix( arg0.getPrefix() ); + sysOssConfigVo.setEndpoint( arg0.getEndpoint() ); + sysOssConfigVo.setDomain( arg0.getDomain() ); + sysOssConfigVo.setIsHttps( arg0.getIsHttps() ); + sysOssConfigVo.setRegion( arg0.getRegion() ); + sysOssConfigVo.setStatus( arg0.getStatus() ); + sysOssConfigVo.setExt1( arg0.getExt1() ); + sysOssConfigVo.setRemark( arg0.getRemark() ); + sysOssConfigVo.setAccessPolicy( arg0.getAccessPolicy() ); + + return sysOssConfigVo; + } + + @Override + public SysOssConfigVo convert(SysOssConfig arg0, SysOssConfigVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOssConfigId( arg0.getOssConfigId() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setAccessKey( arg0.getAccessKey() ); + arg1.setSecretKey( arg0.getSecretKey() ); + arg1.setBucketName( arg0.getBucketName() ); + arg1.setPrefix( arg0.getPrefix() ); + arg1.setEndpoint( arg0.getEndpoint() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIsHttps( arg0.getIsHttps() ); + arg1.setRegion( arg0.getRegion() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setExt1( arg0.getExt1() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setAccessPolicy( arg0.getAccessPolicy() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapper.java new file mode 100644 index 0000000..6b4dd7e --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysOssBoToSysOssMapper; +import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.domain.vo.SysOssVoToSysOssMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOssBoToSysOssMapper.class,SysOssVoToSysOssMapper.class}, + imports = {} +) +public interface SysOssToSysOssVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.java new file mode 100644 index 0000000..f90aaee --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysOssToSysOssVoMapperImpl.java @@ -0,0 +1,52 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysOssVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssToSysOssVoMapperImpl implements SysOssToSysOssVoMapper { + + @Override + public SysOssVo convert(SysOss arg0) { + if ( arg0 == null ) { + return null; + } + + SysOssVo sysOssVo = new SysOssVo(); + + sysOssVo.setOssId( arg0.getOssId() ); + sysOssVo.setFileName( arg0.getFileName() ); + sysOssVo.setOriginalName( arg0.getOriginalName() ); + sysOssVo.setFileSuffix( arg0.getFileSuffix() ); + sysOssVo.setUrl( arg0.getUrl() ); + sysOssVo.setCreateTime( arg0.getCreateTime() ); + sysOssVo.setCreateBy( arg0.getCreateBy() ); + sysOssVo.setService( arg0.getService() ); + + return sysOssVo; + } + + @Override + public SysOssVo convert(SysOss arg0, SysOssVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOssId( arg0.getOssId() ); + arg1.setFileName( arg0.getFileName() ); + arg1.setOriginalName( arg0.getOriginalName() ); + arg1.setFileSuffix( arg0.getFileSuffix() ); + arg1.setUrl( arg0.getUrl() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setService( arg0.getService() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapper.java new file mode 100644 index 0000000..5484c9f --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysPostBoToSysPostMapper; +import org.dromara.system.domain.vo.SysPostVo; +import org.dromara.system.domain.vo.SysPostVoToSysPostMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysPostBoToSysPostMapper.class,SysPostVoToSysPostMapper.class}, + imports = {} +) +public interface SysPostToSysPostVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapperImpl.java new file mode 100644 index 0000000..8146f76 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysPostToSysPostVoMapperImpl.java @@ -0,0 +1,54 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysPostVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysPostToSysPostVoMapperImpl implements SysPostToSysPostVoMapper { + + @Override + public SysPostVo convert(SysPost arg0) { + if ( arg0 == null ) { + return null; + } + + SysPostVo sysPostVo = new SysPostVo(); + + sysPostVo.setPostId( arg0.getPostId() ); + sysPostVo.setDeptId( arg0.getDeptId() ); + sysPostVo.setPostCode( arg0.getPostCode() ); + sysPostVo.setPostName( arg0.getPostName() ); + sysPostVo.setPostCategory( arg0.getPostCategory() ); + sysPostVo.setPostSort( arg0.getPostSort() ); + sysPostVo.setStatus( arg0.getStatus() ); + sysPostVo.setRemark( arg0.getRemark() ); + sysPostVo.setCreateTime( arg0.getCreateTime() ); + + return sysPostVo; + } + + @Override + public SysPostVo convert(SysPost arg0, SysPostVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setPostId( arg0.getPostId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setPostCode( arg0.getPostCode() ); + arg1.setPostName( arg0.getPostName() ); + arg1.setPostCategory( arg0.getPostCategory() ); + arg1.setPostSort( arg0.getPostSort() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapper.java new file mode 100644 index 0000000..fecb423 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysRoleBoToSysRoleMapper; +import org.dromara.system.domain.vo.SysRoleVo; +import org.dromara.system.domain.vo.SysRoleVoToSysRoleMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysRoleVoToSysRoleMapper.class,SysRoleBoToSysRoleMapper.class}, + imports = {} +) +public interface SysRoleToSysRoleVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.java new file mode 100644 index 0000000..446b6b4 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysRoleToSysRoleVoMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysRoleVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysRoleToSysRoleVoMapperImpl implements SysRoleToSysRoleVoMapper { + + @Override + public SysRoleVo convert(SysRole arg0) { + if ( arg0 == null ) { + return null; + } + + SysRoleVo sysRoleVo = new SysRoleVo(); + + sysRoleVo.setRoleId( arg0.getRoleId() ); + sysRoleVo.setRoleName( arg0.getRoleName() ); + sysRoleVo.setRoleKey( arg0.getRoleKey() ); + sysRoleVo.setRoleSort( arg0.getRoleSort() ); + sysRoleVo.setDataScope( arg0.getDataScope() ); + sysRoleVo.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + sysRoleVo.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + sysRoleVo.setStatus( arg0.getStatus() ); + sysRoleVo.setRemark( arg0.getRemark() ); + sysRoleVo.setCreateTime( arg0.getCreateTime() ); + + return sysRoleVo; + } + + @Override + public SysRoleVo convert(SysRole arg0, SysRoleVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setRoleId( arg0.getRoleId() ); + arg1.setRoleName( arg0.getRoleName() ); + arg1.setRoleKey( arg0.getRoleKey() ); + arg1.setRoleSort( arg0.getRoleSort() ); + arg1.setDataScope( arg0.getDataScope() ); + arg1.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + arg1.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapper.java new file mode 100644 index 0000000..245ffcf --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysSocialBoToSysSocialMapper; +import org.dromara.system.domain.vo.SysSocialVo; +import org.dromara.system.domain.vo.SysSocialVoToSysSocialMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysSocialBoToSysSocialMapper.class,SysSocialVoToSysSocialMapper.class}, + imports = {} +) +public interface SysSocialToSysSocialVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapperImpl.java new file mode 100644 index 0000000..2dbf407 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysSocialToSysSocialVoMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysSocialVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysSocialToSysSocialVoMapperImpl implements SysSocialToSysSocialVoMapper { + + @Override + public SysSocialVo convert(SysSocial arg0) { + if ( arg0 == null ) { + return null; + } + + SysSocialVo sysSocialVo = new SysSocialVo(); + + sysSocialVo.setId( arg0.getId() ); + sysSocialVo.setUserId( arg0.getUserId() ); + sysSocialVo.setTenantId( arg0.getTenantId() ); + sysSocialVo.setAuthId( arg0.getAuthId() ); + sysSocialVo.setSource( arg0.getSource() ); + sysSocialVo.setAccessToken( arg0.getAccessToken() ); + sysSocialVo.setExpireIn( arg0.getExpireIn() ); + sysSocialVo.setRefreshToken( arg0.getRefreshToken() ); + sysSocialVo.setOpenId( arg0.getOpenId() ); + sysSocialVo.setUserName( arg0.getUserName() ); + sysSocialVo.setNickName( arg0.getNickName() ); + sysSocialVo.setEmail( arg0.getEmail() ); + sysSocialVo.setAvatar( arg0.getAvatar() ); + sysSocialVo.setAccessCode( arg0.getAccessCode() ); + sysSocialVo.setUnionId( arg0.getUnionId() ); + sysSocialVo.setScope( arg0.getScope() ); + sysSocialVo.setTokenType( arg0.getTokenType() ); + sysSocialVo.setIdToken( arg0.getIdToken() ); + sysSocialVo.setMacAlgorithm( arg0.getMacAlgorithm() ); + sysSocialVo.setMacKey( arg0.getMacKey() ); + sysSocialVo.setCode( arg0.getCode() ); + sysSocialVo.setOauthToken( arg0.getOauthToken() ); + sysSocialVo.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + sysSocialVo.setCreateTime( arg0.getCreateTime() ); + + return sysSocialVo; + } + + @Override + public SysSocialVo convert(SysSocial arg0, SysSocialVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setAuthId( arg0.getAuthId() ); + arg1.setSource( arg0.getSource() ); + arg1.setAccessToken( arg0.getAccessToken() ); + arg1.setExpireIn( arg0.getExpireIn() ); + arg1.setRefreshToken( arg0.getRefreshToken() ); + arg1.setOpenId( arg0.getOpenId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setAvatar( arg0.getAvatar() ); + arg1.setAccessCode( arg0.getAccessCode() ); + arg1.setUnionId( arg0.getUnionId() ); + arg1.setScope( arg0.getScope() ); + arg1.setTokenType( arg0.getTokenType() ); + arg1.setIdToken( arg0.getIdToken() ); + arg1.setMacAlgorithm( arg0.getMacAlgorithm() ); + arg1.setMacKey( arg0.getMacKey() ); + arg1.setCode( arg0.getCode() ); + arg1.setOauthToken( arg0.getOauthToken() ); + arg1.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapper.java new file mode 100644 index 0000000..a44cdba --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysTenantPackageBoToSysTenantPackageMapper; +import org.dromara.system.domain.vo.SysTenantPackageVo; +import org.dromara.system.domain.vo.SysTenantPackageVoToSysTenantPackageMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysTenantPackageBoToSysTenantPackageMapper.class,SysTenantPackageVoToSysTenantPackageMapper.class}, + imports = {} +) +public interface SysTenantPackageToSysTenantPackageVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapperImpl.java new file mode 100644 index 0000000..d6fa074 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantPackageToSysTenantPackageVoMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysTenantPackageVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantPackageToSysTenantPackageVoMapperImpl implements SysTenantPackageToSysTenantPackageVoMapper { + + @Override + public SysTenantPackageVo convert(SysTenantPackage arg0) { + if ( arg0 == null ) { + return null; + } + + SysTenantPackageVo sysTenantPackageVo = new SysTenantPackageVo(); + + sysTenantPackageVo.setPackageId( arg0.getPackageId() ); + sysTenantPackageVo.setPackageName( arg0.getPackageName() ); + sysTenantPackageVo.setMenuIds( arg0.getMenuIds() ); + sysTenantPackageVo.setRemark( arg0.getRemark() ); + sysTenantPackageVo.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + sysTenantPackageVo.setStatus( arg0.getStatus() ); + + return sysTenantPackageVo; + } + + @Override + public SysTenantPackageVo convert(SysTenantPackage arg0, SysTenantPackageVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setPackageId( arg0.getPackageId() ); + arg1.setPackageName( arg0.getPackageName() ); + arg1.setMenuIds( arg0.getMenuIds() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapper.java new file mode 100644 index 0000000..97ec694 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysTenantBoToSysTenantMapper; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.domain.vo.SysTenantVoToSysTenantMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysTenantBoToSysTenantMapper.class,SysTenantVoToSysTenantMapper.class}, + imports = {} +) +public interface SysTenantToSysTenantVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.java new file mode 100644 index 0000000..48be927 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysTenantToSysTenantVoMapperImpl.java @@ -0,0 +1,64 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysTenantVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantToSysTenantVoMapperImpl implements SysTenantToSysTenantVoMapper { + + @Override + public SysTenantVo convert(SysTenant arg0) { + if ( arg0 == null ) { + return null; + } + + SysTenantVo sysTenantVo = new SysTenantVo(); + + sysTenantVo.setId( arg0.getId() ); + sysTenantVo.setTenantId( arg0.getTenantId() ); + sysTenantVo.setContactUserName( arg0.getContactUserName() ); + sysTenantVo.setContactPhone( arg0.getContactPhone() ); + sysTenantVo.setCompanyName( arg0.getCompanyName() ); + sysTenantVo.setLicenseNumber( arg0.getLicenseNumber() ); + sysTenantVo.setAddress( arg0.getAddress() ); + sysTenantVo.setDomain( arg0.getDomain() ); + sysTenantVo.setIntro( arg0.getIntro() ); + sysTenantVo.setRemark( arg0.getRemark() ); + sysTenantVo.setPackageId( arg0.getPackageId() ); + sysTenantVo.setExpireTime( arg0.getExpireTime() ); + sysTenantVo.setAccountCount( arg0.getAccountCount() ); + sysTenantVo.setStatus( arg0.getStatus() ); + + return sysTenantVo; + } + + @Override + public SysTenantVo convert(SysTenant arg0, SysTenantVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setContactUserName( arg0.getContactUserName() ); + arg1.setContactPhone( arg0.getContactPhone() ); + arg1.setCompanyName( arg0.getCompanyName() ); + arg1.setLicenseNumber( arg0.getLicenseNumber() ); + arg1.setAddress( arg0.getAddress() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIntro( arg0.getIntro() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setPackageId( arg0.getPackageId() ); + arg1.setExpireTime( arg0.getExpireTime() ); + arg1.setAccountCount( arg0.getAccountCount() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapper.java new file mode 100644 index 0000000..a0ef501 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapper.java @@ -0,0 +1,17 @@ +package org.dromara.system.domain; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.bo.SysUserBoToSysUserMapper; +import org.dromara.system.domain.vo.SysRoleVoToSysRoleMapper; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.domain.vo.SysUserVoToSysUserMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysRoleVoToSysRoleMapper.class,SysRoleToSysRoleVoMapper.class,SysUserVoToSysUserMapper.class,SysUserBoToSysUserMapper.class}, + imports = {} +) +public interface SysUserToSysUserVoMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapperImpl.java new file mode 100644 index 0000000..b59fdeb --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/SysUserToSysUserVoMapperImpl.java @@ -0,0 +1,68 @@ +package org.dromara.system.domain; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.vo.SysUserVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysUserToSysUserVoMapperImpl implements SysUserToSysUserVoMapper { + + @Override + public SysUserVo convert(SysUser arg0) { + if ( arg0 == null ) { + return null; + } + + SysUserVo sysUserVo = new SysUserVo(); + + sysUserVo.setUserId( arg0.getUserId() ); + sysUserVo.setTenantId( arg0.getTenantId() ); + sysUserVo.setDeptId( arg0.getDeptId() ); + sysUserVo.setUserName( arg0.getUserName() ); + sysUserVo.setNickName( arg0.getNickName() ); + sysUserVo.setUserType( arg0.getUserType() ); + sysUserVo.setEmail( arg0.getEmail() ); + sysUserVo.setPhonenumber( arg0.getPhonenumber() ); + sysUserVo.setSex( arg0.getSex() ); + sysUserVo.setAvatar( arg0.getAvatar() ); + sysUserVo.setPassword( arg0.getPassword() ); + sysUserVo.setStatus( arg0.getStatus() ); + sysUserVo.setLoginIp( arg0.getLoginIp() ); + sysUserVo.setLoginDate( arg0.getLoginDate() ); + sysUserVo.setRemark( arg0.getRemark() ); + sysUserVo.setCreateTime( arg0.getCreateTime() ); + + return sysUserVo; + } + + @Override + public SysUserVo convert(SysUser arg0, SysUserVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setUserId( arg0.getUserId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setUserType( arg0.getUserType() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setPhonenumber( arg0.getPhonenumber() ); + arg1.setSex( arg0.getSex() ); + arg1.setAvatar( arg0.getAvatar() ); + arg1.setPassword( arg0.getPassword() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setLoginIp( arg0.getLoginIp() ); + arg1.setLoginDate( arg0.getLoginDate() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapper.java new file mode 100644 index 0000000..2d7ad5c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysClient; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysClientBoToSysClientMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.java new file mode 100644 index 0000000..a4a7c25 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysClientBoToSysClientMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysClient; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysClientBoToSysClientMapperImpl implements SysClientBoToSysClientMapper { + + @Override + public SysClient convert(SysClientBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysClient sysClient = new SysClient(); + + sysClient.setSearchValue( arg0.getSearchValue() ); + sysClient.setCreateDept( arg0.getCreateDept() ); + sysClient.setCreateBy( arg0.getCreateBy() ); + sysClient.setCreateTime( arg0.getCreateTime() ); + sysClient.setUpdateBy( arg0.getUpdateBy() ); + sysClient.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysClient.setParams( new LinkedHashMap( map ) ); + } + sysClient.setId( arg0.getId() ); + sysClient.setClientId( arg0.getClientId() ); + sysClient.setClientKey( arg0.getClientKey() ); + sysClient.setClientSecret( arg0.getClientSecret() ); + sysClient.setGrantType( arg0.getGrantType() ); + sysClient.setDeviceType( arg0.getDeviceType() ); + sysClient.setActiveTimeout( arg0.getActiveTimeout() ); + sysClient.setTimeout( arg0.getTimeout() ); + sysClient.setStatus( arg0.getStatus() ); + + return sysClient; + } + + @Override + public SysClient convert(SysClientBo arg0, SysClient arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setId( arg0.getId() ); + arg1.setClientId( arg0.getClientId() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setClientSecret( arg0.getClientSecret() ); + arg1.setGrantType( arg0.getGrantType() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setActiveTimeout( arg0.getActiveTimeout() ); + arg1.setTimeout( arg0.getTimeout() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.java new file mode 100644 index 0000000..4c1a2cc --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysConfig; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysConfigBoToSysConfigMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.java new file mode 100644 index 0000000..20aa6d8 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysConfigBoToSysConfigMapperImpl.java @@ -0,0 +1,82 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysConfig; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysConfigBoToSysConfigMapperImpl implements SysConfigBoToSysConfigMapper { + + @Override + public SysConfig convert(SysConfigBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysConfig sysConfig = new SysConfig(); + + sysConfig.setSearchValue( arg0.getSearchValue() ); + sysConfig.setCreateDept( arg0.getCreateDept() ); + sysConfig.setCreateBy( arg0.getCreateBy() ); + sysConfig.setCreateTime( arg0.getCreateTime() ); + sysConfig.setUpdateBy( arg0.getUpdateBy() ); + sysConfig.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysConfig.setParams( new LinkedHashMap( map ) ); + } + sysConfig.setConfigId( arg0.getConfigId() ); + sysConfig.setConfigName( arg0.getConfigName() ); + sysConfig.setConfigKey( arg0.getConfigKey() ); + sysConfig.setConfigValue( arg0.getConfigValue() ); + sysConfig.setConfigType( arg0.getConfigType() ); + sysConfig.setRemark( arg0.getRemark() ); + + return sysConfig; + } + + @Override + public SysConfig convert(SysConfigBo arg0, SysConfig arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setConfigId( arg0.getConfigId() ); + arg1.setConfigName( arg0.getConfigName() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setConfigValue( arg0.getConfigValue() ); + arg1.setConfigType( arg0.getConfigType() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.java new file mode 100644 index 0000000..bfd2fe0 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDept; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysDeptBoToSysDeptMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.java new file mode 100644 index 0000000..c8b1f3f --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDeptBoToSysDeptMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDept; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDeptBoToSysDeptMapperImpl implements SysDeptBoToSysDeptMapper { + + @Override + public SysDept convert(SysDeptBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDept sysDept = new SysDept(); + + sysDept.setSearchValue( arg0.getSearchValue() ); + sysDept.setCreateDept( arg0.getCreateDept() ); + sysDept.setCreateBy( arg0.getCreateBy() ); + sysDept.setCreateTime( arg0.getCreateTime() ); + sysDept.setUpdateBy( arg0.getUpdateBy() ); + sysDept.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysDept.setParams( new LinkedHashMap( map ) ); + } + sysDept.setDeptId( arg0.getDeptId() ); + sysDept.setParentId( arg0.getParentId() ); + sysDept.setDeptName( arg0.getDeptName() ); + sysDept.setDeptCategory( arg0.getDeptCategory() ); + sysDept.setOrderNum( arg0.getOrderNum() ); + sysDept.setLeader( arg0.getLeader() ); + sysDept.setPhone( arg0.getPhone() ); + sysDept.setEmail( arg0.getEmail() ); + sysDept.setStatus( arg0.getStatus() ); + + return sysDept; + } + + @Override + public SysDept convert(SysDeptBo arg0, SysDept arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setDeptId( arg0.getDeptId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setDeptCategory( arg0.getDeptCategory() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setLeader( arg0.getLeader() ); + arg1.setPhone( arg0.getPhone() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.java new file mode 100644 index 0000000..4464117 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDictData; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysDictDataBoToSysDictDataMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapperImpl.java new file mode 100644 index 0000000..cc75584 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictDataBoToSysDictDataMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDictData; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictDataBoToSysDictDataMapperImpl implements SysDictDataBoToSysDictDataMapper { + + @Override + public SysDictData convert(SysDictDataBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictData sysDictData = new SysDictData(); + + sysDictData.setSearchValue( arg0.getSearchValue() ); + sysDictData.setCreateDept( arg0.getCreateDept() ); + sysDictData.setCreateBy( arg0.getCreateBy() ); + sysDictData.setCreateTime( arg0.getCreateTime() ); + sysDictData.setUpdateBy( arg0.getUpdateBy() ); + sysDictData.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysDictData.setParams( new LinkedHashMap( map ) ); + } + sysDictData.setDictCode( arg0.getDictCode() ); + sysDictData.setDictSort( arg0.getDictSort() ); + sysDictData.setDictLabel( arg0.getDictLabel() ); + sysDictData.setDictValue( arg0.getDictValue() ); + sysDictData.setDictType( arg0.getDictType() ); + sysDictData.setCssClass( arg0.getCssClass() ); + sysDictData.setListClass( arg0.getListClass() ); + sysDictData.setIsDefault( arg0.getIsDefault() ); + sysDictData.setRemark( arg0.getRemark() ); + + return sysDictData; + } + + @Override + public SysDictData convert(SysDictDataBo arg0, SysDictData arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setDictCode( arg0.getDictCode() ); + arg1.setDictSort( arg0.getDictSort() ); + arg1.setDictLabel( arg0.getDictLabel() ); + arg1.setDictValue( arg0.getDictValue() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setCssClass( arg0.getCssClass() ); + arg1.setListClass( arg0.getListClass() ); + arg1.setIsDefault( arg0.getIsDefault() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapper.java new file mode 100644 index 0000000..6d97997 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDictType; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysDictTypeBoToSysDictTypeMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapperImpl.java new file mode 100644 index 0000000..682863c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysDictTypeBoToSysDictTypeMapperImpl.java @@ -0,0 +1,78 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDictType; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictTypeBoToSysDictTypeMapperImpl implements SysDictTypeBoToSysDictTypeMapper { + + @Override + public SysDictType convert(SysDictTypeBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictType sysDictType = new SysDictType(); + + sysDictType.setSearchValue( arg0.getSearchValue() ); + sysDictType.setCreateDept( arg0.getCreateDept() ); + sysDictType.setCreateBy( arg0.getCreateBy() ); + sysDictType.setCreateTime( arg0.getCreateTime() ); + sysDictType.setUpdateBy( arg0.getUpdateBy() ); + sysDictType.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysDictType.setParams( new LinkedHashMap( map ) ); + } + sysDictType.setDictId( arg0.getDictId() ); + sysDictType.setDictName( arg0.getDictName() ); + sysDictType.setDictType( arg0.getDictType() ); + sysDictType.setRemark( arg0.getRemark() ); + + return sysDictType; + } + + @Override + public SysDictType convert(SysDictTypeBo arg0, SysDictType arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setDictId( arg0.getDictId() ); + arg1.setDictName( arg0.getDictName() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapper.java new file mode 100644 index 0000000..a8b1ffd --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysLogininfor; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysLogininforBoToSysLogininforMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.java new file mode 100644 index 0000000..4e8016d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysLogininforBoToSysLogininforMapperImpl.java @@ -0,0 +1,60 @@ +package org.dromara.system.domain.bo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysLogininfor; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysLogininforBoToSysLogininforMapperImpl implements SysLogininforBoToSysLogininforMapper { + + @Override + public SysLogininfor convert(SysLogininforBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysLogininfor sysLogininfor = new SysLogininfor(); + + sysLogininfor.setInfoId( arg0.getInfoId() ); + sysLogininfor.setTenantId( arg0.getTenantId() ); + sysLogininfor.setUserName( arg0.getUserName() ); + sysLogininfor.setClientKey( arg0.getClientKey() ); + sysLogininfor.setDeviceType( arg0.getDeviceType() ); + sysLogininfor.setStatus( arg0.getStatus() ); + sysLogininfor.setIpaddr( arg0.getIpaddr() ); + sysLogininfor.setLoginLocation( arg0.getLoginLocation() ); + sysLogininfor.setBrowser( arg0.getBrowser() ); + sysLogininfor.setOs( arg0.getOs() ); + sysLogininfor.setMsg( arg0.getMsg() ); + sysLogininfor.setLoginTime( arg0.getLoginTime() ); + + return sysLogininfor; + } + + @Override + public SysLogininfor convert(SysLogininforBo arg0, SysLogininfor arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setInfoId( arg0.getInfoId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setIpaddr( arg0.getIpaddr() ); + arg1.setLoginLocation( arg0.getLoginLocation() ); + arg1.setBrowser( arg0.getBrowser() ); + arg1.setOs( arg0.getOs() ); + arg1.setMsg( arg0.getMsg() ); + arg1.setLoginTime( arg0.getLoginTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.java new file mode 100644 index 0000000..168c344 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysMenu; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysMenuBoToSysMenuMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapperImpl.java new file mode 100644 index 0000000..04c6d2c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysMenuBoToSysMenuMapperImpl.java @@ -0,0 +1,100 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysMenu; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysMenuBoToSysMenuMapperImpl implements SysMenuBoToSysMenuMapper { + + @Override + public SysMenu convert(SysMenuBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysMenu sysMenu = new SysMenu(); + + sysMenu.setSearchValue( arg0.getSearchValue() ); + sysMenu.setCreateDept( arg0.getCreateDept() ); + sysMenu.setCreateBy( arg0.getCreateBy() ); + sysMenu.setCreateTime( arg0.getCreateTime() ); + sysMenu.setUpdateBy( arg0.getUpdateBy() ); + sysMenu.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysMenu.setParams( new LinkedHashMap( map ) ); + } + sysMenu.setMenuId( arg0.getMenuId() ); + sysMenu.setParentId( arg0.getParentId() ); + sysMenu.setMenuName( arg0.getMenuName() ); + sysMenu.setOrderNum( arg0.getOrderNum() ); + sysMenu.setPath( arg0.getPath() ); + sysMenu.setComponent( arg0.getComponent() ); + sysMenu.setQueryParam( arg0.getQueryParam() ); + sysMenu.setIsFrame( arg0.getIsFrame() ); + sysMenu.setIsCache( arg0.getIsCache() ); + sysMenu.setMenuType( arg0.getMenuType() ); + sysMenu.setVisible( arg0.getVisible() ); + sysMenu.setStatus( arg0.getStatus() ); + sysMenu.setPerms( arg0.getPerms() ); + sysMenu.setIcon( arg0.getIcon() ); + sysMenu.setRemark( arg0.getRemark() ); + + return sysMenu; + } + + @Override + public SysMenu convert(SysMenuBo arg0, SysMenu arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setMenuId( arg0.getMenuId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setMenuName( arg0.getMenuName() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setPath( arg0.getPath() ); + arg1.setComponent( arg0.getComponent() ); + arg1.setQueryParam( arg0.getQueryParam() ); + arg1.setIsFrame( arg0.getIsFrame() ); + arg1.setIsCache( arg0.getIsCache() ); + arg1.setMenuType( arg0.getMenuType() ); + arg1.setVisible( arg0.getVisible() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setPerms( arg0.getPerms() ); + arg1.setIcon( arg0.getIcon() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.java new file mode 100644 index 0000000..acf92e4 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysNotice; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysNoticeBoToSysNoticeMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.java new file mode 100644 index 0000000..64bd84d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysNoticeBoToSysNoticeMapperImpl.java @@ -0,0 +1,82 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysNotice; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysNoticeBoToSysNoticeMapperImpl implements SysNoticeBoToSysNoticeMapper { + + @Override + public SysNotice convert(SysNoticeBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysNotice sysNotice = new SysNotice(); + + sysNotice.setSearchValue( arg0.getSearchValue() ); + sysNotice.setCreateDept( arg0.getCreateDept() ); + sysNotice.setCreateBy( arg0.getCreateBy() ); + sysNotice.setCreateTime( arg0.getCreateTime() ); + sysNotice.setUpdateBy( arg0.getUpdateBy() ); + sysNotice.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysNotice.setParams( new LinkedHashMap( map ) ); + } + sysNotice.setNoticeId( arg0.getNoticeId() ); + sysNotice.setNoticeTitle( arg0.getNoticeTitle() ); + sysNotice.setNoticeType( arg0.getNoticeType() ); + sysNotice.setNoticeContent( arg0.getNoticeContent() ); + sysNotice.setStatus( arg0.getStatus() ); + sysNotice.setRemark( arg0.getRemark() ); + + return sysNotice; + } + + @Override + public SysNotice convert(SysNoticeBo arg0, SysNotice arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setNoticeId( arg0.getNoticeId() ); + arg1.setNoticeTitle( arg0.getNoticeTitle() ); + arg1.setNoticeType( arg0.getNoticeType() ); + arg1.setNoticeContent( arg0.getNoticeContent() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapper.java new file mode 100644 index 0000000..83fb424 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.common.log.event.OperLogEvent; +import org.dromara.common.log.event.OperLogEventToSysOperLogBoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOperLogBoToSysOperLogMapper.class,OperLogEventToSysOperLogBoMapper.class}, + imports = {} +) +public interface SysOperLogBoToOperLogEventMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.java new file mode 100644 index 0000000..90b8609 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToOperLogEventMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain.bo; + +import java.util.Arrays; +import javax.annotation.processing.Generated; +import org.dromara.common.log.event.OperLogEvent; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOperLogBoToOperLogEventMapperImpl implements SysOperLogBoToOperLogEventMapper { + + @Override + public OperLogEvent convert(SysOperLogBo arg0) { + if ( arg0 == null ) { + return null; + } + + OperLogEvent operLogEvent = new OperLogEvent(); + + operLogEvent.setOperId( arg0.getOperId() ); + operLogEvent.setTenantId( arg0.getTenantId() ); + operLogEvent.setTitle( arg0.getTitle() ); + operLogEvent.setBusinessType( arg0.getBusinessType() ); + Integer[] businessTypes = arg0.getBusinessTypes(); + if ( businessTypes != null ) { + operLogEvent.setBusinessTypes( Arrays.copyOf( businessTypes, businessTypes.length ) ); + } + operLogEvent.setMethod( arg0.getMethod() ); + operLogEvent.setRequestMethod( arg0.getRequestMethod() ); + operLogEvent.setOperatorType( arg0.getOperatorType() ); + operLogEvent.setOperName( arg0.getOperName() ); + operLogEvent.setDeptName( arg0.getDeptName() ); + operLogEvent.setOperUrl( arg0.getOperUrl() ); + operLogEvent.setOperIp( arg0.getOperIp() ); + operLogEvent.setOperLocation( arg0.getOperLocation() ); + operLogEvent.setOperParam( arg0.getOperParam() ); + operLogEvent.setJsonResult( arg0.getJsonResult() ); + operLogEvent.setStatus( arg0.getStatus() ); + operLogEvent.setErrorMsg( arg0.getErrorMsg() ); + operLogEvent.setOperTime( arg0.getOperTime() ); + operLogEvent.setCostTime( arg0.getCostTime() ); + + return operLogEvent; + } + + @Override + public OperLogEvent convert(SysOperLogBo arg0, OperLogEvent arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOperId( arg0.getOperId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setTitle( arg0.getTitle() ); + arg1.setBusinessType( arg0.getBusinessType() ); + Integer[] businessTypes = arg0.getBusinessTypes(); + if ( businessTypes != null ) { + arg1.setBusinessTypes( Arrays.copyOf( businessTypes, businessTypes.length ) ); + } + else { + arg1.setBusinessTypes( null ); + } + arg1.setMethod( arg0.getMethod() ); + arg1.setRequestMethod( arg0.getRequestMethod() ); + arg1.setOperatorType( arg0.getOperatorType() ); + arg1.setOperName( arg0.getOperName() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setOperUrl( arg0.getOperUrl() ); + arg1.setOperIp( arg0.getOperIp() ); + arg1.setOperLocation( arg0.getOperLocation() ); + arg1.setOperParam( arg0.getOperParam() ); + arg1.setJsonResult( arg0.getJsonResult() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setErrorMsg( arg0.getErrorMsg() ); + arg1.setOperTime( arg0.getOperTime() ); + arg1.setCostTime( arg0.getCostTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.java new file mode 100644 index 0000000..c6085c5 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.common.log.event.OperLogEventToSysOperLogBoMapper; +import org.dromara.system.domain.SysOperLog; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOperLogBoToOperLogEventMapper.class,OperLogEventToSysOperLogBoMapper.class}, + imports = {} +) +public interface SysOperLogBoToSysOperLogMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapperImpl.java new file mode 100644 index 0000000..e7e2fb3 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOperLogBoToSysOperLogMapperImpl.java @@ -0,0 +1,72 @@ +package org.dromara.system.domain.bo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOperLog; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOperLogBoToSysOperLogMapperImpl implements SysOperLogBoToSysOperLogMapper { + + @Override + public SysOperLog convert(SysOperLogBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOperLog sysOperLog = new SysOperLog(); + + sysOperLog.setOperId( arg0.getOperId() ); + sysOperLog.setTenantId( arg0.getTenantId() ); + sysOperLog.setTitle( arg0.getTitle() ); + sysOperLog.setBusinessType( arg0.getBusinessType() ); + sysOperLog.setMethod( arg0.getMethod() ); + sysOperLog.setRequestMethod( arg0.getRequestMethod() ); + sysOperLog.setOperatorType( arg0.getOperatorType() ); + sysOperLog.setOperName( arg0.getOperName() ); + sysOperLog.setDeptName( arg0.getDeptName() ); + sysOperLog.setOperUrl( arg0.getOperUrl() ); + sysOperLog.setOperIp( arg0.getOperIp() ); + sysOperLog.setOperLocation( arg0.getOperLocation() ); + sysOperLog.setOperParam( arg0.getOperParam() ); + sysOperLog.setJsonResult( arg0.getJsonResult() ); + sysOperLog.setStatus( arg0.getStatus() ); + sysOperLog.setErrorMsg( arg0.getErrorMsg() ); + sysOperLog.setOperTime( arg0.getOperTime() ); + sysOperLog.setCostTime( arg0.getCostTime() ); + + return sysOperLog; + } + + @Override + public SysOperLog convert(SysOperLogBo arg0, SysOperLog arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOperId( arg0.getOperId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setTitle( arg0.getTitle() ); + arg1.setBusinessType( arg0.getBusinessType() ); + arg1.setMethod( arg0.getMethod() ); + arg1.setRequestMethod( arg0.getRequestMethod() ); + arg1.setOperatorType( arg0.getOperatorType() ); + arg1.setOperName( arg0.getOperName() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setOperUrl( arg0.getOperUrl() ); + arg1.setOperIp( arg0.getOperIp() ); + arg1.setOperLocation( arg0.getOperLocation() ); + arg1.setOperParam( arg0.getOperParam() ); + arg1.setJsonResult( arg0.getJsonResult() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setErrorMsg( arg0.getErrorMsg() ); + arg1.setOperTime( arg0.getOperTime() ); + arg1.setCostTime( arg0.getCostTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapper.java new file mode 100644 index 0000000..f15455c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysOss; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysOssBoToSysOssMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapperImpl.java new file mode 100644 index 0000000..9791806 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssBoToSysOssMapperImpl.java @@ -0,0 +1,82 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOss; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssBoToSysOssMapperImpl implements SysOssBoToSysOssMapper { + + @Override + public SysOss convert(SysOssBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOss sysOss = new SysOss(); + + sysOss.setSearchValue( arg0.getSearchValue() ); + sysOss.setCreateDept( arg0.getCreateDept() ); + sysOss.setCreateBy( arg0.getCreateBy() ); + sysOss.setCreateTime( arg0.getCreateTime() ); + sysOss.setUpdateBy( arg0.getUpdateBy() ); + sysOss.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysOss.setParams( new LinkedHashMap( map ) ); + } + sysOss.setOssId( arg0.getOssId() ); + sysOss.setFileName( arg0.getFileName() ); + sysOss.setOriginalName( arg0.getOriginalName() ); + sysOss.setFileSuffix( arg0.getFileSuffix() ); + sysOss.setUrl( arg0.getUrl() ); + sysOss.setService( arg0.getService() ); + + return sysOss; + } + + @Override + public SysOss convert(SysOssBo arg0, SysOss arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setOssId( arg0.getOssId() ); + arg1.setFileName( arg0.getFileName() ); + arg1.setOriginalName( arg0.getOriginalName() ); + arg1.setFileSuffix( arg0.getFileSuffix() ); + arg1.setUrl( arg0.getUrl() ); + arg1.setService( arg0.getService() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.java new file mode 100644 index 0000000..00b057c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysOssConfig; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysOssConfigBoToSysOssConfigMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.java new file mode 100644 index 0000000..cdab913 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysOssConfigBoToSysOssConfigMapperImpl.java @@ -0,0 +1,98 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOssConfig; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssConfigBoToSysOssConfigMapperImpl implements SysOssConfigBoToSysOssConfigMapper { + + @Override + public SysOssConfig convert(SysOssConfigBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOssConfig sysOssConfig = new SysOssConfig(); + + sysOssConfig.setSearchValue( arg0.getSearchValue() ); + sysOssConfig.setCreateDept( arg0.getCreateDept() ); + sysOssConfig.setCreateBy( arg0.getCreateBy() ); + sysOssConfig.setCreateTime( arg0.getCreateTime() ); + sysOssConfig.setUpdateBy( arg0.getUpdateBy() ); + sysOssConfig.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysOssConfig.setParams( new LinkedHashMap( map ) ); + } + sysOssConfig.setOssConfigId( arg0.getOssConfigId() ); + sysOssConfig.setConfigKey( arg0.getConfigKey() ); + sysOssConfig.setAccessKey( arg0.getAccessKey() ); + sysOssConfig.setSecretKey( arg0.getSecretKey() ); + sysOssConfig.setBucketName( arg0.getBucketName() ); + sysOssConfig.setPrefix( arg0.getPrefix() ); + sysOssConfig.setEndpoint( arg0.getEndpoint() ); + sysOssConfig.setDomain( arg0.getDomain() ); + sysOssConfig.setIsHttps( arg0.getIsHttps() ); + sysOssConfig.setRegion( arg0.getRegion() ); + sysOssConfig.setStatus( arg0.getStatus() ); + sysOssConfig.setExt1( arg0.getExt1() ); + sysOssConfig.setRemark( arg0.getRemark() ); + sysOssConfig.setAccessPolicy( arg0.getAccessPolicy() ); + + return sysOssConfig; + } + + @Override + public SysOssConfig convert(SysOssConfigBo arg0, SysOssConfig arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setOssConfigId( arg0.getOssConfigId() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setAccessKey( arg0.getAccessKey() ); + arg1.setSecretKey( arg0.getSecretKey() ); + arg1.setBucketName( arg0.getBucketName() ); + arg1.setPrefix( arg0.getPrefix() ); + arg1.setEndpoint( arg0.getEndpoint() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIsHttps( arg0.getIsHttps() ); + arg1.setRegion( arg0.getRegion() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setExt1( arg0.getExt1() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setAccessPolicy( arg0.getAccessPolicy() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapper.java new file mode 100644 index 0000000..0bb039d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysPost; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysPostBoToSysPostMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapperImpl.java new file mode 100644 index 0000000..d377bc9 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysPostBoToSysPostMapperImpl.java @@ -0,0 +1,86 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysPost; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysPostBoToSysPostMapperImpl implements SysPostBoToSysPostMapper { + + @Override + public SysPost convert(SysPostBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysPost sysPost = new SysPost(); + + sysPost.setSearchValue( arg0.getSearchValue() ); + sysPost.setCreateDept( arg0.getCreateDept() ); + sysPost.setCreateBy( arg0.getCreateBy() ); + sysPost.setCreateTime( arg0.getCreateTime() ); + sysPost.setUpdateBy( arg0.getUpdateBy() ); + sysPost.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysPost.setParams( new LinkedHashMap( map ) ); + } + sysPost.setPostId( arg0.getPostId() ); + sysPost.setDeptId( arg0.getDeptId() ); + sysPost.setPostCode( arg0.getPostCode() ); + sysPost.setPostName( arg0.getPostName() ); + sysPost.setPostCategory( arg0.getPostCategory() ); + sysPost.setPostSort( arg0.getPostSort() ); + sysPost.setStatus( arg0.getStatus() ); + sysPost.setRemark( arg0.getRemark() ); + + return sysPost; + } + + @Override + public SysPost convert(SysPostBo arg0, SysPost arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setPostId( arg0.getPostId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setPostCode( arg0.getPostCode() ); + arg1.setPostName( arg0.getPostName() ); + arg1.setPostCategory( arg0.getPostCategory() ); + arg1.setPostSort( arg0.getPostSort() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.java new file mode 100644 index 0000000..ba1446d --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysRole; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysRoleBoToSysRoleMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.java new file mode 100644 index 0000000..a10d3a5 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysRoleBoToSysRoleMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysRole; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysRoleBoToSysRoleMapperImpl implements SysRoleBoToSysRoleMapper { + + @Override + public SysRole convert(SysRoleBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysRole sysRole = new SysRole(); + + sysRole.setSearchValue( arg0.getSearchValue() ); + sysRole.setCreateDept( arg0.getCreateDept() ); + sysRole.setCreateBy( arg0.getCreateBy() ); + sysRole.setCreateTime( arg0.getCreateTime() ); + sysRole.setUpdateBy( arg0.getUpdateBy() ); + sysRole.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysRole.setParams( new LinkedHashMap( map ) ); + } + sysRole.setRoleId( arg0.getRoleId() ); + sysRole.setRoleName( arg0.getRoleName() ); + sysRole.setRoleKey( arg0.getRoleKey() ); + sysRole.setRoleSort( arg0.getRoleSort() ); + sysRole.setDataScope( arg0.getDataScope() ); + sysRole.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + sysRole.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + sysRole.setStatus( arg0.getStatus() ); + sysRole.setRemark( arg0.getRemark() ); + + return sysRole; + } + + @Override + public SysRole convert(SysRoleBo arg0, SysRole arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setRoleId( arg0.getRoleId() ); + arg1.setRoleName( arg0.getRoleName() ); + arg1.setRoleKey( arg0.getRoleKey() ); + arg1.setRoleSort( arg0.getRoleSort() ); + arg1.setDataScope( arg0.getDataScope() ); + arg1.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + arg1.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.java new file mode 100644 index 0000000..000b1a8 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysSocial; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysSocialBoToSysSocialMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.java new file mode 100644 index 0000000..c059134 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysSocialBoToSysSocialMapperImpl.java @@ -0,0 +1,116 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysSocial; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysSocialBoToSysSocialMapperImpl implements SysSocialBoToSysSocialMapper { + + @Override + public SysSocial convert(SysSocialBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysSocial sysSocial = new SysSocial(); + + sysSocial.setSearchValue( arg0.getSearchValue() ); + sysSocial.setCreateDept( arg0.getCreateDept() ); + sysSocial.setCreateBy( arg0.getCreateBy() ); + sysSocial.setCreateTime( arg0.getCreateTime() ); + sysSocial.setUpdateBy( arg0.getUpdateBy() ); + sysSocial.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysSocial.setParams( new LinkedHashMap( map ) ); + } + sysSocial.setTenantId( arg0.getTenantId() ); + sysSocial.setId( arg0.getId() ); + sysSocial.setUserId( arg0.getUserId() ); + sysSocial.setAuthId( arg0.getAuthId() ); + sysSocial.setSource( arg0.getSource() ); + sysSocial.setAccessToken( arg0.getAccessToken() ); + sysSocial.setExpireIn( arg0.getExpireIn() ); + sysSocial.setRefreshToken( arg0.getRefreshToken() ); + sysSocial.setOpenId( arg0.getOpenId() ); + sysSocial.setUserName( arg0.getUserName() ); + sysSocial.setNickName( arg0.getNickName() ); + sysSocial.setEmail( arg0.getEmail() ); + sysSocial.setAvatar( arg0.getAvatar() ); + sysSocial.setAccessCode( arg0.getAccessCode() ); + sysSocial.setUnionId( arg0.getUnionId() ); + sysSocial.setScope( arg0.getScope() ); + sysSocial.setTokenType( arg0.getTokenType() ); + sysSocial.setIdToken( arg0.getIdToken() ); + sysSocial.setMacAlgorithm( arg0.getMacAlgorithm() ); + sysSocial.setMacKey( arg0.getMacKey() ); + sysSocial.setCode( arg0.getCode() ); + sysSocial.setOauthToken( arg0.getOauthToken() ); + sysSocial.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + + return sysSocial; + } + + @Override + public SysSocial convert(SysSocialBo arg0, SysSocial arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setTenantId( arg0.getTenantId() ); + arg1.setId( arg0.getId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setAuthId( arg0.getAuthId() ); + arg1.setSource( arg0.getSource() ); + arg1.setAccessToken( arg0.getAccessToken() ); + arg1.setExpireIn( arg0.getExpireIn() ); + arg1.setRefreshToken( arg0.getRefreshToken() ); + arg1.setOpenId( arg0.getOpenId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setAvatar( arg0.getAvatar() ); + arg1.setAccessCode( arg0.getAccessCode() ); + arg1.setUnionId( arg0.getUnionId() ); + arg1.setScope( arg0.getScope() ); + arg1.setTokenType( arg0.getTokenType() ); + arg1.setIdToken( arg0.getIdToken() ); + arg1.setMacAlgorithm( arg0.getMacAlgorithm() ); + arg1.setMacKey( arg0.getMacKey() ); + arg1.setCode( arg0.getCode() ); + arg1.setOauthToken( arg0.getOauthToken() ); + arg1.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.java new file mode 100644 index 0000000..f1a2f20 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysTenant; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysTenantBoToSysTenantMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapperImpl.java new file mode 100644 index 0000000..9646013 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantBoToSysTenantMapperImpl.java @@ -0,0 +1,98 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysTenant; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantBoToSysTenantMapperImpl implements SysTenantBoToSysTenantMapper { + + @Override + public SysTenant convert(SysTenantBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysTenant sysTenant = new SysTenant(); + + sysTenant.setSearchValue( arg0.getSearchValue() ); + sysTenant.setCreateDept( arg0.getCreateDept() ); + sysTenant.setCreateBy( arg0.getCreateBy() ); + sysTenant.setCreateTime( arg0.getCreateTime() ); + sysTenant.setUpdateBy( arg0.getUpdateBy() ); + sysTenant.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysTenant.setParams( new LinkedHashMap( map ) ); + } + sysTenant.setId( arg0.getId() ); + sysTenant.setTenantId( arg0.getTenantId() ); + sysTenant.setContactUserName( arg0.getContactUserName() ); + sysTenant.setContactPhone( arg0.getContactPhone() ); + sysTenant.setCompanyName( arg0.getCompanyName() ); + sysTenant.setLicenseNumber( arg0.getLicenseNumber() ); + sysTenant.setAddress( arg0.getAddress() ); + sysTenant.setDomain( arg0.getDomain() ); + sysTenant.setIntro( arg0.getIntro() ); + sysTenant.setRemark( arg0.getRemark() ); + sysTenant.setPackageId( arg0.getPackageId() ); + sysTenant.setExpireTime( arg0.getExpireTime() ); + sysTenant.setAccountCount( arg0.getAccountCount() ); + sysTenant.setStatus( arg0.getStatus() ); + + return sysTenant; + } + + @Override + public SysTenant convert(SysTenantBo arg0, SysTenant arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setId( arg0.getId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setContactUserName( arg0.getContactUserName() ); + arg1.setContactPhone( arg0.getContactPhone() ); + arg1.setCompanyName( arg0.getCompanyName() ); + arg1.setLicenseNumber( arg0.getLicenseNumber() ); + arg1.setAddress( arg0.getAddress() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIntro( arg0.getIntro() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setPackageId( arg0.getPackageId() ); + arg1.setExpireTime( arg0.getExpireTime() ); + arg1.setAccountCount( arg0.getAccountCount() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.java new file mode 100644 index 0000000..b0870b9 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapper.java @@ -0,0 +1,27 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysTenantPackage; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysTenantPackageBoToSysTenantPackageMapper extends BaseMapper { + @Mapping( + target = "menuIds", + expression = "java(org.dromara.common.core.utils.StringUtils.join(source.getMenuIds(), \",\"))" + ) + SysTenantPackage convert(SysTenantPackageBo source); + + @Mapping( + target = "menuIds", + expression = "java(org.dromara.common.core.utils.StringUtils.join(source.getMenuIds(), \",\"))" + ) + SysTenantPackage convert(SysTenantPackageBo source, @MappingTarget SysTenantPackage target); +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.java new file mode 100644 index 0000000..7d728bd --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysTenantPackageBoToSysTenantPackageMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysTenantPackage; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantPackageBoToSysTenantPackageMapperImpl implements SysTenantPackageBoToSysTenantPackageMapper { + + @Override + public SysTenantPackage convert(SysTenantPackageBo source) { + if ( source == null ) { + return null; + } + + SysTenantPackage sysTenantPackage = new SysTenantPackage(); + + sysTenantPackage.setSearchValue( source.getSearchValue() ); + sysTenantPackage.setCreateDept( source.getCreateDept() ); + sysTenantPackage.setCreateBy( source.getCreateBy() ); + sysTenantPackage.setCreateTime( source.getCreateTime() ); + sysTenantPackage.setUpdateBy( source.getUpdateBy() ); + sysTenantPackage.setUpdateTime( source.getUpdateTime() ); + Map map = source.getParams(); + if ( map != null ) { + sysTenantPackage.setParams( new LinkedHashMap( map ) ); + } + sysTenantPackage.setPackageId( source.getPackageId() ); + sysTenantPackage.setPackageName( source.getPackageName() ); + sysTenantPackage.setRemark( source.getRemark() ); + sysTenantPackage.setMenuCheckStrictly( source.getMenuCheckStrictly() ); + sysTenantPackage.setStatus( source.getStatus() ); + + sysTenantPackage.setMenuIds( org.dromara.common.core.utils.StringUtils.join(source.getMenuIds(), ",") ); + + return sysTenantPackage; + } + + @Override + public SysTenantPackage convert(SysTenantPackageBo source, SysTenantPackage target) { + if ( source == null ) { + return target; + } + + target.setSearchValue( source.getSearchValue() ); + target.setCreateDept( source.getCreateDept() ); + target.setCreateBy( source.getCreateBy() ); + target.setCreateTime( source.getCreateTime() ); + target.setUpdateBy( source.getUpdateBy() ); + target.setUpdateTime( source.getUpdateTime() ); + if ( target.getParams() != null ) { + Map map = source.getParams(); + if ( map != null ) { + target.getParams().clear(); + target.getParams().putAll( map ); + } + else { + target.setParams( null ); + } + } + else { + Map map = source.getParams(); + if ( map != null ) { + target.setParams( new LinkedHashMap( map ) ); + } + } + target.setPackageId( source.getPackageId() ); + target.setPackageName( source.getPackageName() ); + target.setRemark( source.getRemark() ); + target.setMenuCheckStrictly( source.getMenuCheckStrictly() ); + target.setStatus( source.getStatus() ); + + target.setMenuIds( org.dromara.common.core.utils.StringUtils.join(source.getMenuIds(), ",") ); + + return target; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.java new file mode 100644 index 0000000..4bab795 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapper.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysUser; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {}, + imports = {} +) +public interface SysUserBoToSysUserMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapperImpl.java new file mode 100644 index 0000000..e34f145 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/bo/SysUserBoToSysUserMapperImpl.java @@ -0,0 +1,92 @@ +package org.dromara.system.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysUser; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysUserBoToSysUserMapperImpl implements SysUserBoToSysUserMapper { + + @Override + public SysUser convert(SysUserBo arg0) { + if ( arg0 == null ) { + return null; + } + + SysUser sysUser = new SysUser(); + + sysUser.setSearchValue( arg0.getSearchValue() ); + sysUser.setCreateDept( arg0.getCreateDept() ); + sysUser.setCreateBy( arg0.getCreateBy() ); + sysUser.setCreateTime( arg0.getCreateTime() ); + sysUser.setUpdateBy( arg0.getUpdateBy() ); + sysUser.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + sysUser.setParams( new LinkedHashMap( map ) ); + } + sysUser.setUserId( arg0.getUserId() ); + sysUser.setDeptId( arg0.getDeptId() ); + sysUser.setUserName( arg0.getUserName() ); + sysUser.setNickName( arg0.getNickName() ); + sysUser.setUserType( arg0.getUserType() ); + sysUser.setEmail( arg0.getEmail() ); + sysUser.setPhonenumber( arg0.getPhonenumber() ); + sysUser.setSex( arg0.getSex() ); + sysUser.setPassword( arg0.getPassword() ); + sysUser.setStatus( arg0.getStatus() ); + sysUser.setRemark( arg0.getRemark() ); + + return sysUser; + } + + @Override + public SysUser convert(SysUserBo arg0, SysUser arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setUserId( arg0.getUserId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setUserType( arg0.getUserType() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setPhonenumber( arg0.getPhonenumber() ); + arg1.setSex( arg0.getSex() ); + arg1.setPassword( arg0.getPassword() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.java new file mode 100644 index 0000000..557a27a --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysClient; +import org.dromara.system.domain.SysClientToSysClientVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysClientToSysClientVoMapper.class}, + imports = {} +) +public interface SysClientVoToSysClientMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.java new file mode 100644 index 0000000..fc7c15c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysClientVoToSysClientMapperImpl.java @@ -0,0 +1,54 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysClient; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysClientVoToSysClientMapperImpl implements SysClientVoToSysClientMapper { + + @Override + public SysClient convert(SysClientVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysClient sysClient = new SysClient(); + + sysClient.setId( arg0.getId() ); + sysClient.setClientId( arg0.getClientId() ); + sysClient.setClientKey( arg0.getClientKey() ); + sysClient.setClientSecret( arg0.getClientSecret() ); + sysClient.setGrantType( arg0.getGrantType() ); + sysClient.setDeviceType( arg0.getDeviceType() ); + sysClient.setActiveTimeout( arg0.getActiveTimeout() ); + sysClient.setTimeout( arg0.getTimeout() ); + sysClient.setStatus( arg0.getStatus() ); + + return sysClient; + } + + @Override + public SysClient convert(SysClientVo arg0, SysClient arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setClientId( arg0.getClientId() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setClientSecret( arg0.getClientSecret() ); + arg1.setGrantType( arg0.getGrantType() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setActiveTimeout( arg0.getActiveTimeout() ); + arg1.setTimeout( arg0.getTimeout() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapper.java new file mode 100644 index 0000000..f261273 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysConfig; +import org.dromara.system.domain.SysConfigToSysConfigVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysConfigToSysConfigVoMapper.class}, + imports = {} +) +public interface SysConfigVoToSysConfigMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.java new file mode 100644 index 0000000..5431684 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysConfigVoToSysConfigMapperImpl.java @@ -0,0 +1,50 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysConfig; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysConfigVoToSysConfigMapperImpl implements SysConfigVoToSysConfigMapper { + + @Override + public SysConfig convert(SysConfigVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysConfig sysConfig = new SysConfig(); + + sysConfig.setCreateTime( arg0.getCreateTime() ); + sysConfig.setConfigId( arg0.getConfigId() ); + sysConfig.setConfigName( arg0.getConfigName() ); + sysConfig.setConfigKey( arg0.getConfigKey() ); + sysConfig.setConfigValue( arg0.getConfigValue() ); + sysConfig.setConfigType( arg0.getConfigType() ); + sysConfig.setRemark( arg0.getRemark() ); + + return sysConfig; + } + + @Override + public SysConfig convert(SysConfigVo arg0, SysConfig arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setConfigId( arg0.getConfigId() ); + arg1.setConfigName( arg0.getConfigName() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setConfigValue( arg0.getConfigValue() ); + arg1.setConfigType( arg0.getConfigType() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.java new file mode 100644 index 0000000..be96648 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.SysDeptToSysDeptVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDeptToSysDeptVoMapper.class}, + imports = {} +) +public interface SysDeptVoToSysDeptMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapperImpl.java new file mode 100644 index 0000000..298c7b0 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDeptVoToSysDeptMapperImpl.java @@ -0,0 +1,58 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDept; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDeptVoToSysDeptMapperImpl implements SysDeptVoToSysDeptMapper { + + @Override + public SysDept convert(SysDeptVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDept sysDept = new SysDept(); + + sysDept.setCreateTime( arg0.getCreateTime() ); + sysDept.setDeptId( arg0.getDeptId() ); + sysDept.setParentId( arg0.getParentId() ); + sysDept.setDeptName( arg0.getDeptName() ); + sysDept.setDeptCategory( arg0.getDeptCategory() ); + sysDept.setOrderNum( arg0.getOrderNum() ); + sysDept.setLeader( arg0.getLeader() ); + sysDept.setPhone( arg0.getPhone() ); + sysDept.setEmail( arg0.getEmail() ); + sysDept.setStatus( arg0.getStatus() ); + sysDept.setAncestors( arg0.getAncestors() ); + + return sysDept; + } + + @Override + public SysDept convert(SysDeptVo arg0, SysDept arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setDeptCategory( arg0.getDeptCategory() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setLeader( arg0.getLeader() ); + arg1.setPhone( arg0.getPhone() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setAncestors( arg0.getAncestors() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.java new file mode 100644 index 0000000..36739b3 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDictData; +import org.dromara.system.domain.SysDictDataToSysDictDataVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDictDataToSysDictDataVoMapper.class}, + imports = {} +) +public interface SysDictDataVoToSysDictDataMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapperImpl.java new file mode 100644 index 0000000..4fbeba0 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictDataVoToSysDictDataMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDictData; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictDataVoToSysDictDataMapperImpl implements SysDictDataVoToSysDictDataMapper { + + @Override + public SysDictData convert(SysDictDataVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictData sysDictData = new SysDictData(); + + sysDictData.setCreateTime( arg0.getCreateTime() ); + sysDictData.setDictCode( arg0.getDictCode() ); + sysDictData.setDictSort( arg0.getDictSort() ); + sysDictData.setDictLabel( arg0.getDictLabel() ); + sysDictData.setDictValue( arg0.getDictValue() ); + sysDictData.setDictType( arg0.getDictType() ); + sysDictData.setCssClass( arg0.getCssClass() ); + sysDictData.setListClass( arg0.getListClass() ); + sysDictData.setIsDefault( arg0.getIsDefault() ); + sysDictData.setRemark( arg0.getRemark() ); + + return sysDictData; + } + + @Override + public SysDictData convert(SysDictDataVo arg0, SysDictData arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setDictCode( arg0.getDictCode() ); + arg1.setDictSort( arg0.getDictSort() ); + arg1.setDictLabel( arg0.getDictLabel() ); + arg1.setDictValue( arg0.getDictValue() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setCssClass( arg0.getCssClass() ); + arg1.setListClass( arg0.getListClass() ); + arg1.setIsDefault( arg0.getIsDefault() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.java new file mode 100644 index 0000000..18bb820 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysDictType; +import org.dromara.system.domain.SysDictTypeToSysDictTypeVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysDictTypeToSysDictTypeVoMapper.class}, + imports = {} +) +public interface SysDictTypeVoToSysDictTypeMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.java new file mode 100644 index 0000000..ccaa496 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysDictTypeVoToSysDictTypeMapperImpl.java @@ -0,0 +1,46 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysDictType; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysDictTypeVoToSysDictTypeMapperImpl implements SysDictTypeVoToSysDictTypeMapper { + + @Override + public SysDictType convert(SysDictTypeVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysDictType sysDictType = new SysDictType(); + + sysDictType.setCreateTime( arg0.getCreateTime() ); + sysDictType.setDictId( arg0.getDictId() ); + sysDictType.setDictName( arg0.getDictName() ); + sysDictType.setDictType( arg0.getDictType() ); + sysDictType.setRemark( arg0.getRemark() ); + + return sysDictType; + } + + @Override + public SysDictType convert(SysDictTypeVo arg0, SysDictType arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setDictId( arg0.getDictId() ); + arg1.setDictName( arg0.getDictName() ); + arg1.setDictType( arg0.getDictType() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.java new file mode 100644 index 0000000..e74b079 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysLogininfor; +import org.dromara.system.domain.SysLogininforToSysLogininforVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysLogininforToSysLogininforVoMapper.class}, + imports = {} +) +public interface SysLogininforVoToSysLogininforMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.java new file mode 100644 index 0000000..154240a --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysLogininforVoToSysLogininforMapperImpl.java @@ -0,0 +1,60 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysLogininfor; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysLogininforVoToSysLogininforMapperImpl implements SysLogininforVoToSysLogininforMapper { + + @Override + public SysLogininfor convert(SysLogininforVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysLogininfor sysLogininfor = new SysLogininfor(); + + sysLogininfor.setInfoId( arg0.getInfoId() ); + sysLogininfor.setTenantId( arg0.getTenantId() ); + sysLogininfor.setUserName( arg0.getUserName() ); + sysLogininfor.setClientKey( arg0.getClientKey() ); + sysLogininfor.setDeviceType( arg0.getDeviceType() ); + sysLogininfor.setStatus( arg0.getStatus() ); + sysLogininfor.setIpaddr( arg0.getIpaddr() ); + sysLogininfor.setLoginLocation( arg0.getLoginLocation() ); + sysLogininfor.setBrowser( arg0.getBrowser() ); + sysLogininfor.setOs( arg0.getOs() ); + sysLogininfor.setMsg( arg0.getMsg() ); + sysLogininfor.setLoginTime( arg0.getLoginTime() ); + + return sysLogininfor; + } + + @Override + public SysLogininfor convert(SysLogininforVo arg0, SysLogininfor arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setInfoId( arg0.getInfoId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setClientKey( arg0.getClientKey() ); + arg1.setDeviceType( arg0.getDeviceType() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setIpaddr( arg0.getIpaddr() ); + arg1.setLoginLocation( arg0.getLoginLocation() ); + arg1.setBrowser( arg0.getBrowser() ); + arg1.setOs( arg0.getOs() ); + arg1.setMsg( arg0.getMsg() ); + arg1.setLoginTime( arg0.getLoginTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.java new file mode 100644 index 0000000..7e8ce2b --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysMenu; +import org.dromara.system.domain.SysMenuToSysMenuVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysMenuToSysMenuVoMapper.class,SysMenuToSysMenuVoMapper.class}, + imports = {} +) +public interface SysMenuVoToSysMenuMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.java new file mode 100644 index 0000000..2052ea1 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysMenuVoToSysMenuMapperImpl.java @@ -0,0 +1,88 @@ +package org.dromara.system.domain.vo; + +import java.util.List; +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysMenu; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysMenuVoToSysMenuMapperImpl implements SysMenuVoToSysMenuMapper { + + @Override + public SysMenu convert(SysMenuVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysMenu sysMenu = new SysMenu(); + + sysMenu.setCreateDept( arg0.getCreateDept() ); + sysMenu.setCreateTime( arg0.getCreateTime() ); + sysMenu.setMenuId( arg0.getMenuId() ); + sysMenu.setParentId( arg0.getParentId() ); + sysMenu.setMenuName( arg0.getMenuName() ); + sysMenu.setOrderNum( arg0.getOrderNum() ); + sysMenu.setPath( arg0.getPath() ); + sysMenu.setComponent( arg0.getComponent() ); + sysMenu.setQueryParam( arg0.getQueryParam() ); + sysMenu.setIsFrame( arg0.getIsFrame() ); + sysMenu.setIsCache( arg0.getIsCache() ); + sysMenu.setMenuType( arg0.getMenuType() ); + sysMenu.setVisible( arg0.getVisible() ); + sysMenu.setStatus( arg0.getStatus() ); + sysMenu.setPerms( arg0.getPerms() ); + sysMenu.setIcon( arg0.getIcon() ); + sysMenu.setRemark( arg0.getRemark() ); + sysMenu.setChildren( convert( arg0.getChildren() ) ); + + return sysMenu; + } + + @Override + public SysMenu convert(SysMenuVo arg0, SysMenu arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setMenuId( arg0.getMenuId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setMenuName( arg0.getMenuName() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setPath( arg0.getPath() ); + arg1.setComponent( arg0.getComponent() ); + arg1.setQueryParam( arg0.getQueryParam() ); + arg1.setIsFrame( arg0.getIsFrame() ); + arg1.setIsCache( arg0.getIsCache() ); + arg1.setMenuType( arg0.getMenuType() ); + arg1.setVisible( arg0.getVisible() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setPerms( arg0.getPerms() ); + arg1.setIcon( arg0.getIcon() ); + arg1.setRemark( arg0.getRemark() ); + if ( arg1.getChildren() != null ) { + List list = convert( arg0.getChildren() ); + if ( list != null ) { + arg1.getChildren().clear(); + arg1.getChildren().addAll( list ); + } + else { + arg1.setChildren( null ); + } + } + else { + List list = convert( arg0.getChildren() ); + if ( list != null ) { + arg1.setChildren( list ); + } + } + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapper.java new file mode 100644 index 0000000..9f8c7c2 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysNotice; +import org.dromara.system.domain.SysNoticeToSysNoticeVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysNoticeToSysNoticeVoMapper.class}, + imports = {} +) +public interface SysNoticeVoToSysNoticeMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.java new file mode 100644 index 0000000..121a291 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysNoticeVoToSysNoticeMapperImpl.java @@ -0,0 +1,52 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysNotice; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysNoticeVoToSysNoticeMapperImpl implements SysNoticeVoToSysNoticeMapper { + + @Override + public SysNotice convert(SysNoticeVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysNotice sysNotice = new SysNotice(); + + sysNotice.setCreateBy( arg0.getCreateBy() ); + sysNotice.setCreateTime( arg0.getCreateTime() ); + sysNotice.setNoticeId( arg0.getNoticeId() ); + sysNotice.setNoticeTitle( arg0.getNoticeTitle() ); + sysNotice.setNoticeType( arg0.getNoticeType() ); + sysNotice.setNoticeContent( arg0.getNoticeContent() ); + sysNotice.setStatus( arg0.getStatus() ); + sysNotice.setRemark( arg0.getRemark() ); + + return sysNotice; + } + + @Override + public SysNotice convert(SysNoticeVo arg0, SysNotice arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setNoticeId( arg0.getNoticeId() ); + arg1.setNoticeTitle( arg0.getNoticeTitle() ); + arg1.setNoticeType( arg0.getNoticeType() ); + arg1.setNoticeContent( arg0.getNoticeContent() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.java new file mode 100644 index 0000000..01acc3c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysOperLog; +import org.dromara.system.domain.SysOperLogToSysOperLogVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOperLogToSysOperLogVoMapper.class}, + imports = {} +) +public interface SysOperLogVoToSysOperLogMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapperImpl.java new file mode 100644 index 0000000..7dd949b --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOperLogVoToSysOperLogMapperImpl.java @@ -0,0 +1,72 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOperLog; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOperLogVoToSysOperLogMapperImpl implements SysOperLogVoToSysOperLogMapper { + + @Override + public SysOperLog convert(SysOperLogVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOperLog sysOperLog = new SysOperLog(); + + sysOperLog.setOperId( arg0.getOperId() ); + sysOperLog.setTenantId( arg0.getTenantId() ); + sysOperLog.setTitle( arg0.getTitle() ); + sysOperLog.setBusinessType( arg0.getBusinessType() ); + sysOperLog.setMethod( arg0.getMethod() ); + sysOperLog.setRequestMethod( arg0.getRequestMethod() ); + sysOperLog.setOperatorType( arg0.getOperatorType() ); + sysOperLog.setOperName( arg0.getOperName() ); + sysOperLog.setDeptName( arg0.getDeptName() ); + sysOperLog.setOperUrl( arg0.getOperUrl() ); + sysOperLog.setOperIp( arg0.getOperIp() ); + sysOperLog.setOperLocation( arg0.getOperLocation() ); + sysOperLog.setOperParam( arg0.getOperParam() ); + sysOperLog.setJsonResult( arg0.getJsonResult() ); + sysOperLog.setStatus( arg0.getStatus() ); + sysOperLog.setErrorMsg( arg0.getErrorMsg() ); + sysOperLog.setOperTime( arg0.getOperTime() ); + sysOperLog.setCostTime( arg0.getCostTime() ); + + return sysOperLog; + } + + @Override + public SysOperLog convert(SysOperLogVo arg0, SysOperLog arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOperId( arg0.getOperId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setTitle( arg0.getTitle() ); + arg1.setBusinessType( arg0.getBusinessType() ); + arg1.setMethod( arg0.getMethod() ); + arg1.setRequestMethod( arg0.getRequestMethod() ); + arg1.setOperatorType( arg0.getOperatorType() ); + arg1.setOperName( arg0.getOperName() ); + arg1.setDeptName( arg0.getDeptName() ); + arg1.setOperUrl( arg0.getOperUrl() ); + arg1.setOperIp( arg0.getOperIp() ); + arg1.setOperLocation( arg0.getOperLocation() ); + arg1.setOperParam( arg0.getOperParam() ); + arg1.setJsonResult( arg0.getJsonResult() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setErrorMsg( arg0.getErrorMsg() ); + arg1.setOperTime( arg0.getOperTime() ); + arg1.setCostTime( arg0.getCostTime() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.java new file mode 100644 index 0000000..62ccea8 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysOssConfig; +import org.dromara.system.domain.SysOssConfigToSysOssConfigVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOssConfigToSysOssConfigVoMapper.class}, + imports = {} +) +public interface SysOssConfigVoToSysOssConfigMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.java new file mode 100644 index 0000000..3e826da --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssConfigVoToSysOssConfigMapperImpl.java @@ -0,0 +1,64 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOssConfig; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssConfigVoToSysOssConfigMapperImpl implements SysOssConfigVoToSysOssConfigMapper { + + @Override + public SysOssConfig convert(SysOssConfigVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOssConfig sysOssConfig = new SysOssConfig(); + + sysOssConfig.setOssConfigId( arg0.getOssConfigId() ); + sysOssConfig.setConfigKey( arg0.getConfigKey() ); + sysOssConfig.setAccessKey( arg0.getAccessKey() ); + sysOssConfig.setSecretKey( arg0.getSecretKey() ); + sysOssConfig.setBucketName( arg0.getBucketName() ); + sysOssConfig.setPrefix( arg0.getPrefix() ); + sysOssConfig.setEndpoint( arg0.getEndpoint() ); + sysOssConfig.setDomain( arg0.getDomain() ); + sysOssConfig.setIsHttps( arg0.getIsHttps() ); + sysOssConfig.setRegion( arg0.getRegion() ); + sysOssConfig.setStatus( arg0.getStatus() ); + sysOssConfig.setExt1( arg0.getExt1() ); + sysOssConfig.setRemark( arg0.getRemark() ); + sysOssConfig.setAccessPolicy( arg0.getAccessPolicy() ); + + return sysOssConfig; + } + + @Override + public SysOssConfig convert(SysOssConfigVo arg0, SysOssConfig arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setOssConfigId( arg0.getOssConfigId() ); + arg1.setConfigKey( arg0.getConfigKey() ); + arg1.setAccessKey( arg0.getAccessKey() ); + arg1.setSecretKey( arg0.getSecretKey() ); + arg1.setBucketName( arg0.getBucketName() ); + arg1.setPrefix( arg0.getPrefix() ); + arg1.setEndpoint( arg0.getEndpoint() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIsHttps( arg0.getIsHttps() ); + arg1.setRegion( arg0.getRegion() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setExt1( arg0.getExt1() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setAccessPolicy( arg0.getAccessPolicy() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.java new file mode 100644 index 0000000..e64ff14 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysOss; +import org.dromara.system.domain.SysOssToSysOssVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysOssToSysOssVoMapper.class}, + imports = {} +) +public interface SysOssVoToSysOssMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapperImpl.java new file mode 100644 index 0000000..4b83093 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysOssVoToSysOssMapperImpl.java @@ -0,0 +1,52 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysOss; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysOssVoToSysOssMapperImpl implements SysOssVoToSysOssMapper { + + @Override + public SysOss convert(SysOssVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysOss sysOss = new SysOss(); + + sysOss.setCreateBy( arg0.getCreateBy() ); + sysOss.setCreateTime( arg0.getCreateTime() ); + sysOss.setOssId( arg0.getOssId() ); + sysOss.setFileName( arg0.getFileName() ); + sysOss.setOriginalName( arg0.getOriginalName() ); + sysOss.setFileSuffix( arg0.getFileSuffix() ); + sysOss.setUrl( arg0.getUrl() ); + sysOss.setService( arg0.getService() ); + + return sysOss; + } + + @Override + public SysOss convert(SysOssVo arg0, SysOss arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setOssId( arg0.getOssId() ); + arg1.setFileName( arg0.getFileName() ); + arg1.setOriginalName( arg0.getOriginalName() ); + arg1.setFileSuffix( arg0.getFileSuffix() ); + arg1.setUrl( arg0.getUrl() ); + arg1.setService( arg0.getService() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.java new file mode 100644 index 0000000..545ab63 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysPost; +import org.dromara.system.domain.SysPostToSysPostVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysPostToSysPostVoMapper.class}, + imports = {} +) +public interface SysPostVoToSysPostMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.java new file mode 100644 index 0000000..b91d25b --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysPostVoToSysPostMapperImpl.java @@ -0,0 +1,54 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysPost; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysPostVoToSysPostMapperImpl implements SysPostVoToSysPostMapper { + + @Override + public SysPost convert(SysPostVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysPost sysPost = new SysPost(); + + sysPost.setCreateTime( arg0.getCreateTime() ); + sysPost.setPostId( arg0.getPostId() ); + sysPost.setDeptId( arg0.getDeptId() ); + sysPost.setPostCode( arg0.getPostCode() ); + sysPost.setPostName( arg0.getPostName() ); + sysPost.setPostCategory( arg0.getPostCategory() ); + sysPost.setPostSort( arg0.getPostSort() ); + sysPost.setStatus( arg0.getStatus() ); + sysPost.setRemark( arg0.getRemark() ); + + return sysPost; + } + + @Override + public SysPost convert(SysPostVo arg0, SysPost arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setPostId( arg0.getPostId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setPostCode( arg0.getPostCode() ); + arg1.setPostName( arg0.getPostName() ); + arg1.setPostCategory( arg0.getPostCategory() ); + arg1.setPostSort( arg0.getPostSort() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.java new file mode 100644 index 0000000..44543cc --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysRole; +import org.dromara.system.domain.SysRoleToSysRoleVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysRoleToSysRoleVoMapper.class}, + imports = {} +) +public interface SysRoleVoToSysRoleMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.java new file mode 100644 index 0000000..7f6cb3c --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysRoleVoToSysRoleMapperImpl.java @@ -0,0 +1,56 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysRole; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysRoleVoToSysRoleMapperImpl implements SysRoleVoToSysRoleMapper { + + @Override + public SysRole convert(SysRoleVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysRole sysRole = new SysRole(); + + sysRole.setCreateTime( arg0.getCreateTime() ); + sysRole.setRoleId( arg0.getRoleId() ); + sysRole.setRoleName( arg0.getRoleName() ); + sysRole.setRoleKey( arg0.getRoleKey() ); + sysRole.setRoleSort( arg0.getRoleSort() ); + sysRole.setDataScope( arg0.getDataScope() ); + sysRole.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + sysRole.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + sysRole.setStatus( arg0.getStatus() ); + sysRole.setRemark( arg0.getRemark() ); + + return sysRole; + } + + @Override + public SysRole convert(SysRoleVo arg0, SysRole arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setRoleId( arg0.getRoleId() ); + arg1.setRoleName( arg0.getRoleName() ); + arg1.setRoleKey( arg0.getRoleKey() ); + arg1.setRoleSort( arg0.getRoleSort() ); + arg1.setDataScope( arg0.getDataScope() ); + arg1.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + arg1.setDeptCheckStrictly( arg0.getDeptCheckStrictly() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.java new file mode 100644 index 0000000..697f966 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysSocial; +import org.dromara.system.domain.SysSocialToSysSocialVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysSocialToSysSocialVoMapper.class}, + imports = {} +) +public interface SysSocialVoToSysSocialMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.java new file mode 100644 index 0000000..2b3e461 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysSocialVoToSysSocialMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysSocial; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysSocialVoToSysSocialMapperImpl implements SysSocialVoToSysSocialMapper { + + @Override + public SysSocial convert(SysSocialVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysSocial sysSocial = new SysSocial(); + + sysSocial.setCreateTime( arg0.getCreateTime() ); + sysSocial.setTenantId( arg0.getTenantId() ); + sysSocial.setId( arg0.getId() ); + sysSocial.setUserId( arg0.getUserId() ); + sysSocial.setAuthId( arg0.getAuthId() ); + sysSocial.setSource( arg0.getSource() ); + sysSocial.setAccessToken( arg0.getAccessToken() ); + sysSocial.setExpireIn( arg0.getExpireIn() ); + sysSocial.setRefreshToken( arg0.getRefreshToken() ); + sysSocial.setOpenId( arg0.getOpenId() ); + sysSocial.setUserName( arg0.getUserName() ); + sysSocial.setNickName( arg0.getNickName() ); + sysSocial.setEmail( arg0.getEmail() ); + sysSocial.setAvatar( arg0.getAvatar() ); + sysSocial.setAccessCode( arg0.getAccessCode() ); + sysSocial.setUnionId( arg0.getUnionId() ); + sysSocial.setScope( arg0.getScope() ); + sysSocial.setTokenType( arg0.getTokenType() ); + sysSocial.setIdToken( arg0.getIdToken() ); + sysSocial.setMacAlgorithm( arg0.getMacAlgorithm() ); + sysSocial.setMacKey( arg0.getMacKey() ); + sysSocial.setCode( arg0.getCode() ); + sysSocial.setOauthToken( arg0.getOauthToken() ); + sysSocial.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + + return sysSocial; + } + + @Override + public SysSocial convert(SysSocialVo arg0, SysSocial arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setId( arg0.getId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setAuthId( arg0.getAuthId() ); + arg1.setSource( arg0.getSource() ); + arg1.setAccessToken( arg0.getAccessToken() ); + arg1.setExpireIn( arg0.getExpireIn() ); + arg1.setRefreshToken( arg0.getRefreshToken() ); + arg1.setOpenId( arg0.getOpenId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setAvatar( arg0.getAvatar() ); + arg1.setAccessCode( arg0.getAccessCode() ); + arg1.setUnionId( arg0.getUnionId() ); + arg1.setScope( arg0.getScope() ); + arg1.setTokenType( arg0.getTokenType() ); + arg1.setIdToken( arg0.getIdToken() ); + arg1.setMacAlgorithm( arg0.getMacAlgorithm() ); + arg1.setMacKey( arg0.getMacKey() ); + arg1.setCode( arg0.getCode() ); + arg1.setOauthToken( arg0.getOauthToken() ); + arg1.setOauthTokenSecret( arg0.getOauthTokenSecret() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapper.java new file mode 100644 index 0000000..3592348 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysTenantPackage; +import org.dromara.system.domain.SysTenantPackageToSysTenantPackageVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysTenantPackageToSysTenantPackageVoMapper.class}, + imports = {} +) +public interface SysTenantPackageVoToSysTenantPackageMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.java new file mode 100644 index 0000000..db9f29a --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantPackageVoToSysTenantPackageMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysTenantPackage; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantPackageVoToSysTenantPackageMapperImpl implements SysTenantPackageVoToSysTenantPackageMapper { + + @Override + public SysTenantPackage convert(SysTenantPackageVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysTenantPackage sysTenantPackage = new SysTenantPackage(); + + sysTenantPackage.setPackageId( arg0.getPackageId() ); + sysTenantPackage.setPackageName( arg0.getPackageName() ); + sysTenantPackage.setMenuIds( arg0.getMenuIds() ); + sysTenantPackage.setRemark( arg0.getRemark() ); + sysTenantPackage.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + sysTenantPackage.setStatus( arg0.getStatus() ); + + return sysTenantPackage; + } + + @Override + public SysTenantPackage convert(SysTenantPackageVo arg0, SysTenantPackage arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setPackageId( arg0.getPackageId() ); + arg1.setPackageName( arg0.getPackageName() ); + arg1.setMenuIds( arg0.getMenuIds() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setMenuCheckStrictly( arg0.getMenuCheckStrictly() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.java new file mode 100644 index 0000000..3f92796 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysTenant; +import org.dromara.system.domain.SysTenantToSysTenantVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysTenantToSysTenantVoMapper.class}, + imports = {} +) +public interface SysTenantVoToSysTenantMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.java new file mode 100644 index 0000000..a6b7349 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysTenantVoToSysTenantMapperImpl.java @@ -0,0 +1,64 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysTenant; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysTenantVoToSysTenantMapperImpl implements SysTenantVoToSysTenantMapper { + + @Override + public SysTenant convert(SysTenantVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysTenant sysTenant = new SysTenant(); + + sysTenant.setId( arg0.getId() ); + sysTenant.setTenantId( arg0.getTenantId() ); + sysTenant.setContactUserName( arg0.getContactUserName() ); + sysTenant.setContactPhone( arg0.getContactPhone() ); + sysTenant.setCompanyName( arg0.getCompanyName() ); + sysTenant.setLicenseNumber( arg0.getLicenseNumber() ); + sysTenant.setAddress( arg0.getAddress() ); + sysTenant.setDomain( arg0.getDomain() ); + sysTenant.setIntro( arg0.getIntro() ); + sysTenant.setRemark( arg0.getRemark() ); + sysTenant.setPackageId( arg0.getPackageId() ); + sysTenant.setExpireTime( arg0.getExpireTime() ); + sysTenant.setAccountCount( arg0.getAccountCount() ); + sysTenant.setStatus( arg0.getStatus() ); + + return sysTenant; + } + + @Override + public SysTenant convert(SysTenantVo arg0, SysTenant arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setContactUserName( arg0.getContactUserName() ); + arg1.setContactPhone( arg0.getContactPhone() ); + arg1.setCompanyName( arg0.getCompanyName() ); + arg1.setLicenseNumber( arg0.getLicenseNumber() ); + arg1.setAddress( arg0.getAddress() ); + arg1.setDomain( arg0.getDomain() ); + arg1.setIntro( arg0.getIntro() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setPackageId( arg0.getPackageId() ); + arg1.setExpireTime( arg0.getExpireTime() ); + arg1.setAccountCount( arg0.getAccountCount() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapper.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapper.java new file mode 100644 index 0000000..2a15995 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapper.java @@ -0,0 +1,16 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__2; +import io.github.linpeilie.BaseMapper; +import org.dromara.system.domain.SysRoleToSysRoleVoMapper; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.SysUserToSysUserVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__2.class, + uses = {SysRoleVoToSysRoleMapper.class,SysRoleToSysRoleVoMapper.class,SysUserToSysUserVoMapper.class}, + imports = {} +) +public interface SysUserVoToSysUserMapper extends BaseMapper { +} diff --git a/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.java b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.java new file mode 100644 index 0000000..3fe06e7 --- /dev/null +++ b/ruoyi-system/target/generated-sources/annotations/org/dromara/system/domain/vo/SysUserVoToSysUserMapperImpl.java @@ -0,0 +1,68 @@ +package org.dromara.system.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.system.domain.SysUser; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:22+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class SysUserVoToSysUserMapperImpl implements SysUserVoToSysUserMapper { + + @Override + public SysUser convert(SysUserVo arg0) { + if ( arg0 == null ) { + return null; + } + + SysUser sysUser = new SysUser(); + + sysUser.setCreateTime( arg0.getCreateTime() ); + sysUser.setTenantId( arg0.getTenantId() ); + sysUser.setUserId( arg0.getUserId() ); + sysUser.setDeptId( arg0.getDeptId() ); + sysUser.setUserName( arg0.getUserName() ); + sysUser.setNickName( arg0.getNickName() ); + sysUser.setUserType( arg0.getUserType() ); + sysUser.setEmail( arg0.getEmail() ); + sysUser.setPhonenumber( arg0.getPhonenumber() ); + sysUser.setSex( arg0.getSex() ); + sysUser.setAvatar( arg0.getAvatar() ); + sysUser.setPassword( arg0.getPassword() ); + sysUser.setStatus( arg0.getStatus() ); + sysUser.setLoginIp( arg0.getLoginIp() ); + sysUser.setLoginDate( arg0.getLoginDate() ); + sysUser.setRemark( arg0.getRemark() ); + + return sysUser; + } + + @Override + public SysUser convert(SysUserVo arg0, SysUser arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setTenantId( arg0.getTenantId() ); + arg1.setUserId( arg0.getUserId() ); + arg1.setDeptId( arg0.getDeptId() ); + arg1.setUserName( arg0.getUserName() ); + arg1.setNickName( arg0.getNickName() ); + arg1.setUserType( arg0.getUserType() ); + arg1.setEmail( arg0.getEmail() ); + arg1.setPhonenumber( arg0.getPhonenumber() ); + arg1.setSex( arg0.getSex() ); + arg1.setAvatar( arg0.getAvatar() ); + arg1.setPassword( arg0.getPassword() ); + arg1.setStatus( arg0.getStatus() ); + arg1.setLoginIp( arg0.getLoginIp() ); + arg1.setLoginDate( arg0.getLoginDate() ); + arg1.setRemark( arg0.getRemark() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/.flattened-pom.xml b/ruoyi-workflow/.flattened-pom.xml new file mode 100644 index 0000000..4d1d442 --- /dev/null +++ b/ruoyi-workflow/.flattened-pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.3.0 + + org.dromara + ruoyi-workflow + 5.3.0 + 工作流模块 + + + org.dromara + ruoyi-common-sse + + + org.dromara + ruoyi-common-doc + + + org.dromara + ruoyi-common-mail + + + org.dromara + ruoyi-common-sms + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-idempotent + + + org.dromara + ruoyi-common-excel + + + org.dromara + ruoyi-common-translation + + + org.dromara + ruoyi-common-tenant + + + org.dromara + ruoyi-common-security + + + org.dromara.warm + warm-flow-mybatis-plus-sb3-starter + + + org.dromara.warm + warm-flow-plugin-ui-sb-web + + + diff --git a/ruoyi-workflow/README.md b/ruoyi-workflow/README.md new file mode 100644 index 0000000..59096b1 --- /dev/null +++ b/ruoyi-workflow/README.md @@ -0,0 +1,3 @@ +# 工作流说明 + +工作流目前在未成熟阶段 后续仍会经历重构 甚至重写(生产使用前请慎重考虑后续是否要更新维护) \ No newline at end of file diff --git a/ruoyi-workflow/pom.xml b/ruoyi-workflow/pom.xml new file mode 100644 index 0000000..d195faf --- /dev/null +++ b/ruoyi-workflow/pom.xml @@ -0,0 +1,84 @@ + + + + org.dromara + ruoyi-modules + ${revision} + ../pom.xml + + 4.0.0 + jar + ruoyi-workflow + + + 工作流模块 + + + + + + org.dromara + ruoyi-common-sse + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-mail + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-idempotent + + + org.dromara + ruoyi-common-excel + + + org.dromara + ruoyi-common-translation + + + org.dromara + ruoyi-common-tenant + + + org.dromara + ruoyi-common-security + + + org.dromara.warm + warm-flow-mybatis-plus-sb3-starter + + + org.dromara.warm + warm-flow-plugin-ui-sb-web + + + + + diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java new file mode 100644 index 0000000..5d24b35 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java @@ -0,0 +1,14 @@ +package org.dromara.workflow.common; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.TYPE, ElementType.METHOD }) +@ConditionalOnProperty(value = "warm-flow.enabled", havingValue = "true") +public @interface ConditionalOnEnable { +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java new file mode 100644 index 0000000..1b10eb8 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java @@ -0,0 +1,66 @@ +package org.dromara.workflow.common.constant; + + +/** + * 工作流常量 + * + * @author may + */ +public interface FlowConstant { + + /** + * 流程发起人 + */ + String INITIATOR = "initiator"; + + /** + * 流程实例id + */ + String PROCESS_INSTANCE_ID = "processInstanceId"; + + /** + * 业务id + */ + String BUSINESS_ID = "businessId"; + + /** + * 任务id + */ + String TASK_ID = "taskId"; + + /** + * 委托 + */ + String DELEGATE_TASK = "delegateTask"; + + /** + * 转办 + */ + String TRANSFER_TASK = "transferTask"; + + /** + * 加签 + */ + String ADD_SIGNATURE = "addSignature"; + + /** + * 减签 + */ + String REDUCTION_SIGNATURE = "reductionSignature"; + + /** + * 流程分类Id转名称 + */ + String CATEGORY_ID_TO_NAME = "category_id_to_name"; + + /** + * 流程分类名称 + */ + String FLOW_CATEGORY_NAME = "flow_category_name#30d"; + + /** + * 默认租户OA申请分类id + */ + Long FLOW_CATEGORY_ID = 100L; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java new file mode 100644 index 0000000..0fe5cfe --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java @@ -0,0 +1,53 @@ +package org.dromara.workflow.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 消息类型枚举 + * + * @author may + */ +@Getter +@AllArgsConstructor +public enum MessageTypeEnum { + + /** + * 站内信 + */ + SYSTEM_MESSAGE("1", "站内信"), + + /** + * 邮箱 + */ + EMAIL_MESSAGE("2", "邮箱"), + + /** + * 短信 + */ + SMS_MESSAGE("3", "短信"); + + private final String code; + + private final String desc; + + private static final Map MESSAGE_TYPE_ENUM_MAP = Arrays.stream(values()) + .collect(Collectors.toConcurrentMap(MessageTypeEnum::getCode, Function.identity())); + + /** + * 根据消息类型 code 获取 MessageTypeEnum + * + * @param code 消息类型code + * @return MessageTypeEnum + */ + public static MessageTypeEnum getByCode(String code) { + return MESSAGE_TYPE_ENUM_MAP.getOrDefault(code, null); + } + +} + diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java new file mode 100644 index 0000000..60be92f --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java @@ -0,0 +1,109 @@ +package org.dromara.workflow.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.dromara.common.core.exception.ServiceException; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 任务分配人枚举 + * + * @author AprilWind + */ +@Getter +@AllArgsConstructor +public enum TaskAssigneeEnum { + + /** + * 用户 + */ + USER("用户", ""), + + /** + * 角色 + */ + ROLE("角色", "role:"), + + /** + * 部门 + */ + DEPT("部门", "dept:"), + + /** + * 岗位 + */ + POST("岗位", "post:"); + + private final String desc; + private final String code; + + /** + * 根据描述获取对应的枚举类型 + *

+ * 通过传入描述,查找并返回匹配的枚举项。如果未找到匹配项,会抛出 {@link ServiceException}。 + *

+ * + * @param desc 描述,用于匹配对应的枚举项 + * @return TaskAssigneeEnum 返回对应的枚举类型 + * @throws ServiceException 如果未找到匹配的枚举项 + */ + public static TaskAssigneeEnum fromDesc(String desc) { + for (TaskAssigneeEnum type : values()) { + if (type.getDesc().equals(desc)) { + return type; + } + } + throw new ServiceException("未知的办理人类型: " + desc); + } + + /** + * 根据代码获取对应的枚举类型 + *

+ * 通过传入代码,查找并返回匹配的枚举项。如果未找到匹配项,会抛出 {@link ServiceException}。 + *

+ * + * @param code 代码,用于匹配对应的枚举项 + * @return TaskAssigneeEnum 返回对应的枚举类型 + * @throws IllegalArgumentException 如果未找到匹配的枚举项 + */ + public static TaskAssigneeEnum fromCode(String code) { + for (TaskAssigneeEnum type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + throw new ServiceException("未知的办理人类型代码: " + code); + } + + /** + * 获取所有办理人类型的描述列表 + *

+ * 获取当前枚举类所有项的描述字段列表,通常用于展示选择项。 + *

+ * + * @return List 返回所有办理人类型的描述列表 + */ + public static List getAssigneeTypeList() { + return Arrays.stream(values()) + .map(TaskAssigneeEnum::getDesc) + .collect(Collectors.toList()); + } + + /** + * 获取所有办理人类型的代码列表 + *

+ * 获取当前枚举类所有项的代码字段列表,通常用于程序内部逻辑的判断。 + *

+ * + * @return List 返回所有办理人类型的代码列表 + */ + public static List getAssigneeCodeList() { + return Arrays.stream(values()) + .map(TaskAssigneeEnum::getCode) + .collect(Collectors.toList()); + } +} + diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java new file mode 100644 index 0000000..eed1b91 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java @@ -0,0 +1,49 @@ +package org.dromara.workflow.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 人员类型 + * + * @author AprilWind + */ +@Getter +@AllArgsConstructor +public enum TaskAssigneeType { + + /** + * 待办任务的审批人权限 + *

该权限表示用户是待办任务的审批人,负责审核任务的执行情况。

+ */ + APPROVER("1", "待办任务的审批人权限"), + + /** + * 待办任务的转办人权限 + *

该权限表示用户是待办任务的转办人,负责将任务分配给其他人员。

+ */ + TRANSFER("2", "待办任务的转办人权限"), + + /** + * 待办任务的委托人权限 + *

该权限表示用户是待办任务的委托人,能够委托其他人代为处理任务。

+ */ + DELEGATE("3", "待办任务的委托人权限"), + + /** + * 待办任务的抄送人权限 + *

该权限表示用户是待办任务的抄送人,仅接收任务信息的通知,不参与任务的审批或处理。

+ */ + COPY("4", "待办任务的抄送人权限"); + + /** + * 类型 + */ + private final String code; + + /** + * 描述 + */ + private final String description; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java new file mode 100644 index 0000000..d18ebb0 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java @@ -0,0 +1,104 @@ +package org.dromara.workflow.common.enums; + +import cn.hutool.core.util.StrUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 任务状态枚举 + * + * @author may + */ +@Getter +@AllArgsConstructor +public enum TaskStatusEnum { + + /** + * 撤销 + */ + CANCEL("cancel", "撤销"), + + /** + * 通过 + */ + PASS("pass", "通过"), + + /** + * 待审核 + */ + WAITING("waiting", "待审核"), + + /** + * 作废 + */ + INVALID("invalid", "作废"), + + /** + * 退回 + */ + BACK("back", "退回"), + + /** + * 终止 + */ + TERMINATION("termination", "终止"), + + /** + * 转办 + */ + TRANSFER("transfer", "转办"), + + /** + * 委托 + */ + DEPUTE("depute", "委托"), + + /** + * 抄送 + */ + COPY("copy", "抄送"), + + /** + * 加签 + */ + SIGN("sign", "加签"), + + /** + * 减签 + */ + SIGN_OFF("sign_off", "减签"), + + /** + * 超时 + */ + TIMEOUT("timeout", "超时"); + + /** + * 状态 + */ + private final String status; + + /** + * 描述 + */ + private final String desc; + + private static final Map STATUS_DESC_MAP = Arrays.stream(values()) + .collect(Collectors.toConcurrentMap(TaskStatusEnum::getStatus, TaskStatusEnum::getDesc)); + + /** + * 任务业务状态 + * + * @param status 状态 + */ + public static String findByStatus(String status) { + // 从缓存中直接获取描述 + return STATUS_DESC_MAP.getOrDefault(status, StrUtil.EMPTY); + } + +} + diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java new file mode 100644 index 0000000..08f1808 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java @@ -0,0 +1,16 @@ +package org.dromara.workflow.config; + +import org.dromara.workflow.common.ConditionalOnEnable; +import org.springframework.context.annotation.Configuration; + +/** + * warmFlow配置 + * + * @author may + */ +@ConditionalOnEnable +@Configuration +public class WarmFlowConfig { + +} + diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java new file mode 100644 index 0000000..37d414f --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java @@ -0,0 +1,132 @@ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.lang.tree.Tree; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +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.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.web.core.BaseController; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.FlowCategoryBo; +import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.dromara.workflow.service.IFlwCategoryService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 流程分类 + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/category") +public class FlwCategoryController extends BaseController { + + private final IFlwCategoryService flwCategoryService; + + /** + * 查询流程分类列表 + */ + @SaCheckPermission("workflow:category:list") + @GetMapping("/list") + public R> list(FlowCategoryBo bo) { + List list = flwCategoryService.queryList(bo); + return R.ok(list); + } + + /** + * 导出流程分类列表 + */ + @SaCheckPermission("workflow:category:export") + @Log(title = "流程分类", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(FlowCategoryBo bo, HttpServletResponse response) { + List list = flwCategoryService.queryList(bo); + ExcelUtil.exportExcel(list, "流程分类", FlowCategoryVo.class, response); + } + + /** + * 获取流程分类详细信息 + * + * @param categoryId 主键 + */ + @SaCheckPermission("workflow:category:query") + @GetMapping("/{categoryId}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long categoryId) { + flwCategoryService.checkCategoryDataScope(categoryId); + return R.ok(flwCategoryService.queryById(categoryId)); + } + + /** + * 新增流程分类 + */ + @SaCheckPermission("workflow:category:add") + @Log(title = "流程分类", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody FlowCategoryBo category) { + if (!flwCategoryService.checkCategoryNameUnique(category)) { + return R.fail("新增流程分类'" + category.getCategoryName() + "'失败,流程分类名称已存在"); + } + return toAjax(flwCategoryService.insertByBo(category)); + } + + /** + * 修改流程分类 + */ + @SaCheckPermission("workflow:category:edit") + @Log(title = "流程分类", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody FlowCategoryBo category) { + Long categoryId = category.getCategoryId(); + flwCategoryService.checkCategoryDataScope(categoryId); + if (!flwCategoryService.checkCategoryNameUnique(category)) { + return R.fail("修改流程分类'" + category.getCategoryName() + "'失败,流程分类名称已存在"); + } else if (category.getParentId().equals(categoryId)) { + return R.fail("修改流程分类'" + category.getCategoryName() + "'失败,上级流程分类不能是自己"); + } + return toAjax(flwCategoryService.updateByBo(category)); + } + + /** + * 删除流程分类 + * + * @param categoryId 主键 + */ + @SaCheckPermission("workflow:category:remove") + @Log(title = "流程分类", businessType = BusinessType.DELETE) + @DeleteMapping("/{categoryId}") + public R remove(@PathVariable Long categoryId) { + if (flwCategoryService.hasChildByCategoryId(categoryId)) { + return R.warn("存在下级流程分类,不允许删除"); + } + if (flwCategoryService.checkCategoryExistDefinition(categoryId)) { + return R.warn("流程分类存在流程定义,不允许删除"); + } + return toAjax(flwCategoryService.deleteWithValidById(categoryId)); + } + + /** + * 获取流程分类树列表 + * + * @param categoryBo 流程分类 + */ + @GetMapping("/categoryTree") + public R>> categoryTree(FlowCategoryBo categoryBo) { + return R.ok(flwCategoryService.selectCategoryTreeList(categoryBo)); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java new file mode 100644 index 0000000..10d9de8 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java @@ -0,0 +1,194 @@ +package org.dromara.workflow.controller; + +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +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.common.web.core.BaseController; +import org.dromara.warm.flow.core.entity.Definition; +import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.orm.entity.FlowDefinition; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.vo.FlowDefinitionVo; +import org.dromara.workflow.service.IFlwDefinitionService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 流程定义管理 控制层 + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/definition") +public class FlwDefinitionController extends BaseController { + + private final DefService defService; + private final IFlwDefinitionService flwDefinitionService; + + /** + * 查询流程定义列表 + * + * @param flowDefinition 参数 + * @param pageQuery 分页 + */ + @GetMapping("/list") + public TableDataInfo list(FlowDefinition flowDefinition, PageQuery pageQuery) { + return flwDefinitionService.queryList(flowDefinition, pageQuery); + } + + /** + * 查询未发布的流程定义列表 + * + * @param flowDefinition 参数 + * @param pageQuery 分页 + */ + @GetMapping("/unPublishList") + public TableDataInfo unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) { + return flwDefinitionService.unPublishList(flowDefinition, pageQuery); + } + + /** + * 获取流程定义详细信息 + * + * @param id 流程定义id + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable Long id) { + return R.ok(defService.getById(id)); + } + + /** + * 新增流程定义 + * + * @param flowDefinition 参数 + */ + @Log(title = "流程定义", businessType = BusinessType.INSERT) + @PostMapping + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R add(@RequestBody FlowDefinition flowDefinition) { + return R.ok(defService.checkAndSave(flowDefinition)); + } + + /** + * 修改流程定义 + * + * @param flowDefinition 参数 + */ + @Log(title = "流程定义", businessType = BusinessType.UPDATE) + @PutMapping + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R edit(@RequestBody FlowDefinition flowDefinition) { + return R.ok(defService.updateById(flowDefinition)); + } + + /** + * 发布流程定义 + * + * @param id 流程定义id + */ + @Log(title = "流程定义", businessType = BusinessType.INSERT) + @PutMapping("/publish/{id}") + @RepeatSubmit() + public R publish(@PathVariable Long id) { + return R.ok(flwDefinitionService.publish(id)); + } + + /** + * 取消发布流程定义 + * + * @param id 流程定义id + */ + @Log(title = "流程定义", businessType = BusinessType.INSERT) + @PutMapping("/unPublish/{id}") + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R unPublish(@PathVariable Long id) { + return R.ok(defService.unPublish(id)); + } + + /** + * 删除流程定义 + */ + @Log(title = "流程定义", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable List ids) { + return toAjax(flwDefinitionService.removeDef(ids)); + } + + /** + * 复制流程定义 + * + * @param id 流程定义id + */ + @Log(title = "流程定义", businessType = BusinessType.INSERT) + @PostMapping("/copy/{id}") + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R copy(@PathVariable Long id) { + return R.ok(defService.copyDef(id)); + } + + /** + * 导入流程定义 + * + * @param file 文件 + * @param category 分类 + */ + @Log(title = "流程定义", businessType = BusinessType.IMPORT) + @PostMapping("/importDef") + public R importDef(MultipartFile file, String category) { + return R.ok(flwDefinitionService.importJson(file, category)); + } + + /** + * 导出流程定义 + * + * @param id 流程定义id + * @param response 响应 + * @throws IOException 异常 + */ + @Log(title = "流程定义", businessType = BusinessType.EXPORT) + @PostMapping("/exportDef/{id}") + public void exportDef(@PathVariable Long id, HttpServletResponse response) throws IOException { + flwDefinitionService.exportDef(id, response); + } + + /** + * 获取流程定义JSON字符串 + * + * @param id 流程定义id + */ + @GetMapping("/xmlString/{id}") + public R xmlString(@PathVariable Long id) { + return R.ok("操作成功", defService.exportJson(id)); + } + + /** + * 激活/挂起流程定义 + * + * @param id 流程定义id + * @param active 激活/挂起 + */ + @RepeatSubmit() + @PutMapping("/active/{id}") + @Transactional(rollbackFor = Exception.class) + public R active(@PathVariable Long id, @RequestParam boolean active) { + return R.ok(active ? defService.active(id) : defService.unActive(id)); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java new file mode 100644 index 0000000..ae99c16 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java @@ -0,0 +1,157 @@ +package org.dromara.workflow.controller; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +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.common.web.core.BaseController; +import org.dromara.warm.flow.core.service.InsService; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.FlowCancelBo; +import org.dromara.workflow.domain.bo.FlowInstanceBo; +import org.dromara.workflow.domain.bo.FlowInvalidBo; +import org.dromara.workflow.domain.vo.FlowInstanceVo; +import org.dromara.workflow.service.IFlwInstanceService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 流程实例管理 控制层 + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/instance") +public class FlwInstanceController extends BaseController { + + private final InsService insService; + private final IFlwInstanceService flwInstanceService; + + /** + * 查询正在运行的流程实例列表 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + */ + @GetMapping("/pageByRunning") + public TableDataInfo selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) { + return flwInstanceService.selectRunningInstanceList(flowInstanceBo, pageQuery); + } + + /** + * 查询已结束的流程实例列表 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + */ + @GetMapping("/pageByFinish") + public TableDataInfo selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) { + return flwInstanceService.selectFinishInstanceList(flowInstanceBo, pageQuery); + } + + /** + * 根据业务id查询流程实例详细信息 + * + * @param businessId 业务id + */ + @GetMapping("/getInfo/{businessId}") + public R getInfo(@PathVariable Long businessId) { + return R.ok(flwInstanceService.queryByBusinessId(businessId)); + } + + /** + * 按照业务id删除流程实例 + * + * @param businessIds 业务id + */ + @DeleteMapping("/deleteByBusinessIds/{businessIds}") + public R deleteByBusinessIds(@PathVariable List businessIds) { + return toAjax(flwInstanceService.deleteByBusinessIds(businessIds)); + } + + /** + * 按照实例id删除流程实例 + * + * @param instanceIds 实例id + */ + @DeleteMapping("/deleteByInstanceIds/{instanceIds}") + public R deleteByInstanceIds(@PathVariable List instanceIds) { + return toAjax(flwInstanceService.deleteByInstanceIds(instanceIds)); + } + + /** + * 撤销流程 + * + * @param bo 参数 + */ + @RepeatSubmit() + @PutMapping("/cancelProcessApply") + public R cancelProcessApply(@RequestBody FlowCancelBo bo) { + return toAjax(flwInstanceService.cancelProcessApply(bo)); + } + + /** + * 激活/挂起流程实例 + * + * @param id 流程实例id + * @param active 激活/挂起 + */ + @RepeatSubmit() + @PutMapping("/active/{id}") + public R active(@PathVariable Long id, @RequestParam boolean active) { + return R.ok(active ? insService.active(id) : insService.unActive(id)); + } + + /** + * 获取当前登陆人发起的流程实例 + * + * @param flowInstanceBo 参数 + * @param pageQuery 分页 + */ + @GetMapping("/pageByCurrent") + public TableDataInfo selectCurrentInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) { + return flwInstanceService.selectCurrentInstanceList(flowInstanceBo, pageQuery); + } + + /** + * 获取流程图,流程记录 + * + * @param businessId 业务id + */ + @GetMapping("/flowImage/{businessId}") + public R> flowImage(@PathVariable String businessId) { + return R.ok(flwInstanceService.flowImage(businessId)); + } + + /** + * 获取流程变量 + * + * @param instanceId 流程实例id + */ + @GetMapping("/instanceVariable/{instanceId}") + public R> instanceVariable(@PathVariable Long instanceId) { + return R.ok(flwInstanceService.instanceVariable(instanceId)); + } + + /** + * 作废流程 + * + * @param bo 参数 + */ + @Log(title = "流程实例管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/invalid") + public R invalid(@Validated @RequestBody FlowInvalidBo bo) { + return R.ok(flwInstanceService.processInvalid(bo)); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java new file mode 100644 index 0000000..463916b --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java @@ -0,0 +1,201 @@ +package org.dromara.workflow.controller; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.dto.StartProcessReturnDTO; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.validate.AddGroup; +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.common.web.core.BaseController; +import org.dromara.warm.flow.core.entity.Node; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.*; +import org.dromara.workflow.domain.vo.FlowHisTaskVo; +import org.dromara.workflow.domain.vo.FlowTaskVo; +import org.dromara.workflow.service.IFlwTaskService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 任务管理 控制层 + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/task") +public class FlwTaskController extends BaseController { + + private final IFlwTaskService flwTaskService; + + /** + * 启动任务 + * + * @param startProcessBo 启动流程参数 + */ + @Log(title = "任务管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/startWorkFlow") + public R startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) { + StartProcessReturnDTO startProcessReturn = flwTaskService.startWorkFlow(startProcessBo); + return R.ok("提交成功", startProcessReturn); + } + + /** + * 办理任务 + * + * @param completeTaskBo 办理任务参数 + */ + @Log(title = "任务管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/completeTask") + public R completeTask(@Validated(AddGroup.class) @RequestBody CompleteTaskBo completeTaskBo) { + return toAjax(flwTaskService.completeTask(completeTaskBo)); + } + + /** + * 查询当前用户的待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @GetMapping("/pageByTaskWait") + public TableDataInfo pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + return flwTaskService.pageByTaskWait(flowTaskBo, pageQuery); + } + + /** + * 查询当前用户的已办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + + @GetMapping("/pageByTaskFinish") + public TableDataInfo pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + return flwTaskService.pageByTaskFinish(flowTaskBo, pageQuery); + } + + /** + * 查询待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @GetMapping("/pageByAllTaskWait") + public TableDataInfo pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + return flwTaskService.pageByAllTaskWait(flowTaskBo, pageQuery); + } + + /** + * 查询已办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @GetMapping("/pageByAllTaskFinish") + public TableDataInfo pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + return flwTaskService.pageByAllTaskFinish(flowTaskBo, pageQuery); + } + + /** + * 查询当前用户的抄送 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @GetMapping("/pageByTaskCopy") + public TableDataInfo pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + return flwTaskService.pageByTaskCopy(flowTaskBo, pageQuery); + } + + /** + * 根据taskId查询代表任务 + * + * @param taskId 任务id + */ + @GetMapping("/getTask/{taskId}") + public R getTask(@PathVariable Long taskId) { + return R.ok(flwTaskService.selectById(taskId)); + } + + /** + * 终止任务 + * + * @param bo 参数 + */ + @Log(title = "任务管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/terminationTask") + public R terminationTask(@RequestBody FlowTerminationBo bo) { + return R.ok(flwTaskService.terminationTask(bo)); + } + + /** + * 任务操作 + * + * @param bo 参数 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature + */ + @Log(title = "任务管理", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PostMapping("/taskOperation/{taskOperation}") + public R taskOperation(@Validated @RequestBody TaskOperationBo bo, @PathVariable String taskOperation) { + return toAjax(flwTaskService.taskOperation(bo, taskOperation)); + } + + /** + * 修改任务办理人 + * + * @param taskIdList 任务id + * @param userId 办理人id + */ + @Log(title = "任务管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/updateAssignee/{userId}") + public R updateAssignee(@RequestBody List taskIdList, @PathVariable String userId) { + return toAjax(flwTaskService.updateAssignee(taskIdList, userId)); + } + + /** + * 驳回审批 + * + * @param bo 参数 + */ + @Log(title = "任务管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/backProcess") + public R backProcess(@Validated({AddGroup.class}) @RequestBody BackProcessBo bo) { + return toAjax(flwTaskService.backProcess(bo)); + } + + /** + * 获取可驳回的前置节点 + * + * @param definitionId 流程定义id + * @param nowNodeCode 当前节点 + */ + @GetMapping("/getBackTaskNode/{definitionId}/{nowNodeCode}") + public R> getBackTaskNode(@PathVariable Long definitionId, @PathVariable String nowNodeCode) { + return R.ok(flwTaskService.getBackTaskNode(definitionId, nowNodeCode)); + } + + /** + * 获取当前任务的所有办理人 + * + * @param taskId 任务id + */ + @GetMapping("/currentTaskAllUser/{taskId}") + public R> currentTaskAllUser(@PathVariable Long taskId) { + return R.ok(flwTaskService.currentTaskAllUser(taskId)); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java new file mode 100644 index 0000000..98825d9 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java @@ -0,0 +1,108 @@ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +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.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.common.web.core.BaseController; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.TestLeaveBo; +import org.dromara.workflow.domain.vo.TestLeaveVo; +import org.dromara.workflow.service.ITestLeaveService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 请假 + * + * @author may + * @date 2023-07-21 + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/leave") +public class TestLeaveController extends BaseController { + + private final ITestLeaveService testLeaveService; + + /** + * 查询请假列表 + */ + @SaCheckPermission("workflow:leave:list") + @GetMapping("/list") + public TableDataInfo list(TestLeaveBo bo, PageQuery pageQuery) { + return testLeaveService.queryPageList(bo, pageQuery); + } + + /** + * 导出请假列表 + */ + @SaCheckPermission("workflow:leave:export") + @Log(title = "请假", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(TestLeaveBo bo, HttpServletResponse response) { + List list = testLeaveService.queryList(bo); + ExcelUtil.exportExcel(list, "请假", TestLeaveVo.class, response); + } + + /** + * 获取请假详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("workflow:leave:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(testLeaveService.queryById(id)); + } + + /** + * 新增请假 + */ + @SaCheckPermission("workflow:leave:add") + @Log(title = "请假", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody TestLeaveBo bo) { + return R.ok(testLeaveService.insertByBo(bo)); + } + + /** + * 修改请假 + */ + @SaCheckPermission("workflow:leave:edit") + @Log(title = "请假", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TestLeaveBo bo) { + return R.ok(testLeaveService.updateByBo(bo)); + } + + /** + * 删除请假 + * + * @param ids 主键串 + */ + @SaCheckPermission("workflow:leave:remove") + @Log(title = "请假", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(testLeaveService.deleteWithValidByIds(List.of(ids))); + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java new file mode 100644 index 0000000..86ac1ac --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java @@ -0,0 +1,58 @@ +package org.dromara.workflow.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * 流程分类对象 wf_category + * + * @author may + * @date 2023-06-27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("flow_category") +public class FlowCategory extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程分类ID + */ + @TableId(value = "category_id") + private Long categoryId; + + /** + * 父流程分类id + */ + private Long parentId; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 流程分类名称 + */ + private String categoryName; + + /** + * 显示顺序 + */ + private Long orderNum; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java new file mode 100644 index 0000000..7d42a9b --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java @@ -0,0 +1,63 @@ +package org.dromara.workflow.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 请假对象 test_leave + * + * @author may + * @date 2023-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("test_leave") +public class TestLeave extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 请假类型 + */ + private String leaveType; + + /** + * 开始时间 + */ + private Date startDate; + + /** + * 结束时间 + */ + private Date endDate; + + /** + * 请假天数 + */ + private Integer leaveDays; + + /** + * 请假原因 + */ + private String remark; + + /** + * 状态 + */ + private String status; + + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java new file mode 100644 index 0000000..3117a33 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java @@ -0,0 +1,71 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + + +/** + * 驳回参数请求 + * + * @author may + */ +@Data +public class BackProcessBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @NotNull(message = "任务ID不能为空", groups = AddGroup.class) + private Long taskId; + + /** + * 附件id + */ + private String fileId; + + /** + * 消息类型 + */ + private List messageType; + + /** + * 驳回的节点id(目前未使用,直接驳回到申请人) + */ + @NotBlank(message = "驳回的节点不能为空", groups = AddGroup.class) + private String nodeCode; + + /** + * 办理意见 + */ + private String message; + + /** + * 通知 + */ + private String notice; + + /** + * 流程变量 + */ + private Map variables; + + public Map getVariables() { + if (variables == null) { + return new HashMap<>(16); + } + variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue())); + return variables; + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java new file mode 100644 index 0000000..9fdf484 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java @@ -0,0 +1,75 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 办理任务请求对象 + * + * @author may + */ +@Data +public class CompleteTaskBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务id + */ + @NotNull(message = "任务id不能为空", groups = {AddGroup.class}) + private Long taskId; + + /** + * 附件id + */ + private String fileId; + + /** + * 抄送人员 + */ + private List flowCopyList; + + /** + * 消息类型 + */ + private List messageType; + + /** + * 办理意见 + */ + private String message; + + /** + * 消息通知 + */ + private String notice; + + /** + * 流程变量 + */ + private Map variables; + + /** + * 扩展变量(此处为逗号分隔的ossId) + * @return + */ + private String ext; + + public Map getVariables() { + if (variables == null) { + return new HashMap<>(16); + } + variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue())); + return variables; + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java new file mode 100644 index 0000000..31742ea --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java @@ -0,0 +1,31 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 撤销任务请求对象 + * + * @author may + */ +@Data +public class FlowCancelBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @NotBlank(message = "业务ID不能为空", groups = AddGroup.class) + private String businessId; + + /** + * 办理意见 + */ + private String message; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java new file mode 100644 index 0000000..fd626eb --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java @@ -0,0 +1,47 @@ +package org.dromara.workflow.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.workflow.domain.FlowCategory; + +/** + * 流程分类业务对象 wf_category + * + * @author may + * @date 2023-06-27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = FlowCategory.class, reverseConvertGenerate = false) +public class FlowCategoryBo extends BaseEntity { + + /** + * 流程分类ID + */ + @NotNull(message = "流程分类ID不能为空", groups = { EditGroup.class }) + private Long categoryId; + + /** + * 父流程分类id + */ + @NotNull(message = "父流程分类id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long parentId; + + /** + * 流程分类名称 + */ + @NotBlank(message = "流程分类名称不能为空", groups = {AddGroup.class, EditGroup.class}) + private String categoryName; + + /** + * 显示顺序 + */ + private Long orderNum; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java new file mode 100644 index 0000000..a45e521 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java @@ -0,0 +1,30 @@ +package org.dromara.workflow.domain.bo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 抄送 + * + * @author may + */ +@Data +public class FlowCopyBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java new file mode 100644 index 0000000..fb1fe61 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java @@ -0,0 +1,55 @@ +package org.dromara.workflow.domain.bo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * 流程实例请求对象 + * + * @author may + */ +@Data +public class FlowInstanceBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 任务发起人 + */ + private String startUserId; + + /** + * 业务id + */ + private String businessId; + + /** + * 流程分类id + */ + private String category; + + /** + * 任务名称 + */ + private String nodeName; + + /** + * 申请人Ids + */ + private List createByIds; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java new file mode 100644 index 0000000..297bd00 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java @@ -0,0 +1,31 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 作废请求对象 + * + * @author may + */ +@Data +public class FlowInvalidBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程实例id + */ + @NotNull(message = "流程实例id为空", groups = AddGroup.class) + private Long id; + + /** + * 审批意见 + */ + private String comment; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java new file mode 100644 index 0000000..64dd082 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java @@ -0,0 +1,55 @@ +package org.dromara.workflow.domain.bo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * 任务请求对象 + * + * @author may + */ +@Data +public class FlowTaskBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务名称 + */ + private String nodeName; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 流程分类id + */ + private String category; + + /** + * 流程实例id + */ + private Long instanceId; + + /** + * 权限列表 + */ + private List permissionList; + + /** + * 申请人Ids + */ + private List createByIds; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java new file mode 100644 index 0000000..897fc21 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java @@ -0,0 +1,31 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 终止任务请求对象 + * + * @author may + */ +@Data +public class FlowTerminationBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务id + */ + @NotNull(message = "任务id为空", groups = AddGroup.class) + private Long taskId; + + /** + * 审批意见 + */ + private String comment; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java new file mode 100644 index 0000000..ea21a81 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java @@ -0,0 +1,49 @@ +package org.dromara.workflow.domain.bo; + + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * 启动流程对象 + * + * @author may + */ +@Data +public class StartProcessBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 业务唯一值id + */ + @NotBlank(message = "业务ID不能为空", groups = {AddGroup.class}) + private String businessId; + + /** + * 流程定义编码 + */ + @NotBlank(message = "流程定义编码不能为空", groups = {AddGroup.class}) + private String flowCode; + + /** + * 流程变量,前端会提交一个元素{'entity': {业务详情数据对象}} + */ + private Map variables; + + public Map getVariables() { + if (variables == null) { + return new HashMap<>(16); + } + variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue())); + return variables; + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java new file mode 100644 index 0000000..4348e31 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java @@ -0,0 +1,48 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 任务操作业务对象,用于描述任务委派、转办、加签等操作的必要参数 + * 包含了用户ID、任务ID、任务相关的消息、以及加签/减签的用户ID + * + * @author AprilWind + */ +@Data +public class TaskOperationBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 委派/转办人的用户ID(必填,准对委派/转办人操作) + */ + @NotNull(message = "委派/转办人id不能为空", groups = {AddGroup.class}) + private String userId; + + /** + * 加签/减签人的用户ID列表(必填,针对加签/减签操作) + */ + @NotNull(message = "加签/减签id不能为空", groups = {EditGroup.class}) + private List userIds; + + /** + * 任务ID(必填) + */ + @NotNull(message = "任务id不能为空") + private Long taskId; + + /** + * 意见或备注信息(可选) + */ + private String message; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java new file mode 100644 index 0000000..a1a4b59 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java @@ -0,0 +1,79 @@ +package org.dromara.workflow.domain.bo; + +import com.fasterxml.jackson.annotation.JsonFormat; +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.workflow.domain.TestLeave; + +import java.util.Date; + +/** + * 请假业务对象 test_leave + * + * @author may + * @date 2023-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = TestLeave.class, reverseConvertGenerate = false) +public class TestLeaveBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + private Long id; + + /** + * 请假类型 + */ + @NotBlank(message = "请假类型不能为空", groups = {AddGroup.class, EditGroup.class}) + private String leaveType; + + /** + * 开始时间 + */ + @NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class}) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date startDate; + + /** + * 结束时间 + */ + @NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class}) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date endDate; + + /** + * 请假天数 + */ + private Integer leaveDays; + + /** + * 开始时间 + */ + private Integer startLeaveDays; + + /** + * 结束时间 + */ + private Integer endLeaveDays; + + /** + * 请假原因 + */ + private String remark; + + /** + * 状态 + */ + private String status; + + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java new file mode 100644 index 0000000..c5d2785 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java @@ -0,0 +1,67 @@ +package org.dromara.workflow.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.workflow.domain.FlowCategory; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 流程分类视图对象 wf_category + * + * @author may + * @date 2023-06-27 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = FlowCategory.class) +public class FlowCategoryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程分类ID + */ + @ExcelProperty(value = "流程分类ID") + private Long categoryId; + + /** + * 父级id + */ + private Long parentId; + + /** + * 父类别名称 + */ + private String parentName; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 流程分类名称 + */ + @ExcelProperty(value = "流程分类名称") + private String categoryName; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "显示顺序") + private Long orderNum; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java new file mode 100644 index 0000000..aef7573 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java @@ -0,0 +1,104 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.workflow.common.constant.FlowConstant; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 流程定义视图 + * + * @author may + */ +@Data +public class FlowDefinitionVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 删除标记 + */ + private String delFlag; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 流程分类id + */ + private String category; + + /** + * 流程分类名称 + */ + @Translation(type = FlowConstant.CATEGORY_ID_TO_NAME, mapper = "category") + private String categoryName; + + /** + * 流程版本 + */ + private String version; + + /** + * 是否发布(0未发布 1已发布 9失效) + */ + private Integer isPublish; + + /** + * 审批表单是否自定义(Y是 N否) + */ + private String formCustom; + + /** + * 审批表单路径 + */ + private String formPath; + + /** + * 流程激活状态(0挂起 1激活) + */ + private Integer activityStatus; + + /** + * 监听器类型 + */ + private String listenerType; + + /** + * 监听器路径 + */ + private String listenerPath; + + /** + * 扩展字段,预留给业务系统使用 + */ + private String ext; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java new file mode 100644 index 0000000..8776a76 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java @@ -0,0 +1,244 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.warm.flow.core.enums.CooperateType; +import org.dromara.workflow.common.constant.FlowConstant; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 历史任务视图 + * + * @author may + */ +@Data +public class FlowHisTaskVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 删除标记 + */ + private String delFlag; + + /** + * 对应flow_definition表的id + */ + private Long definitionId; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 流程实例表id + */ + private Long instanceId; + + /** + * 任务表id + */ + private Long taskId; + + /** + * 协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签) + */ + private Integer cooperateType; + + /** + * 协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签) + */ + private String cooperateTypeName; + + /** + * 业务id + */ + private String businessId; + + /** + * 开始节点编码 + */ + private String nodeCode; + + /** + * 开始节点名称 + */ + private String nodeName; + + /** + * 开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关) + */ + private Integer nodeType; + + /** + * 目标节点编码 + */ + private String targetNodeCode; + + /** + * 结束节点名称 + */ + private String targetNodeName; + + /** + * 审批者 + */ + private String approver; + + /** + * 审批者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approver") + private String approveName; + + /** + * 协作人(只有转办、会签、票签、委派) + */ + private String collaborator; + + /** + * 权限标识 permissionFlag的list形式 + */ + private List permissionList; + + /** + * 跳转类型(PASS通过 REJECT退回 NONE无动作) + */ + private String skipType; + + /** + * 流程状态 + */ + private String flowStatus; + + /** + * 任务状态 + */ + private String flowTaskStatus; + + /** + * 流程状态 + */ + private String flowStatusName; + + /** + * 审批意见 + */ + private String message; + + /** + * 业务详情 存业务类的json + */ + private String ext; + + /** + * 创建者 + */ + private String createBy; + + /** + * 申请人 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createByName; + + /** + * 流程分类id + */ + private String category; + + /** + * 流程分类名称 + */ + @Translation(type = FlowConstant.CATEGORY_ID_TO_NAME, mapper = "category") + private String categoryName; + + /** + * 审批表单是否自定义(Y是 N否) + */ + private String formCustom; + + /** + * 审批表单路径 + */ + private String formPath; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 流程版本号 + */ + private String version; + + /** + * 运行时长 + */ + private String runDuration; + + /** + * 设置创建时间并计算任务运行时长 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + updateRunDuration(); + } + + /** + * 设置更新时间并计算任务运行时长 + * + * @param updateTime 更新时间 + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + updateRunDuration(); + } + + /** + * 更新运行时长 + */ + private void updateRunDuration() { + // 如果创建时间和更新时间均不为空,计算它们之间的时长 + if (this.updateTime != null && this.createTime != null) { + this.runDuration = DateUtils.getTimeDifference(this.updateTime, this.createTime); + } + } + + /** + * 设置协作方式,并通过协作方式获取名称 + */ + public void setCooperateType(Integer cooperateType) { + this.cooperateType = cooperateType; + this.cooperateTypeName = CooperateType.getValueByKey(cooperateType); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java new file mode 100644 index 0000000..75543f4 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java @@ -0,0 +1,137 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.workflow.common.constant.FlowConstant; + +import java.util.Date; + +/** + * 流程实例视图 + * + * @author may + */ +@Data +public class FlowInstanceVo { + + private Long id; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 删除标记 + */ + private String delFlag; + + /** + * 对应flow_definition表的id + */ + private Long definitionId; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 业务id + */ + private String businessId; + + /** + * 节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关) + */ + private Integer nodeType; + + /** + * 流程节点编码 每个流程的nodeCode是唯一的,即definitionId+nodeCode唯一,在数据库层面做了控制 + */ + private String nodeCode; + + /** + * 流程节点名称 + */ + private String nodeName; + + /** + * 流程变量 + */ + private String variable; + + /** + * 流程状态(0待提交 1审批中 2 审批通过 3自动通过 8已完成 9已退回 10失效) + */ + private String flowStatus; + + /** + * 流程状态 + */ + private String flowStatusName; + + /** + * 流程激活状态(0挂起 1激活) + */ + private Integer activityStatus; + + /** + * 审批表单是否自定义(Y是 N否) + */ + private String formCustom; + + /** + * 审批表单路径 + */ + private String formPath; + + /** + * 扩展字段,预留给业务系统使用 + */ + private String ext; + + /** + * 流程定义版本 + */ + private String version; + + /** + * 创建者 + */ + private String createBy; + + /** + * 申请人 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createByName; + + /** + * 流程分类id + */ + private String category; + + /** + * 流程分类名称 + */ + @Translation(type = FlowConstant.CATEGORY_ID_TO_NAME, mapper = "category") + private String categoryName; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java new file mode 100644 index 0000000..3fb08d9 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java @@ -0,0 +1,176 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.warm.flow.core.entity.User; +import org.dromara.workflow.common.constant.FlowConstant; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 任务视图 + * + * @author may + */ +@Data +public class FlowTaskVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 删除标记 + */ + private String delFlag; + + /** + * 对应flow_definition表的id + */ + private Long definitionId; + + /** + * 流程实例表id + */ + private Long instanceId; + + /** + * 流程定义名称 + */ + private String flowName; + + /** + * 业务id + */ + private String businessId; + + /** + * 节点编码 + */ + private String nodeCode; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关) + */ + private Integer nodeType; + + /** + * 权限标识 permissionFlag的list形式 + */ + private List permissionList; + + /** + * 流程用户列表 + */ + private List userList; + + /** + * 审批表单是否自定义(Y是 N否) + */ + private String formCustom; + + /** + * 审批表单 + */ + private String formPath; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 流程版本号 + */ + private String version; + + /** + * 流程状态 + */ + private String flowStatus; + + /** + * 流程分类id + */ + private String category; + + /** + * 流程分类名称 + */ + @Translation(type = FlowConstant.CATEGORY_ID_TO_NAME, mapper = "category") + private String categoryName; + + /** + * 流程状态 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "flowStatus", other = "wf_business_status") + private String flowStatusName; + + /** + * 办理人类型 + */ + private String type; + + /** + * 办理人ids + */ + private String assigneeIds; + + /** + * 办理人名称 + */ + private String assigneeNames; + + /** + * 抄送人id + */ + private String processedBy; + + /** + * 抄送人名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "processedBy") + private String processedByName; + + /** + * 流程签署比例值 大于0为票签,会签 + */ + private BigDecimal nodeRatio; + + /** + * 申请人id + */ + private String createBy; + + /** + * 申请人名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createByName; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowVariableVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowVariableVo.java new file mode 100644 index 0000000..b4de76e --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowVariableVo.java @@ -0,0 +1,28 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 流程变量 + * + * @author may + */ +@Data +public class FlowVariableVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 变量key + */ + private String key; + + /** + * 变量值 + */ + private String value; +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java new file mode 100644 index 0000000..47886d7 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java @@ -0,0 +1,70 @@ +package org.dromara.workflow.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.workflow.domain.TestLeave; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 请假视图对象 test_leave + * + * @author may + * @date 2023-07-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = TestLeave.class) +public class TestLeaveVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 请假类型 + */ + @ExcelProperty(value = "请假类型") + private String leaveType; + + /** + * 开始时间 + */ + @ExcelProperty(value = "开始时间") + private Date startDate; + + /** + * 结束时间 + */ + @ExcelProperty(value = "结束时间") + private Date endDate; + + /** + * 请假天数 + */ + @ExcelProperty(value = "请假天数") + private Integer leaveDays; + + /** + * 备注 + */ + @ExcelProperty(value = "请假原因") + private String remark; + + /** + * 状态 + */ + @ExcelProperty(value = "状态") + private String status; + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java new file mode 100644 index 0000000..4b215ef --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java @@ -0,0 +1,82 @@ +package org.dromara.workflow.handler; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessDeleteEvent; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 流程监听服务 + * + * @author may + * @date 2024-06-02 + */ +@ConditionalOnEnable +@Slf4j +@Component +public class FlowProcessEventHandler { + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等) + * + * @param flowCode 流程定义编码 + * @param businessId 业务id + * @param status 状态 + * @param submit 当为true时为申请人节点办理 + */ + public void processHandler(String flowCode, String businessId, String status, Map params, boolean submit) { + String tenantId = TenantHelper.getTenantId(); + log.info("发布流程事件,租户ID: {}, 流程状态: {}, 流程编码: {}, 业务ID: {}, 是否申请人节点办理: {}", tenantId, status, flowCode, businessId, submit); + ProcessEvent processEvent = new ProcessEvent(); + processEvent.setTenantId(tenantId); + processEvent.setFlowCode(flowCode); + processEvent.setBusinessId(businessId); + processEvent.setStatus(status); + processEvent.setParams(params); + processEvent.setSubmit(submit); + SpringUtils.context().publishEvent(processEvent); + } + + /** + * 执行办理任务监听 + * + * @param flowCode 流程定义编码 + * @param nodeCode 审批节点编码 + * @param taskId 任务id + * @param businessId 业务id + */ + public void processTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) { + String tenantId = TenantHelper.getTenantId(); + log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 节点编码: {}, 任务ID: {}, 业务ID: {}", tenantId, flowCode, nodeCode, taskId, businessId); + ProcessTaskEvent processTaskEvent = new ProcessTaskEvent(); + processTaskEvent.setTenantId(tenantId); + processTaskEvent.setFlowCode(flowCode); + processTaskEvent.setNodeCode(nodeCode); + processTaskEvent.setTaskId(taskId); + processTaskEvent.setBusinessId(businessId); + SpringUtils.context().publishEvent(processTaskEvent); + } + + /** + * 删除流程监听 + * + * @param flowCode 流程定义编码 + * @param businessId 业务ID + */ + public void processDeleteHandler(String flowCode, String businessId) { + String tenantId = TenantHelper.getTenantId(); + log.info("发布删除流程事件, 租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId); + ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent(); + processDeleteEvent.setTenantId(tenantId); + processDeleteEvent.setFlowCode(flowCode); + processDeleteEvent.setBusinessId(businessId); + SpringUtils.context().publishEvent(processDeleteEvent); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java new file mode 100644 index 0000000..c18e4ed --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java @@ -0,0 +1,73 @@ +package org.dromara.workflow.handler; + +import cn.hutool.core.util.ObjectUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.enums.TaskAssigneeEnum; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.warm.flow.core.dto.FlowParams; +import org.dromara.warm.flow.core.handler.PermissionHandler; +import org.dromara.warm.flow.core.service.impl.TaskServiceImpl; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 办理人权限处理器 + * + * @author AprilWind + */ +@ConditionalOnEnable +@RequiredArgsConstructor +@Component +@Slf4j +public class WorkflowPermissionHandler implements PermissionHandler { + + /** + * 审批前获取当前办理人,办理时会校验的该权限集合 + * 后续在{@link TaskServiceImpl#checkAuth(Task, FlowParams)} 中调用 + * 返回当前用户权限集合 + */ + @Override + public List permissions() { + LoginUser loginUser = LoginHelper.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + return new ArrayList<>(); + } + // 使用一个流来构建权限列表 + return Stream.of( + // 角色权限前缀 + loginUser.getRoles().stream() + .map(role -> TaskAssigneeEnum.ROLE.getCode() + role.getRoleId()), + + // 岗位权限前缀 + Stream.ofNullable(loginUser.getPosts()) + .flatMap(Collection::stream) + .map(post -> TaskAssigneeEnum.POST.getCode() + post.getPostId()), + + // 用户和部门权限 + Stream.of(String.valueOf(loginUser.getUserId()), + TaskAssigneeEnum.DEPT.getCode() + loginUser.getDeptId() + ) + ) + .flatMap(stream -> stream) + .collect(Collectors.toList()); + } + + /** + * 获取当前办理人 + * + * @return 当前办理人 + */ + @Override + public String getHandler() { + return LoginHelper.getUserIdStr(); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java new file mode 100644 index 0000000..b187854 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -0,0 +1,130 @@ +package org.dromara.workflow.listener; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.warm.flow.core.dto.FlowParams; +import org.dromara.warm.flow.core.entity.Definition; +import org.dromara.warm.flow.core.entity.Instance; +import org.dromara.warm.flow.core.entity.Task; +import org.dromara.warm.flow.core.listener.GlobalListener; +import org.dromara.warm.flow.core.listener.ListenerVariable; +import org.dromara.warm.flow.orm.entity.FlowTask; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.handler.FlowProcessEventHandler; +import org.dromara.workflow.service.IFlwInstanceService; +import org.dromara.workflow.service.IFlwTaskService; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 全局任务办理监听 + * + * @author may + */ +@ConditionalOnEnable +@Component +@Slf4j +@RequiredArgsConstructor +public class WorkflowGlobalListener implements GlobalListener { + + private final IFlwTaskService taskService; + private final IFlwInstanceService instanceService; + private final FlowProcessEventHandler flowProcessEventHandler; + + /** + * 创建监听器,任务创建时执行 + * + * @param listenerVariable 监听器变量 + */ + @Override + public void create(ListenerVariable listenerVariable) { + Instance instance = listenerVariable.getInstance(); + Definition definition = listenerVariable.getDefinition(); + String businessId = instance.getBusinessId(); + String flowStatus = instance.getFlowStatus(); + Task task = listenerVariable.getTask(); + if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(flowStatus)) { + // 判断流程状态(发布审批中事件) + flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), task.getNodeCode(), task.getId(), businessId); + } + } + + /** + * 开始监听器,任务开始办理时执行 + * + * @param listenerVariable 监听器变量 + */ + @Override + public void start(ListenerVariable listenerVariable) { + } + + /** + * 分派监听器,动态修改代办任务信息 + * + * @param listenerVariable 监听器变量 + */ + @Override + public void assignment(ListenerVariable listenerVariable) { + } + + /** + * 完成监听器,当前任务完成后执行 + * + * @param listenerVariable 监听器变量 + */ + @Override + public void finish(ListenerVariable listenerVariable) { + Instance instance = listenerVariable.getInstance(); + Definition definition = listenerVariable.getDefinition(); + String businessId = instance.getBusinessId(); + String flowStatus = instance.getFlowStatus(); + Map params = new HashMap<>(); + FlowParams flowParams = listenerVariable.getFlowParams(); + if (ObjectUtil.isNotNull(flowParams)) { + // 历史任务扩展(通常为附件) + params.put("hisTaskExt", flowParams.getHisTaskExt()); + // 办理人 + params.put("handler", flowParams.getHandler()); + // 办理意见 + params.put("message", flowParams.getMessage()); + } + // 判断流程状态(发布:撤销,退回,作废,终止,已完成事件) + String status = determineFlowStatus(instance, flowStatus); + if (StringUtils.isNotBlank(status)) { + flowProcessEventHandler.processHandler(definition.getFlowCode(), businessId, status, params, false); + } + } + + /** + * 根据流程实例和当前流程状态确定最终状态 + * + * @param instance 流程实例 + * @param flowStatus 流程实例当前状态 + * @return 流程最终状态 + */ + private String determineFlowStatus(Instance instance, String flowStatus) { + if (StringUtils.isNotBlank(flowStatus) && BusinessStatusEnum.initialState(flowStatus)) { + log.info("流程实例当前状态: {}", flowStatus); + return flowStatus; + } else { + Long instanceId = instance.getId(); + List flowTasks = taskService.selectByInstId(instanceId); + if (CollUtil.isEmpty(flowTasks)) { + String status = BusinessStatusEnum.FINISH.getStatus(); + // 更新流程状态为已完成 + instanceService.updateStatus(instanceId, status); + log.info("流程已结束,状态更新为: {}", status); + return status; + } + return null; + } + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java new file mode 100644 index 0000000..d2c0b3a --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java @@ -0,0 +1,60 @@ +package org.dromara.workflow.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.common.mybatis.helper.DataBaseHelper; +import org.dromara.workflow.domain.FlowCategory; +import org.dromara.workflow.domain.vo.FlowCategoryVo; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 流程分类Mapper接口 + * + * @author may + * @date 2023-06-27 + */ +public interface FlwCategoryMapper extends BaseMapperPlus { + + /** + * 统计指定流程分类ID的分类数量 + * + * @param categoryId 流程分类ID + * @return 该流程分类ID的分类数量 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "createDept") + }) + long countCategoryById(Long categoryId); + + /** + * 根据父流程分类ID查询其所有子流程分类的列表 + * + * @param parentId 父流程分类ID + * @return 包含子流程分类的列表 + */ + default List selectListByParentId(Long parentId) { + return this.selectList(new LambdaQueryWrapper() + .select(FlowCategory::getCategoryId) + .apply(DataBaseHelper.findInSet(parentId, "ancestors"))); + } + + /** + * 根据父流程分类ID查询包括父ID及其所有子流程分类ID的列表 + * + * @param parentId 父流程分类ID + * @return 包含父ID和子流程分类ID的列表 + */ + default List selectCategoryIdsByParentId(Long parentId) { + return Stream.concat( + this.selectListByParentId(parentId).stream() + .map(FlowCategory::getCategoryId), + Stream.of(parentId) + ).collect(Collectors.toList()); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java new file mode 100644 index 0000000..92809c8 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java @@ -0,0 +1,27 @@ +package org.dromara.workflow.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.workflow.domain.bo.FlowInstanceBo; +import org.dromara.workflow.domain.vo.FlowInstanceVo; + +/** + * 实例信息Mapper接口 + * + * @author may + * @date 2024-03-02 + */ +public interface FlwInstanceMapper { + + /** + * 流程实例信息 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 结果 + */ + Page selectInstanceList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java new file mode 100644 index 0000000..fd86c82 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java @@ -0,0 +1,57 @@ +package org.dromara.workflow.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.workflow.domain.bo.FlowTaskBo; +import org.dromara.workflow.domain.vo.FlowHisTaskVo; +import org.dromara.workflow.domain.vo.FlowTaskVo; + +import java.util.List; + + +/** + * 任务信息Mapper接口 + * + * @author may + * @date 2024-03-02 + */ +public interface FlwTaskMapper { + + /** + * 获取待办信息 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 结果 + */ + Page getListRunTask(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 获取待办信息 + * + * @param queryWrapper 条件 + * @return 结果 + */ + List getListRunTask(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 获取已办 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 结果 + */ + Page getListFinishTask(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 查询当前用户的抄送 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 结果 + */ + Page getTaskCopyByPage(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java new file mode 100644 index 0000000..cd1edba --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java @@ -0,0 +1,15 @@ +package org.dromara.workflow.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.workflow.domain.TestLeave; +import org.dromara.workflow.domain.vo.TestLeaveVo; + +/** + * 请假Mapper接口 + * + * @author may + * @date 2023-07-21 + */ +public interface TestLeaveMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java new file mode 100644 index 0000000..91f173d --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java @@ -0,0 +1,102 @@ +package org.dromara.workflow.service; + +import cn.hutool.core.lang.tree.Tree; +import org.dromara.workflow.domain.bo.FlowCategoryBo; +import org.dromara.workflow.domain.vo.FlowCategoryVo; + +import java.util.List; + +/** + * 流程分类Service接口 + * + * @author may + */ +public interface IFlwCategoryService { + + /** + * 查询流程分类 + * + * @param categoryId 主键 + * @return 流程分类 + */ + FlowCategoryVo queryById(Long categoryId); + + /** + * 根据流程分类ID查询流程分类名称 + * + * @param categoryId 流程分类ID + * @return 流程分类名称 + */ + String selectCategoryNameById(Long categoryId); + + /** + * 查询符合条件的流程分类列表 + * + * @param bo 查询条件 + * @return 流程分类列表 + */ + List queryList(FlowCategoryBo bo); + + /** + * 查询流程分类树结构信息 + * + * @param category 流程分类信息 + * @return 流程分类树信息集合 + */ + List> selectCategoryTreeList(FlowCategoryBo category); + + /** + * 校验流程分类是否有数据权限 + * + * @param categoryId 流程分类ID + */ + void checkCategoryDataScope(Long categoryId); + + /** + * 校验流程分类名称是否唯一 + * + * @param category 流程分类信息 + * @return 结果 + */ + boolean checkCategoryNameUnique(FlowCategoryBo category); + + /** + * 查询流程分类是否存在流程定义 + * + * @param categoryId 流程分类ID + * @return 结果 true 存在 false 不存在 + */ + boolean checkCategoryExistDefinition(Long categoryId); + + /** + * 是否存在流程分类子节点 + * + * @param categoryId 流程分类ID + * @return 结果 + */ + boolean hasChildByCategoryId(Long categoryId); + + /** + * 新增流程分类 + * + * @param bo 流程分类 + * @return 是否新增成功 + */ + int insertByBo(FlowCategoryBo bo); + + /** + * 修改流程分类 + * + * @param bo 流程分类 + * @return 是否修改成功 + */ + int updateByBo(FlowCategoryBo bo); + + /** + * 删除流程分类信息 + * + * @param categoryId 主键 + * @return 是否删除成功 + */ + int deleteWithValidById(Long categoryId); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java new file mode 100644 index 0000000..1a2d29f --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java @@ -0,0 +1,79 @@ +package org.dromara.workflow.service; + +import jakarta.servlet.http.HttpServletResponse; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.warm.flow.orm.entity.FlowDefinition; +import org.dromara.workflow.domain.vo.FlowDefinitionVo; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 流程定义 服务层 + * + * @author may + */ +public interface IFlwDefinitionService { + + /** + * 查询流程定义列表 + * + * @param flowDefinition 参数 + * @param pageQuery 分页 + * @return 返回分页列表 + */ + TableDataInfo queryList(FlowDefinition flowDefinition, PageQuery pageQuery); + + /** + * 查询未发布的流程定义列表 + * + * @param flowDefinition 参数 + * @param pageQuery 分页 + * @return 返回分页列表 + */ + TableDataInfo unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery); + + + /** + * 发布流程定义 + * + * @param id 流程定义id + * @return 结果 + */ + boolean publish(Long id); + + /** + * 导出流程定义 + * + * @param id 流程定义id + * @param response 响应 + * @throws IOException 异常 + */ + void exportDef(Long id, HttpServletResponse response) throws IOException; + + /** + * 导入流程定义 + * + * @param file 文件 + * @param category 分类 + * @return 结果 + */ + boolean importJson(MultipartFile file, String category); + + /** + * 删除流程定义 + * + * @param ids 流程定义id + * @return 结果 + */ + boolean removeDef(List ids); + + /** + * 新增租户流程定义 + * + * @param tenantId 租户id + */ + void syncDef(String tenantId); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java new file mode 100644 index 0000000..99729c2 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java @@ -0,0 +1,159 @@ +package org.dromara.workflow.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.workflow.domain.bo.FlowCancelBo; +import org.dromara.workflow.domain.bo.FlowInstanceBo; +import org.dromara.workflow.domain.bo.FlowInvalidBo; +import org.dromara.workflow.domain.vo.FlowInstanceVo; + +import java.util.List; +import java.util.Map; + +/** + * 流程实例 服务层 + * + * @author may + */ +public interface IFlwInstanceService { + + /** + * 分页查询正在运行的流程实例 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery); + + /** + * 分页查询已结束的流程实例 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery); + + /** + * 根据业务id查询流程实例详细信息 + * + * @param businessId 业务id + * @return 结果 + */ + FlowInstanceVo queryByBusinessId(Long businessId); + + /** + * 按照业务id查询流程实例 + * + * @param businessId 业务id + * @return 结果 + */ + FlowInstance selectInstByBusinessId(String businessId); + + /** + * 按照实例id查询流程实例 + * + * @param instanceId 实例id + * @return 结果 + */ + FlowInstance selectInstById(Long instanceId); + + /** + * 按照实例id查询流程实例 + * + * @param instanceIds 实例id + * @return 结果 + */ + List selectInstListByIdList(List instanceIds); + + /** + * 按照业务id删除流程实例 + * + * @param businessIds 业务id + * @return 结果 + */ + boolean deleteByBusinessIds(List businessIds); + + /** + * 按照实例id删除流程实例 + * + * @param instanceIds 实例id + * @return 结果 + */ + boolean deleteByInstanceIds(List instanceIds); + + /** + * 撤销流程 + * + * @param bo 参数 + * @return 结果 + */ + boolean cancelProcessApply(FlowCancelBo bo); + + /** + * 获取当前登陆人发起的流程实例 + * + * @param instanceBo 流程实例 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery); + + /** + * 获取流程图,流程记录 + * + * @param businessId 业务id + * @return 结果 + */ + Map flowImage(String businessId); + + /** + * 按照实例id更新状态 + * + * @param instanceId 实例id + * @param status 状态 + */ + void updateStatus(Long instanceId, String status); + + /** + * 获取流程变量 + * + * @param instanceId 实例id + * @return 结果 + */ + Map instanceVariable(Long instanceId); + + /** + * 设置流程变量 + * + * @param instanceId 实例id + * @param variable 流程变量 + */ + void setVariable(Long instanceId, Map variable); + + /** + * 按任务id查询实例 + * + * @param taskId 任务id + * @return 结果 + */ + FlowInstance selectByTaskId(Long taskId); + + /** + * 按任务id查询实例 + * + * @param taskIdList 任务id + * @return 结果 + */ + List selectByTaskIdList(List taskIdList); + + /** + * 作废流程 + * + * @param bo 流程实例 + * @return 结果 + */ + boolean processInvalid(FlowInvalidBo bo); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java new file mode 100644 index 0000000..116cb74 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java @@ -0,0 +1,22 @@ +package org.dromara.workflow.service; + +import org.dromara.common.core.domain.dto.UserDTO; + +import java.util.List; + +/** + * 流程设计器-获取办理人 + * + * @author AprilWind + */ +public interface IFlwTaskAssigneeService { + + /** + * 根据存储标识符(storageId)解析分配类型和ID,并获取对应的用户列表 + * + * @param storageId 包含分配类型和ID的字符串(例如 "user:123" 或 "role:456") + * @return 与分配类型和ID匹配的用户列表,如果格式无效则返回空列表 + */ + List fetchUsersByStorageId(String storageId); + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java new file mode 100644 index 0000000..11034e7 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java @@ -0,0 +1,191 @@ +package org.dromara.workflow.service; + +import org.dromara.common.core.domain.dto.StartProcessReturnDTO; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.warm.flow.core.entity.Node; +import org.dromara.warm.flow.orm.entity.FlowHisTask; +import org.dromara.warm.flow.orm.entity.FlowTask; +import org.dromara.workflow.domain.bo.*; +import org.dromara.workflow.domain.vo.FlowHisTaskVo; +import org.dromara.workflow.domain.vo.FlowTaskVo; + +import java.util.List; +import java.util.Map; + +/** + * 任务 服务层 + * + * @author may + */ +public interface IFlwTaskService { + + /** + * 启动任务 + * + * @param startProcessBo 启动流程参数 + * @return 结果 + */ + StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo); + + /** + * 办理任务 + * + * @param completeTaskBo 办理任务参数 + * @return 结果 + */ + boolean completeTask(CompleteTaskBo completeTaskBo); + + /** + * 查询当前用户的待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** + * 查询当前租户所有待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** + * 查询待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** + * 查询已办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** + * 查询当前用户的抄送 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + * @return 结果 + */ + TableDataInfo pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** + * 修改任务办理人 + * + * @param taskIdList 任务id + * @param userId 用户id + * @return 结果 + */ + boolean updateAssignee(List taskIdList, String userId); + + /** + * 驳回审批 + * + * @param bo 参数 + * @return 结果 + */ + boolean backProcess(BackProcessBo bo); + + /** + * 获取可驳回的前置节点 + * + * @param definitionId 流程定义id + * @param nowNodeCode 当前节点 + * @return 结果 + */ + List getBackTaskNode(Long definitionId, String nowNodeCode); + + /** + * 终止任务 + * + * @param bo 参数 + * @return 结果 + */ + boolean terminationTask(FlowTerminationBo bo); + + /** + * 按照任务id查询任务 + * + * @param taskIdList 任务id + * @return 结果 + */ + List selectByIdList(List taskIdList); + + /** + * 按照任务id查询任务 + * + * @param taskId 任务id + * @return 结果 + */ + FlowTaskVo selectById(Long taskId); + + /** + * 按照任务id查询任务 + * + * @param taskIdList 任务id + * @return 结果 + */ + List selectHisTaskByIdList(List taskIdList); + + /** + * 按照任务id查询任务 + * + * @param taskId 任务id + * @return 结果 + */ + FlowHisTask selectHisTaskById(Long taskId); + + /** + * 按照实例id查询任务 + * + * @param instanceIdList 流程实例id + * @return 结果 + */ + List selectByInstIdList(List instanceIdList); + + /** + * 按照实例id查询任务 + * + * @param instanceId 流程实例id + * @return 结果 + */ + List selectByInstId(Long instanceId); + + /** + * 任务操作 + * + * @param bo 参数 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature + * @return 结果 + */ + boolean taskOperation(TaskOperationBo bo, String taskOperation); + + /** + * 获取任务所有办理人 + * + * @param taskIdList 任务id + * @return 结果 + */ + Map> currentTaskAllUser(List taskIdList); + + /** + * 获取当前任务的所有办理人 + * + * @param taskId 任务id + * @return 结果 + */ + List currentTaskAllUser(Long taskId); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java new file mode 100644 index 0000000..67b50ba --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java @@ -0,0 +1,47 @@ +package org.dromara.workflow.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.workflow.domain.bo.TestLeaveBo; +import org.dromara.workflow.domain.vo.TestLeaveVo; + +import java.util.List; + +/** + * 请假Service接口 + * + * @author may + * @date 2023-07-21 + */ +public interface ITestLeaveService { + + /** + * 查询请假 + */ + TestLeaveVo queryById(Long id); + + /** + * 查询请假列表 + */ + TableDataInfo queryPageList(TestLeaveBo bo, PageQuery pageQuery); + + /** + * 查询请假列表 + */ + List queryList(TestLeaveBo bo); + + /** + * 新增请假 + */ + TestLeaveVo insertByBo(TestLeaveBo bo); + + /** + * 修改请假 + */ + TestLeaveVo updateByBo(TestLeaveBo bo); + + /** + * 校验并批量删除请假信息 + */ + Boolean deleteWithValidByIds(List ids); +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java new file mode 100644 index 0000000..8c73b59 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java @@ -0,0 +1,37 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.convert.Convert; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.translation.annotation.TranslationType; +import org.dromara.common.translation.core.TranslationInterface; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.constant.FlowConstant; +import org.dromara.workflow.service.IFlwCategoryService; +import org.springframework.stereotype.Service; + +/** + * 流程分类名称翻译实现 + * + * @author AprilWind + */ +@ConditionalOnEnable +@Slf4j +@RequiredArgsConstructor +@Service +@TranslationType(type = FlowConstant.CATEGORY_ID_TO_NAME) +public class CategoryNameTranslationImpl implements TranslationInterface { + + private final IFlwCategoryService flwCategoryService; + + @Override + public String translation(Object key, String other) { + Long id = null; + if (key instanceof String categoryId) { + id = Convert.toLong(categoryId); + } else if (key instanceof Long categoryId) { + id = categoryId; + } + return flwCategoryService.selectCategoryNameById(id); + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java new file mode 100644 index 0000000..db1b7b7 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java @@ -0,0 +1,269 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.*; +import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.orm.entity.FlowDefinition; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.constant.FlowConstant; +import org.dromara.workflow.domain.FlowCategory; +import org.dromara.workflow.domain.bo.FlowCategoryBo; +import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.dromara.workflow.mapper.FlwCategoryMapper; +import org.dromara.workflow.service.IFlwCategoryService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 流程分类Service业务层处理 + * + * @author may + */ +@ConditionalOnEnable +@RequiredArgsConstructor +@Service +public class FlwCategoryServiceImpl implements IFlwCategoryService { + + private final DefService defService; + private final FlwCategoryMapper baseMapper; + + /** + * 查询流程分类 + * + * @param categoryId 主键 + * @return 流程分类 + */ + @Override + public FlowCategoryVo queryById(Long categoryId) { + FlowCategoryVo category = baseMapper.selectVoById(categoryId); + if (ObjectUtil.isNull(category)) { + return null; + } + FlowCategoryVo parentCategory = baseMapper.selectVoOne(new LambdaQueryWrapper() + .select(FlowCategory::getCategoryName).eq(FlowCategory::getCategoryId, category.getParentId())); + category.setParentName(ObjectUtils.notNullGetter(parentCategory, FlowCategoryVo::getCategoryName)); + return category; + } + + /** + * 根据流程分类ID查询流程分类名称 + * + * @param categoryId 流程分类ID + * @return 流程分类名称 + */ + @Cacheable(cacheNames = FlowConstant.FLOW_CATEGORY_NAME, key = "#categoryId") + @Override + public String selectCategoryNameById(Long categoryId) { + if (ObjectUtil.isNull(categoryId)) { + return null; + } + FlowCategory category = baseMapper.selectOne(new LambdaQueryWrapper() + .select(FlowCategory::getCategoryName).eq(FlowCategory::getCategoryId, categoryId)); + return ObjectUtils.notNullGetter(category, FlowCategory::getCategoryName); + } + + /** + * 查询符合条件的流程分类列表 + * + * @param bo 查询条件 + * @return 流程分类列表 + */ + @Override + public List queryList(FlowCategoryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + /** + * 查询流程分类树结构信息 + * + * @param category 流程分类信息 + * @return 流程分类树信息集合 + */ + @Override + public List> selectCategoryTreeList(FlowCategoryBo category) { + LambdaQueryWrapper lqw = buildQueryWrapper(category); + List categorys = baseMapper.selectVoList(lqw); + if (CollUtil.isEmpty(categorys)) { + return CollUtil.newArrayList(); + } + // 获取当前列表中每一个节点的parentId,然后在列表中查找是否有id与其parentId对应,若无对应,则表明此时节点列表中,该节点在当前列表中属于顶级节点 + List> treeList = CollUtil.newArrayList(); + for (FlowCategoryVo d : categorys) { + String parentId = d.getParentId().toString(); + FlowCategoryVo categoryVo = StreamUtils.findFirst(categorys, it -> it.getCategoryId().toString().equals(parentId)); + if (ObjectUtil.isNull(categoryVo)) { + List> trees = TreeBuildUtils.build(categorys, parentId, (dept, tree) -> + tree.setId(dept.getCategoryId().toString()) + .setParentId(dept.getParentId().toString()) + .setName(dept.getCategoryName()) + .setWeight(dept.getOrderNum())); + Tree tree = StreamUtils.findFirst(trees, it -> it.getId().equals(d.getCategoryId().toString())); + treeList.add(tree); + } + } + return treeList; + } + + /** + * 校验流程分类是否有数据权限 + * + * @param categoryId 流程分类ID + */ + @Override + public void checkCategoryDataScope(Long categoryId) { + if (ObjectUtil.isNull(categoryId)) { + return; + } + if (LoginHelper.isSuperAdmin()) { + return; + } + if (baseMapper.countCategoryById(categoryId) == 0) { + throw new ServiceException("没有权限访问流程分类数据!"); + } + } + + /** + * 校验流程分类名称是否唯一 + * + * @param category 流程分类信息 + * @return 结果 + */ + @Override + public boolean checkCategoryNameUnique(FlowCategoryBo category) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(FlowCategory::getCategoryName, category.getCategoryName()) + .eq(FlowCategory::getParentId, category.getParentId()) + .ne(ObjectUtil.isNotNull(category.getCategoryId()), FlowCategory::getCategoryId, category.getCategoryId())); + return !exist; + } + + /** + * 查询流程分类是否存在流程定义 + * + * @param categoryId 流程分类ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkCategoryExistDefinition(Long categoryId) { + FlowDefinition definition = new FlowDefinition(); + definition.setCategory(categoryId.toString()); + return defService.exists(definition); + } + + /** + * 是否存在流程分类子节点 + * + * @param categoryId 流程分类ID + * @return 结果 + */ + @Override + public boolean hasChildByCategoryId(Long categoryId) { + return baseMapper.exists(new LambdaQueryWrapper() + .eq(FlowCategory::getParentId, categoryId)); + } + + private LambdaQueryWrapper buildQueryWrapper(FlowCategoryBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(FlowCategory::getDelFlag, SystemConstants.NORMAL); + lqw.eq(ObjectUtil.isNotNull(bo.getCategoryId()), FlowCategory::getCategoryId, bo.getCategoryId()); + lqw.eq(ObjectUtil.isNotNull(bo.getParentId()), FlowCategory::getParentId, bo.getParentId()); + lqw.like(StringUtils.isNotBlank(bo.getCategoryName()), FlowCategory::getCategoryName, bo.getCategoryName()); + lqw.orderByAsc(FlowCategory::getAncestors); + lqw.orderByAsc(FlowCategory::getParentId); + lqw.orderByAsc(FlowCategory::getOrderNum); + lqw.orderByAsc(FlowCategory::getCategoryId); + return lqw; + } + + /** + * 新增流程分类 + * + * @param bo 流程分类 + * @return 是否新增成功 + */ + @Override + public int insertByBo(FlowCategoryBo bo) { + FlowCategory info = baseMapper.selectById(bo.getParentId()); + FlowCategory category = MapstructUtils.convert(bo, FlowCategory.class); + category.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + category.getParentId()); + return baseMapper.insert(category); + } + + /** + * 修改流程分类 + * + * @param bo 流程分类 + * @return 是否修改成功 + */ + @CacheEvict(cacheNames = FlowConstant.FLOW_CATEGORY_NAME, key = "#bo.categoryId") + @Override + public int updateByBo(FlowCategoryBo bo) { + FlowCategory category = MapstructUtils.convert(bo, FlowCategory.class); + FlowCategory oldCategory = baseMapper.selectById(category.getCategoryId()); + if (ObjectUtil.isNull(oldCategory)) { + throw new ServiceException("流程分类不存在,无法修改"); + } + if (!oldCategory.getParentId().equals(category.getParentId())) { + // 如果是新父流程分类 则校验是否具有新父流程分类权限 避免越权 + this.checkCategoryDataScope(category.getParentId()); + FlowCategory newParentCategory = baseMapper.selectById(category.getParentId()); + if (ObjectUtil.isNotNull(newParentCategory)) { + String newAncestors = newParentCategory.getAncestors() + StringUtils.SEPARATOR + newParentCategory.getCategoryId(); + String oldAncestors = oldCategory.getAncestors(); + category.setAncestors(newAncestors); + updateCategoryChildren(category.getCategoryId(), newAncestors, oldAncestors); + } + } else { + category.setAncestors(oldCategory.getAncestors()); + } + return baseMapper.updateById(category); + } + + /** + * 修改子元素关系 + * + * @param categoryId 被修改的流程分类ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + private void updateCategoryChildren(Long categoryId, String newAncestors, String oldAncestors) { + List children = baseMapper.selectList(new LambdaQueryWrapper() + .apply(DataBaseHelper.findInSet(categoryId, "ancestors"))); + List list = new ArrayList<>(); + for (FlowCategory child : children) { + FlowCategory category = new FlowCategory(); + category.setCategoryId(child.getCategoryId()); + category.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + list.add(category); + } + if (CollUtil.isNotEmpty(list)) { + baseMapper.updateBatchById(list); + } + } + + /** + * 删除流程分类信息 + * + * @param categoryId 主键 + * @return 是否删除成功 + */ + @CacheEvict(cacheNames = FlowConstant.FLOW_CATEGORY_NAME, key = "#categoryId") + @Override + public int deleteWithValidById(Long categoryId) { + return baseMapper.deleteById(categoryId); + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java new file mode 100644 index 0000000..591339b --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -0,0 +1,266 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.io.IoUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.warm.flow.core.dto.DefJson; +import org.dromara.warm.flow.core.enums.NodeType; +import org.dromara.warm.flow.core.enums.PublishStatus; +import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.orm.entity.FlowDefinition; +import org.dromara.warm.flow.orm.entity.FlowHisTask; +import org.dromara.warm.flow.orm.entity.FlowNode; +import org.dromara.warm.flow.orm.entity.FlowSkip; +import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper; +import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; +import org.dromara.warm.flow.orm.mapper.FlowNodeMapper; +import org.dromara.warm.flow.orm.mapper.FlowSkipMapper; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.constant.FlowConstant; +import org.dromara.workflow.domain.FlowCategory; +import org.dromara.workflow.domain.vo.FlowDefinitionVo; +import org.dromara.workflow.mapper.FlwCategoryMapper; +import org.dromara.workflow.service.IFlwDefinitionService; +import org.dromara.workflow.utils.WorkflowUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static org.dromara.common.core.constant.TenantConstants.DEFAULT_TENANT_ID; + +/** + * 流程定义 服务层实现 + * + * @author may + */ +@ConditionalOnEnable +@Slf4j +@RequiredArgsConstructor +@Service +public class FlwDefinitionServiceImpl implements IFlwDefinitionService { + + private final DefService defService; + private final FlowDefinitionMapper flowDefinitionMapper; + private final FlowHisTaskMapper flowHisTaskMapper; + private final FlowNodeMapper flowNodeMapper; + private final FlowSkipMapper flowSkipMapper; + private final FlwCategoryMapper flwCategoryMapper; + + /** + * 查询流程定义列表 + * + * @param flowDefinition 流程定义信息 + * @param pageQuery 分页 + * @return 返回分页列表 + */ + @Override + public TableDataInfo queryList(FlowDefinition flowDefinition, PageQuery pageQuery) { + LambdaQueryWrapper wrapper = buildQueryWrapper(flowDefinition); + wrapper.eq(FlowDefinition::getIsPublish, PublishStatus.PUBLISHED.getKey()); + Page page = flowDefinitionMapper.selectPage(pageQuery.build(), wrapper); + TableDataInfo build = TableDataInfo.build(); + build.setRows(BeanUtil.copyToList(page.getRecords(), FlowDefinitionVo.class)); + build.setTotal(page.getTotal()); + return build; + } + + /** + * 查询未发布的流程定义列表 + * + * @param flowDefinition 流程定义信息 + * @param pageQuery 分页 + * @return 返回分页列表 + */ + @Override + public TableDataInfo unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) { + LambdaQueryWrapper wrapper = buildQueryWrapper(flowDefinition); + wrapper.in(FlowDefinition::getIsPublish, Arrays.asList(PublishStatus.UNPUBLISHED.getKey(), PublishStatus.EXPIRED.getKey())); + Page page = flowDefinitionMapper.selectPage(pageQuery.build(), wrapper); + TableDataInfo build = TableDataInfo.build(); + build.setRows(BeanUtil.copyToList(page.getRecords(), FlowDefinitionVo.class)); + build.setTotal(page.getTotal()); + return build; + } + + private LambdaQueryWrapper buildQueryWrapper(FlowDefinition flowDefinition) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.like(StringUtils.isNotBlank(flowDefinition.getFlowCode()), FlowDefinition::getFlowCode, flowDefinition.getFlowCode()); + wrapper.like(StringUtils.isNotBlank(flowDefinition.getFlowName()), FlowDefinition::getFlowName, flowDefinition.getFlowName()); + if (StringUtils.isNotBlank(flowDefinition.getCategory())) { + List categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowDefinition.getCategory())); + wrapper.in(FlowDefinition::getCategory, StreamUtils.toList(categoryIds, Convert::toStr)); + } + wrapper.orderByDesc(FlowDefinition::getCreateTime); + return wrapper; + } + + /** + * 发布流程定义 + * + * @param id 流程定义id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean publish(Long id) { + List flowNodes = flowNodeMapper.selectList(new LambdaQueryWrapper().eq(FlowNode::getDefinitionId, id)); + List errorMsg = new ArrayList<>(); + if (CollUtil.isNotEmpty(flowNodes)) { + for (FlowNode flowNode : flowNodes) { + String applyNodeCode = WorkflowUtils.applyNodeCode(id); + if (StringUtils.isBlank(flowNode.getPermissionFlag()) && !applyNodeCode.equals(flowNode.getNodeCode()) && NodeType.BETWEEN.getKey().equals(flowNode.getNodeType())) { + errorMsg.add(flowNode.getNodeName()); + } + } + if (CollUtil.isNotEmpty(errorMsg)) { + throw new ServiceException("节点【" + StringUtils.join(errorMsg, ",") + "】未配置办理人!"); + } + } + return defService.publish(id); + } + + /** + * 导入流程定义 + * + * @param file 文件 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean importJson(MultipartFile file, String category) { + try { + DefJson defJson = JsonUtils.parseObject(file.getBytes(), DefJson.class); + defJson.setCategory(category); + defService.importDef(defJson); + } catch (IOException e) { + log.error("读取文件流错误: {}", e.getMessage(), e); + throw new IllegalStateException("文件读取失败,请检查文件内容", e); + } + return true; + } + + /** + * 导出流程定义 + * + * @param id 流程定义id + * @param response 响应 + * @throws IOException 异常 + */ + @Override + public void exportDef(Long id, HttpServletResponse response) throws IOException { + byte[] data = defService.exportJson(id).getBytes(StandardCharsets.UTF_8); + // 设置响应头和内容类型 + response.reset(); + response.setCharacterEncoding(StandardCharsets.UTF_8.name()); + response.setContentType("application/text"); + response.setHeader("Content-Disposition", "attachment;"); + response.addHeader("Content-Length", "" + data.length); + IoUtil.write(response.getOutputStream(), false, data); + } + + /** + * 删除流程定义 + * + * @param ids 流程定义id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean removeDef(List ids) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.in(FlowHisTask::getDefinitionId, ids); + List flowHisTasks = flowHisTaskMapper.selectList(wrapper); + if (CollUtil.isNotEmpty(flowHisTasks)) { + List flowDefinitions = flowDefinitionMapper.selectByIds(StreamUtils.toList(flowHisTasks, FlowHisTask::getDefinitionId)); + if (CollUtil.isNotEmpty(flowDefinitions)) { + String join = StreamUtils.join(flowDefinitions, FlowDefinition::getFlowCode); + log.error("流程定义【{}】已被使用不可被删除!", join); + throw new ServiceException("流程定义【" + join + "】已被使用不可被删除!"); + } + } + try { + defService.removeDef(ids); + } catch (Exception e) { + log.error("Error removing flow definitions: {}", e.getMessage(), e); + throw new RuntimeException("Failed to remove flow definitions", e); + } + return true; + } + + /** + * 新增租户流程定义 + * + * @param tenantId 租户id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void syncDef(String tenantId) { + List flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper().eq(FlowDefinition::getTenantId, DEFAULT_TENANT_ID)); + if (CollUtil.isEmpty(flowDefinitions)) { + return; + } + FlowCategory flowCategory = flwCategoryMapper.selectOne(new LambdaQueryWrapper() + .eq(FlowCategory::getTenantId, DEFAULT_TENANT_ID).eq(FlowCategory::getCategoryId, FlowConstant.FLOW_CATEGORY_ID)); + flowCategory.setCategoryId(null); + flowCategory.setTenantId(tenantId); + flwCategoryMapper.insert(flowCategory); + List defIds = StreamUtils.toList(flowDefinitions, FlowDefinition::getId); + List flowNodes = flowNodeMapper.selectList(new LambdaQueryWrapper().in(FlowNode::getDefinitionId, defIds)); + List flowSkips = flowSkipMapper.selectList(new LambdaQueryWrapper().in(FlowSkip::getDefinitionId, defIds)); + for (FlowDefinition definition : flowDefinitions) { + FlowDefinition flowDefinition = BeanUtil.toBean(definition, FlowDefinition.class); + flowDefinition.setId(null); + flowDefinition.setTenantId(tenantId); + flowDefinition.setIsPublish(0); + flowDefinition.setCategory(String.valueOf(flowCategory.getCategoryId())); + int insert = flowDefinitionMapper.insert(flowDefinition); + if (insert <= 0) { + log.info("同步流程定义【{}】失败!", definition.getFlowCode()); + continue; + } + log.info("同步流程定义【{}】成功!", definition.getFlowCode()); + Long definitionId = flowDefinition.getId(); + if (CollUtil.isNotEmpty(flowNodes)) { + List nodes = StreamUtils.filter(flowNodes, node -> node.getDefinitionId().equals(definition.getId())); + if (CollUtil.isNotEmpty(nodes)) { + List flowNodeList = BeanUtil.copyToList(nodes, FlowNode.class); + flowNodeList.forEach(e -> { + e.setId(null); + e.setDefinitionId(definitionId); + e.setTenantId(tenantId); + e.setPermissionFlag(null); + }); + flowNodeMapper.insertOrUpdate(flowNodeList); + } + } + if (CollUtil.isNotEmpty(flowSkips)) { + List skips = StreamUtils.filter(flowSkips, skip -> skip.getDefinitionId().equals(definition.getId())); + if (CollUtil.isNotEmpty(skips)) { + List flowSkipList = BeanUtil.copyToList(skips, FlowSkip.class); + flowSkipList.forEach(e -> { + e.setId(null); + e.setDefinitionId(definitionId); + e.setTenantId(tenantId); + }); + flowSkipMapper.insertOrUpdate(flowSkipList); + } + } + } + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java new file mode 100644 index 0000000..db8ab71 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java @@ -0,0 +1,451 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StreamUtils; +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.common.satoken.utils.LoginHelper; +import org.dromara.warm.flow.core.FlowEngine; +import org.dromara.warm.flow.core.constant.ExceptionCons; +import org.dromara.warm.flow.core.dto.FlowParams; +import org.dromara.warm.flow.core.entity.Definition; +import org.dromara.warm.flow.core.entity.Instance; +import org.dromara.warm.flow.core.entity.Task; +import org.dromara.warm.flow.core.enums.NodeType; +import org.dromara.warm.flow.core.service.ChartService; +import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.core.service.InsService; +import org.dromara.warm.flow.core.service.TaskService; +import org.dromara.warm.flow.orm.entity.FlowHisTask; +import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.warm.flow.orm.entity.FlowTask; +import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; +import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.enums.TaskStatusEnum; +import org.dromara.workflow.domain.bo.FlowCancelBo; +import org.dromara.workflow.domain.bo.FlowInstanceBo; +import org.dromara.workflow.domain.bo.FlowInvalidBo; +import org.dromara.workflow.domain.vo.FlowHisTaskVo; +import org.dromara.workflow.domain.vo.FlowInstanceVo; +import org.dromara.workflow.domain.vo.FlowVariableVo; +import org.dromara.workflow.handler.FlowProcessEventHandler; +import org.dromara.workflow.mapper.FlwCategoryMapper; +import org.dromara.workflow.mapper.FlwInstanceMapper; +import org.dromara.workflow.service.IFlwInstanceService; +import org.dromara.workflow.service.IFlwTaskService; +import org.dromara.workflow.utils.WorkflowUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 流程实例 服务层实现 + * + * @author may + */ +@ConditionalOnEnable +@Slf4j +@RequiredArgsConstructor +@Service +public class FlwInstanceServiceImpl implements IFlwInstanceService { + + private final InsService insService; + private final DefService defService; + private final ChartService chartService; + private final TaskService taskService; + private final FlowHisTaskMapper flowHisTaskMapper; + private final FlowInstanceMapper flowInstanceMapper; + private final FlowProcessEventHandler flowProcessEventHandler; + private final IFlwTaskService flwTaskService; + private final FlwInstanceMapper flwInstanceMapper; + private final FlwCategoryMapper flwCategoryMapper; + + /** + * 分页查询正在运行的流程实例 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowInstanceBo); + queryWrapper.in("fi.flow_status", BusinessStatusEnum.runningStatus()); + Page page = flwInstanceMapper.selectInstanceList(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 分页查询已结束的流程实例 + * + * @param flowInstanceBo 流程实例 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowInstanceBo); + queryWrapper.in("fi.flow_status", BusinessStatusEnum.finishStatus()); + Page page = flwInstanceMapper.selectInstanceList(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 根据业务id查询流程实例详细信息 + * + * @param businessId 业务id + * @return 结果 + */ + @Override + public FlowInstanceVo queryByBusinessId(Long businessId) { + FlowInstance instance = this.selectInstByBusinessId(String.valueOf(businessId)); + FlowInstanceVo instanceVo = BeanUtil.toBean(instance, FlowInstanceVo.class); + Definition definition = defService.getById(instanceVo.getDefinitionId()); + instanceVo.setFlowName(definition.getFlowName()); + instanceVo.setFlowCode(definition.getFlowCode()); + instanceVo.setVersion(definition.getVersion()); + instanceVo.setFormCustom(definition.getFormCustom()); + instanceVo.setFormPath(definition.getFormPath()); + instanceVo.setCategory(definition.getCategory()); + return instanceVo; + } + + /** + * 通用查询条件 + * + * @param flowInstanceBo 查询条件 + * @return 查询条件构造方法 + */ + private QueryWrapper buildQueryWrapper(FlowInstanceBo flowInstanceBo) { + QueryWrapper queryWrapper = Wrappers.query(); + queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getNodeName()), "fi.node_name", flowInstanceBo.getNodeName()); + queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowName()), "fd.flow_name", flowInstanceBo.getFlowName()); + queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowCode()), "fd.flow_code", flowInstanceBo.getFlowCode()); + if (StringUtils.isNotBlank(flowInstanceBo.getCategory())) { + List categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowInstanceBo.getCategory())); + queryWrapper.in("fd.category", StreamUtils.toList(categoryIds, Convert::toStr)); + } + queryWrapper.eq(StringUtils.isNotBlank(flowInstanceBo.getBusinessId()), "fi.business_id", flowInstanceBo.getBusinessId()); + queryWrapper.in(CollUtil.isNotEmpty(flowInstanceBo.getCreateByIds()), "fi.create_by", flowInstanceBo.getCreateByIds()); + queryWrapper.eq("fi.del_flag", "0"); + queryWrapper.orderByDesc("fi.create_time"); + return queryWrapper; + } + + /** + * 根据业务id查询流程实例 + * + * @param businessId 业务id + */ + @Override + public FlowInstance selectInstByBusinessId(String businessId) { + return flowInstanceMapper.selectOne(new LambdaQueryWrapper().eq(FlowInstance::getBusinessId, businessId)); + } + + /** + * 按照实例id查询流程实例 + * + * @param instanceId 实例id + */ + @Override + public FlowInstance selectInstById(Long instanceId) { + return flowInstanceMapper.selectById(instanceId); + } + + /** + * 按照实例id查询流程实例 + * + * @param instanceIds 实例id + */ + @Override + public List selectInstListByIdList(List instanceIds) { + return flowInstanceMapper.selectByIds(instanceIds); + } + + /** + * 按照业务id删除流程实例 + * + * @param businessIds 业务id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteByBusinessIds(List businessIds) { + List flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper().in(FlowInstance::getBusinessId, businessIds)); + if (CollUtil.isEmpty(flowInstances)) { + log.warn("未找到对应的流程实例信息,无法执行删除操作。"); + return false; + } + return insService.remove(StreamUtils.toList(flowInstances, FlowInstance::getId)); + } + + /** + * 按照实例id删除流程实例 + * + * @param instanceIds 实例id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteByInstanceIds(List instanceIds) { + // 获取实例信息 + List instances = insService.getByIds(instanceIds); + if (CollUtil.isEmpty(instances)) { + log.warn("未找到对应的流程实例信息,无法执行删除操作。"); + return false; + } + // 获取定义信息 + Map definitionMap = defService.getByIds( + StreamUtils.toList(instances, Instance::getDefinitionId) + ).stream().collect(Collectors.toMap(Definition::getId, definition -> definition)); + + // 逐一触发删除事件 + instances.forEach(instance -> { + Definition definition = definitionMap.get(instance.getDefinitionId()); + if (ObjectUtil.isNull(definition)) { + log.warn("实例 ID: {} 对应的流程定义信息未找到,跳过删除事件触发。", instance.getId()); + return; + } + flowProcessEventHandler.processDeleteHandler(definition.getFlowCode(), instance.getBusinessId()); + }); + + // 删除实例 + return insService.remove(instanceIds); + } + + /** + * 撤销流程 + * + * @param bo 参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean cancelProcessApply(FlowCancelBo bo) { + try { + Instance instance = selectInstByBusinessId(bo.getBusinessId()); + if (instance == null) { + throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE); + } + Definition definition = defService.getById(instance.getDefinitionId()); + if (definition == null) { + throw new ServiceException(ExceptionCons.NOT_FOUNT_DEF); + } + String message = bo.getMessage(); + BusinessStatusEnum.checkCancelStatus(instance.getFlowStatus()); + String applyNodeCode = WorkflowUtils.applyNodeCode(definition.getId()); + //撤销 + WorkflowUtils.backTask(message, instance.getId(), applyNodeCode, BusinessStatusEnum.CANCEL.getStatus(), BusinessStatusEnum.CANCEL.getStatus()); + //判断或签节点是否有多个,只保留一个 + List currentTaskList = taskService.list(FlowEngine.newTask().setInstanceId(instance.getId())); + if (CollUtil.isNotEmpty(currentTaskList)) { + if (currentTaskList.size() > 1) { + currentTaskList.remove(0); + WorkflowUtils.deleteRunTask(StreamUtils.toList(currentTaskList, Task::getId)); + } + } + + } catch (Exception e) { + log.error("撤销失败: {}", e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + return true; + } + + /** + * 获取当前登陆人发起的流程实例 + * + * @param instanceBo 流程实例 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(instanceBo); + queryWrapper.eq("fi.create_by", LoginHelper.getUserIdStr()); + Page page = flwInstanceMapper.selectInstanceList(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 获取流程图,流程记录 + * + * @param businessId 业务id + */ + @Override + public Map flowImage(String businessId) { + FlowInstance flowInstance = this.selectInstByBusinessId(businessId); + if (ObjectUtil.isNull(flowInstance)) { + throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE); + } + Long instanceId = flowInstance.getId(); + //运行中的任务 + List list = new ArrayList<>(); + List flowTaskList = flwTaskService.selectByInstId(instanceId); + if (CollUtil.isNotEmpty(flowTaskList)) { + List flowHisTaskVos = BeanUtil.copyToList(flowTaskList, FlowHisTaskVo.class); + for (FlowHisTaskVo flowHisTaskVo : flowHisTaskVos) { + flowHisTaskVo.setFlowStatus(TaskStatusEnum.WAITING.getStatus()); + flowHisTaskVo.setUpdateTime(null); + flowHisTaskVo.setRunDuration(null); + List allUser = flwTaskService.currentTaskAllUser(flowHisTaskVo.getId()); + if (CollUtil.isNotEmpty(allUser)) { + String join = StreamUtils.join(allUser, e -> String.valueOf(e.getUserId())); + flowHisTaskVo.setApprover(join); + } + if (BusinessStatusEnum.isDraftOrCancelOrBack(flowInstance.getFlowStatus())) { + flowHisTaskVo.setApprover(LoginHelper.getUserIdStr()); + flowHisTaskVo.setApproveName(LoginHelper.getLoginUser().getNickname()); + } + } + list.addAll(flowHisTaskVos); + } + //历史任务 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(FlowHisTask::getInstanceId, instanceId); + wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey()); + wrapper.orderByDesc(FlowHisTask::getCreateTime).orderByDesc(FlowHisTask::getUpdateTime); + List flowHisTasks = flowHisTaskMapper.selectList(wrapper); + if (CollUtil.isNotEmpty(flowHisTasks)) { + list.addAll(BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class)); + } + String flowChart = chartService.chartIns(instanceId); + return Map.of("list", list, "image", flowChart); + } + + /** + * 按照实例id更新状态 + * + * @param instanceId 实例id + * @param status 状态 + */ + @Override + public void updateStatus(Long instanceId, String status) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.set(FlowInstance::getFlowStatus, status); + wrapper.eq(FlowInstance::getId, instanceId); + flowInstanceMapper.update(wrapper); + } + + /** + * 获取流程变量 + * + * @param instanceId 实例id + */ + @Override + public Map instanceVariable(Long instanceId) { + Map map = new HashMap<>(); + FlowInstance flowInstance = flowInstanceMapper.selectById(instanceId); + Map variableMap = flowInstance.getVariableMap(); + List list = new ArrayList<>(); + if (CollUtil.isNotEmpty(variableMap)) { + for (Map.Entry entry : variableMap.entrySet()) { + FlowVariableVo flowVariableVo = new FlowVariableVo(); + flowVariableVo.setKey(entry.getKey()); + flowVariableVo.setValue(entry.getValue().toString()); + list.add(flowVariableVo); + } + } + map.put("variableList", list); + map.put("variable", flowInstance.getVariable()); + return map; + } + + /** + * 设置流程变量 + * + * @param instanceId 实例id + * @param variable 流程变量 + */ + @Override + public void setVariable(Long instanceId, Map variable) { + Instance instance = insService.getById(instanceId); + if (instance != null) { + taskService.mergeVariable(instance, variable); + } + } + + /** + * 按任务id查询实例 + * + * @param taskId 任务id + */ + @Override + public FlowInstance selectByTaskId(Long taskId) { + Task task = taskService.getById(taskId); + if (task == null) { + FlowHisTask flowHisTask = flwTaskService.selectHisTaskById(taskId); + if (flowHisTask != null) { + return this.selectInstById(flowHisTask.getInstanceId()); + } + } else { + return this.selectInstById(task.getInstanceId()); + } + return null; + } + + /** + * 按任务id查询实例 + * + * @param taskIdList 任务id + */ + @Override + public List selectByTaskIdList(List taskIdList) { + if (CollUtil.isEmpty(taskIdList)) { + return Collections.emptyList(); + } + Set instanceIds = new HashSet<>(); + List flowTaskList = flwTaskService.selectByIdList(taskIdList); + for (FlowTask flowTask : flowTaskList) { + instanceIds.add(flowTask.getInstanceId()); + } + List flowHisTaskList = flwTaskService.selectHisTaskByIdList(taskIdList); + for (FlowHisTask flowHisTask : flowHisTaskList) { + instanceIds.add(flowHisTask.getInstanceId()); + } + if (!instanceIds.isEmpty()) { + return this.selectInstListByIdList(new ArrayList<>(instanceIds)); + } + return Collections.emptyList(); + } + + /** + * 作废流程 + * + * @param bo 参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean processInvalid(FlowInvalidBo bo) { + try { + Instance instance = insService.getById(bo.getId()); + if (instance != null) { + BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus()); + } + List flowTaskList = flwTaskService.selectByInstId(bo.getId()); + for (FlowTask flowTask : flowTaskList) { + FlowParams flowParams = new FlowParams(); + flowParams.message(bo.getComment()); + flowParams.flowStatus(BusinessStatusEnum.INVALID.getStatus()) + .hisStatus(TaskStatusEnum.INVALID.getStatus()); + flowParams.ignore(true); + taskService.termination(flowTask.getId(), flowParams); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java new file mode 100644 index 0000000..5877bb5 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java @@ -0,0 +1,165 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.DeptDTO; +import org.dromara.common.core.domain.dto.TaskAssigneeDTO; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.domain.model.TaskAssigneeBody; +import org.dromara.common.core.enums.FormatsType; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.DeptService; +import org.dromara.common.core.service.TaskAssigneeService; +import org.dromara.common.core.service.UserService; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.warm.flow.ui.dto.HandlerFunDto; +import org.dromara.warm.flow.ui.dto.HandlerQuery; +import org.dromara.warm.flow.ui.dto.TreeFunDto; +import org.dromara.warm.flow.ui.service.HandlerSelectService; +import org.dromara.warm.flow.ui.vo.HandlerSelectVo; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.enums.TaskAssigneeEnum; +import org.dromara.workflow.service.IFlwTaskAssigneeService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * 流程设计器-获取办理人权限设置列表 + * + * @author AprilWind + */ +@ConditionalOnEnable +@Slf4j +@RequiredArgsConstructor +@Service +public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, HandlerSelectService { + + private static final String DEFAULT_GROUP_NAME = "默认分组"; + private final TaskAssigneeService taskAssigneeService; + private final UserService userService; + private final DeptService deptService; + + /** + * 获取办理人权限设置列表tabs页签 + * + * @return tabs页签 + */ + @Override + public List getHandlerType() { + return TaskAssigneeEnum.getAssigneeTypeList(); + } + + /** + * 获取办理列表, 同时构建左侧部门树状结构 + * + * @param query 查询条件 + * @return HandlerSelectVo + */ + @Override + public HandlerSelectVo getHandlerSelect(HandlerQuery query) { + // 获取任务办理类型 + TaskAssigneeEnum type = TaskAssigneeEnum.fromDesc(query.getHandlerType()); + // 转换查询条件为 TaskAssigneeBody + TaskAssigneeBody taskQuery = BeanUtil.toBean(query, TaskAssigneeBody.class); + + // 统一查询并构建业务数据 + TaskAssigneeDTO dto = fetchTaskAssigneeData(type, taskQuery); + List depts = fetchDeptData(type); + + return getHandlerSelectVo(buildHandlerData(dto, type), buildDeptTree(depts)); + } + + /** + * 根据任务办理类型查询对应的数据 + */ + private TaskAssigneeDTO fetchTaskAssigneeData(TaskAssigneeEnum type, TaskAssigneeBody taskQuery) { + return switch (type) { + case USER -> taskAssigneeService.selectUsersByTaskAssigneeList(taskQuery); + case ROLE -> taskAssigneeService.selectRolesByTaskAssigneeList(taskQuery); + case DEPT -> taskAssigneeService.selectDeptsByTaskAssigneeList(taskQuery); + case POST -> taskAssigneeService.selectPostsByTaskAssigneeList(taskQuery); + default -> throw new ServiceException("Unsupported handler type"); + }; + } + + /** + * 根据任务办理类型获取部门数据 + */ + private List fetchDeptData(TaskAssigneeEnum type) { + if (type == TaskAssigneeEnum.USER || type == TaskAssigneeEnum.DEPT || type == TaskAssigneeEnum.POST) { + return deptService.selectDeptsByList(); + } + return new ArrayList<>(); + } + + /** + * 构建部门树状结构 + */ + private TreeFunDto buildDeptTree(List depts) { + return new TreeFunDto<>(depts) + .setId(dept -> String.valueOf(dept.getDeptId())) + .setName(DeptDTO::getDeptName) + .setParentId(dept -> String.valueOf(dept.getParentId())); + } + + /** + * 构建任务办理人数据 + */ + private HandlerFunDto buildHandlerData(TaskAssigneeDTO dto, TaskAssigneeEnum type) { + return new HandlerFunDto<>(dto.getList(), dto.getTotal()) + .setStorageId(assignee -> type.getCode() + assignee.getStorageId()) + .setHandlerCode(assignee -> StringUtils.blankToDefault(assignee.getHandlerCode(), "无")) + .setHandlerName(assignee -> StringUtils.blankToDefault(assignee.getHandlerName(), "无")) + .setGroupName(assignee -> StringUtils.defaultIfBlank( + Optional.ofNullable(assignee.getGroupName()) + .map(deptService::selectDeptNameByIds) + .orElse(DEFAULT_GROUP_NAME), DEFAULT_GROUP_NAME)) + .setCreateTime(assignee -> DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime())); + } + + /** + * 根据存储标识符(storageId)解析分配类型和ID,并获取对应的用户列表 + * + * @param storageId 包含分配类型和ID的字符串(例如 "user:123" 或 "role:456") + * @return 与分配类型和ID匹配的用户列表,如果格式无效则返回空列表 + */ + @Override + public List fetchUsersByStorageId(String storageId) { + List list = new ArrayList<>(); + for (String str : storageId.split(StrUtil.COMMA)) { + String[] parts = str.split(StrUtil.COLON, 2); + if (parts.length < 2) { + list.addAll(getUsersByType(TaskAssigneeEnum.USER, List.of(Long.valueOf(parts[0])))); + } else { + list.addAll(getUsersByType(TaskAssigneeEnum.fromCode(parts[0] + StrUtil.COLON), List.of(Long.valueOf(parts[1])))); + } + } + return list; + } + + /** + * 根据指定的任务分配类型(TaskAssigneeEnum)和 ID 列表,获取对应的用户信息列表 + * + * @param type 任务分配类型,表示用户、角色、部门或其他(TaskAssigneeEnum 枚举值) + * @param ids 与指定分配类型关联的 ID 列表(例如用户ID、角色ID、部门ID等) + * @return 返回包含用户信息的列表。如果类型为用户(USER),则通过用户ID列表查询; + * 如果类型为角色(ROLE),则通过角色ID列表查询; + * 如果类型为部门(DEPT),则通过部门ID列表查询; + * 如果类型为岗位(POST)或无法识别的类型,则返回空列表 + */ + private List getUsersByType(TaskAssigneeEnum type, List ids) { + return switch (type) { + case USER -> userService.selectListByIds(ids); + case ROLE -> userService.selectUsersByRoleIds(ids); + case DEPT -> userService.selectUsersByDeptIds(ids); + case POST -> userService.selectUsersByPostIds(ids); + }; + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java new file mode 100644 index 0000000..21a54d7 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -0,0 +1,687 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.StartProcessReturnDTO; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.UserService; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +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.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.warm.flow.core.dto.FlowParams; +import org.dromara.warm.flow.core.entity.*; +import org.dromara.warm.flow.core.enums.NodeType; +import org.dromara.warm.flow.core.enums.SkipType; +import org.dromara.warm.flow.core.service.*; +import org.dromara.warm.flow.orm.entity.*; +import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; +import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper; +import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.common.enums.TaskAssigneeType; +import org.dromara.workflow.common.enums.TaskStatusEnum; +import org.dromara.workflow.domain.bo.*; +import org.dromara.workflow.domain.vo.FlowHisTaskVo; +import org.dromara.workflow.domain.vo.FlowTaskVo; +import org.dromara.workflow.handler.FlowProcessEventHandler; +import org.dromara.workflow.handler.WorkflowPermissionHandler; +import org.dromara.workflow.mapper.FlwCategoryMapper; +import org.dromara.workflow.mapper.FlwTaskMapper; +import org.dromara.workflow.service.IFlwTaskService; +import org.dromara.workflow.utils.WorkflowUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +import static org.dromara.workflow.common.constant.FlowConstant.*; + +/** + * 任务 服务层实现 + * + * @author may + */ +@ConditionalOnEnable +@Slf4j +@RequiredArgsConstructor +@Service +public class FlwTaskServiceImpl implements IFlwTaskService { + + private final TaskService taskService; + private final InsService insService; + private final DefService defService; + private final HisTaskService hisTaskService; + private final NodeService nodeService; + private final FlowInstanceMapper flowInstanceMapper; + private final FlowTaskMapper flowTaskMapper; + private final FlowHisTaskMapper flowHisTaskMapper; + private final IdentifierGenerator identifierGenerator; + private final FlowProcessEventHandler flowProcessEventHandler; + private final UserService userService; + private final FlwTaskMapper flwTaskMapper; + private final FlwCategoryMapper flwCategoryMapper; + + /** + * 启动任务 + * + * @param startProcessBo 启动流程参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo) { + String businessId = startProcessBo.getBusinessId(); + if (StringUtils.isBlank(businessId)) { + throw new ServiceException("启动工作流时必须包含业务ID"); + } + // 启动流程实例(提交申请) + Map variables = startProcessBo.getVariables(); + // 流程发起人 + variables.put(INITIATOR, LoginHelper.getUserIdStr()); + // 业务id + variables.put(BUSINESS_ID, businessId); + FlowInstance flowInstance = flowInstanceMapper.selectOne(new LambdaQueryWrapper<>(FlowInstance.class) + .eq(FlowInstance::getBusinessId, businessId)); + if (ObjectUtil.isNotNull(flowInstance)) { + BusinessStatusEnum.checkStartStatus(flowInstance.getFlowStatus()); + List taskList = taskService.list(new FlowTask().setInstanceId(flowInstance.getId())); + StartProcessReturnDTO dto = new StartProcessReturnDTO(); + dto.setProcessInstanceId(taskList.get(0).getInstanceId()); + dto.setTaskId(taskList.get(0).getId()); + return dto; + } + FlowParams flowParams = new FlowParams(); + flowParams.flowCode(startProcessBo.getFlowCode()); + flowParams.variable(startProcessBo.getVariables()); + flowParams.flowStatus(BusinessStatusEnum.DRAFT.getStatus()); + Instance instance; + try { + instance = insService.start(businessId, flowParams); + } catch (Exception e) { + throw new ServiceException(e.getMessage()); + } + // 申请人执行流程 + List taskList = taskService.list(new FlowTask().setInstanceId(instance.getId())); + if (taskList.size() > 1) { + throw new ServiceException("请检查流程第一个环节是否为申请人!"); + } + StartProcessReturnDTO dto = new StartProcessReturnDTO(); + dto.setProcessInstanceId(instance.getId()); + dto.setTaskId(taskList.get(0).getId()); + return dto; + } + + /** + * 办理任务 + * + * @param completeTaskBo 办理任务参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean completeTask(CompleteTaskBo completeTaskBo) { + try { + // 获取任务ID并查询对应的流程任务和实例信息 + Long taskId = completeTaskBo.getTaskId(); + List messageType = completeTaskBo.getMessageType(); + String notice = completeTaskBo.getNotice(); + // 获取抄送人 + List flowCopyList = completeTaskBo.getFlowCopyList(); + FlowTask flowTask = flowTaskMapper.selectById(taskId); + if (ObjectUtil.isNull(flowTask)) { + throw new ServiceException("流程任务不存在或任务已审批!"); + } + Instance ins = insService.getById(flowTask.getInstanceId()); + // 获取流程定义信息 + Definition definition = defService.getById(flowTask.getDefinitionId()); + // 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听 + if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) { + flowProcessEventHandler.processHandler(definition.getFlowCode(), ins.getBusinessId(), ins.getFlowStatus(), null, true); + } + // 构建流程参数,包括变量、跳转类型、消息、处理人、权限等信息 + FlowParams flowParams = new FlowParams(); + flowParams.variable(completeTaskBo.getVariables()); + flowParams.skipType(SkipType.PASS.getKey()); + flowParams.message(completeTaskBo.getMessage()); + flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus()); + + flowParams.hisTaskExt(completeTaskBo.getFileId()); + // 执行任务跳转,并根据返回的处理人设置下一步处理人 + Instance instance = taskService.skip(taskId, flowParams); + this.setHandler(instance, flowTask, flowCopyList); + // 消息通知 + WorkflowUtils.sendMessage(definition.getFlowName(), ins.getId(), messageType, notice); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 设置办理人 + * + * @param instance 实例 + * @param task (当前任务)未办理的任务 + * @param flowCopyList 抄送人 + */ + private void setHandler(Instance instance, FlowTask task, List flowCopyList) { + if (ObjectUtil.isNull(instance)) { + return; + } + // 添加抄送人 + this.setCopy(task, flowCopyList); + // 根据流程实例ID查询所有关联的任务 + List flowTasks = this.selectByInstId(instance.getId()); + if (CollUtil.isEmpty(flowTasks)) { + return; + } + List taskIdList = StreamUtils.toList(flowTasks, FlowTask::getId); + // 获取与当前任务关联的用户列表 + List associatedUsers = WorkflowUtils.getFlowUserService().getByAssociateds(taskIdList); + if (CollUtil.isEmpty(associatedUsers)) { + return; + } + List userList = new ArrayList<>(); + // 遍历任务列表,处理每个任务的办理人 + for (FlowTask flowTask : flowTasks) { + List users = StreamUtils.filter(associatedUsers, user -> Objects.equals(user.getAssociated(), flowTask.getId())); + if (CollUtil.isNotEmpty(users)) { + userList.addAll(WorkflowUtils.buildUser(users, flowTask.getId())); + } + } + // 批量删除现有任务的办理人记录 + WorkflowUtils.getFlowUserService().deleteByTaskIds(taskIdList); + // 确保要保存的 userList 不为空 + if (CollUtil.isEmpty(userList)) { + return; + } + WorkflowUtils.getFlowUserService().saveBatch(userList); + } + + /** + * 添加抄送人 + * + * @param task 任务信息 + * @param flowCopyList 抄送人 + */ + public void setCopy(FlowTask task, List flowCopyList) { + if (CollUtil.isEmpty(flowCopyList)) { + return; + } + // 添加抄送人记录 + FlowHisTask flowHisTask = flowHisTaskMapper.selectList(new LambdaQueryWrapper<>(FlowHisTask.class).eq(FlowHisTask::getTaskId, task.getId())).get(0); + FlowNode flowNode = new FlowNode(); + flowNode.setNodeCode(flowHisTask.getTargetNodeCode()); + flowNode.setNodeName(flowHisTask.getTargetNodeName()); + //生成新的任务id + long taskId = identifierGenerator.nextId(null).longValue(); + task.setId(taskId); + task.setNodeName("【抄送】" + task.getNodeName()); + Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000); + FlowParams flowParams = FlowParams.build(); + flowParams.skipType(SkipType.NONE.getKey()); + flowParams.hisStatus(TaskStatusEnum.COPY.getStatus()); + flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName)); + HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams); + hisTask.setCreateTime(updateTime); + hisTask.setUpdateTime(updateTime); + hisTaskService.save(hisTask); + List userList = flowCopyList.stream() + .map(flowCopy -> { + FlowUser flowUser = new FlowUser(); + flowUser.setType(TaskAssigneeType.COPY.getCode()); + flowUser.setProcessedBy(String.valueOf(flowCopy.getUserId())); + flowUser.setAssociated(taskId); + return flowUser; + }).collect(Collectors.toList()); + // 批量保存抄送人员 + WorkflowUtils.getFlowUserService().saveBatch(userList); + } + + /** + * 查询当前用户的待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowTaskBo); + queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey()); + queryWrapper.in("t.processed_by", SpringUtils.getBean(WorkflowPermissionHandler.class).permissions()); + queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus()); + Page page = this.getFlowTaskVoPage(pageQuery, queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 查询当前用户的已办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowTaskBo); + queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey()); + queryWrapper.in("t.approver", LoginHelper.getUserIdStr()); + queryWrapper.orderByDesc("t.create_time").orderByDesc("t.update_time"); + Page page = flwTaskMapper.getListFinishTask(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 查询待办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowTaskBo); + queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey()); + Page page = getFlowTaskVoPage(pageQuery, queryWrapper); + return TableDataInfo.build(page); + } + + private Page getFlowTaskVoPage(PageQuery pageQuery, QueryWrapper queryWrapper) { + Page page = flwTaskMapper.getListRunTask(pageQuery.build(), queryWrapper); + List records = page.getRecords(); + if (CollUtil.isNotEmpty(records)) { + List taskIds = StreamUtils.toList(records, FlowTaskVo::getId); + Map> listMap = currentTaskAllUser(taskIds); + records.forEach(t -> { + List userList = listMap.getOrDefault(t.getId(), Collections.emptyList()); + if (CollUtil.isNotEmpty(userList)) { + t.setAssigneeIds(StreamUtils.join(userList, e -> String.valueOf(e.getUserId()))); + t.setAssigneeNames(StreamUtils.join(userList, UserDTO::getNickName)); + } + }); + } + return page; + } + + /** + * 查询已办任务 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowTaskBo); + Page page = flwTaskMapper.getListFinishTask(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + /** + * 查询当前用户的抄送 + * + * @param flowTaskBo 参数 + * @param pageQuery 分页 + */ + @Override + public TableDataInfo pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) { + QueryWrapper queryWrapper = buildQueryWrapper(flowTaskBo); + queryWrapper.in("t.processed_by", LoginHelper.getUserIdStr()); + Page page = flwTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper); + return TableDataInfo.build(page); + } + + private QueryWrapper buildQueryWrapper(FlowTaskBo flowTaskBo) { + QueryWrapper wrapper = Wrappers.query(); + wrapper.like(StringUtils.isNotBlank(flowTaskBo.getNodeName()), "t.node_name", flowTaskBo.getNodeName()); + wrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowName()), "t.flow_name", flowTaskBo.getFlowName()); + wrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowCode()), "t.flow_code", flowTaskBo.getFlowCode()); + wrapper.in(CollUtil.isNotEmpty(flowTaskBo.getCreateByIds()), "t.create_by", flowTaskBo.getCreateByIds()); + if (StringUtils.isNotBlank(flowTaskBo.getCategory())) { + List categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory())); + wrapper.in("t.category", StreamUtils.toList(categoryIds, Convert::toStr)); + } + wrapper.orderByDesc("t.create_time"); + return wrapper; + } + + /** + * 驳回任务 + * + * @param bo 参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean backProcess(BackProcessBo bo) { + try { + Long taskId = bo.getTaskId(); + String notice = bo.getNotice(); + List messageType = bo.getMessageType(); + String message = bo.getMessage(); + FlowTask task = flowTaskMapper.selectById(taskId); + if (ObjectUtil.isNull(task)) { + throw new ServiceException("任务不存在!"); + } + Instance inst = insService.getById(task.getInstanceId()); + BusinessStatusEnum.checkBackStatus(inst.getFlowStatus()); + Long definitionId = task.getDefinitionId(); + Definition definition = defService.getById(definitionId); + String applyNodeCode = WorkflowUtils.applyNodeCode(definitionId); + FlowParams flowParams = FlowParams.build(); + flowParams.nodeCode(bo.getNodeCode()); + flowParams.message(message); + flowParams.skipType(SkipType.REJECT.getKey()); + flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus()) + .hisStatus(TaskStatusEnum.BACK.getStatus()); + flowParams.hisTaskExt(bo.getFileId()); + taskService.skip(task.getId(), flowParams); + + Instance instance = insService.getById(inst.getId()); + this.setHandler(instance, task, null); + // 消息通知 + WorkflowUtils.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 获取可驳回的前置节点 + * + * @param definitionId 流程定义id + * @param nowNodeCode 当前节点 + */ + @Override + public List getBackTaskNode(Long definitionId, String nowNodeCode) { + List nodeCodes = nodeService.getByNodeCodes(Collections.singletonList(nowNodeCode), definitionId); + if (!CollUtil.isNotEmpty(nodeCodes)) { + return nodeCodes; + } + //判断是否配置了固定驳回节点 + Node node = nodeCodes.get(0); + if (StringUtils.isNotBlank(node.getAnyNodeSkip())) { + return nodeService.getByNodeCodes(Collections.singletonList(node.getAnyNodeSkip()), definitionId); + } + //获取可驳回的前置节点 + List nodes = nodeService.previousNodeList(definitionId, nowNodeCode); + if (CollUtil.isNotEmpty(nodes)) { + return StreamUtils.filter(nodes, e -> NodeType.BETWEEN.getKey().equals(e.getNodeType())); + } + return nodes; + } + + /** + * 终止任务 + * + * @param bo 参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean terminationTask(FlowTerminationBo bo) { + try { + Long taskId = bo.getTaskId(); + Task task = taskService.getById(taskId); + if (task == null) { + throw new ServiceException("任务不存在!"); + } + Instance instance = insService.getById(task.getInstanceId()); + if (ObjectUtil.isNotNull(instance)) { + BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus()); + } + FlowParams flowParams = new FlowParams(); + flowParams.message(bo.getComment()); + flowParams.flowStatus(BusinessStatusEnum.TERMINATION.getStatus()) + .hisStatus(TaskStatusEnum.TERMINATION.getStatus()); + taskService.termination(taskId, flowParams); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 按照任务id查询任务 + * + * @param taskIdList 任务id + */ + @Override + public List selectByIdList(List taskIdList) { + return flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) + .in(FlowTask::getId, taskIdList)); + } + + /** + * 按照任务id查询任务 + * + * @param taskId 任务id + */ + @Override + public FlowTaskVo selectById(Long taskId) { + Task task = taskService.getById(taskId); + if (ObjectUtil.isNull(task)) { + return null; + } + FlowTaskVo flowTaskVo = BeanUtil.toBean(task, FlowTaskVo.class); + Instance instance = insService.getById(task.getInstanceId()); + Definition definition = defService.getById(task.getDefinitionId()); + flowTaskVo.setFlowStatus(instance.getFlowStatus()); + flowTaskVo.setVersion(definition.getVersion()); + flowTaskVo.setFlowCode(definition.getFlowCode()); + flowTaskVo.setFlowName(definition.getFlowName()); + flowTaskVo.setBusinessId(instance.getBusinessId()); + List nodeList = nodeService.getByNodeCodes(Collections.singletonList(flowTaskVo.getNodeCode()), instance.getDefinitionId()); + if (CollUtil.isNotEmpty(nodeList)) { + Node node = nodeList.get(0); + flowTaskVo.setNodeRatio(node.getNodeRatio()); + } + return flowTaskVo; + } + + /** + * 按照任务id查询任务 + * + * @param taskIdList 任务id + * @return 结果 + */ + @Override + public List selectHisTaskByIdList(List taskIdList) { + return flowHisTaskMapper.selectList(new LambdaQueryWrapper<>(FlowHisTask.class) + .in(FlowHisTask::getId, taskIdList)); + } + + /** + * 按照任务id查询任务 + * + * @param taskId 任务id + * @return 结果 + */ + @Override + public FlowHisTask selectHisTaskById(Long taskId) { + return flowHisTaskMapper.selectOne(new LambdaQueryWrapper<>(FlowHisTask.class) + .eq(FlowHisTask::getId, taskId)); + } + + /** + * 按照实例id查询任务 + * + * @param instanceIdList 流程实例id + */ + @Override + public List selectByInstIdList(List instanceIdList) { + return flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) + .in(FlowTask::getInstanceId, instanceIdList)); + } + + /** + * 按照实例id查询任务 + * + * @param instanceId 流程实例id + */ + @Override + public List selectByInstId(Long instanceId) { + return flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) + .eq(FlowTask::getInstanceId, instanceId)); + } + + /** + * 任务操作 + * + * @param bo 参数 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean taskOperation(TaskOperationBo bo, String taskOperation) { + FlowParams flowParams = new FlowParams(); + flowParams.message(bo.getMessage()); + if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) { + flowParams.ignore(true); + } + + // 根据操作类型构建 FlowParams + switch (taskOperation) { + case DELEGATE_TASK, TRANSFER_TASK -> { + ValidatorUtils.validate(bo, AddGroup.class); + flowParams.addHandlers(Collections.singletonList(bo.getUserId())); + } + case ADD_SIGNATURE -> { + ValidatorUtils.validate(bo, EditGroup.class); + flowParams.addHandlers(bo.getUserIds()); + } + case REDUCTION_SIGNATURE -> { + ValidatorUtils.validate(bo, EditGroup.class); + flowParams.reductionHandlers(bo.getUserIds()); + } + default -> { + log.error("Invalid operation type:{} ", taskOperation); + throw new ServiceException("Invalid operation type " + taskOperation); + } + } + + Long taskId = bo.getTaskId(); + FlowTaskVo flowTaskVo = selectById(taskId); + if ("addSignature".equals(taskOperation) || "reductionSignature".equals(taskOperation)) { + if (flowTaskVo.getNodeRatio().compareTo(BigDecimal.ZERO) == 0) { + throw new ServiceException(flowTaskVo.getNodeName() + "不是会签节点!"); + } + } + // 设置任务状态并执行对应的任务操作 + switch (taskOperation) { + //委派任务 + case DELEGATE_TASK -> { + flowParams.hisStatus(TaskStatusEnum.DEPUTE.getStatus()); + return taskService.depute(taskId, flowParams); + } + //转办任务 + case TRANSFER_TASK -> { + flowParams.hisStatus(TaskStatusEnum.TRANSFER.getStatus()); + return taskService.transfer(taskId, flowParams); + } + //加签,增加办理人 + case ADD_SIGNATURE -> { + flowParams.hisStatus(TaskStatusEnum.SIGN.getStatus()); + return taskService.addSignature(taskId, flowParams); + } + //减签,减少办理人 + case REDUCTION_SIGNATURE -> { + flowParams.hisStatus(TaskStatusEnum.SIGN_OFF.getStatus()); + return taskService.reductionSignature(taskId, flowParams); + } + default -> { + log.error("Invalid operation type:{} ", taskOperation); + throw new ServiceException("Invalid operation type " + taskOperation); + } + } + } + + /** + * 修改任务办理人(此方法将会批量修改所有任务的办理人) + * + * @param taskIdList 任务id + * @param userId 用户id + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateAssignee(List taskIdList, String userId) { + if (CollUtil.isEmpty(taskIdList)) { + return false; + } + try { + List flowTasks = this.selectByIdList(taskIdList); + // 批量删除现有任务的办理人记录 + if (CollUtil.isNotEmpty(flowTasks)) { + WorkflowUtils.getFlowUserService().deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId)); + List userList = flowTasks.stream() + .map(flowTask -> { + FlowUser flowUser = new FlowUser(); + flowUser.setType(TaskAssigneeType.APPROVER.getCode()); + flowUser.setProcessedBy(userId); + flowUser.setAssociated(flowTask.getId()); + return flowUser; + }) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(userList)) { + WorkflowUtils.getFlowUserService().saveBatch(userList); + } + } + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + return true; + } + + /** + * 获取任务所有办理人 + * + * @param taskIdList 任务id + */ + @Override + public Map> currentTaskAllUser(List taskIdList) { + Map> map = new HashMap<>(); + // 获取与当前任务关联的用户列表 + List associatedUsers = WorkflowUtils.getFlowUserService().getByAssociateds(taskIdList); + Map> listMap = StreamUtils.groupByKey(associatedUsers, User::getAssociated); + for (Map.Entry> entry : listMap.entrySet()) { + List value = entry.getValue(); + if (CollUtil.isNotEmpty(value)) { + List userDTOS = userService.selectListByIds(StreamUtils.toList(value, e -> Long.valueOf(e.getProcessedBy()))); + map.put(entry.getKey(), userDTOS); + } + } + return map; + } + + /** + * 获取当前任务的所有办理人 + * + * @param taskId 任务id + */ + @Override + public List currentTaskAllUser(Long taskId) { + // 获取与当前任务关联的用户列表 + List userList = WorkflowUtils.getFlowUserService().getByAssociateds(Collections.singletonList(taskId)); + if (CollUtil.isEmpty(userList)) { + return Collections.emptyList(); + } + return userService.selectListByIds(StreamUtils.toList(userList, e -> Long.valueOf(e.getProcessedBy()))); + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java new file mode 100644 index 0000000..2c43173 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java @@ -0,0 +1,188 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessDeleteEvent; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.service.WorkflowService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.TestLeave; +import org.dromara.workflow.domain.bo.TestLeaveBo; +import org.dromara.workflow.domain.vo.TestLeaveVo; +import org.dromara.workflow.mapper.TestLeaveMapper; +import org.dromara.workflow.service.ITestLeaveService; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + * 请假Service业务层处理 + * + * @author may + * @date 2023-07-21 + */ +@ConditionalOnEnable +@RequiredArgsConstructor +@Service +@Slf4j +public class TestLeaveServiceImpl implements ITestLeaveService { + + private final TestLeaveMapper baseMapper; + private final WorkflowService workflowService; + + /** + * 查询请假 + */ + @Override + public TestLeaveVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 查询请假列表 + */ + @Override + public TableDataInfo queryPageList(TestLeaveBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询请假列表 + */ + @Override + public List queryList(TestLeaveBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(TestLeaveBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getLeaveType()), TestLeave::getLeaveType, bo.getLeaveType()); + lqw.ge(bo.getStartLeaveDays() != null, TestLeave::getLeaveDays, bo.getStartLeaveDays()); + lqw.le(bo.getEndLeaveDays() != null, TestLeave::getLeaveDays, bo.getEndLeaveDays()); + lqw.orderByDesc(BaseEntity::getCreateTime); + return lqw; + } + + /** + * 新增请假 + */ + @Override + public TestLeaveVo insertByBo(TestLeaveBo bo) { + long day = DateUtil.betweenDay(bo.getStartDate(), bo.getEndDate(), true); + // 截止日期也算一天 + bo.setLeaveDays((int) day + 1); + TestLeave add = MapstructUtils.convert(bo, TestLeave.class); + if (StringUtils.isBlank(add.getStatus())) { + add.setStatus(BusinessStatusEnum.DRAFT.getStatus()); + } + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return MapstructUtils.convert(add, TestLeaveVo.class); + } + + /** + * 修改请假 + */ + @Override + public TestLeaveVo updateByBo(TestLeaveBo bo) { + TestLeave update = MapstructUtils.convert(bo, TestLeave.class); + baseMapper.updateById(update); + return MapstructUtils.convert(update, TestLeaveVo.class); + } + + /** + * 批量删除请假 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(List ids) { + workflowService.deleteInstance(ids); + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等) + * 正常使用只需#processEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processEvent 参数 + */ + @EventListener(condition = "#processEvent.flowCode.startsWith('leave')") + public void processHandler(ProcessEvent processEvent) { + log.info("当前任务执行了{}", processEvent.toString()); + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processEvent.getBusinessId())); + testLeave.setStatus(processEvent.getStatus()); + // 用于例如审批附件 审批意见等 存储到业务表内 自行根据业务实现存储流程 + Map params = processEvent.getParams(); + if (MapUtil.isNotEmpty(params)) { + // 历史任务扩展(通常为附件) + String hisTaskExt = Convert.toStr(params.get("hisTaskExt")); + // 办理人 + String handler = Convert.toStr(params.get("handler")); + // 办理意见 + String message = Convert.toStr(params.get("message")); + } + if (processEvent.isSubmit()) { + testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); + } + baseMapper.updateById(testLeave); + } + + /** + * 执行办理任务监听 + * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 + * 在方法中判断流程节点key + * if ("xxx".equals(processTaskEvent.getNodeCode())) { + * //执行业务逻辑 + * } + * + * @param processTaskEvent 参数 + */ + @EventListener(condition = "#processTaskEvent.flowCode.startsWith('leave')") + public void processTaskHandler(ProcessTaskEvent processTaskEvent) { + log.info("当前任务执行了{}", processTaskEvent.toString()); + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessId())); + testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); + baseMapper.updateById(testLeave); + } + + /** + * 监听删除流程事件 + * 正常使用只需#processDeleteEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processDeleteEvent 参数 + */ + @EventListener(condition = "#processDeleteEvent.flowCode.startsWith('leave')") + public void processDeleteHandler(ProcessDeleteEvent processDeleteEvent) { + log.info("监听删除流程事件,当前任务执行了{}", processDeleteEvent.toString()); + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processDeleteEvent.getBusinessId())); + if (ObjectUtil.isNull(testLeave)) { + return; + } + baseMapper.deleteById(testLeave.getId()); + } + +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java new file mode 100644 index 0000000..f8a20b5 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java @@ -0,0 +1,132 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.dto.CompleteTaskDTO; +import org.dromara.common.core.domain.dto.StartProcessDTO; +import org.dromara.common.core.domain.dto.StartProcessReturnDTO; +import org.dromara.common.core.service.WorkflowService; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.CompleteTaskBo; +import org.dromara.workflow.domain.bo.StartProcessBo; +import org.dromara.workflow.service.IFlwDefinitionService; +import org.dromara.workflow.service.IFlwInstanceService; +import org.dromara.workflow.service.IFlwTaskService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 通用 工作流服务实现 + * + * @author may + */ +@ConditionalOnEnable +@RequiredArgsConstructor +@Service +public class WorkflowServiceImpl implements WorkflowService { + + private final IFlwInstanceService flwInstanceService; + private final IFlwDefinitionService flwDefinitionService; + private final IFlwTaskService flwTaskService; + + /** + * 删除流程实例 + * + * @param businessIds 业务id + * @return 结果 + */ + @Override + public boolean deleteInstance(List businessIds) { + return flwInstanceService.deleteByBusinessIds(businessIds); + } + + /** + * 获取当前流程状态 + * + * @param taskId 任务id + */ + @Override + public String getBusinessStatusByTaskId(Long taskId) { + FlowInstance flowInstance = flwInstanceService.selectByTaskId(taskId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getFlowStatus() : StringUtils.EMPTY; + } + + /** + * 获取当前流程状态 + * + * @param businessId 业务id + */ + @Override + public String getBusinessStatus(String businessId) { + FlowInstance flowInstance = flwInstanceService.selectInstByBusinessId(businessId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getFlowStatus() : StringUtils.EMPTY; + } + + /** + * 设置流程变量 + * + * @param instanceId 流程实例id + * @param variables 流程变量 + */ + @Override + public void setVariable(Long instanceId, Map variables) { + flwInstanceService.setVariable(instanceId, variables); + } + + /** + * 获取流程变量 + * + * @param instanceId 流程实例id + */ + @Override + public Map instanceVariable(Long instanceId) { + return flwInstanceService.instanceVariable(instanceId); + } + + /** + * 按照业务id查询流程实例id + * + * @param businessId 业务id + * @return 结果 + */ + @Override + public Long getInstanceIdByBusinessId(String businessId) { + FlowInstance flowInstance = flwInstanceService.selectInstByBusinessId(businessId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getId() : null; + } + + /** + * 新增租户流程定义 + * + * @param tenantId 租户id + */ + @Override + public void syncDef(String tenantId) { + flwDefinitionService.syncDef(tenantId); + } + + /** + * 启动流程 + * + * @param startProcess 参数 + */ + @Override + public StartProcessReturnDTO startWorkFlow(StartProcessDTO startProcess) { + return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class)); + } + + /** + * 办理任务 + * + * @param completeTask 参数 + */ + @Override + public boolean completeTask(CompleteTaskDTO completeTask) { + return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class)); + } +} diff --git a/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java new file mode 100644 index 0000000..e48ffc8 --- /dev/null +++ b/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -0,0 +1,206 @@ +package org.dromara.workflow.utils; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mail.utils.MailUtils; +import org.dromara.common.sse.dto.SseMessageDto; +import org.dromara.common.sse.utils.SseMessageUtils; +import org.dromara.warm.flow.core.constant.ExceptionCons; +import org.dromara.warm.flow.core.dto.FlowParams; +import org.dromara.warm.flow.core.entity.Node; +import org.dromara.warm.flow.core.entity.Task; +import org.dromara.warm.flow.core.entity.User; +import org.dromara.warm.flow.core.enums.NodeType; +import org.dromara.warm.flow.core.enums.SkipType; +import org.dromara.warm.flow.core.service.NodeService; +import org.dromara.warm.flow.core.service.TaskService; +import org.dromara.warm.flow.core.service.UserService; +import org.dromara.warm.flow.core.utils.AssertUtil; +import org.dromara.warm.flow.orm.entity.FlowNode; +import org.dromara.warm.flow.orm.entity.FlowTask; +import org.dromara.warm.flow.orm.entity.FlowUser; +import org.dromara.warm.flow.orm.mapper.FlowNodeMapper; +import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; +import org.dromara.workflow.common.enums.MessageTypeEnum; +import org.dromara.workflow.service.IFlwTaskAssigneeService; +import org.dromara.workflow.service.IFlwTaskService; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + + +/** + * 工作流工具 + * + * @author may + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class WorkflowUtils { + + private static final IFlwTaskAssigneeService TASK_ASSIGNEE_SERVICE = SpringUtils.getBean(IFlwTaskAssigneeService.class); + private static final IFlwTaskService FLW_TASK_SERVICE = SpringUtils.getBean(IFlwTaskService.class); + private static final FlowNodeMapper FLOW_NODE_MAPPER = SpringUtils.getBean(FlowNodeMapper.class); + private static final FlowTaskMapper FLOW_TASK_MAPPER = SpringUtils.getBean(FlowTaskMapper.class); + private static final UserService USER_SERVICE = SpringUtils.getBean(UserService.class); + private static final TaskService TASK_SERVICE = SpringUtils.getBean(TaskService.class); + private static final NodeService NODE_SERVICE = SpringUtils.getBean(NodeService.class); + + /** + * 获取工作流用户service + */ + public static UserService getFlowUserService() { + return USER_SERVICE; + } + + /** + * 构建工作流用户 + * + * @param userList 办理用户 + * @param taskId 任务ID + * @return 用户 + */ + public static Set buildUser(List userList, Long taskId) { + if (CollUtil.isEmpty(userList)) { + return Set.of(); + } + Set list = new HashSet<>(); + Set processedBySet = new HashSet<>(); + for (User user : userList) { + // 根据 processedBy 前缀判断处理人类型,分别获取用户列表 + List users = TASK_ASSIGNEE_SERVICE.fetchUsersByStorageId(user.getProcessedBy()); + // 转换为 FlowUser 并添加到结果集合 + if (CollUtil.isNotEmpty(users)) { + users.forEach(dto -> { + String processedBy = String.valueOf(dto.getUserId()); + if (!processedBySet.contains(processedBy)) { + FlowUser flowUser = new FlowUser(); + flowUser.setType(user.getType()); + flowUser.setProcessedBy(processedBy); + flowUser.setAssociated(taskId); + list.add(flowUser); + processedBySet.add(processedBy); + } + }); + } + } + return list; + } + + /** + * 发送消息 + * + * @param flowName 流程定义名称 + * @param messageType 消息类型 + * @param message 消息内容,为空则发送默认配置的消息内容 + */ + public static void sendMessage(String flowName, Long instId, List messageType, String message) { + List userList = new ArrayList<>(); + List list = FLW_TASK_SERVICE.selectByInstId(instId); + if (StringUtils.isBlank(message)) { + message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。"; + } + for (Task task : list) { + List users = FLW_TASK_SERVICE.currentTaskAllUser(task.getId()); + if (CollUtil.isNotEmpty(users)) { + userList.addAll(users); + } + } + if (CollUtil.isNotEmpty(userList)) { + for (String code : messageType) { + MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code); + if (ObjectUtil.isNotEmpty(messageTypeEnum)) { + switch (messageTypeEnum) { + case SYSTEM_MESSAGE: + SseMessageDto dto = new SseMessageDto(); + dto.setUserIds(StreamUtils.toList(userList, UserDTO::getUserId).stream().distinct().collect(Collectors.toList())); + dto.setMessage(message); + SseMessageUtils.publishMessage(dto); + break; + case EMAIL_MESSAGE: + MailUtils.sendText(StreamUtils.join(userList, UserDTO::getEmail), "单据审批提醒", message); + break; + case SMS_MESSAGE: + //todo 短信发送 + break; + default: + throw new IllegalStateException("Unexpected value: " + messageTypeEnum); + } + } + } + } + } + + /** + * 驳回 + * + * @param message 审批意见 + * @param instanceId 流程实例id + * @param targetNodeCode 目标节点 + * @param flowStatus 流程状态 + * @param flowHisStatus 节点操作状态 + */ + public static void backTask(String message, Long instanceId, String targetNodeCode, String flowStatus, String flowHisStatus) { + List list = FLW_TASK_SERVICE.selectByInstId(instanceId); + if (CollUtil.isNotEmpty(list)) { + List tasks = StreamUtils.filter(list, e -> e.getNodeCode().equals(targetNodeCode)); + if (list.size() == tasks.size()) { + return; + } + } + for (FlowTask task : list) { + List userList = FLW_TASK_SERVICE.currentTaskAllUser(task.getId()); + FlowParams flowParams = FlowParams.build(); + flowParams.nodeCode(targetNodeCode); + flowParams.message(message); + flowParams.skipType(SkipType.PASS.getKey()); + flowParams.flowStatus(flowStatus).hisStatus(flowHisStatus); + flowParams.ignore(true); + //解决会签没权限问题 + if (CollUtil.isNotEmpty(userList)) { + flowParams.handler(userList.get(0).getUserId().toString()); + } + TASK_SERVICE.skip(task.getId(), flowParams); + } + //解决会签多人审批问题 + backTask(message, instanceId, targetNodeCode, flowStatus, flowHisStatus); + } + + /** + * 申请人节点编码 + * + * @param definitionId 流程定义id + * @return 申请人节点编码 + */ + public static String applyNodeCode(Long definitionId) { + //获取已发布的流程节点 + List flowNodes = FLOW_NODE_MAPPER.selectList(new LambdaQueryWrapper().eq(FlowNode::getDefinitionId, definitionId)); + AssertUtil.isTrue(CollUtil.isEmpty(flowNodes), ExceptionCons.NOT_PUBLISH_NODE); + Node startNode = flowNodes.stream().filter(t -> NodeType.isStart(t.getNodeType())).findFirst().orElse(null); + AssertUtil.isNull(startNode, ExceptionCons.LOST_START_NODE); + Node nextNode = NODE_SERVICE.getNextNode(definitionId, startNode.getNodeCode(), null, SkipType.PASS.getKey()); + return nextNode.getNodeCode(); + } + + /** + * 删除运行中的任务 + * + * @param taskIds 任务id + */ + public static void deleteRunTask(List taskIds) { + if (CollUtil.isEmpty(taskIds)) { + return; + } + USER_SERVICE.deleteByTaskIds(taskIds); + FLOW_TASK_MAPPER.deleteByIds(taskIds); + } +} diff --git a/ruoyi-workflow/src/main/resources/mapper/package-info.md b/ruoyi-workflow/src/main/resources/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-workflow/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml new file mode 100644 index 0000000..e9918f1 --- /dev/null +++ b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/ruoyi-workflow/src/main/resources/mapper/workflow/FlwInstanceMapper.xml b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwInstanceMapper.xml new file mode 100644 index 0000000..30e2267 --- /dev/null +++ b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwInstanceMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml new file mode 100644 index 0000000..73e4ec7 --- /dev/null +++ b/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + diff --git a/ruoyi-workflow/src/main/resources/mapper/workflow/TestLeaveMapper.xml b/ruoyi-workflow/src/main/resources/mapper/workflow/TestLeaveMapper.xml new file mode 100644 index 0000000..d52f6b0 --- /dev/null +++ b/ruoyi-workflow/src/main/resources/mapper/workflow/TestLeaveMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-workflow/target/classes/META-INF/mps/autoMapper b/ruoyi-workflow/target/classes/META-INF/mps/autoMapper new file mode 100644 index 0000000..a8ba0c9 --- /dev/null +++ b/ruoyi-workflow/target/classes/META-INF/mps/autoMapper @@ -0,0 +1,4 @@ +org.dromara.workflow.domain.vo.FlowCategoryVo +org.dromara.workflow.domain.vo.TestLeaveVo +org.dromara.workflow.domain.bo.TestLeaveBo +org.dromara.workflow.domain.bo.FlowCategoryBo \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/io/github/linpeilie/AutoMapperConfig__1.class b/ruoyi-workflow/target/classes/io/github/linpeilie/AutoMapperConfig__1.class new file mode 100644 index 0000000000000000000000000000000000000000..e54d47e2aef6505590b932e60325e08189d29484 GIT binary patch literal 483 zcmZuu%T59@6g@>?6nvoKBhkdA3!@X)#zZt~NI(p_(gi6q*P*1eP1_;SPjlf1_)*3J zE)1cI_TJp{=xM)yKED85VmCs8;aKQ66Mm5QV=0s&AqB;a-0LkJ@-N@$8gxv zHj78xIB)aB$N$YQ7}gU#GFp-HZJm;2s5)bX%1$N!cxNc)j)F+sT9hRu7?bs6XPS+a zo6v+rLARc(;Atp*<~Ae$sHI4P-qGA`x@5HV!EXi##B%fgq0_x(i2AvZDOrZSInwoP z5Wv+brcHjJQ-;#C3z<^kczB0D+*0@xR%T$BRFhReX}XsYh4Um#mQlotLj~1Wumr1E UBdlWswJU4}_?E*q>Mz*&1&>RNng9R* literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/io/github/linpeilie/ConverterMapperAdapter__1.class b/ruoyi-workflow/target/classes/io/github/linpeilie/ConverterMapperAdapter__1.class new file mode 100644 index 0000000000000000000000000000000000000000..78df31431cd27d7aa16982ec6592a6939bcee722 GIT binary patch literal 550 zcmaJ;yG{c!5FC?`kPt|C6*M3^Kmv;niH8&+Q3a3yrHy=-B`jR*lg}5F&!R%2-~;$5 z#9nw52xxXZyWUyv`1S4i1;7zj>X<^QigE+fs3^4V%*g1(*nz%??kElll|!~1julFq zTiq&V6n5C@0f*Z>(h1v?IAPK!&W^|j@@FPZ$+!C^71HbNDb(Vxn!w*dFY^Jc^aekn))UzGjcr&C2=kIky#%B7)#KHNoHs1}pod@^8p86tN zK5>0gXm;4rc|MHDUmKBESnRmiBwgdV;GfBIxMi8A|9|bzRb@>5%H=+$Q!b>}{xoH` z@L6H|*L^ZEj$9b0g{#BVS+d~(8>q@(0ZL*Gb-`I-6~V?NtBM~KHYZFAD#7XPC#Xj` cOkrMPQHIDgB{n`TpoN7=eQ^?(zD1XTcfAgj&j0`b literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/mapper/package-info.md b/ruoyi-workflow/target/classes/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-workflow/target/classes/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/mapper/workflow/FlwCategoryMapper.xml b/ruoyi-workflow/target/classes/mapper/workflow/FlwCategoryMapper.xml new file mode 100644 index 0000000..e9918f1 --- /dev/null +++ b/ruoyi-workflow/target/classes/mapper/workflow/FlwCategoryMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/ruoyi-workflow/target/classes/mapper/workflow/FlwInstanceMapper.xml b/ruoyi-workflow/target/classes/mapper/workflow/FlwInstanceMapper.xml new file mode 100644 index 0000000..30e2267 --- /dev/null +++ b/ruoyi-workflow/target/classes/mapper/workflow/FlwInstanceMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/ruoyi-workflow/target/classes/mapper/workflow/FlwTaskMapper.xml b/ruoyi-workflow/target/classes/mapper/workflow/FlwTaskMapper.xml new file mode 100644 index 0000000..73e4ec7 --- /dev/null +++ b/ruoyi-workflow/target/classes/mapper/workflow/FlwTaskMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + diff --git a/ruoyi-workflow/target/classes/mapper/workflow/TestLeaveMapper.xml b/ruoyi-workflow/target/classes/mapper/workflow/TestLeaveMapper.xml new file mode 100644 index 0000000..d52f6b0 --- /dev/null +++ b/ruoyi-workflow/target/classes/mapper/workflow/TestLeaveMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/ConditionalOnEnable.class b/ruoyi-workflow/target/classes/org/dromara/workflow/common/ConditionalOnEnable.class new file mode 100644 index 0000000000000000000000000000000000000000..e47d3b357782db5f80048fa503f1473f98ce01ba GIT binary patch literal 564 zcmah`!EO^V5PeRQY}*t_NOr>iM-xK`85vx zfPNHWHlRjGkvMofnwj^W{pR7<&wBvx@G?S8L9i(Dj^|W)z{W(7rQEqch`DJ)GWA5+XDePPbL#90yY&_4~(E;qWt;KA~%yk;1DT z>=zY2N76o$`qNzx=;5=xIe*FCQors>((^;5&g=Lzd*&-FHRHPE4g+qSKwE<6K zts~NyQSq1$#*y7;bZ+zYR_E;T{v4I5Qlx5?=4pY^u8^@7N-^Y;YbQb;^#|fa3&e0J zQkZm<@ify~a5heX(Ne2pzxNxuXS8kSgKswB`oBz(mf-zY+wL7kLB?p#v`o*`J=zkJA=~lx)`4U}ZRQo7J5RFFW zq~#zoLq?TXUDvcGYKSf~D)+{tB+XSgEqc29W)gmlQ6b}_que{+G&)8bv-$aPiEc2e zhS4C3c@}xlK;b#M<+cpxRB;oEO!9QpkL0OBZ#I3`Y+Jh5b&L|-fr5vjo5U&4#xlYf zj?wHkJkz#R-Cf*?jKXn{B_dVT%3b@O?OXa=WPN}%0lJEX{NyL0p9w$ZLnN=CeV^az z9Y!np+xmY)a`DFA4rVSr3kLZezhE@Ixply3rXfNkTI}Gmtnsjy57ryNQ+CBz22m@? zp{9O|?fk6^P|zYiX@yp)Ms-4qpeb4guPA&0ysGde&=rNRg4Yzj4qjJy1AI&2+u%)w zx4`!lz7O73SOeq#qc==XyYvut544V6^Hp9Z_LZi;(A;Mbqes{autYDhKZc#6C%*vB C8pqE7 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/constant/FlowConstant__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/common/constant/FlowConstant__Javadoc.json new file mode 100644 index 0000000..9e6505c --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/common/constant/FlowConstant__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 工作流常量\n\n @author may\n","fields":[{"name":"INITIATOR","doc":" 流程发起人\n"},{"name":"PROCESS_INSTANCE_ID","doc":" 流程实例id\n"},{"name":"BUSINESS_ID","doc":" 业务id\n"},{"name":"TASK_ID","doc":" 任务id\n"},{"name":"DELEGATE_TASK","doc":" 委托\n"},{"name":"TRANSFER_TASK","doc":" 转办\n"},{"name":"ADD_SIGNATURE","doc":" 加签\n"},{"name":"REDUCTION_SIGNATURE","doc":" 减签\n"},{"name":"CATEGORY_ID_TO_NAME","doc":" 流程分类Id转名称\n"},{"name":"FLOW_CATEGORY_NAME","doc":" 流程分类名称\n"},{"name":"FLOW_CATEGORY_ID","doc":" 默认租户OA申请分类id\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/MessageTypeEnum.class b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/MessageTypeEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..3f4225bf193567ea465f1e49139c2cb0bdd98d4a GIT binary patch literal 3263 zcmbVO>r)d~6#rdF*bo*7Ta|*;Cu)d~h^SSA)(8=46QKsE)VB1JEOBMCOE()VeQ9mA z@7KqE>hyD`PQ_Z$PFp{B`e(G`^q=VT+}%Ys5N(B-aCgr==XZbSb zY8bjrs}RpyW|3Pwe$lk1r*!jTJZBb*rV&?-a}r!4nc9GS*-%LolbChRU!e+LgY*XL(%bMj<{lc|pzDi7;C6q=YsZ z?O0FFFDZz)5S3Z3m(`&uh67Qbb)U{lrG!tAwJpskB>X1`04ESn$=HC63~RlRPK=BX zrzTRTM=8k3VTNWGr)+C_Ji})a4cLq=61K|d#5Rhb!)bAsK`yBFkkzkF@v?3+9P;z> zyz&wABz|I^NMvG%j3~M&`8hLBAyRyXo<~A!r;J^WR$eXTM8x*Uh+{89U9Vo-D>LpV;-o)Auu^!_*Bdq?)mNa3U?Fej}ghJ(?r)s+~-DH($Ttj@&> z<2j@yWMrJi5JO}sYe~!Eb97c+$+lEZMYSh-&gV^KhMYXRig5}g=_eHG?dN5j0X0OB z&&=p^3>z1V+0maW8#!B}?mp=~Pz{Y@Ou`E?&I+^jOKeu?Qm1Np)vz^tE{qp(PQptv zUdAgGRvx21Q`f0&OpDxUw#`1%$dxUNjHzxJ&U%@A2q)L)hirNU>UaOaVdTxL;1VWf z*)X0?(=rz8!-w7IB3+EvoJ zS)4Sd;{&RpTHIFis@mS1?p;5% zQ6WhA^u*=cyNc+E6os>9*~+OWHIbGz%SPoMQF|1}6Q*fXS@9V+prz(Iyc5PHT$b>z zj4ODLVT)6y&a}~tS#w&Ar+INQ&&h&ManVK8$PJW+rMEx)-g`#w0jIc;*VR&I+BB!j zGgU^9&-n^NG2{K}|9{gx^3k^bx#A)Bab3@9wwj3GD#LcaN0nEde-1YX@qri$AIdOb zM)0xI5Rd=i;pg+9XyrkJ>d=|lYDvOp4BJ+urdpIGe8I5c(W-Q?Qqda5@eXZ z3<4`Y06TWuLPDHV)oIts^)bP>v|Q zjzDq*$AZc;O41R87tnVTjSCo9z_WKT3@l(|0poWtQA63@d=nia67Ja>API_SK?hal yX7rF_hp_|wN!buhptL8ulVr&3%sM+8 zq*qk5UaGZTidw~6EmUm_K_P}m%g=rKXMoZFpg-Au=gcgbWH;F6d79_h%*=Pb^Pcy+ zpMQKi{Uv~%_*6j^!xq~aO=KNA#~q$HVLRg^rhOujv2!`wO6XQGS4i~p!gxoaV2oP2 z-bIocFoab^P)*On>8?WzTT}l#Oj6)PRn$nFL%pdkAy}e9m4dxpef>gkn~GW~=<7{O z!7>#ZmNO_#10AWuU1^4GM;3E@40TwcV7ZEwxPu{*F>Om{xV^b0b(~M|gvqVZMDOr% zJ>w>0ScTOJ8dNmmPU1AHARIzmCb(JDdq;>%b6|I;$qR*KK#+DF!x~KnPY?iv&#+d- zI;>}?mRJRb9nCF^G>oB1#ogFI#71>@uU^Q^x63CILo-?ww5r&M?=i$@?eY|ejs9qn zo5ZFrXqfMomLUb3=jD)}IvLy16Z&HrJ?|QnNon1gFfw{qNuW^*-mBt1Y++cL{?nH?7!&ttz%*JMnEdEW_P3k8f%3fN=B!D!yOxO{bmJ zHIm&MLpydV*rnnJ*j@5O(KXCOhvV>*M5emnIy$FdZ*D#k2x-X`o=EQS6ccnP=_fT* zVULPV?4=~*`Mi0OVNEH?r2a_J%1AGD`!C5Q=*EKz_NnN>L*yYDmvU@|P>$!xBHvF7 zp!w-mzMt|gg#!u>s^~=@!|JkgI&IUW0|_)crGsOedRr7~6pzx%H&34b=FIsh$k&l96%MV`MlnGvHzvkNwMLILorVL9zSj-LUPCp+uNwTj3@0P_hO$IGxXSg}Q9Ya9- z_+g9Z=$QBc-5s;DeKbpQx~q$%iH^{0@j6i0J((w^rD>OE#t-nkzgKE_#FtaIDovVx zQufkKo0D!rmSm_&(>&sC(ILbQWeV-(5!gkWg81S@4?paV8N_t;p`zs)Ilaf4FbW3Q z)?rz;%SB<*s+KbC+^{{Kcu===hr4=~@M2A3LN-o0)0;fpO@2Wp(KyC zXH36qg_?z+JD?}#L;GSvB@B+G?V^*>yA6>9b@K=LW>M}GwLP}&QbqE-7rsJmHC~V5 z4ZNw~528oEMe}5KG8oo`J+6!HMrG!;?QSkw1ogGogEsq$9_T)9Wlg=%l(OydV!pym z446D;qsW5_>I=7EIk$a?PHviM!_|{foTUhV_0~r-?|eA(=II;Hot=5<>Fd+eGZ(Mk zIQx9tS{B8-4C@wBxPJA6nRg#2HFC}SF?@hOD)>;vpKy+0eVJ=gJU5)>WH%ovIc5pf z!|c~T|Nm~fr4Q#UdXWjbc+Rr)f3Q8zcWoSho;RuIj>OZi2l?qclQG z+o!N5weicHpJNBJNNJFSFvfZbs7oa3hw_q z?F`9-S9mC7-VUt617y^8x>P11h^!!T%jx?5B$*QyXZdb9P4BlM^et)>)G>C)zX-#p zIYdh}ch?Ef4;tim-Mo(--hy)i`Ta0GE2#cJ})Gqk%3&yw-aEsXl`ccYFGszIp7 z33coyDis7a_*@f|9wLn*t)JqN`5DwKJ>q3h1kcNC{tYRMe0+hPOx&F-03DqV)bbrb zRpLfPeh`V>=jWow=mmsoD1_o$Uz5p8xO(K*Y3{OHy4@M?wm=0D? z()C4HI=4up_#IyMAqvuE!2YX*pbdw#jHX|~=p}@t;CNUY*K$&zNP!*E@|q(BF)47X zwW4-H3YJdc\n 通过传入描述,查找并返回匹配的枚举项。如果未找到匹配项,会抛出 {@link ServiceException}。\n

\n\n @param desc 描述,用于匹配对应的枚举项\n @return TaskAssigneeEnum 返回对应的枚举类型\n @throws ServiceException 如果未找到匹配的枚举项\n"},{"name":"fromCode","paramTypes":["java.lang.String"],"doc":" 根据代码获取对应的枚举类型\n

\n 通过传入代码,查找并返回匹配的枚举项。如果未找到匹配项,会抛出 {@link ServiceException}。\n

\n\n @param code 代码,用于匹配对应的枚举项\n @return TaskAssigneeEnum 返回对应的枚举类型\n @throws IllegalArgumentException 如果未找到匹配的枚举项\n"},{"name":"getAssigneeTypeList","paramTypes":[],"doc":" 获取所有办理人类型的描述列表\n

\n 获取当前枚举类所有项的描述字段列表,通常用于展示选择项。\n

\n\n @return List 返回所有办理人类型的描述列表\n"},{"name":"getAssigneeCodeList","paramTypes":[],"doc":" 获取所有办理人类型的代码列表\n

\n 获取当前枚举类所有项的代码字段列表,通常用于程序内部逻辑的判断。\n

\n\n @return List 返回所有办理人类型的代码列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType.class b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType.class new file mode 100644 index 0000000000000000000000000000000000000000..363d612bae2ae0c1ff7f7feb2e763ef7adc5dcc5 GIT binary patch literal 2020 zcmbVM-%}e^6#g#RkR>c7ECq#@(jRC^YP<5wYC|g#0;NqMCTTSGX-T$p%VxK;yP@M- z9qU7R^1%mnMrZoui{mJ@w!*a2Xa9}{?LXmo?oE(Dm~muhk~{nDcfa$UbI(10{JrrU zz(w2$p@m`8ahJ7{>y&j@*X}y*%1z6;s}-Gc*|9alu9Q73r+X_2&oh^8!^nMl$7lnC zq#%e^204*VXBP9x48wTp|4YTWmaL#nXyr1Ah3srH!@+h1iU4PlspMQDm*n6f1)Us} zrWex%4stN;T2u;j&C|PcXwLBFro~tlcsI@ml%2*jnw1L zNAog*GTvffBQnl09IHP6qPq6|%gxQ|+QUD;y6xUQux-cJd1ujAHDx*FC1*vOGi<}veWOHYa)_j7b{dc& zJjCb5P|Zt6?Zt6Rrmb5HZCRQlx?ge0=jnaQv0uy3h?p!|^f=)npp_<;SZPR!mF5yLRDNy6N*5D| z^z-q=cM?B|8Pb`hx0AH;C%lfxZ#et{JwMYM!yNs$if`@2AHZd_2>v*&d`DPiv8U*J z0mk_)yZG~jC^Z(Y2oF~Y2{K%{$E8!aRu|Lgjf(|izhZE&P7FIbK`e-z7KzMVrDQEjR2LEiWfU`^a|-A5%OkB{mSo+ue`b(0j-SU^3ao_zxC5ds1jmDDkHLI5EFoDZt+ zsuu(h7QkeydQp8}03A<}c!UTqLM>pgC{s7O&_`(wVvMqyK|7VGmf6QB5Vr-N`~whp B?F#?^ literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType__Javadoc.json new file mode 100644 index 0000000..e4087a5 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskAssigneeType__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 人员类型\n\n @author AprilWind\n","fields":[{"name":"code","doc":" 类型\n"},{"name":"description","doc":" 描述\n"}],"enumConstants":[{"name":"APPROVER","doc":" 待办任务的审批人权限\n

该权限表示用户是待办任务的审批人,负责审核任务的执行情况。

\n"},{"name":"TRANSFER","doc":" 待办任务的转办人权限\n

该权限表示用户是待办任务的转办人,负责将任务分配给其他人员。

\n"},{"name":"DELEGATE","doc":" 待办任务的委托人权限\n

该权限表示用户是待办任务的委托人,能够委托其他人代为处理任务。

\n"},{"name":"COPY","doc":" 待办任务的抄送人权限\n

该权限表示用户是待办任务的抄送人,仅接收任务信息的通知,不参与任务的审批或处理。

\n"}],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum.class b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..3930119d87016a112bb45d68a9db471372ef0830 GIT binary patch literal 4048 zcmbVO`+F2u8Ga|(WG9=!EQ6)xA`}cI3Bpn+_7d8%*(7u&H!~aB6g5tECt=C%Oq`vC z##>V@(&D9B(bl#WTC4R^ur37x2*tbBdaJj3|HY*659n_`zUS;_tL-4oCk0#{uV}sf{l(l9Lu;)-gM2_KF1vy$~pUDX(yj|?3iU2^MzQ-EQ}bQ z=@koYe6N9mkcKK$E2vJyyAo|33O03IDNVEBQ8m;Eo={KRFa%JmK@&ju&UiAF?Ak7{ zH)*JoSh8zpyd&8vu!S0Qxv?dl*dc&7Yq&}PwW+q=&SY0SmF(^k_|+P&5xAP_jdvOC zZM_0qs$rP`t6ST8`ciEIdW(h?k}%QT(=UK)HLQ|=k=!ns-m0NqG6`UyyS-g#U8iBK z0K=(dXIpn)N??r|ny`*oJ-oSU_Ca3u}(t_8x>TgbB=A%&xXd1J?36B zmNV_)Soh!_EA2H$unC*PxIx1fyqy7?RuBoJC40?W(dr&ju%#ieJCQRBh2{WYcy87n zZVsLx2xO{m(r`0wQBY^3;;BAkpta3N40OhOh?E(MUN#r&G)J4m*s5Sz+K%lmdXAH0 zExA@qu9ClxS}JZ+fLd%rJd73%3A8F$AdS9EqCgwAyl%JE8ZwJHPr*$=!+o~{mitK1 zavut#T|sm@B4r;%p6<|)#5-681zFn)^Z=nB3Zd7bp;PFEGFBliLfx&Q2k+#@tyw$k z(U-+RfvWD9U702_bx%xui%#XcF#3sE+S5-QSmOC zHp)z@cn|q6jX!qr#RDod6(%#k&&+zvsfx6Mn#uF~CyzZfb!0+CoeGviIBT;svKbY- zx%Kboo|rsyScR@)gq(wBdPD`whn(Y+k3Xs6Dix!=VxHyZv$pAF9b1LV_1DfmFm?24 z71yXJ@~U~RX%~hpSH(UqUOe~Q+a5oH%%XVJfmL2v$ZSaU7Dj&FqVoQ9(~#x_02uCn7yQ@U&* zzf?h6W?Mg_Y5Cz~#TzUTez;tA&Mg6B>D$&o_<5G-dvlT7npu4bC&TS^9a-DzD&_|* zH)Rgyh_ughZyT??(Tl$0q|Mw;)6EKEpFL!oc^(q&w7lI;riWkWyv2*hENMeoJJT{& z{vz`eG_M)68y+30VMo2ZY366d_n*FcyR$rDS#Qx6wDQ?>indWRYD8D#vh7BX9VC_7{&JBAb8>PB6o%7pk zWrF}(1A5}CwDrnEEz%h=oT8hy+Or~si)M~C8${F?^A^YPSYYO8IrxRTYWyUEm+;dt zUe@q4{9M86=>W5bIwMxB!^{t6Oztp;OmUxhLu;9`>9?1IzWbZX2i#%WnVeOq?{J)v z;^;he7;t^Y#?;uT6;%J<7t2S!@!sIq)MrkZxtx*ptmY_wIji($_ORf1QdfmnMCbjr zhSN9`#c$=^x#EE_XpUd8Wd6NiepSPHoZ;0-+AK*q*I0!x{-j{doIK4J@-Y6QV8t7& zvU!*Dv+a7GxQPupx^0OVg8@p8u~Kq+m68*yl$=tfjyt3%wIZ<+xS+Qc>+3 zl>W*RDvkb731OqZs>D{;UtPiiqd#0i)aX}BSY-4^2`#1|wuFMo%X9VKO5M==PT|husFc9nA$^zrZV7}XFi@qxS09u> zL;{&=-O`68us{OYu)asnNgyf#Th$%?eG*tCfkL!e_w>CISuBxzqG5eZ|A0i6NaRCN zRsXO)E|KLD`AD=z|ERuSA}b|wAR5sh&<{#vwM0G*oA*khWtc-A3q>h1%8MhQ7-1wk6Agtz_0Kd|LJ#p`UBTQ N)B7X-jK5;ZzX1nACW!z5 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum__Javadoc.json new file mode 100644 index 0000000..b986b91 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/common/enums/TaskStatusEnum__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 任务状态枚举\n\n @author may\n","fields":[{"name":"status","doc":" 状态\n"},{"name":"desc","doc":" 描述\n"}],"enumConstants":[{"name":"CANCEL","doc":" 撤销\n"},{"name":"PASS","doc":" 通过\n"},{"name":"WAITING","doc":" 待审核\n"},{"name":"INVALID","doc":" 作废\n"},{"name":"BACK","doc":" 退回\n"},{"name":"TERMINATION","doc":" 终止\n"},{"name":"TRANSFER","doc":" 转办\n"},{"name":"DEPUTE","doc":" 委托\n"},{"name":"COPY","doc":" 抄送\n"},{"name":"SIGN","doc":" 加签\n"},{"name":"SIGN_OFF","doc":" 减签\n"},{"name":"TIMEOUT","doc":" 超时\n"}],"methods":[{"name":"findByStatus","paramTypes":["java.lang.String"],"doc":" 任务业务状态\n\n @param status 状态\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/config/WarmFlowConfig.class b/ruoyi-workflow/target/classes/org/dromara/workflow/config/WarmFlowConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..c97c4f3275fa6812f503ef3b050fdcf34d968e5c GIT binary patch literal 476 zcma)3O-lnY5Pj*VuC1-@$)h(dV({XnDoC-XVnJm+r`vQ*-6WD`t$)jt;K3i@j}j+A z1P_7<%;e2v=1pEcKHuH}oS~nff@%}B7V2m)beG~u@IsiJPiIS+d4|TRGRmJbRQC_k zCN>xb*5!QetQJo2wRI1R!mfE{%|hk;PB=X#Jc^K^HnMZc(3vPBuSz|W?pDkSiu5Kn z6GbYV3ivx%^Y?1Sa5(ut#gHMnv8Bu8ScSg*-xC~#7cuN!m&PkCQ?*h=cVUe6!YgZt z?f5S?t*znokhuysMKLv(CJalIC$VPr=#xiv`}K7f|xy`;Fg9!kf~ck+O~n+BJEN3=P|d`V4(u_?1{bS-r7I)_@n2J zy&p%tf;CabVo<^@N6U@qw-Z=`E8o#T&x#$EL2wb*mkg_&2{d6<9II8V!P?J>=moG;FmFhB z1?Naj6fA5AvFaNeh9k+GzCp!}xQXg#^%21oP3zuWhBwS7*V8S}Rj?xJ(vY))FbVy2 zDw=VNf~rAX0;CMqMa~KUE6WMrtGB7R9qSb&3H%F4A-LA7VM z?$-AxxW1ul2H7QJ@D&xUXj3pZ;!p{lWSKjC>?FbZBY8SiY?3^+Dd1h$|n zj<2ft8oCwKmE(@8i3jq!NoOyLI=fH_b|z`X4HEy`RP_38$>%aGtI{o!+@~Ui?TqrU z?zRsbW~Obt5Pqp`g{0V7gMKFa)Vl|#UV3YCV*j}_Z$|6L>dA?xrykjR{_w=q*W)0Cmp@mH{C#*{_=hExU+CU6L!KLdZr??~*HB%z^EW5VAfeFofYa3>CY< zvfESvieq9RDA8@YEAt_2WDL;;X%S&GtD%vut1|tTk-FsEE-NvWdO{0@x7!&e?YwTo z5i|kcCi5_msXkmqPf2;6@?F@5@CCw8KZJv`dhAiF7JM_)- z|NBsE_^-8=dSB6(w>%>&`VH4$)LJde_H>yWG(hW4TUthp-h8v>>YhC!EKM)|uch>M z+2?wNlQmqI9F#VDR5xW;sV_u$JxjJfV66`zxz2a3o0A=PP`XMk)FiG43@Z~Azgc)& z^;}MNX3Et9_UfRkE4b%U{dp%sCY-xzO%{#w*J}73P*{4@GV6wtZtg z!;|@>4&+_tnCosQR28hcm;hnrv#!<_Sxk>rci!E*t&at;dBz^^wcUuz<61%UID18x zHOMqv7i|C)hLVd^j6?whvO0!|S(r`!OQdG`U78gsL%xdnFTohMH8@SMJF{Vm{IMBtUXFFZn~_TD~*Q5$W|zM zg*~b}I=efiZ9#BnQuRChfvQya)dFtMd?$|K7H=Z zqf@8e3r;dM_ygG|KR$f+!0G6+8MFUM!5yE?J~{E^v;$hu;m#gBa{jS*rcNE>B-3RP zp8lRAF?|pofIyaGA()kfQN)eB_-0yLLC-5Zp7j1ZoPfz3fbh@;mm+Pb>mxMN49YgqZ zZ49BqV-bgUP_0hig!+K5Xu=XagJ&r_bm}t{8aVX_6`cCRh*O`#0j{lsQqP|sQNr^s zevE^Bna?9-iE@Y(b`oM_wy(NHlcnm7p~Bb4_~-mpC((EY8mRouN1MXGZjIq2T1wyv zLeh)5xRcRNMeJ!T+S7;^eE_}0EoMPkS}^QIz6XZ=#5ZgOLs|0t%hNpnQ@q0U`}vUu zEszGiN-HF^(s&I&BT>QYMVn4=D~bDFnsLWgsr~BHD8(ddVtZgB7j~>ZiOq)!rf)4b zy=R)~*C0;$_tJ;=VIJlY@JS)< zzG?Q?Qygg7T-J#N4Dd4M*a~KqtRVrUn~Qcghme-mRw1?^SunH&?sqC=-!G;a`b)eU zhTO$-zOiwIgaFTni#4x}ewBEx3pGzqOTcRKfaRy8XXs+@N=50g7SI>@AG{jmHB|Q-}>Lb_rL#$Kl7gisei#=@poMD EA93gYIsgCw literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwCategoryController__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwCategoryController__Javadoc.json new file mode 100644 index 0000000..cafc100 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwCategoryController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 查询流程分类列表\n"},{"name":"export","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出流程分类列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取流程分类详细信息\n\n @param categoryId 主键\n"},{"name":"add","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 新增流程分类\n"},{"name":"edit","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 修改流程分类\n"},{"name":"remove","paramTypes":["java.lang.Long"],"doc":" 删除流程分类\n\n @param categoryId 主键\n"},{"name":"categoryTree","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 获取流程分类树列表\n\n @param categoryBo 流程分类\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController.class b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController.class new file mode 100644 index 0000000000000000000000000000000000000000..fa9c3bd9bd9671a561dd6c8fb627c22e7a6d1e42 GIT binary patch literal 7100 zcmcgx{d*i$6+U;9?k4H9NtU(>RBR(3ZCX0C(iTWTlP005NfYvA4SsZX_hvKA?94JV zn>2igR6!^rRa68jsHhY_5RgiXqW;X^0rkJ|@x6CuXYX!i=%!Eg$+Nq&v-jgY?>Xl^ zXKp_F&jDXc1lr8hFUdRM`=a}9k-|#T&HBXhQ92$i}RMVtmhrucOA>(u0Cun z5Au1_Hht5v4@dVIZJJkqnd0t}ndgk|9F1Mk3x3x}>edTq^{uBiYR^!IM(asqv~TT8 zFlv9O!rhfo)AJdL~E} zh)=z4pXJCBiK)seJXE7{Gi}MxXEgdOUC-$DIx4R;n^C67{ehK{0;Ap?qbH3eLpL2A zYnz5;J}hj3;qta+*hPIjcarD*z6{;SX!ob=6jELbqz?KV-ISrvYqX8FGuo!k4at`V z77&=GtxqyaIg5-AgqYOLV;xa98MJSvFKBc#-NH!AFYx?gzg?IzmJqIclOjc~unKqI z&bbb{jdo;cr$)WBi&1xtjRD88xM73DCBv%l@p(pDcFd`Kg(D=O+cnxlI=o#e7Yv^V zq;HNha89JhUXAwA7qNCZ2pUG$sbfbSy9jW?()}785F^{802A}?(&%ow2X|dwa+Ww; zQCp$no0cx3P@0#bLmHIgK1ONZ=|5?lVswiz<4Qh~R()BcehD-0lvl8c*!r+WgERz7 z%~IKM{iB`(j)nu`y|QcC#d+5#aiKo?GSBIyishSS!}ayC>eaA`$WsDu$`{k5!EJQE zMn`A_rtwo^eQDagtH{CZMXYJ)B55q{>kGbL){o##qz-OOa^Z+6feJ(!`dYxE8JCh|JQkAig>@B@a&Rgq6063UNI zXxXuImQgF@3i8@|*eM`)I!8^LAFGsd+?6uNC_C!p4QtkbTtF(qo2~wW=`p&yE`Zih zYWf&$6yjY|52S7VVv(*T>pQ|jD7X}FMt9WBZ$j=Fb&YX;1pIcuay@}~)k#S$ z+MtIWPnchwHQ@;Fq=S~GCLBsX6X&GHsBbX~(6vxGYID)O)t56wSy<9~0@|aoYKTkK z5%GOIB;nIWT{$b&rDq+pAUR174vh{8{{%tUjE)R)v^cz`$7w;H2fb<)of?`NGyvt5 zkkR&_QfWYY#mch#m#f^=)`Di-MLGx#or@hri9ObEiZ4i6=?x8Ox$fx;Wpt0(Mh~gv`7{{#ik{^><5W?lnUNjjzNQzeLOUJp(PEQ@CKXLJudv=t+ELZ}Rk14c_-9yr&c4?M{Ms;@ZG_hR$3W-o98TGC1*$ zBzRT=yaXpcE7|Ko_&2h52CM}U{R7EjgJTcGLKE?IXA-oPtAVyB#<4YM&m}uJh`%4w z^I`nWz($bS)2`|4+zrpC=Vs0yT_+1sC z5Wv^*63V~Y%jXqfZ%QwtXar&?ije?1Ydo`}C59C5yd z)&Gpu*HNk)C%vJE1%Weo1?lp3NMwtQy;^3!vr4u%REcEtE~YaajQ$1SPvCkiG^4Zk zefnDOt_!eb_XT1#zX!E`yMkHGZP7ynIW4+~C=|2Q1?XM$9(E85T)?N$4DtTHgna`- T<08Ia!s`RP{)SP3X8!%ZuFiO$ literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController__Javadoc.json new file mode 100644 index 0000000..057763f --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwDefinitionController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程定义管理 控制层\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询流程定义列表\n\n @param flowDefinition 参数\n @param pageQuery 分页\n"},{"name":"unPublishList","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询未发布的流程定义列表\n\n @param flowDefinition 参数\n @param pageQuery 分页\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取流程定义详细信息\n\n @param id 流程定义id\n"},{"name":"add","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition"],"doc":" 新增流程定义\n\n @param flowDefinition 参数\n"},{"name":"edit","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition"],"doc":" 修改流程定义\n\n @param flowDefinition 参数\n"},{"name":"publish","paramTypes":["java.lang.Long"],"doc":" 发布流程定义\n\n @param id 流程定义id\n"},{"name":"unPublish","paramTypes":["java.lang.Long"],"doc":" 取消发布流程定义\n\n @param id 流程定义id\n"},{"name":"remove","paramTypes":["java.util.List"],"doc":" 删除流程定义\n"},{"name":"copy","paramTypes":["java.lang.Long"],"doc":" 复制流程定义\n\n @param id 流程定义id\n"},{"name":"importDef","paramTypes":["org.springframework.web.multipart.MultipartFile","java.lang.String"],"doc":" 导入流程定义\n\n @param file 文件\n @param category 分类\n"},{"name":"exportDef","paramTypes":["java.lang.Long","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出流程定义\n\n @param id 流程定义id\n @param response 响应\n @throws IOException 异常\n"},{"name":"xmlString","paramTypes":["java.lang.Long"],"doc":" 获取流程定义JSON字符串\n\n @param id 流程定义id\n"},{"name":"active","paramTypes":["java.lang.Long","boolean"],"doc":" 激活/挂起流程定义\n\n @param id 流程定义id\n @param active 激活/挂起\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwInstanceController.class b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/FlwInstanceController.class new file mode 100644 index 0000000000000000000000000000000000000000..90dd4fad7688af84137d3030b75309be3d6a25a4 GIT binary patch literal 6453 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/controller/TestLeaveController__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/TestLeaveController__Javadoc.json new file mode 100644 index 0000000..fb9170d --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/controller/TestLeaveController__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假\n\n @author may\n @date 2023-07-21\n","fields":[],"enumConstants":[],"methods":[{"name":"list","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询请假列表\n"},{"name":"export","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出请假列表\n"},{"name":"getInfo","paramTypes":["java.lang.Long"],"doc":" 获取请假详细信息\n\n @param id 主键\n"},{"name":"add","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 新增请假\n"},{"name":"edit","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 修改请假\n"},{"name":"remove","paramTypes":["java.lang.Long[]"],"doc":" 删除请假\n\n @param ids 主键串\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory.class new file mode 100644 index 0000000000000000000000000000000000000000..f230cdf2b6534ab19f3d92235a93000b585a9d3b GIT binary patch literal 4790 zcmb7I+jARN9sX99v@3aK+0Ly>Qd74o$X0BXP@rAMkkpA=wXzf9)P*#Vtfj5Jv9#;% zt{hVC6k0AX3{M^4g_mZS$qX<<)0sXnw>-8Sqjt@g zFIk@H-Ib6%XIiHBB?)7dxy>9Dx9*V?+ZU2E9Z_LAV8P*D`5%AW2RmRE0y&M6hsI3gjZTTR3DY{!)_ z9n;?M95d8ErsBAOs?kjAddCnPkEkg5#J1Biob_%;be>XiTA<~Y(Ozxq+j;iQsQ45f zlTg?;ylCZOxzm-o*p&W)1^jUpPYC!p;a9>ni~c87d>WtOLfC(yzwDy}EaAcheon=_ zz!ziFinWWeGb$FMIWC9G7yUIAPYInobuI=wn5MJOs`wn9mT;n@?;0z%MN_bkq@Cg(I`n-w@c#hONy2~B63_oP+LhC$LT*EQ-_NL*u zrft1kzbHX^k*g$A>xwx!!0 zvt@T{ox58carfF?x2E@SwQD-{>a8USnSDXdK#3yrrpc&!>hLTLd)sW1C>?C8*f1@F zalB?Sv-bBmlb>`Z$*CRaP(IBb@3hEw6T>(+k4#-|%?yR&8Q)}A*k!(l>; z-4)!yY&jD5rym`2o3#I$;qBNh<_RO)qZeonDn@z3Y+);wEdx;z29V$>#%2>q63|4c z!Gz#=m=FvF&kj`SYrq*xruekXTr&9C^sEQvS$5SHTBG1xmt10O@xGfT+;) z0I?3AAy&Qe z9K-FlJz8&If4OphE4gxi)%kL4eTAM%uneW#n=-#)cb%rOYPRW^srU)7C{k8J?eIY_ z$VGUGGv#LF7Y5REw(Yr|qwfU~osJE7-Gmk}H5^~Qoq7lJ_@kBdvp^!r_ElYFEwz|a(UTN#DYq&Dr zmhj|=&5}$ZVE;QyC|55tkrgm8}$>=fevG+jX|b`F@elOD-B5 z;3dEZ@!a>{Jk?vL^1a5sDZY8Lq3$|cHMS(aGxP65`lGLMnco5oUM8;a zTg*%VzJjZKZ}1VL*Z7vi4Pb=mPmuq>!4&#LGY1m!ZjeA!7$$n+Kq6iy5{M>;i7E#Y z@s^Q5baa?#;Xoo@NfL-o3=^F_kcfAf1fr9}M9&;Z^fERv=DS}bp@_NceDyuZ$^Jhc zAVU8O?+4NN3iUFqiI^M;imxWq7Y<7=Vp>8-UmT(T8m=d;e)6#NB2{|y(Y zD-g7(O_T}(G!cRdrHKfXzRzqMi|1l8kTTXV|8s;Mds24y7D^OO#0|j}Lh&-KI2- zhd9siTa3ql^6Y9;D&Su@g$|_&SX}QKj?2n_Fd;+9eMA|{{3y~#cq9;W|Cbn5gquTA znHE2i!iw-L_b%#LMg)s6S^N|VOcs>0=r|Jxo6ZIIQc53Um&ETR((tfMy~KBpq`#Y7 zI>+Kd$fQ;H@{9P zMMwSy4y`iA-{x<^rIe-_cHmLU;07JrrIf`ToMqsMp!p?EuqA?qj+Y*X`Y~@YX&H(n z(bxQq_%X@)?Ud*^hD-#AFzLar5SER>`pDtl5G)UZ`}l-`P(>M0>1!pAg^K*|POw4Z z;~#&&Y4OjWOaB9< CgsId3 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f64ebaaa569808c6c5c7be3e31e69eddba5a4b5c GIT binary patch literal 677 zcmb7CO-}+b5Pd~t1;0=eFC<=#7aPy3BtSx9f-w=pg#+m>Wi9S@Hr+17AK@SJ;1BRe z87mkA28kZpnaOls-+S%b`^zhUD;#+!Fx1IJd}t^UM(`<_$5BjEK6JIxyzTOqurea^ zbWe*_k8VVoO5>r(P#uej;IYsVzYWGRv>r+fCyIEa>_Z;#Sm{)%SV`U#nVe5Dl)Ea@ z!sbRYJa>L#_?`9hmz}>d_t&1B(2~p^`E{S6(xu#lvaMoA?sQT4Y9G!&=`+;sa&1*2 zuk}P_Du`u6YqG*B(iy|?j7TEV%$hv3d~SrhtrU_TsfgihrRYX(zwBUE?fsxafwuX@Yk(lY)h@6wbnhN^Kb!lncfKYtGd4aFk~HO?xqm4@hCuyIjz($qPaPvf$UkMW6u zP5%YIuDhWLx(eqG(QJf)7x8>*<0`JvpE@!BnK(}5J^;FIY;J!t4)ZKo}3N;Yoq2XZi*cBJQQOJLH9oi4-E zCVbb?&Z22|jL+6q!8M-P1QZ^#>yOj2+4H%;kwdFww(uV6SH2|hlu!8#WU$DmJ#fGh zzTrs8xu=&b{zd*Cv`>nEVqES04(sK6OsI=BSwmgeVn8Rh>sg_1k3oA zj8nLa@32C?@B7+n0zdF&T=DxLh6=w)3_sIK3}uO-v?omelYJJG)VWUf8)Uylh8)@R zBrTA=NcIxh=VILDf4R#MH#tx}$~~Frb60`v0`tEbu|FWWuxARz4@j3j!0O??Br{$_ zD^|ozw4vleG_yc8JJ4K literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory__Javadoc.json new file mode 100644 index 0000000..faf3850 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/FlowCategory__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类对象 wf_category\n\n @author may\n @date 2023-06-27\n","fields":[{"name":"categoryId","doc":" 流程分类ID\n"},{"name":"parentId","doc":" 父流程分类id\n"},{"name":"ancestors","doc":" 祖级列表\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"delFlag","doc":" 删除标志(0代表存在 1代表删除)\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave.class new file mode 100644 index 0000000000000000000000000000000000000000..954575e677ebfbed78214abc1172184d8510b5e1 GIT binary patch literal 5228 zcmbVQTXP&o89gKI?#!-6(prjauVb9VkriDmEjE}qBO4N1vZEj=#P~G`L6l(jVo3ET1;}u z3Bq~D-f}c_xfKn?`K$JpU9Q^RT6y00)}{qnpNW1HHRP)TdFlEl(E|zKQdoB*=zxhq zJV0m=+Vyb84hfAo8=+e*ix$bb*Tg;n)E%!P8pSvz69@2MJkE@LJFs};@1O?(I+P7JCRJk&O5 zykueU5fhJ#S?0-eQLb9FK4HR&TR9gle1Nh#Wl~wx!@iom;hgooRXcpn4cA$sbG(p_ zeSNgk6N!4XR@Ks4O?q95C7$T}kw{QPo7{thSD!TT6wYWcR&8(g)rMWwFqE9+vnyAf z)o^<31rabaCT0aV=LjS>`#ffJJWaK=1gs1M`WX`+$2_Um?SM|GP?e07Ibrn-O#-Lx z+SO&J9=N`Dd2U97#^&DGTg!H};biGm@uz7hU2HJ!YRNFAx;PN`hEL$lm0HV%-U&JdIRf zsIm$N?t18}@wu;ld+Lfb#eML@b*IjJBs@DTQlTMRWU)^+%Iv46(69OuEeVK99!ZF5 zQ4q#ooERfWqQ#U0MJbUARKqmuJ+fP6Ji0~o##PlxGNyoLXI$-F3hmX61$#3RQ1-&b zxrJH!V@{^fpivDO5^}MH;l#3{idsNnI5AaYxH&C-IG%$p5OVy&lHaJWI_KOf#ogCD zW~M}RYAEkMN*1Xv3b+vRqB{(E+Ip+$6PMB)JZhCBN4AGDMb4_iH`3`#H&mS(ZNol$9E*+?I(rkp-!SxI}&{g zpGLRTkwrow+}!xYE$Hb&+N%(ekc7yTq+h08R%4~up{`e8r_uNBmR!PVhPTHl~42`6sjA z;neKM>$KW}t|dx)4-?|V#Q1NJ&D@-L7sfA;?Y=qj4vdAP9OGlMIzDj+XH|*QSv<-Q zD>M05^prApvF8TN$x`Mv&c%phR+f-sR<4v4nA}|q+(2(BTgoLsBbH9kh-H*?0WuJCEwq%$x;qmxP@0)((!rx4t16c{1R^#$+R~`uv`MxLUy)BV7(pO!l!gZCdM|CmQ{LRWXK=V)B=f5{>$}d#P4kB-I00W zefnFY-w#2Owxb|}Z^)?lX7l3wEp9I_&fjJN5cg~i-{tc|{D`#zOFza>@fJ$|1LW`R A4*&oF literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7b8835dab9a654d6cc773da3917e1df5c3c4bc13 GIT binary patch literal 647 zcmb7CO-lnY5Phk&YwK54@KO*wdNFttYK2x1gcZS-UV13mZMvrJW|nMr`xE?69{d6R zC^5EDi!gb{p7=6M{`l#g7jH1EmG`cf3K zM+>)4_aaTD@la-{PedVjEOf*lf{6^RhYG`qA|5IGlm|RkI+ZF`l6OQV=SYTXS4CRb z+(?EO|96k3zaD?(|A}*RZCOD->iX2YZZg!ml$%iAs@TywT?k&G{rrnEL*p^mRweRI z7b;UhEZbU>6;_eX7>;N26Om@t+!+TQaZE>@2MmuV>9>43>)rjy1xYHdG0P@3)PveVcXe;%kQ|{ZiqeX O4^RqG4{?CQ0q_YoI?y2i literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..be2e26a8e8180027dcd3b7213ce62fe4e8d6e0f4 GIT binary patch literal 2194 zcmbtVU31e`5Ixt4qgs~1d;|y|1quOwVWp*ov`&N51WKp_G%;>zpA`FIL~LD;EQjH- zzo#$hi!#&Bba?Abe-zVQNp=*Pan1BaD_!k9d(Pg~(ckZW{}aI1_*q8+QyQiXBrzk9 zeP!)hX2){c=9BGLvgrxTEZL6jEelNL@(m3i2^5suHe0UhTCQcjR_@M=j(Tmj=-GD6 zU1io~->XS$S2mOm4O2SOFf?Qg9K&&e`ElDvdj*nh>8-Z}PUiBp16noZv?~mI!oW$K zqO^XPb}ILNR=&ZNXAPXeSpkFK0#@}mJt=Vd5bBoa+7a%Yf%CXP`GgzGpN+#u>0yCO z20q5+u)vmQx!#)PQGpTdfoFG2UJGbnHSh_ph48WLA^U^m5PaUi4F=bV{e7p!Ff2Z2 zAkQc|ksK|jQ8ZA(t(ev|>rG!^_K?^$G}}~T8j7#SJU{?z*oau(&`QRoV#Su;6=H^)qALFSTXPoRt1(O8j!jg z%}PUUSiPQf*So!rfYwybu5@X1f63J*f~t&7J3P^q{D&m#xQF{J>w&T5fwm;O1mFv?1*sn2JDY?7sI7OdvyJ*4&{PiBx1ar1w&_o|1ocr6*ld#DwTO zSd0&T=zx`&twbwvKZ=$FZXB`o$V7ch4cw-DU~`w}|EpPLwmyNm&4J_DUD>evHXX-` z<0$%|Y~>L5LePzVk1gy4OJYwp`y@;%kIc?oRo$L)q~ld^l?E~afp5wFlN8DI>AFr& zCPl%kg?)(M=q7Py0B>@uH6_9IyMh$+6(0%<(fHUvOOXQ7P>a)>KfxOcoBDz%;r23})#Ua+du3 z99ixhIpcYhaRGO55zDwlY%T{puY_D8p2P}|@r3vuBRhJE?}_VXfG=jSMK?)7??XMS zk)B^8Jyq6I+GAe-Q%3@R literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave__Javadoc.json new file mode 100644 index 0000000..43d440f --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/TestLeave__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假对象 test_leave\n\n @author may\n @date 2023-07-21\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"leaveType","doc":" 请假类型\n"},{"name":"startDate","doc":" 开始时间\n"},{"name":"endDate","doc":" 结束时间\n"},{"name":"leaveDays","doc":" 请假天数\n"},{"name":"remark","doc":" 请假原因\n"},{"name":"status","doc":" 状态\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo.class new file mode 100644 index 0000000000000000000000000000000000000000..c422e6eb4f6e003e111a4b0a7502ffc26ab50c21 GIT binary patch literal 6669 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 O-zC%dJ^qM4BllkpoxOAb literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo__Javadoc.json new file mode 100644 index 0000000..7653b3e --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/BackProcessBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 驳回参数请求\n\n @author may\n","fields":[{"name":"taskId","doc":" 任务ID\n"},{"name":"fileId","doc":" 附件id\n"},{"name":"messageType","doc":" 消息类型\n"},{"name":"nodeCode","doc":" 驳回的节点id(目前未使用,直接驳回到申请人)\n"},{"name":"message","doc":" 办理意见\n"},{"name":"notice","doc":" 通知\n"},{"name":"variables","doc":" 流程变量\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/CompleteTaskBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/CompleteTaskBo.class new file mode 100644 index 0000000000000000000000000000000000000000..b8e30bc2e57611c97462c7a663501cadb72b20c4 GIT binary patch literal 7271 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 B@nHY} literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBo__Javadoc.json new file mode 100644 index 0000000..f97cf30 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCategoryBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类业务对象 wf_category\n\n @author may\n @date 2023-06-27\n","fields":[{"name":"categoryId","doc":" 流程分类ID\n"},{"name":"parentId","doc":" 父流程分类id\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"orderNum","doc":" 显示顺序\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCopyBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowCopyBo.class new file mode 100644 index 0000000000000000000000000000000000000000..83786f2e816e47b2d6659052fbbe92bdaebbf469 GIT binary patch literal 2538 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 Z@eVHVnIYl=KkwlxXIYNk$A`Fv!oP`;H?;r& literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInvalidBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInvalidBo__Javadoc.json new file mode 100644 index 0000000..ee3f3e4 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowInvalidBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 作废请求对象\n\n @author may\n","fields":[{"name":"id","doc":" 流程实例id\n"},{"name":"comment","doc":" 审批意见\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo.class new file mode 100644 index 0000000000000000000000000000000000000000..30c94b4f424f959b309ef9bef3a498236f8798c3 GIT binary patch literal 5426 zcmbVQTXP&o75;j)yED6*y-2cUuPuyaWJfn=1ttcKER$IAMPcPAmLrpdOGeUI8f!J9 z?2c?4?gSDDfrM))9(cr6l&iQ@;#8%m6nP0%Jo5xk{0d$$;p@5V%#PNQDk{y+>C@l& zPWS24r+fGB|9kg60MmFgj}*ETq%~xa6)4{@ZW`6PVXs!7T)JT{y8_uWmTkFb1-gbu z7IRRMQ;^rt4NYLgX{=UP8qS8%Fsiql#`^WTbE~?-wq;kBoazNOuNuwubB=&&J1gd8 zW5X2atwnAY+=gYZPD$dThLU7eC5uE#Wsip5mU4y^Qn^pVeowhoOJ9m3_rJ1L{V;VkzAr5!hu+P7+Wz+@s569g30h}6nR)SAxcnHG+g;mp?jg7B& zcqC@xjZiMhsD?4goi!z~=kBD2hf(D)$Z)w8%6)D2K`^DmPipv72$#zs<0JN zFGDKzpV9EyP(KqyRqAyOQ#d2gL$~vZaJ2>>1x%Wp)$loKQl!aDJZ338rr{iB7_&8_ zxh7qEX*Ju+WIV6o0xk+1*f7@38OP?*Ub9?+ylA;if!E^E4W=3k-bd4TA@^CLStQ%> zH45A)m=)OP<+0^d7tDrb)U6kdr8=inZhFl{vmsOK>Dk8x#1mZma4w5Reap;n&hk$P zi(LKC^v>XQu>??Ev$pBtdCE!ljyJo0qpXmdwUge}KI;XW6JP8XPnS z94OQ7n#CxO)%Lup>EiH}E!(v=%vt-U)wD?Vm~A_*;d0*O>aEqCjU{KjdeOAa2D55~ zCMUv_ZN>Wma~#?c*qUW`Grl3(wqUSUBa2*=vO10qEP@FN}r z_zE8oR`?b}r0Da;kgVbRd`C%j*#pN)IM>TZw&@BBuCcs6XKV(WA~SzwcJ4f*#@(K6 zn9Z#^kBRQKP~?W9S?7kL3Hq`>m)uY^?9xzjY}!!U7*yBs6PIV%g0t0FHZNGRtdwN3 z`p4a=*l0FqU1O zp8~&*r*r`HNiP}pO5JP@)f{JiYjbLQJ&I}C46ib;JHVfd;lndBrV1!#jCy^+a?L3f zZwOe?)Q7`pPmA%RVYEY8MqA2Zw51$nvTU`--or+_Xj+U2XtOqp)lA)JHqEAjpL1(% z3t^|oDEOtok)5GTB0r26!`m%M3pVUcV_e*h(CEI3;fJ_$|9~()_ee-#v)tS zg5EFiE#&268_`=({>aW0BBBGk67gEnfvAuq8rYSH_m~bu12ire2I1$7F3iI^k42wU)U?X+&C@z(l+|9bfz!wm0s@0 z7JctF`sX{-_wAKlZu1uX{%!OImO910f3NhidbH>dZlhnu3esNk)#6KgNYZ!3wz^+4 zwlA$;luV-KEaYMjU_NpNkIdDzzdXA{1k7nbptuPiC592l*c{tx|F){7nsS z4+rs8N+prSVce!v#*3W8H5^pb|Dvcsy^nqcDgLYCKDC~h`>0}A+N{L(O3NP&g55jG z$jHi>ky$1K8b3(myDJk0lp$K@&|8~#J;5&I*K5-7yifg^?>tH0FHfCGPkRYFP@Y<2 zx~k=|J5WyE!=ukj{kWc%9hG#@qsk=qyC(FE*TwwxjMPdd>^h}qy{>Gli&^bkoz@kv ziwPZADPh;7u6kW+tBYywTTSaZuZtNTSmnH~fzGLR-Je_#nJ&DCui@*AOooZ@4N7wI z@8Fw^Ru@D5TYQUB8fWnmzD+5EXRwCvP|7lW=I~ug3SQ@LCNEJ^@p~M=_bBCLl899l zKcph9Kox?C!7uF}k~V6mq+&lZAt1!0+f@N98-qp2q&5I6?cfOCp(8L+x0ys%o%;eq z{291W6KQ`TMPVS&fS$kCJ0DUHMG#ImPERpW}Qc x`Aoly$ARRHCVsI!79>mjV%vq6y^Z$@e!#a%FF)k-I%^G>KmtF*FYqf={ts0r53~RP literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo__Javadoc.json new file mode 100644 index 0000000..36f70c1 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTaskBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 任务请求对象\n\n @author may\n","fields":[{"name":"nodeName","doc":" 任务名称\n"},{"name":"flowName","doc":" 流程定义名称\n"},{"name":"flowCode","doc":" 流程定义编码\n"},{"name":"category","doc":" 流程分类id\n"},{"name":"instanceId","doc":" 流程实例id\n"},{"name":"permissionList","doc":" 权限列表\n"},{"name":"createByIds","doc":" 申请人Ids\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo.class new file mode 100644 index 0000000000000000000000000000000000000000..7dc36c2163c010d22f41a8e068ba5b8483a9ccab GIT binary patch literal 2796 zcma)8U2_vv7=BK&o1`WEAf<&sMbLu%bP*Aur6?`51k-}F6a_!nCTp`~vs-sJW$-8X z3mosfk#U9#ol$hkjH5R=<8Sa1$3Nhuh|k&Gq?@KAbeilr?|IL2p7(j*_iTRuck^ce z)6hGSKr#&_3l%AW-rM?yu35Uhrd?jWZIpb0)EUz@{j≠gOXNWYCdDXBNAV6*%U& zYg*ZLYPzdycO19+iRIkU%AA|Fw(4keoGu$~&9rsjbnF?2aK7$U3uPWv+&Zi1*lSY~ zyE}^>^a`X)POWCxJU$n5Tk>6#j-7POWzmN{0-2I-U--1HTLS&VG1rj&)W{9#Jdnj+ z>=Wo%GyLV~_}uVF%sn6=wb-A<0g0P3B&a8MzmUa2yeQDg-Lnl^ds?Q>5y!T&KQHxUpiqd}PKQn{cktfH$;rTZ+*_X+k?yhozK z7f>C)Vz>gkWTZoluFD42t!c2>Y__g&b!)!l>!s>~z8YOHSP_8FQvA$APvh;Z<3;jDN;)d|62Ap%7kA3d^0ihLtp~%f@+6 zU})>cFzpSeYG~mZVK2?;CEs!H3Vab4IC2a@FY0#LGQ6Rp<5XEx?adXlv}}~swuAf4 zn1AEOiJ2mZS>3XhOy8Kw;D*4_HU);m;df(@N5*esw~OZPm(OXEX~T z6jmA^3mp7^SEeu20EcheI^Z-WIh%@B z&+y5c6Z_hLzDN37F2;fK&jjLyz5`I#cA$gL1e(TK3MWIGBw#|a9Uc1t>78R62tA_M zWZY6=W20X~Rql`dip-Z# zllRAdL1tlm^Z|AUQx5tU$N4p>O#FsjdF2sy-$QmHuRK7$;W0R=(q(Wml~<)t>Jf7H z(3My7sfLqspJyf8a(^-8(A1}b8O$<(ek|d9pzsi%7ideeRL^3LBL(v;;(3l#Eb!%h zk)sp}#6QHJDw%)Kokr#f2GU6IKO>%CUpVY&3Ny1!7)AcJh=e)K<7HY^sfc79FSM{? z!>p=J)+#wl)=^f^Z$lUI2LfSa(fq-ueEClHPMuMv191m?rz(^-(>rz#>4^t8bW7R? zCl$GnSE7}S6r4+gI}3RtM2#p(p)cVbQc~HnMUE2aWXmp)W|Ca?Vv!>y5bY9_r!*)O zO$Z9b-vm$Tv^7siLqF7pL&HaDHPLNbv0ZNV+$jmmsJmsrGPq3)0o$7|ejRj2k;Kb4 di7P=m-o;fuGelhC=Y8DdtdpY;@DXky{~ubBMZy38 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo__Javadoc.json new file mode 100644 index 0000000..f5b241b --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/FlowTerminationBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 终止任务请求对象\n\n @author may\n","fields":[{"name":"taskId","doc":" 任务id\n"},{"name":"comment","doc":" 审批意见\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo.class new file mode 100644 index 0000000000000000000000000000000000000000..cc8abe188c56abeb7c7cbcb9b16ed1bd4b2fad8d GIT binary patch literal 4485 zcmcIoYjYFV8Geqe)ync3ga{V}aJe|C?@CirQ`^vBgF%VyxHvdXNYkvPwY^x{HM=WQ z(ko4GNlNdzkzSI1DD4c>NoNuQ?q%99$xNp|gOvV=rt~?xE3_*+z?XWY-E-dap69*4 z=g9x~@9JLx9K>&0kwA-zqy_~kfqvUrD3l$$sylk&tnDn#SM0NeGUujMn6nErp6+(BknAdU&$eL$Hmb;K*o2%wdt)oN38W3nbI#2e9#OlxBf>};&e5EEG;G0Ef_a8Z zrrj~7`I=SoOxr37Fs%hV96!xL3mt?2O6tg`^#$YOff@d4WA$5pnAvbw8Cs z2R@-9>6XXTIu^Ar^v_z4MPekShA9#? zunk9WRK>W4V>m9bIhJ9aM`eCdL*JZAjT*+i6hxBNJc376OlX*tj*4V>z(9RdraM)u zR8%}h3}1-J+A&xv74tb+F3b?upUxVN%d9+EJR%?-VVvq#&+61bVOGmOA&@^&vplnE z%$lxAfWww$d%8?$ij$Tuu`u<*3I&vXa-k&M=df-)w=iXUqx8eluz*@+%IOQzxa(Ih ze)!^B#Ut0RUikO(f4P2j^~Ud4sr!Os*OrOeI}vRLCA(T>^^|PKs7o;lhs)(-lAE}@ z;`%*)ZaJ=F$G_e^f8%#AefWoq*RQ>BVCi1Xp=uAsLpkzsv5w~Z zAu5p!5^LiG3u~%Yoim)r18?Uh?2=xoCuvAbdW$CQEX3@*W7DIUcDBLN5_2pB8mt#n zz4zU9&}d*3JfE zrZciP?b(5|*?lW|b*`*;M%!Q~`{ni~9|aADjhUwUXBoG~6FubM;V@&@oRTqa%2u&C ze(Da$hQj!c+O{Vvd^rfTyD^3DXYc}ERPmCAAK-$(-o`OxS}XRFQJC;m|*Cl^K&K zd=`E5%8%tC_7e@?#Q7}FlkoElUdAgbUX=&WYXY5X+!Ta1IE%*Xj(Y9?@0zfFPeq&? zmdEYPOyeSZW;{!}8ufEf^zE)^u^ivZ;)9}_ZJ=nexr|kG*Oj+8#XkjA{7T@yHEvli z5mdY>&~bZKmRFE9*uzkC@XVh=68B;npXc}lPq+kT_~pfj&y$>QCViIUCtQ31Po9D( z;VGQr!WM|lSi6*v7p1j(pZ@s0jirRV`%>N)eLbFm#xXB8MEepcCR#WLdV1c0_yFyH zg8F1O`yN`~mV|3)7g(jbxQ1<1SJK`lcMG27Ge;}I+nS0#-f0J@VF5ZRQUVb%hZ5gq zeko&9sDQymULr&B1`k9&UJG4bVH-D^-jF z?YbinZ-DCn-QNtf?~Xu=zDK2JrH2zz+n(Ncv3Gsjwgw!bZPGHCBLb(nPhsUEi@3o{ z>%-rFx9~EJZozl0fv=#-m`d#@qS^}yAH+NwnYG#nnP!nY$bl4d@0o@`g#v>#w43bW zrJMpNSRA0>Rsvk;?fET~1?hq*5+-h@k93#*|7kE0~-=HsYwr0|0MFjhE9p~8YV%aO`` zJGlD{(th3aLQ~WK!3GtHkFZrm2R~`?5w-`z*66UFG|Npfpb~+!p}HGdQ}<~ zt&*VJf}qyRjcG`gq)}l?I!)+8{_Y`+4BY_VDT1EN4v!=c`T^RR9bRO3(%IfiQ2Vc7 z_*qHcKa`XU`DD0~mO%@a28R@XiShC`rSpovv~&Fs90~-6A!uQ)7PMd=9>mu;N>br%_&P_5@8q*c-6SDNCksKx^7qJ1vNz@=-(*mgIzyc&87GBo zsR&zxvzbcfrV{wZtrj#w>9YUjqzk3H_#Iru=YZyZ6z!0?wH-2>k+%Y3$%@|3w?xhK zT*H{aRTP^OU?9@nGWZsrCwB|J&1VAN!FT!2ar8aXeuy98r}!E1UdJ0D{RscR@rzU| Leu-b>E#&_PRtpdE literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo__Javadoc.json new file mode 100644 index 0000000..e451fa9 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/StartProcessBo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 启动流程对象\n\n @author may\n","fields":[{"name":"businessId","doc":" 业务唯一值id\n"},{"name":"flowCode","doc":" 流程定义编码\n"},{"name":"variables","doc":" 流程变量,前端会提交一个元素{'entity': {业务详情数据对象}}\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TaskOperationBo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/bo/TaskOperationBo.class new file mode 100644 index 0000000000000000000000000000000000000000..fe162eb175ab7c3619e63223918ffb9920178e7b GIT binary patch literal 4156 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3f5f52a01bd955bac149e7f9bb79c798edfea07c GIT binary patch literal 604 zcmb7CO-lnY5PhlDwe_od5JB)NUJRaB#abu`6~Rg`J(P5tuBp43C7W&WNBD<4_yhb= z;@EnqQi>junPKL=yqU@S$Lkw_3+x3b3Dn8Oa^NUcPRR+mr(r@9IpEk>IVRcUu%Wz; z$vt=If#%~|m1WumC=1j^YOG|UY%K5kBOUnwYXV1xWNiFn(U*y_nKp^h@>=D3h7_o@ zO>C7foECU#{pJW;%kk%}e~Ay5md`g9UWNkIHWe$j GUEmXMA;NM1 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..48354de40175da8731ae85895abecd5b37b39227 GIT binary patch literal 2163 zcmbW2-*VGN6vn@GoQT*mF@I7>p_CRH{ErAqOWYb-j3G3wlK{zhrqe6MR*b;bdSoRG z576i61N0`n5i{*fhr7=7p*sDJtPrK7p1L+Ywv6(>%QwGu| zrZJct50AQ^Dg4vB*b<_76Yt?%EFa^pb`tVY4w~BQM)C_L-p7Sl zKH+{Kf9O4u|G>m0kD`&3hdJd0o z+wr&T?Vi+9Q@8D2%l2LQjtA4hGnZHI(b$B%Q>e%7EXT)tkhcBq4Fzj5K`u0R61_yB zG*;lqX|hl^1H1i#*C>uEzvcwbbcZ#^OCLB=T*7rzp_;6jQPZo9dPY=5@krcsl0yoM z$1FY8F|(<6{kF5>O4iFs)Rz9Y%q>ZmQ&@Pq>jmt5EqCbhkm{bN13PfF#|TCl84jc^ z>_}kJjIANVb9C@(;8+daA83!=r^dFk%vP`PHT(WFE!#bxb$(g2N=8esp?={@3itVx zX&{FNpXSH`5Acv*O71?rWbx1P|De5B{sYr$|2G)lzsBrZr5qv?A}{uAi1T7EhWJqI z#~~KQmO@+?dn3fH%04xwqJ2xq@ck6hZ0IwX=U?L-TlIPN(*-QD3oqdUZsQ^eE=6pY zNBhTYB*6+Ek?|xO*Ed)t-?x#rn!$H`nO2-1#Zcp%#PAcX#88zOD*M9pKiL;COPwoZ zze@INWGIlmNYWD7%Ve*ReJR0Real^qxyga%yWF#>h`R~o>&*XJ%)U%=Vb7JyZ;-9L zff3@iBr|!4M&b~2@rIHM(aZzQ{77>>*1ScVlIch@#GP?^vk5)PE%j2^hyWhr39a0t Gr@-GBV<5c% literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVo__Javadoc.json new file mode 100644 index 0000000..015539f --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowCategoryVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类视图对象 wf_category\n\n @author may\n @date 2023-06-27\n","fields":[{"name":"categoryId","doc":" 流程分类ID\n"},{"name":"parentId","doc":" 父级id\n"},{"name":"parentName","doc":" 父类别名称\n"},{"name":"ancestors","doc":" 祖级列表\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"orderNum","doc":" 显示顺序\n"},{"name":"createTime","doc":" 创建时间\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo.class new file mode 100644 index 0000000000000000000000000000000000000000..1f31d9bf567c2b4bb18e994d4354df9095269b02 GIT binary patch literal 10527 zcmdT~d6*nU6@N85vokx}d(9q6XOqn)nUFg}0Ks$!*Cq>_Yz~vK5HKc_-O28d+397D zkPt-$Z$Cr~3Zmdm6r&J?aEKf#porp)iXbQ|-gt|E_nmGLcDUM-%I|UyvFu2&z9holO@` z5mYyK-cSQYs3A;IjT%W4lrVFniIJQ+p3Ef^7n!-8J2K`)i4nBZ*~Bh0(U0be)D9*{ zo7o{#P#`^mUIyK62F>i~GNx_TsD)YuMTc{#WFfUFJ)Uxq#X>rhSOKj>#x!b|$l}C^ zLNY<8MqM;XP^6H`CbNYBbQJS+w6Ty&tFCm7rZ6%*lFIaFlB4WBRikOrn;)Ui97(Zq zx<J>)b1JTKo-QQoP5}XM#r*$bcdN6?5Id~b=r!!n28Yv2o|~;3HQGdH3u=P3&l6ZNo6ij` zhM%L+xiYXvoeXp<9Q9X5@8WmJeU{B;^_Wq1_u6;_n7I;qiin}uHv z4m8$}Xq58mIeJ(>s?nIO?^EH%`U^DL$@&(4ETy-7#x=^ajk_MQf{tA#G`f)0JQMv+ zEU_i8QNiwnEgS)?-=)z-b|-_LuwmOCjV>;?*?zCr=nZVEM^7s`cmniBjow6WM(~U! z^JDzbGMx;>kc2MN=q>bCL6gRlJ5zmT7BA2_=>kC6d;zaY>4%8#;>?qyTlX+h?r3%yA1$D@*n>G_0Q@M09lfF2)J;OORFPkb<&K_7H zNUTDf*efuU%oI~0tQ7wdg7gi=YysJMD4kD(;Phe3}aHtU|}qcK`kj6R1Mn{hSRMcav;0Q=P_f08FPHQxifJlr&7Fs zBX9}jtz6e$5w7!wFw1LFg)wtvJ$B0RQ~|FgW*83MoMbz?am|j5a#Il!5ZZ16DoMfi z`ok*#8qe#piV0Y3Cr%brP)5X zVE?!5uEOeo+t#9c0G7f6*zcah;40dzhb;+>nAMF9vY4!)s>6;mRHxly4b|CyocZ8$ zjCH($lLN9A-X5+SK@#9S${--D(UdB!VcR;3tqf=>Ba#tE9h}N6A}KfF1U0;KO>#nI zl+gMO18Y_y0tXO|xm3QGfkT}PuV~zJnrn%dM@wVe8y1am@A@~y-KCDion>u^yDMnP z))Y6y?J37pIkIJo#GR>bjCgt0M(I!VT$ujMyZm1S#od#CI=joEnN&VLXqr2V6Uz>}v6eXUqx!(l_b}K;SdU6k^d&Qy zjcL>$5&D~;XUivGZhB<7SlH{XFt^+l=9ay}EUOh}(OzL&=2c|bUSY3n+tdoP$q6~> z@4P~GiOA>$8ZvBULclKFfpAEti_nq9GiehU+(=LPi~ z9*S4UT1A?H6J>w|y^Uh1%-%uog#0d?HUji+TqrfAjPg+4QT)j}sy%r}Ehq1&-{c)7 zo4lh+lXnzm;JX}hEAHTxiB9uHnL`~&H-BpQD4EYeXl@s+=B|`1wL)1}DG`lJhswy9%$>l`zs}i9O z^C9XkCrVT$LgD5^)KgA$LRBJEdOk!m%88a%B|>TFLliG3I<+bh>PR1=IpstvsuH23 z_aT~JPBc)J2qml!(c*HVwN;5w@%j)gDJR-kl?Wdne27jcCpxz(5o&E8qLa#rwp1lT zVeUg@loM^QN`xxjhiG{@(P&ko57M<%Co`l0!T=||`3r8Nuz!l|vJfgoa{A;QK+uQa z7eX;385YNhA>%Aw~*Dg8(2qkg0BsFj|#L5IGp zg8pOv^pk6)=iSwzpHe~paew;mTIqSycIc;7(0{_8zNc1tJ_|VXy%qGI^rxRuD?J}E z9Qs)m^q=ylkJn0Xom^DhA5%epgFpS8TIu=dZ3i{9Z zkA88j^n6fr=#QMe$p1{!9#SGjaY4j09kF+ z>mkO}KS;6t)TD>>dJkxw5e8_T5z)g8iYQQ6k9a^Ej0S)<7*V}}K~V*2(4!vEkkJUx zkfG^~4AK+`k_WWeXaZ=n(X2Nys9AxU^kxrei_rqm7Nb>fVNk0Awdk!L&^DtDplwD> zZ(~qQf!g$#2Q+N712k-O=3HYNd-HYV$n z7&KXdCh3zspp2mdlrg60I)kPtkgiYhfJ~zsAk&ztcQa_J0(I+CJ)oR14WOLSqfcW{ zj{;58dpw|`F&&_y(W_5qP_F__*Lyvn-Np=nb{jMG84Q}KKr{529?)K67C?KAxIT+P zaRr*C$8AvX08T4)o~lijf1+T8t9`Z!?4z6LX2g1D;1W8Bk}yE=fJwJNS4Z;$Y5D@B zAe|W)q+20{XicD>Zi7@$nZO)61Sw3pzzn(_QiQGy1n3S(4Rp15k?w>Pr9g>A>J&xMLk~de5?9g7^dO{3;#zv19)dJk+(|#7uR+qq zz4U$hI;1J$Nj%TPkh;Y)n2T>fni{A>dHx8bX@LfO2lytWp1@rE;`J>^(*uj~TiK(K zdIM`vGJhM=jKD@ZjlKhEW*~>J3Ezb@E3lio>3fjk=!-C_6T^`gsX0uMm#8aD0sM`K zmuRvjHvE5x_96JDvZNT~A7|BWy%h1pXY3GXLk>gl#{=stgmuIY*$9Bu&V((kY^cY|{p#UYhD16SA-6HDrXP35i#Eg>BPjBO*-^$Aoljd2KNoqzRc= zc{SLkZAMg@qK*mq+434T8l?%TS$Q?urX7YRO`2oUY*X53k|yM8<<(@HGDfpBH9IC` zaH}uVXptr)Z{^iun{r00G_^V=q;$)xXtYTavbpkVvrW5=m^8&46LP%ewby8uCZu=e z)hfQ^b{c(K%gh z7Q5(iNcB_@=hIIih3N`$8a)9iLN|)p^dzJPdO$?!XON=w6uuWf1*wrd=qAy#klHy3 zgobJ6%TNTv6cGY1K7P-98AEs50akQU$OhP$V5v&M>OC+QS*}&!a4Fcu`xulxkV{cd;Yv z&h7DNJXNRdN8YL1?@>Cdt~-vZYq$5K_s0OrK5zZT`G{DcHf$Y4tN74>YXhz!T$^!i z!L<$7Fs>cA(zr6XR^u{p<#4UTRm8O$*WSD6QbJnyJKR`5v8+;?miJ>@9sO2%{EmK) YdjzBT1FpZ)-_eRf`Um}s{!RLS0m!MI`Tzg` literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo__Javadoc.json new file mode 100644 index 0000000..b2ca213 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowDefinitionVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程定义视图\n\n @author may\n","fields":[{"name":"createTime","doc":" 创建时间\n"},{"name":"updateTime","doc":" 更新时间\n"},{"name":"tenantId","doc":" 租户ID\n"},{"name":"delFlag","doc":" 删除标记\n"},{"name":"flowCode","doc":" 流程定义编码\n"},{"name":"flowName","doc":" 流程定义名称\n"},{"name":"category","doc":" 流程分类id\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"version","doc":" 流程版本\n"},{"name":"isPublish","doc":" 是否发布(0未发布 1已发布 9失效)\n"},{"name":"formCustom","doc":" 审批表单是否自定义(Y是 N否)\n"},{"name":"formPath","doc":" 审批表单路径\n"},{"name":"activityStatus","doc":" 流程激活状态(0挂起 1激活)\n"},{"name":"listenerType","doc":" 监听器类型\n"},{"name":"listenerPath","doc":" 监听器路径\n"},{"name":"ext","doc":" 扩展字段,预留给业务系统使用\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo.class new file mode 100644 index 0000000000000000000000000000000000000000..c27727dc312c124661109292a483b7885775abfb GIT binary patch literal 23125 zcmeHPd7NBDov(VYd(Jm!CX>9}N9URxLk@CO?wMqg36l_#5ClZ%%yg1YX1YUnPeSlO z0Tpi)3>XcHqM(2%5)6ldAP_}STv2v$(I75}i-PR3%P!Y`e^vF4e*Ho>A<6C^>nG3m zd%xeezV)kmRrP*VziA$M^X`L;v4#9smCRsfIg3~<%E~yKlFn>t?a8G3;+c5su5@Pm z=HB$K)*d`3Q>{DGtsQt=napm8XSZ)mb5_-zNyKxB4avR)XZ2m%;ydH5{kdds>oREP zSAo02VwJ3lvxfd1JWU+Ww9Enyh>q+t%}vL`f}D_u|_t4 zvk88;y3>7q=~QcXI+KuS#e4eBfz46qR z*7dneGPPwsIX2K@&1?{7)fvCrjp1P1Vnf(a&T6{T=^Y8QF|lFy4%9xt2k%Vf5?c}( z^vrNJqMVJi*eEudvuXb3?TTmmT4lG(7A8{tec9Ibe9juQa$~%=Khd`Pw8U=ok8YuC zfK$m)8a38pF=|vpo}X*t)am2dgmN~~Vw32V)yvl@DNoOJD(TYjg1oUc(w6$y$q@ z5imJa>n*lH^2c}V$fS2BGDNk}VrP-ES}Ps!*%mv8^j3Gew>Q2ijlqS41^Vs`P zHwIW=GMhzDbtSWSG5)zn8aaF~uvlEyncbe;;ke&zu^v)ZQJ=2Q#dG~xa%Ho{wvf7( z)HJ<4Q_^DFT$55ej`mutk4)u#=-v1h**|HE?I4|*xF|==8H;7c_wc#*|+D>Nq1mUKp<-*2%GD702O=nq-!5;9b6PG|bs`?I-pAF+SLVwXx1Qm>8Y zwvzI4i+xln(L(37f81hMkg^fX(#6bO{*_h>?-0cOAuj}N`BE|d#Gd`N-pyae6n3@u`iL0 z=6R<(%*pa)i+zPGm9Wrj>g*xybr$<7`x=G;w1K5!V4g$H+CYWAZn1Arp=uPOQA{I* z^xw4Dx7dxU@^;_)?lvudh5xq2zT?2pl#9Gtzzueb#cpNaRTXT|YXE0Wc@F8-mg@bU z#lBDQD)_TZtq!FAfyM4{SUU7NK>9l^_CwM)1=~!6g8+9~>}~>3C$_mO09o#}*pD1a zXa17@K8xM&*E>uPSnS87mminBSx==Nve?6gR;TPwEcR1}bE%&DRO)9I`#I@r;hoky zMSfwiUy_MNM!RnXpklwW*gvpeD_7PA7J>X1B$ojy@*9i&*70DyUI|G5j~4qU(o_FX z$EvAKmfuZhpDgw-q%MPc`9(QW zJ!i2$lZwWl8fR_0N&gp%{VVBZ^X2$!+wFACUoG}Gw~Ss4sLV?i`@37lw@8rf-z@g; zWRvZ5*9o%xhsFNWVe8OK1?m6GV*l;x^=d)-*Ddx2>8WiSy#?bfi!)NwtMmmpnD^YU zxXB|}OSZn%fGS2uaOgd*g%WyS{O$Ystb7o_v zrZ@qR87Pi1>0q&4oMTQ_*>`J6>^D(3EoH|HmN z&d;UKPbIszr|?O@+S7+PE0Mv+bA5743Xx9+%9wiV?kHGLI0_blcmSrSj7J<+$yk$h zmM;3{0adWmn6wd2sfl0Lg&=fIf8VA=W`pXp#;$aCymw<9{fI8m%1CZ&5`8c&uMdiC z#o%H6>O^j9x@RqRZheUyRwr~m-19!kc*auQy?u3jhpr0mEEp~{`_~+23Q{A6>i5-| z+8Of38oPSaeVfwTTUR7fa_`dvkH$M+`eL0Mg&!0=Io;>&BdF$TSiSHeFBH?`l2BDZ z>8Jsp4*B41CKQPiJ*bZH;wlUXszOFn7~hcdVkr9ds3Kkzp$MJW!Fy6z^4N)}@D-Kh z{=Gs_=aq6I1bj?T$`==?Hu<9gMG}kwoGx^`d_HwfbN)cX9ML1d**LoJ(BbdA1t)q? zz2U_S%9Z>`!P9y1fqF|iD!_b16A=rj-g6=V-B90mU)%Nk({|rCUVGzy*%jXTp6e(5 z6;~eUMM`zD?~9Ek3x^v1{k@L$5#OhCTWRSir`Z{!J#U57NU=dG{kvDND09BDPL*~e zddynQ;!{;iP)-j=O97n6Mrq93x?|obOh8*Bp(!2Nqp=F*De4rLFT~g0s7;w#(iF%$ znQ>kAt5j9aKHsg%Q&_Spz30aZQ?7W=(!3cjNlgXqs;6jHuKG_w6mpPa%4@o^D9636 zzw5YP<@J$TqkVm(6doYYGwMX87$7~%KMTMjqTC9qgJ4Bb09I;MH9lGLyuj^LPf;(c z*3YU;gQ_=Qr~A%3N^nP~|9k<%NCJaL3);J&T6yQ3EV$lz3f2Gg3e^JO_P<}Hsw9oK z$8dWusP@4AB}Mz^v8tX>BTk=7xFgPeu8?iT5d{{1)n`&xty1H^4F_v_Ja`H<)tzTm zm7ePPO3mc1S`L$|&`fy?nZuN))E((t-}E%~4n5F5*&gS-!*$$KXn?y8`lgr~>8iu@ zIf&a~?z0+f8UI139&CBK=-PFitCwRT?Zo3Ds50g)I2EW&9xzgI8XNjm<#Q`#b`a_G`Q)D=O5>jf6)|^gM`CJR z>#m}4jN0?QsFg7%o|U$|@rJs6V-3Bhcg9Xns;;SsxkJN>sPHvgSH>T#;t%nM%lTp2A^!v+x_1zrOzli> zPqZq2wQ25%cjI&vZM@bWx@w>zT^UdH^d_>gu5@~P|Bm^E5x!58SCEdxLg456@Xl$V zPo*i^lgNWq@JBd*EwA+xlRXRhlu_PTrYCPK(~~onN!DXoiC$Ps&(7E;*_%)F zq~;SzdGo12LF1E@-Xx$WnsW4}9oa!SQ<3!f6Cz*Z;GGFUR^Mld9{m%7p7SRJX`Bf` zGBs2Uc<0HR5RS&15Twx)f<#ORx;c};FFTGp6GGa26M~+-3E@1^sj`&yf=aTU5G490 z#6ms^=iHqs?2Foa-A(;|=@{XLFydy~?@5sx@J907dj?|01BikbHNUz8{vRv|xERwt< z$0F}Ys>nO?DDsZfiM%6QBJW6z$UE{N@{ZI8{Huptk9z~WY|QcjyeW%Ji9rbvi9)^u z)`2ARX6TX8ka{FBEdnjX?9^d<5>0Yp(5|khKD%ZWFuPcVAT&Z8#n$iYiyxMk`J)j{j7;vWcph499s5gq&WW~tHdZI z2Gt@yny`!yM+IZ}SlvmhbSKqPCk<|ye1Hwx&&C8h>Ls+~@2rNs>}yG_+flWYe)U>H z-g8Q1>MC0CM1DkDe#pjo%xF85O+H7X+R+&F)HCBG5t2LwM0c>3@4=|vr6L+qlnAMn z5F#EV8d;PGNtY0!>L5|9C=qfrAw<)HM3agVA$t=-G(AW(ttb)lVj)Dcf0of}%u7BZd%l1&Iw-k-qD07Mh7g?@BrKfGCOFy%KeoA=f%qo?hcCRk|>;n3!;oi?Fm7X@m zF8#a$`f1_bi&E)nukF$=D4=f*r(akqJ#FD#`o#tGr-XNoZzJa4E)@<;IuUT`V+Hin z!|9il>OCDaxb$rW^fSWg+e@XV^9z@Lc>(>*aQco?>FHR+rC(Vh10{Xe( z^kFMCnrQcFOzcieFYpL{fp6SwWE1+)+r{7*GJsp#}^nC^N?cwyPQt9dR)urE2K))=U z{=!n}=}_0D&lb=x52w$SO0Uj}^?cr0K;IEgzpGSwI&5~m-(5hzBAou>Qt8zhw)Xx5 z1@tS!=|5O1JspC(-d|Ec-x*H-;Zo`8Y~7{5w19q9IQ?a%($kT>OaIXV`qRScKUOL| zWddCKD+=hl!s+D!y8jqioktf2Sd?IJ>6?S}^b-RWLsY(wFTrUz>|QsysxO|>I;vd=q+t3?!$t3{a| zB}^F-05`H4J8GBtK-Y+JfUXf0b~%A6G^pIJ@PYP)jkhK90J>Q;*#ijFq(KAhCLicFF%Y2JM6*4RK+PI7&~EmDZWn_9x?K#m z2N7tn1`VgC^J$eV|9hB!C_j zE%qb=wP?^J8{^s?zK@B?06iwA*pmq~MS~_&7rUUx#Z){#E~eRX9!%4qsrED<=n2sZ z&=cYmyOo$u(V$lQ6d&kGF&&^M#SD8ofo5pXbbE#m^puzh&{JZTJ(EDQG-#$h%Lh6l zP6gjOP2<^lAq5cWI*2@RTO3m@ot zF(07k#R7Xiffi`ce0zZp^nzFj&6)SwmiN+0M=(FxF-VwK%Vpj8^wX|HlXkz2x|YU3rf+B%0c(RF+^ zM;@3Bj4tG-Ba>^eSacd+3!TYYq7(TUkRohFw3@Gj6lJTUQNA8h8S9Na%QrwOXPL+m zekP;}_W8&mz7bL-yC!lEKMPV7yEF0?{vJrx?B2*8el{eF{VuYLp986eJsr7_p9`rL ze|^4=zZX&+FN<{X^B~ppagnL~eUKXXPe2;X?=ru{H$$@dedbks3#1|Z_hyc7g*24^$xQJi zq+y0>p3b*H8g5jYoqRi_5ynKbh4(@lX-qR?ybsbSW3?IODM+J@^~PKHliW3IjFB;p z@EwrG8W$N)@(UrwjBAX0cm~oqW1q2~XCaL@?lt!C9Ha@x1ICrSAJRnQY2!k^6VfE( zIb%ED1*yd>GrIUikS3d!(ZP2^nqp2iCh&_PO*N+*qxt(GO*7XT2LAx0R&yhNoqrJ0 zDP})^ihl^wbo2fE34RHr8RlMofPWa$O!I5}cK#7av&{SWRs2#&r!UZjq<^N&Lkk!d`}uYfc^GK-JkpMbO=vYx%gKM84J zPSG>+@%bD>8Yc6Nw@vnlv!3Ha_^8ZEIB`3Qd^xul`)qwypLceR(hfMRZ zIME-PL@6?)HSK8Or~Y#Yf?_43zim-F3x0ZlozpMf)Jgl`XTd!Irw@2$m+%a7*Dx|5xHB~sK8$_ivAu83SDjm~JqDq>oTvL@}x>;096T(zos@gH# zCM;>PT$AOPZWlGugt%3gs&P#FMXfZ|x~5vkbU@Te69QRXs?IUpBkHB8-Zj-brh}qE znh@FQQVovjkZ6>qM%UEnm>v`ZqzR#}E;Yb09TrW})a06)9MdCWpfn-&)ujeHrbk7y zG&Q@XX2u4#;8dPR(tCWPF&)L6&#s)$Kb%r(Uv(`#a! zG$97prN%j?H^q2q8t;D=wK=DH4kO!HBGE&meMm#FzOz88|gs?3M^m$7)5 zY^-@J{|clCTV#HL?}HR&XPdkDb&$$f&U`QbDx`AuIdduh8l(#L9dkUt9#SQH$gJjH zhg8Lm7%%Z}K&oc18NcB-K(ctVaX0@aq#8cm_$vPvq*~r(T+VNVRL8d%Nq!TgdVZ;~ zhJPDU1K(%N@TkOmox z@d^DNq`}5H2ra%3$u{~Ca@`JT2m+5K{0ESR8aMNC{0>ONjEC{#$^DRq8&9(r`JIqP z7_Z}#{XOIE7y6UE5s@kjl*vo4N1|F*eo)7Pe zLc4)&7bI{V+dn95ojTdI>c&nuxsCPS z?EgZ=Xma51A@6g4AaFna6T9@g(mj;=z;y$zn{eHX>o#0hI4 z!F3SV^|%h?_rt|xIlh3g2eXK+1>>v>!+;Cd0)%eY>_^(wB{ zaJ_jq#}9~uzgY19`gKppuU}1mzf2Gv;t$|nfg$!|TtDSM!xQ~b_~-l={4r+#4|`uI AT>t<8 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo__Javadoc.json new file mode 100644 index 0000000..ac31010 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowHisTaskVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 历史任务视图\n\n @author may\n","fields":[{"name":"createTime","doc":" 创建时间\n"},{"name":"updateTime","doc":" 更新时间\n"},{"name":"tenantId","doc":" 租户ID\n"},{"name":"delFlag","doc":" 删除标记\n"},{"name":"definitionId","doc":" 对应flow_definition表的id\n"},{"name":"flowName","doc":" 流程定义名称\n"},{"name":"instanceId","doc":" 流程实例表id\n"},{"name":"taskId","doc":" 任务表id\n"},{"name":"cooperateType","doc":" 协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)\n"},{"name":"cooperateTypeName","doc":" 协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)\n"},{"name":"businessId","doc":" 业务id\n"},{"name":"nodeCode","doc":" 开始节点编码\n"},{"name":"nodeName","doc":" 开始节点名称\n"},{"name":"nodeType","doc":" 开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)\n"},{"name":"targetNodeCode","doc":" 目标节点编码\n"},{"name":"targetNodeName","doc":" 结束节点名称\n"},{"name":"approver","doc":" 审批者\n"},{"name":"approveName","doc":" 审批者\n"},{"name":"collaborator","doc":" 协作人(只有转办、会签、票签、委派)\n"},{"name":"permissionList","doc":" 权限标识 permissionFlag的list形式\n"},{"name":"skipType","doc":" 跳转类型(PASS通过 REJECT退回 NONE无动作)\n"},{"name":"flowStatus","doc":" 流程状态\n"},{"name":"flowTaskStatus","doc":" 任务状态\n"},{"name":"flowStatusName","doc":" 流程状态\n"},{"name":"message","doc":" 审批意见\n"},{"name":"ext","doc":" 业务详情 存业务类的json\n"},{"name":"createBy","doc":" 创建者\n"},{"name":"createByName","doc":" 申请人\n"},{"name":"category","doc":" 流程分类id\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"formCustom","doc":" 审批表单是否自定义(Y是 N否)\n"},{"name":"formPath","doc":" 审批表单路径\n"},{"name":"flowCode","doc":" 流程定义编码\n"},{"name":"version","doc":" 流程版本号\n"},{"name":"runDuration","doc":" 运行时长\n"}],"enumConstants":[],"methods":[{"name":"setCreateTime","paramTypes":["java.util.Date"],"doc":" 设置创建时间并计算任务运行时长\n\n @param createTime 创建时间\n"},{"name":"setUpdateTime","paramTypes":["java.util.Date"],"doc":" 设置更新时间并计算任务运行时长\n\n @param updateTime 更新时间\n"},{"name":"updateRunDuration","paramTypes":[],"doc":" 更新运行时长\n"},{"name":"setCooperateType","paramTypes":["java.lang.Integer"],"doc":" 设置协作方式,并通过协作方式获取名称\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowInstanceVo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowInstanceVo.class new file mode 100644 index 0000000000000000000000000000000000000000..3d51038ea5d482ee4461adce11f61c212ee7bbce GIT binary patch literal 14536 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowTaskVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowTaskVo__Javadoc.json new file mode 100644 index 0000000..66a1c30 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowTaskVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 任务视图\n\n @author may\n","fields":[{"name":"createTime","doc":" 创建时间\n"},{"name":"updateTime","doc":" 更新时间\n"},{"name":"tenantId","doc":" 租户ID\n"},{"name":"delFlag","doc":" 删除标记\n"},{"name":"definitionId","doc":" 对应flow_definition表的id\n"},{"name":"instanceId","doc":" 流程实例表id\n"},{"name":"flowName","doc":" 流程定义名称\n"},{"name":"businessId","doc":" 业务id\n"},{"name":"nodeCode","doc":" 节点编码\n"},{"name":"nodeName","doc":" 节点名称\n"},{"name":"nodeType","doc":" 节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)\n"},{"name":"permissionList","doc":" 权限标识 permissionFlag的list形式\n"},{"name":"userList","doc":" 流程用户列表\n"},{"name":"formCustom","doc":" 审批表单是否自定义(Y是 N否)\n"},{"name":"formPath","doc":" 审批表单\n"},{"name":"flowCode","doc":" 流程定义编码\n"},{"name":"version","doc":" 流程版本号\n"},{"name":"flowStatus","doc":" 流程状态\n"},{"name":"category","doc":" 流程分类id\n"},{"name":"categoryName","doc":" 流程分类名称\n"},{"name":"flowStatusName","doc":" 流程状态\n"},{"name":"type","doc":" 办理人类型\n"},{"name":"assigneeIds","doc":" 办理人ids\n"},{"name":"assigneeNames","doc":" 办理人名称\n"},{"name":"processedBy","doc":" 抄送人id\n"},{"name":"processedByName","doc":" 抄送人名称\n"},{"name":"nodeRatio","doc":" 流程签署比例值 大于0为票签,会签\n"},{"name":"createBy","doc":" 申请人id\n"},{"name":"createByName","doc":" 申请人名称\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo.class new file mode 100644 index 0000000000000000000000000000000000000000..13bf13839022a8f92d2a09f7928ac59cc610d69c GIT binary patch literal 2452 zcmb7FU2_vv7=BK&n{3ncgF*|j6+w#jgA!4clC&uF15y$|0%1mP+@{B7$#%EyZpz>< zar^=HrWZP+b%qN@Z*a!n;Lq?<#OLg8+O*AxW|HhV?|I+nJn!?q=j`u)KYI>f9*;6e zAen}ig^rZK;A3;k%-g23p1-^LSk?o9)STs5!8L*8#AK}p271!SWYLSPz>Mpy=hr-U z!}QGj6W42gX}eGIYn)q7e#^}-b6PV!%Urc(%_T%rJ{1@$@9$C#Jj+=xD%}1o1{A2i zW!f#7q2*W>LpUyA)JbpDE|zEJkpWeAi`gTWxb2G^qP6L>3&GdN3Q!}J>q?wSlWC=F4$b6Jezyuir~vndx` zr)~z1tbk6AADB+y3(R&BjW<6^rwhY0-X-@?A7BRw;aYYa*Gag`1fG}dXd##AdZXt-S>jeDvh}3jvUwP^2qrZi2N{7IaTdr_-IiCE%a$tC@q?XzQI(T9-EiH& z4?J@-O3oihVI_mxD5p_T9d$=weE)1%&X(Jh`DlZv$(GG};CgKCZ#vs6c8ox8na-Lm z{qeHvHd~v;qdnJQIS}~Z>89-B{&|Og`@nUWVu%IPwyRbkiw5oqoIaTT1nV#_E}RKP zn-`M;*^Qg^M{1Ccba;xAYMvcfcg#tjlLG>GCrgTDzyRu6N>HB^iN24&ut{~h;vhUE3pJV zVw}!{gTX@yU+E6t_g~>v4ffy%j==M}j@kc7W@)l$Oiz6WUE7)d6~?#FlRMMDz^Gi9 z+Qncv<>17f3;Zi+GryrXr@g?jZDeP1+AdDDJw^*UT}BJ3oUVLQFEF%?zMP&*wVkvb z?v?B)SycO55r;i}8kogZCNPXD^}R%n<5)zIwj>+w8s<3CaFY!=&ykJ_MrplDT|XxN z8NO1DztEqC@e(6xB=|MNOPq>^J$u5;9uh`Vug6#zwY@5=L21f~GxVAu=Nu1+ZSma0xMO%UPiUy6M2|=Owx_d>Z z{dqzehM~6|+CJJr6WtE=^3vX!n^myPx?d%%l6!`?fy0Nd^E&8{GwHkzl2{JQaTB-r VG>BN@?=C*&EW^=#JU|V(e*l1`(Z~P* literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo__Javadoc.json new file mode 100644 index 0000000..7bddab6 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/FlowVariableVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程变量\n\n @author may\n","fields":[{"name":"key","doc":" 变量key\n"},{"name":"value","doc":" 变量值\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo.class new file mode 100644 index 0000000000000000000000000000000000000000..3ee750d13645047ea1e058045197ca11b0ac213f GIT binary patch literal 5509 zcmbVQ-E$My75`mZ(yrvSEer-kXadAZz#mber46!y5I&vCgkmsF=m%?gu@}p`jCo!Fn$uuwNOrQJIK6R#s<}c_=Y5Kc+SJGPEU{4vY zb?!aC`@8p?d(OF6`pbVm_z1vuyp=)|nl;1>#E}q4pE766Y|(VavyY6PvI?F+V!(E6 zZ-+qh#!Vwh=tycv8EAna(CwDSvtuQ9$}E}L({5?h*kFTmN{dM zxB^Y~7#GObSIE20c)w(9GtiE-K(Z*YN6t)J0v#dXuvfAJXorF2SV3snGfUnc(<3zC ztax@YD@T0Jl?GNxpk_H^a!{_5F|Y=ARM**Ko+%3~53Mukc-FX8^5=iSz@2hWiIPR@ zCgt>X2G;vST-&RZQyjY6Ko{;2&%NufoPmCcPH{VXm3!szb^|-)qDc-P_Pr)YA2hJ5I!bEa zaZT85U=Q}vaT8{FVz)cSV`O{{b}%aU8#sVLfmKuHq_x|13Z{3=_6Tz5cgN$IJs)SM z=BSyqo+wzwtXTtO_sW4oC3o5?d1v|=WiyhSVf4>GUjOu!-}7w$_4c*7bI;s-_xjwW z3+&E)cy{i}g&P-VKfU-KyEm`DeB;f_wXOos{ra~zUVW!FckYGDb8oyw&YS0FZ=5|R z5K~9jp0^$AU}b95DjiXVcjVoISsXFx4B8P4#=HsJH)QE$gNED@_+-$TiSSBCzUWSk zx|7-cmSdHe=ws6MvdXaK3j$@+2oGh*@+RD|Lo8ZTmdB%^eVpJYmdcZPIb1z?&XllF zdQ|D_Q6}kA1O-_UB32o@GQ6Q`+{sBvPEt9eWR)q578cHMDGUk7%);c5IUR&f{LtaSA=V4Q!oZSTt`t314ByyPSIDfOqYOxOg|@19 z)wZQ|RrjDtgulM-x$2;KfWvO3RIv8heg=o`u={0_3v69NA`Xr_Zpk|81PSU#WpAGK zVVtF`GMX*g&a`D0Z7Y<*KCx>%(#Mxur7#uZ1Hu04mZ0rZZNw%3XQa zovcjv-?nPbn%kEY!|$ojX{TXWOvalm#wmfUkTi^z+q8-&~QoM&f7zIrpjr2 zN9eri1s>+-8ssrV`5>==COpE%w-x(eXTOb~huMaYLzHoZIzE&lbw{b=%P3MeLLDDN zk-B5l@lh11`v!G<1V!o|rH-$mNZn)H2`dy5#2lv;S@r}!!x zWoa-0_%^=7&l7A?Yw}abN7DkL_n^H)WfST|>lP*AlPH3ywUOxFMTz)UiXd9nNYuM1 z5uZ^JM4gR9TNWka^Du&FbtBOOixTk#7eTbPk!Z)FM11r`5Z%>Cv}aMGQ54YZ$5D=i zO)@mPd)|i@9Y`w`A_ycIMk<@eI4>^PNjF57g_BYAtxKg>2^rAK&I!50TJVlzB8q<5 zQt4Gr2lUGq(A&}UolB)xWg(znwSfK9=SJa)C`W9Y9V-h8#^Ptb>YyJxY% z?^3w;U@!mVVts!`OD6USmR*6-mx;}yyNc+`#R=)lB{Fe|NqmBiD`?HcGl>vrb50{@ zb574_5~K$pEu)7(TXRW*w&qfqqy(h`P%@JWfwtvZ2-=o2GA$Bh1RzQw&_J%0pn+Ul zrd5L40#IwFEd<(`YbR)DE}dzYpmYFg&!nrM*j466bEsyk;(t{+ubQ)BJsh~qpiW_6 znioP7zhvLS;~Z;7H~x(hr5N_(ZzxlW^Y;8JJW2@^@jfb)G-BSy3?&^e;b%BaDT#|X zk0&UlFw3|;L#YKH!ori34E!DY@Lfu+_y-=u_b9dTPFj!eQ)(9p-jP3`l*UuE;TTqH z`hU=-LBEBS8k+cD7q>X-i^>02L=bFFL$Jl<&kR8(Zlh;p6^zR$lMW4Eg36()2v%=X zd9O}$>!Qj&-M}v7cX872u5S7RKT{l-|IbxQxvI05C^2`~Uy| literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..bcb098597fc9f4ff70fa7990cd768c854c036b65 GIT binary patch literal 580 zcma)4O-lnY5S`T8we_od5J3<;dNFu)txyF)SP^XLrH7Jk({<`@X2~YopWuJ;;1BRe ziDN58q?8_#$uRTYyvOA8>-_@&T5uRZMLK=7zkvytA*EWEvfaXM%N~X#r@@Y8Hu?wIk;1o$F=wAF#rf71FDQbDE3Oz>(sCO_i z%6Y2=yhZ;x!e}-AI$B?LxUzR)DZB{pS!avd67Ls3k_DVRd*d+E52nNd zhpBEGLrys)QwTVkjm}hFIO}64=jM4%EhaO@M8Nq{qiyeK-g`Ie8w@TPRP}{s(yR6S z{MlCTmy9_A%yP1>;1vnj;Iqkp0r(a0U4bpA&te0%IUaL;hikhr?7@B?L<~(h=mUHM Dl|i@? literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f27a5b9c011984ee2d566f0461acbed5906b4e22 GIT binary patch literal 2196 zcmbtVU31e$6g}(2QSGe3d;|y|1zH0B!b(dEw5EyE1WH;5Xky&bJ}LHML~N}`mcua9 zf7F-sMVV=5I=pqJKdRGvCD~D$jK@r0bfwkVbI-YZb@lf@zyAr~EBu^B0#gR2C6bsC z$iB9AEwf`eZS(2&Yt{4wW**p%?JWsRu08(JXQR^EC`;B+ouJCIe=PP@X~rzB3} z48i&#>`d;zsCzgufw219o)S2Fh;_?z?TB|?;vy~)o_J&Uxj20U4-;IG z_z+ja1Y4fvdTW+P2}ZI9p4~BdEs%X(;v;+<(#Oz4^#|aPd_m$Slc!1jL#M?wY(6KE zXO=XH94*hHC{e=gnAbJyZC_ySkk@s`Q*Gr2YD|emd=fJoZa5b=JH&^A?nr#b1O{>$eT$`Vx#cA)AO&zr|wgQL00Cm;2Zh@Bq`F|r|UXB znG^-D7WN^2qniZ2r7OP%GWd?JG6bN84SEvX+JxfG`}`xJ__+8Nl49=<7%%pb+9(x$ zqwwe8+Bm*cjF0O~d1~%C~|-O1pEtC!yNPg literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo__Javadoc.json new file mode 100644 index 0000000..24a15a2 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/domain/vo/TestLeaveVo__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假视图对象 test_leave\n\n @author may\n @date 2023-07-21\n","fields":[{"name":"id","doc":" 主键\n"},{"name":"leaveType","doc":" 请假类型\n"},{"name":"startDate","doc":" 开始时间\n"},{"name":"endDate","doc":" 结束时间\n"},{"name":"leaveDays","doc":" 请假天数\n"},{"name":"remark","doc":" 备注\n"},{"name":"status","doc":" 状态\n"}],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler.class b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..005177244a4c8fb20ba512d971c7ed1ac8c662b3 GIT binary patch literal 3654 zcmb_fYjYIG6+Nwe%xW24GJ=d>0c?zf7A9aYMyud}gdX-H5f(NUMoC7yqt(Fd%zAcK zm^j!5CpH$Yic^(JCHaszRW2vrT(&DhfbAcU-yyNir~Ct#PtT0jBOYZ)<-^YO-0r^J z=iGB|_x}5vn_mI=G2YLj0|^C56)B_zHk>o&4Ba-Isy;D&&Mf-^=>f~J{KEo?p59Ux z8FVVhs#pV6V7Kd4^@``#4A0QZZms4zx^Fs$UeWg~r<(7?I;>Z)LB&RN3G9!raKZJ?&)Dt-eb#U)HoXt?9i+%`e=3>+&kg7k_Mh7+IDU|FS&)_x6lGeX{()$E`nn{`Du< zmu}wtdj3l5%8ljuzqUSjM>@!2Gqx!BfeHT*#gAl9Cwq#%;Wr!7x=+Qk*dJO?P<^!q!yT>K^etOIZqx}+4t-9=K|CKh zXinEGiaJSt+1Zc0f&rC@Kz;Y#j|J(kp%?2?pQmM;kt(~6Z@xxP`zYcd3_~>%?7#5gW zCG=ajsMb*Kxvlq9draG*d|NTgQZRo-?Q!iZ7!^2hKl<(^qEklWe6am2Mx>BNutPq2 z<>R=D@fC@TQy!s2MsPyKPjNDgqns~G$Rlx~6OxyI$2w+J9EJ=VR39y7*7E}1Sf?ufkB@BTrfdFDvYS<|Iu6L18 zSuexFC9oq7bvdrwmRE3TWA|ONM93@5q?+XDxbqE|C37@qf_L%+=P_ z!;0N5)?;yG(J>IKRo`Q2XFD@mAS2I*5Kh<*5;hC<&ik#l{2GP*SnE;KupASYP4z!0LSr+zlmWiE{oh9d0;o`m=5& zsEAac$2fHst*XPa=`o(}|ApxX+)WUVu81a?u>X6&gUpU0jwBHT+=)sAL*++RVMA
r>tOpj)fE4sR2A9?a`__XGqUl~+B!r}>rUyUcfrZ{A4xtnf?cTS)7!>kyx^ z(E*cB*$r&L44-N^09DNLOTfZ8B;;hVk>fJ7RTrW3r$58mu17LoqGK|lrHhlv-NngN zUvV;>D^4oisYP@bZ{V>6ZeiQxbv)ItXo{9zz|)%2w}2i^$t|EyQ+6+44?B_z*sF2Y z0uC(Vkfz+g3muT#O9b27!%H%-oj9IC4o~9%c3^&0naht8sp5OM*G zli^k)7~C|@!w#TTQDaLoR)xb>B51j&BN?<_g~ydrWU;~CG*{aPA5AEjV}D3b6)rAt z{A;vyr|24V3c3S3fLHmu$X^G3#U)?Iui29Hx9CpcdrC5xk_;Y;7)+5tvX>%zX);Ml zR_GfcePjJ;Ev=EB7qv9$dr3=^zJit}eG}{;eMQMzy3Jb{)?LVQv4h0&JQ+Gf9Q}Oe z@dDX9#=F`}IE<70I?H>M4E<=hxi)80ZO*1}DdKDjZ{W>p? z1Sxshm<)Ki#O53PNqz*b;O&Tu&p0ea+Yq@JmsFfe2Vx@nh>1u)B@*y*e^N^l?WC3@ z{xe#V_+OEblXpPg9)x|2p?MKc65vi0cppB_JMK84Pw=96B7nL-T)Pc*s10=}l1GxH zNC711;|cr*zm3A(+0hPn2Ja9=m|5EbZ2_HK>lShLbF7u}6|wB>%djK$G7~$ JIM4Sr;9HuM6J!7Y literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler__Javadoc.json new file mode 100644 index 0000000..c9f4672 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/FlowProcessEventHandler__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程监听服务\n\n @author may\n @date 2024-06-02\n","fields":[],"enumConstants":[],"methods":[{"name":"processHandler","paramTypes":["java.lang.String","java.lang.String","java.lang.String","java.util.Map","boolean"],"doc":" 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等)\n\n @param flowCode 流程定义编码\n @param businessId 业务id\n @param status 状态\n @param submit 当为true时为申请人节点办理\n"},{"name":"processTaskHandler","paramTypes":["java.lang.String","java.lang.String","java.lang.Long","java.lang.String"],"doc":" 执行办理任务监听\n\n @param flowCode 流程定义编码\n @param nodeCode 审批节点编码\n @param taskId 任务id\n @param businessId 业务id\n"},{"name":"processDeleteHandler","paramTypes":["java.lang.String","java.lang.String"],"doc":" 删除流程监听\n\n @param flowCode 流程定义编码\n @param businessId 业务ID\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler.class b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..ce2357204e8b8d9e7092604a5639b114659f290f GIT binary patch literal 4308 zcmcIo`Fk7H6+KU0#+D~Ubyyk#p`<3*PVhKsfE2kjiDMJDO6*2X(m)r+(ny|oW}cWC zIdvE425o^BN=r++@B0!$n<%ECbZ;qtQonvZZ)OyaY&n=8`uUS)-g57|@7!}2`L+Kp zzXIT0cs+{@Iy7|Z=t8%^Zs}KzvM*iJH;s~XUFjKt8OjCAGwPx31V%wtZSRQX)GS{> zuUcU=aUxK|y@NxAHVR78w~R7%+MeOcvgO1|luSO09`tI+>gayg9VzY9JGAZAOTX3s}?K*D5+XSv_U8bF}EdtwGWLqrE_tTF%bi5q{0$paU<}3-^ z*0R4+_e!BnM@}X$Ja`Ls>bMhw#K1Lc0{as*Bhc0gq)l%VW9Ni zrDFt!Kvq_i!^}Cy61c0K(^9as>h6cY4y9|aj&~?qwTfegN6lJ4NxMVCJp#E1vxo!5 z(6_y+vS+`Jcj7*QUfQEbHdRi+AMGtjuS)9OjWL};KqhF5rc<}3D*`*$H!*cgz842@ zP{Sb|<2X#_rv7K5eRkRST!e{pi3^9mgo98J@Dk zdA4jwNJ!v#zg!8Gmi*QWHkv>v6?R`3qqbQJ(M0I5Fp_Eu0(E0UQ)sIf>$l@eU zX?VYm(|C|Uuo4~#O~$3;FfmA~H7wHo zX_KxpbKdmIj^!Jt5}wakzH5`&(mN8bWbqL!Y51s)kKyB_m(mhAm3?Pa;;&l%q^Z2d zM5S&KPYK+SrrNk;1_24OT9R>B$D=wP!zY=#99d;#uid2K(+sN?+fCm!l9*&!Y2ILs z<)qp1x)<86HRUbZfz7OS(DP(yssyUCc)^kGoLn#-usq8*L#vz@=wmHR0N|F+I21P* zY|lDYcjqjBHcoytv}8IbP2X1IWU@1yw<)y0eGX{axh~Q?y_YE1UR;1jThz4S(CYFl zu&EfDr3EI{#Gu|HGn5(DeWsJ0EwQBHYb+JTWIGdX{(jn!r5_XDGYL7SJ6ARbQm72< zr9axl7*(*?ULz3*Y+biJv_EN&z=6Rxf*}=3&BN2_i%zUDw%8868Aa{w8QrKoNer%I zkI$gopgm1REXZReCuw!EMOpVt)}*b}Y+sj8BPz)f^dtyQwh4hfEts5LRqI$g%C-s? z)0y@rJjHbKV>prtYKkxw-*hb{W(1+-TQXd#S;n|@Ytpm4kehRdqzsva&Dv2boR{Tb zb2omJ#gFk54L{ZKGyI%w!Ajk?y+yXCMj;{{CCo}QyY#u~(d+5_k_g2I#LNu_3Q{iA zYw7xyP&`HY7QtDXp5DIk#rVi;%cjdtqIukOoT43C`5b=v#;ryK>y$63{J0k?I_7`>6zv}ohp3C7m z_5f2J>p@httU$v*SzK99ROf91T6dRaPpJmJ@(hZ!r zjE6FK6}OzHH68dIzYihD?>pJ%4f2QI5ZlGww0ndz29Mo~JRANA9y^PB@i6wonp07{eF%{&{M+F}@+kPjb}Bdq0JziNY5->VfzVwrJe*C5|$9hV#$j2)~IA&l3Ej zOamWQc4Z>F6q3MXq+5^I6Wv1ncH}N4Yb3H=!TzQ| zwYGYU7Cqm_!s_-t^Wf7O3DcU literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler__Javadoc.json new file mode 100644 index 0000000..551084c --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/handler/WorkflowPermissionHandler__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 办理人权限处理器\n\n @author AprilWind\n","fields":[],"enumConstants":[],"methods":[{"name":"permissions","paramTypes":[],"doc":" 审批前获取当前办理人,办理时会校验的该权限集合\n 后续在{@link TaskServiceImpl#checkAuth(Task, FlowParams)} 中调用\n 返回当前用户权限集合\n"},{"name":"getHandler","paramTypes":[],"doc":" 获取当前办理人\n\n @return 当前办理人\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener.class b/ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener.class new file mode 100644 index 0000000000000000000000000000000000000000..99b176d80d5eb150611caf923aec1f485ef7d566 GIT binary patch literal 5433 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener__Javadoc.json new file mode 100644 index 0000000..3c064e2 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/listener/WorkflowGlobalListener__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 全局任务办理监听\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"create","paramTypes":["org.dromara.warm.flow.core.listener.ListenerVariable"],"doc":" 创建监听器,任务创建时执行\n\n @param listenerVariable 监听器变量\n"},{"name":"start","paramTypes":["org.dromara.warm.flow.core.listener.ListenerVariable"],"doc":" 开始监听器,任务开始办理时执行\n\n @param listenerVariable 监听器变量\n"},{"name":"assignment","paramTypes":["org.dromara.warm.flow.core.listener.ListenerVariable"],"doc":" 分派监听器,动态修改代办任务信息\n\n @param listenerVariable 监听器变量\n"},{"name":"finish","paramTypes":["org.dromara.warm.flow.core.listener.ListenerVariable"],"doc":" 完成监听器,当前任务完成后执行\n\n @param listenerVariable 监听器变量\n"},{"name":"determineFlowStatus","paramTypes":["org.dromara.warm.flow.core.entity.Instance","java.lang.String"],"doc":" 根据流程实例和当前流程状态确定最终状态\n\n @param instance 流程实例\n @param flowStatus 流程实例当前状态\n @return 流程最终状态\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..8d78c1ba5aa168344ea3eb1c2d06e228d4bbc000 GIT binary patch literal 4451 zcmcIn`F9i78NE+79w8=R#8#FNLrCJKWYRPyPyr1#5Yz}l5OqRm(>_bj_TbTsm>JnP zUD7Q}*N~(eUDGyQ(>Cd5Y$$Dh?&<0O(;wQ?`)0=02+Jnnoa&sBp5Aib_wIMU?|bu) z|6cnWfJ3-pAR}<3;?=BC>DBD2*RX0cqcXIEy3+`(isvhSxm7!~JvXo}Hk3bOm1J$S zDxc8pCw*D3D?bN;P7|xpCD3)ycJ1)6Ku2%ih=HuY!z<&5p65*3p%pahbXSq(h;?q=Po$Nnotg@w~oqC4#_~Bi2f35 z%yz3qx2$-${k^3Na!Oi`bjPj7M=$Wig;Y;D^lf*%(6_Y9z&3&Io7ZXrcW8&)DR3YS zodBIr0VTVov6C(Xcky5=J2AyvBC$2th1~}3Hn9iy2<%N0Gwu14V~#g%)gm=o$DQe6 z8LDy5pE()z2;^dam+XMF9PPb@%a?AyKvE;L9ZRDWv_bco=tZBv#wPmE%xUQ>H!M~K zcBeTic}=R*C}=sTF?w-kMDGa`MSMiSsKfwNdmF=>Yudy}4kes4aLUBvI4!U%vMq{Y+nw?zl~q>0 zEgkz=RgJT;!1{3&7Hf6qqzWgz>M2=M)a8P)(Nd~KhkFiZP&RPZ#78mG66Ns(f$W3~ zCWgH#5tzh_Sv)0h2jLfjs#w(+Pn$T8kC7U6u^}CDw5gqkpVmit#>6M|UadAh#zdt@ zrHN5}%I(}@L8sCwx}oyNWJL`-G6=HB=CBnJ+L(!PJ-?^@{3ZcetkL)vOib$e_pCI( zY>&G#Z1^e*M%%sZj`v-U89>s*Ze2u`U1Ueb5xbd+;*9xyu~D?VL}rP4YN6c ziBFNTYFZ%Q;?5|c7+_J{-IPa>k{y@M5r4c!z9%T^N!qtcy~deoyl*LFZSzhP$Yt zp&6YaH>7!vGb972J3c%UDOF4raB+?aAWG5h#*}DA9@$tH6Jd1lWDMJ zvf)CtPTzZ&sAAa*+?`@)IRs|Bawsd4RB+;#H&Uw>?oumgZTV1m58STkg(}DnrMdDkmrT0Ua}s?TClDQKgr>z_?dw>O#B?bXh|yxOR*EU zLNYP4FjDhtr4zPvywJu!@g66nTXj^hr{sB)je47lXo}!u!+7D@nYt?6;&PcR7?zGx zwnJ6uMs3|H{5pr<;7tR*iKj5#jo%3z?p=}8bY5;JqYl25tkPc~V}H<${n5mq@MnQF zwKOmP{6EpKB1g*&#>}S~U&?R#7P6GgS%HJMNnDbD%%bZmKdO!@Ffh-0+>H4ab6Ry` z;5sYU%2OHJv8ed|xr^5XzShw}ot*-o#}|;n7q!y_zQmvB`SftY3w&NY5Ag_I;)E}= z72qpTPk^s-jQ4tU;A@;+Llmoo($gRf(*XS?>svB-N*O3er&@4?qmBK?AaWH;$>XsKf>b`yvmIeTVG+v{d(g8j5;5O?ALk2{#Ms&CP%zU8d?c6Scn!FOq!=ICGKN(aT|{#iU$${ZS)#S?Gx z{|-K)@Y24w_`7}}|Ku#rU19hf+Mx&ed4`XOTEIrG{do3u9OLgN^OadtuiyaNDnAjm z_p)v0ov6KwZ8v{0YHwmY$WKM>)sa`;zK%=h^3Ptyr~gjuj>rvN(LS4^Lz+?hGOplz z9REI_wdnj0b{IG#avT56+k0oi{SWX%j%M&9{FuMn*m|A!qhI1z_$_{qx9H}M=-*#( PmE-#Tc#h8aE4Ka*f+a*L literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper__Javadoc.json new file mode 100644 index 0000000..d7cf4c4 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwCategoryMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类Mapper接口\n\n @author may\n @date 2023-06-27\n","fields":[],"enumConstants":[],"methods":[{"name":"countCategoryById","paramTypes":["java.lang.Long"],"doc":" 统计指定流程分类ID的分类数量\n\n @param categoryId 流程分类ID\n @return 该流程分类ID的分类数量\n"},{"name":"selectListByParentId","paramTypes":["java.lang.Long"],"doc":" 根据父流程分类ID查询其所有子流程分类的列表\n\n @param parentId 父流程分类ID\n @return 包含子流程分类的列表\n"},{"name":"selectCategoryIdsByParentId","paramTypes":["java.lang.Long"],"doc":" 根据父流程分类ID查询包括父ID及其所有子流程分类ID的列表\n\n @param parentId 父流程分类ID\n @return 包含父ID和子流程分类ID的列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..db971cea88f88f2904c79736f39a581d328e3d80 GIT binary patch literal 864 zcmbtT%}&EG40g(X*cdQ&fIAWr93T%cegua}NSm0LG|p*jx{Nj{NxQOl;t4qL06Y}J ztzZbT4WS(@$Bv`V{`}?b{pA$^&Y)EVhrzKn0r!oLgb_T`=HWin8IMF9qv4$}yH++4 z%EMlfsX~cCb1Wu;he8GX#vP-VFlbo}>F`zDm6npvhh0xc+!Z>KzD{{Gbwwg=9Hy4z zQ-aD$tvH2&RF=nr9Nkl@F9K{Ye(Pz2+|$aJd9~$trs%DGwD`&2a5PpAlacoOL_~xM z8q1(WO(BEEV~S?_3B#Z^kO6g?8f5HZl^IXFbIJE<8B+0yCjRwo0YlwB|34|qA>5x3 zS2@HgEG|czHxPsU+f*eo!lAU%4RJ>QrBXU6^gxR^D3}tl@J7gGAtNrn3rI1vv^InC zM1(1A%)yL7eV|k0VMm6P+5M&ElU&9X1`O8dKL9Y2b{Q%ZRVk`Du%0`zI++6-&>+9( TQ2i#^mZkgIahs0KqHN~_t}!2b literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper__Javadoc.json new file mode 100644 index 0000000..efd99b7 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwInstanceMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 实例信息Mapper接口\n\n @author may\n @date 2024-03-02\n","fields":[],"enumConstants":[],"methods":[{"name":"selectInstanceList","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 流程实例信息\n\n @param page 分页\n @param queryWrapper 条件\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e96893e3fdce342d70d5d087565276fa1b4c49c0 GIT binary patch literal 2097 zcmchYPjAyO6u_TDyRuQnHvSB*NJ#904@g`BlNhMt(22p&I6H|+y(M69i~^;06hX*r)vbN2_%eHVJ|k^U@%z`n zDa^#r8+p=_^wI%XErI4qYk=JDev!_1V zbA?&;R||df+Xd5U5<^1vyJUVTdNsPsx4~kW?UDX_N7OYD*f>_Dj`>Jr*atfo-o8g} zYS#!5xPosdKo6h7KCGcMKxsXIt8T-!fh&M(FvNW~K>h2uHVuBSf8Ox6Ta|4e-<8^K h+uIFYoXXBA?=%Oxxh&8vxZRZGomN{+Vb|Ak_ZONuwmtv= literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper__Javadoc.json new file mode 100644 index 0000000..8df4379 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/FlwTaskMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 任务信息Mapper接口\n\n @author may\n @date 2024-03-02\n","fields":[],"enumConstants":[],"methods":[{"name":"getListRunTask","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 获取待办信息\n\n @param page 分页\n @param queryWrapper 条件\n @return 结果\n"},{"name":"getListRunTask","paramTypes":["com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 获取待办信息\n\n @param queryWrapper 条件\n @return 结果\n"},{"name":"getListFinishTask","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.Wrapper"],"doc":" 获取已办\n\n @param page 分页\n @param queryWrapper 条件\n @return 结果\n"},{"name":"getTaskCopyByPage","paramTypes":["com.baomidou.mybatisplus.extension.plugins.pagination.Page","com.baomidou.mybatisplus.core.conditions.query.QueryWrapper"],"doc":" 查询当前用户的抄送\n\n @param page 分页\n @param queryWrapper 条件\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper.class b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b57ed0bad681cb90439f167d192cd59d7d04e0fd GIT binary patch literal 381 zcmX^0Z`VEs1_oOOZgvJHMh5NtqICU~qWs*%qD1}j{G#l%ocwbA+{A){)FSUofAYfrXJlAS!z`(@74kkGm IIKea*0PMeejQ{`u literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper__Javadoc.json new file mode 100644 index 0000000..db395c4 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/mapper/TestLeaveMapper__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假Mapper接口\n\n @author may\n @date 2023-07-21\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService.class new file mode 100644 index 0000000000000000000000000000000000000000..932148841aedb581520e7547d9c0705167a38311 GIT binary patch literal 1245 zcmbu8U2oGc6o!w>wr(9CgN|*$U?6d^-C)FR$0V{*sZ#ln0!8A^O}xZg77xd1$zS7w zAHa`7ylED)w$Y?%7ryZE>+?Q7=lIXxU%!dyExl+`gVAek0`41qCXC=?ZBCCPJ?4ot zBjrin>qg^4VP&9A<`%IgEihU;5hKAP5eNL!@I-o+(aMihn#{?1KBITL{Yuc+anRZ8 z*ZTPIRWToF-i2-HG|(Mbe2_NO{%3HVNh?jlsO4RtKIlx~yij_lWyg+$6|SexQL6TQ z%La@#r{sBqzs3qv#^}wpU+|sL_Efs}Khd@$d8}e(m5yr}aA`dh$ziA>-^ohueE3=_ z#uu?p=Ah}dhTPIiwtcavux!zWy67p6wGpynyTa%U7Z?Fc2$HzY}I_wSNUiz zF=BKJ|D0%bfzcu@Vc*1Vkp$ ri5}8M6@nV7P1>qL1;L~F&|`X1sX%~>+w-BP^sG`L7dAT+(&zsGg`iuE literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService__Javadoc.json new file mode 100644 index 0000000..ebe4543 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwCategoryService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类Service接口\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询流程分类\n\n @param categoryId 主键\n @return 流程分类\n"},{"name":"selectCategoryNameById","paramTypes":["java.lang.Long"],"doc":" 根据流程分类ID查询流程分类名称\n\n @param categoryId 流程分类ID\n @return 流程分类名称\n"},{"name":"queryList","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 查询符合条件的流程分类列表\n\n @param bo 查询条件\n @return 流程分类列表\n"},{"name":"selectCategoryTreeList","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 查询流程分类树结构信息\n\n @param category 流程分类信息\n @return 流程分类树信息集合\n"},{"name":"checkCategoryDataScope","paramTypes":["java.lang.Long"],"doc":" 校验流程分类是否有数据权限\n\n @param categoryId 流程分类ID\n"},{"name":"checkCategoryNameUnique","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 校验流程分类名称是否唯一\n\n @param category 流程分类信息\n @return 结果\n"},{"name":"checkCategoryExistDefinition","paramTypes":["java.lang.Long"],"doc":" 查询流程分类是否存在流程定义\n\n @param categoryId 流程分类ID\n @return 结果 true 存在 false 不存在\n"},{"name":"hasChildByCategoryId","paramTypes":["java.lang.Long"],"doc":" 是否存在流程分类子节点\n\n @param categoryId 流程分类ID\n @return 结果\n"},{"name":"insertByBo","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 新增流程分类\n\n @param bo 流程分类\n @return 是否新增成功\n"},{"name":"updateByBo","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 修改流程分类\n\n @param bo 流程分类\n @return 是否修改成功\n"},{"name":"deleteWithValidById","paramTypes":["java.lang.Long"],"doc":" 删除流程分类信息\n\n @param categoryId 主键\n @return 是否删除成功\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService.class new file mode 100644 index 0000000000000000000000000000000000000000..56d01e25ece2d331924358cbfe810273a4bf5d57 GIT binary patch literal 1173 zcmd5*OLNmO5MH@yod#MSr98?ThMDGqX1KcTsbmO~P6J_j;HEemN3AUxSx%Z?!hhkw z59p6#SSfE{7>*n)uXgqAxBIPh_2b)j062t~Ap{KGXp``s(U~xUkF>eyr+UN-G(#C9 zZ#L4=G4`dBR%+FmctfZ#xOpyyf~P_y{Iq+Hv1PFNr9?As$%5>!`>mD4!ercM)?}cv z(vEq9m=?*S6+o=BOe>y^yTZzX$J!vzMS{Fd%Lm63)&C9fNpw>@7FIM>Uq@8<3EF|~ zwW;3>Et-PCwySJW33cMAJPX+!nJ8gPgAA_z&#n$ul$Z~(M?;m05A`ofpXum`gxD%o zyX>a27)(YM=93+Ro&DBgx-G4esQ#HjAbX?+Ugp|Z5{tp%Z^sCBA&eFN{-kL6z}lR@ zqs3hva(u)h*Q&s%e#W5o_As787m8)TF^o579R{)1tI8 zj3|_Y*e>yD2D)!lSmnECkKvGmKDxqwX6s~o2X<~E*GuZp% z1AOg-+F-z7jb1W9NbhkSHXwkIcAEiI-H*N+eF0pf@b$lkw_uyHIrKV%8{i)}+#>94 za#bj_GfPcD*!2hQ!o4Ym81Iw&fp_o0!)YOu>JhmoMLeb=p1{)u%QFfwcus2oFMa|E C)KHHA literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService__Javadoc.json new file mode 100644 index 0000000..a6c6193 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwDefinitionService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程定义 服务层\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"queryList","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询流程定义列表\n\n @param flowDefinition 参数\n @param pageQuery 分页\n @return 返回分页列表\n"},{"name":"unPublishList","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询未发布的流程定义列表\n\n @param flowDefinition 参数\n @param pageQuery 分页\n @return 返回分页列表\n"},{"name":"publish","paramTypes":["java.lang.Long"],"doc":" 发布流程定义\n\n @param id 流程定义id\n @return 结果\n"},{"name":"exportDef","paramTypes":["java.lang.Long","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出流程定义\n\n @param id 流程定义id\n @param response 响应\n @throws IOException 异常\n"},{"name":"importJson","paramTypes":["org.springframework.web.multipart.MultipartFile","java.lang.String"],"doc":" 导入流程定义\n\n @param file 文件\n @param category 分类\n @return 结果\n"},{"name":"removeDef","paramTypes":["java.util.List"],"doc":" 删除流程定义\n\n @param ids 流程定义id\n @return 结果\n"},{"name":"syncDef","paramTypes":["java.lang.String"],"doc":" 新增租户流程定义\n\n @param tenantId 租户id\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwInstanceService.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwInstanceService.class new file mode 100644 index 0000000000000000000000000000000000000000..fae3415380eb44aa5fefd27367cac478decb33b6 GIT binary patch literal 2336 zcmd5-TT|0O6h2#_Ktbf92;Kov>V<&!nIbb5r<$2EqGfpSZJR75kY;PLDbpX~pYg#* zAN)~{XE&Qm17rK>Lm}C7`M&d=b2h*K{P+m~Z{f`t6bNi`zh&4yZ&RNdXWTzMa`~AN zFu&_q%rI;2ndt?BdKPO$XJarzVCIB&so_$uWqfL$FiQ|v3Yd!zUqa7wyjC1kcLKD1 zU$0*XV+S^PpKOitI>ra^wn2=Bk1)m#E%cCOn8G&E_V@=zAIwbAX zI(PeZKID}h6k#!HT+Q*E;5e>4>f7u$scyAb4FktxL15Yh-mTZu=GVE`%85T1lt8JO zNw^Tl-C3Z#tWPr~-yaT5|MK$b^{!q-@om zX-D#{=mJ9FxQ0AJ`bxX>fWTy$3dfJ-L$>p3@0?4LYx+R?vgz|SZmVEf!4Z8vk6tN% zMTTj&&}S|0a}h&~N)Y0aGHr~Wv*cCc?)%)rd3x9BxIMgshFYav6^WOFo>1z*Pv*@Yqj0+;Y33otuEU=)f_fH8cVD8RV+o6ZMz23ineS`1|3>Q3SRz!c$@w9X1K1oLBo!)5WBX)A~0^nKFucS yz3>lmZk?f#t%PCthxhBPlfD842l7S$C9mi~A0mjQ>nS*rlt@G{kfr0F>f{@xGH${E literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskAssigneeService__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskAssigneeService__Javadoc.json new file mode 100644 index 0000000..108355c --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskAssigneeService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程设计器-获取办理人\n\n @author AprilWind\n","fields":[],"enumConstants":[],"methods":[{"name":"fetchUsersByStorageId","paramTypes":["java.lang.String"],"doc":" 根据存储标识符(storageId)解析分配类型和ID,并获取对应的用户列表\n\n @param storageId 包含分配类型和ID的字符串(例如 \"user:123\" 或 \"role:456\")\n @return 与分配类型和ID匹配的用户列表,如果格式无效则返回空列表\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService.class new file mode 100644 index 0000000000000000000000000000000000000000..5e54cd2864698fc8b11bf3f4e26634872949b32f GIT binary patch literal 3056 zcmdT`TTc@~6h2cG1Ox=}e!t^&z26E%iV{gs(4rtu-EPRO9s^>}0U_Bj4msz{9$;Qu`=e&0sXrTsmL zhfYm8RRXLk>53?-$nvF}y(=3H89J_1!bu>W&SPE)-BRI`wUshD^jzo<(pyCZ4WWgK z7>pT*GJXbokh2-!DXC#_tFMC#9ronlJ0$Jos7Tys^17(BiSjM?F%F;m(o%fL9x1y? zZnSG$`%x^N*qv4Udf5`H-91Lz0c*S#h$me0rEpzhbcQLR@s$jQh||#F@2X!9IfhX% z`1-FoK9h@1R+mXNY)U5$@GwlBAr zs_m%71=(z4akiQs*J3`3FwFvUe13Y_bZ$%gfwSyKx*V@fCs(!d!@4Q+VU71Md1S$0 zpoODg$zyQ8h@R;{FH6ME_23(+ad#tWMFuzfW~E}ylg2C6u-V4zLemii;)V23(4E93 zBfz-O;ZiE7s2N9rC)Tkf!O zpc+2*9bQjT7~Jg}5mW0HmX4!H1UP*w?KD?siYda8QOGz0UNq{G$0DqkK#58deQ7%y zjl}TJ%h*nv}LtW2vthVU^0tU z80j>VV?Hi;=!$G3Z^aw{@ClG_v#VqHF`#Eo--cLoFKDCXgZ5D-&$;YI}!-PDf zr^uWsl-1u1bYD_TWL375D;E6#$KF)oQFfhzIKY6x4t&=EOyL`C7YyKf5Ldex>;`(a z4Z*P88ZldYU=&KmYN!NbXgrRez4$4?1R^GTAMeBCsouwg-rxI}&7D3u#P@5M;&D7XriHv KG&8s=!R${ZFMb68 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService__Javadoc.json new file mode 100644 index 0000000..125ced5 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/IFlwTaskService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 任务 服务层\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"startWorkFlow","paramTypes":["org.dromara.workflow.domain.bo.StartProcessBo"],"doc":" 启动任务\n\n @param startProcessBo 启动流程参数\n @return 结果\n"},{"name":"completeTask","paramTypes":["org.dromara.workflow.domain.bo.CompleteTaskBo"],"doc":" 办理任务\n\n @param completeTaskBo 办理任务参数\n @return 结果\n"},{"name":"pageByTaskWait","paramTypes":["org.dromara.workflow.domain.bo.FlowTaskBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询当前用户的待办任务\n\n @param flowTaskBo 参数\n @param pageQuery 分页\n @return 结果\n"},{"name":"pageByTaskFinish","paramTypes":["org.dromara.workflow.domain.bo.FlowTaskBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询当前租户所有待办任务\n\n @param flowTaskBo 参数\n @param pageQuery 分页\n @return 结果\n"},{"name":"pageByAllTaskWait","paramTypes":["org.dromara.workflow.domain.bo.FlowTaskBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询待办任务\n\n @param flowTaskBo 参数\n @param pageQuery 分页\n @return 结果\n"},{"name":"pageByAllTaskFinish","paramTypes":["org.dromara.workflow.domain.bo.FlowTaskBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询已办任务\n\n @param flowTaskBo 参数\n @param pageQuery 分页\n @return 结果\n"},{"name":"pageByTaskCopy","paramTypes":["org.dromara.workflow.domain.bo.FlowTaskBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询当前用户的抄送\n\n @param flowTaskBo 参数\n @param pageQuery 分页\n @return 结果\n"},{"name":"updateAssignee","paramTypes":["java.util.List","java.lang.String"],"doc":" 修改任务办理人\n\n @param taskIdList 任务id\n @param userId 用户id\n @return 结果\n"},{"name":"backProcess","paramTypes":["org.dromara.workflow.domain.bo.BackProcessBo"],"doc":" 驳回审批\n\n @param bo 参数\n @return 结果\n"},{"name":"getBackTaskNode","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 获取可驳回的前置节点\n\n @param definitionId 流程定义id\n @param nowNodeCode 当前节点\n @return 结果\n"},{"name":"terminationTask","paramTypes":["org.dromara.workflow.domain.bo.FlowTerminationBo"],"doc":" 终止任务\n\n @param bo 参数\n @return 结果\n"},{"name":"selectByIdList","paramTypes":["java.util.List"],"doc":" 按照任务id查询任务\n\n @param taskIdList 任务id\n @return 结果\n"},{"name":"selectById","paramTypes":["java.lang.Long"],"doc":" 按照任务id查询任务\n\n @param taskId 任务id\n @return 结果\n"},{"name":"selectHisTaskByIdList","paramTypes":["java.util.List"],"doc":" 按照任务id查询任务\n\n @param taskIdList 任务id\n @return 结果\n"},{"name":"selectHisTaskById","paramTypes":["java.lang.Long"],"doc":" 按照任务id查询任务\n\n @param taskId 任务id\n @return 结果\n"},{"name":"selectByInstIdList","paramTypes":["java.util.List"],"doc":" 按照实例id查询任务\n\n @param instanceIdList 流程实例id\n @return 结果\n"},{"name":"selectByInstId","paramTypes":["java.lang.Long"],"doc":" 按照实例id查询任务\n\n @param instanceId 流程实例id\n @return 结果\n"},{"name":"taskOperation","paramTypes":["org.dromara.workflow.domain.bo.TaskOperationBo","java.lang.String"],"doc":" 任务操作\n\n @param bo 参数\n @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature\n @return 结果\n"},{"name":"currentTaskAllUser","paramTypes":["java.util.List"],"doc":" 获取任务所有办理人\n\n @param taskIdList 任务id\n @return 结果\n"},{"name":"currentTaskAllUser","paramTypes":["java.lang.Long"],"doc":" 获取当前任务的所有办理人\n\n @param taskId 任务id\n @return 结果\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService.class new file mode 100644 index 0000000000000000000000000000000000000000..369b231be7fc32f0b7df07f4fb88fe6c8532d30a GIT binary patch literal 1210 zcmd5+O;6)65S;{QX@Q01d*O@(7kuPUwucBIRSE)B#7cW}k|CINVsM6k@YC0uiMuk@cQsqR^Zx+g+p zoeRv2kGzN7(o%8>%ExDNFhR zHzH%9(#UQJm|665`<9WSKTNpbfy5(jcqhHG#k+x`c37+ehQ7NZPPxf7I`H`4ReboS zEkgmkKbkhZubgx_0Gjlq!Hx`Iuare@gk(0Kz~q+zK3#iLq@--)^*x%=?@w}1dg+*i zoB3_T4VFx+5lYhWFJZ1PxfGFI6Vmj~U{9)s3_4V7mZy|No>G&hgpEEJjXoURvNlP! zTD&U1*;Tm?@mNSw;QH7~@7tW314Kms1%MiD_zcwOUZ>lP1G8Y4z5z{e3sb{|Ir7ZY tS)k*>H*zn+(!fm_)?K>3lWQ4PDll@9X?5JR2J02T#t>kWQhyXITQ3-3anAq% literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService__Javadoc.json new file mode 100644 index 0000000..2529ce8 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/ITestLeaveService__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假Service接口\n\n @author may\n @date 2023-07-21\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询请假\n"},{"name":"queryPageList","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询请假列表\n"},{"name":"queryList","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 查询请假列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 新增请假\n"},{"name":"updateByBo","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 修改请假\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.List"],"doc":" 校验并批量删除请假信息\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7400487eb6ccc6b3ec2ed60a34146c4fc56cc7c0 GIT binary patch literal 2058 zcmbVN+fv*{5IwUO#4fTSi-Wn?7-EwwU|R;;iOpghOpHSc<5ZU7l?d&y2(%hX8ld&OqAWfV}f&|$+ur@*imI$L{Mslf46B>4#UWu%>jwiM{lYFUL%fm_w(lUT1dwxy?Q z;~AB)s#z!tTt2Zg$`Wi`vT)f(H+lq~sHo{QBGqyu*Evwp&SszvoLENtz9${OwHr7K zu9i&|9j>@7xf;1)9Jtz7;S#?IR5pWyBZGR|OJI8W!l+A&XMAd1sG!%v6&vrPPvG9W z1`z0rWk42=z!q&v3ul7Rix8zc|@5lZ|Am_tS>7-R+lQ2-N4YlLEkfDs&QH`2FVL>(M*}d$Ca%Hcz zA){57jtM-^4c6SqH|tbc_R>Z)MXj9WlvT?plR`6v-tw9L>BSxSUwuxj`5j5_vuV>) zCs0&+OGW}YpTI8Fwd?J?bazwKJuju+QjITpzFLxG5zNEt#c0kuALDEPr?rkDcFuZ1 z+P!K?6jXgY`a+g!)HX4-C=8W=YxW+kN3hr7~Arxs0X zr^27JclWrXoecO@Mxl4XL=)&e>e6+;v98s6$dnl60qlpsByt!u=aBDr_+RLtyh~Xz z!B9}qKzfx;W)SH3|nwWZgvsV&VE2Z}2bKcef- zuXrzqZ|RoDJw6AM5Z4)Mm`QFB#s~+@D5|)LDSn^h_imIhjr&YLMz3i+K+&YdLwrnW z-af%2LNjlVdFOadVTN{j)Tk{X_c!`2l)5o%mO0vkmY~lNe}4I7J9CL2P@eb&S0^Ta zLf3b+$R#KZ5x|uMQ6F`*I?i5B$Pr2CBBuqJ%5c{+&rO-ohOsH8%2Qesled4yb;Ck7 zekF--C%LRN{t;l(|Co0tp5ht}OtjI&ko&3FZ!r1;J~DXuZ{o9!x0lI2G7^xq# literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl__Javadoc.json new file mode 100644 index 0000000..38fe619 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/CategoryNameTranslationImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类名称翻译实现\n\n @author AprilWind\n","fields":[],"enumConstants":[],"methods":[],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fc592e6b834b6b8ea6d69318a0c490d8ea7404e5 GIT binary patch literal 15357 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl__Javadoc.json new file mode 100644 index 0000000..b89b897 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwCategoryServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程分类Service业务层处理\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询流程分类\n\n @param categoryId 主键\n @return 流程分类\n"},{"name":"selectCategoryNameById","paramTypes":["java.lang.Long"],"doc":" 根据流程分类ID查询流程分类名称\n\n @param categoryId 流程分类ID\n @return 流程分类名称\n"},{"name":"queryList","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 查询符合条件的流程分类列表\n\n @param bo 查询条件\n @return 流程分类列表\n"},{"name":"selectCategoryTreeList","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 查询流程分类树结构信息\n\n @param category 流程分类信息\n @return 流程分类树信息集合\n"},{"name":"checkCategoryDataScope","paramTypes":["java.lang.Long"],"doc":" 校验流程分类是否有数据权限\n\n @param categoryId 流程分类ID\n"},{"name":"checkCategoryNameUnique","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 校验流程分类名称是否唯一\n\n @param category 流程分类信息\n @return 结果\n"},{"name":"checkCategoryExistDefinition","paramTypes":["java.lang.Long"],"doc":" 查询流程分类是否存在流程定义\n\n @param categoryId 流程分类ID\n @return 结果 true 存在 false 不存在\n"},{"name":"hasChildByCategoryId","paramTypes":["java.lang.Long"],"doc":" 是否存在流程分类子节点\n\n @param categoryId 流程分类ID\n @return 结果\n"},{"name":"insertByBo","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 新增流程分类\n\n @param bo 流程分类\n @return 是否新增成功\n"},{"name":"updateByBo","paramTypes":["org.dromara.workflow.domain.bo.FlowCategoryBo"],"doc":" 修改流程分类\n\n @param bo 流程分类\n @return 是否修改成功\n"},{"name":"updateCategoryChildren","paramTypes":["java.lang.Long","java.lang.String","java.lang.String"],"doc":" 修改子元素关系\n\n @param categoryId 被修改的流程分类ID\n @param newAncestors 新的父ID集合\n @param oldAncestors 旧的父ID集合\n"},{"name":"deleteWithValidById","paramTypes":["java.lang.Long"],"doc":" 删除流程分类信息\n\n @param categoryId 主键\n @return 是否删除成功\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..34b901da8b156ad4d8ae4c2a48f0d2c5f328e487 GIT binary patch literal 20777 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 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl__Javadoc.json new file mode 100644 index 0000000..d9c0d3b --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程定义 服务层实现\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"queryList","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询流程定义列表\n\n @param flowDefinition 流程定义信息\n @param pageQuery 分页\n @return 返回分页列表\n"},{"name":"unPublishList","paramTypes":["org.dromara.warm.flow.orm.entity.FlowDefinition","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询未发布的流程定义列表\n\n @param flowDefinition 流程定义信息\n @param pageQuery 分页\n @return 返回分页列表\n"},{"name":"publish","paramTypes":["java.lang.Long"],"doc":" 发布流程定义\n\n @param id 流程定义id\n"},{"name":"importJson","paramTypes":["org.springframework.web.multipart.MultipartFile","java.lang.String"],"doc":" 导入流程定义\n\n @param file 文件\n"},{"name":"exportDef","paramTypes":["java.lang.Long","jakarta.servlet.http.HttpServletResponse"],"doc":" 导出流程定义\n\n @param id 流程定义id\n @param response 响应\n @throws IOException 异常\n"},{"name":"removeDef","paramTypes":["java.util.List"],"doc":" 删除流程定义\n\n @param ids 流程定义id\n"},{"name":"syncDef","paramTypes":["java.lang.String"],"doc":" 新增租户流程定义\n\n @param tenantId 租户id\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e811de2c4482615afb424f46202332449998fbc8 GIT binary patch literal 25860 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 I_!*V`A4oi&DF6Tf literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl__Javadoc.json new file mode 100644 index 0000000..7e4647d --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwInstanceServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 流程实例 服务层实现\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"selectRunningInstanceList","paramTypes":["org.dromara.workflow.domain.bo.FlowInstanceBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 分页查询正在运行的流程实例\n\n @param flowInstanceBo 流程实例\n @param pageQuery 分页\n"},{"name":"selectFinishInstanceList","paramTypes":["org.dromara.workflow.domain.bo.FlowInstanceBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 分页查询已结束的流程实例\n\n @param flowInstanceBo 流程实例\n @param pageQuery 分页\n"},{"name":"queryByBusinessId","paramTypes":["java.lang.Long"],"doc":" 根据业务id查询流程实例详细信息\n\n @param businessId 业务id\n @return 结果\n"},{"name":"buildQueryWrapper","paramTypes":["org.dromara.workflow.domain.bo.FlowInstanceBo"],"doc":" 通用查询条件\n\n @param flowInstanceBo 查询条件\n @return 查询条件构造方法\n"},{"name":"selectInstByBusinessId","paramTypes":["java.lang.String"],"doc":" 根据业务id查询流程实例\n\n @param businessId 业务id\n"},{"name":"selectInstById","paramTypes":["java.lang.Long"],"doc":" 按照实例id查询流程实例\n\n @param instanceId 实例id\n"},{"name":"selectInstListByIdList","paramTypes":["java.util.List"],"doc":" 按照实例id查询流程实例\n\n @param instanceIds 实例id\n"},{"name":"deleteByBusinessIds","paramTypes":["java.util.List"],"doc":" 按照业务id删除流程实例\n\n @param businessIds 业务id\n"},{"name":"deleteByInstanceIds","paramTypes":["java.util.List"],"doc":" 按照实例id删除流程实例\n\n @param instanceIds 实例id\n"},{"name":"cancelProcessApply","paramTypes":["org.dromara.workflow.domain.bo.FlowCancelBo"],"doc":" 撤销流程\n\n @param bo 参数\n"},{"name":"selectCurrentInstanceList","paramTypes":["org.dromara.workflow.domain.bo.FlowInstanceBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 获取当前登陆人发起的流程实例\n\n @param instanceBo 流程实例\n @param pageQuery 分页\n"},{"name":"flowImage","paramTypes":["java.lang.String"],"doc":" 获取流程图,流程记录\n\n @param businessId 业务id\n"},{"name":"updateStatus","paramTypes":["java.lang.Long","java.lang.String"],"doc":" 按照实例id更新状态\n\n @param instanceId 实例id\n @param status 状态\n"},{"name":"instanceVariable","paramTypes":["java.lang.Long"],"doc":" 获取流程变量\n\n @param instanceId 实例id\n"},{"name":"setVariable","paramTypes":["java.lang.Long","java.util.Map"],"doc":" 设置流程变量\n\n @param instanceId 实例id\n @param variable 流程变量\n"},{"name":"selectByTaskId","paramTypes":["java.lang.Long"],"doc":" 按任务id查询实例\n\n @param taskId 任务id\n"},{"name":"selectByTaskIdList","paramTypes":["java.util.List"],"doc":" 按任务id查询实例\n\n @param taskIdList 任务id\n"},{"name":"processInvalid","paramTypes":["org.dromara.workflow.domain.bo.FlowInvalidBo"],"doc":" 作废流程\n\n @param bo 参数\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl$1.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl$1.class new file mode 100644 index 0000000000000000000000000000000000000000..847b61f2ca2961ecdabe91be9ff325be7f5e3fa2 GIT binary patch literal 969 zcmbtS+iuf95Ix(ZaS~h_N@+v6w19zxLM{7su1r_PV}@F2_JIP z<9^4iNqgXQORn(RmQqqh9prUfjXP-6D^^5Y({Vi}_N~KaMBLP|8WV?gyQ$$8LvEU~ z-Z~LZ$dKN0JlA)_ow)K5DcX~5!7yKOeNh|qTS7H?%Ohr?A|37>apgvMLeAMCcX~9; z3C`Mbpd3+hqd!*v{1h8eCsf7q9Zv?X->HhQE87|#GHm_N8}!3F+4w gMO1%1C}$y#D&hgzB-ZJC6f^7CAe)Ufk&{dR02i0`R{#J2 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..11cd0d0d99b230d8f6fad2ec64b15e809d2d6a8e GIT binary patch literal 11730 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 z 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 D%l5&6 literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/TestLeaveServiceImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/TestLeaveServiceImpl__Javadoc.json new file mode 100644 index 0000000..ec2e5c3 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/TestLeaveServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 请假Service业务层处理\n\n @author may\n @date 2023-07-21\n","fields":[],"enumConstants":[],"methods":[{"name":"queryById","paramTypes":["java.lang.Long"],"doc":" 查询请假\n"},{"name":"queryPageList","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo","org.dromara.common.mybatis.core.page.PageQuery"],"doc":" 查询请假列表\n"},{"name":"queryList","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 查询请假列表\n"},{"name":"insertByBo","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 新增请假\n"},{"name":"updateByBo","paramTypes":["org.dromara.workflow.domain.bo.TestLeaveBo"],"doc":" 修改请假\n"},{"name":"deleteWithValidByIds","paramTypes":["java.util.List"],"doc":" 批量删除请假\n"},{"name":"processHandler","paramTypes":["org.dromara.common.core.domain.event.ProcessEvent"],"doc":" 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等)\n 正常使用只需#processEvent.flowCode=='leave1'\n 示例为了方便则使用startsWith匹配了全部示例key\n\n @param processEvent 参数\n"},{"name":"processTaskHandler","paramTypes":["org.dromara.common.core.domain.event.ProcessTaskEvent"],"doc":" 执行办理任务监听\n 示例:也可通过 @EventListener(condition = \"#processTaskEvent.flowCode=='leave1'\")进行判断\n 在方法中判断流程节点key\n if (\"xxx\".equals(processTaskEvent.getNodeCode())) {\n //执行业务逻辑\n }\n\n @param processTaskEvent 参数\n"},{"name":"processDeleteHandler","paramTypes":["org.dromara.common.core.domain.event.ProcessDeleteEvent"],"doc":" 监听删除流程事件\n 正常使用只需#processDeleteEvent.flowCode=='leave1'\n 示例为了方便则使用startsWith匹配了全部示例key\n\n @param processDeleteEvent 参数\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl.class b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a177431a2ea13575f1ef2f8be4920b4d7f424ebc GIT binary patch literal 4539 zcmb7HS$7mg6#i-wm}JsGNFsv41q986KnpIQgJLoWM6(bQ1LE45>4YXT-LbnT5chre z+2b$Z#Rok{l=$HB+27>x_*HfHO!Z{Ogol~xuCBVvcklgf)!+aA@h5<1@qITk=*Xhe zz&30bc+&Hi%(CxQE#ES4c>eNY#k*k!w!i9>Y}2W(RLslq>})hS&N+d;#mbFwHwZ1a zWXB%_PE7o-wDEHr_7r;1h3+hJ26|u!Ja)GN1p3Q%#SZPUwXs^@xONbXmjliYOke`>EhYcLTh(NCsCu>8(fejL3cvQ|v5fcAn z224CAu#I5KJn2h;s1(bRI$_{(JVA_E7iaB7$8|!-bL*AyL^_w6>r7V0hFz?Ur*JZh zQwE;KGpsH>NE=GEr3is+u;!L1x+%qyaLh~FPa7nL=U5Z8U6w=L>SLQ*t*vJ&J>Q(9 ziKAr_jN_UM9&^d^!;8LGVx^9GIgFv0#aRO{;GDqzrkYu>E!Q05UsN&MLr=a4oYX@X zmy4F##flXKtY5_dD%s;TJ-C4JEM7G55+(#jHbqo(kM%^l^Fv98vZ@4@hg##)&eJ)uvy=sn>%P!X_*YFu*qU2 zl`oME0=qYOA@GQ9eL_+il6CuYjX;r;TdqhLU$S=hYTP)8_%1C{lI3{_O3&!1#|kwC zF_p-0UeK*=(Sx=qC_gW7euJo{X0%0FQF0`~8!x9@aw<7mz^i=7;sX|9BWL8KKv!tH zmaAIeN}4_N!fwN3lEKoge+!!$*abw3ArHUAK^~wxoe3+|{zpZ()zt$apdm7`#;D5w>cNyQ@y%kikY>*W)>n zhZdGd-$cc$E_lo4dE2#pE40f*FE{Je{E~gnk;kvSP1G%K1;=F0FacxH^DP7)Z|z+i ziK6G0)w#*4OuH|*l31xX!Z28o$JIqioDxPeAbr|iNCGw!cVsX*atFJAL~i6a z+$V?VBAneuzE8x>T!+T~sYnSbQPVee=bUSiO7 zeh_#Yej7s$Y{8H*Dk`=yBtW<|Ljq+8kM#6KBJvhTiHM;P8Cl2S4*bG*9f2t-p4Jo_ zbp#C56av!gRotL+jgZKho1Bp$>CSK=IFW>9jn?vNKsC~cGhC)8LOuf-g^ZR6SK1^( zq(2V3)DeaK9m;wfj)V|+r9vHXvf{26@OTK=SxKe>+SsA%uM`YN>+22-DAJLvF`#Hi tqA?&ZSJWV#+R?!Uz5LY6$zFWHDM>P4a?Ic>_5U@#;V2{VEywSG{{Svg!UzBW literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl__Javadoc.json new file mode 100644 index 0000000..92b7d79 --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/service/impl/WorkflowServiceImpl__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 通用 工作流服务实现\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"deleteInstance","paramTypes":["java.util.List"],"doc":" 删除流程实例\n\n @param businessIds 业务id\n @return 结果\n"},{"name":"getBusinessStatusByTaskId","paramTypes":["java.lang.Long"],"doc":" 获取当前流程状态\n\n @param taskId 任务id\n"},{"name":"getBusinessStatus","paramTypes":["java.lang.String"],"doc":" 获取当前流程状态\n\n @param businessId 业务id\n"},{"name":"setVariable","paramTypes":["java.lang.Long","java.util.Map"],"doc":" 设置流程变量\n\n @param instanceId 流程实例id\n @param variables 流程变量\n"},{"name":"instanceVariable","paramTypes":["java.lang.Long"],"doc":" 获取流程变量\n\n @param instanceId 流程实例id\n"},{"name":"getInstanceIdByBusinessId","paramTypes":["java.lang.String"],"doc":" 按照业务id查询流程实例id\n\n @param businessId 业务id\n @return 结果\n"},{"name":"syncDef","paramTypes":["java.lang.String"],"doc":" 新增租户流程定义\n\n @param tenantId 租户id\n"},{"name":"startWorkFlow","paramTypes":["org.dromara.common.core.domain.dto.StartProcessDTO"],"doc":" 启动流程\n\n @param startProcess 参数\n"},{"name":"completeTask","paramTypes":["org.dromara.common.core.domain.dto.CompleteTaskDTO"],"doc":" 办理任务\n\n @param completeTask 参数\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils$1.class b/ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a42aff0cd58eae4e8b3434d1401b3c43493a34b5 GIT binary patch literal 893 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 Q0#_>VXdAREv`ysuKc47zPyhe` literal 0 HcmV?d00001 diff --git a/ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils__Javadoc.json b/ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils__Javadoc.json new file mode 100644 index 0000000..7e5651a --- /dev/null +++ b/ruoyi-workflow/target/classes/org/dromara/workflow/utils/WorkflowUtils__Javadoc.json @@ -0,0 +1 @@ +{"doc":" 工作流工具\n\n @author may\n","fields":[],"enumConstants":[],"methods":[{"name":"getFlowUserService","paramTypes":[],"doc":" 获取工作流用户service\n"},{"name":"buildUser","paramTypes":["java.util.List","java.lang.Long"],"doc":" 构建工作流用户\n\n @param userList 办理用户\n @param taskId 任务ID\n @return 用户\n"},{"name":"sendMessage","paramTypes":["java.lang.String","java.lang.Long","java.util.List","java.lang.String"],"doc":" 发送消息\n\n @param flowName 流程定义名称\n @param messageType 消息类型\n @param message 消息内容,为空则发送默认配置的消息内容\n"},{"name":"backTask","paramTypes":["java.lang.String","java.lang.Long","java.lang.String","java.lang.String","java.lang.String"],"doc":" 驳回\n\n @param message 审批意见\n @param instanceId 流程实例id\n @param targetNodeCode 目标节点\n @param flowStatus 流程状态\n @param flowHisStatus 节点操作状态\n"},{"name":"applyNodeCode","paramTypes":["java.lang.Long"],"doc":" 申请人节点编码\n\n @param definitionId 流程定义id\n @return 申请人节点编码\n"},{"name":"deleteRunTask","paramTypes":["java.util.List"],"doc":" 删除运行中的任务\n\n @param taskIds 任务id\n"}],"constructors":[]} \ No newline at end of file diff --git a/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__1.java b/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__1.java new file mode 100644 index 0000000..d024ba1 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/AutoMapperConfig__1.java @@ -0,0 +1,14 @@ +package io.github.linpeilie; + +import org.mapstruct.Builder; +import org.mapstruct.MapperConfig; +import org.mapstruct.ReportingPolicy; + +@MapperConfig( + componentModel = "spring-lazy", + uses = {ConverterMapperAdapter__1.class}, + unmappedTargetPolicy = ReportingPolicy.IGNORE, + builder = @Builder(buildMethod = "build", disableBuilder = true) +) +public interface AutoMapperConfig__1 { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__1.java b/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__1.java new file mode 100644 index 0000000..a91ceea --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/io/github/linpeilie/ConverterMapperAdapter__1.java @@ -0,0 +1,10 @@ +package io.github.linpeilie; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class ConverterMapperAdapter__1 { + @Autowired + private Converter converter; +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.java new file mode 100644 index 0000000..2ffce1c --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.workflow.domain; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.bo.FlowCategoryBoToFlowCategoryMapper; +import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.dromara.workflow.domain.vo.FlowCategoryVoToFlowCategoryMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {FlowCategoryVoToFlowCategoryMapper.class,FlowCategoryBoToFlowCategoryMapper.class}, + imports = {} +) +public interface FlowCategoryToFlowCategoryVoMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapperImpl.java new file mode 100644 index 0000000..556856e --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/FlowCategoryToFlowCategoryVoMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.workflow.domain; + +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class FlowCategoryToFlowCategoryVoMapperImpl implements FlowCategoryToFlowCategoryVoMapper { + + @Override + public FlowCategoryVo convert(FlowCategory arg0) { + if ( arg0 == null ) { + return null; + } + + FlowCategoryVo flowCategoryVo = new FlowCategoryVo(); + + flowCategoryVo.setCategoryId( arg0.getCategoryId() ); + flowCategoryVo.setParentId( arg0.getParentId() ); + flowCategoryVo.setAncestors( arg0.getAncestors() ); + flowCategoryVo.setCategoryName( arg0.getCategoryName() ); + flowCategoryVo.setOrderNum( arg0.getOrderNum() ); + flowCategoryVo.setCreateTime( arg0.getCreateTime() ); + + return flowCategoryVo; + } + + @Override + public FlowCategoryVo convert(FlowCategory arg0, FlowCategoryVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCategoryId( arg0.getCategoryId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setAncestors( arg0.getAncestors() ); + arg1.setCategoryName( arg0.getCategoryName() ); + arg1.setOrderNum( arg0.getOrderNum() ); + arg1.setCreateTime( arg0.getCreateTime() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.java new file mode 100644 index 0000000..861f016 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapper.java @@ -0,0 +1,16 @@ +package org.dromara.workflow.domain; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.bo.TestLeaveBoToTestLeaveMapper; +import org.dromara.workflow.domain.vo.TestLeaveVo; +import org.dromara.workflow.domain.vo.TestLeaveVoToTestLeaveMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {TestLeaveVoToTestLeaveMapper.class,TestLeaveBoToTestLeaveMapper.class}, + imports = {} +) +public interface TestLeaveToTestLeaveVoMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.java new file mode 100644 index 0000000..4bcc38d --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/TestLeaveToTestLeaveVoMapperImpl.java @@ -0,0 +1,50 @@ +package org.dromara.workflow.domain; + +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.vo.TestLeaveVo; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestLeaveToTestLeaveVoMapperImpl implements TestLeaveToTestLeaveVoMapper { + + @Override + public TestLeaveVo convert(TestLeave arg0) { + if ( arg0 == null ) { + return null; + } + + TestLeaveVo testLeaveVo = new TestLeaveVo(); + + testLeaveVo.setId( arg0.getId() ); + testLeaveVo.setLeaveType( arg0.getLeaveType() ); + testLeaveVo.setStartDate( arg0.getStartDate() ); + testLeaveVo.setEndDate( arg0.getEndDate() ); + testLeaveVo.setLeaveDays( arg0.getLeaveDays() ); + testLeaveVo.setRemark( arg0.getRemark() ); + testLeaveVo.setStatus( arg0.getStatus() ); + + return testLeaveVo; + } + + @Override + public TestLeaveVo convert(TestLeave arg0, TestLeaveVo arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setLeaveType( arg0.getLeaveType() ); + arg1.setStartDate( arg0.getStartDate() ); + arg1.setEndDate( arg0.getEndDate() ); + arg1.setLeaveDays( arg0.getLeaveDays() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapper.java new file mode 100644 index 0000000..67d2a59 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapper.java @@ -0,0 +1,14 @@ +package org.dromara.workflow.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.FlowCategory; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {}, + imports = {} +) +public interface FlowCategoryBoToFlowCategoryMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapperImpl.java new file mode 100644 index 0000000..f70df73 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/FlowCategoryBoToFlowCategoryMapperImpl.java @@ -0,0 +1,78 @@ +package org.dromara.workflow.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.FlowCategory; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class FlowCategoryBoToFlowCategoryMapperImpl implements FlowCategoryBoToFlowCategoryMapper { + + @Override + public FlowCategory convert(FlowCategoryBo arg0) { + if ( arg0 == null ) { + return null; + } + + FlowCategory flowCategory = new FlowCategory(); + + flowCategory.setSearchValue( arg0.getSearchValue() ); + flowCategory.setCreateDept( arg0.getCreateDept() ); + flowCategory.setCreateBy( arg0.getCreateBy() ); + flowCategory.setCreateTime( arg0.getCreateTime() ); + flowCategory.setUpdateBy( arg0.getUpdateBy() ); + flowCategory.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + flowCategory.setParams( new LinkedHashMap( map ) ); + } + flowCategory.setCategoryId( arg0.getCategoryId() ); + flowCategory.setParentId( arg0.getParentId() ); + flowCategory.setCategoryName( arg0.getCategoryName() ); + flowCategory.setOrderNum( arg0.getOrderNum() ); + + return flowCategory; + } + + @Override + public FlowCategory convert(FlowCategoryBo arg0, FlowCategory arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setCategoryId( arg0.getCategoryId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setCategoryName( arg0.getCategoryName() ); + arg1.setOrderNum( arg0.getOrderNum() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapper.java new file mode 100644 index 0000000..3335296 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapper.java @@ -0,0 +1,14 @@ +package org.dromara.workflow.domain.bo; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.TestLeave; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {}, + imports = {} +) +public interface TestLeaveBoToTestLeaveMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapperImpl.java new file mode 100644 index 0000000..7304003 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/bo/TestLeaveBoToTestLeaveMapperImpl.java @@ -0,0 +1,84 @@ +package org.dromara.workflow.domain.bo; + +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.TestLeave; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestLeaveBoToTestLeaveMapperImpl implements TestLeaveBoToTestLeaveMapper { + + @Override + public TestLeave convert(TestLeaveBo arg0) { + if ( arg0 == null ) { + return null; + } + + TestLeave testLeave = new TestLeave(); + + testLeave.setSearchValue( arg0.getSearchValue() ); + testLeave.setCreateDept( arg0.getCreateDept() ); + testLeave.setCreateBy( arg0.getCreateBy() ); + testLeave.setCreateTime( arg0.getCreateTime() ); + testLeave.setUpdateBy( arg0.getUpdateBy() ); + testLeave.setUpdateTime( arg0.getUpdateTime() ); + Map map = arg0.getParams(); + if ( map != null ) { + testLeave.setParams( new LinkedHashMap( map ) ); + } + testLeave.setId( arg0.getId() ); + testLeave.setLeaveType( arg0.getLeaveType() ); + testLeave.setStartDate( arg0.getStartDate() ); + testLeave.setEndDate( arg0.getEndDate() ); + testLeave.setLeaveDays( arg0.getLeaveDays() ); + testLeave.setRemark( arg0.getRemark() ); + testLeave.setStatus( arg0.getStatus() ); + + return testLeave; + } + + @Override + public TestLeave convert(TestLeaveBo arg0, TestLeave arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setSearchValue( arg0.getSearchValue() ); + arg1.setCreateDept( arg0.getCreateDept() ); + arg1.setCreateBy( arg0.getCreateBy() ); + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setUpdateBy( arg0.getUpdateBy() ); + arg1.setUpdateTime( arg0.getUpdateTime() ); + if ( arg1.getParams() != null ) { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.getParams().clear(); + arg1.getParams().putAll( map ); + } + else { + arg1.setParams( null ); + } + } + else { + Map map = arg0.getParams(); + if ( map != null ) { + arg1.setParams( new LinkedHashMap( map ) ); + } + } + arg1.setId( arg0.getId() ); + arg1.setLeaveType( arg0.getLeaveType() ); + arg1.setStartDate( arg0.getStartDate() ); + arg1.setEndDate( arg0.getEndDate() ); + arg1.setLeaveDays( arg0.getLeaveDays() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.java new file mode 100644 index 0000000..dd689c3 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapper.java @@ -0,0 +1,15 @@ +package org.dromara.workflow.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.FlowCategory; +import org.dromara.workflow.domain.FlowCategoryToFlowCategoryVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {FlowCategoryToFlowCategoryVoMapper.class}, + imports = {} +) +public interface FlowCategoryVoToFlowCategoryMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.java new file mode 100644 index 0000000..5a434e3 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/FlowCategoryVoToFlowCategoryMapperImpl.java @@ -0,0 +1,48 @@ +package org.dromara.workflow.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.FlowCategory; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class FlowCategoryVoToFlowCategoryMapperImpl implements FlowCategoryVoToFlowCategoryMapper { + + @Override + public FlowCategory convert(FlowCategoryVo arg0) { + if ( arg0 == null ) { + return null; + } + + FlowCategory flowCategory = new FlowCategory(); + + flowCategory.setCreateTime( arg0.getCreateTime() ); + flowCategory.setCategoryId( arg0.getCategoryId() ); + flowCategory.setParentId( arg0.getParentId() ); + flowCategory.setAncestors( arg0.getAncestors() ); + flowCategory.setCategoryName( arg0.getCategoryName() ); + flowCategory.setOrderNum( arg0.getOrderNum() ); + + return flowCategory; + } + + @Override + public FlowCategory convert(FlowCategoryVo arg0, FlowCategory arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setCreateTime( arg0.getCreateTime() ); + arg1.setCategoryId( arg0.getCategoryId() ); + arg1.setParentId( arg0.getParentId() ); + arg1.setAncestors( arg0.getAncestors() ); + arg1.setCategoryName( arg0.getCategoryName() ); + arg1.setOrderNum( arg0.getOrderNum() ); + + return arg1; + } +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.java new file mode 100644 index 0000000..252fc60 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapper.java @@ -0,0 +1,15 @@ +package org.dromara.workflow.domain.vo; + +import io.github.linpeilie.AutoMapperConfig__1; +import io.github.linpeilie.BaseMapper; +import org.dromara.workflow.domain.TestLeave; +import org.dromara.workflow.domain.TestLeaveToTestLeaveVoMapper; +import org.mapstruct.Mapper; + +@Mapper( + config = AutoMapperConfig__1.class, + uses = {TestLeaveToTestLeaveVoMapper.class}, + imports = {} +) +public interface TestLeaveVoToTestLeaveMapper extends BaseMapper { +} diff --git a/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.java b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.java new file mode 100644 index 0000000..1e0e9e8 --- /dev/null +++ b/ruoyi-workflow/target/generated-sources/annotations/org/dromara/workflow/domain/vo/TestLeaveVoToTestLeaveMapperImpl.java @@ -0,0 +1,50 @@ +package org.dromara.workflow.domain.vo; + +import javax.annotation.processing.Generated; +import org.dromara.workflow.domain.TestLeave; +import org.springframework.stereotype.Component; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2025-03-12T12:52:20+0800", + comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.12 (Oracle Corporation)" +) +@Component +public class TestLeaveVoToTestLeaveMapperImpl implements TestLeaveVoToTestLeaveMapper { + + @Override + public TestLeave convert(TestLeaveVo arg0) { + if ( arg0 == null ) { + return null; + } + + TestLeave testLeave = new TestLeave(); + + testLeave.setId( arg0.getId() ); + testLeave.setLeaveType( arg0.getLeaveType() ); + testLeave.setStartDate( arg0.getStartDate() ); + testLeave.setEndDate( arg0.getEndDate() ); + testLeave.setLeaveDays( arg0.getLeaveDays() ); + testLeave.setRemark( arg0.getRemark() ); + testLeave.setStatus( arg0.getStatus() ); + + return testLeave; + } + + @Override + public TestLeave convert(TestLeaveVo arg0, TestLeave arg1) { + if ( arg0 == null ) { + return arg1; + } + + arg1.setId( arg0.getId() ); + arg1.setLeaveType( arg0.getLeaveType() ); + arg1.setStartDate( arg0.getStartDate() ); + arg1.setEndDate( arg0.getEndDate() ); + arg1.setLeaveDays( arg0.getLeaveDays() ); + arg1.setRemark( arg0.getRemark() ); + arg1.setStatus( arg0.getStatus() ); + + return arg1; + } +}