From a0bed51d966ab5d161d3fdd5423ba84f59fb60ff Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 13 一月 2022 09:58:16 +0800 Subject: [PATCH] update 格式化代码 统一间隔符 --- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java | 296 +- ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java | 314 +- ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml | 416 +- ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java | 68 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java | 325 +- ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml | 136 ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java | 16 script/bin/ry.bat | 80 ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml | 16 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml | 150 ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java | 32 script/docker/deploy.sh | 84 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java | 66 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java | 705 ++-- ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java | 11 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml | 84 ruoyi-oss/src/main/java/com/ruoyi/oss/service/IOssStrategy.java | 86 ruoyi-ui/public/index.html | 14 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/user.index.1.js | 358 +- ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java | 164 ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/OssEnumd.java | 68 ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java | 8 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java | 73 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java | 245 README.md | 140 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml | 102 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java | 125 script/docker/nginx/nginx.conf | 42 ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java | 154 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java | 24 ruoyi-admin/src/main/resources/logback.xml | 62 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java | 297 +- ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java | 346 +- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 2 ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 10 ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java | 170 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java | 60 ruoyi-extend/ruoyi-xxl-job-admin/pom.xml | 206 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java | 93 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java | 52 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java | 38 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java | 134 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 6 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java | 101 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml | 504 +- ruoyi-ui/src/views/index.vue | 2 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java | 74 pom.xml | 2 ruoyi-ui/src/components/TopNav/index.vue | 2 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 6 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java | 4 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java | 15 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java | 102 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java | 6 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java | 6 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java | 105 script/sql/ry_20210908.sql | 8 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java | 229 ruoyi-ui/src/views/monitor/logininfor/index.vue | 4 ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java | 56 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java | 256 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java | 25 ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java | 178 ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractOssStrategy.java | 60 ruoyi-ui/src/assets/styles/ruoyi.scss | 240 ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml | 158 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java | 34 ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java | 119 script/bin/ry.sh | 46 ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 264 ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java | 40 71 files changed, 4,279 insertions(+), 4,245 deletions(-) diff --git a/README.md b/README.md index 4916257..d5c45c7 100644 --- a/README.md +++ b/README.md @@ -13,41 +13,39 @@ > 绯荤粺婕旂ず: [浼犻�侀棬](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/绯荤粺婕旂ず?sort_id=4836388) -| 鍔熻兘浠嬬粛 | 浣跨敤鎶�鏈� | 鏂囨。鍦板潃 | 鐗规�ф敞鎰忎簨椤� | -|---|---|---|---| -| 褰撳墠妗嗘灦 | RuoYi-Vue-Plus | [RuoYi-Vue-Plus鏂囨。](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) | 閲嶅啓RuoYi-Vue鍏ㄦ柟浣嶅崌绾�(涓嶅吋瀹瑰師妗嗘灦) | -| satoken鍒嗘敮 | RuoYi-Vue-Plus-satoken | [satoken鍒嗘敮鍦板潃](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/satoken/) | 楂樺彲璇绘�� 鎵╁睍鎬�(鎺ㄨ崘浣跨敤) | -| 鍗曚綋鍒嗘敮 | RuoYi-Vue-Plus-fast | [fast鍒嗘敮鍦板潃](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) | 鍗曚綋搴旂敤缁撴瀯 | -| Vue3鍒嗘敮 | RuoYi-Vue-Plus-UI | [UI鍦板潃](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus-UI) | 鐢变簬缁勪欢杩樻湭瀹屽杽 浠呬緵瀛︿範 | -| 鍘熸鏋� | RuoYi-Vue | [RuoYi-Vue瀹樼綉](http://ruoyi.vip/) | 瀹氭湡鍚屾闇�瑕佺殑鍔熻兘 | -| 鍓嶇寮�鍙戞鏋� | Vue銆丒lement UI | [Element UI瀹樼綉](https://element.eleme.cn/#/zh-CN) | | -| 鍚庣寮�鍙戞鏋� | SpringBoot | [SpringBoot瀹樼綉](https://spring.io/projects/spring-boot/#learn) | | -| 瀹瑰櫒妗嗘灦 | Undertow | [Undertow瀹樼綉](https://undertow.io/) | 鍩轰簬 XNIO 鐨勯珮鎬ц兘瀹瑰櫒 | -| 鏉冮檺璁よ瘉妗嗘灦 | Spring Security銆丣wt | [SpringSecurity瀹樼綉](https://spring.io/projects/spring-security#learn) | 鏀寔澶氱粓绔璇佺郴缁� | -| 鏉冮檺璁よ瘉妗嗘灦 | Sa-Token銆丣wt | [Sa-Token瀹樼綉](https://sa-token.dev33.cn/) | 寮鸿В鑰︺�佸己鎵╁睍 | -| 鍏崇郴鏁版嵁搴� | MySQL | [MySQL瀹樼綉](https://dev.mysql.com/) | 閫傞厤 8.X 鏈�浣� 5.7 | -| 缂撳瓨鏁版嵁搴� | Redis | [Redis瀹樼綉](https://redis.io/) | 閫傞厤 6.X 鏈�浣� 4.X | -| 鏁版嵁搴撴鏋� | Mybatis-Plus | [Mybatis-Plus鏂囨。](https://baomidou.com/guide/) | 蹇�� CRUD 澧炲姞寮�鍙戞晥鐜� | -| 鏁版嵁搴撴鏋� | p6spy | [p6spy瀹樼綉](https://p6spy.readthedocs.io/) | 鏇村己鍔茬殑 SQL 鍒嗘瀽 | -| 澶氭暟鎹簮妗嗘灦 | dynamic-datasource | [dynamic-ds鏂囨。](https://www.kancloud.cn/tracy5546/dynamic-datasource/content) | 鏀寔涓讳粠涓庡绉嶇被鏁版嵁搴撳紓鏋� | -| 搴忓垪鍖栨鏋� | Jackson | [Jackson瀹樼綉](https://github.com/FasterXML/jackson) | 缁熶竴浣跨敤 jackson 楂樻晥鍙潬 | -| Redis瀹㈡埛绔� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鏀寔鍗曟満銆侀泦缇ら厤缃� | -| 鍒嗗竷寮忛檺娴� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鍏ㄥ眬銆佽姹侷P銆侀泦缇D 澶氱闄愭祦 | -| 鍒嗗竷寮忛槦鍒� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鏅�氶槦鍒椼�佸欢杩熼槦鍒椼�佷紭鍏堥槦鍒� 绛� | -| 鍒嗗竷寮忛攣 | Lock4j | [Lock4j瀹樼綉](https://gitee.com/baomidou/lock4j) | 娉ㄨВ閿併�佸伐鍏烽攣 澶氱澶氭牱 | -| 鍒嗗竷寮忓箓绛� | Redisson | [Lock4j鏂囨。](https://gitee.com/baomidou/lock4j) | 鎷︽埅閲嶅鎻愪氦 | -| 鍒嗗竷寮忔棩蹇� | TLog | [TLog鏂囨。](https://yomahub.com/tlog/docs) | 鏀寔璺熻釜閾捐矾鏃ュ織璁板綍銆佹�ц兘鍒嗘瀽銆侀摼璺帓鏌� | -| 鍒嗗竷寮忎换鍔¤皟搴� | Xxl-Job | [Xxl-Job瀹樼綉](https://www.xuxueli.com/xxl-job/) | 楂樻�ц兘 楂樺彲闈� 鏄撴墿灞� | -| 鏂囦欢瀛樺偍 | Minio | [Minio鏂囨。](https://docs.min.io/) | 鏈湴瀛樺偍 | -| 鏂囦欢瀛樺偍 | 涓冪墰銆侀樋閲屻�佽吘璁� | [OSS浣跨敤鏂囨。](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4359146&doc_id=1469725) | 浜戝瓨鍌� | -| 鐩戞帶妗嗘灦 | SpringBoot-Admin | [SpringBoot-Admin鏂囨。](https://codecentric.github.io/spring-boot-admin/current/) | 鍏ㄦ柟浣嶆湇鍔$洃鎺� | -| 鏍¢獙妗嗘灦 | Validation | [Validation鏂囨。](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/) | 澧炲己鎺ュ彛瀹夊叏鎬с�佷弗璋ㄦ�� 鏀寔鍥介檯鍖� | -| Excel妗嗘灦 | Alibaba EasyExcel | [EasyExcel鏂囨。](https://www.yuque.com/easyexcel/doc/easyexcel) | 鎬ц兘浼樺紓 鎵╁睍鎬у己 | -| 鏂囨。妗嗘灦 | Knife4j | [Knife4j鏂囨。](https://doc.xiaominfo.com/knife4j/documentation/) | 缇庡寲鎺ュ彛鏂囨。 | -| 宸ュ叿绫绘鏋� | Hutool銆丩ombok | [Hutool鏂囨。](https://www.hutool.cn/docs/) | 鍑忓皯浠g爜鍐椾綑 澧炲姞瀹夊叏鎬� | -| 浠g爜鐢熸垚鍣� | 閫傞厤MP銆並nife4j瑙勮寖鍖栦唬鐮� | [Hutool鏂囨。](https://www.hutool.cn/docs/) | 涓�閿敓鎴愬墠鍚庣浠g爜 | -| 閮ㄧ讲鏂瑰紡 | Docker | [Docker鏂囨。](https://docs.docker.com/) | 瀹瑰櫒缂栨帓 涓�閿儴缃蹭笟鍔¢泦缇� | -| 鍥介檯鍖� | SpringMessage | [SpringMVC鏂囨。](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc) | Spring鏍囧噯鍥介檯鍖栨柟妗� | +| 鍔熻兘浠嬬粛 | 浣跨敤鎶�鏈� | 鏂囨。鍦板潃 | 鐗规�ф敞鎰忎簨椤� | +|-----------|------------------------|---------------------------------------------------------------------------------------------------|--------------------------| +| 褰撳墠妗嗘灦 | RuoYi-Vue-Plus | [RuoYi-Vue-Plus鏂囨。](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) | 閲嶅啓RuoYi-Vue鍏ㄦ柟浣嶅崌绾�(涓嶅吋瀹瑰師妗嗘灦) | +| 鍗曚綋鍒嗘敮 | RuoYi-Vue-Plus-fast | [fast鍒嗘敮鍦板潃](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) | 鍗曚綋搴旂敤缁撴瀯 | +| Vue3鍒嗘敮 | RuoYi-Vue-Plus-UI | [UI鍦板潃](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus-UI) | 鐢变簬缁勪欢杩樻湭瀹屽杽 浠呬緵瀛︿範 | +| 鍘熸鏋� | RuoYi-Vue | [RuoYi-Vue瀹樼綉](http://ruoyi.vip/) | 瀹氭湡鍚屾闇�瑕佺殑鍔熻兘 | +| 鍓嶇寮�鍙戞鏋� | Vue銆丒lement UI | [Element UI瀹樼綉](https://element.eleme.cn/#/zh-CN) | | +| 鍚庣寮�鍙戞鏋� | SpringBoot | [SpringBoot瀹樼綉](https://spring.io/projects/spring-boot/#learn) | | +| 瀹瑰櫒妗嗘灦 | Undertow | [Undertow瀹樼綉](https://undertow.io/) | 鍩轰簬 XNIO 鐨勯珮鎬ц兘瀹瑰櫒 | +| 鏉冮檺璁よ瘉妗嗘灦 | Sa-Token銆丣wt | [Sa-Token瀹樼綉](https://sa-token.dev33.cn/) | 寮鸿В鑰︺�佸己鎵╁睍 | +| 鍏崇郴鏁版嵁搴� | MySQL | [MySQL瀹樼綉](https://dev.mysql.com/) | 閫傞厤 8.X 鏈�浣� 5.7 | +| 缂撳瓨鏁版嵁搴� | Redis | [Redis瀹樼綉](https://redis.io/) | 閫傞厤 6.X 鏈�浣� 4.X | +| 鏁版嵁搴撴鏋� | Mybatis-Plus | [Mybatis-Plus鏂囨。](https://baomidou.com/guide/) | 蹇�� CRUD 澧炲姞寮�鍙戞晥鐜� | +| 鏁版嵁搴撴鏋� | p6spy | [p6spy瀹樼綉](https://p6spy.readthedocs.io/) | 鏇村己鍔茬殑 SQL 鍒嗘瀽 | +| 澶氭暟鎹簮妗嗘灦 | dynamic-datasource | [dynamic-ds鏂囨。](https://www.kancloud.cn/tracy5546/dynamic-datasource/content) | 鏀寔涓讳粠涓庡绉嶇被鏁版嵁搴撳紓鏋� | +| 搴忓垪鍖栨鏋� | Jackson | [Jackson瀹樼綉](https://github.com/FasterXML/jackson) | 缁熶竴浣跨敤 jackson 楂樻晥鍙潬 | +| Redis瀹㈡埛绔� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鏀寔鍗曟満銆侀泦缇ら厤缃� | +| 鍒嗗竷寮忛檺娴� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鍏ㄥ眬銆佽姹侷P銆侀泦缇D 澶氱闄愭祦 | +| 鍒嗗竷寮忛槦鍒� | Redisson | [Redisson鏂囨。](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 鏅�氶槦鍒椼�佸欢杩熼槦鍒椼�佷紭鍏堥槦鍒� 绛� | +| 鍒嗗竷寮忛攣 | Lock4j | [Lock4j瀹樼綉](https://gitee.com/baomidou/lock4j) | 娉ㄨВ閿併�佸伐鍏烽攣 澶氱澶氭牱 | +| 鍒嗗竷寮忓箓绛� | Redisson | [Lock4j鏂囨。](https://gitee.com/baomidou/lock4j) | 鎷︽埅閲嶅鎻愪氦 | +| 鍒嗗竷寮忔棩蹇� | TLog | [TLog鏂囨。](https://yomahub.com/tlog/docs) | 鏀寔璺熻釜閾捐矾鏃ュ織璁板綍銆佹�ц兘鍒嗘瀽銆侀摼璺帓鏌� | +| 鍒嗗竷寮忎换鍔¤皟搴� | Xxl-Job | [Xxl-Job瀹樼綉](https://www.xuxueli.com/xxl-job/) | 楂樻�ц兘 楂樺彲闈� 鏄撴墿灞� | +| 鏂囦欢瀛樺偍 | Minio | [Minio鏂囨。](https://docs.min.io/) | 鏈湴瀛樺偍 | +| 鏂囦欢瀛樺偍 | 涓冪墰銆侀樋閲屻�佽吘璁� | [OSS浣跨敤鏂囨。](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4359146&doc_id=1469725) | 浜戝瓨鍌� | +| 鐩戞帶妗嗘灦 | SpringBoot-Admin | [SpringBoot-Admin鏂囨。](https://codecentric.github.io/spring-boot-admin/current/) | 鍏ㄦ柟浣嶆湇鍔$洃鎺� | +| 鏍¢獙妗嗘灦 | Validation | [Validation鏂囨。](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/) | 澧炲己鎺ュ彛瀹夊叏鎬с�佷弗璋ㄦ�� 鏀寔鍥介檯鍖� | +| Excel妗嗘灦 | Alibaba EasyExcel | [EasyExcel鏂囨。](https://www.yuque.com/easyexcel/doc/easyexcel) | 鎬ц兘浼樺紓 鎵╁睍鎬у己 | +| 鏂囨。妗嗘灦 | Knife4j | [Knife4j鏂囨。](https://doc.xiaominfo.com/knife4j/documentation/) | 缇庡寲鎺ュ彛鏂囨。 | +| 宸ュ叿绫绘鏋� | Hutool銆丩ombok | [Hutool鏂囨。](https://www.hutool.cn/docs/) | 鍑忓皯浠g爜鍐椾綑 澧炲姞瀹夊叏鎬� | +| 浠g爜鐢熸垚鍣� | 閫傞厤MP銆並nife4j瑙勮寖鍖栦唬鐮� | [Hutool鏂囨。](https://www.hutool.cn/docs/) | 涓�閿敓鎴愬墠鍚庣浠g爜 | +| 閮ㄧ讲鏂瑰紡 | Docker | [Docker鏂囨。](https://docs.docker.com/) | 瀹瑰櫒缂栨帓 涓�閿儴缃蹭笟鍔¢泦缇� | +| 鍥介檯鍖� | SpringMessage | [SpringMVC鏂囨。](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc) | Spring鏍囧噯鍥介檯鍖栨柟妗� | ## 鍙傝�冩枃妗� @@ -115,40 +113,40 @@ ## 婕旂ず鍥句緥 <table border="1" cellpadding="1" cellspacing="1" style="width:500px"> - <tbody> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-972235bcbe3518dedd351ff0e2ee7d1031c.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-5e0097702fa91e2e36391de8127676a7fa1.png" width="1920" /></td> - </tr> - <tr> - <td> - <p><img src="https://oscimg.oschina.net/oscnet/up-e56e3828f48cd9886d88731766f06d5f3c1.png" width="1920" /></p> - </td> - <td><img src="https://oscimg.oschina.net/oscnet/up-0715990ea1a9f254ec2138fcd063c1f556a.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-eaf5417ccf921bb64abb959e3d8e290467f.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-fc285cf33095ebf8318de6999af0f473861.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-60c83fd8bd61c29df6dbf47c88355e9c272.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-7f731948c8b73c7d90f67f9e1c7a534d5c3.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-e4de89b5e2d20c52d3c3a47f9eb88eb8526.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-8791d823a508eb90e67c604f36f57491a67.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-4589afd99982ead331785299b894174feb6.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-8ea177cdacaea20995daf2f596b15232561.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-32d1d04c55c11f74c9129fbbc58399728c4.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-04fa118f7631b7ae6fd72299ca0a1430a63.png" width="1920" /></td> - </tr> - <tr> - <td><img src="https://oscimg.oschina.net/oscnet/up-fe7e85b65827802bfaadf3acd42568b58c7.png" width="1920" /></td> - <td><img src="https://oscimg.oschina.net/oscnet/up-eff2b02a54f8188022d8498cfe6af6fcc06.png" width="1920" /></td> - </tr> - </tbody> + <tbody> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-972235bcbe3518dedd351ff0e2ee7d1031c.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-5e0097702fa91e2e36391de8127676a7fa1.png" width="1920" /></td> + </tr> + <tr> + <td> + <p><img src="https://oscimg.oschina.net/oscnet/up-e56e3828f48cd9886d88731766f06d5f3c1.png" width="1920" /></p> + </td> + <td><img src="https://oscimg.oschina.net/oscnet/up-0715990ea1a9f254ec2138fcd063c1f556a.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-eaf5417ccf921bb64abb959e3d8e290467f.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-fc285cf33095ebf8318de6999af0f473861.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-60c83fd8bd61c29df6dbf47c88355e9c272.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-7f731948c8b73c7d90f67f9e1c7a534d5c3.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-e4de89b5e2d20c52d3c3a47f9eb88eb8526.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-8791d823a508eb90e67c604f36f57491a67.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-4589afd99982ead331785299b894174feb6.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-8ea177cdacaea20995daf2f596b15232561.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-32d1d04c55c11f74c9129fbbc58399728c4.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-04fa118f7631b7ae6fd72299ca0a1430a63.png" width="1920" /></td> + </tr> + <tr> + <td><img src="https://oscimg.oschina.net/oscnet/up-fe7e85b65827802bfaadf3acd42568b58c7.png" width="1920" /></td> + <td><img src="https://oscimg.oschina.net/oscnet/up-eff2b02a54f8188022d8498cfe6af6fcc06.png" width="1920" /></td> + </tr> + </tbody> </table> diff --git a/pom.xml b/pom.xml index 457ce4f..eea70e7 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-vue-plus</artifactId> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index ce5af78..6a7f5ed 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.core.service.TokenService; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; @@ -40,7 +39,6 @@ public class SysProfileController extends BaseController { private final ISysUserService userService; - private final TokenService tokenService; private final ISysOssService iSysOssService; /** diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml index 6e3280f..e8d6275 100644 --- a/ruoyi-admin/src/main/resources/logback.xml +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -5,13 +5,13 @@ value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/> - <!-- 鎺у埗鍙拌緭鍑� --> - <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> + <!-- 鎺у埗鍙拌緭鍑� --> + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> - <pattern>${console.log.pattern}</pattern> + <pattern>${console.log.pattern}</pattern> <charset>utf-8</charset> - </encoder> - </appender> + </encoder> + </appender> <!-- 鎺у埗鍙拌緭鍑� --> <appender name="file_console" class="ch.qos.logback.core.rolling.RollingFileAppender"> @@ -32,20 +32,20 @@ </filter> </appender> - <!-- 绯荤粺鏃ュ織杈撳嚭 --> - <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.path}/sys-info.log</file> + <!-- 绯荤粺鏃ュ織杈撳嚭 --> + <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.path}/sys-info.log</file> <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� --> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� --> - <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> - <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� --> - <maxHistory>60</maxHistory> - </rollingPolicy> + <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> + <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� --> + <maxHistory>60</maxHistory> + </rollingPolicy> <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> - <pattern>${log.pattern}</pattern> - </encoder> - <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <pattern>${log.pattern}</pattern> + </encoder> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 杩囨护鐨勭骇鍒� --> <level>INFO</level> <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� --> @@ -53,16 +53,16 @@ <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� --> <onMismatch>DENY</onMismatch> </filter> - </appender> + </appender> - <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.path}/sys-error.log</file> + <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.path}/sys-error.log</file> <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� --> <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> - <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� --> - <maxHistory>60</maxHistory> + <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� --> + <maxHistory>60</maxHistory> </rollingPolicy> <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> <pattern>${log.pattern}</pattern> @@ -70,23 +70,23 @@ <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 杩囨护鐨勭骇鍒� --> <level>ERROR</level> - <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� --> + <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� --> <onMatch>ACCEPT</onMatch> - <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� --> + <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� --> <onMismatch>DENY</onMismatch> </filter> </appender> - <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗 --> - <logger name="com.ruoyi" level="info" /> - <!-- Spring鏃ュ織绾у埆鎺у埗 --> - <logger name="org.springframework" level="warn" /> + <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗 --> + <logger name="com.ruoyi" level="info" /> + <!-- Spring鏃ュ織绾у埆鎺у埗 --> + <logger name="org.springframework" level="warn" /> - <root level="info"> - <appender-ref ref="console" /> - </root> + <root level="info"> + <appender-ref ref="console" /> + </root> - <!--绯荤粺鎿嶄綔鏃ュ織--> + <!--绯荤粺鎿嶄綔鏃ュ織--> <root level="info"> <appender-ref ref="file_info" /> <appender-ref ref="file_error" /> diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java index 53a872d..a9b4dbd 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java @@ -41,7 +41,7 @@ */ @ApiOperation(value = "鏂板鎵归噺鏂规硶") @PostMapping("/add") -// @DS("slave") +// @DS("slave") public AjaxResult<Void> add() { List<TestDemo> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { @@ -57,7 +57,7 @@ */ @ApiOperation(value = "鏂板鎴栨洿鏂版壒閲忔柟娉�") @PostMapping("/addOrUpdate") -// @DS("slave") +// @DS("slave") public AjaxResult<Void> addOrUpdate() { List<TestDemo> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { @@ -79,7 +79,7 @@ */ @ApiOperation(value = "鍒犻櫎鎵归噺鏂规硶") @DeleteMapping() -// @DS("slave") +// @DS("slave") public AjaxResult<Void> remove() { return toAjax(testDemoMapper.delete(new LambdaQueryWrapper<TestDemo>() .eq(TestDemo::getOrderNum, -1L))); diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index f28c61e..003d7dc 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -95,8 +95,8 @@ List<TestDemoVo> list = iTestDemoService.queryList(bo); // 娴嬭瘯闆姳id瀵煎嚭 // for (TestDemoVo vo : list) { -// vo.setId(1234567891234567893L); -// } +// vo.setId(1234567891234567893L); +// } ExcelUtil.exportExcel(list, "娴嬭瘯鍗曡〃", TestDemoVo.class, response); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml index 218c1cc..a2e6405 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml @@ -1,126 +1,126 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> <artifactId>ruoyi-extend</artifactId> <groupId>com.ruoyi</groupId> <version>3.5.0</version> - </parent> - <artifactId>ruoyi-xxl-job-admin</artifactId> - <packaging>jar</packaging> + </parent> + <artifactId>ruoyi-xxl-job-admin</artifactId> + <packaging>jar</packaging> - <properties> - <mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version> - <mysql-connector-java.version>8.0.23</mysql-connector-java.version> - </properties> + <properties> + <mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version> + <mysql-connector-java.version>8.0.23</mysql-connector-java.version> + </properties> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>${spring-boot.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>${spring-boot.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> - <dependencies> + <dependencies> - <!-- starter-web锛歴pring-webmvc + autoconfigure + logback + yaml + tomcat --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <!-- starter-test锛歫unit + spring-test + mockito --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> + <!-- starter-web锛歴pring-webmvc + autoconfigure + logback + yaml + tomcat --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <!-- starter-test锛歫unit + spring-test + mockito --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> - <!-- freemarker-starter --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-freemarker</artifactId> - </dependency> + <!-- freemarker-starter --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-freemarker</artifactId> + </dependency> - <!-- mail-starter --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-mail</artifactId> - </dependency> + <!-- mail-starter --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-mail</artifactId> + </dependency> - <!-- starter-actuator --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> + <!-- starter-actuator --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> - <!-- mybatis-starter锛歮ybatis + mybatis-spring + hikari锛坉efault锛� --> - <dependency> - <groupId>org.mybatis.spring.boot</groupId> - <artifactId>mybatis-spring-boot-starter</artifactId> - <version>${mybatis-spring-boot-starter.version}</version> - </dependency> - <!-- mysql --> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>${mysql-connector-java.version}</version> - </dependency> + <!-- mybatis-starter锛歮ybatis + mybatis-spring + hikari锛坉efault锛� --> + <dependency> + <groupId>org.mybatis.spring.boot</groupId> + <artifactId>mybatis-spring-boot-starter</artifactId> + <version>${mybatis-spring-boot-starter.version}</version> + </dependency> + <!-- mysql --> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql-connector-java.version}</version> + </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency> - <!-- xxl-job-core --> - <dependency> - <groupId>com.xuxueli</groupId> - <artifactId>xxl-job-core</artifactId> - </dependency> + <!-- xxl-job-core --> + <dependency> + <groupId>com.xuxueli</groupId> + <artifactId>xxl-job-core</artifactId> + </dependency> - </dependencies> + </dependencies> - <build> + <build> <finalName>${project.artifactId}</finalName> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <version>${spring-boot.version}</version> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> - </plugin> - <!-- docker --> - <plugin> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <version>${docker.plugin.version}</version> - <configuration> - <!-- made of '[a-z0-9-_.]' --> - <imageName>${docker.namespace}/${project.artifactId}:${project.version}</imageName> - <dockerDirectory>${project.basedir}</dockerDirectory> - <dockerHost>${docker.registry.host}</dockerHost> - <registryUrl>${docker.registry.url}</registryUrl> - <serverId>${docker.registry.url}</serverId> - <resources> - <resource> - <targetPath>/</targetPath> - <directory>${project.build.directory}</directory> - <include>${project.build.finalName}.jar</include> - </resource> - </resources> - </configuration> - </plugin> - </plugins> - </build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${spring-boot.version}</version> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + <!-- docker --> + <plugin> + <groupId>com.spotify</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>${docker.plugin.version}</version> + <configuration> + <!-- made of '[a-z0-9-_.]' --> + <imageName>${docker.namespace}/${project.artifactId}:${project.version}</imageName> + <dockerDirectory>${project.basedir}</dockerDirectory> + <dockerHost>${docker.registry.host}</dockerHost> + <registryUrl>${docker.registry.url}</registryUrl> + <serverId>${docker.registry.url}</serverId> + <resources> + <resource> + <targetPath>/</targetPath> + <directory>${project.build.directory}</directory> + <include>${project.build.finalName}.jar</include> + </resource> + </resources> + </configuration> + </plugin> + </plugins> + </build> </project> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java index fce10a8..95ec1c4 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java @@ -9,8 +9,8 @@ @SpringBootApplication public class XxlJobAdminApplication { - public static void main(String[] args) { + public static void main(String[] args) { SpringApplication.run(XxlJobAdminApplication.class, args); - } + } -} \ No newline at end of file +} diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java index eb63f0b..8d5495c 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java @@ -24,73 +24,74 @@ /** * index controller + * * @author xuxueli 2015-12-19 16:13:16 */ @Controller public class IndexController { - @Resource - private XxlJobService xxlJobService; - @Resource - private LoginService loginService; + @Resource + private XxlJobService xxlJobService; + @Resource + private LoginService loginService; - @RequestMapping("/") - public String index(Model model) { + @RequestMapping("/") + public String index(Model model) { - Map<String, Object> dashboardMap = xxlJobService.dashboardInfo(); - model.addAllAttributes(dashboardMap); + Map<String, Object> dashboardMap = xxlJobService.dashboardInfo(); + model.addAllAttributes(dashboardMap); - return "index"; - } + return "index"; + } @RequestMapping("/chartInfo") - @ResponseBody - public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) { + @ResponseBody + public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) { ReturnT<Map<String, Object>> chartInfo = xxlJobService.chartInfo(startDate, endDate); return chartInfo; } - - @RequestMapping("/toLogin") - @PermissionLimit(limit=false) - public ModelAndView toLogin(HttpServletRequest request, HttpServletResponse response,ModelAndView modelAndView) { - if (loginService.ifLogin(request, response) != null) { - modelAndView.setView(new RedirectView("/",true,false)); - return modelAndView; - } - return new ModelAndView("login"); - } - - @RequestMapping(value="login", method=RequestMethod.POST) - @ResponseBody - @PermissionLimit(limit=false) - public ReturnT<String> loginDo(HttpServletRequest request, HttpServletResponse response, String userName, String password, String ifRemember){ - boolean ifRem = (ifRemember!=null && ifRemember.trim().length()>0 && "on".equals(ifRemember))?true:false; - return loginService.login(request, response, userName, password, ifRem); - } - - @RequestMapping(value="logout", method=RequestMethod.POST) - @ResponseBody - @PermissionLimit(limit=false) - public ReturnT<String> logout(HttpServletRequest request, HttpServletResponse response){ - return loginService.logout(request, response); - } - - @RequestMapping("/help") - public String help() { - /*if (!PermissionInterceptor.ifLogin(request)) { - return "redirect:/toLogin"; - }*/ + @RequestMapping("/toLogin") + @PermissionLimit(limit = false) + public ModelAndView toLogin(HttpServletRequest request, HttpServletResponse response, ModelAndView modelAndView) { + if (loginService.ifLogin(request, response) != null) { + modelAndView.setView(new RedirectView("/" , true, false)); + return modelAndView; + } + return new ModelAndView("login"); + } - return "help"; - } + @RequestMapping(value = "login" , method = RequestMethod.POST) + @ResponseBody + @PermissionLimit(limit = false) + public ReturnT<String> loginDo(HttpServletRequest request, HttpServletResponse response, String userName, String password, String ifRemember) { + boolean ifRem = (ifRemember != null && ifRemember.trim().length() > 0 && "on".equals(ifRemember)) ? true : false; + return loginService.login(request, response, userName, password, ifRem); + } - @InitBinder - public void initBinder(WebDataBinder binder) { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - dateFormat.setLenient(false); - binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); - } - + @RequestMapping(value = "logout" , method = RequestMethod.POST) + @ResponseBody + @PermissionLimit(limit = false) + public ReturnT<String> logout(HttpServletRequest request, HttpServletResponse response) { + return loginService.logout(request, response); + } + + @RequestMapping("/help") + public String help() { + + /*if (!PermissionInterceptor.ifLogin(request)) { + return "redirect:/toLogin"; + }*/ + + return "help"; + } + + @InitBinder + public void initBinder(WebDataBinder binder) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + dateFormat.setLenient(false); + binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); + } + } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java index fe4a0e8..0c8384f 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java @@ -19,78 +19,79 @@ /** * job code controller + * * @author xuxueli 2015-12-19 16:13:16 */ @Controller @RequestMapping("/jobcode") public class JobCodeController { - - @Resource - private XxlJobInfoDao xxlJobInfoDao; - @Resource - private XxlJobLogGlueDao xxlJobLogGlueDao; - @RequestMapping - public String index(HttpServletRequest request, Model model, int jobId) { - XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId); - List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId); + @Resource + private XxlJobInfoDao xxlJobInfoDao; + @Resource + private XxlJobLogGlueDao xxlJobLogGlueDao; - if (jobInfo == null) { - throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid")); - } - if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) { - throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid")); - } + @RequestMapping + public String index(HttpServletRequest request, Model model, int jobId) { + XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId); + List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId); - // valid permission - JobInfoController.validPermission(request, jobInfo.getJobGroup()); + if (jobInfo == null) { + throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid")); + } + if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) { + throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid")); + } - // Glue绫诲瀷-瀛楀吀 - model.addAttribute("GlueTypeEnum", GlueTypeEnum.values()); + // valid permission + JobInfoController.validPermission(request, jobInfo.getJobGroup()); - model.addAttribute("jobInfo", jobInfo); - model.addAttribute("jobLogGlues", jobLogGlues); - return "jobcode/jobcode.index"; - } - - @RequestMapping("/save") - @ResponseBody - public ReturnT<String> save(Model model, int id, String glueSource, String glueRemark) { - // valid - if (glueRemark==null) { - return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark")) ); - } - if (glueRemark.length()<4 || glueRemark.length()>100) { - return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit")); - } - XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(id); - if (exists_jobInfo == null) { - return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid")); - } - - // update new code - exists_jobInfo.setGlueSource(glueSource); - exists_jobInfo.setGlueRemark(glueRemark); - exists_jobInfo.setGlueUpdatetime(new Date()); + // Glue绫诲瀷-瀛楀吀 + model.addAttribute("GlueTypeEnum" , GlueTypeEnum.values()); - exists_jobInfo.setUpdateTime(new Date()); - xxlJobInfoDao.update(exists_jobInfo); + model.addAttribute("jobInfo" , jobInfo); + model.addAttribute("jobLogGlues" , jobLogGlues); + return "jobcode/jobcode.index"; + } - // log old code - XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue(); - xxlJobLogGlue.setJobId(exists_jobInfo.getId()); - xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType()); - xxlJobLogGlue.setGlueSource(glueSource); - xxlJobLogGlue.setGlueRemark(glueRemark); + @RequestMapping("/save") + @ResponseBody + public ReturnT<String> save(Model model, int id, String glueSource, String glueRemark) { + // valid + if (glueRemark == null) { + return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark"))); + } + if (glueRemark.length() < 4 || glueRemark.length() > 100) { + return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit")); + } + XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(id); + if (exists_jobInfo == null) { + return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid")); + } - xxlJobLogGlue.setAddTime(new Date()); - xxlJobLogGlue.setUpdateTime(new Date()); - xxlJobLogGlueDao.save(xxlJobLogGlue); + // update new code + exists_jobInfo.setGlueSource(glueSource); + exists_jobInfo.setGlueRemark(glueRemark); + exists_jobInfo.setGlueUpdatetime(new Date()); - // remove code backup more than 30 - xxlJobLogGlueDao.removeOld(exists_jobInfo.getId(), 30); + exists_jobInfo.setUpdateTime(new Date()); + xxlJobInfoDao.update(exists_jobInfo); - return ReturnT.SUCCESS; - } - + // log old code + XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue(); + xxlJobLogGlue.setJobId(exists_jobInfo.getId()); + xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType()); + xxlJobLogGlue.setGlueSource(glueSource); + xxlJobLogGlue.setGlueRemark(glueRemark); + + xxlJobLogGlue.setAddTime(new Date()); + xxlJobLogGlue.setUpdateTime(new Date()); + xxlJobLogGlueDao.save(xxlJobLogGlue); + + // remove code backup more than 30 + xxlJobLogGlueDao.removeOld(exists_jobInfo.getId(), 30); + + return ReturnT.SUCCESS; + } + } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java index 4bb4b90..4a46200 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java @@ -20,178 +20,179 @@ /** * job group controller + * * @author xuxueli 2016-10-02 20:52:56 */ @Controller @RequestMapping("/jobgroup") public class JobGroupController { - @Resource - public XxlJobInfoDao xxlJobInfoDao; - @Resource - public XxlJobGroupDao xxlJobGroupDao; - @Resource - private XxlJobRegistryDao xxlJobRegistryDao; + @Resource + public XxlJobInfoDao xxlJobInfoDao; + @Resource + public XxlJobGroupDao xxlJobGroupDao; + @Resource + private XxlJobRegistryDao xxlJobRegistryDao; - @RequestMapping - public String index(Model model) { - return "jobgroup/jobgroup.index"; - } + @RequestMapping + public String index(Model model) { + return "jobgroup/jobgroup.index"; + } - @RequestMapping("/pageList") - @ResponseBody - public Map<String, Object> pageList(HttpServletRequest request, - @RequestParam(required = false, defaultValue = "0") int start, - @RequestParam(required = false, defaultValue = "10") int length, - String appname, String title) { + @RequestMapping("/pageList") + @ResponseBody + public Map<String, Object> pageList(HttpServletRequest request, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length, + String appname, String title) { - // page query - List<XxlJobGroup> list = xxlJobGroupDao.pageList(start, length, appname, title); - int list_count = xxlJobGroupDao.pageListCount(start, length, appname, title); + // page query + List<XxlJobGroup> list = xxlJobGroupDao.pageList(start, length, appname, title); + int list_count = xxlJobGroupDao.pageListCount(start, length, appname, title); - // package result - Map<String, Object> maps = new HashMap<String, Object>(); - maps.put("recordsTotal", list_count); // 鎬昏褰曟暟 - maps.put("recordsFiltered", list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 - maps.put("data", list); // 鍒嗛〉鍒楄〃 - return maps; - } + // package result + Map<String, Object> maps = new HashMap<String, Object>(); + maps.put("recordsTotal" , list_count); // 鎬昏褰曟暟 + maps.put("recordsFiltered" , list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 + maps.put("data" , list); // 鍒嗛〉鍒楄〃 + return maps; + } - @RequestMapping("/save") - @ResponseBody - public ReturnT<String> save(XxlJobGroup xxlJobGroup){ + @RequestMapping("/save") + @ResponseBody + public ReturnT<String> save(XxlJobGroup xxlJobGroup) { - // valid - if (xxlJobGroup.getAppname()==null || xxlJobGroup.getAppname().trim().length()==0) { - return new ReturnT<String>(500, (I18nUtil.getString("system_please_input")+"AppName") ); - } - if (xxlJobGroup.getAppname().length()<4 || xxlJobGroup.getAppname().length()>64) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length") ); - } - if (xxlJobGroup.getAppname().contains(">") || xxlJobGroup.getAppname().contains("<")) { - return new ReturnT<String>(500, "AppName"+I18nUtil.getString("system_unvalid") ); - } - if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) { - return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) ); - } - if (xxlJobGroup.getTitle().contains(">") || xxlJobGroup.getTitle().contains("<")) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_title")+I18nUtil.getString("system_unvalid") ); - } - if (xxlJobGroup.getAddressType()!=0) { - if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") ); - } - if (xxlJobGroup.getAddressList().contains(">") || xxlJobGroup.getAddressList().contains("<")) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList")+I18nUtil.getString("system_unvalid") ); - } + // valid + if (xxlJobGroup.getAppname() == null || xxlJobGroup.getAppname().trim().length() == 0) { + return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + "AppName")); + } + if (xxlJobGroup.getAppname().length() < 4 || xxlJobGroup.getAppname().length() > 64) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length")); + } + if (xxlJobGroup.getAppname().contains(">") || xxlJobGroup.getAppname().contains("<")) { + return new ReturnT<String>(500, "AppName" + I18nUtil.getString("system_unvalid")); + } + if (xxlJobGroup.getTitle() == null || xxlJobGroup.getTitle().trim().length() == 0) { + return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title"))); + } + if (xxlJobGroup.getTitle().contains(">") || xxlJobGroup.getTitle().contains("<")) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_title") + I18nUtil.getString("system_unvalid")); + } + if (xxlJobGroup.getAddressType() != 0) { + if (xxlJobGroup.getAddressList() == null || xxlJobGroup.getAddressList().trim().length() == 0) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit")); + } + if (xxlJobGroup.getAddressList().contains(">") || xxlJobGroup.getAddressList().contains("<")) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList") + I18nUtil.getString("system_unvalid")); + } - String[] addresss = xxlJobGroup.getAddressList().split(","); - for (String item: addresss) { - if (item==null || item.trim().length()==0) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid") ); - } - } - } + String[] addresss = xxlJobGroup.getAddressList().split(","); + for (String item : addresss) { + if (item == null || item.trim().length() == 0) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid")); + } + } + } - // process - xxlJobGroup.setUpdateTime(new Date()); + // process + xxlJobGroup.setUpdateTime(new Date()); - int ret = xxlJobGroupDao.save(xxlJobGroup); - return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL; - } + int ret = xxlJobGroupDao.save(xxlJobGroup); + return (ret > 0) ? ReturnT.SUCCESS : ReturnT.FAIL; + } - @RequestMapping("/update") - @ResponseBody - public ReturnT<String> update(XxlJobGroup xxlJobGroup){ - // valid - if (xxlJobGroup.getAppname()==null || xxlJobGroup.getAppname().trim().length()==0) { - return new ReturnT<String>(500, (I18nUtil.getString("system_please_input")+"AppName") ); - } - if (xxlJobGroup.getAppname().length()<4 || xxlJobGroup.getAppname().length()>64) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length") ); - } - if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) { - return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) ); - } - if (xxlJobGroup.getAddressType() == 0) { - // 0=鑷姩娉ㄥ唽 - List<String> registryList = findRegistryByAppName(xxlJobGroup.getAppname()); - String addressListStr = null; - if (registryList!=null && !registryList.isEmpty()) { - Collections.sort(registryList); - addressListStr = ""; - for (String item:registryList) { - addressListStr += item + ","; - } - addressListStr = addressListStr.substring(0, addressListStr.length()-1); - } - xxlJobGroup.setAddressList(addressListStr); - } else { - // 1=鎵嬪姩褰曞叆 - if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") ); - } - String[] addresss = xxlJobGroup.getAddressList().split(","); - for (String item: addresss) { - if (item==null || item.trim().length()==0) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid") ); - } - } - } + @RequestMapping("/update") + @ResponseBody + public ReturnT<String> update(XxlJobGroup xxlJobGroup) { + // valid + if (xxlJobGroup.getAppname() == null || xxlJobGroup.getAppname().trim().length() == 0) { + return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + "AppName")); + } + if (xxlJobGroup.getAppname().length() < 4 || xxlJobGroup.getAppname().length() > 64) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length")); + } + if (xxlJobGroup.getTitle() == null || xxlJobGroup.getTitle().trim().length() == 0) { + return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title"))); + } + if (xxlJobGroup.getAddressType() == 0) { + // 0=鑷姩娉ㄥ唽 + List<String> registryList = findRegistryByAppName(xxlJobGroup.getAppname()); + String addressListStr = null; + if (registryList != null && !registryList.isEmpty()) { + Collections.sort(registryList); + addressListStr = ""; + for (String item : registryList) { + addressListStr += item + ","; + } + addressListStr = addressListStr.substring(0, addressListStr.length() - 1); + } + xxlJobGroup.setAddressList(addressListStr); + } else { + // 1=鎵嬪姩褰曞叆 + if (xxlJobGroup.getAddressList() == null || xxlJobGroup.getAddressList().trim().length() == 0) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit")); + } + String[] addresss = xxlJobGroup.getAddressList().split(","); + for (String item : addresss) { + if (item == null || item.trim().length() == 0) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid")); + } + } + } - // process - xxlJobGroup.setUpdateTime(new Date()); + // process + xxlJobGroup.setUpdateTime(new Date()); - int ret = xxlJobGroupDao.update(xxlJobGroup); - return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL; - } + int ret = xxlJobGroupDao.update(xxlJobGroup); + return (ret > 0) ? ReturnT.SUCCESS : ReturnT.FAIL; + } - private List<String> findRegistryByAppName(String appnameParam){ - HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>(); - List<XxlJobRegistry> list = xxlJobRegistryDao.findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); - if (list != null) { - for (XxlJobRegistry item: list) { - if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) { - String appname = item.getRegistryKey(); - List<String> registryList = appAddressMap.get(appname); - if (registryList == null) { - registryList = new ArrayList<String>(); - } + private List<String> findRegistryByAppName(String appnameParam) { + HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>(); + List<XxlJobRegistry> list = xxlJobRegistryDao.findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); + if (list != null) { + for (XxlJobRegistry item : list) { + if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) { + String appname = item.getRegistryKey(); + List<String> registryList = appAddressMap.get(appname); + if (registryList == null) { + registryList = new ArrayList<String>(); + } - if (!registryList.contains(item.getRegistryValue())) { - registryList.add(item.getRegistryValue()); - } - appAddressMap.put(appname, registryList); - } - } - } - return appAddressMap.get(appnameParam); - } + if (!registryList.contains(item.getRegistryValue())) { + registryList.add(item.getRegistryValue()); + } + appAddressMap.put(appname, registryList); + } + } + } + return appAddressMap.get(appnameParam); + } - @RequestMapping("/remove") - @ResponseBody - public ReturnT<String> remove(int id){ + @RequestMapping("/remove") + @ResponseBody + public ReturnT<String> remove(int id) { - // valid - int count = xxlJobInfoDao.pageListCount(0, 10, id, -1, null, null, null); - if (count > 0) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_0") ); - } + // valid + int count = xxlJobInfoDao.pageListCount(0, 10, id, -1, null, null, null); + if (count > 0) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_0")); + } - List<XxlJobGroup> allList = xxlJobGroupDao.findAll(); - if (allList.size() == 1) { - return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_1") ); - } + List<XxlJobGroup> allList = xxlJobGroupDao.findAll(); + if (allList.size() == 1) { + return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_1")); + } - int ret = xxlJobGroupDao.remove(id); - return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL; - } + int ret = xxlJobGroupDao.remove(id); + return (ret > 0) ? ReturnT.SUCCESS : ReturnT.FAIL; + } - @RequestMapping("/loadById") - @ResponseBody - public ReturnT<XxlJobGroup> loadById(int id){ - XxlJobGroup jobGroup = xxlJobGroupDao.load(id); - return jobGroup!=null?new ReturnT<XxlJobGroup>(jobGroup):new ReturnT<XxlJobGroup>(ReturnT.FAIL_CODE, null); - } + @RequestMapping("/loadById") + @ResponseBody + public ReturnT<XxlJobGroup> loadById(int id) { + XxlJobGroup jobGroup = xxlJobGroupDao.load(id); + return jobGroup != null ? new ReturnT<XxlJobGroup>(jobGroup) : new ReturnT<XxlJobGroup>(ReturnT.FAIL_CODE, null); + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java index ea314b3..0f52bef 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.controller; -import com.xxl.job.admin.core.cron.CronExpression; import com.xxl.job.admin.core.exception.XxlJobException; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; @@ -29,152 +28,153 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.text.ParseException; import java.util.*; /** * index controller + * * @author xuxueli 2015-12-19 16:13:16 */ @Controller @RequestMapping("/jobinfo") public class JobInfoController { - private static Logger logger = LoggerFactory.getLogger(JobInfoController.class); + private static Logger logger = LoggerFactory.getLogger(JobInfoController.class); - @Resource - private XxlJobGroupDao xxlJobGroupDao; - @Resource - private XxlJobService xxlJobService; - - @RequestMapping - public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "-1") int jobGroup) { + @Resource + private XxlJobGroupDao xxlJobGroupDao; + @Resource + private XxlJobService xxlJobService; - // 鏋氫妇-瀛楀吀 - model.addAttribute("ExecutorRouteStrategyEnum", ExecutorRouteStrategyEnum.values()); // 璺敱绛栫暐-鍒楄〃 - model.addAttribute("GlueTypeEnum", GlueTypeEnum.values()); // Glue绫诲瀷-瀛楀吀 - model.addAttribute("ExecutorBlockStrategyEnum", ExecutorBlockStrategyEnum.values()); // 闃诲澶勭悊绛栫暐-瀛楀吀 - model.addAttribute("ScheduleTypeEnum", ScheduleTypeEnum.values()); // 璋冨害绫诲瀷 - model.addAttribute("MisfireStrategyEnum", MisfireStrategyEnum.values()); // 璋冨害杩囨湡绛栫暐 + @RequestMapping + public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "-1") int jobGroup) { - // 鎵ц鍣ㄥ垪琛� - List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll(); + // 鏋氫妇-瀛楀吀 + model.addAttribute("ExecutorRouteStrategyEnum" , ExecutorRouteStrategyEnum.values()); // 璺敱绛栫暐-鍒楄〃 + model.addAttribute("GlueTypeEnum" , GlueTypeEnum.values()); // Glue绫诲瀷-瀛楀吀 + model.addAttribute("ExecutorBlockStrategyEnum" , ExecutorBlockStrategyEnum.values()); // 闃诲澶勭悊绛栫暐-瀛楀吀 + model.addAttribute("ScheduleTypeEnum" , ScheduleTypeEnum.values()); // 璋冨害绫诲瀷 + model.addAttribute("MisfireStrategyEnum" , MisfireStrategyEnum.values()); // 璋冨害杩囨湡绛栫暐 - // filter group - List<XxlJobGroup> jobGroupList = filterJobGroupByRole(request, jobGroupList_all); - if (jobGroupList==null || jobGroupList.size()==0) { - throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); - } + // 鎵ц鍣ㄥ垪琛� + List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll(); - model.addAttribute("JobGroupList", jobGroupList); - model.addAttribute("jobGroup", jobGroup); + // filter group + List<XxlJobGroup> jobGroupList = filterJobGroupByRole(request, jobGroupList_all); + if (jobGroupList == null || jobGroupList.size() == 0) { + throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); + } - return "jobinfo/jobinfo.index"; - } + model.addAttribute("JobGroupList" , jobGroupList); + model.addAttribute("jobGroup" , jobGroup); - public static List<XxlJobGroup> filterJobGroupByRole(HttpServletRequest request, List<XxlJobGroup> jobGroupList_all){ - List<XxlJobGroup> jobGroupList = new ArrayList<>(); - if (jobGroupList_all!=null && jobGroupList_all.size()>0) { - XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY); - if (loginUser.getRole() == 1) { - jobGroupList = jobGroupList_all; - } else { - List<String> groupIdStrs = new ArrayList<>(); - if (loginUser.getPermission()!=null && loginUser.getPermission().trim().length()>0) { - groupIdStrs = Arrays.asList(loginUser.getPermission().trim().split(",")); - } - for (XxlJobGroup groupItem:jobGroupList_all) { - if (groupIdStrs.contains(String.valueOf(groupItem.getId()))) { - jobGroupList.add(groupItem); - } - } - } - } - return jobGroupList; - } - public static void validPermission(HttpServletRequest request, int jobGroup) { - XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY); - if (!loginUser.validPermission(jobGroup)) { - throw new RuntimeException(I18nUtil.getString("system_permission_limit") + "[username="+ loginUser.getUsername() +"]"); - } - } - - @RequestMapping("/pageList") - @ResponseBody - public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start, - @RequestParam(required = false, defaultValue = "10") int length, - int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) { - - return xxlJobService.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); - } - - @RequestMapping("/add") - @ResponseBody - public ReturnT<String> add(XxlJobInfo jobInfo) { - return xxlJobService.add(jobInfo); - } - - @RequestMapping("/update") - @ResponseBody - public ReturnT<String> update(XxlJobInfo jobInfo) { - return xxlJobService.update(jobInfo); - } - - @RequestMapping("/remove") - @ResponseBody - public ReturnT<String> remove(int id) { - return xxlJobService.remove(id); - } - - @RequestMapping("/stop") - @ResponseBody - public ReturnT<String> pause(int id) { - return xxlJobService.stop(id); - } - - @RequestMapping("/start") - @ResponseBody - public ReturnT<String> start(int id) { - return xxlJobService.start(id); - } - - @RequestMapping("/trigger") - @ResponseBody - //@PermissionLimit(limit = false) - public ReturnT<String> triggerJob(int id, String executorParam, String addressList) { - // force cover job param - if (executorParam == null) { - executorParam = ""; - } + return "jobinfo/jobinfo.index"; + } - JobTriggerPoolHelper.trigger(id, TriggerTypeEnum.MANUAL, -1, null, executorParam, addressList); - return ReturnT.SUCCESS; - } + public static List<XxlJobGroup> filterJobGroupByRole(HttpServletRequest request, List<XxlJobGroup> jobGroupList_all) { + List<XxlJobGroup> jobGroupList = new ArrayList<>(); + if (jobGroupList_all != null && jobGroupList_all.size() > 0) { + XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY); + if (loginUser.getRole() == 1) { + jobGroupList = jobGroupList_all; + } else { + List<String> groupIdStrs = new ArrayList<>(); + if (loginUser.getPermission() != null && loginUser.getPermission().trim().length() > 0) { + groupIdStrs = Arrays.asList(loginUser.getPermission().trim().split(",")); + } + for (XxlJobGroup groupItem : jobGroupList_all) { + if (groupIdStrs.contains(String.valueOf(groupItem.getId()))) { + jobGroupList.add(groupItem); + } + } + } + } + return jobGroupList; + } - @RequestMapping("/nextTriggerTime") - @ResponseBody - public ReturnT<List<String>> nextTriggerTime(String scheduleType, String scheduleConf) { + public static void validPermission(HttpServletRequest request, int jobGroup) { + XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY); + if (!loginUser.validPermission(jobGroup)) { + throw new RuntimeException(I18nUtil.getString("system_permission_limit") + "[username=" + loginUser.getUsername() + "]"); + } + } - XxlJobInfo paramXxlJobInfo = new XxlJobInfo(); - paramXxlJobInfo.setScheduleType(scheduleType); - paramXxlJobInfo.setScheduleConf(scheduleConf); + @RequestMapping("/pageList") + @ResponseBody + public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length, + int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) { - List<String> result = new ArrayList<>(); - try { - Date lastTime = new Date(); - for (int i = 0; i < 5; i++) { - lastTime = JobScheduleHelper.generateNextValidTime(paramXxlJobInfo, lastTime); - if (lastTime != null) { - result.add(DateUtil.formatDateTime(lastTime)); - } else { - break; - } - } - } catch (Exception e) { - logger.error(e.getMessage(), e); - return new ReturnT<List<String>>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) + e.getMessage()); - } - return new ReturnT<List<String>>(result); + return xxlJobService.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); + } - } - + @RequestMapping("/add") + @ResponseBody + public ReturnT<String> add(XxlJobInfo jobInfo) { + return xxlJobService.add(jobInfo); + } + + @RequestMapping("/update") + @ResponseBody + public ReturnT<String> update(XxlJobInfo jobInfo) { + return xxlJobService.update(jobInfo); + } + + @RequestMapping("/remove") + @ResponseBody + public ReturnT<String> remove(int id) { + return xxlJobService.remove(id); + } + + @RequestMapping("/stop") + @ResponseBody + public ReturnT<String> pause(int id) { + return xxlJobService.stop(id); + } + + @RequestMapping("/start") + @ResponseBody + public ReturnT<String> start(int id) { + return xxlJobService.start(id); + } + + @RequestMapping("/trigger") + @ResponseBody + //@PermissionLimit(limit = false) + public ReturnT<String> triggerJob(int id, String executorParam, String addressList) { + // force cover job param + if (executorParam == null) { + executorParam = ""; + } + + JobTriggerPoolHelper.trigger(id, TriggerTypeEnum.MANUAL, -1, null, executorParam, addressList); + return ReturnT.SUCCESS; + } + + @RequestMapping("/nextTriggerTime") + @ResponseBody + public ReturnT<List<String>> nextTriggerTime(String scheduleType, String scheduleConf) { + + XxlJobInfo paramXxlJobInfo = new XxlJobInfo(); + paramXxlJobInfo.setScheduleType(scheduleType); + paramXxlJobInfo.setScheduleConf(scheduleConf); + + List<String> result = new ArrayList<>(); + try { + Date lastTime = new Date(); + for (int i = 0; i < 5; i++) { + lastTime = JobScheduleHelper.generateNextValidTime(paramXxlJobInfo, lastTime); + if (lastTime != null) { + result.add(DateUtil.formatDateTime(lastTime)); + } else { + break; + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return new ReturnT<List<String>>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid")) + e.getMessage()); + } + return new ReturnT<List<String>>(result); + + } + } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java index c64049d..141b539 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java @@ -1,7 +1,7 @@ package com.xxl.job.admin.controller; -import com.xxl.job.admin.core.exception.XxlJobException; import com.xxl.job.admin.core.complete.XxlJobCompleter; +import com.xxl.job.admin.core.exception.XxlJobException; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -33,201 +33,202 @@ /** * index controller + * * @author xuxueli 2015-12-19 16:13:16 */ @Controller @RequestMapping("/joblog") public class JobLogController { - private static Logger logger = LoggerFactory.getLogger(JobLogController.class); + private static Logger logger = LoggerFactory.getLogger(JobLogController.class); - @Resource - private XxlJobGroupDao xxlJobGroupDao; - @Resource - public XxlJobInfoDao xxlJobInfoDao; - @Resource - public XxlJobLogDao xxlJobLogDao; + @Resource + private XxlJobGroupDao xxlJobGroupDao; + @Resource + public XxlJobInfoDao xxlJobInfoDao; + @Resource + public XxlJobLogDao xxlJobLogDao; - @RequestMapping - public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "0") Integer jobId) { + @RequestMapping + public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "0") Integer jobId) { - // 鎵ц鍣ㄥ垪琛� - List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll(); + // 鎵ц鍣ㄥ垪琛� + List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll(); - // filter group - List<XxlJobGroup> jobGroupList = JobInfoController.filterJobGroupByRole(request, jobGroupList_all); - if (jobGroupList==null || jobGroupList.size()==0) { - throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); - } + // filter group + List<XxlJobGroup> jobGroupList = JobInfoController.filterJobGroupByRole(request, jobGroupList_all); + if (jobGroupList == null || jobGroupList.size() == 0) { + throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); + } - model.addAttribute("JobGroupList", jobGroupList); + model.addAttribute("JobGroupList" , jobGroupList); - // 浠诲姟 - if (jobId > 0) { - XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId); - if (jobInfo == null) { - throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid")); - } + // 浠诲姟 + if (jobId > 0) { + XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId); + if (jobInfo == null) { + throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid")); + } - model.addAttribute("jobInfo", jobInfo); + model.addAttribute("jobInfo" , jobInfo); - // valid permission - JobInfoController.validPermission(request, jobInfo.getJobGroup()); - } + // valid permission + JobInfoController.validPermission(request, jobInfo.getJobGroup()); + } - return "joblog/joblog.index"; - } + return "joblog/joblog.index"; + } - @RequestMapping("/getJobsByGroup") - @ResponseBody - public ReturnT<List<XxlJobInfo>> getJobsByGroup(int jobGroup){ - List<XxlJobInfo> list = xxlJobInfoDao.getJobsByGroup(jobGroup); - return new ReturnT<List<XxlJobInfo>>(list); - } - - @RequestMapping("/pageList") - @ResponseBody - public Map<String, Object> pageList(HttpServletRequest request, - @RequestParam(required = false, defaultValue = "0") int start, - @RequestParam(required = false, defaultValue = "10") int length, - int jobGroup, int jobId, int logStatus, String filterTime) { + @RequestMapping("/getJobsByGroup") + @ResponseBody + public ReturnT<List<XxlJobInfo>> getJobsByGroup(int jobGroup) { + List<XxlJobInfo> list = xxlJobInfoDao.getJobsByGroup(jobGroup); + return new ReturnT<List<XxlJobInfo>>(list); + } - // valid permission - JobInfoController.validPermission(request, jobGroup); // 浠呯鐞嗗憳鏀寔鏌ヨ鍏ㄩ儴锛涙櫘閫氱敤鎴蜂粎鏀寔鏌ヨ鏈夋潈闄愮殑 jobGroup - - // parse param - Date triggerTimeStart = null; - Date triggerTimeEnd = null; - if (filterTime!=null && filterTime.trim().length()>0) { - String[] temp = filterTime.split(" - "); - if (temp.length == 2) { - triggerTimeStart = DateUtil.parseDateTime(temp[0]); - triggerTimeEnd = DateUtil.parseDateTime(temp[1]); - } - } - - // page query - List<XxlJobLog> list = xxlJobLogDao.pageList(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus); - int list_count = xxlJobLogDao.pageListCount(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus); - - // package result - Map<String, Object> maps = new HashMap<String, Object>(); - maps.put("recordsTotal", list_count); // 鎬昏褰曟暟 - maps.put("recordsFiltered", list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 - maps.put("data", list); // 鍒嗛〉鍒楄〃 - return maps; - } + @RequestMapping("/pageList") + @ResponseBody + public Map<String, Object> pageList(HttpServletRequest request, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length, + int jobGroup, int jobId, int logStatus, String filterTime) { - @RequestMapping("/logDetailPage") - public String logDetailPage(int id, Model model){ + // valid permission + JobInfoController.validPermission(request, jobGroup); // 浠呯鐞嗗憳鏀寔鏌ヨ鍏ㄩ儴锛涙櫘閫氱敤鎴蜂粎鏀寔鏌ヨ鏈夋潈闄愮殑 jobGroup - // base check - ReturnT<String> logStatue = ReturnT.SUCCESS; - XxlJobLog jobLog = xxlJobLogDao.load(id); - if (jobLog == null) { + // parse param + Date triggerTimeStart = null; + Date triggerTimeEnd = null; + if (filterTime != null && filterTime.trim().length() > 0) { + String[] temp = filterTime.split(" - "); + if (temp.length == 2) { + triggerTimeStart = DateUtil.parseDateTime(temp[0]); + triggerTimeEnd = DateUtil.parseDateTime(temp[1]); + } + } + + // page query + List<XxlJobLog> list = xxlJobLogDao.pageList(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus); + int list_count = xxlJobLogDao.pageListCount(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus); + + // package result + Map<String, Object> maps = new HashMap<String, Object>(); + maps.put("recordsTotal" , list_count); // 鎬昏褰曟暟 + maps.put("recordsFiltered" , list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 + maps.put("data" , list); // 鍒嗛〉鍒楄〃 + return maps; + } + + @RequestMapping("/logDetailPage") + public String logDetailPage(int id, Model model) { + + // base check + ReturnT<String> logStatue = ReturnT.SUCCESS; + XxlJobLog jobLog = xxlJobLogDao.load(id); + if (jobLog == null) { throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid")); - } + } - model.addAttribute("triggerCode", jobLog.getTriggerCode()); - model.addAttribute("handleCode", jobLog.getHandleCode()); - model.addAttribute("executorAddress", jobLog.getExecutorAddress()); - model.addAttribute("triggerTime", jobLog.getTriggerTime().getTime()); - model.addAttribute("logId", jobLog.getId()); - return "joblog/joblog.detail"; - } + model.addAttribute("triggerCode" , jobLog.getTriggerCode()); + model.addAttribute("handleCode" , jobLog.getHandleCode()); + model.addAttribute("executorAddress" , jobLog.getExecutorAddress()); + model.addAttribute("triggerTime" , jobLog.getTriggerTime().getTime()); + model.addAttribute("logId" , jobLog.getId()); + return "joblog/joblog.detail"; + } - @RequestMapping("/logDetailCat") - @ResponseBody - public ReturnT<LogResult> logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum){ - try { - ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress); - ReturnT<LogResult> logResult = executorBiz.log(new LogParam(triggerTime, logId, fromLineNum)); + @RequestMapping("/logDetailCat") + @ResponseBody + public ReturnT<LogResult> logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum) { + try { + ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress); + ReturnT<LogResult> logResult = executorBiz.log(new LogParam(triggerTime, logId, fromLineNum)); - // is end - if (logResult.getContent()!=null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) { + // is end + if (logResult.getContent() != null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) { XxlJobLog jobLog = xxlJobLogDao.load(logId); if (jobLog.getHandleCode() > 0) { logResult.getContent().setEnd(true); } } - return logResult; - } catch (Exception e) { - logger.error(e.getMessage(), e); - return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage()); - } - } + return logResult; + } catch (Exception e) { + logger.error(e.getMessage(), e); + return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage()); + } + } - @RequestMapping("/logKill") - @ResponseBody - public ReturnT<String> logKill(int id){ - // base check - XxlJobLog log = xxlJobLogDao.load(id); - XxlJobInfo jobInfo = xxlJobInfoDao.loadById(log.getJobId()); - if (jobInfo==null) { - return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid")); - } - if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) { - return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit")); - } + @RequestMapping("/logKill") + @ResponseBody + public ReturnT<String> logKill(int id) { + // base check + XxlJobLog log = xxlJobLogDao.load(id); + XxlJobInfo jobInfo = xxlJobInfoDao.loadById(log.getJobId()); + if (jobInfo == null) { + return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid")); + } + if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) { + return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit")); + } - // request of kill - ReturnT<String> runResult = null; - try { - ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress()); - runResult = executorBiz.kill(new KillParam(jobInfo.getId())); - } catch (Exception e) { - logger.error(e.getMessage(), e); - runResult = new ReturnT<String>(500, e.getMessage()); - } + // request of kill + ReturnT<String> runResult = null; + try { + ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress()); + runResult = executorBiz.kill(new KillParam(jobInfo.getId())); + } catch (Exception e) { + logger.error(e.getMessage(), e); + runResult = new ReturnT<String>(500, e.getMessage()); + } - if (ReturnT.SUCCESS_CODE == runResult.getCode()) { - log.setHandleCode(ReturnT.FAIL_CODE); - log.setHandleMsg( I18nUtil.getString("joblog_kill_log_byman")+":" + (runResult.getMsg()!=null?runResult.getMsg():"")); - log.setHandleTime(new Date()); - XxlJobCompleter.updateHandleInfoAndFinish(log); - return new ReturnT<String>(runResult.getMsg()); - } else { - return new ReturnT<String>(500, runResult.getMsg()); - } - } + if (ReturnT.SUCCESS_CODE == runResult.getCode()) { + log.setHandleCode(ReturnT.FAIL_CODE); + log.setHandleMsg(I18nUtil.getString("joblog_kill_log_byman") + ":" + (runResult.getMsg() != null ? runResult.getMsg() : "")); + log.setHandleTime(new Date()); + XxlJobCompleter.updateHandleInfoAndFinish(log); + return new ReturnT<String>(runResult.getMsg()); + } else { + return new ReturnT<String>(500, runResult.getMsg()); + } + } - @RequestMapping("/clearLog") - @ResponseBody - public ReturnT<String> clearLog(int jobGroup, int jobId, int type){ + @RequestMapping("/clearLog") + @ResponseBody + public ReturnT<String> clearLog(int jobGroup, int jobId, int type) { - Date clearBeforeTime = null; - int clearBeforeNum = 0; - if (type == 1) { - clearBeforeTime = DateUtil.addMonths(new Date(), -1); // 娓呯悊涓�涓湀涔嬪墠鏃ュ織鏁版嵁 - } else if (type == 2) { - clearBeforeTime = DateUtil.addMonths(new Date(), -3); // 娓呯悊涓変釜鏈堜箣鍓嶆棩蹇楁暟鎹� - } else if (type == 3) { - clearBeforeTime = DateUtil.addMonths(new Date(), -6); // 娓呯悊鍏釜鏈堜箣鍓嶆棩蹇楁暟鎹� - } else if (type == 4) { - clearBeforeTime = DateUtil.addYears(new Date(), -1); // 娓呯悊涓�骞翠箣鍓嶆棩蹇楁暟鎹� - } else if (type == 5) { - clearBeforeNum = 1000; // 娓呯悊涓�鍗冩潯浠ュ墠鏃ュ織鏁版嵁 - } else if (type == 6) { - clearBeforeNum = 10000; // 娓呯悊涓�涓囨潯浠ュ墠鏃ュ織鏁版嵁 - } else if (type == 7) { - clearBeforeNum = 30000; // 娓呯悊涓変竾鏉′互鍓嶆棩蹇楁暟鎹� - } else if (type == 8) { - clearBeforeNum = 100000; // 娓呯悊鍗佷竾鏉′互鍓嶆棩蹇楁暟鎹� - } else if (type == 9) { - clearBeforeNum = 0; // 娓呯悊鎵�鏈夋棩蹇楁暟鎹� - } else { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_clean_type_unvalid")); - } + Date clearBeforeTime = null; + int clearBeforeNum = 0; + if (type == 1) { + clearBeforeTime = DateUtil.addMonths(new Date(), -1); // 娓呯悊涓�涓湀涔嬪墠鏃ュ織鏁版嵁 + } else if (type == 2) { + clearBeforeTime = DateUtil.addMonths(new Date(), -3); // 娓呯悊涓変釜鏈堜箣鍓嶆棩蹇楁暟鎹� + } else if (type == 3) { + clearBeforeTime = DateUtil.addMonths(new Date(), -6); // 娓呯悊鍏釜鏈堜箣鍓嶆棩蹇楁暟鎹� + } else if (type == 4) { + clearBeforeTime = DateUtil.addYears(new Date(), -1); // 娓呯悊涓�骞翠箣鍓嶆棩蹇楁暟鎹� + } else if (type == 5) { + clearBeforeNum = 1000; // 娓呯悊涓�鍗冩潯浠ュ墠鏃ュ織鏁版嵁 + } else if (type == 6) { + clearBeforeNum = 10000; // 娓呯悊涓�涓囨潯浠ュ墠鏃ュ織鏁版嵁 + } else if (type == 7) { + clearBeforeNum = 30000; // 娓呯悊涓変竾鏉′互鍓嶆棩蹇楁暟鎹� + } else if (type == 8) { + clearBeforeNum = 100000; // 娓呯悊鍗佷竾鏉′互鍓嶆棩蹇楁暟鎹� + } else if (type == 9) { + clearBeforeNum = 0; // 娓呯悊鎵�鏈夋棩蹇楁暟鎹� + } else { + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_clean_type_unvalid")); + } - List<Long> logIds = null; - do { - logIds = xxlJobLogDao.findClearLogIds(jobGroup, jobId, clearBeforeTime, clearBeforeNum, 1000); - if (logIds!=null && logIds.size()>0) { - xxlJobLogDao.clearLog(logIds); - } - } while (logIds!=null && logIds.size()>0); + List<Long> logIds = null; + do { + logIds = xxlJobLogDao.findClearLogIds(jobGroup, jobId, clearBeforeTime, clearBeforeNum, 1000); + if (logIds != null && logIds.size() > 0) { + xxlJobLogDao.clearLog(logIds); + } + } while (logIds != null && logIds.size() > 0); - return ReturnT.SUCCESS; - } + return ReturnT.SUCCESS; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java index 3f4c755..b38e1b1 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java @@ -40,7 +40,7 @@ // 鎵ц鍣ㄥ垪琛� List<XxlJobGroup> groupList = xxlJobGroupDao.findAll(); - model.addAttribute("groupList", groupList); + model.addAttribute("groupList" , groupList); return "user/user.index"; } @@ -57,17 +57,17 @@ int list_count = xxlJobUserDao.pageListCount(start, length, username, role); // filter - if (list!=null && list.size()>0) { - for (XxlJobUser item: list) { + if (list != null && list.size() > 0) { + for (XxlJobUser item : list) { item.setPassword(null); } } // package result Map<String, Object> maps = new HashMap<String, Object>(); - maps.put("recordsTotal", list_count); // 鎬昏褰曟暟 - maps.put("recordsFiltered", list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 - maps.put("data", list); // 鍒嗛〉鍒楄〃 + maps.put("recordsTotal" , list_count); // 鎬昏褰曟暟 + maps.put("recordsFiltered" , list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 + maps.put("data" , list); // 鍒嗛〉鍒楄〃 return maps; } @@ -78,19 +78,19 @@ // valid username if (!StringUtils.hasText(xxlJobUser.getUsername())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_username") ); + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input") + I18nUtil.getString("user_username")); } xxlJobUser.setUsername(xxlJobUser.getUsername().trim()); - if (!(xxlJobUser.getUsername().length()>=4 && xxlJobUser.getUsername().length()<=20)) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" ); + if (!(xxlJobUser.getUsername().length() >= 4 && xxlJobUser.getUsername().length() <= 20)) { + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]"); } // valid password if (!StringUtils.hasText(xxlJobUser.getPassword())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_password") ); + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input") + I18nUtil.getString("user_password")); } xxlJobUser.setPassword(xxlJobUser.getPassword().trim()); - if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" ); + if (!(xxlJobUser.getPassword().length() >= 4 && xxlJobUser.getPassword().length() <= 20)) { + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]"); } // md5 password xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes())); @@ -98,7 +98,7 @@ // check repeat XxlJobUser existUser = xxlJobUserDao.loadByUserName(xxlJobUser.getUsername()); if (existUser != null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("user_username_repeat") ); + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("user_username_repeat")); } // write @@ -120,8 +120,8 @@ // valid password if (StringUtils.hasText(xxlJobUser.getPassword())) { xxlJobUser.setPassword(xxlJobUser.getPassword().trim()); - if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" ); + if (!(xxlJobUser.getPassword().length() >= 4 && xxlJobUser.getPassword().length() <= 20)) { + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]"); } // md5 password xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes())); @@ -151,15 +151,15 @@ @RequestMapping("/updatePwd") @ResponseBody - public ReturnT<String> updatePwd(HttpServletRequest request, String password){ + public ReturnT<String> updatePwd(HttpServletRequest request, String password) { // valid password - if (password==null || password.trim().length()==0){ + if (password == null || password.trim().length() == 0) { return new ReturnT<String>(ReturnT.FAIL.getCode(), "瀵嗙爜涓嶅彲涓虹┖"); } password = password.trim(); - if (!(password.length()>=4 && password.length()<=20)) { - return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" ); + if (!(password.length() >= 4 && password.length() <= 20)) { + return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]"); } // md5 password diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java index 379efd4..054d6ef 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java @@ -8,22 +8,23 @@ /** * 鏉冮檺闄愬埗 + * * @author xuxueli 2015-12-12 18:29:02 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface PermissionLimit { - - /** - * 鐧诲綍鎷︽埅 (榛樿鎷︽埅) - */ - boolean limit() default true; - /** - * 瑕佹眰绠$悊鍛樻潈闄� - * - * @return - */ - boolean adminuser() default false; + /** + * 鐧诲綍鎷︽埅 (榛樿鎷︽埅) + */ + boolean limit() default true; -} \ No newline at end of file + /** + * 瑕佹眰绠$悊鍛樻潈闄� + * + * @return + */ + boolean adminuser() default false; + +} diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java index e55b890..6714d1e 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java @@ -19,25 +19,25 @@ @Component public class CookieInterceptor implements AsyncHandlerInterceptor { - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, - ModelAndView modelAndView) throws Exception { + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, + ModelAndView modelAndView) throws Exception { - // cookie - if (modelAndView!=null && request.getCookies()!=null && request.getCookies().length>0) { - HashMap<String, Cookie> cookieMap = new HashMap<String, Cookie>(); - for (Cookie ck : request.getCookies()) { - cookieMap.put(ck.getName(), ck); - } - modelAndView.addObject("cookieMap", cookieMap); - } + // cookie + if (modelAndView != null && request.getCookies() != null && request.getCookies().length > 0) { + HashMap<String, Cookie> cookieMap = new HashMap<String, Cookie>(); + for (Cookie ck : request.getCookies()) { + cookieMap.put(ck.getName(), ck); + } + modelAndView.addObject("cookieMap" , cookieMap); + } - // static method - if (modelAndView != null) { - modelAndView.addObject("I18nUtil", FtlUtil.generateStaticModel(I18nUtil.class.getName())); - } + // static method + if (modelAndView != null) { + modelAndView.addObject("I18nUtil" , FtlUtil.generateStaticModel(I18nUtil.class.getName())); + } - AsyncHandlerInterceptor.super.postHandle(request, response, handler, modelAndView); - } + AsyncHandlerInterceptor.super.postHandle(request, response, handler, modelAndView); + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java index 19eac73..ecaeca0 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java @@ -20,40 +20,40 @@ @Component public class PermissionInterceptor implements AsyncHandlerInterceptor { - @Resource - private LoginService loginService; + @Resource + private LoginService loginService; - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!(handler instanceof HandlerMethod)) { - return AsyncHandlerInterceptor.super.preHandle(request, response, handler); - } + if (!(handler instanceof HandlerMethod)) { + return AsyncHandlerInterceptor.super.preHandle(request, response, handler); + } - // if need login - boolean needLogin = true; - boolean needAdminuser = false; - HandlerMethod method = (HandlerMethod)handler; - PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class); - if (permission!=null) { - needLogin = permission.limit(); - needAdminuser = permission.adminuser(); - } + // if need login + boolean needLogin = true; + boolean needAdminuser = false; + HandlerMethod method = (HandlerMethod) handler; + PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class); + if (permission != null) { + needLogin = permission.limit(); + needAdminuser = permission.adminuser(); + } - if (needLogin) { - XxlJobUser loginUser = loginService.ifLogin(request, response); - if (loginUser == null) { - response.setStatus(302); - response.setHeader("location", request.getContextPath()+"/toLogin"); - return false; - } - if (needAdminuser && loginUser.getRole()!=1) { - throw new RuntimeException(I18nUtil.getString("system_permission_limit")); - } - request.setAttribute(LoginService.LOGIN_IDENTITY_KEY, loginUser); - } + if (needLogin) { + XxlJobUser loginUser = loginService.ifLogin(request, response); + if (loginUser == null) { + response.setStatus(302); + response.setHeader("location" , request.getContextPath() + "/toLogin"); + return false; + } + if (needAdminuser && loginUser.getRole() != 1) { + throw new RuntimeException(I18nUtil.getString("system_permission_limit")); + } + request.setAttribute(LoginService.LOGIN_IDENTITY_KEY, loginUser); + } - return AsyncHandlerInterceptor.super.preHandle(request, response, handler); - } + return AsyncHandlerInterceptor.super.preHandle(request, response, handler); + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java index 114407b..4cd7f19 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java @@ -1,8 +1,8 @@ package com.xxl.job.admin.controller.resolver; import com.xxl.job.admin.core.exception.XxlJobException; -import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.admin.core.util.JacksonUtil; +import com.xxl.job.core.biz.model.ReturnT; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -22,45 +22,45 @@ */ @Component public class WebExceptionResolver implements HandlerExceptionResolver { - private static transient Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class); + private static transient Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class); - @Override - public ModelAndView resolveException(HttpServletRequest request, - HttpServletResponse response, Object handler, Exception ex) { + @Override + public ModelAndView resolveException(HttpServletRequest request, + HttpServletResponse response, Object handler, Exception ex) { - if (!(ex instanceof XxlJobException)) { - logger.error("WebExceptionResolver:{}", ex); - } + if (!(ex instanceof XxlJobException)) { + logger.error("WebExceptionResolver:{}" , ex); + } - // if json - boolean isJson = false; - if (handler instanceof HandlerMethod) { - HandlerMethod method = (HandlerMethod)handler; - ResponseBody responseBody = method.getMethodAnnotation(ResponseBody.class); - if (responseBody != null) { - isJson = true; - } - } + // if json + boolean isJson = false; + if (handler instanceof HandlerMethod) { + HandlerMethod method = (HandlerMethod) handler; + ResponseBody responseBody = method.getMethodAnnotation(ResponseBody.class); + if (responseBody != null) { + isJson = true; + } + } - // error result - ReturnT<String> errorResult = new ReturnT<String>(ReturnT.FAIL_CODE, ex.toString().replaceAll("\n", "<br/>")); + // error result + ReturnT<String> errorResult = new ReturnT<String>(ReturnT.FAIL_CODE, ex.toString().replaceAll("\n" , "<br/>")); - // response - ModelAndView mv = new ModelAndView(); - if (isJson) { - try { - response.setContentType("application/json;charset=utf-8"); - response.getWriter().print(JacksonUtil.writeValueAsString(errorResult)); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return mv; - } else { + // response + ModelAndView mv = new ModelAndView(); + if (isJson) { + try { + response.setContentType("application/json;charset=utf-8"); + response.getWriter().print(JacksonUtil.writeValueAsString(errorResult)); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + return mv; + } else { - mv.addObject("exceptionMsg", errorResult.getMsg()); - mv.setViewName("/common/common.exception"); - return mv; - } - } - -} \ No newline at end of file + mv.addObject("exceptionMsg" , errorResult.getMsg()); + mv.setViewName("/common/common.exception"); + return mv; + } + } + +} diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java index e47b6dc..d3d2914 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java @@ -8,230 +8,230 @@ * @author xuxueli 2016-1-12 18:25:49 */ public class XxlJobInfo { - - private int id; // 涓婚敭ID - - private int jobGroup; // 鎵ц鍣ㄤ富閿甀D - private String jobDesc; - - private Date addTime; - private Date updateTime; - - private String author; // 璐熻矗浜� - private String alarmEmail; // 鎶ヨ閭欢 - private String scheduleType; // 璋冨害绫诲瀷 - private String scheduleConf; // 璋冨害閰嶇疆锛屽�煎惈涔夊彇鍐充簬璋冨害绫诲瀷 - private String misfireStrategy; // 璋冨害杩囨湡绛栫暐 + private int id; // 涓婚敭ID - private String executorRouteStrategy; // 鎵ц鍣ㄨ矾鐢辩瓥鐣� - private String executorHandler; // 鎵ц鍣紝浠诲姟Handler鍚嶇О - private String executorParam; // 鎵ц鍣紝浠诲姟鍙傛暟 - private String executorBlockStrategy; // 闃诲澶勭悊绛栫暐 - private int executorTimeout; // 浠诲姟鎵ц瓒呮椂鏃堕棿锛屽崟浣嶇 - private int executorFailRetryCount; // 澶辫触閲嶈瘯娆℃暟 - - private String glueType; // GLUE绫诲瀷 #com.xxl.job.core.glue.GlueTypeEnum - private String glueSource; // GLUE婧愪唬鐮� - private String glueRemark; // GLUE澶囨敞 - private Date glueUpdatetime; // GLUE鏇存柊鏃堕棿 + private int jobGroup; // 鎵ц鍣ㄤ富閿甀D + private String jobDesc; - private String childJobId; // 瀛愪换鍔D锛屽涓�楀彿鍒嗛殧 + private Date addTime; + private Date updateTime; - private int triggerStatus; // 璋冨害鐘舵�侊細0-鍋滄锛�1-杩愯 - private long triggerLastTime; // 涓婃璋冨害鏃堕棿 - private long triggerNextTime; // 涓嬫璋冨害鏃堕棿 + private String author; // 璐熻矗浜� + private String alarmEmail; // 鎶ヨ閭欢 + + private String scheduleType; // 璋冨害绫诲瀷 + private String scheduleConf; // 璋冨害閰嶇疆锛屽�煎惈涔夊彇鍐充簬璋冨害绫诲瀷 + private String misfireStrategy; // 璋冨害杩囨湡绛栫暐 + + private String executorRouteStrategy; // 鎵ц鍣ㄨ矾鐢辩瓥鐣� + private String executorHandler; // 鎵ц鍣紝浠诲姟Handler鍚嶇О + private String executorParam; // 鎵ц鍣紝浠诲姟鍙傛暟 + private String executorBlockStrategy; // 闃诲澶勭悊绛栫暐 + private int executorTimeout; // 浠诲姟鎵ц瓒呮椂鏃堕棿锛屽崟浣嶇 + private int executorFailRetryCount; // 澶辫触閲嶈瘯娆℃暟 + + private String glueType; // GLUE绫诲瀷 #com.xxl.job.core.glue.GlueTypeEnum + private String glueSource; // GLUE婧愪唬鐮� + private String glueRemark; // GLUE澶囨敞 + private Date glueUpdatetime; // GLUE鏇存柊鏃堕棿 + + private String childJobId; // 瀛愪换鍔D锛屽涓�楀彿鍒嗛殧 + + private int triggerStatus; // 璋冨害鐘舵�侊細0-鍋滄锛�1-杩愯 + private long triggerLastTime; // 涓婃璋冨害鏃堕棿 + private long triggerNextTime; // 涓嬫璋冨害鏃堕棿 - public int getId() { - return id; - } + public int getId() { + return id; + } - public void setId(int id) { - this.id = id; - } + public void setId(int id) { + this.id = id; + } - public int getJobGroup() { - return jobGroup; - } + public int getJobGroup() { + return jobGroup; + } - public void setJobGroup(int jobGroup) { - this.jobGroup = jobGroup; - } + public void setJobGroup(int jobGroup) { + this.jobGroup = jobGroup; + } - public String getJobDesc() { - return jobDesc; - } + public String getJobDesc() { + return jobDesc; + } - public void setJobDesc(String jobDesc) { - this.jobDesc = jobDesc; - } + public void setJobDesc(String jobDesc) { + this.jobDesc = jobDesc; + } - public Date getAddTime() { - return addTime; - } + public Date getAddTime() { + return addTime; + } - public void setAddTime(Date addTime) { - this.addTime = addTime; - } + public void setAddTime(Date addTime) { + this.addTime = addTime; + } - public Date getUpdateTime() { - return updateTime; - } + public Date getUpdateTime() { + return updateTime; + } - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } - public String getAuthor() { - return author; - } + public String getAuthor() { + return author; + } - public void setAuthor(String author) { - this.author = author; - } + public void setAuthor(String author) { + this.author = author; + } - public String getAlarmEmail() { - return alarmEmail; - } + public String getAlarmEmail() { + return alarmEmail; + } - public void setAlarmEmail(String alarmEmail) { - this.alarmEmail = alarmEmail; - } + public void setAlarmEmail(String alarmEmail) { + this.alarmEmail = alarmEmail; + } - public String getScheduleType() { - return scheduleType; - } + public String getScheduleType() { + return scheduleType; + } - public void setScheduleType(String scheduleType) { - this.scheduleType = scheduleType; - } + public void setScheduleType(String scheduleType) { + this.scheduleType = scheduleType; + } - public String getScheduleConf() { - return scheduleConf; - } + public String getScheduleConf() { + return scheduleConf; + } - public void setScheduleConf(String scheduleConf) { - this.scheduleConf = scheduleConf; - } + public void setScheduleConf(String scheduleConf) { + this.scheduleConf = scheduleConf; + } - public String getMisfireStrategy() { - return misfireStrategy; - } + public String getMisfireStrategy() { + return misfireStrategy; + } - public void setMisfireStrategy(String misfireStrategy) { - this.misfireStrategy = misfireStrategy; - } + public void setMisfireStrategy(String misfireStrategy) { + this.misfireStrategy = misfireStrategy; + } - public String getExecutorRouteStrategy() { - return executorRouteStrategy; - } + public String getExecutorRouteStrategy() { + return executorRouteStrategy; + } - public void setExecutorRouteStrategy(String executorRouteStrategy) { - this.executorRouteStrategy = executorRouteStrategy; - } + public void setExecutorRouteStrategy(String executorRouteStrategy) { + this.executorRouteStrategy = executorRouteStrategy; + } - public String getExecutorHandler() { - return executorHandler; - } + public String getExecutorHandler() { + return executorHandler; + } - public void setExecutorHandler(String executorHandler) { - this.executorHandler = executorHandler; - } + public void setExecutorHandler(String executorHandler) { + this.executorHandler = executorHandler; + } - public String getExecutorParam() { - return executorParam; - } + public String getExecutorParam() { + return executorParam; + } - public void setExecutorParam(String executorParam) { - this.executorParam = executorParam; - } + public void setExecutorParam(String executorParam) { + this.executorParam = executorParam; + } - public String getExecutorBlockStrategy() { - return executorBlockStrategy; - } + public String getExecutorBlockStrategy() { + return executorBlockStrategy; + } - public void setExecutorBlockStrategy(String executorBlockStrategy) { - this.executorBlockStrategy = executorBlockStrategy; - } + public void setExecutorBlockStrategy(String executorBlockStrategy) { + this.executorBlockStrategy = executorBlockStrategy; + } - public int getExecutorTimeout() { - return executorTimeout; - } + public int getExecutorTimeout() { + return executorTimeout; + } - public void setExecutorTimeout(int executorTimeout) { - this.executorTimeout = executorTimeout; - } + public void setExecutorTimeout(int executorTimeout) { + this.executorTimeout = executorTimeout; + } - public int getExecutorFailRetryCount() { - return executorFailRetryCount; - } + public int getExecutorFailRetryCount() { + return executorFailRetryCount; + } - public void setExecutorFailRetryCount(int executorFailRetryCount) { - this.executorFailRetryCount = executorFailRetryCount; - } + public void setExecutorFailRetryCount(int executorFailRetryCount) { + this.executorFailRetryCount = executorFailRetryCount; + } - public String getGlueType() { - return glueType; - } + public String getGlueType() { + return glueType; + } - public void setGlueType(String glueType) { - this.glueType = glueType; - } + public void setGlueType(String glueType) { + this.glueType = glueType; + } - public String getGlueSource() { - return glueSource; - } + public String getGlueSource() { + return glueSource; + } - public void setGlueSource(String glueSource) { - this.glueSource = glueSource; - } + public void setGlueSource(String glueSource) { + this.glueSource = glueSource; + } - public String getGlueRemark() { - return glueRemark; - } + public String getGlueRemark() { + return glueRemark; + } - public void setGlueRemark(String glueRemark) { - this.glueRemark = glueRemark; - } + public void setGlueRemark(String glueRemark) { + this.glueRemark = glueRemark; + } - public Date getGlueUpdatetime() { - return glueUpdatetime; - } + public Date getGlueUpdatetime() { + return glueUpdatetime; + } - public void setGlueUpdatetime(Date glueUpdatetime) { - this.glueUpdatetime = glueUpdatetime; - } + public void setGlueUpdatetime(Date glueUpdatetime) { + this.glueUpdatetime = glueUpdatetime; + } - public String getChildJobId() { - return childJobId; - } + public String getChildJobId() { + return childJobId; + } - public void setChildJobId(String childJobId) { - this.childJobId = childJobId; - } + public void setChildJobId(String childJobId) { + this.childJobId = childJobId; + } - public int getTriggerStatus() { - return triggerStatus; - } + public int getTriggerStatus() { + return triggerStatus; + } - public void setTriggerStatus(int triggerStatus) { - this.triggerStatus = triggerStatus; - } + public void setTriggerStatus(int triggerStatus) { + this.triggerStatus = triggerStatus; + } - public long getTriggerLastTime() { - return triggerLastTime; - } + public long getTriggerLastTime() { + return triggerLastTime; + } - public void setTriggerLastTime(long triggerLastTime) { - this.triggerLastTime = triggerLastTime; - } + public void setTriggerLastTime(long triggerLastTime) { + this.triggerLastTime = triggerLastTime; + } - public long getTriggerNextTime() { - return triggerNextTime; - } + public long getTriggerNextTime() { + return triggerNextTime; + } - public void setTriggerNextTime(long triggerNextTime) { - this.triggerNextTime = triggerNextTime; - } + public void setTriggerNextTime(long triggerNextTime) { + this.triggerNextTime = triggerNextTime; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java index 7d3072a..f3301af 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java @@ -4,154 +4,155 @@ /** * xxl-job log, used to track trigger process + * * @author xuxueli 2015-12-19 23:19:09 */ public class XxlJobLog { - - private long id; - - // job info - private int jobGroup; - private int jobId; - // execute info - private String executorAddress; - private String executorHandler; - private String executorParam; - private String executorShardingParam; - private int executorFailRetryCount; - - // trigger info - private Date triggerTime; - private int triggerCode; - private String triggerMsg; - - // handle info - private Date handleTime; - private int handleCode; - private String handleMsg; + private long id; - // alarm info - private int alarmStatus; + // job info + private int jobGroup; + private int jobId; - public long getId() { - return id; - } + // execute info + private String executorAddress; + private String executorHandler; + private String executorParam; + private String executorShardingParam; + private int executorFailRetryCount; - public void setId(long id) { - this.id = id; - } + // trigger info + private Date triggerTime; + private int triggerCode; + private String triggerMsg; - public int getJobGroup() { - return jobGroup; - } + // handle info + private Date handleTime; + private int handleCode; + private String handleMsg; - public void setJobGroup(int jobGroup) { - this.jobGroup = jobGroup; - } + // alarm info + private int alarmStatus; - public int getJobId() { - return jobId; - } + public long getId() { + return id; + } - public void setJobId(int jobId) { - this.jobId = jobId; - } + public void setId(long id) { + this.id = id; + } - public String getExecutorAddress() { - return executorAddress; - } + public int getJobGroup() { + return jobGroup; + } - public void setExecutorAddress(String executorAddress) { - this.executorAddress = executorAddress; - } + public void setJobGroup(int jobGroup) { + this.jobGroup = jobGroup; + } - public String getExecutorHandler() { - return executorHandler; - } + public int getJobId() { + return jobId; + } - public void setExecutorHandler(String executorHandler) { - this.executorHandler = executorHandler; - } + public void setJobId(int jobId) { + this.jobId = jobId; + } - public String getExecutorParam() { - return executorParam; - } + public String getExecutorAddress() { + return executorAddress; + } - public void setExecutorParam(String executorParam) { - this.executorParam = executorParam; - } + public void setExecutorAddress(String executorAddress) { + this.executorAddress = executorAddress; + } - public String getExecutorShardingParam() { - return executorShardingParam; - } + public String getExecutorHandler() { + return executorHandler; + } - public void setExecutorShardingParam(String executorShardingParam) { - this.executorShardingParam = executorShardingParam; - } + public void setExecutorHandler(String executorHandler) { + this.executorHandler = executorHandler; + } - public int getExecutorFailRetryCount() { - return executorFailRetryCount; - } + public String getExecutorParam() { + return executorParam; + } - public void setExecutorFailRetryCount(int executorFailRetryCount) { - this.executorFailRetryCount = executorFailRetryCount; - } + public void setExecutorParam(String executorParam) { + this.executorParam = executorParam; + } - public Date getTriggerTime() { - return triggerTime; - } + public String getExecutorShardingParam() { + return executorShardingParam; + } - public void setTriggerTime(Date triggerTime) { - this.triggerTime = triggerTime; - } + public void setExecutorShardingParam(String executorShardingParam) { + this.executorShardingParam = executorShardingParam; + } - public int getTriggerCode() { - return triggerCode; - } + public int getExecutorFailRetryCount() { + return executorFailRetryCount; + } - public void setTriggerCode(int triggerCode) { - this.triggerCode = triggerCode; - } + public void setExecutorFailRetryCount(int executorFailRetryCount) { + this.executorFailRetryCount = executorFailRetryCount; + } - public String getTriggerMsg() { - return triggerMsg; - } + public Date getTriggerTime() { + return triggerTime; + } - public void setTriggerMsg(String triggerMsg) { - this.triggerMsg = triggerMsg; - } + public void setTriggerTime(Date triggerTime) { + this.triggerTime = triggerTime; + } - public Date getHandleTime() { - return handleTime; - } + public int getTriggerCode() { + return triggerCode; + } - public void setHandleTime(Date handleTime) { - this.handleTime = handleTime; - } + public void setTriggerCode(int triggerCode) { + this.triggerCode = triggerCode; + } - public int getHandleCode() { - return handleCode; - } + public String getTriggerMsg() { + return triggerMsg; + } - public void setHandleCode(int handleCode) { - this.handleCode = handleCode; - } + public void setTriggerMsg(String triggerMsg) { + this.triggerMsg = triggerMsg; + } - public String getHandleMsg() { - return handleMsg; - } + public Date getHandleTime() { + return handleTime; + } - public void setHandleMsg(String handleMsg) { - this.handleMsg = handleMsg; - } + public void setHandleTime(Date handleTime) { + this.handleTime = handleTime; + } - public int getAlarmStatus() { - return alarmStatus; - } + public int getHandleCode() { + return handleCode; + } - public void setAlarmStatus(int alarmStatus) { - this.alarmStatus = alarmStatus; - } + public void setHandleCode(int handleCode) { + this.handleCode = handleCode; + } + + public String getHandleMsg() { + return handleMsg; + } + + public void setHandleMsg(String handleMsg) { + this.handleMsg = handleMsg; + } + + public int getAlarmStatus() { + return alarmStatus; + } + + public void setAlarmStatus(int alarmStatus) { + this.alarmStatus = alarmStatus; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java index 2f59ffa..2da3c2d 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java @@ -4,72 +4,73 @@ /** * xxl-job log for glue, used to track job code process + * * @author xuxueli 2016-5-19 17:57:46 */ public class XxlJobLogGlue { - - private int id; - private int jobId; // 浠诲姟涓婚敭ID - private String glueType; // GLUE绫诲瀷 #com.xxl.job.core.glue.GlueTypeEnum - private String glueSource; - private String glueRemark; - private Date addTime; - private Date updateTime; - public int getId() { - return id; - } + private int id; + private int jobId; // 浠诲姟涓婚敭ID + private String glueType; // GLUE绫诲瀷 #com.xxl.job.core.glue.GlueTypeEnum + private String glueSource; + private String glueRemark; + private Date addTime; + private Date updateTime; - public void setId(int id) { - this.id = id; - } + public int getId() { + return id; + } - public int getJobId() { - return jobId; - } + public void setId(int id) { + this.id = id; + } - public void setJobId(int jobId) { - this.jobId = jobId; - } + public int getJobId() { + return jobId; + } - public String getGlueType() { - return glueType; - } + public void setJobId(int jobId) { + this.jobId = jobId; + } - public void setGlueType(String glueType) { - this.glueType = glueType; - } + public String getGlueType() { + return glueType; + } - public String getGlueSource() { - return glueSource; - } + public void setGlueType(String glueType) { + this.glueType = glueType; + } - public void setGlueSource(String glueSource) { - this.glueSource = glueSource; - } + public String getGlueSource() { + return glueSource; + } - public String getGlueRemark() { - return glueRemark; - } + public void setGlueSource(String glueSource) { + this.glueSource = glueSource; + } - public void setGlueRemark(String glueRemark) { - this.glueRemark = glueRemark; - } + public String getGlueRemark() { + return glueRemark; + } - public Date getAddTime() { - return addTime; - } + public void setGlueRemark(String glueRemark) { + this.glueRemark = glueRemark; + } - public void setAddTime(Date addTime) { - this.addTime = addTime; - } + public Date getAddTime() { + return addTime; + } - public Date getUpdateTime() { - return updateTime; - } + public void setAddTime(Date addTime) { + this.addTime = addTime; + } - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java index db17327..6f696df 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java @@ -6,68 +6,68 @@ * @author xuxueli 2019-05-04 16:43:12 */ public class XxlJobUser { - - private int id; - private String username; // 璐﹀彿 - private String password; // 瀵嗙爜 - private int role; // 瑙掕壊锛�0-鏅�氱敤鎴枫��1-绠$悊鍛� - private String permission; // 鏉冮檺锛氭墽琛屽櫒ID鍒楄〃锛屽涓�楀彿鍒嗗壊 - public int getId() { - return id; - } + private int id; + private String username; // 璐﹀彿 + private String password; // 瀵嗙爜 + private int role; // 瑙掕壊锛�0-鏅�氱敤鎴枫��1-绠$悊鍛� + private String permission; // 鏉冮檺锛氭墽琛屽櫒ID鍒楄〃锛屽涓�楀彿鍒嗗壊 - public void setId(int id) { - this.id = id; - } + public int getId() { + return id; + } - public String getUsername() { - return username; - } + public void setId(int id) { + this.id = id; + } - public void setUsername(String username) { - this.username = username; - } + public String getUsername() { + return username; + } - public String getPassword() { - return password; - } + public void setUsername(String username) { + this.username = username; + } - public void setPassword(String password) { - this.password = password; - } + public String getPassword() { + return password; + } - public int getRole() { - return role; - } + public void setPassword(String password) { + this.password = password; + } - public void setRole(int role) { - this.role = role; - } + public int getRole() { + return role; + } - public String getPermission() { - return permission; - } + public void setRole(int role) { + this.role = role; + } - public void setPermission(String permission) { - this.permission = permission; - } + public String getPermission() { + return permission; + } - // plugin - public boolean validPermission(int jobGroup){ - if (this.role == 1) { - return true; - } else { - if (StringUtils.hasText(this.permission)) { - for (String permissionItem : this.permission.split(",")) { - if (String.valueOf(jobGroup).equals(permissionItem)) { - return true; - } - } - } - return false; - } + public void setPermission(String permission) { + this.permission = permission; + } - } + // plugin + public boolean validPermission(int jobGroup) { + if (this.role == 1) { + return true; + } else { + if (StringUtils.hasText(this.permission)) { + for (String permissionItem : this.permission.split(",")) { + if (String.valueOf(jobGroup).equals(permissionItem)) { + return true; + } + } + } + return false; + } + + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java index 5698926..95542fd 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java @@ -20,83 +20,85 @@ * @author xuxueli 2015-9-1 18:05:56 */ public class JobCompleteHelper { - private static Logger logger = LoggerFactory.getLogger(JobCompleteHelper.class); - - private static JobCompleteHelper instance = new JobCompleteHelper(); - public static JobCompleteHelper getInstance(){ - return instance; - } + private static Logger logger = LoggerFactory.getLogger(JobCompleteHelper.class); - // ---------------------- monitor ---------------------- + private static JobCompleteHelper instance = new JobCompleteHelper(); - private ThreadPoolExecutor callbackThreadPool = null; - private Thread monitorThread; - private volatile boolean toStop = false; - public void start(){ + public static JobCompleteHelper getInstance() { + return instance; + } - // for callback - callbackThreadPool = new ThreadPoolExecutor( - 2, - 20, - 30L, - TimeUnit.SECONDS, - new LinkedBlockingQueue<Runnable>(3000), - new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - return new Thread(r, "xxl-job, admin JobLosedMonitorHelper-callbackThreadPool-" + r.hashCode()); - } - }, - new RejectedExecutionHandler() { - @Override - public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { - r.run(); - logger.warn(">>>>>>>>>>> xxl-job, callback too fast, match threadpool rejected handler(run now)."); - } - }); + // ---------------------- monitor ---------------------- + + private ThreadPoolExecutor callbackThreadPool = null; + private Thread monitorThread; + private volatile boolean toStop = false; + + public void start() { + + // for callback + callbackThreadPool = new ThreadPoolExecutor( + 2, + 20, + 30L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<Runnable>(3000), + new ThreadFactory() { + @Override + public Thread newThread(Runnable r) { + return new Thread(r, "xxl-job, admin JobLosedMonitorHelper-callbackThreadPool-" + r.hashCode()); + } + }, + new RejectedExecutionHandler() { + @Override + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { + r.run(); + logger.warn(">>>>>>>>>>> xxl-job, callback too fast, match threadpool rejected handler(run now)."); + } + }); - // for monitor - monitorThread = new Thread(new Runnable() { + // for monitor + monitorThread = new Thread(new Runnable() { - @Override - public void run() { + @Override + public void run() { - // wait for JobTriggerPoolHelper-init - try { - TimeUnit.MILLISECONDS.sleep(50); - } catch (InterruptedException e) { - if (!toStop) { - logger.error(e.getMessage(), e); - } - } + // wait for JobTriggerPoolHelper-init + try { + TimeUnit.MILLISECONDS.sleep(50); + } catch (InterruptedException e) { + if (!toStop) { + logger.error(e.getMessage(), e); + } + } - // monitor - while (!toStop) { - try { - // 浠诲姟缁撴灉涓㈠け澶勭悊锛氳皟搴﹁褰曞仠鐣欏湪 "杩愯涓�" 鐘舵�佽秴杩�10min锛屼笖瀵瑰簲鎵ц鍣ㄥ績璺虫敞鍐屽け璐ヤ笉鍦ㄧ嚎锛屽垯灏嗘湰鍦拌皟搴︿富鍔ㄦ爣璁板け璐ワ紱 - Date losedTime = DateUtil.addMinutes(new Date(), -10); - List<Long> losedJobIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findLostJobIds(losedTime); + // monitor + while (!toStop) { + try { + // 浠诲姟缁撴灉涓㈠け澶勭悊锛氳皟搴﹁褰曞仠鐣欏湪 "杩愯涓�" 鐘舵�佽秴杩�10min锛屼笖瀵瑰簲鎵ц鍣ㄥ績璺虫敞鍐屽け璐ヤ笉鍦ㄧ嚎锛屽垯灏嗘湰鍦拌皟搴︿富鍔ㄦ爣璁板け璐ワ紱 + Date losedTime = DateUtil.addMinutes(new Date(), -10); + List<Long> losedJobIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findLostJobIds(losedTime); - if (losedJobIds!=null && losedJobIds.size()>0) { - for (Long logId: losedJobIds) { + if (losedJobIds != null && losedJobIds.size() > 0) { + for (Long logId : losedJobIds) { - XxlJobLog jobLog = new XxlJobLog(); - jobLog.setId(logId); + XxlJobLog jobLog = new XxlJobLog(); + jobLog.setId(logId); - jobLog.setHandleTime(new Date()); - jobLog.setHandleCode(ReturnT.FAIL_CODE); - jobLog.setHandleMsg( I18nUtil.getString("joblog_lost_fail") ); + jobLog.setHandleTime(new Date()); + jobLog.setHandleCode(ReturnT.FAIL_CODE); + jobLog.setHandleMsg(I18nUtil.getString("joblog_lost_fail")); - XxlJobCompleter.updateHandleInfoAndFinish(jobLog); - } + XxlJobCompleter.updateHandleInfoAndFinish(jobLog); + } - } - } catch (Exception e) { - if (!toStop) { - logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}", e); - } - } + } + } catch (Exception e) { + if (!toStop) { + logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}" , e); + } + } try { TimeUnit.SECONDS.sleep(60); @@ -108,77 +110,76 @@ } - logger.info(">>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop"); + logger.info(">>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop"); - } - }); - monitorThread.setDaemon(true); - monitorThread.setName("xxl-job, admin JobLosedMonitorHelper"); - monitorThread.start(); - } + } + }); + monitorThread.setDaemon(true); + monitorThread.setName("xxl-job, admin JobLosedMonitorHelper"); + monitorThread.start(); + } - public void toStop(){ - toStop = true; + public void toStop() { + toStop = true; - // stop registryOrRemoveThreadPool - callbackThreadPool.shutdownNow(); + // stop registryOrRemoveThreadPool + callbackThreadPool.shutdownNow(); - // stop monitorThread (interrupt and wait) - monitorThread.interrupt(); - try { - monitorThread.join(); - } catch (InterruptedException e) { - logger.error(e.getMessage(), e); - } - } + // stop monitorThread (interrupt and wait) + monitorThread.interrupt(); + try { + monitorThread.join(); + } catch (InterruptedException e) { + logger.error(e.getMessage(), e); + } + } - // ---------------------- helper ---------------------- + // ---------------------- helper ---------------------- - public ReturnT<String> callback(List<HandleCallbackParam> callbackParamList) { + public ReturnT<String> callback(List<HandleCallbackParam> callbackParamList) { - callbackThreadPool.execute(new Runnable() { - @Override - public void run() { - for (HandleCallbackParam handleCallbackParam: callbackParamList) { - ReturnT<String> callbackResult = callback(handleCallbackParam); - logger.debug(">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}", - (callbackResult.getCode()== ReturnT.SUCCESS_CODE?"success":"fail"), handleCallbackParam, callbackResult); - } - } - }); + callbackThreadPool.execute(new Runnable() { + @Override + public void run() { + for (HandleCallbackParam handleCallbackParam : callbackParamList) { + ReturnT<String> callbackResult = callback(handleCallbackParam); + logger.debug(">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}" , + (callbackResult.getCode() == ReturnT.SUCCESS_CODE ? "success" : "fail"), handleCallbackParam, callbackResult); + } + } + }); - return ReturnT.SUCCESS; - } + return ReturnT.SUCCESS; + } - private ReturnT<String> callback(HandleCallbackParam handleCallbackParam) { - // valid log item - XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(handleCallbackParam.getLogId()); - if (log == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "log item not found."); - } - if (log.getHandleCode() > 0) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "log repeate callback."); // avoid repeat callback, trigger child job etc - } + private ReturnT<String> callback(HandleCallbackParam handleCallbackParam) { + // valid log item + XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(handleCallbackParam.getLogId()); + if (log == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "log item not found."); + } + if (log.getHandleCode() > 0) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "log repeate callback."); // avoid repeat callback, trigger child job etc + } - // handle msg - StringBuffer handleMsg = new StringBuffer(); - if (log.getHandleMsg()!=null) { - handleMsg.append(log.getHandleMsg()).append("<br>"); - } - if (handleCallbackParam.getHandleMsg() != null) { - handleMsg.append(handleCallbackParam.getHandleMsg()); - } + // handle msg + StringBuffer handleMsg = new StringBuffer(); + if (log.getHandleMsg() != null) { + handleMsg.append(log.getHandleMsg()).append("<br>"); + } + if (handleCallbackParam.getHandleMsg() != null) { + handleMsg.append(handleCallbackParam.getHandleMsg()); + } - // success, save log - log.setHandleTime(new Date()); - log.setHandleCode(handleCallbackParam.getHandleCode()); - log.setHandleMsg(handleMsg.toString()); - XxlJobCompleter.updateHandleInfoAndFinish(log); + // success, save log + log.setHandleTime(new Date()); + log.setHandleCode(handleCallbackParam.getHandleCode()); + log.setHandleMsg(handleMsg.toString()); + XxlJobCompleter.updateHandleInfoAndFinish(log); - return ReturnT.SUCCESS; - } - + return ReturnT.SUCCESS; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java index 33e4d25..82c315d 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java @@ -17,65 +17,67 @@ * @author xuxueli 2015-9-1 18:05:56 */ public class JobFailMonitorHelper { - private static Logger logger = LoggerFactory.getLogger(JobFailMonitorHelper.class); - - private static JobFailMonitorHelper instance = new JobFailMonitorHelper(); - public static JobFailMonitorHelper getInstance(){ - return instance; - } + private static Logger logger = LoggerFactory.getLogger(JobFailMonitorHelper.class); - // ---------------------- monitor ---------------------- + private static JobFailMonitorHelper instance = new JobFailMonitorHelper(); - private Thread monitorThread; - private volatile boolean toStop = false; - public void start(){ - monitorThread = new Thread(new Runnable() { + public static JobFailMonitorHelper getInstance() { + return instance; + } - @Override - public void run() { + // ---------------------- monitor ---------------------- - // monitor - while (!toStop) { - try { + private Thread monitorThread; + private volatile boolean toStop = false; - List<Long> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000); - if (failLogIds!=null && !failLogIds.isEmpty()) { - for (long failLogId: failLogIds) { + public void start() { + monitorThread = new Thread(new Runnable() { - // lock log - int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1); - if (lockRet < 1) { - continue; - } - XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(failLogId); - XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(log.getJobId()); + @Override + public void run() { - // 1銆乫ail retry monitor - if (log.getExecutorFailRetryCount() > 0) { - JobTriggerPoolHelper.trigger(log.getJobId(), TriggerTypeEnum.RETRY, (log.getExecutorFailRetryCount()-1), log.getExecutorShardingParam(), log.getExecutorParam(), null); - String retryMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_type_retry") +"<<<<<<<<<<< </span><br>"; - log.setTriggerMsg(log.getTriggerMsg() + retryMsg); - XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(log); - } + // monitor + while (!toStop) { + try { - // 2銆乫ail alarm monitor - int newAlarmStatus = 0; // 鍛婅鐘舵�侊細0-榛樿銆�-1=閿佸畾鐘舵�併��1-鏃犻渶鍛婅銆�2-鍛婅鎴愬姛銆�3-鍛婅澶辫触 - if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) { - boolean alarmResult = XxlJobAdminConfig.getAdminConfig().getJobAlarmer().alarm(info, log); - newAlarmStatus = alarmResult?2:3; - } else { - newAlarmStatus = 1; - } + List<Long> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000); + if (failLogIds != null && !failLogIds.isEmpty()) { + for (long failLogId : failLogIds) { - XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, -1, newAlarmStatus); - } - } + // lock log + int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1); + if (lockRet < 1) { + continue; + } + XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(failLogId); + XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(log.getJobId()); - } catch (Exception e) { - if (!toStop) { - logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}", e); - } - } + // 1銆乫ail retry monitor + if (log.getExecutorFailRetryCount() > 0) { + JobTriggerPoolHelper.trigger(log.getJobId(), TriggerTypeEnum.RETRY, (log.getExecutorFailRetryCount() - 1), log.getExecutorShardingParam(), log.getExecutorParam(), null); + String retryMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>" + I18nUtil.getString("jobconf_trigger_type_retry") + "<<<<<<<<<<< </span><br>"; + log.setTriggerMsg(log.getTriggerMsg() + retryMsg); + XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(log); + } + + // 2銆乫ail alarm monitor + int newAlarmStatus = 0; // 鍛婅鐘舵�侊細0-榛樿銆�-1=閿佸畾鐘舵�併��1-鏃犻渶鍛婅銆�2-鍛婅鎴愬姛銆�3-鍛婅澶辫触 + if (info != null && info.getAlarmEmail() != null && info.getAlarmEmail().trim().length() > 0) { + boolean alarmResult = XxlJobAdminConfig.getAdminConfig().getJobAlarmer().alarm(info, log); + newAlarmStatus = alarmResult ? 2 : 3; + } else { + newAlarmStatus = 1; + } + + XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, -1, newAlarmStatus); + } + } + + } catch (Exception e) { + if (!toStop) { + logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}" , e); + } + } try { TimeUnit.SECONDS.sleep(10); @@ -87,24 +89,24 @@ } - logger.info(">>>>>>>>>>> xxl-job, job fail monitor thread stop"); + logger.info(">>>>>>>>>>> xxl-job, job fail monitor thread stop"); - } - }); - monitorThread.setDaemon(true); - monitorThread.setName("xxl-job, admin JobFailMonitorHelper"); - monitorThread.start(); - } + } + }); + monitorThread.setDaemon(true); + monitorThread.setName("xxl-job, admin JobFailMonitorHelper"); + monitorThread.start(); + } - public void toStop(){ - toStop = true; - // interrupt and wait - monitorThread.interrupt(); - try { - monitorThread.join(); - } catch (InterruptedException e) { - logger.error(e.getMessage(), e); - } - } + public void toStop() { + toStop = true; + // interrupt and wait + monitorThread.interrupt(); + try { + monitorThread.join(); + } catch (InterruptedException e) { + logger.error(e.getMessage(), e); + } + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 37edfd9..a73fd7c 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -15,190 +15,192 @@ /** * job registry instance + * * @author xuxueli 2016-10-02 19:10:24 */ public class JobRegistryHelper { - private static Logger logger = LoggerFactory.getLogger(JobRegistryHelper.class); + private static Logger logger = LoggerFactory.getLogger(JobRegistryHelper.class); - private static JobRegistryHelper instance = new JobRegistryHelper(); - public static JobRegistryHelper getInstance(){ - return instance; - } + private static JobRegistryHelper instance = new JobRegistryHelper(); - private ThreadPoolExecutor registryOrRemoveThreadPool = null; - private Thread registryMonitorThread; - private volatile boolean toStop = false; + public static JobRegistryHelper getInstance() { + return instance; + } - public void start(){ + private ThreadPoolExecutor registryOrRemoveThreadPool = null; + private Thread registryMonitorThread; + private volatile boolean toStop = false; - // for registry or remove - registryOrRemoveThreadPool = new ThreadPoolExecutor( - 2, - 10, - 30L, - TimeUnit.SECONDS, - new LinkedBlockingQueue<Runnable>(2000), - new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - return new Thread(r, "xxl-job, admin JobRegistryMonitorHelper-registryOrRemoveThreadPool-" + r.hashCode()); - } - }, - new RejectedExecutionHandler() { - @Override - public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { - r.run(); - logger.warn(">>>>>>>>>>> xxl-job, registry or remove too fast, match threadpool rejected handler(run now)."); - } - }); + public void start() { - // for monitor - registryMonitorThread = new Thread(new Runnable() { - @Override - public void run() { - while (!toStop) { - try { - // auto registry group - List<XxlJobGroup> groupList = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().findByAddressType(0); - if (groupList!=null && !groupList.isEmpty()) { + // for registry or remove + registryOrRemoveThreadPool = new ThreadPoolExecutor( + 2, + 10, + 30L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<Runnable>(2000), + new ThreadFactory() { + @Override + public Thread newThread(Runnable r) { + return new Thread(r, "xxl-job, admin JobRegistryMonitorHelper-registryOrRemoveThreadPool-" + r.hashCode()); + } + }, + new RejectedExecutionHandler() { + @Override + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { + r.run(); + logger.warn(">>>>>>>>>>> xxl-job, registry or remove too fast, match threadpool rejected handler(run now)."); + } + }); - // remove dead address (admin/executor) - List<Integer> ids = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findDead(RegistryConfig.DEAD_TIMEOUT, new Date()); - if (ids!=null && ids.size()>0) { - XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().removeDead(ids); - } + // for monitor + registryMonitorThread = new Thread(new Runnable() { + @Override + public void run() { + while (!toStop) { + try { + // auto registry group + List<XxlJobGroup> groupList = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().findByAddressType(0); + if (groupList != null && !groupList.isEmpty()) { - // fresh online address (admin/executor) - HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>(); - List<XxlJobRegistry> list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); - if (list != null) { - for (XxlJobRegistry item: list) { - if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) { - String appname = item.getRegistryKey(); - List<String> registryList = appAddressMap.get(appname); - if (registryList == null) { - registryList = new ArrayList<String>(); - } + // remove dead address (admin/executor) + List<Integer> ids = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findDead(RegistryConfig.DEAD_TIMEOUT, new Date()); + if (ids != null && ids.size() > 0) { + XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().removeDead(ids); + } - if (!registryList.contains(item.getRegistryValue())) { - registryList.add(item.getRegistryValue()); - } - appAddressMap.put(appname, registryList); - } - } - } + // fresh online address (admin/executor) + HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>(); + List<XxlJobRegistry> list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); + if (list != null) { + for (XxlJobRegistry item : list) { + if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) { + String appname = item.getRegistryKey(); + List<String> registryList = appAddressMap.get(appname); + if (registryList == null) { + registryList = new ArrayList<String>(); + } - // fresh group address - for (XxlJobGroup group: groupList) { - List<String> registryList = appAddressMap.get(group.getAppname()); - String addressListStr = null; - if (registryList!=null && !registryList.isEmpty()) { - Collections.sort(registryList); - StringBuilder addressListSB = new StringBuilder(); - for (String item:registryList) { - addressListSB.append(item).append(","); - } - addressListStr = addressListSB.toString(); - addressListStr = addressListStr.substring(0, addressListStr.length()-1); - } - group.setAddressList(addressListStr); - group.setUpdateTime(new Date()); + if (!registryList.contains(item.getRegistryValue())) { + registryList.add(item.getRegistryValue()); + } + appAddressMap.put(appname, registryList); + } + } + } - XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().update(group); - } - } - } catch (Exception e) { - if (!toStop) { - logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}", e); - } - } - try { - TimeUnit.SECONDS.sleep(RegistryConfig.BEAT_TIMEOUT); - } catch (InterruptedException e) { - if (!toStop) { - logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}", e); - } - } - } - logger.info(">>>>>>>>>>> xxl-job, job registry monitor thread stop"); - } - }); - registryMonitorThread.setDaemon(true); - registryMonitorThread.setName("xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread"); - registryMonitorThread.start(); - } + // fresh group address + for (XxlJobGroup group : groupList) { + List<String> registryList = appAddressMap.get(group.getAppname()); + String addressListStr = null; + if (registryList != null && !registryList.isEmpty()) { + Collections.sort(registryList); + StringBuilder addressListSB = new StringBuilder(); + for (String item : registryList) { + addressListSB.append(item).append(","); + } + addressListStr = addressListSB.toString(); + addressListStr = addressListStr.substring(0, addressListStr.length() - 1); + } + group.setAddressList(addressListStr); + group.setUpdateTime(new Date()); - public void toStop(){ - toStop = true; + XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().update(group); + } + } + } catch (Exception e) { + if (!toStop) { + logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}" , e); + } + } + try { + TimeUnit.SECONDS.sleep(RegistryConfig.BEAT_TIMEOUT); + } catch (InterruptedException e) { + if (!toStop) { + logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}" , e); + } + } + } + logger.info(">>>>>>>>>>> xxl-job, job registry monitor thread stop"); + } + }); + registryMonitorThread.setDaemon(true); + registryMonitorThread.setName("xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread"); + registryMonitorThread.start(); + } - // stop registryOrRemoveThreadPool - registryOrRemoveThreadPool.shutdownNow(); + public void toStop() { + toStop = true; - // stop monitir (interrupt and wait) - registryMonitorThread.interrupt(); - try { - registryMonitorThread.join(); - } catch (InterruptedException e) { - logger.error(e.getMessage(), e); - } - } + // stop registryOrRemoveThreadPool + registryOrRemoveThreadPool.shutdownNow(); + + // stop monitir (interrupt and wait) + registryMonitorThread.interrupt(); + try { + registryMonitorThread.join(); + } catch (InterruptedException e) { + logger.error(e.getMessage(), e); + } + } - // ---------------------- helper ---------------------- + // ---------------------- helper ---------------------- - public ReturnT<String> registry(RegistryParam registryParam) { + public ReturnT<String> registry(RegistryParam registryParam) { - // valid - if (!StringUtils.hasText(registryParam.getRegistryGroup()) - || !StringUtils.hasText(registryParam.getRegistryKey()) - || !StringUtils.hasText(registryParam.getRegistryValue())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument."); - } + // valid + if (!StringUtils.hasText(registryParam.getRegistryGroup()) + || !StringUtils.hasText(registryParam.getRegistryKey()) + || !StringUtils.hasText(registryParam.getRegistryValue())) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument."); + } - // async execute - registryOrRemoveThreadPool.execute(new Runnable() { - @Override - public void run() { - int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryUpdate(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date()); - if (ret < 1) { - XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registrySave(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date()); + // async execute + registryOrRemoveThreadPool.execute(new Runnable() { + @Override + public void run() { + int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryUpdate(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date()); + if (ret < 1) { + XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registrySave(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date()); - // fresh - freshGroupRegistryInfo(registryParam); - } - } - }); + // fresh + freshGroupRegistryInfo(registryParam); + } + } + }); - return ReturnT.SUCCESS; - } + return ReturnT.SUCCESS; + } - public ReturnT<String> registryRemove(RegistryParam registryParam) { + public ReturnT<String> registryRemove(RegistryParam registryParam) { - // valid - if (!StringUtils.hasText(registryParam.getRegistryGroup()) - || !StringUtils.hasText(registryParam.getRegistryKey()) - || !StringUtils.hasText(registryParam.getRegistryValue())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument."); - } + // valid + if (!StringUtils.hasText(registryParam.getRegistryGroup()) + || !StringUtils.hasText(registryParam.getRegistryKey()) + || !StringUtils.hasText(registryParam.getRegistryValue())) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument."); + } - // async execute - registryOrRemoveThreadPool.execute(new Runnable() { - @Override - public void run() { - int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryDelete(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue()); - if (ret > 0) { - // fresh - freshGroupRegistryInfo(registryParam); - } - } - }); + // async execute + registryOrRemoveThreadPool.execute(new Runnable() { + @Override + public void run() { + int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryDelete(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue()); + if (ret > 0) { + // fresh + freshGroupRegistryInfo(registryParam); + } + } + }); - return ReturnT.SUCCESS; - } + return ReturnT.SUCCESS; + } - private void freshGroupRegistryInfo(RegistryParam registryParam){ - // Under consideration, prevent affecting core tables - } + private void freshGroupRegistryInfo(RegistryParam registryParam) { + // Under consideration, prevent affecting core tables + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java index 398713d..775b916 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java @@ -24,32 +24,32 @@ private ThreadPoolExecutor fastTriggerPool = null; private ThreadPoolExecutor slowTriggerPool = null; - public void start(){ + public void start() { fastTriggerPool = new ThreadPoolExecutor( - 10, - XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(), - 60L, - TimeUnit.SECONDS, - new LinkedBlockingQueue<Runnable>(1000), - new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode()); - } - }); + 10, + XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(), + 60L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<Runnable>(1000), + new ThreadFactory() { + @Override + public Thread newThread(Runnable r) { + return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode()); + } + }); slowTriggerPool = new ThreadPoolExecutor( - 10, - XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(), - 60L, - TimeUnit.SECONDS, - new LinkedBlockingQueue<Runnable>(2000), - new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode()); - } - }); + 10, + XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(), + 60L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<Runnable>(2000), + new ThreadFactory() { + @Override + public Thread newThread(Runnable r) { + return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode()); + } + }); } @@ -62,7 +62,7 @@ // job timeout count - private volatile long minTim = System.currentTimeMillis()/60000; // ms > min + private volatile long minTim = System.currentTimeMillis() / 60000; // ms > min private volatile ConcurrentMap<Integer, AtomicInteger> jobTimeoutCountMap = new ConcurrentHashMap<>(); @@ -79,7 +79,7 @@ // choose thread pool ThreadPoolExecutor triggerPool_ = fastTriggerPool; AtomicInteger jobTimeoutCount = jobTimeoutCountMap.get(jobId); - if (jobTimeoutCount!=null && jobTimeoutCount.get() > 10) { // job-timeout 10 times in 1 min + if (jobTimeoutCount != null && jobTimeoutCount.get() > 10) { // job-timeout 10 times in 1 min triggerPool_ = slowTriggerPool; } @@ -98,14 +98,14 @@ } finally { // check timeout-count-map - long minTim_now = System.currentTimeMillis()/60000; + long minTim_now = System.currentTimeMillis() / 60000; if (minTim != minTim_now) { minTim = minTim_now; jobTimeoutCountMap.clear(); } // incr timeout-count-map - long cost = System.currentTimeMillis()-start; + long cost = System.currentTimeMillis() - start; if (cost > 500) { // ob-timeout threshold 500ms AtomicInteger timeoutCount = jobTimeoutCountMap.putIfAbsent(jobId, new AtomicInteger(1)); if (timeoutCount != null) { @@ -120,7 +120,6 @@ } - // ---------------------- helper ---------------------- private static JobTriggerPoolHelper helper = new JobTriggerPoolHelper(); @@ -128,6 +127,7 @@ public static void toStart() { helper.start(); } + public static void toStop() { helper.stop(); } @@ -135,13 +135,11 @@ /** * @param jobId * @param triggerType - * @param failRetryCount - * >=0: use this param - * <0: use param from job info config + * @param failRetryCount >=0: use this param + * <0: use param from job info config * @param executorShardingParam - * @param executorParam - * null: use job param - * not null: cover job param + * @param executorParam null: use job param + * not null: cover job param */ public static void trigger(int jobId, TriggerTypeEnum triggerType, int failRetryCount, String executorShardingParam, String executorParam, String addressList) { helper.addTrigger(jobId, triggerType, failRetryCount, executorShardingParam, executorParam, addressList); diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java index a1523aa..297e97a 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java @@ -11,88 +11,88 @@ */ public class CookieUtil { - // 榛樿缂撳瓨鏃堕棿,鍗曚綅/绉�, 2H - private static final int COOKIE_MAX_AGE = Integer.MAX_VALUE; - // 淇濆瓨璺緞,鏍硅矾寰� - private static final String COOKIE_PATH = "/"; - - /** - * 淇濆瓨 - * - * @param response - * @param key - * @param value - * @param ifRemember - */ - public static void set(HttpServletResponse response, String key, String value, boolean ifRemember) { - int age = ifRemember?COOKIE_MAX_AGE:-1; - set(response, key, value, null, COOKIE_PATH, age, true); - } + // 榛樿缂撳瓨鏃堕棿,鍗曚綅/绉�, 2H + private static final int COOKIE_MAX_AGE = Integer.MAX_VALUE; + // 淇濆瓨璺緞,鏍硅矾寰� + private static final String COOKIE_PATH = "/"; - /** - * 淇濆瓨 - * - * @param response - * @param key - * @param value - * @param maxAge - */ - private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) { - Cookie cookie = new Cookie(key, value); - if (domain != null) { - cookie.setDomain(domain); - } - cookie.setPath(path); - cookie.setMaxAge(maxAge); - cookie.setHttpOnly(isHttpOnly); - response.addCookie(cookie); - } - - /** - * 鏌ヨvalue - * - * @param request - * @param key - * @return - */ - public static String getValue(HttpServletRequest request, String key) { - Cookie cookie = get(request, key); - if (cookie != null) { - return cookie.getValue(); - } - return null; - } + /** + * 淇濆瓨 + * + * @param response + * @param key + * @param value + * @param ifRemember + */ + public static void set(HttpServletResponse response, String key, String value, boolean ifRemember) { + int age = ifRemember ? COOKIE_MAX_AGE : -1; + set(response, key, value, null, COOKIE_PATH, age, true); + } - /** - * 鏌ヨCookie - * - * @param request - * @param key - */ - private static Cookie get(HttpServletRequest request, String key) { - Cookie[] arr_cookie = request.getCookies(); - if (arr_cookie != null && arr_cookie.length > 0) { - for (Cookie cookie : arr_cookie) { - if (cookie.getName().equals(key)) { - return cookie; - } - } - } - return null; - } - - /** - * 鍒犻櫎Cookie - * - * @param request - * @param response - * @param key - */ - public static void remove(HttpServletRequest request, HttpServletResponse response, String key) { - Cookie cookie = get(request, key); - if (cookie != null) { - set(response, key, "", null, COOKIE_PATH, 0, true); - } - } + /** + * 淇濆瓨 + * + * @param response + * @param key + * @param value + * @param maxAge + */ + private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) { + Cookie cookie = new Cookie(key, value); + if (domain != null) { + cookie.setDomain(domain); + } + cookie.setPath(path); + cookie.setMaxAge(maxAge); + cookie.setHttpOnly(isHttpOnly); + response.addCookie(cookie); + } -} \ No newline at end of file + /** + * 鏌ヨvalue + * + * @param request + * @param key + * @return + */ + public static String getValue(HttpServletRequest request, String key) { + Cookie cookie = get(request, key); + if (cookie != null) { + return cookie.getValue(); + } + return null; + } + + /** + * 鏌ヨCookie + * + * @param request + * @param key + */ + private static Cookie get(HttpServletRequest request, String key) { + Cookie[] arr_cookie = request.getCookies(); + if (arr_cookie != null && arr_cookie.length > 0) { + for (Cookie cookie : arr_cookie) { + if (cookie.getName().equals(key)) { + return cookie; + } + } + } + return null; + } + + /** + * 鍒犻櫎Cookie + * + * @param request + * @param response + * @param key + */ + public static void remove(HttpServletRequest request, HttpServletResponse response, String key) { + Cookie cookie = get(request, key); + if (cookie != null) { + set(response, key, "" , null, COOKIE_PATH, 0, true); + } + } + +} diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java index 4f4ea3c..a755956 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java @@ -12,81 +12,82 @@ /** * Jackson util - * + * <p> * 1銆乷bj need private and set/get锛� * 2銆乨o not support inner class锛� - * + * * @author xuxueli 2015-9-25 18:02:56 */ public class JacksonUtil { - private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class); + private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class); private final static ObjectMapper objectMapper = new ObjectMapper(); + public static ObjectMapper getInstance() { return objectMapper; } /** * bean銆乤rray銆丩ist銆丮ap --> json - * + * * @param obj * @return json string * @throws Exception */ public static String writeValueAsString(Object obj) { - try { - return getInstance().writeValueAsString(obj); - } catch (JsonGenerationException e) { - logger.error(e.getMessage(), e); - } catch (JsonMappingException e) { - logger.error(e.getMessage(), e); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } + try { + return getInstance().writeValueAsString(obj); + } catch (JsonGenerationException e) { + logger.error(e.getMessage(), e); + } catch (JsonMappingException e) { + logger.error(e.getMessage(), e); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } return null; } /** * string --> bean銆丮ap銆丩ist(array) - * + * * @param jsonStr * @param clazz * @return obj * @throws Exception */ public static <T> T readValue(String jsonStr, Class<T> clazz) { - try { - return getInstance().readValue(jsonStr, clazz); - } catch (JsonParseException e) { - logger.error(e.getMessage(), e); - } catch (JsonMappingException e) { - logger.error(e.getMessage(), e); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return null; + try { + return getInstance().readValue(jsonStr, clazz); + } catch (JsonParseException e) { + logger.error(e.getMessage(), e); + } catch (JsonMappingException e) { + logger.error(e.getMessage(), e); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + return null; } - /** - * string --> List<Bean>... - * - * @param jsonStr - * @param parametrized - * @param parameterClasses - * @param <T> - * @return - */ - public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) { - try { - JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses); - return getInstance().readValue(jsonStr, javaType); - } catch (JsonParseException e) { - logger.error(e.getMessage(), e); - } catch (JsonMappingException e) { - logger.error(e.getMessage(), e); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return null; - } + /** + * string --> List<Bean>... + * + * @param jsonStr + * @param parametrized + * @param parameterClasses + * @param <T> + * @return + */ + public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) { + try { + JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses); + return getInstance().readValue(jsonStr, javaType); + } catch (JsonParseException e) { + logger.error(e.getMessage(), e); + } catch (JsonMappingException e) { + logger.error(e.getMessage(), e); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + return null; + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java index d640eff..e01dd11 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java @@ -9,41 +9,43 @@ /** * job info + * * @author xuxueli 2016-1-12 18:03:45 */ @Mapper public interface XxlJobInfoDao { - public List<XxlJobInfo> pageList(@Param("offset") int offset, - @Param("pagesize") int pagesize, - @Param("jobGroup") int jobGroup, - @Param("triggerStatus") int triggerStatus, - @Param("jobDesc") String jobDesc, - @Param("executorHandler") String executorHandler, - @Param("author") String author); - public int pageListCount(@Param("offset") int offset, - @Param("pagesize") int pagesize, - @Param("jobGroup") int jobGroup, - @Param("triggerStatus") int triggerStatus, - @Param("jobDesc") String jobDesc, - @Param("executorHandler") String executorHandler, - @Param("author") String author); - - public int save(XxlJobInfo info); + public List<XxlJobInfo> pageList(@Param("offset") int offset, + @Param("pagesize") int pagesize, + @Param("jobGroup") int jobGroup, + @Param("triggerStatus") int triggerStatus, + @Param("jobDesc") String jobDesc, + @Param("executorHandler") String executorHandler, + @Param("author") String author); - public XxlJobInfo loadById(@Param("id") int id); - - public int update(XxlJobInfo xxlJobInfo); - - public int delete(@Param("id") long id); + public int pageListCount(@Param("offset") int offset, + @Param("pagesize") int pagesize, + @Param("jobGroup") int jobGroup, + @Param("triggerStatus") int triggerStatus, + @Param("jobDesc") String jobDesc, + @Param("executorHandler") String executorHandler, + @Param("author") String author); - public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup); + public int save(XxlJobInfo info); - public int findAllCount(); + public XxlJobInfo loadById(@Param("id") int id); - public List<XxlJobInfo> scheduleJobQuery(@Param("maxNextTime") long maxNextTime, @Param("pagesize") int pagesize ); + public int update(XxlJobInfo xxlJobInfo); - public int scheduleUpdate(XxlJobInfo xxlJobInfo); + public int delete(@Param("id") long id); + + public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup); + + public int findAllCount(); + + public List<XxlJobInfo> scheduleJobQuery(@Param("maxNextTime") long maxNextTime, @Param("pagesize") int pagesize); + + public int scheduleUpdate(XxlJobInfo xxlJobInfo); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java index 62fa3b4..7beaf75 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java @@ -10,53 +10,56 @@ /** * job log + * * @author xuxueli 2016-1-12 18:03:06 */ @Mapper public interface XxlJobLogDao { - // exist jobId not use jobGroup, not exist use jobGroup - public List<XxlJobLog> pageList(@Param("offset") int offset, - @Param("pagesize") int pagesize, - @Param("jobGroup") int jobGroup, - @Param("jobId") int jobId, - @Param("triggerTimeStart") Date triggerTimeStart, - @Param("triggerTimeEnd") Date triggerTimeEnd, - @Param("logStatus") int logStatus); - public int pageListCount(@Param("offset") int offset, - @Param("pagesize") int pagesize, - @Param("jobGroup") int jobGroup, - @Param("jobId") int jobId, - @Param("triggerTimeStart") Date triggerTimeStart, - @Param("triggerTimeEnd") Date triggerTimeEnd, - @Param("logStatus") int logStatus); - - public XxlJobLog load(@Param("id") long id); + // exist jobId not use jobGroup, not exist use jobGroup + public List<XxlJobLog> pageList(@Param("offset") int offset, + @Param("pagesize") int pagesize, + @Param("jobGroup") int jobGroup, + @Param("jobId") int jobId, + @Param("triggerTimeStart") Date triggerTimeStart, + @Param("triggerTimeEnd") Date triggerTimeEnd, + @Param("logStatus") int logStatus); - public long save(XxlJobLog xxlJobLog); + public int pageListCount(@Param("offset") int offset, + @Param("pagesize") int pagesize, + @Param("jobGroup") int jobGroup, + @Param("jobId") int jobId, + @Param("triggerTimeStart") Date triggerTimeStart, + @Param("triggerTimeEnd") Date triggerTimeEnd, + @Param("logStatus") int logStatus); - public int updateTriggerInfo(XxlJobLog xxlJobLog); + public XxlJobLog load(@Param("id") long id); - public int updateHandleInfo(XxlJobLog xxlJobLog); - - public int delete(@Param("jobId") int jobId); + public long save(XxlJobLog xxlJobLog); - public Map<String, Object> findLogReport(@Param("from") Date from, - @Param("to") Date to); + public int updateTriggerInfo(XxlJobLog xxlJobLog); - public List<Long> findClearLogIds(@Param("jobGroup") int jobGroup, - @Param("jobId") int jobId, - @Param("clearBeforeTime") Date clearBeforeTime, - @Param("clearBeforeNum") int clearBeforeNum, - @Param("pagesize") int pagesize); - public int clearLog(@Param("logIds") List<Long> logIds); + public int updateHandleInfo(XxlJobLog xxlJobLog); - public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize); + public int delete(@Param("jobId") int jobId); - public int updateAlarmStatus(@Param("logId") long logId, - @Param("oldAlarmStatus") int oldAlarmStatus, - @Param("newAlarmStatus") int newAlarmStatus); + public Map<String, Object> findLogReport(@Param("from") Date from, + @Param("to") Date to); - public List<Long> findLostJobIds(@Param("losedTime") Date losedTime); + public List<Long> findClearLogIds(@Param("jobGroup") int jobGroup, + @Param("jobId") int jobId, + @Param("clearBeforeTime") Date clearBeforeTime, + @Param("clearBeforeNum") int clearBeforeNum, + @Param("pagesize") int pagesize); + + public int clearLog(@Param("logIds") List<Long> logIds); + + public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize); + + public int updateAlarmStatus(@Param("logId") long logId, + @Param("oldAlarmStatus") int oldAlarmStatus, + @Param("newAlarmStatus") int newAlarmStatus); + + public List<Long> findLostJobIds(@Param("losedTime") Date losedTime); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java index 3028aed..8b2b414 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java @@ -8,17 +8,18 @@ /** * job log for glue + * * @author xuxueli 2016-5-19 18:04:56 */ @Mapper public interface XxlJobLogGlueDao { - - public int save(XxlJobLogGlue xxlJobLogGlue); - - public List<XxlJobLogGlue> findByJobId(@Param("jobId") int jobId); - public int removeOld(@Param("jobId") int jobId, @Param("limit") int limit); + public int save(XxlJobLogGlue xxlJobLogGlue); - public int deleteByJobId(@Param("jobId") int jobId); - + public List<XxlJobLogGlue> findByJobId(@Param("jobId") int jobId); + + public int removeOld(@Param("jobId") int jobId, @Param("limit") int limit); + + public int deleteByJobId(@Param("jobId") int jobId); + } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java index f4b3dc8..d4e0381 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java @@ -9,18 +9,19 @@ /** * job log + * * @author xuxueli 2019-11-22 */ @Mapper public interface XxlJobLogReportDao { - public int save(XxlJobLogReport xxlJobLogReport); + public int save(XxlJobLogReport xxlJobLogReport); - public int update(XxlJobLogReport xxlJobLogReport); + public int update(XxlJobLogReport xxlJobLogReport); - public List<XxlJobLogReport> queryLogReport(@Param("triggerDayFrom") Date triggerDayFrom, - @Param("triggerDayTo") Date triggerDayTo); + public List<XxlJobLogReport> queryLogReport(@Param("triggerDayFrom") Date triggerDayFrom, + @Param("triggerDayTo") Date triggerDayTo); - public XxlJobLogReport queryLogReportTotal(); + public XxlJobLogReport queryLogReportTotal(); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java index e840494..064ce19 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java @@ -3,6 +3,7 @@ import com.xxl.job.admin.core.model.XxlJobUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + import java.util.List; /** @@ -11,21 +12,22 @@ @Mapper public interface XxlJobUserDao { - public List<XxlJobUser> pageList(@Param("offset") int offset, + public List<XxlJobUser> pageList(@Param("offset") int offset, @Param("pagesize") int pagesize, @Param("username") String username, - @Param("role") int role); - public int pageListCount(@Param("offset") int offset, - @Param("pagesize") int pagesize, - @Param("username") String username, - @Param("role") int role); + @Param("role") int role); - public XxlJobUser loadByUserName(@Param("username") String username); + public int pageListCount(@Param("offset") int offset, + @Param("pagesize") int pagesize, + @Param("username") String username, + @Param("role") int role); - public int save(XxlJobUser xxlJobUser); + public XxlJobUser loadByUserName(@Param("username") String username); - public int update(XxlJobUser xxlJobUser); - - public int delete(@Param("id") int id); + public int save(XxlJobUser xxlJobUser); + + public int update(XxlJobUser xxlJobUser); + + public int delete(@Param("id") int id); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java index 61da3a2..43c2eff 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java @@ -9,78 +9,79 @@ /** * core job action for xxl-job - * + * * @author xuxueli 2016-5-28 15:30:33 */ public interface XxlJobService { - /** - * page list - * - * @param start - * @param length - * @param jobGroup - * @param jobDesc - * @param executorHandler - * @param author - * @return - */ - public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author); + /** + * page list + * + * @param start + * @param length + * @param jobGroup + * @param jobDesc + * @param executorHandler + * @param author + * @return + */ + public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author); - /** - * add job - * - * @param jobInfo - * @return - */ - public ReturnT<String> add(XxlJobInfo jobInfo); + /** + * add job + * + * @param jobInfo + * @return + */ + public ReturnT<String> add(XxlJobInfo jobInfo); - /** - * update job - * - * @param jobInfo - * @return - */ - public ReturnT<String> update(XxlJobInfo jobInfo); + /** + * update job + * + * @param jobInfo + * @return + */ + public ReturnT<String> update(XxlJobInfo jobInfo); - /** - * remove job - * * - * @param id - * @return - */ - public ReturnT<String> remove(int id); + /** + * remove job + * * + * + * @param id + * @return + */ + public ReturnT<String> remove(int id); - /** - * start job - * - * @param id - * @return - */ - public ReturnT<String> start(int id); + /** + * start job + * + * @param id + * @return + */ + public ReturnT<String> start(int id); - /** - * stop job - * - * @param id - * @return - */ - public ReturnT<String> stop(int id); + /** + * stop job + * + * @param id + * @return + */ + public ReturnT<String> stop(int id); - /** - * dashboard info - * - * @return - */ - public Map<String,Object> dashboardInfo(); + /** + * dashboard info + * + * @return + */ + public Map<String, Object> dashboardInfo(); - /** - * chart info - * - * @param startDate - * @param endDate - * @return - */ - public ReturnT<Map<String,Object>> chartInfo(Date startDate, Date endDate); + /** + * chart info + * + * @param startDate + * @param endDate + * @return + */ + public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate); } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 530ee41..f8f0b43 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -25,410 +25,411 @@ /** * core job action for xxl-job + * * @author xuxueli 2016-5-28 15:30:33 */ @Service public class XxlJobServiceImpl implements XxlJobService { - private static Logger logger = LoggerFactory.getLogger(XxlJobServiceImpl.class); + private static Logger logger = LoggerFactory.getLogger(XxlJobServiceImpl.class); - @Resource - private XxlJobGroupDao xxlJobGroupDao; - @Resource - private XxlJobInfoDao xxlJobInfoDao; - @Resource - public XxlJobLogDao xxlJobLogDao; - @Resource - private XxlJobLogGlueDao xxlJobLogGlueDao; - @Resource - private XxlJobLogReportDao xxlJobLogReportDao; - - @Override - public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) { + @Resource + private XxlJobGroupDao xxlJobGroupDao; + @Resource + private XxlJobInfoDao xxlJobInfoDao; + @Resource + public XxlJobLogDao xxlJobLogDao; + @Resource + private XxlJobLogGlueDao xxlJobLogGlueDao; + @Resource + private XxlJobLogReportDao xxlJobLogReportDao; - // page list - List<XxlJobInfo> list = xxlJobInfoDao.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); - int list_count = xxlJobInfoDao.pageListCount(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); - - // package result - Map<String, Object> maps = new HashMap<String, Object>(); - maps.put("recordsTotal", list_count); // 鎬昏褰曟暟 - maps.put("recordsFiltered", list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 - maps.put("data", list); // 鍒嗛〉鍒楄〃 - return maps; - } + @Override + public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) { - @Override - public ReturnT<String> add(XxlJobInfo jobInfo) { + // page list + List<XxlJobInfo> list = xxlJobInfoDao.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); + int list_count = xxlJobInfoDao.pageListCount(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author); - // valid base - XxlJobGroup group = xxlJobGroupDao.load(jobInfo.getJobGroup()); - if (group == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose")+I18nUtil.getString("jobinfo_field_jobgroup")) ); - } - if (jobInfo.getJobDesc()==null || jobInfo.getJobDesc().trim().length()==0) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) ); - } - if (jobInfo.getAuthor()==null || jobInfo.getAuthor().trim().length()==0) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_author")) ); - } + // package result + Map<String, Object> maps = new HashMap<String, Object>(); + maps.put("recordsTotal" , list_count); // 鎬昏褰曟暟 + maps.put("recordsFiltered" , list_count); // 杩囨护鍚庣殑鎬昏褰曟暟 + maps.put("data" , list); // 鍒嗛〉鍒楄〃 + return maps; + } - // valid trigger - ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(jobInfo.getScheduleType(), null); - if (scheduleTypeEnum == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - if (scheduleTypeEnum == ScheduleTypeEnum.CRON) { - if (jobInfo.getScheduleConf()==null || !CronExpression.isValidExpression(jobInfo.getScheduleConf())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "Cron"+I18nUtil.getString("system_unvalid")); - } - } else if (scheduleTypeEnum == ScheduleTypeEnum.FIX_RATE/* || scheduleTypeEnum == ScheduleTypeEnum.FIX_DELAY*/) { - if (jobInfo.getScheduleConf() == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")) ); - } - try { - int fixSecond = Integer.valueOf(jobInfo.getScheduleConf()); - if (fixSecond < 1) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - } catch (Exception e) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - } + @Override + public ReturnT<String> add(XxlJobInfo jobInfo) { - // valid job - if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype")+I18nUtil.getString("system_unvalid")) ); - } - if (GlueTypeEnum.BEAN==GlueTypeEnum.match(jobInfo.getGlueType()) && (jobInfo.getExecutorHandler()==null || jobInfo.getExecutorHandler().trim().length()==0) ) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+"JobHandler") ); - } - // 銆媐ix "\r" in shell - if (GlueTypeEnum.GLUE_SHELL==GlueTypeEnum.match(jobInfo.getGlueType()) && jobInfo.getGlueSource()!=null) { - jobInfo.setGlueSource(jobInfo.getGlueSource().replaceAll("\r", "")); - } + // valid base + XxlJobGroup group = xxlJobGroupDao.load(jobInfo.getJobGroup()); + if (group == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_field_jobgroup"))); + } + if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); + } + if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); + } - // valid advanced - if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy")+I18nUtil.getString("system_unvalid")) ); - } - if (MisfireStrategyEnum.match(jobInfo.getMisfireStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("misfire_strategy")+I18nUtil.getString("system_unvalid")) ); - } - if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy")+I18nUtil.getString("system_unvalid")) ); - } + // valid trigger + ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(jobInfo.getScheduleType(), null); + if (scheduleTypeEnum == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + if (scheduleTypeEnum == ScheduleTypeEnum.CRON) { + if (jobInfo.getScheduleConf() == null || !CronExpression.isValidExpression(jobInfo.getScheduleConf())) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "Cron" + I18nUtil.getString("system_unvalid")); + } + } else if (scheduleTypeEnum == ScheduleTypeEnum.FIX_RATE/* || scheduleTypeEnum == ScheduleTypeEnum.FIX_DELAY*/) { + if (jobInfo.getScheduleConf() == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type"))); + } + try { + int fixSecond = Integer.valueOf(jobInfo.getScheduleConf()); + if (fixSecond < 1) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + } catch (Exception e) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + } - // 銆婥hildJobId valid - if (jobInfo.getChildJobId()!=null && jobInfo.getChildJobId().trim().length()>0) { - String[] childJobIds = jobInfo.getChildJobId().split(","); - for (String childJobIdItem: childJobIds) { - if (childJobIdItem!=null && childJobIdItem.trim().length()>0 && isNumeric(childJobIdItem)) { - XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem)); - if (childJobInfo==null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, - MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_not_found")), childJobIdItem)); - } - } else { - return new ReturnT<String>(ReturnT.FAIL_CODE, - MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_unvalid")), childJobIdItem)); - } - } + // valid job + if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype") + I18nUtil.getString("system_unvalid"))); + } + if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType()) && (jobInfo.getExecutorHandler() == null || jobInfo.getExecutorHandler().trim().length() == 0)) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + "JobHandler")); + } + // 銆媐ix "\r" in shell + if (GlueTypeEnum.GLUE_SHELL == GlueTypeEnum.match(jobInfo.getGlueType()) && jobInfo.getGlueSource() != null) { + jobInfo.setGlueSource(jobInfo.getGlueSource().replaceAll("\r" , "")); + } - // join , avoid "xxx,," - String temp = ""; - for (String item:childJobIds) { - temp += item + ","; - } - temp = temp.substring(0, temp.length()-1); + // valid advanced + if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); + } + if (MisfireStrategyEnum.match(jobInfo.getMisfireStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("misfire_strategy") + I18nUtil.getString("system_unvalid"))); + } + if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); + } - jobInfo.setChildJobId(temp); - } + // 銆婥hildJobId valid + if (jobInfo.getChildJobId() != null && jobInfo.getChildJobId().trim().length() > 0) { + String[] childJobIds = jobInfo.getChildJobId().split(","); + for (String childJobIdItem : childJobIds) { + if (childJobIdItem != null && childJobIdItem.trim().length() > 0 && isNumeric(childJobIdItem)) { + XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem)); + if (childJobInfo == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, + MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId") + "({0})" + I18nUtil.getString("system_not_found")), childJobIdItem)); + } + } else { + return new ReturnT<String>(ReturnT.FAIL_CODE, + MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId") + "({0})" + I18nUtil.getString("system_unvalid")), childJobIdItem)); + } + } - // add in db - jobInfo.setAddTime(new Date()); - jobInfo.setUpdateTime(new Date()); - jobInfo.setGlueUpdatetime(new Date()); - xxlJobInfoDao.save(jobInfo); - if (jobInfo.getId() < 1) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add")+I18nUtil.getString("system_fail")) ); - } + // join , avoid "xxx,," + String temp = ""; + for (String item : childJobIds) { + temp += item + ","; + } + temp = temp.substring(0, temp.length() - 1); - return new ReturnT<String>(String.valueOf(jobInfo.getId())); - } + jobInfo.setChildJobId(temp); + } - private boolean isNumeric(String str){ - try { - int result = Integer.valueOf(str); - return true; - } catch (NumberFormatException e) { - return false; - } - } + // add in db + jobInfo.setAddTime(new Date()); + jobInfo.setUpdateTime(new Date()); + jobInfo.setGlueUpdatetime(new Date()); + xxlJobInfoDao.save(jobInfo); + if (jobInfo.getId() < 1) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add") + I18nUtil.getString("system_fail"))); + } - @Override - public ReturnT<String> update(XxlJobInfo jobInfo) { + return new ReturnT<String>(String.valueOf(jobInfo.getId())); + } - // valid base - if (jobInfo.getJobDesc()==null || jobInfo.getJobDesc().trim().length()==0) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) ); - } - if (jobInfo.getAuthor()==null || jobInfo.getAuthor().trim().length()==0) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_author")) ); - } + private boolean isNumeric(String str) { + try { + int result = Integer.valueOf(str); + return true; + } catch (NumberFormatException e) { + return false; + } + } - // valid trigger - ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(jobInfo.getScheduleType(), null); - if (scheduleTypeEnum == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - if (scheduleTypeEnum == ScheduleTypeEnum.CRON) { - if (jobInfo.getScheduleConf()==null || !CronExpression.isValidExpression(jobInfo.getScheduleConf())) { - return new ReturnT<String>(ReturnT.FAIL_CODE, "Cron"+I18nUtil.getString("system_unvalid") ); - } - } else if (scheduleTypeEnum == ScheduleTypeEnum.FIX_RATE /*|| scheduleTypeEnum == ScheduleTypeEnum.FIX_DELAY*/) { - if (jobInfo.getScheduleConf() == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - try { - int fixSecond = Integer.valueOf(jobInfo.getScheduleConf()); - if (fixSecond < 1) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - } catch (Exception e) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - } + @Override + public ReturnT<String> update(XxlJobInfo jobInfo) { - // valid advanced - if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy")+I18nUtil.getString("system_unvalid")) ); - } - if (MisfireStrategyEnum.match(jobInfo.getMisfireStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("misfire_strategy")+I18nUtil.getString("system_unvalid")) ); - } - if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy")+I18nUtil.getString("system_unvalid")) ); - } + // valid base + if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); + } + if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); + } - // 銆婥hildJobId valid - if (jobInfo.getChildJobId()!=null && jobInfo.getChildJobId().trim().length()>0) { - String[] childJobIds = jobInfo.getChildJobId().split(","); - for (String childJobIdItem: childJobIds) { - if (childJobIdItem!=null && childJobIdItem.trim().length()>0 && isNumeric(childJobIdItem)) { - XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem)); - if (childJobInfo==null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, - MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_not_found")), childJobIdItem)); - } - } else { - return new ReturnT<String>(ReturnT.FAIL_CODE, - MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_unvalid")), childJobIdItem)); - } - } + // valid trigger + ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(jobInfo.getScheduleType(), null); + if (scheduleTypeEnum == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + if (scheduleTypeEnum == ScheduleTypeEnum.CRON) { + if (jobInfo.getScheduleConf() == null || !CronExpression.isValidExpression(jobInfo.getScheduleConf())) { + return new ReturnT<String>(ReturnT.FAIL_CODE, "Cron" + I18nUtil.getString("system_unvalid")); + } + } else if (scheduleTypeEnum == ScheduleTypeEnum.FIX_RATE /*|| scheduleTypeEnum == ScheduleTypeEnum.FIX_DELAY*/) { + if (jobInfo.getScheduleConf() == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + try { + int fixSecond = Integer.valueOf(jobInfo.getScheduleConf()); + if (fixSecond < 1) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + } catch (Exception e) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + } - // join , avoid "xxx,," - String temp = ""; - for (String item:childJobIds) { - temp += item + ","; - } - temp = temp.substring(0, temp.length()-1); + // valid advanced + if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); + } + if (MisfireStrategyEnum.match(jobInfo.getMisfireStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("misfire_strategy") + I18nUtil.getString("system_unvalid"))); + } + if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); + } - jobInfo.setChildJobId(temp); - } + // 銆婥hildJobId valid + if (jobInfo.getChildJobId() != null && jobInfo.getChildJobId().trim().length() > 0) { + String[] childJobIds = jobInfo.getChildJobId().split(","); + for (String childJobIdItem : childJobIds) { + if (childJobIdItem != null && childJobIdItem.trim().length() > 0 && isNumeric(childJobIdItem)) { + XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem)); + if (childJobInfo == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, + MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId") + "({0})" + I18nUtil.getString("system_not_found")), childJobIdItem)); + } + } else { + return new ReturnT<String>(ReturnT.FAIL_CODE, + MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId") + "({0})" + I18nUtil.getString("system_unvalid")), childJobIdItem)); + } + } - // group valid - XxlJobGroup jobGroup = xxlJobGroupDao.load(jobInfo.getJobGroup()); - if (jobGroup == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup")+I18nUtil.getString("system_unvalid")) ); - } + // join , avoid "xxx,," + String temp = ""; + for (String item : childJobIds) { + temp += item + ","; + } + temp = temp.substring(0, temp.length() - 1); - // stage job info - XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(jobInfo.getId()); - if (exists_jobInfo == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_not_found")) ); - } + jobInfo.setChildJobId(temp); + } - // next trigger time (5s鍚庣敓鏁堬紝閬垮紑棰勮鍛ㄦ湡) - long nextTriggerTime = exists_jobInfo.getTriggerNextTime(); - boolean scheduleDataNotChanged = jobInfo.getScheduleType().equals(exists_jobInfo.getScheduleType()) && jobInfo.getScheduleConf().equals(exists_jobInfo.getScheduleConf()); - if (exists_jobInfo.getTriggerStatus() == 1 && !scheduleDataNotChanged) { - try { - Date nextValidTime = JobScheduleHelper.generateNextValidTime(jobInfo, new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS)); - if (nextValidTime == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - nextTriggerTime = nextValidTime.getTime(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - } + // group valid + XxlJobGroup jobGroup = xxlJobGroupDao.load(jobInfo.getJobGroup()); + if (jobGroup == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup") + I18nUtil.getString("system_unvalid"))); + } - exists_jobInfo.setJobGroup(jobInfo.getJobGroup()); - exists_jobInfo.setJobDesc(jobInfo.getJobDesc()); - exists_jobInfo.setAuthor(jobInfo.getAuthor()); - exists_jobInfo.setAlarmEmail(jobInfo.getAlarmEmail()); - exists_jobInfo.setScheduleType(jobInfo.getScheduleType()); - exists_jobInfo.setScheduleConf(jobInfo.getScheduleConf()); - exists_jobInfo.setMisfireStrategy(jobInfo.getMisfireStrategy()); - exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy()); - exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler()); - exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam()); - exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); - exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout()); - exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount()); - exists_jobInfo.setChildJobId(jobInfo.getChildJobId()); - exists_jobInfo.setTriggerNextTime(nextTriggerTime); + // stage job info + XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(jobInfo.getId()); + if (exists_jobInfo == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_not_found"))); + } - exists_jobInfo.setUpdateTime(new Date()); + // next trigger time (5s鍚庣敓鏁堬紝閬垮紑棰勮鍛ㄦ湡) + long nextTriggerTime = exists_jobInfo.getTriggerNextTime(); + boolean scheduleDataNotChanged = jobInfo.getScheduleType().equals(exists_jobInfo.getScheduleType()) && jobInfo.getScheduleConf().equals(exists_jobInfo.getScheduleConf()); + if (exists_jobInfo.getTriggerStatus() == 1 && !scheduleDataNotChanged) { + try { + Date nextValidTime = JobScheduleHelper.generateNextValidTime(jobInfo, new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS)); + if (nextValidTime == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + nextTriggerTime = nextValidTime.getTime(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + } + + exists_jobInfo.setJobGroup(jobInfo.getJobGroup()); + exists_jobInfo.setJobDesc(jobInfo.getJobDesc()); + exists_jobInfo.setAuthor(jobInfo.getAuthor()); + exists_jobInfo.setAlarmEmail(jobInfo.getAlarmEmail()); + exists_jobInfo.setScheduleType(jobInfo.getScheduleType()); + exists_jobInfo.setScheduleConf(jobInfo.getScheduleConf()); + exists_jobInfo.setMisfireStrategy(jobInfo.getMisfireStrategy()); + exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy()); + exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler()); + exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam()); + exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); + exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout()); + exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount()); + exists_jobInfo.setChildJobId(jobInfo.getChildJobId()); + exists_jobInfo.setTriggerNextTime(nextTriggerTime); + + exists_jobInfo.setUpdateTime(new Date()); xxlJobInfoDao.update(exists_jobInfo); - return ReturnT.SUCCESS; - } + return ReturnT.SUCCESS; + } - @Override - public ReturnT<String> remove(int id) { - XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); - if (xxlJobInfo == null) { - return ReturnT.SUCCESS; - } + @Override + public ReturnT<String> remove(int id) { + XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); + if (xxlJobInfo == null) { + return ReturnT.SUCCESS; + } - xxlJobInfoDao.delete(id); - xxlJobLogDao.delete(id); - xxlJobLogGlueDao.deleteByJobId(id); - return ReturnT.SUCCESS; - } + xxlJobInfoDao.delete(id); + xxlJobLogDao.delete(id); + xxlJobLogGlueDao.deleteByJobId(id); + return ReturnT.SUCCESS; + } - @Override - public ReturnT<String> start(int id) { - XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); - - // valid - ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(xxlJobInfo.getScheduleType(), ScheduleTypeEnum.NONE); - if (ScheduleTypeEnum.NONE == scheduleTypeEnum) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type_none_limit_start")) ); - } - - // next trigger time (5s鍚庣敓鏁堬紝閬垮紑棰勮鍛ㄦ湡) - long nextTriggerTime = 0; - try { - Date nextValidTime = JobScheduleHelper.generateNextValidTime(xxlJobInfo, new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS)); - if (nextValidTime == null) { - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - nextTriggerTime = nextValidTime.getTime(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); - } - - xxlJobInfo.setTriggerStatus(1); - xxlJobInfo.setTriggerLastTime(0); - xxlJobInfo.setTriggerNextTime(nextTriggerTime); - - xxlJobInfo.setUpdateTime(new Date()); - xxlJobInfoDao.update(xxlJobInfo); - return ReturnT.SUCCESS; - } - - @Override - public ReturnT<String> stop(int id) { + @Override + public ReturnT<String> start(int id) { XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); - xxlJobInfo.setTriggerStatus(0); - xxlJobInfo.setTriggerLastTime(0); - xxlJobInfo.setTriggerNextTime(0); + // valid + ScheduleTypeEnum scheduleTypeEnum = ScheduleTypeEnum.match(xxlJobInfo.getScheduleType(), ScheduleTypeEnum.NONE); + if (ScheduleTypeEnum.NONE == scheduleTypeEnum) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type_none_limit_start"))); + } - xxlJobInfo.setUpdateTime(new Date()); - xxlJobInfoDao.update(xxlJobInfo); - return ReturnT.SUCCESS; - } + // next trigger time (5s鍚庣敓鏁堬紝閬垮紑棰勮鍛ㄦ湡) + long nextTriggerTime = 0; + try { + Date nextValidTime = JobScheduleHelper.generateNextValidTime(xxlJobInfo, new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS)); + if (nextValidTime == null) { + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } + nextTriggerTime = nextValidTime.getTime(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type") + I18nUtil.getString("system_unvalid"))); + } - @Override - public Map<String, Object> dashboardInfo() { + xxlJobInfo.setTriggerStatus(1); + xxlJobInfo.setTriggerLastTime(0); + xxlJobInfo.setTriggerNextTime(nextTriggerTime); - int jobInfoCount = xxlJobInfoDao.findAllCount(); - int jobLogCount = 0; - int jobLogSuccessCount = 0; - XxlJobLogReport xxlJobLogReport = xxlJobLogReportDao.queryLogReportTotal(); - if (xxlJobLogReport != null) { - jobLogCount = xxlJobLogReport.getRunningCount() + xxlJobLogReport.getSucCount() + xxlJobLogReport.getFailCount(); - jobLogSuccessCount = xxlJobLogReport.getSucCount(); - } + xxlJobInfo.setUpdateTime(new Date()); + xxlJobInfoDao.update(xxlJobInfo); + return ReturnT.SUCCESS; + } - // executor count - Set<String> executorAddressSet = new HashSet<String>(); - List<XxlJobGroup> groupList = xxlJobGroupDao.findAll(); + @Override + public ReturnT<String> stop(int id) { + XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); - if (groupList!=null && !groupList.isEmpty()) { - for (XxlJobGroup group: groupList) { - if (group.getRegistryList()!=null && !group.getRegistryList().isEmpty()) { - executorAddressSet.addAll(group.getRegistryList()); - } - } - } + xxlJobInfo.setTriggerStatus(0); + xxlJobInfo.setTriggerLastTime(0); + xxlJobInfo.setTriggerNextTime(0); - int executorCount = executorAddressSet.size(); + xxlJobInfo.setUpdateTime(new Date()); + xxlJobInfoDao.update(xxlJobInfo); + return ReturnT.SUCCESS; + } - Map<String, Object> dashboardMap = new HashMap<String, Object>(); - dashboardMap.put("jobInfoCount", jobInfoCount); - dashboardMap.put("jobLogCount", jobLogCount); - dashboardMap.put("jobLogSuccessCount", jobLogSuccessCount); - dashboardMap.put("executorCount", executorCount); - return dashboardMap; - } + @Override + public Map<String, Object> dashboardInfo() { - @Override - public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) { + int jobInfoCount = xxlJobInfoDao.findAllCount(); + int jobLogCount = 0; + int jobLogSuccessCount = 0; + XxlJobLogReport xxlJobLogReport = xxlJobLogReportDao.queryLogReportTotal(); + if (xxlJobLogReport != null) { + jobLogCount = xxlJobLogReport.getRunningCount() + xxlJobLogReport.getSucCount() + xxlJobLogReport.getFailCount(); + jobLogSuccessCount = xxlJobLogReport.getSucCount(); + } - // process - List<String> triggerDayList = new ArrayList<String>(); - List<Integer> triggerDayCountRunningList = new ArrayList<Integer>(); - List<Integer> triggerDayCountSucList = new ArrayList<Integer>(); - List<Integer> triggerDayCountFailList = new ArrayList<Integer>(); - int triggerCountRunningTotal = 0; - int triggerCountSucTotal = 0; - int triggerCountFailTotal = 0; + // executor count + Set<String> executorAddressSet = new HashSet<String>(); + List<XxlJobGroup> groupList = xxlJobGroupDao.findAll(); - List<XxlJobLogReport> logReportList = xxlJobLogReportDao.queryLogReport(startDate, endDate); + if (groupList != null && !groupList.isEmpty()) { + for (XxlJobGroup group : groupList) { + if (group.getRegistryList() != null && !group.getRegistryList().isEmpty()) { + executorAddressSet.addAll(group.getRegistryList()); + } + } + } - if (logReportList!=null && logReportList.size()>0) { - for (XxlJobLogReport item: logReportList) { - String day = DateUtil.formatDate(item.getTriggerDay()); - int triggerDayCountRunning = item.getRunningCount(); - int triggerDayCountSuc = item.getSucCount(); - int triggerDayCountFail = item.getFailCount(); + int executorCount = executorAddressSet.size(); - triggerDayList.add(day); - triggerDayCountRunningList.add(triggerDayCountRunning); - triggerDayCountSucList.add(triggerDayCountSuc); - triggerDayCountFailList.add(triggerDayCountFail); + Map<String, Object> dashboardMap = new HashMap<String, Object>(); + dashboardMap.put("jobInfoCount" , jobInfoCount); + dashboardMap.put("jobLogCount" , jobLogCount); + dashboardMap.put("jobLogSuccessCount" , jobLogSuccessCount); + dashboardMap.put("executorCount" , executorCount); + return dashboardMap; + } - triggerCountRunningTotal += triggerDayCountRunning; - triggerCountSucTotal += triggerDayCountSuc; - triggerCountFailTotal += triggerDayCountFail; - } - } else { - for (int i = -6; i <= 0; i++) { - triggerDayList.add(DateUtil.formatDate(DateUtil.addDays(new Date(), i))); - triggerDayCountRunningList.add(0); - triggerDayCountSucList.add(0); - triggerDayCountFailList.add(0); - } - } + @Override + public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) { - Map<String, Object> result = new HashMap<String, Object>(); - result.put("triggerDayList", triggerDayList); - result.put("triggerDayCountRunningList", triggerDayCountRunningList); - result.put("triggerDayCountSucList", triggerDayCountSucList); - result.put("triggerDayCountFailList", triggerDayCountFailList); + // process + List<String> triggerDayList = new ArrayList<String>(); + List<Integer> triggerDayCountRunningList = new ArrayList<Integer>(); + List<Integer> triggerDayCountSucList = new ArrayList<Integer>(); + List<Integer> triggerDayCountFailList = new ArrayList<Integer>(); + int triggerCountRunningTotal = 0; + int triggerCountSucTotal = 0; + int triggerCountFailTotal = 0; - result.put("triggerCountRunningTotal", triggerCountRunningTotal); - result.put("triggerCountSucTotal", triggerCountSucTotal); - result.put("triggerCountFailTotal", triggerCountFailTotal); + List<XxlJobLogReport> logReportList = xxlJobLogReportDao.queryLogReport(startDate, endDate); - return new ReturnT<Map<String, Object>>(result); - } + if (logReportList != null && logReportList.size() > 0) { + for (XxlJobLogReport item : logReportList) { + String day = DateUtil.formatDate(item.getTriggerDay()); + int triggerDayCountRunning = item.getRunningCount(); + int triggerDayCountSuc = item.getSucCount(); + int triggerDayCountFail = item.getFailCount(); + + triggerDayList.add(day); + triggerDayCountRunningList.add(triggerDayCountRunning); + triggerDayCountSucList.add(triggerDayCountSuc); + triggerDayCountFailList.add(triggerDayCountFail); + + triggerCountRunningTotal += triggerDayCountRunning; + triggerCountSucTotal += triggerDayCountSuc; + triggerCountFailTotal += triggerDayCountFail; + } + } else { + for (int i = -6; i <= 0; i++) { + triggerDayList.add(DateUtil.formatDate(DateUtil.addDays(new Date(), i))); + triggerDayCountRunningList.add(0); + triggerDayCountSucList.add(0); + triggerDayCountFailList.add(0); + } + } + + Map<String, Object> result = new HashMap<String, Object>(); + result.put("triggerDayList" , triggerDayList); + result.put("triggerDayCountRunningList" , triggerDayCountRunningList); + result.put("triggerDayCountSucList" , triggerDayCountSucList); + result.put("triggerDayCountFailList" , triggerDayCountFailList); + + result.put("triggerCountRunningTotal" , triggerCountRunningTotal); + result.put("triggerCountSucTotal" , triggerCountSucTotal); + result.put("triggerCountFailTotal" , triggerCountFailTotal); + + return new ReturnT<Map<String, Object>>(result); + } } diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml index 87299f8..ee592bb 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml @@ -1,91 +1,91 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobGroupDao"> - - <resultMap id="XxlJobGroup" type="com.xxl.job.admin.core.model.XxlJobGroup" > - <result column="id" property="id" /> - <result column="app_name" property="appname" /> - <result column="title" property="title" /> - <result column="address_type" property="addressType" /> - <result column="address_list" property="addressList" /> - <result column="update_time" property="updateTime" /> - </resultMap> - <sql id="Base_Column_List"> - t.id, - t.app_name, - t.title, - t.address_type, - t.address_list, - t.update_time - </sql> + <resultMap id="XxlJobGroup" type="com.xxl.job.admin.core.model.XxlJobGroup" > + <result column="id" property="id" /> + <result column="app_name" property="appname" /> + <result column="title" property="title" /> + <result column="address_type" property="addressType" /> + <result column="address_list" property="addressList" /> + <result column="update_time" property="updateTime" /> + </resultMap> - <select id="findAll" resultMap="XxlJobGroup"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_group AS t - ORDER BY t.app_name, t.title, t.id ASC - </select> + <sql id="Base_Column_List"> + t.id, + t.app_name, + t.title, + t.address_type, + t.address_list, + t.update_time + </sql> - <select id="findByAddressType" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_group AS t - WHERE t.address_type = #{addressType} - ORDER BY t.app_name, t.title, t.id ASC - </select> + <select id="findAll" resultMap="XxlJobGroup"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_group AS t + ORDER BY t.app_name, t.title, t.id ASC + </select> - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`, `update_time`) - values ( #{appname}, #{title}, #{addressType}, #{addressList}, #{updateTime} ); - </insert> + <select id="findByAddressType" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_group AS t + WHERE t.address_type = #{addressType} + ORDER BY t.app_name, t.title, t.id ASC + </select> - <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" > - UPDATE xxl_job_group - SET `app_name` = #{appname}, - `title` = #{title}, - `address_type` = #{addressType}, - `address_list` = #{addressList}, - `update_time` = #{updateTime} - WHERE id = #{id} - </update> + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`, `update_time`) + values ( #{appname}, #{title}, #{addressType}, #{addressList}, #{updateTime} ); + </insert> - <delete id="remove" parameterType="java.lang.Integer" > - DELETE FROM xxl_job_group - WHERE id = #{id} - </delete> + <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" > + UPDATE xxl_job_group + SET `app_name` = #{appname}, + `title` = #{title}, + `address_type` = #{addressType}, + `address_list` = #{addressList}, + `update_time` = #{updateTime} + WHERE id = #{id} + </update> - <select id="load" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_group AS t - WHERE t.id = #{id} - </select> + <delete id="remove" parameterType="java.lang.Integer" > + DELETE FROM xxl_job_group + WHERE id = #{id} + </delete> - <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobGroup"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_group AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="appname != null and appname != ''"> - AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') - </if> - <if test="title != null and title != ''"> - AND t.title like CONCAT(CONCAT('%', #{title}), '%') - </if> - </trim> - ORDER BY t.app_name, t.title, t.id ASC - LIMIT #{offset}, #{pagesize} - </select> + <select id="load" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_group AS t + WHERE t.id = #{id} + </select> - <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> - SELECT count(1) - FROM xxl_job_group AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="appname != null and appname != ''"> - AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') - </if> - <if test="title != null and title != ''"> - AND t.title like CONCAT(CONCAT('%', #{title}), '%') - </if> - </trim> - </select> + <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobGroup"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_group AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="appname != null and appname != ''"> + AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') + </if> + <if test="title != null and title != ''"> + AND t.title like CONCAT(CONCAT('%', #{title}), '%') + </if> + </trim> + ORDER BY t.app_name, t.title, t.id ASC + LIMIT #{offset}, #{pagesize} + </select> -</mapper> \ No newline at end of file + <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> + SELECT count(1) + FROM xxl_job_group AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="appname != null and appname != ''"> + AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') + </if> + <if test="title != null and title != ''"> + AND t.title like CONCAT(CONCAT('%', #{title}), '%') + </if> + </trim> + </select> + +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml index 7b3c3a3..c40b059 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -1,240 +1,240 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobInfoDao"> - <resultMap id="XxlJobInfo" type="com.xxl.job.admin.core.model.XxlJobInfo" > - <result column="id" property="id" /> + <resultMap id="XxlJobInfo" type="com.xxl.job.admin.core.model.XxlJobInfo" > + <result column="id" property="id" /> - <result column="job_group" property="jobGroup" /> - <result column="job_desc" property="jobDesc" /> + <result column="job_group" property="jobGroup" /> + <result column="job_desc" property="jobDesc" /> - <result column="add_time" property="addTime" /> - <result column="update_time" property="updateTime" /> + <result column="add_time" property="addTime" /> + <result column="update_time" property="updateTime" /> - <result column="author" property="author" /> - <result column="alarm_email" property="alarmEmail" /> + <result column="author" property="author" /> + <result column="alarm_email" property="alarmEmail" /> - <result column="schedule_type" property="scheduleType" /> - <result column="schedule_conf" property="scheduleConf" /> - <result column="misfire_strategy" property="misfireStrategy" /> + <result column="schedule_type" property="scheduleType" /> + <result column="schedule_conf" property="scheduleConf" /> + <result column="misfire_strategy" property="misfireStrategy" /> - <result column="executor_route_strategy" property="executorRouteStrategy" /> - <result column="executor_handler" property="executorHandler" /> - <result column="executor_param" property="executorParam" /> - <result column="executor_block_strategy" property="executorBlockStrategy" /> - <result column="executor_timeout" property="executorTimeout" /> - <result column="executor_fail_retry_count" property="executorFailRetryCount" /> + <result column="executor_route_strategy" property="executorRouteStrategy" /> + <result column="executor_handler" property="executorHandler" /> + <result column="executor_param" property="executorParam" /> + <result column="executor_block_strategy" property="executorBlockStrategy" /> + <result column="executor_timeout" property="executorTimeout" /> + <result column="executor_fail_retry_count" property="executorFailRetryCount" /> - <result column="glue_type" property="glueType" /> - <result column="glue_source" property="glueSource" /> - <result column="glue_remark" property="glueRemark" /> - <result column="glue_updatetime" property="glueUpdatetime" /> + <result column="glue_type" property="glueType" /> + <result column="glue_source" property="glueSource" /> + <result column="glue_remark" property="glueRemark" /> + <result column="glue_updatetime" property="glueUpdatetime" /> - <result column="child_jobid" property="childJobId" /> + <result column="child_jobid" property="childJobId" /> - <result column="trigger_status" property="triggerStatus" /> - <result column="trigger_last_time" property="triggerLastTime" /> - <result column="trigger_next_time" property="triggerNextTime" /> - </resultMap> + <result column="trigger_status" property="triggerStatus" /> + <result column="trigger_last_time" property="triggerLastTime" /> + <result column="trigger_next_time" property="triggerNextTime" /> + </resultMap> - <sql id="Base_Column_List"> - t.id, - t.job_group, - t.job_desc, - t.add_time, - t.update_time, - t.author, - t.alarm_email, - t.schedule_type, - t.schedule_conf, - t.misfire_strategy, - t.executor_route_strategy, - t.executor_handler, - t.executor_param, - t.executor_block_strategy, - t.executor_timeout, - t.executor_fail_retry_count, - t.glue_type, - t.glue_source, - t.glue_remark, - t.glue_updatetime, - t.child_jobid, - t.trigger_status, - t.trigger_last_time, - t.trigger_next_time - </sql> + <sql id="Base_Column_List"> + t.id, + t.job_group, + t.job_desc, + t.add_time, + t.update_time, + t.author, + t.alarm_email, + t.schedule_type, + t.schedule_conf, + t.misfire_strategy, + t.executor_route_strategy, + t.executor_handler, + t.executor_param, + t.executor_block_strategy, + t.executor_timeout, + t.executor_fail_retry_count, + t.glue_type, + t.glue_source, + t.glue_remark, + t.glue_updatetime, + t.child_jobid, + t.trigger_status, + t.trigger_last_time, + t.trigger_next_time + </sql> - <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_info AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobGroup gt 0"> - AND t.job_group = #{jobGroup} - </if> + <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_info AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobGroup gt 0"> + AND t.job_group = #{jobGroup} + </if> <if test="triggerStatus gte 0"> AND t.trigger_status = #{triggerStatus} </if> - <if test="jobDesc != null and jobDesc != ''"> - AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%') - </if> - <if test="executorHandler != null and executorHandler != ''"> - AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%') - </if> - <if test="author != null and author != ''"> - AND t.author like CONCAT(CONCAT('%', #{author}), '%') - </if> - </trim> - ORDER BY id DESC - LIMIT #{offset}, #{pagesize} - </select> + <if test="jobDesc != null and jobDesc != ''"> + AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%') + </if> + <if test="executorHandler != null and executorHandler != ''"> + AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%') + </if> + <if test="author != null and author != ''"> + AND t.author like CONCAT(CONCAT('%', #{author}), '%') + </if> + </trim> + ORDER BY id DESC + LIMIT #{offset}, #{pagesize} + </select> - <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> - SELECT count(1) - FROM xxl_job_info AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobGroup gt 0"> - AND t.job_group = #{jobGroup} - </if> + <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> + SELECT count(1) + FROM xxl_job_info AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobGroup gt 0"> + AND t.job_group = #{jobGroup} + </if> <if test="triggerStatus gte 0"> AND t.trigger_status = #{triggerStatus} </if> - <if test="jobDesc != null and jobDesc != ''"> - AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%') - </if> - <if test="executorHandler != null and executorHandler != ''"> - AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%') - </if> - <if test="author != null and author != ''"> - AND t.author like CONCAT(CONCAT('%', #{author}), '%') - </if> - </trim> - </select> + <if test="jobDesc != null and jobDesc != ''"> + AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%') + </if> + <if test="executorHandler != null and executorHandler != ''"> + AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%') + </if> + <if test="author != null and author != ''"> + AND t.author like CONCAT(CONCAT('%', #{author}), '%') + </if> + </trim> + </select> - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_info ( - job_group, - job_desc, - add_time, - update_time, - author, - alarm_email, - schedule_type, - schedule_conf, - misfire_strategy, + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_info ( + job_group, + job_desc, + add_time, + update_time, + author, + alarm_email, + schedule_type, + schedule_conf, + misfire_strategy, executor_route_strategy, - executor_handler, - executor_param, - executor_block_strategy, - executor_timeout, - executor_fail_retry_count, - glue_type, - glue_source, - glue_remark, - glue_updatetime, - child_jobid, - trigger_status, - trigger_last_time, - trigger_next_time - ) VALUES ( - #{jobGroup}, - #{jobDesc}, - #{addTime}, - #{updateTime}, - #{author}, - #{alarmEmail}, - #{scheduleType}, - #{scheduleConf}, - #{misfireStrategy}, - #{executorRouteStrategy}, - #{executorHandler}, - #{executorParam}, - #{executorBlockStrategy}, - #{executorTimeout}, - #{executorFailRetryCount}, - #{glueType}, - #{glueSource}, - #{glueRemark}, - #{glueUpdatetime}, - #{childJobId}, - #{triggerStatus}, - #{triggerLastTime}, - #{triggerNextTime} - ); - <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> - SELECT LAST_INSERT_ID() - /*SELECT @@IDENTITY AS id*/ - </selectKey>--> - </insert> + executor_handler, + executor_param, + executor_block_strategy, + executor_timeout, + executor_fail_retry_count, + glue_type, + glue_source, + glue_remark, + glue_updatetime, + child_jobid, + trigger_status, + trigger_last_time, + trigger_next_time + ) VALUES ( + #{jobGroup}, + #{jobDesc}, + #{addTime}, + #{updateTime}, + #{author}, + #{alarmEmail}, + #{scheduleType}, + #{scheduleConf}, + #{misfireStrategy}, + #{executorRouteStrategy}, + #{executorHandler}, + #{executorParam}, + #{executorBlockStrategy}, + #{executorTimeout}, + #{executorFailRetryCount}, + #{glueType}, + #{glueSource}, + #{glueRemark}, + #{glueUpdatetime}, + #{childJobId}, + #{triggerStatus}, + #{triggerLastTime}, + #{triggerNextTime} + ); + <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> + SELECT LAST_INSERT_ID() + /*SELECT @@IDENTITY AS id*/ + </selectKey>--> + </insert> - <select id="loadById" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_info AS t - WHERE t.id = #{id} - </select> + <select id="loadById" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_info AS t + WHERE t.id = #{id} + </select> - <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" > - UPDATE xxl_job_info - SET - job_group = #{jobGroup}, - job_desc = #{jobDesc}, - update_time = #{updateTime}, - author = #{author}, - alarm_email = #{alarmEmail}, - schedule_type = #{scheduleType}, - schedule_conf = #{scheduleConf}, - misfire_strategy = #{misfireStrategy}, - executor_route_strategy = #{executorRouteStrategy}, - executor_handler = #{executorHandler}, - executor_param = #{executorParam}, - executor_block_strategy = #{executorBlockStrategy}, - executor_timeout = ${executorTimeout}, - executor_fail_retry_count = ${executorFailRetryCount}, - glue_type = #{glueType}, - glue_source = #{glueSource}, - glue_remark = #{glueRemark}, - glue_updatetime = #{glueUpdatetime}, - child_jobid = #{childJobId}, - trigger_status = #{triggerStatus}, - trigger_last_time = #{triggerLastTime}, - trigger_next_time = #{triggerNextTime} - WHERE id = #{id} - </update> + <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" > + UPDATE xxl_job_info + SET + job_group = #{jobGroup}, + job_desc = #{jobDesc}, + update_time = #{updateTime}, + author = #{author}, + alarm_email = #{alarmEmail}, + schedule_type = #{scheduleType}, + schedule_conf = #{scheduleConf}, + misfire_strategy = #{misfireStrategy}, + executor_route_strategy = #{executorRouteStrategy}, + executor_handler = #{executorHandler}, + executor_param = #{executorParam}, + executor_block_strategy = #{executorBlockStrategy}, + executor_timeout = ${executorTimeout}, + executor_fail_retry_count = ${executorFailRetryCount}, + glue_type = #{glueType}, + glue_source = #{glueSource}, + glue_remark = #{glueRemark}, + glue_updatetime = #{glueUpdatetime}, + child_jobid = #{childJobId}, + trigger_status = #{triggerStatus}, + trigger_last_time = #{triggerLastTime}, + trigger_next_time = #{triggerNextTime} + WHERE id = #{id} + </update> - <delete id="delete" parameterType="java.util.HashMap"> - DELETE - FROM xxl_job_info - WHERE id = #{id} - </delete> + <delete id="delete" parameterType="java.util.HashMap"> + DELETE + FROM xxl_job_info + WHERE id = #{id} + </delete> - <select id="getJobsByGroup" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_info AS t - WHERE t.job_group = #{jobGroup} - </select> + <select id="getJobsByGroup" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_info AS t + WHERE t.job_group = #{jobGroup} + </select> - <select id="findAllCount" resultType="int"> - SELECT count(1) - FROM xxl_job_info - </select> + <select id="findAllCount" resultType="int"> + SELECT count(1) + FROM xxl_job_info + </select> - <select id="scheduleJobQuery" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_info AS t - WHERE t.trigger_status = 1 - and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime} - ORDER BY id ASC - LIMIT #{pagesize} - </select> + <select id="scheduleJobQuery" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_info AS t + WHERE t.trigger_status = 1 + and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime} + ORDER BY id ASC + LIMIT #{pagesize} + </select> - <update id="scheduleUpdate" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" > - UPDATE xxl_job_info - SET - trigger_last_time = #{triggerLastTime}, - trigger_next_time = #{triggerNextTime}, - trigger_status = #{triggerStatus} - WHERE id = #{id} - </update> + <update id="scheduleUpdate" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" > + UPDATE xxl_job_info + SET + trigger_last_time = #{triggerLastTime}, + trigger_next_time = #{triggerNextTime}, + trigger_status = #{triggerStatus} + WHERE id = #{id} + </update> -</mapper> \ No newline at end of file +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml index 699277c..dc680f3 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml @@ -1,71 +1,71 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobLogGlueDao"> - - <resultMap id="XxlJobLogGlue" type="com.xxl.job.admin.core.model.XxlJobLogGlue" > - <result column="id" property="id" /> - <result column="job_id" property="jobId" /> - <result column="glue_type" property="glueType" /> - <result column="glue_source" property="glueSource" /> - <result column="glue_remark" property="glueRemark" /> - <result column="add_time" property="addTime" /> - <result column="update_time" property="updateTime" /> - </resultMap> - <sql id="Base_Column_List"> - t.id, - t.job_id, - t.glue_type, - t.glue_source, - t.glue_remark, - t.add_time, - t.update_time - </sql> - - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogGlue" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_logglue ( - `job_id`, - `glue_type`, - `glue_source`, - `glue_remark`, - `add_time`, - `update_time` - ) VALUES ( - #{jobId}, - #{glueType}, - #{glueSource}, - #{glueRemark}, - #{addTime}, - #{updateTime} - ); - <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> - SELECT LAST_INSERT_ID() - </selectKey>--> - </insert> - - <select id="findByJobId" parameterType="java.lang.Integer" resultMap="XxlJobLogGlue"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_logglue AS t - WHERE t.job_id = #{jobId} - ORDER BY id DESC - </select> - - <delete id="removeOld" > - DELETE FROM xxl_job_logglue - WHERE id NOT in( - SELECT id FROM( - SELECT id FROM xxl_job_logglue - WHERE `job_id` = #{jobId} - ORDER BY update_time desc - LIMIT 0, #{limit} - ) t1 - ) AND `job_id` = #{jobId} - </delete> - - <delete id="deleteByJobId" parameterType="java.lang.Integer" > - DELETE FROM xxl_job_logglue - WHERE `job_id` = #{jobId} - </delete> - -</mapper> \ No newline at end of file + <resultMap id="XxlJobLogGlue" type="com.xxl.job.admin.core.model.XxlJobLogGlue" > + <result column="id" property="id" /> + <result column="job_id" property="jobId" /> + <result column="glue_type" property="glueType" /> + <result column="glue_source" property="glueSource" /> + <result column="glue_remark" property="glueRemark" /> + <result column="add_time" property="addTime" /> + <result column="update_time" property="updateTime" /> + </resultMap> + + <sql id="Base_Column_List"> + t.id, + t.job_id, + t.glue_type, + t.glue_source, + t.glue_remark, + t.add_time, + t.update_time + </sql> + + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogGlue" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_logglue ( + `job_id`, + `glue_type`, + `glue_source`, + `glue_remark`, + `add_time`, + `update_time` + ) VALUES ( + #{jobId}, + #{glueType}, + #{glueSource}, + #{glueRemark}, + #{addTime}, + #{updateTime} + ); + <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> + SELECT LAST_INSERT_ID() + </selectKey>--> + </insert> + + <select id="findByJobId" parameterType="java.lang.Integer" resultMap="XxlJobLogGlue"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_logglue AS t + WHERE t.job_id = #{jobId} + ORDER BY id DESC + </select> + + <delete id="removeOld" > + DELETE FROM xxl_job_logglue + WHERE id NOT in( + SELECT id FROM( + SELECT id FROM xxl_job_logglue + WHERE `job_id` = #{jobId} + ORDER BY update_time desc + LIMIT 0, #{limit} + ) t1 + ) AND `job_id` = #{jobId} + </delete> + + <delete id="deleteByJobId" parameterType="java.lang.Integer" > + DELETE FROM xxl_job_logglue + WHERE `job_id` = #{jobId} + </delete> + +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml index 4155f17..e5fa903 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -1,273 +1,273 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobLogDao"> - - <resultMap id="XxlJobLog" type="com.xxl.job.admin.core.model.XxlJobLog" > - <result column="id" property="id" /> - <result column="job_group" property="jobGroup" /> - <result column="job_id" property="jobId" /> + <resultMap id="XxlJobLog" type="com.xxl.job.admin.core.model.XxlJobLog" > + <result column="id" property="id" /> - <result column="executor_address" property="executorAddress" /> - <result column="executor_handler" property="executorHandler" /> - <result column="executor_param" property="executorParam" /> - <result column="executor_sharding_param" property="executorShardingParam" /> - <result column="executor_fail_retry_count" property="executorFailRetryCount" /> - - <result column="trigger_time" property="triggerTime" /> - <result column="trigger_code" property="triggerCode" /> - <result column="trigger_msg" property="triggerMsg" /> - - <result column="handle_time" property="handleTime" /> - <result column="handle_code" property="handleCode" /> - <result column="handle_msg" property="handleMsg" /> + <result column="job_group" property="jobGroup" /> + <result column="job_id" property="jobId" /> - <result column="alarm_status" property="alarmStatus" /> - </resultMap> + <result column="executor_address" property="executorAddress" /> + <result column="executor_handler" property="executorHandler" /> + <result column="executor_param" property="executorParam" /> + <result column="executor_sharding_param" property="executorShardingParam" /> + <result column="executor_fail_retry_count" property="executorFailRetryCount" /> - <sql id="Base_Column_List"> - t.id, - t.job_group, - t.job_id, - t.executor_address, - t.executor_handler, - t.executor_param, - t.executor_sharding_param, - t.executor_fail_retry_count, - t.trigger_time, - t.trigger_code, - t.trigger_msg, - t.handle_time, - t.handle_code, - t.handle_msg, - t.alarm_status - </sql> - - <select id="pageList" resultMap="XxlJobLog"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_log AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobId==0 and jobGroup gt 0"> - AND t.job_group = #{jobGroup} - </if> - <if test="jobId gt 0"> - AND t.job_id = #{jobId} - </if> - <if test="triggerTimeStart != null"> - AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart} - </if> - <if test="triggerTimeEnd != null"> - AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd} - </if> - <if test="logStatus == 1" > - AND t.handle_code = 200 - </if> - <if test="logStatus == 2" > - AND ( - t.trigger_code NOT IN (0, 200) OR - t.handle_code NOT IN (0, 200) - ) - </if> - <if test="logStatus == 3" > - AND t.trigger_code = 200 - AND t.handle_code = 0 - </if> - </trim> - ORDER BY t.trigger_time DESC - LIMIT #{offset}, #{pagesize} - </select> - - <select id="pageListCount" resultType="int"> - SELECT count(1) - FROM xxl_job_log AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobId==0 and jobGroup gt 0"> - AND t.job_group = #{jobGroup} - </if> - <if test="jobId gt 0"> - AND t.job_id = #{jobId} - </if> - <if test="triggerTimeStart != null"> - AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart} - </if> - <if test="triggerTimeEnd != null"> - AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd} - </if> - <if test="logStatus == 1" > - AND t.handle_code = 200 - </if> - <if test="logStatus == 2" > - AND ( - t.trigger_code NOT IN (0, 200) OR - t.handle_code NOT IN (0, 200) - ) - </if> - <if test="logStatus == 3" > - AND t.trigger_code = 200 - AND t.handle_code = 0 - </if> - </trim> - </select> - - <select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_log AS t - WHERE t.id = #{id} - </select> + <result column="trigger_time" property="triggerTime" /> + <result column="trigger_code" property="triggerCode" /> + <result column="trigger_msg" property="triggerMsg" /> - - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_log ( - `job_group`, - `job_id`, - `trigger_time`, - `trigger_code`, - `handle_code` - ) VALUES ( - #{jobGroup}, - #{jobId}, - #{triggerTime}, - #{triggerCode}, - #{handleCode} - ); - <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> - SELECT LAST_INSERT_ID() - </selectKey>--> - </insert> + <result column="handle_time" property="handleTime" /> + <result column="handle_code" property="handleCode" /> + <result column="handle_msg" property="handleMsg" /> - <update id="updateTriggerInfo" > - UPDATE xxl_job_log - SET - `trigger_time`= #{triggerTime}, - `trigger_code`= #{triggerCode}, - `trigger_msg`= #{triggerMsg}, - `executor_address`= #{executorAddress}, - `executor_handler`=#{executorHandler}, - `executor_param`= #{executorParam}, - `executor_sharding_param`= #{executorShardingParam}, - `executor_fail_retry_count`= #{executorFailRetryCount} - WHERE `id`= #{id} - </update> + <result column="alarm_status" property="alarmStatus" /> + </resultMap> - <update id="updateHandleInfo"> - UPDATE xxl_job_log - SET - `handle_time`= #{handleTime}, - `handle_code`= #{handleCode}, - `handle_msg`= #{handleMsg} - WHERE `id`= #{id} - </update> - - <delete id="delete" > - delete from xxl_job_log - WHERE job_id = #{jobId} - </delete> + <sql id="Base_Column_List"> + t.id, + t.job_group, + t.job_id, + t.executor_address, + t.executor_handler, + t.executor_param, + t.executor_sharding_param, + t.executor_fail_retry_count, + t.trigger_time, + t.trigger_code, + t.trigger_msg, + t.handle_time, + t.handle_code, + t.handle_msg, + t.alarm_status + </sql> + + <select id="pageList" resultMap="XxlJobLog"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_log AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobId==0 and jobGroup gt 0"> + AND t.job_group = #{jobGroup} + </if> + <if test="jobId gt 0"> + AND t.job_id = #{jobId} + </if> + <if test="triggerTimeStart != null"> + AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart} + </if> + <if test="triggerTimeEnd != null"> + AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd} + </if> + <if test="logStatus == 1" > + AND t.handle_code = 200 + </if> + <if test="logStatus == 2" > + AND ( + t.trigger_code NOT IN (0, 200) OR + t.handle_code NOT IN (0, 200) + ) + </if> + <if test="logStatus == 3" > + AND t.trigger_code = 200 + AND t.handle_code = 0 + </if> + </trim> + ORDER BY t.trigger_time DESC + LIMIT #{offset}, #{pagesize} + </select> + + <select id="pageListCount" resultType="int"> + SELECT count(1) + FROM xxl_job_log AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobId==0 and jobGroup gt 0"> + AND t.job_group = #{jobGroup} + </if> + <if test="jobId gt 0"> + AND t.job_id = #{jobId} + </if> + <if test="triggerTimeStart != null"> + AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart} + </if> + <if test="triggerTimeEnd != null"> + AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd} + </if> + <if test="logStatus == 1" > + AND t.handle_code = 200 + </if> + <if test="logStatus == 2" > + AND ( + t.trigger_code NOT IN (0, 200) OR + t.handle_code NOT IN (0, 200) + ) + </if> + <if test="logStatus == 3" > + AND t.trigger_code = 200 + AND t.handle_code = 0 + </if> + </trim> + </select> + + <select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_log AS t + WHERE t.id = #{id} + </select> + + + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_log ( + `job_group`, + `job_id`, + `trigger_time`, + `trigger_code`, + `handle_code` + ) VALUES ( + #{jobGroup}, + #{jobId}, + #{triggerTime}, + #{triggerCode}, + #{handleCode} + ); + <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> + SELECT LAST_INSERT_ID() + </selectKey>--> + </insert> + + <update id="updateTriggerInfo" > + UPDATE xxl_job_log + SET + `trigger_time`= #{triggerTime}, + `trigger_code`= #{triggerCode}, + `trigger_msg`= #{triggerMsg}, + `executor_address`= #{executorAddress}, + `executor_handler`=#{executorHandler}, + `executor_param`= #{executorParam}, + `executor_sharding_param`= #{executorShardingParam}, + `executor_fail_retry_count`= #{executorFailRetryCount} + WHERE `id`= #{id} + </update> + + <update id="updateHandleInfo"> + UPDATE xxl_job_log + SET + `handle_time`= #{handleTime}, + `handle_code`= #{handleCode}, + `handle_msg`= #{handleMsg} + WHERE `id`= #{id} + </update> + + <delete id="delete" > + delete from xxl_job_log + WHERE job_id = #{jobId} + </delete> <!--<select id="triggerCountByDay" resultType="java.util.Map" > - SELECT - DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay, - COUNT(handle_code) triggerDayCount, - SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, - SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc - FROM xxl_job_log - WHERE trigger_time BETWEEN #{from} and #{to} - GROUP BY triggerDay - ORDER BY triggerDay + SELECT + DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay, + COUNT(handle_code) triggerDayCount, + SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, + SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc + FROM xxl_job_log + WHERE trigger_time BETWEEN #{from} and #{to} + GROUP BY triggerDay + ORDER BY triggerDay </select>--> <select id="findLogReport" resultType="java.util.Map" > - SELECT - COUNT(handle_code) triggerDayCount, - SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, - SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc - FROM xxl_job_log - WHERE trigger_time BETWEEN #{from} and #{to} + SELECT + COUNT(handle_code) triggerDayCount, + SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, + SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc + FROM xxl_job_log + WHERE trigger_time BETWEEN #{from} and #{to} </select> - <select id="findClearLogIds" resultType="long" > - SELECT id FROM xxl_job_log - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobGroup gt 0"> - AND job_group = #{jobGroup} - </if> - <if test="jobId gt 0"> - AND job_id = #{jobId} - </if> - <if test="clearBeforeTime != null"> - AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime} - </if> - <if test="clearBeforeNum gt 0"> - AND id NOT in( - SELECT id FROM( - SELECT id FROM xxl_job_log AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="jobGroup gt 0"> - AND t.job_group = #{jobGroup} - </if> - <if test="jobId gt 0"> - AND t.job_id = #{jobId} - </if> - </trim> - ORDER BY t.trigger_time desc - LIMIT 0, #{clearBeforeNum} - ) t1 - ) - </if> - </trim> - order by id asc - LIMIT #{pagesize} - </select> + <select id="findClearLogIds" resultType="long" > + SELECT id FROM xxl_job_log + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobGroup gt 0"> + AND job_group = #{jobGroup} + </if> + <if test="jobId gt 0"> + AND job_id = #{jobId} + </if> + <if test="clearBeforeTime != null"> + AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime} + </if> + <if test="clearBeforeNum gt 0"> + AND id NOT in( + SELECT id FROM( + SELECT id FROM xxl_job_log AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="jobGroup gt 0"> + AND t.job_group = #{jobGroup} + </if> + <if test="jobId gt 0"> + AND t.job_id = #{jobId} + </if> + </trim> + ORDER BY t.trigger_time desc + LIMIT 0, #{clearBeforeNum} + ) t1 + ) + </if> + </trim> + order by id asc + LIMIT #{pagesize} + </select> - <delete id="clearLog" > - delete from xxl_job_log - WHERE id in - <foreach collection="logIds" item="item" open="(" close=")" separator="," > - #{item} - </foreach> - </delete> + <delete id="clearLog" > + delete from xxl_job_log + WHERE id in + <foreach collection="logIds" item="item" open="(" close=")" separator="," > + #{item} + </foreach> + </delete> - <select id="findFailJobLogIds" resultType="long" > - SELECT id FROM `xxl_job_log` - WHERE !( - (trigger_code in (0, 200) and handle_code = 0) - OR - (handle_code = 200) - ) - AND `alarm_status` = 0 - ORDER BY id ASC - LIMIT #{pagesize} - </select> + <select id="findFailJobLogIds" resultType="long" > + SELECT id FROM `xxl_job_log` + WHERE !( + (trigger_code in (0, 200) and handle_code = 0) + OR + (handle_code = 200) + ) + AND `alarm_status` = 0 + ORDER BY id ASC + LIMIT #{pagesize} + </select> - <update id="updateAlarmStatus" > - UPDATE xxl_job_log - SET - `alarm_status` = #{newAlarmStatus} - WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus} - </update> + <update id="updateAlarmStatus" > + UPDATE xxl_job_log + SET + `alarm_status` = #{newAlarmStatus} + WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus} + </update> - <select id="findLostJobIds" resultType="long" > - SELECT - t.id - FROM - xxl_job_log t - LEFT JOIN xxl_job_registry t2 ON t.executor_address = t2.registry_value - WHERE - t.trigger_code = 200 - AND t.handle_code = 0 - AND t.trigger_time <![CDATA[ <= ]]> #{losedTime} - AND t2.id IS NULL; - </select> - <!-- - SELECT t.id - FROM xxl_job_log AS t - WHERE t.trigger_code = 200 - and t.handle_code = 0 - and t.trigger_time <![CDATA[ <= ]]> #{losedTime} - and t.executor_address not in ( - SELECT t2.registry_value - FROM xxl_job_registry AS t2 - ) - --> + <select id="findLostJobIds" resultType="long" > + SELECT + t.id + FROM + xxl_job_log t + LEFT JOIN xxl_job_registry t2 ON t.executor_address = t2.registry_value + WHERE + t.trigger_code = 200 + AND t.handle_code = 0 + AND t.trigger_time <![CDATA[ <= ]]> #{losedTime} + AND t2.id IS NULL; + </select> + <!-- + SELECT t.id + FROM xxl_job_log AS t + WHERE t.trigger_code = 200 + and t.handle_code = 0 + and t.trigger_time <![CDATA[ <= ]]> #{losedTime} + and t.executor_address not in ( + SELECT t2.registry_value + FROM xxl_job_registry AS t2 + ) + --> -</mapper> \ No newline at end of file +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml index 579d5f3..a993a5b 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml @@ -1,62 +1,62 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobLogReportDao"> - - <resultMap id="XxlJobLogReport" type="com.xxl.job.admin.core.model.XxlJobLogReport" > - <result column="id" property="id" /> - <result column="trigger_day" property="triggerDay" /> - <result column="running_count" property="runningCount" /> - <result column="suc_count" property="sucCount" /> - <result column="fail_count" property="failCount" /> - </resultMap> - <sql id="Base_Column_List"> - t.id, - t.trigger_day, - t.running_count, - t.suc_count, - t.fail_count - </sql> - - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogReport" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_log_report ( - `trigger_day`, - `running_count`, - `suc_count`, - `fail_count` - ) VALUES ( - #{triggerDay}, - #{runningCount}, - #{sucCount}, - #{failCount} - ); - <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> - SELECT LAST_INSERT_ID() - </selectKey>--> - </insert> + <resultMap id="XxlJobLogReport" type="com.xxl.job.admin.core.model.XxlJobLogReport" > + <result column="id" property="id" /> + <result column="trigger_day" property="triggerDay" /> + <result column="running_count" property="runningCount" /> + <result column="suc_count" property="sucCount" /> + <result column="fail_count" property="failCount" /> + </resultMap> - <update id="update" > + <sql id="Base_Column_List"> + t.id, + t.trigger_day, + t.running_count, + t.suc_count, + t.fail_count + </sql> + + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogReport" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_log_report ( + `trigger_day`, + `running_count`, + `suc_count`, + `fail_count` + ) VALUES ( + #{triggerDay}, + #{runningCount}, + #{sucCount}, + #{failCount} + ); + <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> + SELECT LAST_INSERT_ID() + </selectKey>--> + </insert> + + <update id="update" > UPDATE xxl_job_log_report SET `running_count` = #{runningCount}, - `suc_count` = #{sucCount}, - `fail_count` = #{failCount} + `suc_count` = #{sucCount}, + `fail_count` = #{failCount} WHERE `trigger_day` = #{triggerDay} </update> - <select id="queryLogReport" resultMap="XxlJobLogReport"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_log_report AS t - WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo} - ORDER BY t.trigger_day ASC - </select> + <select id="queryLogReport" resultMap="XxlJobLogReport"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_log_report AS t + WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo} + ORDER BY t.trigger_day ASC + </select> - <select id="queryLogReportTotal" resultMap="XxlJobLogReport"> - SELECT - SUM(running_count) running_count, - SUM(suc_count) suc_count, - SUM(fail_count) fail_count - FROM xxl_job_log_report AS t - </select> + <select id="queryLogReportTotal" resultMap="XxlJobLogReport"> + SELECT + SUM(running_count) running_count, + SUM(suc_count) suc_count, + SUM(fail_count) fail_count + FROM xxl_job_log_report AS t + </select> -</mapper> \ No newline at end of file +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml index 4cae667..690841f 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml @@ -1,43 +1,43 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobRegistryDao"> - - <resultMap id="XxlJobRegistry" type="com.xxl.job.admin.core.model.XxlJobRegistry" > - <result column="id" property="id" /> - <result column="registry_group" property="registryGroup" /> - <result column="registry_key" property="registryKey" /> - <result column="registry_value" property="registryValue" /> - <result column="update_time" property="updateTime" /> - </resultMap> - <sql id="Base_Column_List"> - t.id, - t.registry_group, - t.registry_key, - t.registry_value, - t.update_time - </sql> + <resultMap id="XxlJobRegistry" type="com.xxl.job.admin.core.model.XxlJobRegistry" > + <result column="id" property="id" /> + <result column="registry_group" property="registryGroup" /> + <result column="registry_key" property="registryKey" /> + <result column="registry_value" property="registryValue" /> + <result column="update_time" property="updateTime" /> + </resultMap> - <select id="findDead" parameterType="java.util.HashMap" resultType="java.lang.Integer" > - SELECT t.id - FROM xxl_job_registry AS t - WHERE t.update_time <![CDATA[ < ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) - </select> - - <delete id="removeDead" parameterType="java.lang.Integer" > - DELETE FROM xxl_job_registry - WHERE id in - <foreach collection="ids" item="item" open="(" close=")" separator="," > - #{item} - </foreach> - </delete> + <sql id="Base_Column_List"> + t.id, + t.registry_group, + t.registry_key, + t.registry_value, + t.update_time + </sql> - <select id="findAll" parameterType="java.util.HashMap" resultMap="XxlJobRegistry"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_registry AS t - WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) - </select> + <select id="findDead" parameterType="java.util.HashMap" resultType="java.lang.Integer" > + SELECT t.id + FROM xxl_job_registry AS t + WHERE t.update_time <![CDATA[ < ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) + </select> + + <delete id="removeDead" parameterType="java.lang.Integer" > + DELETE FROM xxl_job_registry + WHERE id in + <foreach collection="ids" item="item" open="(" close=")" separator="," > + #{item} + </foreach> + </delete> + + <select id="findAll" parameterType="java.util.HashMap" resultMap="XxlJobRegistry"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_registry AS t + WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) + </select> <update id="registryUpdate" > UPDATE xxl_job_registry @@ -52,11 +52,11 @@ VALUES( #{registryGroup} , #{registryKey} , #{registryValue}, #{updateTime}) </insert> - <delete id="registryDelete" > - DELETE FROM xxl_job_registry - WHERE registry_group = #{registryGroup} - AND registry_key = #{registryKey} - AND registry_value = #{registryValue} - </delete> + <delete id="registryDelete" > + DELETE FROM xxl_job_registry + WHERE registry_group = #{registryGroup} + AND registry_key = #{registryKey} + AND registry_value = #{registryValue} + </delete> -</mapper> \ No newline at end of file +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml index 9e09b4a..334d2c5 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml @@ -1,87 +1,87 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxl.job.admin.dao.XxlJobUserDao"> - <resultMap id="XxlJobUser" type="com.xxl.job.admin.core.model.XxlJobUser" > - <result column="id" property="id" /> - <result column="username" property="username" /> - <result column="password" property="password" /> - <result column="role" property="role" /> - <result column="permission" property="permission" /> - </resultMap> + <resultMap id="XxlJobUser" type="com.xxl.job.admin.core.model.XxlJobUser" > + <result column="id" property="id" /> + <result column="username" property="username" /> + <result column="password" property="password" /> + <result column="role" property="role" /> + <result column="permission" property="permission" /> + </resultMap> - <sql id="Base_Column_List"> - t.id, - t.username, - t.password, - t.role, - t.permission - </sql> + <sql id="Base_Column_List"> + t.id, + t.username, + t.password, + t.role, + t.permission + </sql> - <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobUser"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_user AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="username != null and username != ''"> - AND t.username like CONCAT(CONCAT('%', #{username}), '%') - </if> - <if test="role gt -1"> - AND t.role = #{role} - </if> - </trim> - ORDER BY username ASC - LIMIT #{offset}, #{pagesize} - </select> + <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobUser"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_user AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="username != null and username != ''"> + AND t.username like CONCAT(CONCAT('%', #{username}), '%') + </if> + <if test="role gt -1"> + AND t.role = #{role} + </if> + </trim> + ORDER BY username ASC + LIMIT #{offset}, #{pagesize} + </select> - <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> - SELECT count(1) - FROM xxl_job_user AS t - <trim prefix="WHERE" prefixOverrides="AND | OR" > - <if test="username != null and username != ''"> - AND t.username like CONCAT(CONCAT('%', #{username}), '%') - </if> - <if test="role gt -1"> - AND t.role = #{role} - </if> - </trim> - </select> + <select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> + SELECT count(1) + FROM xxl_job_user AS t + <trim prefix="WHERE" prefixOverrides="AND | OR" > + <if test="username != null and username != ''"> + AND t.username like CONCAT(CONCAT('%', #{username}), '%') + </if> + <if test="role gt -1"> + AND t.role = #{role} + </if> + </trim> + </select> - <select id="loadByUserName" parameterType="java.util.HashMap" resultMap="XxlJobUser"> - SELECT <include refid="Base_Column_List" /> - FROM xxl_job_user AS t - WHERE t.username = #{username} - </select> + <select id="loadByUserName" parameterType="java.util.HashMap" resultMap="XxlJobUser"> + SELECT <include refid="Base_Column_List" /> + FROM xxl_job_user AS t + WHERE t.username = #{username} + </select> - <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobUser" useGeneratedKeys="true" keyProperty="id" > - INSERT INTO xxl_job_user ( - username, - password, - role, - permission - ) VALUES ( - #{username}, - #{password}, - #{role}, - #{permission} - ); - </insert> + <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobUser" useGeneratedKeys="true" keyProperty="id" > + INSERT INTO xxl_job_user ( + username, + password, + role, + permission + ) VALUES ( + #{username}, + #{password}, + #{role}, + #{permission} + ); + </insert> - <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobUser" > - UPDATE xxl_job_user - SET - <if test="password != null and password != ''"> - password = #{password}, - </if> - role = #{role}, - permission = #{permission} - WHERE id = #{id} - </update> + <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobUser" > + UPDATE xxl_job_user + SET + <if test="password != null and password != ''"> + password = #{password}, + </if> + role = #{role}, + permission = #{permission} + WHERE id = #{id} + </update> - <delete id="delete" parameterType="java.util.HashMap"> - DELETE - FROM xxl_job_user - WHERE id = #{id} - </delete> + <delete id="delete" parameterType="java.util.HashMap"> + DELETE + FROM xxl_job_user + WHERE id = #{id} + </delete> -</mapper> \ No newline at end of file +</mapper> diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/user.index.1.js b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/user.index.1.js index 48d3f30..1d83461 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/user.index.1.js +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/user.index.1.js @@ -1,48 +1,48 @@ $(function() { - // init date tables - var userListTable = $("#user_list").dataTable({ - "deferRender": true, - "processing" : true, - "serverSide": true, - "ajax": { - url: base_url + "/user/pageList", - type:"post", - data : function ( d ) { - var obj = {}; + // init date tables + var userListTable = $("#user_list").dataTable({ + "deferRender": true, + "processing" : true, + "serverSide": true, + "ajax": { + url: base_url + "/user/pageList", + type:"post", + data : function ( d ) { + var obj = {}; obj.username = $('#username').val(); obj.role = $('#role').val(); - obj.start = d.start; - obj.length = d.length; + obj.start = d.start; + obj.length = d.length; return obj; } - }, - "searching": false, - "ordering": false, - //"scrollX": true, // scroll x锛宑lose self-adaption - "columns": [ - { - "data": 'id', - "visible" : false, - "width":'10%' - }, - { - "data": 'username', - "visible" : true, - "width":'20%' - }, - { - "data": 'password', - "visible" : false, + }, + "searching": false, + "ordering": false, + //"scrollX": true, // scroll x锛宑lose self-adaption + "columns": [ + { + "data": 'id', + "visible" : false, + "width":'10%' + }, + { + "data": 'username', + "visible" : true, + "width":'20%' + }, + { + "data": 'password', + "visible" : false, "width":'20%', "render": function ( data, type, row ) { return '*********'; } - }, - { - "data": 'role', - "visible" : true, - "width":'10%', + }, + { + "data": 'role', + "visible" : true, + "width":'10%', "render": function ( data, type, row ) { if (data == 1) { return I18n.user_role_admin @@ -50,101 +50,101 @@ return I18n.user_role_normal } } - }, - { - "data": 'permission', - "width":'10%', - "visible" : false - }, - { - "data": I18n.system_opt , - "width":'15%', - "render": function ( data, type, row ) { - return function(){ - // html + }, + { + "data": 'permission', + "width":'10%', + "visible" : false + }, + { + "data": I18n.system_opt , + "width":'15%', + "render": function ( data, type, row ) { + return function(){ + // html tableData['key'+row.id] = row; - var html = '<p id="'+ row.id +'" >'+ - '<button class="btn btn-warning btn-xs update" type="button">'+ I18n.system_opt_edit +'</button> '+ - '<button class="btn btn-danger btn-xs delete" type="button">'+ I18n.system_opt_del +'</button> '+ - '</p>'; + var html = '<p id="'+ row.id +'" >'+ + '<button class="btn btn-warning btn-xs update" type="button">'+ I18n.system_opt_edit +'</button> '+ + '<button class="btn btn-danger btn-xs delete" type="button">'+ I18n.system_opt_del +'</button> '+ + '</p>'; - return html; - }; - } - } - ], - "language" : { - "sProcessing" : I18n.dataTable_sProcessing , - "sLengthMenu" : I18n.dataTable_sLengthMenu , - "sZeroRecords" : I18n.dataTable_sZeroRecords , - "sInfo" : I18n.dataTable_sInfo , - "sInfoEmpty" : I18n.dataTable_sInfoEmpty , - "sInfoFiltered" : I18n.dataTable_sInfoFiltered , - "sInfoPostFix" : "", - "sSearch" : I18n.dataTable_sSearch , - "sUrl" : "", - "sEmptyTable" : I18n.dataTable_sEmptyTable , - "sLoadingRecords" : I18n.dataTable_sLoadingRecords , - "sInfoThousands" : ",", - "oPaginate" : { - "sFirst" : I18n.dataTable_sFirst , - "sPrevious" : I18n.dataTable_sPrevious , - "sNext" : I18n.dataTable_sNext , - "sLast" : I18n.dataTable_sLast - }, - "oAria" : { - "sSortAscending" : I18n.dataTable_sSortAscending , - "sSortDescending" : I18n.dataTable_sSortDescending - } - } - }); + return html; + }; + } + } + ], + "language" : { + "sProcessing" : I18n.dataTable_sProcessing , + "sLengthMenu" : I18n.dataTable_sLengthMenu , + "sZeroRecords" : I18n.dataTable_sZeroRecords , + "sInfo" : I18n.dataTable_sInfo , + "sInfoEmpty" : I18n.dataTable_sInfoEmpty , + "sInfoFiltered" : I18n.dataTable_sInfoFiltered , + "sInfoPostFix" : "", + "sSearch" : I18n.dataTable_sSearch , + "sUrl" : "", + "sEmptyTable" : I18n.dataTable_sEmptyTable , + "sLoadingRecords" : I18n.dataTable_sLoadingRecords , + "sInfoThousands" : ",", + "oPaginate" : { + "sFirst" : I18n.dataTable_sFirst , + "sPrevious" : I18n.dataTable_sPrevious , + "sNext" : I18n.dataTable_sNext , + "sLast" : I18n.dataTable_sLast + }, + "oAria" : { + "sSortAscending" : I18n.dataTable_sSortAscending , + "sSortDescending" : I18n.dataTable_sSortDescending + } + } + }); // table data var tableData = {}; - // search btn - $('#searchBtn').on('click', function(){ + // search btn + $('#searchBtn').on('click', function(){ userListTable.fnDraw(); - }); - - // job operate - $("#user_list").on('click', '.delete',function() { - var id = $(this).parent('p').attr("id"); + }); - layer.confirm( I18n.system_ok + I18n.system_opt_del + '?', { - icon: 3, - title: I18n.system_tips , + // job operate + $("#user_list").on('click', '.delete',function() { + var id = $(this).parent('p').attr("id"); + + layer.confirm( I18n.system_ok + I18n.system_opt_del + '?', { + icon: 3, + title: I18n.system_tips , btn: [ I18n.system_ok, I18n.system_cancel ] - }, function(index){ - layer.close(index); + }, function(index){ + layer.close(index); - $.ajax({ - type : 'POST', - url : base_url + "/user/remove", - data : { - "id" : id - }, - dataType : "json", - success : function(data){ - if (data.code == 200) { + $.ajax({ + type : 'POST', + url : base_url + "/user/remove", + data : { + "id" : id + }, + dataType : "json", + success : function(data){ + if (data.code == 200) { layer.msg( I18n.system_success ); - userListTable.fnDraw(false); - } else { + userListTable.fnDraw(false); + } else { layer.msg( data.msg || I18n.system_opt_del + I18n.system_fail ); - } - } - }); - }); - }); + } + } + }); + }); + }); - // add role + // add role $("#addModal .form input[name=role]").change(function () { - var role = $(this).val(); - if (role == 1) { + var role = $(this).val(); + if (role == 1) { $("#addModal .form input[name=permission]").parents('.form-group').hide(); - } else { + } else { $("#addModal .form input[name=permission]").parents('.form-group').show(); - } + } $("#addModal .form input[name='permission']").prop("checked",false); }); @@ -154,28 +154,28 @@ return this.optional(element) || valid.test(value); }, I18n.user_username_valid ); - // add - $(".add").click(function(){ - $('#addModal').modal({backdrop: false, keyboard: false}).modal('show'); - }); - var addModalValidate = $("#addModal .form").validate({ - errorElement : 'span', + // add + $(".add").click(function(){ + $('#addModal').modal({backdrop: false, keyboard: false}).modal('show'); + }); + var addModalValidate = $("#addModal .form").validate({ + errorElement : 'span', errorClass : 'help-block', - focusInvalid : true, + focusInvalid : true, rules : { username : { - required : true, + required : true, rangelength:[4, 20], myValid01: true - }, + }, password : { required : true, rangelength:[4, 20] } - }, + }, messages : { username : { - required : I18n.system_please_input + I18n.user_username, + required : I18n.system_please_input + I18n.user_username, rangelength: I18n.system_lengh_limit + "[4-20]" }, password : { @@ -183,15 +183,15 @@ rangelength: I18n.system_lengh_limit + "[4-20]" } }, - highlight : function(element) { - $(element).closest('.form-group').addClass('has-error'); + highlight : function(element) { + $(element).closest('.form-group').addClass('has-error'); }, - success : function(label) { - label.closest('.form-group').removeClass('has-error'); - label.remove(); + success : function(label) { + label.closest('.form-group').removeClass('has-error'); + label.remove(); }, - errorPlacement : function(error, element) { - element.parent('div').append(error); + errorPlacement : function(error, element) { + element.parent('div').append(error); }, submitHandler : function(form) { @@ -200,38 +200,38 @@ permissionArr.push($(this).val()); }); - var paramData = { - "username": $("#addModal .form input[name=username]").val(), + var paramData = { + "username": $("#addModal .form input[name=username]").val(), "password": $("#addModal .form input[name=password]").val(), "role": $("#addModal .form input[name=role]:checked").val(), "permission": permissionArr.join(',') - }; + }; - $.post(base_url + "/user/add", paramData, function(data, status) { - if (data.code == "200") { - $('#addModal').modal('hide'); + $.post(base_url + "/user/add", paramData, function(data, status) { + if (data.code == "200") { + $('#addModal').modal('hide'); layer.msg( I18n.system_add_suc ); userListTable.fnDraw(); - } else { - layer.open({ - title: I18n.system_tips , + } else { + layer.open({ + title: I18n.system_tips , btn: [ I18n.system_ok ], - content: (data.msg || I18n.system_add_fail), - icon: '2' - }); - } - }); - } - }); - $("#addModal").on('hide.bs.modal', function () { - $("#addModal .form")[0].reset(); - addModalValidate.resetForm(); - $("#addModal .form .form-group").removeClass("has-error"); - $(".remote_panel").show(); // remote + content: (data.msg || I18n.system_add_fail), + icon: '2' + }); + } + }); + } + }); + $("#addModal").on('hide.bs.modal', function () { + $("#addModal .form")[0].reset(); + addModalValidate.resetForm(); + $("#addModal .form .form-group").removeClass("has-error"); + $(".remote_panel").show(); // remote $("#addModal .form input[name=permission]").parents('.form-group').show(); - }); + }); // update role $("#updateModal .form input[name=role]").change(function () { @@ -244,21 +244,21 @@ $("#updateModal .form input[name='permission']").prop("checked",false); }); - // update - $("#user_list").on('click', '.update',function() { + // update + $("#user_list").on('click', '.update',function() { var id = $(this).parent('p').attr("id"); var row = tableData['key'+id]; - // base data - $("#updateModal .form input[name='id']").val( row.id ); - $("#updateModal .form input[name='username']").val( row.username ); - $("#updateModal .form input[name='password']").val( '' ); - $("#updateModal .form input[name='role'][value='"+ row.role +"']").click(); + // base data + $("#updateModal .form input[name='id']").val( row.id ); + $("#updateModal .form input[name='username']").val( row.username ); + $("#updateModal .form input[name='password']").val( '' ); + $("#updateModal .form input[name='role'][value='"+ row.role +"']").click(); var permissionArr = []; if (row.permission) { permissionArr = row.permission.split(","); - } + } $("#updateModal .form input[name='permission']").each(function () { if($.inArray($(this).val(), permissionArr) > -1) { $(this).prop("checked",true); @@ -267,22 +267,22 @@ } }); - // show - $('#updateModal').modal({backdrop: false, keyboard: false}).modal('show'); - }); - var updateModalValidate = $("#updateModal .form").validate({ - errorElement : 'span', + // show + $('#updateModal').modal({backdrop: false, keyboard: false}).modal('show'); + }); + var updateModalValidate = $("#updateModal .form").validate({ + errorElement : 'span', errorClass : 'help-block', focusInvalid : true, - highlight : function(element) { - $(element).closest('.form-group').addClass('has-error'); + highlight : function(element) { + $(element).closest('.form-group').addClass('has-error'); }, - success : function(label) { - label.closest('.form-group').removeClass('has-error'); - label.remove(); + success : function(label) { + label.closest('.form-group').removeClass('has-error'); + label.remove(); }, - errorPlacement : function(error, element) { - element.parent('div').append(error); + errorPlacement : function(error, element) { + element.parent('div').append(error); }, submitHandler : function(form) { @@ -314,15 +314,15 @@ }); } }); - } - }); - $("#updateModal").on('hide.bs.modal', function () { + } + }); + $("#updateModal").on('hide.bs.modal', function () { $("#updateModal .form")[0].reset(); updateModalValidate.resetForm(); $("#updateModal .form .form-group").removeClass("has-error"); - $(".remote_panel").show(); // remote + $(".remote_panel").show(); // remote $("#updateModal .form input[name=permission]").parents('.form-group').show(); - }); + }); }); diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml index be07a9c..7ef9744 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.generator.mapper.GenTableColumnMapper"> - + <resultMap type="GenTableColumn" id="GenTableColumnResult"> <id property="columnId" column="column_id" /> <result property="tableId" column="table_id" /> @@ -28,11 +28,11 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> </resultMap> - - <select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult"> - select column_name, (case when (is_nullable = 'no' <![CDATA[ && ]]> column_key != 'PRI') then '1' else null end) as is_required, (case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort, column_comment, (case when extra = 'auto_increment' then '1' else '0' end) as is_increment, column_type - from information_schema.columns where table_schema = (select database()) and table_name = (#{tableName}) - order by ordinal_position - </select> -</mapper> \ No newline at end of file + <select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult"> + select column_name, (case when (is_nullable = 'no' <![CDATA[ && ]]> column_key != 'PRI') then '1' else null end) as is_required, (case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort, column_comment, (case when extra = 'auto_increment' then '1' else '0' end) as is_increment, column_type + from information_schema.columns where table_schema = (select database()) and table_name = (#{tableName}) + order by ordinal_position + </select> + +</mapper> diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index 1aa9ea5..8f0c269 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -4,31 +4,31 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.generator.mapper.GenTableMapper"> - <resultMap type="GenTable" id="GenTableResult"> - <id property="tableId" column="table_id" /> - <result property="tableName" column="table_name" /> - <result property="tableComment" column="table_comment" /> - <result property="subTableName" column="sub_table_name" /> - <result property="subTableFkName" column="sub_table_fk_name" /> - <result property="className" column="class_name" /> - <result property="tplCategory" column="tpl_category" /> - <result property="packageName" column="package_name" /> - <result property="moduleName" column="module_name" /> - <result property="businessName" column="business_name" /> - <result property="functionName" column="function_name" /> - <result property="functionAuthor" column="function_author" /> - <result property="genType" column="gen_type" /> - <result property="genPath" column="gen_path" /> - <result property="options" column="options" /> - <result property="createBy" column="create_by" /> - <result property="createTime" column="create_time" /> - <result property="updateBy" column="update_by" /> - <result property="updateTime" column="update_time" /> - <result property="remark" column="remark" /> - <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> - </resultMap> + <resultMap type="GenTable" id="GenTableResult"> + <id property="tableId" column="table_id" /> + <result property="tableName" column="table_name" /> + <result property="tableComment" column="table_comment" /> + <result property="subTableName" column="sub_table_name" /> + <result property="subTableFkName" column="sub_table_fk_name" /> + <result property="className" column="class_name" /> + <result property="tplCategory" column="tpl_category" /> + <result property="packageName" column="package_name" /> + <result property="moduleName" column="module_name" /> + <result property="businessName" column="business_name" /> + <result property="functionName" column="function_name" /> + <result property="functionAuthor" column="function_author" /> + <result property="genType" column="gen_type" /> + <result property="genPath" column="gen_path" /> + <result property="options" column="options" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + <result property="remark" column="remark" /> + <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> + </resultMap> - <resultMap type="GenTableColumn" id="GenTableColumnResult"> + <resultMap type="GenTableColumn" id="GenTableColumnResult"> <id property="columnId" column="column_id" /> <result property="tableId" column="table_id" /> <result property="columnName" column="column_name" /> @@ -53,124 +53,124 @@ <result property="updateTime" column="update_time" /> </resultMap> - <sql id="selectGenTableVo"> + <sql id="selectGenTableVo"> select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table </sql> - <select id="selectPageGenTableList" parameterType="GenTable" resultMap="GenTableResult"> - <include refid="selectGenTableVo"/> - <where> - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) - </if> - <if test="genTable.params.beginTime != null and genTable.params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> - AND date_format(create_time,'%y%m%d') >= date_format(#{genTable.params.beginTime},'%y%m%d') - </if> - <if test="genTable.params.endTime != null and genTable.params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> - AND date_format(create_time,'%y%m%d') <= date_format(#{genTable.params.endTime},'%y%m%d') - </if> - </where> - </select> + <select id="selectPageGenTableList" parameterType="GenTable" resultMap="GenTableResult"> + <include refid="selectGenTableVo"/> + <where> + <if test="genTable.tableName != null and genTable.tableName != ''"> + AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) + </if> + <if test="genTable.tableComment != null and genTable.tableComment != ''"> + AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) + </if> + <if test="genTable.params.beginTime != null and genTable.params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> + AND date_format(create_time,'%y%m%d') >= date_format(#{genTable.params.beginTime},'%y%m%d') + </if> + <if test="genTable.params.endTime != null and genTable.params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> + AND date_format(create_time,'%y%m%d') <= date_format(#{genTable.params.endTime},'%y%m%d') + </if> + </where> + </select> - <select id="selectPageDbTableList" parameterType="GenTable" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_schema = (select database()) - AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT IN (select table_name from gen_table) - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) - </if> - <if test="genTable.params.beginTime != null and genTable.params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> - AND date_format(create_time,'%y%m%d') >= date_format(#{genTable.params.beginTime},'%y%m%d') - </if> - <if test="genTable.params.endTime != null and genTable.params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> - AND date_format(create_time,'%y%m%d') <= date_format(#{genTable.params.endTime},'%y%m%d') - </if> - order by create_time desc - </select> - - - <select id="selectGenTableList" parameterType="GenTable" resultMap="GenTableResult"> - <include refid="selectGenTableVo"/> - <where> - <if test="tableName != null and tableName != ''"> - AND lower(table_name) like lower(concat('%', #{tableName}, '%')) - </if> - <if test="tableComment != null and tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) - </if> - <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> - AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') - </if> - <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> - AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') - </if> - </where> - </select> - - <select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_schema = (select database()) - AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT IN (select table_name from gen_table) - <if test="tableName != null and tableName != ''"> - AND lower(table_name) like lower(concat('%', #{tableName}, '%')) - </if> - <if test="tableComment != null and tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) - </if> - <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> - AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') - </if> - <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> - AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') - </if> + <select id="selectPageDbTableList" parameterType="GenTable" resultMap="GenTableResult"> + select table_name, table_comment, create_time, update_time from information_schema.tables + where table_schema = (select database()) + AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%' + AND table_name NOT IN (select table_name from gen_table) + <if test="genTable.tableName != null and genTable.tableName != ''"> + AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) + </if> + <if test="genTable.tableComment != null and genTable.tableComment != ''"> + AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) + </if> + <if test="genTable.params.beginTime != null and genTable.params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> + AND date_format(create_time,'%y%m%d') >= date_format(#{genTable.params.beginTime},'%y%m%d') + </if> + <if test="genTable.params.endTime != null and genTable.params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> + AND date_format(create_time,'%y%m%d') <= date_format(#{genTable.params.endTime},'%y%m%d') + </if> order by create_time desc - </select> + </select> - <select id="selectDbTableListByNames" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database()) - and table_name in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} + + <select id="selectGenTableList" parameterType="GenTable" resultMap="GenTableResult"> + <include refid="selectGenTableVo"/> + <where> + <if test="tableName != null and tableName != ''"> + AND lower(table_name) like lower(concat('%', #{tableName}, '%')) + </if> + <if test="tableComment != null and tableComment != ''"> + AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) + </if> + <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> + AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + </if> + <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> + AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + </if> + </where> + </select> + + <select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult"> + select table_name, table_comment, create_time, update_time from information_schema.tables + where table_schema = (select database()) + AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%' + AND table_name NOT IN (select table_name from gen_table) + <if test="tableName != null and tableName != ''"> + AND lower(table_name) like lower(concat('%', #{tableName}, '%')) + </if> + <if test="tableComment != null and tableComment != ''"> + AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) + </if> + <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> + AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + </if> + <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> + AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + </if> + order by create_time desc + </select> + + <select id="selectDbTableListByNames" resultMap="GenTableResult"> + select table_name, table_comment, create_time, update_time from information_schema.tables + where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database()) + and table_name in + <foreach collection="array" item="name" open="(" separator="," close=")"> + #{name} </foreach> - </select> + </select> - <select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_comment <![CDATA[ <> ]]> '' and table_schema = (select database()) - and table_name = #{tableName} - </select> + <select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> + select table_name, table_comment, create_time, update_time from information_schema.tables + where table_comment <![CDATA[ <> ]]> '' and table_schema = (select database()) + and table_name = #{tableName} + </select> - <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult"> - SELECT t.table_id, 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 - where t.table_id = #{tableId} order by c.sort - </select> + <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult"> + SELECT t.table_id, 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 + where t.table_id = #{tableId} order by c.sort + </select> - <select id="selectGenTableByName" parameterType="String" resultMap="GenTableResult"> - SELECT t.table_id, 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 - where t.table_name = #{tableName} order by c.sort - </select> + <select id="selectGenTableByName" parameterType="String" resultMap="GenTableResult"> + SELECT t.table_id, 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 + where t.table_name = #{tableName} order by c.sort + </select> - <select id="selectGenTableAll" parameterType="String" resultMap="GenTableResult"> - SELECT t.table_id, 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.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 - order by c.sort - </select> + <select id="selectGenTableAll" parameterType="String" resultMap="GenTableResult"> + SELECT t.table_id, 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.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 + order by c.sort + </select> </mapper> diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java index b5236bf..fe966aa 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java @@ -10,29 +10,29 @@ */ public class OssConstant { - /** - * OSS妯″潡KEY - */ - public static final String SYS_OSS_KEY = "sys_oss:"; + /** + * OSS妯″潡KEY + */ + public static final String SYS_OSS_KEY = "sys_oss:"; - /** - * 瀵硅薄瀛樺偍閰嶇疆KEY - */ - public static final String OSS_CONFIG_KEY = "OssConfig"; + /** + * 瀵硅薄瀛樺偍閰嶇疆KEY + */ + public static final String OSS_CONFIG_KEY = "OssConfig"; - /** - * 缂撳瓨閰嶇疆KEY - */ - public static final String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY; + /** + * 缂撳瓨閰嶇疆KEY + */ + public static final String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY; - /** - * 棰勮鍒楄〃璧勬簮寮�鍏矺ey - */ - public static final String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource"; + /** + * 棰勮鍒楄〃璧勬簮寮�鍏矺ey + */ + public static final String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource"; - /** - * 绯荤粺鏁版嵁ids - */ - public static final List<Integer> SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4); + /** + * 绯荤粺鏁版嵁ids + */ + public static final List<Integer> SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4); } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java index cb4f620..11f9a9b 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java @@ -14,13 +14,13 @@ @Accessors(chain = true) public class UploadResult { - /** - * 鏂囦欢璺緞 - */ - private String url; + /** + * 鏂囦欢璺緞 + */ + private String url; - /** - * 鏂囦欢鍚� - */ - private String filename; + /** + * 鏂囦欢鍚� + */ + private String filename; } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/OssEnumd.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/OssEnumd.java index 4defca4..57f232a 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/OssEnumd.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/OssEnumd.java @@ -17,47 +17,47 @@ @AllArgsConstructor public enum OssEnumd { - /** - * 涓冪墰浜� - */ - QINIU("qiniu", QiniuOssStrategy.class), + /** + * 涓冪墰浜� + */ + QINIU("qiniu", QiniuOssStrategy.class), - /** - * 闃块噷浜� - */ - ALIYUN("aliyun", AliyunOssStrategy.class), + /** + * 闃块噷浜� + */ + ALIYUN("aliyun", AliyunOssStrategy.class), - /** - * 鑵捐浜� - */ - QCLOUD("qcloud", QcloudOssStrategy.class), + /** + * 鑵捐浜� + */ + QCLOUD("qcloud", QcloudOssStrategy.class), - /** - * minio - */ - MINIO("minio", MinioOssStrategy.class); + /** + * minio + */ + MINIO("minio", MinioOssStrategy.class); - private final String value; + private final String value; - private final Class<?> serviceClass; + private final Class<?> serviceClass; - public static Class<?> getServiceClass(String value) { - for (OssEnumd clazz : values()) { - if (clazz.getValue().equals(value)) { - return clazz.getServiceClass(); - } - } - return null; - } + public static Class<?> getServiceClass(String value) { + for (OssEnumd clazz : values()) { + if (clazz.getValue().equals(value)) { + return clazz.getServiceClass(); + } + } + return null; + } - public static String getServiceName(String value) { - for (OssEnumd clazz : values()) { - if (clazz.getValue().equals(value)) { - return StringUtils.uncapitalize(clazz.getServiceClass().getSimpleName()); - } - } - return null; - } + public static String getServiceName(String value) { + for (OssEnumd clazz : values()) { + if (clazz.getValue().equals(value)) { + return StringUtils.uncapitalize(clazz.getServiceClass().getSimpleName()); + } + } + return null; + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java index c10dceb..e1925dc 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java @@ -28,24 +28,24 @@ @AllArgsConstructor public enum PolicyType { - /** - * 鍙 - */ - READ("read-only"), + /** + * 鍙 + */ + READ("read-only"), - /** - * 鍙啓 - */ - WRITE("write-only"), + /** + * 鍙啓 + */ + WRITE("write-only"), - /** - * 璇诲啓 - */ - READ_WRITE("read-write"); + /** + * 璇诲啓 + */ + READ_WRITE("read-write"); - /** - * 绫诲瀷 - */ - private final String type; + /** + * 绫诲瀷 + */ + private final String type; } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java index 48ab618..540b1cc 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java @@ -7,10 +7,10 @@ */ public class OssException extends RuntimeException { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - public OssException(String msg) { - super(msg); - } + public OssException(String msg) { + super(msg); + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java index 9a421c1..3652f64 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java @@ -23,10 +23,10 @@ @Slf4j public class OssFactory { - /** - * 鏈嶅姟瀹炰緥缂撳瓨 - */ - private static final Map<String, IOssStrategy> SERVICES = new ConcurrentHashMap<>(); + /** + * 鏈嶅姟瀹炰緥缂撳瓨 + */ + private static final Map<String, IOssStrategy> SERVICES = new ConcurrentHashMap<>(); /** * 鍒濆鍖栧伐鍘� @@ -42,40 +42,40 @@ }); } - /** - * 鑾峰彇榛樿瀹炰緥 - */ - public static IOssStrategy instance() { - // 鑾峰彇redis 榛樿绫诲瀷 - String type = RedisUtils.getCacheObject(OssConstant.CACHE_CONFIG_KEY); - if (StringUtils.isEmpty(type)) { - throw new OssException("鏂囦欢瀛樺偍鏈嶅姟绫诲瀷鏃犳硶鎵惧埌!"); - } - return instance(type); - } + /** + * 鑾峰彇榛樿瀹炰緥 + */ + public static IOssStrategy instance() { + // 鑾峰彇redis 榛樿绫诲瀷 + String type = RedisUtils.getCacheObject(OssConstant.CACHE_CONFIG_KEY); + if (StringUtils.isEmpty(type)) { + throw new OssException("鏂囦欢瀛樺偍鏈嶅姟绫诲瀷鏃犳硶鎵惧埌!"); + } + return instance(type); + } - /** - * 鏍规嵁绫诲瀷鑾峰彇瀹炰緥 - */ - public static IOssStrategy instance(String type) { + /** + * 鏍规嵁绫诲瀷鑾峰彇瀹炰緥 + */ + public static IOssStrategy instance(String type) { IOssStrategy service = SERVICES.get(type); - if (service == null) { - refreshService(type); - service = SERVICES.get(type); - } - return service; - } + if (service == null) { + refreshService(type); + service = SERVICES.get(type); + } + return service; + } - private static void refreshService(String type) { - Object json = RedisUtils.getCacheObject(OssConstant.SYS_OSS_KEY + type); + private static void refreshService(String type) { + Object json = RedisUtils.getCacheObject(OssConstant.SYS_OSS_KEY + type); OssProperties properties = JsonUtils.parseObject(json.toString(), OssProperties.class); - if (properties == null) { - throw new OssException("绯荤粺寮傚父, '" + type + "'閰嶇疆淇℃伅涓嶅瓨鍦�!"); - } - // 鑾峰彇redis閰嶇疆淇℃伅 鍒涘缓瀵硅薄 骞剁紦瀛� + if (properties == null) { + throw new OssException("绯荤粺寮傚父, '" + type + "'閰嶇疆淇℃伅涓嶅瓨鍦�!"); + } + // 鑾峰彇redis閰嶇疆淇℃伅 鍒涘缓瀵硅薄 骞剁紦瀛� IOssStrategy service = (IOssStrategy) ReflectUtils.newInstance(OssEnumd.getServiceClass(type)); - ((AbstractOssStrategy)service).init(properties); - SERVICES.put(type, service); - } + ((AbstractOssStrategy)service).init(properties); + SERVICES.put(type, service); + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java index 48a478b..d09bfdb 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java @@ -10,39 +10,39 @@ @Data public class OssProperties { - /** - * 鍩熷悕 - */ - private String endpoint; + /** + * 鍩熷悕 + */ + private String endpoint; - /** - * 鍓嶇紑 - */ - private String prefix; + /** + * 鍓嶇紑 + */ + private String prefix; - /** - * ACCESS_KEY - */ - private String accessKey; + /** + * ACCESS_KEY + */ + private String accessKey; - /** - * SECRET_KEY - */ - private String secretKey; + /** + * SECRET_KEY + */ + private String secretKey; - /** - * 瀛樺偍绌洪棿鍚� - */ - private String bucketName; + /** + * 瀛樺偍绌洪棿鍚� + */ + private String bucketName; - /** - * 瀛樺偍鍖哄煙 - */ - private String region; + /** + * 瀛樺偍鍖哄煙 + */ + private String region; - /** - * 鏄惁https锛圷=鏄�,N=鍚︼級 - */ - private String isHttps; + /** + * 鏄惁https锛圷=鏄�,N=鍚︼級 + */ + private String isHttps; } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/IOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/IOssStrategy.java index 34d25e4..2a8ef4e 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/IOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/IOssStrategy.java @@ -11,54 +11,54 @@ */ public interface IOssStrategy { - void createBucket(); + void createBucket(); - /** - * 鑾峰彇鏈嶅姟鍟嗙被鍨� - */ - String getServiceType(); + /** + * 鑾峰彇鏈嶅姟鍟嗙被鍨� + */ + String getServiceType(); - /** - * 鏂囦欢涓婁紶 - * - * @param data 鏂囦欢瀛楄妭鏁扮粍 - * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 - * @return 杩斿洖http鍦板潃 - */ - UploadResult upload(byte[] data, String path, String contentType); + /** + * 鏂囦欢涓婁紶 + * + * @param data 鏂囦欢瀛楄妭鏁扮粍 + * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 + * @return 杩斿洖http鍦板潃 + */ + UploadResult upload(byte[] data, String path, String contentType); - /** - * 鏂囦欢鍒犻櫎 - * - * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 - */ - void delete(String path); + /** + * 鏂囦欢鍒犻櫎 + * + * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 + */ + void delete(String path); - /** - * 鏂囦欢涓婁紶 - * - * @param data 鏂囦欢瀛楄妭鏁扮粍 - * @param suffix 鍚庣紑 - * @return 杩斿洖http鍦板潃 - */ - UploadResult uploadSuffix(byte[] data, String suffix, String contentType); + /** + * 鏂囦欢涓婁紶 + * + * @param data 鏂囦欢瀛楄妭鏁扮粍 + * @param suffix 鍚庣紑 + * @return 杩斿洖http鍦板潃 + */ + UploadResult uploadSuffix(byte[] data, String suffix, String contentType); - /** - * 鏂囦欢涓婁紶 - * - * @param inputStream 瀛楄妭娴� - * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 - * @return 杩斿洖http鍦板潃 - */ - UploadResult upload(InputStream inputStream, String path, String contentType); + /** + * 鏂囦欢涓婁紶 + * + * @param inputStream 瀛楄妭娴� + * @param path 鏂囦欢璺緞锛屽寘鍚枃浠跺悕 + * @return 杩斿洖http鍦板潃 + */ + UploadResult upload(InputStream inputStream, String path, String contentType); - /** - * 鏂囦欢涓婁紶 - * - * @param inputStream 瀛楄妭娴� - * @param suffix 鍚庣紑 - * @return 杩斿洖http鍦板潃 - */ - UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType); + /** + * 鏂囦欢涓婁紶 + * + * @param inputStream 瀛楄妭娴� + * @param suffix 鍚庣紑 + * @return 杩斿洖http鍦板潃 + */ + UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType); } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractOssStrategy.java index 9fa52ac..6ad4f12 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractOssStrategy.java @@ -17,44 +17,44 @@ */ public abstract class AbstractOssStrategy implements IOssStrategy { - protected OssProperties properties; + protected OssProperties properties; - public abstract void init(OssProperties properties); + public abstract void init(OssProperties properties); - @Override - public abstract void createBucket(); + @Override + public abstract void createBucket(); - @Override - public abstract String getServiceType(); + @Override + public abstract String getServiceType(); - public String getPath(String prefix, String suffix) { - // 鐢熸垚uuid - String uuid = IdUtil.fastSimpleUUID(); - // 鏂囦欢璺緞 - String path = DateUtils.datePath() + "/" + uuid; - if (StringUtils.isNotBlank(prefix)) { - path = prefix + "/" + path; - } - return path + suffix; - } + public String getPath(String prefix, String suffix) { + // 鐢熸垚uuid + String uuid = IdUtil.fastSimpleUUID(); + // 鏂囦欢璺緞 + String path = DateUtils.datePath() + "/" + uuid; + if (StringUtils.isNotBlank(prefix)) { + path = prefix + "/" + path; + } + return path + suffix; + } - @Override - public abstract UploadResult upload(byte[] data, String path, String contentType); + @Override + public abstract UploadResult upload(byte[] data, String path, String contentType); - @Override - public abstract void delete(String path); + @Override + public abstract void delete(String path); - @Override - public UploadResult upload(InputStream inputStream, String path, String contentType) { - byte[] data = IoUtil.readBytes(inputStream); - return this.upload(data, path, contentType); - } + @Override + public UploadResult upload(InputStream inputStream, String path, String contentType) { + byte[] data = IoUtil.readBytes(inputStream); + return this.upload(data, path, contentType); + } - @Override - public abstract UploadResult uploadSuffix(byte[] data, String suffix, String contentType); + @Override + public abstract UploadResult uploadSuffix(byte[] data, String suffix, String contentType); - @Override - public abstract UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType); + @Override + public abstract UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType); - public abstract String getEndpointLink(); + public abstract String getEndpointLink(); } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java index db9ad91..99efb8d 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java @@ -24,90 +24,90 @@ */ public class AliyunOssStrategy extends AbstractOssStrategy { - private OSSClient client; + private OSSClient client; - @Override - public void init(OssProperties cloudStorageProperties) { - properties = cloudStorageProperties; - try { - ClientConfiguration configuration = new ClientConfiguration(); - DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider( - properties.getAccessKey(), properties.getSecretKey()); - client = new OSSClient(properties.getEndpoint(), credentialProvider, configuration); - createBucket(); - } catch (Exception e) { - throw new OssException("闃块噷浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); - } - } + @Override + public void init(OssProperties cloudStorageProperties) { + properties = cloudStorageProperties; + try { + ClientConfiguration configuration = new ClientConfiguration(); + DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider( + properties.getAccessKey(), properties.getSecretKey()); + client = new OSSClient(properties.getEndpoint(), credentialProvider, configuration); + createBucket(); + } catch (Exception e) { + throw new OssException("闃块噷浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); + } + } - @Override - public void createBucket() { - try { - String bucketName = properties.getBucketName(); - if (client.doesBucketExist(bucketName)) { - return; - } - CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); - createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); - client.createBucket(createBucketRequest); - } catch (Exception e) { - throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵归樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void createBucket() { + try { + String bucketName = properties.getBucketName(); + if (client.doesBucketExist(bucketName)) { + return; + } + CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); + createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); + client.createBucket(createBucketRequest); + } catch (Exception e) { + throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵归樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public String getServiceType() { - return OssEnumd.ALIYUN.getValue(); - } + @Override + public String getServiceType() { + return OssEnumd.ALIYUN.getValue(); + } - @Override - public UploadResult upload(byte[] data, String path, String contentType) { - return upload(new ByteArrayInputStream(data), path, contentType); - } + @Override + public UploadResult upload(byte[] data, String path, String contentType) { + return upload(new ByteArrayInputStream(data), path, contentType); + } - @Override - public UploadResult upload(InputStream inputStream, String path, String contentType) { - try { - ObjectMetadata metadata = new ObjectMetadata(); - metadata.setContentType(contentType); - client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata)); - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ラ樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); - } + @Override + public UploadResult upload(InputStream inputStream, String path, String contentType) { + try { + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentType(contentType); + client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata)); + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ラ樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + } - @Override - public void delete(String path) { - path = path.replace(getEndpointLink() + "/", ""); - try { - client.deleteObject(properties.getBucketName(), path); - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ラ樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void delete(String path) { + path = path.replace(getEndpointLink() + "/" , ""); + try { + client.deleteObject(properties.getBucketName(), path); + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ラ樋閲屼簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { + return upload(data, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { + return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public String getEndpointLink() { - String endpoint = properties.getEndpoint(); - StringBuilder sb = new StringBuilder(endpoint); - if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) { - sb.insert(7, properties.getBucketName() + "."); - } else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) { - sb.insert(8, properties.getBucketName() + "."); - } else { - throw new OssException("Endpoint閰嶇疆閿欒"); - } - return sb.toString(); - } + @Override + public String getEndpointLink() { + String endpoint = properties.getEndpoint(); + StringBuilder sb = new StringBuilder(endpoint); + if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) { + sb.insert(7, properties.getBucketName() + "."); + } else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) { + sb.insert(8, properties.getBucketName() + "."); + } else { + throw new OssException("Endpoint閰嶇疆閿欒"); + } + return sb.toString(); + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java index 0423dcc..60ac032 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java @@ -20,162 +20,162 @@ */ public class MinioOssStrategy extends AbstractOssStrategy { - private MinioClient minioClient; + private MinioClient minioClient; - @Override - public void init(OssProperties cloudStorageProperties) { - properties = cloudStorageProperties; - try { - minioClient = MinioClient.builder() - .endpoint(properties.getEndpoint()) - .credentials(properties.getAccessKey(), properties.getSecretKey()) - .build(); - createBucket(); - } catch (Exception e) { - throw new OssException("Minio瀛樺偍閰嶇疆閿欒! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); - } - } + @Override + public void init(OssProperties cloudStorageProperties) { + properties = cloudStorageProperties; + try { + minioClient = MinioClient.builder() + .endpoint(properties.getEndpoint()) + .credentials(properties.getAccessKey(), properties.getSecretKey()) + .build(); + createBucket(); + } catch (Exception e) { + throw new OssException("Minio瀛樺偍閰嶇疆閿欒! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); + } + } - @Override - public void createBucket() { - try { - String bucketName = properties.getBucketName(); - boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); - if (exists) { - return; - } - // 涓嶅瓨鍦ㄥ氨鍒涘缓妗� - minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); - minioClient.setBucketPolicy(SetBucketPolicyArgs.builder() - .bucket(bucketName) - .config(getPolicy(bucketName, PolicyType.READ)) - .build()); - } catch (Exception e) { - throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵筂inio閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void createBucket() { + try { + String bucketName = properties.getBucketName(); + boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); + if (exists) { + return; + } + // 涓嶅瓨鍦ㄥ氨鍒涘缓妗� + minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); + minioClient.setBucketPolicy(SetBucketPolicyArgs.builder() + .bucket(bucketName) + .config(getPolicy(bucketName, PolicyType.READ)) + .build()); + } catch (Exception e) { + throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵筂inio閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public String getServiceType() { - return OssEnumd.MINIO.getValue(); - } + @Override + public String getServiceType() { + return OssEnumd.MINIO.getValue(); + } - @Override - public UploadResult upload(byte[] data, String path, String contentType) { - return upload(new ByteArrayInputStream(data), path, contentType); - } + @Override + public UploadResult upload(byte[] data, String path, String contentType) { + return upload(new ByteArrayInputStream(data), path, contentType); + } - @Override - public UploadResult upload(InputStream inputStream, String path, String contentType) { - try { - minioClient.putObject(PutObjectArgs.builder() - .bucket(properties.getBucketName()) - .object(path) - .contentType(StringUtils.blankToDefault(contentType, MediaType.APPLICATION_OCTET_STREAM_VALUE)) - .stream(inputStream, inputStream.available(), -1) - .build()); - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿Minio閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); - } + @Override + public UploadResult upload(InputStream inputStream, String path, String contentType) { + try { + minioClient.putObject(PutObjectArgs.builder() + .bucket(properties.getBucketName()) + .object(path) + .contentType(StringUtils.blankToDefault(contentType, MediaType.APPLICATION_OCTET_STREAM_VALUE)) + .stream(inputStream, inputStream.available(), -1) + .build()); + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿Minio閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + } - @Override - public void delete(String path) { - path = path.replace(getEndpointLink() + "/", ""); - try { - minioClient.removeObject(RemoveObjectArgs.builder() - .bucket(properties.getBucketName()) - .object(path) - .build()); - } catch (Exception e) { - throw new OssException(e.getMessage()); - } - } + @Override + public void delete(String path) { + path = path.replace(getEndpointLink() + "/", ""); + try { + minioClient.removeObject(RemoveObjectArgs.builder() + .bucket(properties.getBucketName()) + .object(path) + .build()); + } catch (Exception e) { + throw new OssException(e.getMessage()); + } + } - @Override - public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { + return upload(data, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { + return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public String getEndpointLink() { - return properties.getEndpoint() + "/" + properties.getBucketName(); - } + @Override + public String getEndpointLink() { + return properties.getEndpoint() + "/" + properties.getBucketName(); + } - private String getPolicy(String bucketName, PolicyType policyType) { - StringBuilder builder = new StringBuilder(); - builder.append("{\n"); - builder.append(" \"Statement\": [\n"); - builder.append(" {\n"); - builder.append(" \"Action\": [\n"); - if (policyType == PolicyType.WRITE) { - builder.append(" \"s3:GetBucketLocation\",\n"); - builder.append(" \"s3:ListBucketMultipartUploads\"\n"); - } else if (policyType == PolicyType.READ_WRITE) { - builder.append(" \"s3:GetBucketLocation\",\n"); - builder.append(" \"s3:ListBucket\",\n"); - builder.append(" \"s3:ListBucketMultipartUploads\"\n"); - } else { - builder.append(" \"s3:GetBucketLocation\"\n"); - } - builder.append(" ],\n"); - builder.append(" \"Effect\": \"Allow\",\n"); - builder.append(" \"Principal\": \"*\",\n"); - builder.append(" \"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("\"\n"); - builder.append(" },\n"); - if (PolicyType.READ.equals(policyType)) { - builder.append(" {\n"); - builder.append(" \"Action\": [\n"); - builder.append(" \"s3:ListBucket\"\n"); - builder.append(" ],\n"); - builder.append(" \"Effect\": \"Deny\",\n"); - builder.append(" \"Principal\": \"*\",\n"); - builder.append(" \"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("\"\n"); - builder.append(" },\n"); - } - builder.append(" {\n"); - builder.append(" \"Action\": "); - switch (policyType) { - case WRITE: - builder.append("[\n"); - builder.append(" \"s3:AbortMultipartUpload\",\n"); - builder.append(" \"s3:DeleteObject\",\n"); - builder.append(" \"s3:ListMultipartUploadParts\",\n"); - builder.append(" \"s3:PutObject\"\n"); - builder.append(" ],\n"); - break; - case READ_WRITE: - builder.append("[\n"); - builder.append(" \"s3:AbortMultipartUpload\",\n"); - builder.append(" \"s3:DeleteObject\",\n"); - builder.append(" \"s3:GetObject\",\n"); - builder.append(" \"s3:ListMultipartUploadParts\",\n"); - builder.append(" \"s3:PutObject\"\n"); - builder.append(" ],\n"); - break; - default: - builder.append("\"s3:GetObject\",\n"); - break; - } - builder.append(" \"Effect\": \"Allow\",\n"); - builder.append(" \"Principal\": \"*\",\n"); - builder.append(" \"Resource\": \"arn:aws:s3:::"); - builder.append(bucketName); - builder.append("/*\"\n"); - builder.append(" }\n"); - builder.append(" ],\n"); - builder.append(" \"Version\": \"2012-10-17\"\n"); - builder.append("}\n"); - return builder.toString(); - } + private String getPolicy(String bucketName, PolicyType policyType) { + StringBuilder builder = new StringBuilder(); + builder.append("{\n"); + builder.append(" \"Statement\": [\n"); + builder.append(" {\n"); + builder.append(" \"Action\": [\n"); + if (policyType == PolicyType.WRITE) { + builder.append(" \"s3:GetBucketLocation\",\n"); + builder.append(" \"s3:ListBucketMultipartUploads\"\n"); + } else if (policyType == PolicyType.READ_WRITE) { + builder.append(" \"s3:GetBucketLocation\",\n"); + builder.append(" \"s3:ListBucket\",\n"); + builder.append(" \"s3:ListBucketMultipartUploads\"\n"); + } else { + builder.append(" \"s3:GetBucketLocation\"\n"); + } + builder.append(" ],\n"); + builder.append(" \"Effect\": \"Allow\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("\"\n"); + builder.append(" },\n"); + if (PolicyType.READ.equals(policyType)) { + builder.append(" {\n"); + builder.append(" \"Action\": [\n"); + builder.append(" \"s3:ListBucket\"\n"); + builder.append(" ],\n"); + builder.append(" \"Effect\": \"Deny\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("\"\n"); + builder.append(" },\n"); + } + builder.append(" {\n"); + builder.append(" \"Action\": "); + switch (policyType) { + case WRITE: + builder.append("[\n"); + builder.append(" \"s3:AbortMultipartUpload\",\n"); + builder.append(" \"s3:DeleteObject\",\n"); + builder.append(" \"s3:ListMultipartUploadParts\",\n"); + builder.append(" \"s3:PutObject\"\n"); + builder.append(" ],\n"); + break; + case READ_WRITE: + builder.append("[\n"); + builder.append(" \"s3:AbortMultipartUpload\",\n"); + builder.append(" \"s3:DeleteObject\",\n"); + builder.append(" \"s3:GetObject\",\n"); + builder.append(" \"s3:ListMultipartUploadParts\",\n"); + builder.append(" \"s3:PutObject\"\n"); + builder.append(" ],\n"); + break; + default: + builder.append("\"s3:GetObject\",\n"); + break; + } + builder.append(" \"Effect\": \"Allow\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("/*\"\n"); + builder.append(" }\n"); + builder.append(" ],\n"); + builder.append(" \"Version\": \"2012-10-17\"\n"); + builder.append("}\n"); + return builder.toString(); + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java index 156eb24..5f59db2 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java @@ -24,98 +24,98 @@ */ public class QcloudOssStrategy extends AbstractOssStrategy { - private COSClient client; + private COSClient client; - @Override - public void init(OssProperties cloudStorageProperties) { - properties = cloudStorageProperties; - try { - COSCredentials credentials = new BasicCOSCredentials( - properties.getAccessKey(), properties.getSecretKey()); - // 鍒濆鍖栧鎴风閰嶇疆 - ClientConfig clientConfig = new ClientConfig(); - // 璁剧疆bucket鎵�鍦ㄧ殑鍖哄煙锛屽崕鍗楋細gz 鍗庡寳锛歵j 鍗庝笢锛歴h - clientConfig.setRegion(new Region(properties.getRegion())); - if ("Y".equals(properties.getIsHttps())) { - clientConfig.setHttpProtocol(HttpProtocol.https); - } else { - clientConfig.setHttpProtocol(HttpProtocol.http); - } - client = new COSClient(credentials, clientConfig); - createBucket(); - } catch (Exception e) { - throw new OssException("鑵捐浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); - } - } + @Override + public void init(OssProperties cloudStorageProperties) { + properties = cloudStorageProperties; + try { + COSCredentials credentials = new BasicCOSCredentials( + properties.getAccessKey(), properties.getSecretKey()); + // 鍒濆鍖栧鎴风閰嶇疆 + ClientConfig clientConfig = new ClientConfig(); + // 璁剧疆bucket鎵�鍦ㄧ殑鍖哄煙锛屽崕鍗楋細gz 鍗庡寳锛歵j 鍗庝笢锛歴h + clientConfig.setRegion(new Region(properties.getRegion())); + if ("Y".equals(properties.getIsHttps())) { + clientConfig.setHttpProtocol(HttpProtocol.https); + } else { + clientConfig.setHttpProtocol(HttpProtocol.http); + } + client = new COSClient(credentials, clientConfig); + createBucket(); + } catch (Exception e) { + throw new OssException("鑵捐浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); + } + } - @Override - public void createBucket() { - try { - String bucketName = properties.getBucketName(); - if (client.doesBucketExist(bucketName)) { - return; - } - CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); - createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead); - client.createBucket(createBucketRequest); - } catch (Exception e) { - throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵硅吘璁簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void createBucket() { + try { + String bucketName = properties.getBucketName(); + if (client.doesBucketExist(bucketName)) { + return; + } + CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); + createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead); + client.createBucket(createBucketRequest); + } catch (Exception e) { + throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵硅吘璁簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public String getServiceType() { - return OssEnumd.QCLOUD.getValue(); - } + @Override + public String getServiceType() { + return OssEnumd.QCLOUD.getValue(); + } - @Override - public UploadResult upload(byte[] data, String path, String contentType) { - return upload(new ByteArrayInputStream(data), path, contentType); - } + @Override + public UploadResult upload(byte[] data, String path, String contentType) { + return upload(new ByteArrayInputStream(data), path, contentType); + } - @Override - public UploadResult upload(InputStream inputStream, String path, String contentType) { - try { - ObjectMetadata metadata = new ObjectMetadata(); - metadata.setContentType(contentType); - client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata)); - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ヨ吘璁簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); - } + @Override + public UploadResult upload(InputStream inputStream, String path, String contentType) { + try { + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentType(contentType); + client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata)); + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鏌ヨ吘璁簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + } - @Override - public void delete(String path) { - path = path.replace(getEndpointLink() + "/", ""); - try { - client.deleteObject(new DeleteObjectRequest(properties.getBucketName(), path)); - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鑵捐浜戞煡閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void delete(String path) { + path = path.replace(getEndpointLink() + "/", ""); + try { + client.deleteObject(new DeleteObjectRequest(properties.getBucketName(), path)); + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃妫�鑵捐浜戞煡閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { + return upload(data, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { + return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public String getEndpointLink() { - String endpoint = properties.getEndpoint(); - StringBuilder sb = new StringBuilder(endpoint); - if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) { - sb.insert(7, properties.getBucketName() + "."); - } else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) { - sb.insert(8, properties.getBucketName() + "."); - } else { - throw new OssException("Endpoint閰嶇疆閿欒"); - } - return sb.toString(); - } + @Override + public String getEndpointLink() { + String endpoint = properties.getEndpoint(); + StringBuilder sb = new StringBuilder(endpoint); + if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) { + sb.insert(7, properties.getBucketName() + "."); + } else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) { + sb.insert(8, properties.getBucketName() + "."); + } else { + throw new OssException("Endpoint閰嶇疆閿欒"); + } + return sb.toString(); + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java index bf90aa8..23c6648 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java @@ -22,106 +22,106 @@ */ public class QiniuOssStrategy extends AbstractOssStrategy { - private UploadManager uploadManager; - private BucketManager bucketManager; - private Auth auth; + private UploadManager uploadManager; + private BucketManager bucketManager; + private Auth auth; - @Override - public void init(OssProperties cloudStorageProperties) { - properties = cloudStorageProperties; - try { - Configuration config = new Configuration(getRegion(properties.getRegion())); - // https璁剧疆 - config.useHttpsDomains = false; - config.useHttpsDomains = "Y".equals(properties.getIsHttps()); - uploadManager = new UploadManager(config); - auth = Auth.create(properties.getAccessKey(), properties.getSecretKey()); - String bucketName = properties.getBucketName(); - bucketManager = new BucketManager(auth, config); + @Override + public void init(OssProperties cloudStorageProperties) { + properties = cloudStorageProperties; + try { + Configuration config = new Configuration(getRegion(properties.getRegion())); + // https璁剧疆 + config.useHttpsDomains = false; + config.useHttpsDomains = "Y".equals(properties.getIsHttps()); + uploadManager = new UploadManager(config); + auth = Auth.create(properties.getAccessKey(), properties.getSecretKey()); + String bucketName = properties.getBucketName(); + bucketManager = new BucketManager(auth, config); - if (!ArrayUtil.contains(bucketManager.buckets(), bucketName)) { - bucketManager.createBucket(bucketName, properties.getRegion()); - } - } catch (Exception e) { - throw new OssException("涓冪墰浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); - } - } + if (!ArrayUtil.contains(bucketManager.buckets(), bucketName)) { + bucketManager.createBucket(bucketName, properties.getRegion()); + } + } catch (Exception e) { + throw new OssException("涓冪墰浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]"); + } + } - @Override - public void createBucket() { - try { - String bucketName = properties.getBucketName(); - if (ArrayUtil.contains(bucketManager.buckets(), bucketName)) { - return; - } - bucketManager.createBucket(bucketName, properties.getRegion()); - } catch (Exception e) { - throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵逛竷鐗涗簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - } + @Override + public void createBucket() { + try { + String bucketName = properties.getBucketName(); + if (ArrayUtil.contains(bucketManager.buckets(), bucketName)) { + return; + } + bucketManager.createBucket(bucketName, properties.getRegion()); + } catch (Exception e) { + throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵逛竷鐗涗簯閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + } - @Override - public String getServiceType() { - return OssEnumd.QINIU.getValue(); - } + @Override + public String getServiceType() { + return OssEnumd.QINIU.getValue(); + } - @Override - public UploadResult upload(byte[] data, String path, String contentType) { - try { + @Override + public UploadResult upload(byte[] data, String path, String contentType) { + try { String token = auth.uploadToken(properties.getBucketName()); Response res = uploadManager.put(data, path, token, null, contentType, false); - if (!res.isOK()) { - throw new RuntimeException("涓婁紶涓冪墰鍑洪敊锛�" + res.error); - } - } catch (Exception e) { - throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿涓冪墰閰嶇疆淇℃伅:[" + e.getMessage() + "]"); - } - return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); - } + if (!res.isOK()) { + throw new RuntimeException("涓婁紶涓冪墰鍑洪敊锛�" + res.error); + } + } catch (Exception e) { + throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿涓冪墰閰嶇疆淇℃伅:[" + e.getMessage() + "]"); + } + return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); + } - @Override - public void delete(String path) { - try { - path = path.replace(getEndpointLink() + "/", ""); - Response res = bucketManager.delete(properties.getBucketName(), path); - if (!res.isOK()) { - throw new RuntimeException("鍒犻櫎涓冪墰鏂囦欢鍑洪敊锛�" + res.error); - } - } catch (Exception e) { - throw new OssException(e.getMessage()); - } - } + @Override + public void delete(String path) { + try { + path = path.replace(getEndpointLink() + "/", ""); + Response res = bucketManager.delete(properties.getBucketName(), path); + if (!res.isOK()) { + throw new RuntimeException("鍒犻櫎涓冪墰鏂囦欢鍑洪敊锛�" + res.error); + } + } catch (Exception e) { + throw new OssException(e.getMessage()); + } + } - @Override - public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { + return upload(data, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); - } + @Override + public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { + return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); + } - @Override - public String getEndpointLink() { - return properties.getEndpoint(); - } + @Override + public String getEndpointLink() { + return properties.getEndpoint(); + } - private Region getRegion(String region) { - switch (region) { - case "z0": - return Region.region0(); - case "z1": - return Region.region1(); - case "z2": - return Region.region2(); - case "na0": - return Region.regionNa0(); - case "as0": - return Region.regionAs0(); - default: - return Region.autoRegion(); - } - } + private Region getRegion(String region) { + switch (region) { + case "z0": + return Region.region0(); + case "z1": + return Region.region1(); + case "z2": + return Region.region2(); + case "na0": + return Region.regionNa0(); + case "as0": + return Region.regionAs0(); + default: + return Region.autoRegion(); + } + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index c9b5252..b1ce3f8 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -30,9 +30,9 @@ <select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult"> <include refid="selectDeptVo"/> where d.del_flag = '0' - <if test="deptId != null and deptId != 0"> - AND dept_id = #{deptId} - </if> + <if test="deptId != null and deptId != 0"> + AND dept_id = #{deptId} + </if> <if test="parentId != null and parentId != 0"> AND parent_id = #{parentId} </if> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index d441c73..9cb6f7f 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -12,8 +12,8 @@ <result property="orderNum" column="order_num"/> <result property="path" column="path"/> <result property="component" column="component"/> - <result property="query" column="query"/> - <result property="isFrame" column="is_frame"/> + <result property="query" column="query"/> + <result property="isFrame" column="is_frame"/> <result property="isCache" column="is_cache"/> <result property="menuType" column="menu_type"/> <result property="visible" column="visible"/> @@ -33,8 +33,8 @@ m.menu_name, m.path, m.component, - m.`query`, - m.visible, + m.`query`, + m.visible, m.status, ifnull(m.perms, '') as perms, m.is_frame, @@ -75,7 +75,7 @@ m.menu_name, m.path, m.component, - m.`query`, + m.`query`, m.visible, m.status, ifnull(m.perms, '') as perms, diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 62ee4e1..8c2437e 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -75,9 +75,9 @@ r.data_scope, r.status as role_status from sys_user u - left join sys_dept d on u.dept_id = d.dept_id - left join sys_user_role ur on u.user_id = ur.user_id - left join sys_role r on r.role_id = ur.role_id + left join sys_dept d on u.dept_id = d.dept_id + left join sys_user_role ur on u.user_id = ur.user_id + left join sys_role r on r.role_id = ur.role_id </sql> <select id="selectPageUserList" parameterType="SysUser" resultMap="SysUserResult"> diff --git a/ruoyi-ui/public/index.html b/ruoyi-ui/public/index.html index 925455c..e32e129 100644 --- a/ruoyi-ui/public/index.html +++ b/ruoyi-ui/public/index.html @@ -8,7 +8,7 @@ <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= webpackConfig.name %></title> <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> - <style> + <style> html, body, #app { @@ -197,12 +197,12 @@ </head> <body> <div id="app"> - <div id="loader-wrapper"> - <div id="loader"></div> - <div class="loader-section section-left"></div> - <div class="loader-section section-right"></div> - <div class="load_title">姝e湪鍔犺浇绯荤粺璧勬簮锛岃鑰愬績绛夊緟</div> + <div id="loader-wrapper"> + <div id="loader"></div> + <div class="loader-section section-left"></div> + <div class="loader-section section-right"></div> + <div class="load_title">姝e湪鍔犺浇绯荤粺璧勬簮锛岃鑰愬績绛夊緟</div> </div> - </div> + </div> </body> </html> diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index 8fe1961..e9b5459 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -1,125 +1,141 @@ - /** - * 閫氱敤css鏍峰紡甯冨眬澶勭悊 - * Copyright (c) 2019 ruoyi - */ +/** +* 閫氱敤css鏍峰紡甯冨眬澶勭悊 +* Copyright (c) 2019 ruoyi +*/ - /** 鍩虹閫氱敤 **/ +/** 鍩虹閫氱敤 **/ .pt5 { - padding-top: 5px; + padding-top: 5px; } + .pr5 { - padding-right: 5px; + padding-right: 5px; } + .pb5 { - padding-bottom: 5px; + padding-bottom: 5px; } + .mt5 { - margin-top: 5px; + margin-top: 5px; } + .mr5 { - margin-right: 5px; + margin-right: 5px; } + .mb5 { - margin-bottom: 5px; + margin-bottom: 5px; } + .mb8 { - margin-bottom: 8px; + margin-bottom: 8px; } + .ml5 { - margin-left: 5px; + margin-left: 5px; } + .mt10 { - margin-top: 10px; + margin-top: 10px; } + .mr10 { - margin-right: 10px; + margin-right: 10px; } + .mb10 { - margin-bottom: 10px; + margin-bottom: 10px; } + .ml0 { - margin-left: 10px; + margin-left: 10px; } + .mt20 { - margin-top: 20px; + margin-top: 20px; } + .mr20 { - margin-right: 20px; + margin-right: 20px; } + .mb20 { - margin-bottom: 20px; + margin-bottom: 20px; } + .m20 { - margin-left: 20px; + margin-left: 20px; } .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } .el-dialog:not(.is-fullscreen) { - margin-top: 6vh !important; + margin-top: 6vh !important; } .el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body { - overflow: auto; - overflow-x: hidden; - max-height: 70vh; - padding: 10px 20px 0; + overflow: auto; + overflow-x: hidden; + max-height: 70vh; + padding: 10px 20px 0; } .el-table { - .el-table__header-wrapper, .el-table__fixed-header-wrapper { - th { - word-break: break-word; - background-color: #f8f8f9; - color: #515a6e; - height: 40px; - font-size: 13px; - } - } - .el-table__body-wrapper { - .el-button [class*="el-icon-"] + span { - margin-left: 1px; - } - } + .el-table__header-wrapper, .el-table__fixed-header-wrapper { + th { + word-break: break-word; + background-color: #f8f8f9; + color: #515a6e; + height: 40px; + font-size: 13px; + } + } + + .el-table__body-wrapper { + .el-button [class*="el-icon-"] + span { + margin-left: 1px; + } + } } /** 琛ㄥ崟甯冨眬 **/ .form-header { - font-size:15px; - color:#6379bb; - border-bottom:1px solid #ddd; - margin:8px 10px 25px 10px; - padding-bottom:5px + font-size: 15px; + color: #6379bb; + border-bottom: 1px solid #ddd; + margin: 8px 10px 25px 10px; + padding-bottom: 5px } /** 琛ㄦ牸甯冨眬 **/ .pagination-container { - position: relative; - height: 25px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; + position: relative; + height: 25px; + margin-bottom: 10px; + margin-top: 15px; + padding: 10px 20px !important; } /* tree border */ .tree-border { - margin-top: 5px; - border: 1px solid #e5e6e7; - background: #FFFFFF none; - border-radius:4px; + margin-top: 5px; + border: 1px solid #e5e6e7; + background: #FFFFFF none; + border-radius: 4px; } .pagination-container .el-pagination { - right: 0; - position: absolute; + right: 0; + position: absolute; } -@media ( max-width : 768px) { +@media (max-width: 768px) { .pagination-container .el-pagination > .el-pagination__jump { display: none !important; } @@ -129,64 +145,64 @@ } .el-table .fixed-width .el-button--mini { - padding-left: 0; - padding-right: 0; - width: inherit; + padding-left: 0; + padding-right: 0; + width: inherit; } /** 琛ㄦ牸鏇村鎿嶄綔涓嬫媺鏍峰紡 */ .el-table .el-dropdown-link { - cursor: pointer; - color: #409EFF; - margin-left: 5px; + cursor: pointer; + color: #409EFF; + margin-left: 5px; } .el-table .el-dropdown, .el-icon-arrow-down { - font-size: 12px; + font-size: 12px; } .el-tree-node__content > .el-checkbox { - margin-right: 8px; + margin-right: 8px; } .list-group-striped > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; + border-left: 0; + border-right: 0; + border-radius: 0; + padding-left: 0; + padding-right: 0; } .list-group { - padding-left: 0px; - list-style: none; + padding-left: 0px; + list-style: none; } .list-group-item { - border-bottom: 1px solid #e7eaec; - border-top: 1px solid #e7eaec; - margin-bottom: -1px; - padding: 11px 0px; - font-size: 13px; + border-bottom: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + margin-bottom: -1px; + padding: 11px 0px; + font-size: 13px; } .pull-right { - float: right !important; + float: right !important; } .el-card__header { - padding: 14px 15px 7px; - min-height: 40px; + padding: 14px 15px 7px; + min-height: 40px; } .el-card__body { - padding: 15px 20px 20px 20px; + padding: 15px 20px 20px 20px; } .card-box { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 10px; + padding-right: 15px; + padding-left: 15px; + margin-bottom: 10px; } /* button color */ @@ -212,62 +228,62 @@ /* text color */ .text-navy { - color: #1ab394; + color: #1ab394; } .text-primary { - color: inherit; + color: inherit; } .text-success { - color: #1c84c6; + color: #1c84c6; } .text-info { - color: #23c6c8; + color: #23c6c8; } .text-warning { - color: #f8ac59; + color: #f8ac59; } .text-danger { - color: #ed5565; + color: #ed5565; } .text-muted { - color: #888888; + color: #888888; } /* image */ .img-circle { - border-radius: 50%; + border-radius: 50%; } .img-lg { - width: 120px; - height: 120px; + width: 120px; + height: 120px; } .avatar-upload-preview { - position: absolute; - top: 50%; - transform: translate(50%, -50%); - width: 200px; - height: 200px; - border-radius: 50%; - box-shadow: 0 0 4px #ccc; - overflow: hidden; + position: absolute; + top: 50%; + transform: translate(50%, -50%); + width: 200px; + height: 200px; + border-radius: 50%; + box-shadow: 0 0 4px #ccc; + overflow: hidden; } /* 鎷栨嫿鍒楁牱寮� */ -.sortable-ghost{ - opacity: .8; - color: #fff!important; - background: #42b983!important; +.sortable-ghost { + opacity: .8; + color: #fff !important; + background: #42b983 !important; } .top-right-btn { - position: relative; - float: right; + position: relative; + float: right; } diff --git a/ruoyi-ui/src/components/TopNav/index.vue b/ruoyi-ui/src/components/TopNav/index.vue index 1b7c4d9..dec1f74 100644 --- a/ruoyi-ui/src/components/TopNav/index.vue +++ b/ruoyi-ui/src/components/TopNav/index.vue @@ -161,7 +161,7 @@ } return routes; }, - ishttp(url) { + ishttp(url) { return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 } }, diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index dd34ed6..36aed7b 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -23,7 +23,7 @@ * 鍒嗗竷寮忔棩蹇� TLog 鏀寔璺熻釜閾捐矾鏃ュ織璁板綍銆佹�ц兘鍒嗘瀽銆侀摼璺帓鏌�<br/> * 鍒嗗竷寮忎换鍔¤皟搴� Xxl-Job 楂樻�ц兘 楂樺彲闈� 鏄撴墿灞�<br/> * 鏂囦欢瀛樺偍 Minio 鏈湴瀛樺偍<br/> - * 鏂囦欢瀛樺偍 涓冪墰銆侀樋閲屻�佽吘璁� 浜戝瓨鍌�<br/> + * 鏂囦欢瀛樺偍 涓冪墰銆侀樋閲屻�佽吘璁� 浜戝瓨鍌�<br/> * 鐩戞帶妗嗘灦 SpringBoot-Admin 鍏ㄦ柟浣嶆湇鍔$洃鎺�<br/> * 鏍¢獙妗嗘灦 Validation 澧炲己鎺ュ彛瀹夊叏鎬� 涓ヨ皑鎬�<br/> * Excel妗嗘灦 Alibaba EasyExcel 鎬ц兘浼樺紓 鎵╁睍鎬у己<br/> diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue index 98bd743..12d2ce6 100644 --- a/ruoyi-ui/src/views/monitor/logininfor/index.vue +++ b/ruoyi-ui/src/views/monitor/logininfor/index.vue @@ -6,7 +6,7 @@ v-model="queryParams.ipaddr" placeholder="璇疯緭鍏ョ櫥褰曞湴鍧�" clearable - size="small" + size="small" style="width: 240px;" @keyup.enter.native="handleQuery" /> @@ -16,7 +16,7 @@ v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable - size="small" + size="small" style="width: 240px;" @keyup.enter.native="handleQuery" /> diff --git a/script/bin/ry.bat b/script/bin/ry.bat index ae24940..0e69937 100644 --- a/script/bin/ry.bat +++ b/script/bin/ry.bat @@ -1,67 +1,67 @@ @echo off -rem jar平级目录 +rem jar平锟斤拷目录 set AppName=ruoyi-admin.jar -rem JVM参数 +rem JVM锟斤拷锟斤拷 set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" ECHO. - ECHO. [1] 启动%AppName% - ECHO. [2] 关闭%AppName% - ECHO. [3] 重启%AppName% - ECHO. [4] 启动状态 %AppName% - ECHO. [5] 退 出 + ECHO. [1] 锟斤拷锟斤拷%AppName% + ECHO. [2] 锟截憋拷%AppName% + ECHO. [3] 锟斤拷锟斤拷%AppName% + ECHO. [4] 锟斤拷锟斤拷状态 %AppName% + ECHO. [5] 锟斤拷 锟斤拷 ECHO. -ECHO.请输入选择项目的序号: +ECHO.锟斤拷锟斤拷锟斤拷选锟斤拷锟斤拷目锟斤拷锟斤拷锟�: set /p ID= - IF "%id%"=="1" GOTO start - IF "%id%"=="2" GOTO stop - IF "%id%"=="3" GOTO restart - IF "%id%"=="4" GOTO status - IF "%id%"=="5" EXIT + IF "%id%"=="1" GOTO start + IF "%id%"=="2" GOTO stop + IF "%id%"=="3" GOTO restart + IF "%id%"=="4" GOTO status + IF "%id%"=="5" EXIT PAUSE :start for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( - set pid=%%a - set image_name=%%b - ) - if defined pid ( - echo %%is running - PAUSE - ) + set pid=%%a + set image_name=%%b + ) + if defined pid ( + echo %%is running + PAUSE + ) start javaw %JAVA_OPTS% -jar %AppName% -echo starting…… +echo starting锟斤拷锟斤拷 echo Start %AppName% success... goto:eof -rem 函数stop通过jps命令查找pid并结束进程 +rem 锟斤拷锟斤拷stop通锟斤拷jps锟斤拷锟斤拷锟斤拷锟絧id锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 :stop - for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( - set pid=%%a - set image_name=%%b - ) - if not defined pid (echo process %AppName% does not exists) else ( - echo prepare to kill %image_name% - echo start kill %pid% ... - rem 根据进程ID,kill进程 - taskkill /f /pid %pid% - ) + for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( + set pid=%%a + set image_name=%%b + ) + if not defined pid (echo process %AppName% does not exists) else ( + echo prepare to kill %image_name% + echo start kill %pid% ... + rem 锟斤拷锟捷斤拷锟斤拷ID锟斤拷kill锟斤拷锟斤拷 + taskkill /f /pid %pid% + ) goto:eof :restart - call :stop + call :stop call :start goto:eof :status - for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( - set pid=%%a - set image_name=%%b - ) - if not defined pid (echo process %AppName% is dead ) else ( - echo %image_name% is running - ) + for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( + set pid=%%a + set image_name=%%b + ) + if not defined pid (echo process %AppName% is dead ) else ( + echo %image_name% is running + ) goto:eof diff --git a/script/bin/ry.sh b/script/bin/ry.sh index d6a9cf3..0cf5ce9 100644 --- a/script/bin/ry.sh +++ b/script/bin/ry.sh @@ -23,36 +23,36 @@ { PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` - if [ x"$PID" != x"" ]; then - echo "$AppName is running..." - else - nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 & - echo "Start $AppName success..." - fi + if [ x"$PID" != x"" ]; then + echo "$AppName is running..." + else + nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 & + echo "Start $AppName success..." + fi } function stop() { echo "Stop $AppName" - PID="" - query(){ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` - } + PID="" + query(){ + PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` + } - query - if [ x"$PID" != x"" ]; then - kill -TERM $PID - echo "$AppName (pid:$PID) exiting..." - while [ x"$PID" != x"" ] - do - sleep 1 - query - done - echo "$AppName exited." - else - echo "$AppName already stopped." - fi + query + if [ x"$PID" != x"" ]; then + kill -TERM $PID + echo "$AppName (pid:$PID) exiting..." + while [ x"$PID" != x"" ] + do + sleep 1 + query + done + echo "$AppName exited." + else + echo "$AppName already stopped." + fi } function restart() diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index 1564002..0c8f6c4 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -2,107 +2,107 @@ #浣跨敤璇存槑锛岀敤鏉ユ彁绀鸿緭鍏ュ弬鏁� usage() { - echo "Usage: sh 鎵ц鑴氭湰.sh [port|mount|monitor|base|start|stop|stopall|rm|rmiNoneTag]" - exit 1 + echo "Usage: sh 鎵ц鑴氭湰.sh [port|mount|monitor|base|start|stop|stopall|rm|rmiNoneTag]" + exit 1 } #寮�鍚墍闇�绔彛(鐢熶骇鐜涓嶆帹鑽愬紑鍚�) port(){ # mysql 绔彛 - firewall-cmd --add-port=3306/tcp --permanent - # redis 绔彛 - firewall-cmd --add-port=6379/tcp --permanent - # minio api 绔彛 - firewall-cmd --add-port=9000/tcp --permanent - # minio 鎺у埗鍙扮鍙� - firewall-cmd --add-port=9001/tcp --permanent - # 鐩戞帶涓績绔彛 - firewall-cmd --add-port=9090/tcp --permanent - # 浠诲姟璋冨害涓績绔彛 - firewall-cmd --add-port=9100/tcp --permanent - # 閲嶅惎闃茬伀澧� - service firewalld restart + firewall-cmd --add-port=3306/tcp --permanent + # redis 绔彛 + firewall-cmd --add-port=6379/tcp --permanent + # minio api 绔彛 + firewall-cmd --add-port=9000/tcp --permanent + # minio 鎺у埗鍙扮鍙� + firewall-cmd --add-port=9001/tcp --permanent + # 鐩戞帶涓績绔彛 + firewall-cmd --add-port=9090/tcp --permanent + # 浠诲姟璋冨害涓績绔彛 + firewall-cmd --add-port=9100/tcp --permanent + # 閲嶅惎闃茬伀澧� + service firewalld restart } ##鏀剧疆鎸傝浇鏂囦欢 mount(){ - #鎸傝浇 nginx 閰嶇疆鏂囦欢 - if test ! -f "/docker/nginx/conf/nginx.conf" ;then - mkdir -p /docker/nginx/conf - cp nginx/nginx.conf /docker/nginx/conf/nginx.conf - fi - #鎸傝浇 redis 閰嶇疆鏂囦欢 - if test ! -f "/docker/redis/conf/redis.conf" ;then - mkdir -p /docker/redis/conf - cp redis/redis.conf /docker/redis/conf/redis.conf - fi + #鎸傝浇 nginx 閰嶇疆鏂囦欢 + if test ! -f "/docker/nginx/conf/nginx.conf" ;then + mkdir -p /docker/nginx/conf + cp nginx/nginx.conf /docker/nginx/conf/nginx.conf + fi + #鎸傝浇 redis 閰嶇疆鏂囦欢 + if test ! -f "/docker/redis/conf/redis.conf" ;then + mkdir -p /docker/redis/conf + cp redis/redis.conf /docker/redis/conf/redis.conf + fi } #鍚姩鍩虹妯″潡 base(){ - docker-compose up -d mysql nginx-web redis minio + docker-compose up -d mysql nginx-web redis minio } #鍚姩鐩戞帶妯″潡 monitor(){ - docker-compose up -d ruoyi-monitor-admin + docker-compose up -d ruoyi-monitor-admin } #鍚姩绋嬪簭妯″潡 start(){ - docker-compose up -d ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 + docker-compose up -d ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 } #鍋滄绋嬪簭妯″潡 stop(){ - docker-compose stop ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 + docker-compose stop ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 } #鍏抽棴鎵�鏈夋ā鍧� stopall(){ - docker-compose stop + docker-compose stop } #鍒犻櫎鎵�鏈夋ā鍧� rm(){ - docker-compose rm + docker-compose rm } #鍒犻櫎Tag涓虹┖鐨勯暅鍍� rmiNoneTag(){ - docker images|grep none|awk '{print $3}'|xargs docker rmi -f + docker images|grep none|awk '{print $3}'|xargs docker rmi -f } #鏍规嵁杈撳叆鍙傛暟锛岄�夋嫨鎵ц瀵瑰簲鏂规硶锛屼笉杈撳叆鍒欐墽琛屼娇鐢ㄨ鏄� case "$1" in "port") - port + port ;; "mount") - mount + mount ;; "base") - base + base ;; "monitor") - monitor + monitor ;; "start") - start + start ;; "stop") - stop + stop ;; "stopall") - stopall + stopall ;; "rm") - rm + rm ;; "rmiNoneTag") - rmiNoneTag + rmiNoneTag ;; *) - usage + usage ;; esac diff --git a/script/docker/nginx/nginx.conf b/script/docker/nginx/nginx.conf index e77b6c7..07df783 100644 --- a/script/docker/nginx/nginx.conf +++ b/script/docker/nginx/nginx.conf @@ -21,11 +21,11 @@ access_log /var/log/nginx/access.log main; - upstream server { - ip_hash; - server 172.30.0.60:8080; - server 172.30.0.61:8080; - } + upstream server { + ip_hash; + server 172.30.0.60:8080; + server 172.30.0.61:8080; + } upstream monitor-admin { server 172.30.0.90:9090; @@ -62,30 +62,30 @@ # return 200 '{"msg":"婕旂ず妯″紡锛屼笉鍏佽鎿嶄綔","code":500}'; # } - location / { + location / { root /usr/share/nginx/html; - try_files $uri $uri/ /index.html; + try_files $uri $uri/ /index.html; index index.html index.htm; } - location /prod-api/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://server/; - } + location /prod-api/ { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://server/; + } # https 浼氭嫤鎴唴閾炬墍鏈夌殑 http 璇锋眰 閫犳垚鍔熻兘鏃犳硶浣跨敤 # 瑙e喅鏂规1 灏� admin 鏈嶅姟 涔熼厤缃垚 https # 瑙e喅鏂规2 灏嗚彍鍗曢厤缃负澶栭摼璁块棶 璧扮嫭绔嬮〉闈� http 璁块棶 - location /admin/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://monitor-admin/admin/; - } + location /admin/ { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://monitor-admin/admin/; + } # https 浼氭嫤鎴唴閾炬墍鏈夌殑 http 璇锋眰 閫犳垚鍔熻兘鏃犳硶浣跨敤 # 瑙e喅鏂规1 灏� xxljob 鏈嶅姟 涔熼厤缃垚 https diff --git a/script/sql/ry_20210908.sql b/script/sql/ry_20210908.sql index 428c24a..e7012e7 100644 --- a/script/sql/ry_20210908.sql +++ b/script/sql/ry_20210908.sql @@ -14,7 +14,7 @@ status char(1) default '0' comment '閮ㄩ棬鐘舵�侊紙0姝e父 1鍋滅敤锛�', del_flag char(1) default '0' comment '鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�', create_by varchar(64) default '' comment '鍒涘缓鑰�', - create_time datetime comment '鍒涘缓鏃堕棿', + create_time datetime comment '鍒涘缓鏃堕棿', update_by varchar(64) default '' comment '鏇存柊鑰�', update_time datetime comment '鏇存柊鏃堕棿', primary key (dept_id) @@ -82,7 +82,7 @@ status char(1) not null comment '鐘舵�侊紙0姝e父 1鍋滅敤锛�', create_by varchar(64) default '' comment '鍒涘缓鑰�', create_time datetime comment '鍒涘缓鏃堕棿', - update_by varchar(64) default '' comment '鏇存柊鑰�', + update_by varchar(64) default '' comment '鏇存柊鑰�', update_time datetime comment '鏇存柊鏃堕棿', remark varchar(500) default null comment '澶囨敞', primary key (post_id) @@ -600,7 +600,7 @@ gen_path varchar(200) default '/' comment '鐢熸垚璺緞锛堜笉濉粯璁ら」鐩矾寰勶級', options varchar(1000) comment '鍏跺畠鐢熸垚閫夐」', create_by varchar(64) default '' comment '鍒涘缓鑰�', - create_time datetime comment '鍒涘缓鏃堕棿', + create_time datetime comment '鍒涘缓鏃堕棿', update_by varchar(64) default '' comment '鏇存柊鑰�', update_time datetime comment '鏇存柊鏃堕棿', remark varchar(500) default null comment '澶囨敞', @@ -632,7 +632,7 @@ dict_type varchar(200) default '' comment '瀛楀吀绫诲瀷', sort int comment '鎺掑簭', create_by varchar(64) default '' comment '鍒涘缓鑰�', - create_time datetime comment '鍒涘缓鏃堕棿', + create_time datetime comment '鍒涘缓鏃堕棿', update_by varchar(64) default '' comment '鏇存柊鑰�', update_time datetime comment '鏇存柊鏃堕棿', primary key (column_id) -- Gitblit v1.9.3