├── src
└── main
│ ├── resources
│ ├── static
│ │ ├── file
│ │ │ └── rml.txt
│ │ ├── ruoyi.png
│ │ ├── favicon.ico
│ │ ├── img
│ │ │ ├── blue.png
│ │ │ ├── pay.png
│ │ │ ├── user.png
│ │ │ ├── loading.gif
│ │ │ ├── locked.png
│ │ │ ├── profile.jpg
│ │ │ ├── qr_code.png
│ │ │ ├── progress.png
│ │ │ ├── loading-upload.gif
│ │ │ └── login-background.jpg
│ │ ├── fonts
│ │ │ ├── iconfont.eot
│ │ │ ├── iconfont.ttf
│ │ │ ├── zenicon.woff
│ │ │ ├── iconfont.woff
│ │ │ ├── FontAwesome.otf
│ │ │ ├── Simple-Line-Icons.woff2
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ ├── fontawesome-webfont.woff2
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── ajax
│ │ │ └── libs
│ │ │ │ ├── iCheck
│ │ │ │ ├── green.png
│ │ │ │ ├── green@2x.png
│ │ │ │ └── green-login.png
│ │ │ │ ├── layer
│ │ │ │ └── theme
│ │ │ │ │ └── moon
│ │ │ │ │ └── default.png
│ │ │ │ ├── summernote
│ │ │ │ └── font
│ │ │ │ │ ├── summernote.eot
│ │ │ │ │ ├── summernote.ttf
│ │ │ │ │ ├── summernote.woff
│ │ │ │ │ └── summernote.woff2
│ │ │ │ ├── bootstrap-fileinput
│ │ │ │ ├── loading.gif
│ │ │ │ └── loading-sm.gif
│ │ │ │ ├── jquery-ztree
│ │ │ │ └── 3.5
│ │ │ │ │ └── css
│ │ │ │ │ ├── metro
│ │ │ │ │ └── img
│ │ │ │ │ │ ├── metro.gif
│ │ │ │ │ │ ├── metro.png
│ │ │ │ │ │ ├── loading.gif
│ │ │ │ │ │ ├── line_conn.gif
│ │ │ │ │ │ └── line_conn.png
│ │ │ │ │ ├── default
│ │ │ │ │ └── img
│ │ │ │ │ │ ├── diy
│ │ │ │ │ │ ├── 2.png
│ │ │ │ │ │ ├── 3.png
│ │ │ │ │ │ ├── 4.png
│ │ │ │ │ │ ├── 5.png
│ │ │ │ │ │ ├── 6.png
│ │ │ │ │ │ ├── 7.png
│ │ │ │ │ │ ├── 8.png
│ │ │ │ │ │ ├── 9.png
│ │ │ │ │ │ ├── 1_close.png
│ │ │ │ │ │ └── 1_open.png
│ │ │ │ │ │ ├── loading.gif
│ │ │ │ │ │ ├── line_conn.gif
│ │ │ │ │ │ ├── zTreeStandard.gif
│ │ │ │ │ │ └── zTreeStandard.png
│ │ │ │ │ └── simple
│ │ │ │ │ └── img
│ │ │ │ │ ├── loading.gif
│ │ │ │ │ ├── left_menu.gif
│ │ │ │ │ ├── left_menu.png
│ │ │ │ │ ├── line_conn.gif
│ │ │ │ │ ├── zTreeStandard.gif
│ │ │ │ │ └── zTreeStandard.png
│ │ │ │ ├── bootstrap-table
│ │ │ │ └── extensions
│ │ │ │ │ ├── editable
│ │ │ │ │ ├── clear.png
│ │ │ │ │ └── loading.gif
│ │ │ │ │ └── resizable
│ │ │ │ │ └── bootstrap-table-resizable.js
│ │ │ │ ├── validate
│ │ │ │ └── messages_zh.js
│ │ │ │ ├── jsonview
│ │ │ │ └── jquery.jsonview.css
│ │ │ │ ├── highlight
│ │ │ │ └── default.min.css
│ │ │ │ └── duallistbox
│ │ │ │ └── bootstrap-duallistbox.min.css
│ │ └── i18n
│ │ │ └── messages.properties
│ ├── templates
│ │ ├── error
│ │ │ ├── service.html
│ │ │ ├── 500.html
│ │ │ ├── 404.html
│ │ │ └── unauth.html
│ │ ├── demo
│ │ │ ├── modal
│ │ │ │ └── table
│ │ │ │ │ ├── frame2.html
│ │ │ │ │ └── frame1.html
│ │ │ └── form
│ │ │ │ └── localrefresh.html
│ │ ├── tool
│ │ │ └── gen
│ │ │ │ └── createTable.html
│ │ └── system
│ │ │ ├── notice
│ │ │ └── view.html
│ │ │ ├── dict
│ │ │ └── type
│ │ │ │ └── tree.html
│ │ │ ├── menu
│ │ │ └── tree.html
│ │ │ ├── user
│ │ │ ├── resetPwd.html
│ │ │ └── deptTree.html
│ │ │ └── dept
│ │ │ └── tree.html
│ ├── mybatis
│ │ ├── mybatis-config.xml
│ │ └── system
│ │ │ ├── UserPostMapper.xml
│ │ │ ├── RoleDeptMapper.xml
│ │ │ ├── RoleMenuMapper.xml
│ │ │ └── UserRoleMapper.xml
│ ├── banner.txt
│ └── vm
│ │ ├── sql
│ │ └── sql.vm
│ │ └── java
│ │ └── service.java.vm
│ └── java
│ └── com
│ └── ruoyi
│ ├── framework
│ ├── aspectj
│ │ ├── lang
│ │ │ ├── enums
│ │ │ │ ├── DataSourceType.java
│ │ │ │ ├── BusinessStatus.java
│ │ │ │ ├── OperatorType.java
│ │ │ │ ├── BusinessType.java
│ │ │ │ └── DesensitizedType.java
│ │ │ └── annotation
│ │ │ │ ├── Excels.java
│ │ │ │ ├── Anonymous.java
│ │ │ │ ├── Sensitive.java
│ │ │ │ ├── DataSource.java
│ │ │ │ ├── DataScope.java
│ │ │ │ └── Log.java
│ │ └── PermissionsAspect.java
│ ├── config
│ │ ├── ApplicationConfig.java
│ │ ├── ServerConfig.java
│ │ ├── I18nConfig.java
│ │ ├── FilterConfig.java
│ │ ├── GenConfig.java
│ │ └── ResourcesConfig.java
│ ├── interceptor
│ │ ├── annotation
│ │ │ └── RepeatSubmit.java
│ │ └── RepeatSubmitInterceptor.java
│ ├── task
│ │ └── RyTask.java
│ ├── web
│ │ ├── service
│ │ │ ├── ConfigService.java
│ │ │ └── DictService.java
│ │ ├── domain
│ │ │ ├── CxSelect.java
│ │ │ ├── TreeEntity.java
│ │ │ └── Ztree.java
│ │ └── page
│ │ │ ├── TableSupport.java
│ │ │ ├── TableDataInfo.java
│ │ │ └── PageDomain.java
│ ├── datasource
│ │ ├── DynamicDataSource.java
│ │ └── DynamicDataSourceContextHolder.java
│ ├── context
│ │ └── PermissionContextHolder.java
│ ├── manager
│ │ └── AsyncManager.java
│ └── shiro
│ │ └── web
│ │ └── filter
│ │ └── sync
│ │ └── SyncOnlineSessionFilter.java
│ ├── common
│ ├── exception
│ │ ├── DemoModeException.java
│ │ ├── user
│ │ │ ├── BlackListException.java
│ │ │ ├── CaptchaException.java
│ │ │ ├── UserBlockedException.java
│ │ │ ├── UserDeleteException.java
│ │ │ ├── RoleBlockedException.java
│ │ │ ├── UserNotExistsException.java
│ │ │ ├── UserPasswordNotMatchException.java
│ │ │ ├── UserException.java
│ │ │ ├── UserPasswordRetryLimitCountException.java
│ │ │ └── UserPasswordRetryLimitExceedException.java
│ │ ├── file
│ │ │ ├── FileException.java
│ │ │ ├── FileSizeLimitExceededException.java
│ │ │ ├── FileNameLengthLimitExceededException.java
│ │ │ └── FileUploadException.java
│ │ ├── UtilException.java
│ │ ├── job
│ │ │ └── TaskException.java
│ │ ├── GlobalException.java
│ │ └── ServiceException.java
│ ├── utils
│ │ ├── poi
│ │ │ └── ExcelHandlerAdapter.java
│ │ ├── MessageUtils.java
│ │ ├── bean
│ │ │ └── BeanValidators.java
│ │ ├── security
│ │ │ ├── AuthorizationUtils.java
│ │ │ └── CipherUtils.java
│ │ ├── PageUtils.java
│ │ ├── uuid
│ │ │ └── IdUtils.java
│ │ ├── DesensitizedUtil.java
│ │ ├── AddressUtils.java
│ │ ├── MapDataUtil.java
│ │ ├── file
│ │ │ └── MimeTypeUtils.java
│ │ ├── Md5Utils.java
│ │ ├── ExceptionUtil.java
│ │ └── sql
│ │ │ └── SqlUtil.java
│ ├── constant
│ │ ├── PermissionConstants.java
│ │ ├── ScheduleConstants.java
│ │ ├── CommonMap.java
│ │ └── ShiroConstants.java
│ └── xss
│ │ ├── Xss.java
│ │ ├── XssHttpServletRequestWrapper.java
│ │ └── XssValidator.java
│ ├── project
│ ├── monitor
│ │ ├── job
│ │ │ ├── util
│ │ │ │ ├── QuartzJobExecution.java
│ │ │ │ └── QuartzDisallowConcurrentExecution.java
│ │ │ ├── service
│ │ │ │ └── IJobLogService.java
│ │ │ └── mapper
│ │ │ │ ├── JobMapper.java
│ │ │ │ └── JobLogMapper.java
│ │ ├── druid
│ │ │ └── DruidController.java
│ │ ├── logininfor
│ │ │ ├── service
│ │ │ │ ├── ILogininforService.java
│ │ │ │ └── LogininforServiceImpl.java
│ │ │ └── mapper
│ │ │ │ └── LogininforMapper.java
│ │ ├── server
│ │ │ ├── controller
│ │ │ │ └── ServerController.java
│ │ │ └── domain
│ │ │ │ ├── Mem.java
│ │ │ │ └── Sys.java
│ │ ├── operlog
│ │ │ ├── service
│ │ │ │ ├── IOperLogService.java
│ │ │ │ └── OperLogServiceImpl.java
│ │ │ └── mapper
│ │ │ │ └── OperLogMapper.java
│ │ └── online
│ │ │ ├── mapper
│ │ │ └── UserOnlineMapper.java
│ │ │ └── service
│ │ │ └── IUserOnlineService.java
│ ├── system
│ │ ├── user
│ │ │ ├── domain
│ │ │ │ ├── UserStatus.java
│ │ │ │ ├── UserPost.java
│ │ │ │ └── UserRole.java
│ │ │ ├── mapper
│ │ │ │ ├── UserPostMapper.java
│ │ │ │ └── UserRoleMapper.java
│ │ │ └── controller
│ │ │ │ └── RegisterController.java
│ │ ├── role
│ │ │ ├── mapper
│ │ │ │ ├── RoleDeptMapper.java
│ │ │ │ ├── RoleMenuMapper.java
│ │ │ │ └── RoleMapper.java
│ │ │ └── domain
│ │ │ │ ├── RoleDept.java
│ │ │ │ └── RoleMenu.java
│ │ ├── notice
│ │ │ ├── mapper
│ │ │ │ └── NoticeMapper.java
│ │ │ └── service
│ │ │ │ └── INoticeService.java
│ │ ├── dict
│ │ │ ├── service
│ │ │ │ └── IDictDataService.java
│ │ │ └── mapper
│ │ │ │ └── DictTypeMapper.java
│ │ ├── config
│ │ │ ├── mapper
│ │ │ │ └── ConfigMapper.java
│ │ │ └── service
│ │ │ │ └── IConfigService.java
│ │ └── post
│ │ │ ├── mapper
│ │ │ └── PostMapper.java
│ │ │ └── service
│ │ │ └── IPostService.java
│ ├── tool
│ │ ├── swagger
│ │ │ └── SwaggerController.java
│ │ ├── build
│ │ │ └── BuildController.java
│ │ └── gen
│ │ │ ├── util
│ │ │ └── VelocityInitializer.java
│ │ │ ├── service
│ │ │ ├── IGenTableColumnService.java
│ │ │ └── GenTableColumnServiceImpl.java
│ │ │ └── mapper
│ │ │ ├── GenTableColumnMapper.java
│ │ │ └── GenTableMapper.java
│ └── demo
│ │ └── controller
│ │ ├── DemoIconController.java
│ │ └── DemoReportController.java
│ ├── RuoYiServletInitializer.java
│ └── RuoYiApplication.java
├── ry.bat
├── .github
└── FUNDING.yml
├── bin
├── clean.bat
├── package.bat
└── run-tomcat.bat
├── doc
└── 若依环境使用手册.docx
├── .gitignore
├── LICENSE
└── ry.sh
/src/main/resources/static/file/rml.txt:
--------------------------------------------------------------------------------
1 | 下载临时目录
--------------------------------------------------------------------------------
/ry.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/ry.bat
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: http://doc.ruoyi.vip/ruoyi/other/donate.html
2 |
--------------------------------------------------------------------------------
/bin/clean.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/bin/clean.bat
--------------------------------------------------------------------------------
/bin/package.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/bin/package.bat
--------------------------------------------------------------------------------
/bin/run-tomcat.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/bin/run-tomcat.bat
--------------------------------------------------------------------------------
/doc/若依环境使用手册.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/doc/若依环境使用手册.docx
--------------------------------------------------------------------------------
/src/main/resources/static/ruoyi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ruoyi.png
--------------------------------------------------------------------------------
/src/main/resources/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/favicon.ico
--------------------------------------------------------------------------------
/src/main/resources/static/img/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/blue.png
--------------------------------------------------------------------------------
/src/main/resources/static/img/pay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/pay.png
--------------------------------------------------------------------------------
/src/main/resources/static/img/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/user.png
--------------------------------------------------------------------------------
/src/main/resources/static/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/img/locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/locked.png
--------------------------------------------------------------------------------
/src/main/resources/static/img/profile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/profile.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/img/qr_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/qr_code.png
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/iconfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/zenicon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/zenicon.woff
--------------------------------------------------------------------------------
/src/main/resources/static/img/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/progress.png
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/iconfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/main/resources/static/img/loading-upload.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/loading-upload.gif
--------------------------------------------------------------------------------
/src/main/resources/static/img/login-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/img/login-background.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/iCheck/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/iCheck/green.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/iCheck/green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/iCheck/green@2x.png
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/Simple-Line-Icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/Simple-Line-Icons.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/iCheck/green-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/iCheck/green-login.png
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/layer/theme/moon/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/layer/theme/moon/default.png
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/summernote/font/summernote.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/summernote/font/summernote.eot
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/summernote/font/summernote.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/summernote/font/summernote.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/summernote/font/summernote.woff
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/summernote/font/summernote.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/summernote/font/summernote.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/bootstrap-fileinput/loading-sm.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/clear.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif
--------------------------------------------------------------------------------
/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yangzongzhuan/RuoYi-fast/HEAD/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/aspectj/lang/enums/DataSourceType.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.aspectj.lang.enums;
2 |
3 | /**
4 | * 数据源
5 | *
6 | * @author ruoyi
7 | */
8 | public enum DataSourceType
9 | {
10 | /**
11 | * 主库
12 | */
13 | MASTER,
14 |
15 | /**
16 | * 从库
17 | */
18 | SLAVE
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/DemoModeException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception;
2 |
3 | /**
4 | * 演示模式异常
5 | *
6 | * @author ruoyi
7 | */
8 | public class DemoModeException extends RuntimeException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public DemoModeException()
13 | {
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessStatus.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.aspectj.lang.enums;
2 |
3 | /**
4 | * 操作状态
5 | *
6 | * @author ruoyi
7 | *
8 | */
9 | public enum BusinessStatus
10 | {
11 | /**
12 | * 成功
13 | */
14 | SUCCESS,
15 |
16 | /**
17 | * 失败
18 | */
19 | FAIL,
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/BlackListException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 黑名单IP异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class BlackListException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public BlackListException()
13 | {
14 | super("login.blocked", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 验证码错误异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class CaptchaException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public CaptchaException()
13 | {
14 | super("user.jcaptcha.error", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserBlockedException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户锁定异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserBlockedException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserBlockedException()
13 | {
14 | super("user.blocked", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserDeleteException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户账号已被删除
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserDeleteException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserDeleteException()
13 | {
14 | super("user.password.delete", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/RoleBlockedException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 角色锁定异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class RoleBlockedException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public RoleBlockedException()
13 | {
14 | super("role.blocked", null);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserNotExistsException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户不存在异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserNotExistsException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserNotExistsException()
13 | {
14 | super("user.not.exists", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/aspectj/lang/enums/OperatorType.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.aspectj.lang.enums;
2 |
3 | /**
4 | * 操作人类别
5 | *
6 | * @author ruoyi
7 | *
8 | */
9 | public enum OperatorType
10 | {
11 | /**
12 | * 其它
13 | */
14 | OTHER,
15 |
16 | /**
17 | * 后台用户
18 | */
19 | MANAGE,
20 |
21 | /**
22 | * 手机端用户
23 | */
24 | MOBILE
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户密码不正确或不符合规范异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserPasswordNotMatchException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserPasswordNotMatchException()
13 | {
14 | super("user.password.not.match", null);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/file/FileException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.file;
2 |
3 | import com.ruoyi.common.exception.base.BaseException;
4 |
5 | /**
6 | * 文件信息异常类
7 | *
8 | * @author ruoyi
9 | */
10 | public class FileException extends BaseException
11 | {
12 | private static final long serialVersionUID = 1L;
13 |
14 | public FileException(String code, Object[] args)
15 | {
16 | super("file", code, args, null);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.file;
2 |
3 | /**
4 | * 文件名大小限制异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class FileSizeLimitExceededException extends FileException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public FileSizeLimitExceededException(long defaultMaxSize)
13 | {
14 | super("upload.exceed.maxSize", new Object[] { defaultMaxSize });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | import com.ruoyi.common.exception.base.BaseException;
4 |
5 | /**
6 | * 用户信息异常类
7 | *
8 | * @author ruoyi
9 | */
10 | public class UserException extends BaseException
11 | {
12 | private static final long serialVersionUID = 1L;
13 |
14 | public UserException(String code, Object[] args)
15 | {
16 | super("user", code, args, null);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excels.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.aspectj.lang.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * Excel注解集
10 | *
11 | * @author ruoyi
12 | */
13 | @Target(ElementType.FIELD)
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface Excels
16 | {
17 | Excel[] value();
18 | }
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户错误记数异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserPasswordRetryLimitCountException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserPasswordRetryLimitCountException(int retryLimitCount)
13 | {
14 | super("user.password.retry.limit.count", new Object[] { retryLimitCount });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitExceedException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.user;
2 |
3 | /**
4 | * 用户错误最大次数异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class UserPasswordRetryLimitExceedException extends UserException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public UserPasswordRetryLimitExceedException(int retryLimitCount)
13 | {
14 | super("user.password.retry.limit.exceed", new Object[] { retryLimitCount });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.file;
2 |
3 | /**
4 | * 文件名称超长限制异常类
5 | *
6 | * @author ruoyi
7 | */
8 | public class FileNameLengthLimitExceededException extends FileException
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public FileNameLengthLimitExceededException(int defaultFileNameLength)
13 | {
14 | super("upload.filename.exceed.length", new Object[] { defaultFileNameLength });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/monitor/job/util/QuartzJobExecution.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.monitor.job.util;
2 |
3 | import org.quartz.JobExecutionContext;
4 | import com.ruoyi.project.monitor.job.domain.Job;
5 |
6 | /**
7 | * 定时任务处理(允许并发执行)
8 | *
9 | * @author ruoyi
10 | *
11 | */
12 | public class QuartzJobExecution extends AbstractQuartzJob
13 | {
14 | @Override
15 | protected void doExecute(JobExecutionContext context, Job job) throws Exception
16 | {
17 | JobInvokeUtil.invokeMethod(job);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Anonymous.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.aspectj.lang.annotation;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.ElementType;
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.lang.annotation.Target;
8 |
9 | /**
10 | * 匿名访问不鉴权注解
11 | *
12 | * @author ruoyi
13 | */
14 | @Target({ ElementType.METHOD, ElementType.TYPE })
15 | @Retention(RetentionPolicy.RUNTIME)
16 | @Documented
17 | public @interface Anonymous
18 | {
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.config;
2 |
3 | import org.mybatis.spring.annotation.MapperScan;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.context.annotation.EnableAspectJAutoProxy;
6 |
7 | /**
8 | * 程序注解配置
9 | *
10 | * @author ruoyi
11 | */
12 | @Configuration
13 | // 表示通过aop框架暴露该代理对象,AopContext能够访问
14 | @EnableAspectJAutoProxy(exposeProxy = true)
15 | // 指定要扫描的Mapper类的包的路径
16 | @MapperScan("com.ruoyi.project.**.mapper")
17 | public class ApplicationConfig
18 | {
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/RuoYiServletInitializer.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi;
2 |
3 | import org.springframework.boot.builder.SpringApplicationBuilder;
4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
5 |
6 | /**
7 | * web容器中进行部署
8 | *
9 | * @author ruoyi
10 | */
11 | public class RuoYiServletInitializer extends SpringBootServletInitializer
12 | {
13 | @Override
14 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
15 | {
16 | return application.sources(RuoYiApplication.class);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.utils.poi;
2 |
3 | import org.apache.poi.ss.usermodel.Cell;
4 | import org.apache.poi.ss.usermodel.Workbook;
5 |
6 | /**
7 | * Excel数据格式处理适配器
8 | *
9 | * @author ruoyi
10 | */
11 | public interface ExcelHandlerAdapter
12 | {
13 | /**
14 | * 格式化
15 | *
16 | * @param value 单元格数据值
17 | * @param args excel注解args参数组
18 | * @param cell 单元格对象
19 | * @param wb 工作簿对象
20 | *
21 | * @return 处理后的值
22 | */
23 | Object format(Object value, String[] args, Cell cell, Workbook wb);
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/UtilException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception;
2 |
3 | /**
4 | * 工具类异常
5 | *
6 | * @author ruoyi
7 | */
8 | public class UtilException extends RuntimeException
9 | {
10 | private static final long serialVersionUID = 8247610319171014183L;
11 |
12 | public UtilException(Throwable e)
13 | {
14 | super(e.getMessage(), e);
15 | }
16 |
17 | public UtilException(String message)
18 | {
19 | super(message);
20 | }
21 |
22 | public UtilException(String message, Throwable throwable)
23 | {
24 | super(message, throwable);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/monitor/job/util/QuartzDisallowConcurrentExecution.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.monitor.job.util;
2 |
3 | import org.quartz.DisallowConcurrentExecution;
4 | import org.quartz.JobExecutionContext;
5 | import com.ruoyi.project.monitor.job.domain.Job;
6 |
7 | /**
8 | * 定时任务处理(禁止并发执行)
9 | *
10 | * @author ruoyi
11 | *
12 | */
13 | @DisallowConcurrentExecution
14 | public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob
15 | {
16 | @Override
17 | protected void doExecute(JobExecutionContext context, Job job) throws Exception
18 | {
19 | JobInvokeUtil.invokeMethod(job);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/system/user/domain/UserStatus.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.system.user.domain;
2 |
3 | /**
4 | * 用户状态
5 | *
6 | * @author ruoyi
7 | *
8 | */
9 | public enum UserStatus
10 | {
11 | OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除");
12 |
13 | private final String code;
14 | private final String info;
15 |
16 | UserStatus(String code, String info)
17 | {
18 | this.code = code;
19 | this.info = info;
20 | }
21 |
22 | public String getCode()
23 | {
24 | return code;
25 | }
26 |
27 | public String getInfo()
28 | {
29 | return info;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/resources/templates/error/service.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | RuoYi - 500
7 |
8 |
9 |
10 |
11 |
12 |
13 |
操作异常!
14 |
15 |
16 | [[${errorMessage}]]
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/constant/PermissionConstants.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.constant;
2 |
3 | /**
4 | * 权限通用常量
5 | *
6 | * @author ruoyi
7 | */
8 | public class PermissionConstants
9 | {
10 | /** 新增权限 */
11 | public static final String ADD_PERMISSION = "add";
12 |
13 | /** 修改权限 */
14 | public static final String EDIT_PERMISSION = "edit";
15 |
16 | /** 删除权限 */
17 | public static final String REMOVE_PERMISSION = "remove";
18 |
19 | /** 导出权限 */
20 | public static final String EXPORT_PERMISSION = "export";
21 |
22 | /** 显示权限 */
23 | public static final String VIEW_PERMISSION = "view";
24 |
25 | /** 查询权限 */
26 | public static final String LIST_PERMISSION = "list";
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/interceptor/annotation/RepeatSubmit.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.interceptor.annotation;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.ElementType;
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.lang.annotation.Target;
8 |
9 | /**
10 | * 自定义注解防止表单重复提交
11 | *
12 | * @author ruoyi
13 | *
14 | */
15 | @Target(ElementType.METHOD)
16 | @Retention(RetentionPolicy.RUNTIME)
17 | @Documented
18 | public @interface RepeatSubmit
19 | {
20 | /**
21 | * 间隔时间(ms),小于此时间视为重复提交
22 | */
23 | public int interval() default 5000;
24 |
25 | /**
26 | * 提示消息
27 | */
28 | public String message() default "不允许重复提交,请稍后再试";
29 | }
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/task/RyTask.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.task;
2 |
3 | import org.springframework.stereotype.Component;
4 | import com.ruoyi.common.utils.StringUtils;
5 |
6 | /**
7 | * 定时任务调度测试
8 | *
9 | * @author ruoyi
10 | */
11 | @Component("ryTask")
12 | public class RyTask
13 | {
14 | public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
15 | {
16 | System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
17 | }
18 |
19 | public void ryParams(String params)
20 | {
21 | System.out.println("执行有参方法:" + params);
22 | }
23 |
24 | public void ryNoParams()
25 | {
26 | System.out.println("执行无参方法");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/web/service/ConfigService.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.web.service;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.stereotype.Service;
5 | import com.ruoyi.project.system.config.service.IConfigService;
6 |
7 | /**
8 | * RuoYi首创 html调用 thymeleaf 实现参数管理
9 | *
10 | * @author ruoyi
11 | */
12 | @Service("config")
13 | public class ConfigService
14 | {
15 | @Autowired
16 | private IConfigService configService;
17 |
18 | /**
19 | * 根据键名查询参数配置信息
20 | *
21 | * @param configKey 参数键名
22 | * @return 参数键值
23 | */
24 | public String getKey(String configKey)
25 | {
26 | return configService.selectConfigByKey(configKey);
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/tool/swagger/SwaggerController.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.tool.swagger;
2 |
3 | import org.apache.shiro.authz.annotation.RequiresPermissions;
4 | import org.springframework.stereotype.Controller;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import com.ruoyi.framework.web.controller.BaseController;
8 |
9 | /**
10 | * swagger 接口
11 | *
12 | * @author ruoyi
13 | */
14 | @Controller
15 | @RequestMapping("/tool/swagger")
16 | public class SwaggerController extends BaseController
17 | {
18 | @RequiresPermissions("tool:swagger:view")
19 | @GetMapping()
20 | public String index()
21 | {
22 | return redirect("/swagger-ui/index.html");
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/utils/MessageUtils.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.utils;
2 |
3 | import org.springframework.context.MessageSource;
4 | import org.springframework.context.i18n.LocaleContextHolder;
5 | import com.ruoyi.common.utils.spring.SpringUtils;
6 |
7 | /**
8 | * 获取i18n资源文件
9 | *
10 | * @author ruoyi
11 | */
12 | public class MessageUtils
13 | {
14 | /**
15 | * 根据消息键和参数 获取消息 委托给spring messageSource
16 | *
17 | * @param code 消息键
18 | * @param args 参数
19 | * @return 获取国际化翻译值
20 | */
21 | public static String message(String code, Object... args)
22 | {
23 | MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
24 | return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/xss/Xss.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.xss;
2 |
3 | import javax.validation.Constraint;
4 | import javax.validation.Payload;
5 | import java.lang.annotation.ElementType;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | /**
11 | * 自定义xss校验注解
12 | *
13 | * @author ruoyi
14 | */
15 | @Retention(RetentionPolicy.RUNTIME)
16 | @Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER })
17 | @Constraint(validatedBy = { XssValidator.class })
18 | public @interface Xss
19 | {
20 | String message()
21 |
22 | default "不允许任何脚本运行";
23 |
24 | Class>[] groups() default {};
25 |
26 | Class extends Payload>[] payload() default {};
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/tool/build/BuildController.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.tool.build;
2 |
3 | import org.apache.shiro.authz.annotation.RequiresPermissions;
4 | import org.springframework.stereotype.Controller;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import com.ruoyi.framework.web.controller.BaseController;
8 |
9 | /**
10 | * build 表单构建
11 | *
12 | * @author ruoyi
13 | */
14 | @Controller
15 | @RequestMapping("/tool/build")
16 | public class BuildController extends BaseController
17 | {
18 | private String prefix = "tool/build";
19 |
20 | @RequiresPermissions("tool:build:view")
21 | @GetMapping()
22 | public String build()
23 | {
24 | return prefix + "/build";
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.utils.bean;
2 |
3 | import java.util.Set;
4 | import javax.validation.ConstraintViolation;
5 | import javax.validation.ConstraintViolationException;
6 | import javax.validation.Validator;
7 |
8 | /**
9 | * bean对象属性验证
10 | *
11 | * @author ruoyi
12 | */
13 | public class BeanValidators
14 | {
15 | public static void validateWithException(Validator validator, Object object, Class>... groups)
16 | throws ConstraintViolationException
17 | {
18 | Set> constraintViolations = validator.validate(object, groups);
19 | if (!constraintViolations.isEmpty())
20 | {
21 | throw new ConstraintViolationException(constraintViolations);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ######################################################################
2 | # Build Tools
3 |
4 | .gradle
5 | /build/
6 | !gradle/wrapper/gradle-wrapper.jar
7 |
8 | target/
9 | !.mvn/wrapper/maven-wrapper.jar
10 |
11 | ######################################################################
12 | # IDE
13 |
14 | ### STS ###
15 | .apt_generated
16 | .classpath
17 | .factorypath
18 | .project
19 | .settings
20 | .springBeans
21 |
22 | ### IntelliJ IDEA ###
23 | .idea
24 | *.iws
25 | *.iml
26 | *.ipr
27 |
28 | ### JRebel ###
29 | rebel.xml
30 | ### NetBeans ###
31 | nbproject/private/
32 | build/*
33 | nbbuild/
34 | dist/
35 | nbdist/
36 | .nb-gradle/
37 |
38 | ######################################################################
39 | # Others
40 | *.log
41 | *.xml.versionsBackup
42 | *.swp
43 |
44 | !*/build/*.java
45 | !*/build/*.html
46 | !*/build/*.xml
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/project/monitor/druid/DruidController.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.project.monitor.druid;
2 |
3 | import org.apache.shiro.authz.annotation.RequiresPermissions;
4 | import org.springframework.stereotype.Controller;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import com.ruoyi.framework.web.controller.BaseController;
8 |
9 | /**
10 | * druid 监控
11 | *
12 | * @author ruoyi
13 | */
14 | @Controller
15 | @RequestMapping("/monitor/data")
16 | public class DruidController extends BaseController
17 | {
18 | private String prefix = "/druid";
19 |
20 | @RequiresPermissions("monitor:data:view")
21 | @GetMapping()
22 | public String index()
23 | {
24 | return redirect(prefix + "/index.html");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/common/exception/job/TaskException.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.common.exception.job;
2 |
3 | /**
4 | * 计划策略异常
5 | *
6 | * @author ruoyi
7 | */
8 | public class TaskException extends Exception
9 | {
10 | private static final long serialVersionUID = 1L;
11 |
12 | private Code code;
13 |
14 | public TaskException(String msg, Code code)
15 | {
16 | this(msg, code, null);
17 | }
18 |
19 | public TaskException(String msg, Code code, Exception nestedEx)
20 | {
21 | super(msg, nestedEx);
22 | this.code = code;
23 | }
24 |
25 | public Code getCode()
26 | {
27 | return code;
28 | }
29 |
30 | public enum Code
31 | {
32 | TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE
33 | }
34 | }
--------------------------------------------------------------------------------
/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java:
--------------------------------------------------------------------------------
1 | package com.ruoyi.framework.datasource;
2 |
3 | import java.util.Map;
4 | import javax.sql.DataSource;
5 | import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
6 |
7 | /**
8 | * 动态数据源
9 | *
10 | * @author ruoyi
11 | */
12 | public class DynamicDataSource extends AbstractRoutingDataSource
13 | {
14 | public DynamicDataSource(DataSource defaultTargetDataSource, Map