zf
2023-09-07 67ba3d8510c75f62c53d97399d8b9ef3d01196c8
考试系统框架整理,以及集成mybatis-plus
已修改7个文件
已添加14个文件
已删除294个文件
27059 ■■■■■ 文件已修改
exam-system/pom.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TestDemoController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-dev.yml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/pom.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/pom.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/constants/FileProjectConstants.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/controller/AttachmentController.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/entity/AttachmentInfo.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/mapper/AttachmentInfoMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/properties/FilePathProperties.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentInfoService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.editorconfig 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.env.development 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.env.production 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.env.staging 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.eslintignore 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.eslintrc.js 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/.gitignore 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/README.md 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/babel.config.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/bin/build.bat 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/bin/package.bat 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/bin/run-web.bat 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/build/index.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/package.json 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/public/html/ie.html 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/public/index.html 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/public/robots.txt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/App.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/login.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/menu.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/cache.js 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/job.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/jobLog.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/logininfor.js 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/online.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/operlog.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/monitor/server.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/config.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/dept.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/dict/data.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/dict/type.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/menu.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/notice.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/post.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/role.js 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/system/user.js 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/tool/gen.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/401_images/401.gif 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/404_images/404.png 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/404_images/404_cloud.png 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/404.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/bug.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/build.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/button.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/cascader.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/chart.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/checkbox.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/clipboard.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/code.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/color.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/component.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/dashboard.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/date-range.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/date.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/dict.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/documentation.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/download.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/drag.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/druid.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/edit.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/education.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/email.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/example.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/excel.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/eye-open.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/eye.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/form.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/fullscreen.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/github.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/guide.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/icon.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/input.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/international.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/job.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/language.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/link.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/list.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/lock.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/log.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/logininfor.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/message.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/money.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/monitor.svg 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/nested.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/number.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/online.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/password.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/pdf.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/people.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/peoples.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/phone.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/post.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/qq.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/question.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/radio.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/rate.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/redis-list.svg 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/redis.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/row.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/search.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/select.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/server.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/shopping.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/size.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/skill.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/slider.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/star.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/swagger.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/switch.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/system.svg 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/tab.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/table.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/textarea.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/theme.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/time-range.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/time.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/tool.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/tree-table.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/tree.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/upload.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/user.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/validCode.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/wechat.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svg/zip.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/icons/svgo.yml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/images/dark.svg 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/images/light.svg 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/images/login-background.jpg 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/images/pay.png 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/images/profile.jpg 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/logo/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/btn.scss 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/element-ui.scss 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/element-variables.scss 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/index.scss 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/mixin.scss 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/ruoyi.scss 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/sidebar.scss 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/transition.scss 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/assets/styles/variables.scss 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Breadcrumb/index.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/day.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/hour.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/index.vue 430 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/min.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/month.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/result.vue 559 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/second.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/week.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Crontab/year.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/DictData/index.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/DictTag/index.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Editor/index.vue 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/FileUpload/index.vue 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Hamburger/index.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/HeaderSearch/index.vue 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/IconSelect/index.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/IconSelect/requireIcons.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/ImagePreview/index.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/ImageUpload/index.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Pagination/index.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/PanThumb/index.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/ParentView/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/RightPanel/index.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/RightToolbar/index.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/RuoYi/Doc/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/RuoYi/Git/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/Screenfull/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/SizeSelect/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/SvgIcon/index.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/ThemePicker/index.vue 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/TopNav/index.vue 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/iFrame/index.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/dialog/drag.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/dialog/dragHeight.js 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/dialog/dragWidth.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/index.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/module/clipboard.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/permission/hasPermi.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/directive/permission/hasRole.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/AppMain.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/IframeToggle/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/InnerLink/index.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Navbar.vue 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Settings/index.vue 260 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/Item.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/Link.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/Logo.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/Sidebar/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/TagsView/index.vue 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/index.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/mixin/ResizeHandler.js 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/main.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/permission.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/auth.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/cache.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/download.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/index.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/modal.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/tab.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/router/index.js 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/settings.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/getters.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/index.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/app.js 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/dict.js 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/permission.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/settings.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/tagsView.js 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/user.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/auth.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/Dict.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/DictConverter.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/DictData.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/DictMeta.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/DictOptions.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/dict/index.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/errorCode.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/config.js 438 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/css.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/drawingDefault.js 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/html.js 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/icon.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/js.js 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/generator/render.js 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/index.js 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/jsencrypt.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/permission.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/request.js 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/ruoyi.js 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/scroll-to.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/validate.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/components/icons/element-icons.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/components/icons/index.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/components/icons/svg-icons.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/BarChart.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/LineChart.vue 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/PanelGroup.vue 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/PieChart.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/RaddarChart.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/dashboard/mixins/resize.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/error/401.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/error/404.vue 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/index.vue 1023 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/index_v1.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/login.vue 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/cache/index.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/cache/list.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/druid/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/job/index.vue 513 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/job/log.vue 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/logininfor/index.vue 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/online/index.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/operlog/index.vue 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/server/index.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/redirect.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/register.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/config/index.vue 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/dept/index.vue 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/dict/data.vue 402 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/dict/index.vue 347 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/menu/index.vue 452 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/notice/index.vue 312 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/post/index.vue 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/role/authUser.vue 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/role/index.vue 605 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/role/selectUser.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/authRole.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/index.vue 670 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/profile/index.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/profile/resetPwd.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/profile/userAvatar.vue 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/profile/userInfo.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/DraggableItem.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/IconsDialog.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/RightPanel.vue 946 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/index.vue 768 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/basicInfoForm.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/editTable.vue 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/genInfoForm.vue 299 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/importTable.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/index.vue 337 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/swagger/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/vue.config.js 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/pom.xml
对比新文件
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>ruoyi</artifactId>
        <groupId>com.ruoyi</groupId>
        <version>3.8.6</version>
    </parent>
    <artifactId>exam-system</artifactId>
    <name>exam-system</name>
    <description>考试系统</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <!--附件依赖-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-file</artifactId>
        </dependency>
    </dependencies>
</project>
exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TestDemoController.java
对比新文件
@@ -0,0 +1,20 @@
package com.gkhy.exam.noncoalmine.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/9/6
 * @time: 17:24
 */
@RestController
@RequestMapping("/demo")
public class TestDemoController {
    @GetMapping("/test")
    public String test(){
        return "testController";
    }
}
pom.xml
@@ -30,6 +30,9 @@
        <poi.version>4.1.2</poi.version>
        <velocity.version>2.3</velocity.version>
        <jwt.version>0.9.1</jwt.version>
        <mybatis-plus.version>3.5.2</mybatis-plus.version>
        <hutool.version>5.5.7</hutool.version>
    </properties>
    <!-- 依赖声明 -->
@@ -169,6 +172,30 @@
                <artifactId>ruoyi-common</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!--文件模块-->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-file</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!--考试系统-->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>exam-system</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!--mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
@@ -180,6 +207,8 @@
        <module>ruoyi-quartz</module>
        <module>ruoyi-generator</module>
        <module>ruoyi-common</module>
        <module>ruoyi-file</module>
        <module>exam-system</module>
    </modules>
    <packaging>pom</packaging>
ruoyi-admin/pom.xml
@@ -60,7 +60,16 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-generator</artifactId>
        </dependency>
        <!--文件-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-file</artifactId>
        </dependency>
        <!--考试系统-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>exam-system</artifactId>
        </dependency>
    </dependencies>
    <build>
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -9,7 +9,7 @@
 * 
 * @author ruoyi
 */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class },scanBasePackages = {"com.gkhy","com.ruoyi"})
public class RuoYiApplication
{
    public static void main(String[] args)
ruoyi-admin/src/main/resources/application-dev.yml
对比新文件
@@ -0,0 +1,112 @@
# 开发环境配置
server:
    # 服务器的HTTP端口,默认为8080
    port: 8085
    servlet:
        # 应用的访问路径
        context-path: /
    tomcat:
        # tomcat的URI编码
        uri-encoding: UTF-8
        # 连接数满后的排队数,默认为100
        accept-count: 1000
        threads:
            # tomcat最大线程数,默认为200
            max: 800
            # Tomcat启动初始化的线程数,默认值10
            min-spare: 100
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://192.168.0.52:3306/swspkmas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: gkhymysql
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url:
                username:
                password:
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置连接超时时间
            connectTimeout: 30000
            # 配置网络超时时间
            socketTimeout: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username: ruoyi
                login-password: 123456
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
    # redis 配置
    redis:
        # 地址
        host: 127.0.0.1
        # 端口,默认为6379
        port: 6379
        # 数据库索引
        database: 5
        # 密码
        password: root
        # 连接超时时间
        timeout: 10s
        lettuce:
            pool:
                # 连接池中的最小空闲连接
                min-idle: 0
                # 连接池中的最大空闲连接
                max-idle: 8
                # 连接池的最大数据库连接数
                max-active: 8
                # #连接池最大阻塞等待时间(使用负值表示没有限制)
                max-wait: -1ms
#windous测试
file:
    path:
        #基础路径
        dcPath: E:\file\gkhy\test\
        urlRootPath: /uploadfile/
        module:
            #用户模块
            accountPath: /account/
ruoyi-admin/src/main/resources/application-druid.yml
文件已删除
ruoyi-admin/src/main/resources/application.yml
@@ -15,24 +15,6 @@
  # 验证码类型 math 数字计算 char 字符验证
  captchaType: math
# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 8080
  servlet:
    # 应用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # 连接数满后的排队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100
# 日志配置
logging:
  level:
@@ -54,42 +36,19 @@
    # 国际化资源文件路径
    basename: i18n/messages
  profiles:
    active: druid
    active: dev
  # 文件上传
  servlet:
    multipart:
      # 单个文件大小
      max-file-size: 10MB
      max-file-size: 100MB
      # 设置总上传的文件大小
      max-request-size: 20MB
      max-request-size: 200MB
  # 服务模块
  devtools:
    restart:
      # 热部署开关
      enabled: true
  # redis 配置
  redis:
    # 地址
    host: localhost
    # 端口,默认为6379
    port: 6379
    # 数据库索引
    database: 0
    # 密码
    password:
    # 连接超时时间
    timeout: 10s
    lettuce:
      pool:
        # 连接池中的最小空闲连接
        min-idle: 0
        # 连接池中的最大空闲连接
        max-idle: 8
        # 连接池的最大数据库连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# token配置
token:
  # 令牌自定义标识
@@ -99,14 +58,16 @@
  # 令牌有效期(默认30分钟)
  expireTime: 30
# MyBatis配置
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: com.ruoyi.**.domain
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  #  config-location: classpath:mybatis/mybatis-config.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.ruoyi.**.domain,com.gkhy.**.entity
  configuration:
    #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# PageHelper分页插件
pagehelper:
@@ -128,4 +89,4 @@
  # 排除链接(多个用逗号分隔)
  excludes: /system/notice
  # 匹配链接
  urlPatterns: /system/*,/monitor/*,/tool/*
  urlPatterns: /system/*,/monitor/*,/tool/*,/test/*
ruoyi-common/pom.xml
@@ -125,7 +125,20 @@
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>
ruoyi-file/pom.xml
对比新文件
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>ruoyi</artifactId>
        <groupId>com.ruoyi</groupId>
        <version>3.8.6</version>
    </parent>
    <artifactId>ruoyi-file</artifactId>
    <name>ruoyi-file</name>
    <description>ruoyi-file</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
    </dependencies>
</project>
ruoyi-file/src/main/java/com/ruoyi/file/constants/FileProjectConstants.java
对比新文件
@@ -0,0 +1,18 @@
package com.ruoyi.file.constants;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/8/29
 * @time: 11:04
 */
public interface FileProjectConstants {
    interface ReturnType {
        int DETAIL = 1;
        int KEY = 2;
        int URL = 3;
    }
    enum FileError{
    }
}
ruoyi-file/src/main/java/com/ruoyi/file/controller/AttachmentController.java
对比新文件
@@ -0,0 +1,141 @@
package com.ruoyi.file.controller;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.file.constants.FileProjectConstants;
import com.ruoyi.file.service.AttachmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/8/29
 * @time: 10:53
 */
@RestController
@RequestMapping("attachment")
public class AttachmentController extends BaseController {
    @Autowired
    private AttachmentService attachmentService;
    /**
     * 根据标识查询文件具体信息
     * @param key
     * @return
     */
    @GetMapping("/get/key/{key}")
    public AjaxResult findByKey(@PathVariable String key) {
        return success(attachmentService.findByKey(key));
    }
    /**
     * 根据id获取文件
     * @param id
     * @return
     */
    @GetMapping("/get/id/{id}")
    public AjaxResult get(@PathVariable Long id) {
        return success(attachmentService.findById(id));
    }
    /**
     * 删除文件数据
     * @param id
     * @return
     */
    @GetMapping("/delete/{id}")
    public AjaxResult delete(@PathVariable Long id) {
        attachmentService.delete(id);
        return success();
    }
    /**
     * 单个文件上传
     * @Description 上传文件(返回文件标识)
     * @Param [file, module]
     **/
    @PostMapping("/upload/key")
    public AjaxResult uploadReturnKey(@RequestParam("file") MultipartFile
                                       file, @RequestParam("module") String module) {
        return success(attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.KEY));
    }
    /**
     * 单个文件
     * @Description 上传文件(返回文件信息)
     * @Param [file, module]
     **/
    @PostMapping("/upload/detail")
    public AjaxResult uploadReturnDetail(@RequestParam("file") MultipartFile
                                          file, @RequestParam("module") String module) {
        return success(attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.DETAIL));
    }
    /**
     * 单个文件
     * @Description 上传文件(返回访问路径)
     * @Date 2021/4/20 19:28
     * @Param [file, module]
     **/
    @PostMapping("/upload/url")
    public AjaxResult uploadReturnUrl(@RequestParam("file") MultipartFile file, @RequestParam("module") String module) {
        return success(attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.URL));
    }
    /**
     * 批量文件
     * @Description 上传文件(返回文件信息)
     * @Param [file, module]
     **/
    @PostMapping("/upload/batch/detail")
    public AjaxResult uploadBatchReturnDetail(@RequestParam("file") MultipartFile[]
                                               file, @RequestParam("module") String module) {
        return success(attachmentService.saveBatchFileToPath(file, module));
    }
    /**
     * @return org.springframework.http.ResponseEntity<byte [ ]>
     * @Description 获取下载文件流
     * @Param [key]
     **/
    @GetMapping("/downloadFile/{key}")
    public void download(@PathVariable String key, HttpServletResponse response) {
        attachmentService.downloadForStream(response, key);
    }
    /**
     * @return void
     * @Description 文件下载
     * @Param [key, response, request]
     **/
    @RequestMapping(value = "/downloadFileById/{id}", method = {RequestMethod.POST, RequestMethod.GET})
    public void downloadFileByKey(@PathVariable Long id, HttpServletResponse response, HttpServletRequest
            request) {
        attachmentService.downloadById(response, request, id);
    }
    /**
     * @Description 获取下载文件路径
     * @Param [key]
     **/
    @GetMapping("/downloadUrl/{key}")
    public AjaxResult downLoad( @PathVariable String key) {
        return success(attachmentService.findByKey(key));
    }
}
ruoyi-file/src/main/java/com/ruoyi/file/entity/AttachmentInfo.java
对比新文件
@@ -0,0 +1,45 @@
package com.ruoyi.file.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.data.annotation.Id;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/5/6
 * @time: 14:54
 */
@Data
@TableName("attachment")
public class AttachmentInfo extends BaseEntity {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //文件标识
    private String fileKey;
    //文件本地址
    private String filePath;
    //文件访问路径
    private String fileUrl;
    //文件名称
    private String fileName;
    //文件后缀
    private String fileSuffix;
    //文件描述
    private String fileDesc;
    //文件大小
    private Long fileSize;
    //文件类型
    private String fileType;
    //模块
    private String module;
    //删除标识 0-未删除,1-删除
    private Integer delFlag;
    //业务id
    private Long businessId;
}
ruoyi-file/src/main/java/com/ruoyi/file/mapper/AttachmentInfoMapper.java
对比新文件
@@ -0,0 +1,23 @@
package com.ruoyi.file.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.file.entity.AttachmentInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 13:49
 */
@Repository
public interface AttachmentInfoMapper extends BaseMapper<AttachmentInfo> {
    void saveBatch(@Param("attachmentList") List<AttachmentInfo> attachmentList);
    void updateBusinessIdBatch(@Param("attachmentList")List<AttachmentInfo> attachmentList);
    void deleteByBusinessId(@Param("businessId")Long businessId);
}
ruoyi-file/src/main/java/com/ruoyi/file/properties/FilePathProperties.java
对比新文件
@@ -0,0 +1,31 @@
package com.ruoyi.file.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 10:06
 */
@Component
@Data
@ConfigurationProperties(prefix = "file.path")
public class FilePathProperties {
    /**
     * 文件保存根路径
     */
    private String dcPath;
    /**
     * 访问跟路径
     */
    private String urlRootPath;
    /**
     * 模块路径
     */
    private Map<String,String> module;
}
ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentInfoService.java
对比新文件
@@ -0,0 +1,33 @@
package com.ruoyi.file.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.file.entity.AttachmentInfo;
import java.util.List;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 13:51
 */
public interface AttachmentInfoService extends IService<AttachmentInfo> {
     AttachmentInfo findByKey(String key);
     AttachmentInfo findById(Long id);
     List<AttachmentInfo> findByBusinessId(Long businessId);
     List<AttachmentInfo> findByIds(List<Long> ids);
     void delete(Long id);
     AttachmentInfo saveOne(AttachmentInfo attachmentInfo);
     List<AttachmentInfo> saveBatchAttachment(List<AttachmentInfo> attachmentInfoList);
     void updateBusinessIdBatch(List<AttachmentInfo> attachmentList);
     void deleteByBusinessId(Long businessId);
}
ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java
对比新文件
@@ -0,0 +1,32 @@
package com.ruoyi.file.service;
import com.ruoyi.file.entity.AttachmentInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 13:53
 */
public interface AttachmentService {
    AttachmentInfo findByKey(String key);
    AttachmentInfo findById(Long id);
    List<AttachmentInfo> findByIds(List<Long> ids);
    List<AttachmentInfo> findByBusinessId(Long businessId);
    void delete(Long id);
    Object saveFileToPath(MultipartFile file, String module, int type);
    Object saveBatchFileToPath(MultipartFile[] file, String module);
    void downloadForStream(HttpServletResponse response, String key);
    void downloadById(HttpServletResponse response, HttpServletRequest request, Long id);
}
ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java
对比新文件
@@ -0,0 +1,88 @@
package com.ruoyi.file.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.file.entity.AttachmentInfo;
import com.ruoyi.file.mapper.AttachmentInfoMapper;
import com.ruoyi.file.service.AttachmentInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 13:48
 */
@Service
public class AttachmentInfoServiceImpl extends ServiceImpl<AttachmentInfoMapper, AttachmentInfo> implements AttachmentInfoService {
    @Autowired
    private AttachmentInfoMapper attachmentInfoMapper;
    @Override
    public AttachmentInfo findByKey(String key) {
        AttachmentInfo attachmentInfo = attachmentInfoMapper.selectOne(new LambdaQueryWrapper<AttachmentInfo>()
                .eq(AttachmentInfo::getDelFlag,0)
                .eq(AttachmentInfo::getFileKey,key));
        return attachmentInfo;
    }
    @Override
    public AttachmentInfo findById(Long id) {
        AttachmentInfo attachmentInfo = attachmentInfoMapper.selectOne(new LambdaQueryWrapper<AttachmentInfo>()
                .eq(AttachmentInfo::getDelFlag,0)
                .eq(AttachmentInfo::getId,id));
        return attachmentInfo;
    }
    @Override
    public List<AttachmentInfo> findByBusinessId(Long businessId) {
        List<AttachmentInfo> attachmentInfoList = attachmentInfoMapper.selectList(new LambdaQueryWrapper<AttachmentInfo>()
                .eq(AttachmentInfo::getDelFlag,0)
                .eq(AttachmentInfo::getBusinessId,businessId));
        return attachmentInfoList;
    }
    @Override
    public List<AttachmentInfo> findByIds(List<Long> ids) {
        return attachmentInfoMapper.selectList(new LambdaQueryWrapper<AttachmentInfo>()
                .in(AttachmentInfo::getId,ids)
                .eq(AttachmentInfo::getDelFlag,0));
    }
    @Override
    public void delete(Long id) {
        AttachmentInfo attachmentInfo = new AttachmentInfo();
        attachmentInfo.setId(id);
        attachmentInfo.setUpdateTime(new Date());
        //attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
        attachmentInfo.setDelFlag(1);
        attachmentInfoMapper.updateById(attachmentInfo);
    }
    @Override
    public AttachmentInfo saveOne(AttachmentInfo attachmentInfo) {
        attachmentInfoMapper.insert(attachmentInfo);
        return attachmentInfoMapper.selectById(attachmentInfo.getId());
    }
    @Override
    public List<AttachmentInfo> saveBatchAttachment(List<AttachmentInfo> attachmentInfoList) {
        attachmentInfoMapper.saveBatch(attachmentInfoList);
        return attachmentInfoList;
    }
    @Override
    public void updateBusinessIdBatch(List<AttachmentInfo> attachmentList) {
        attachmentInfoMapper.updateBusinessIdBatch(attachmentList);
    }
    @Override
    public void deleteByBusinessId(Long businessId) {
        attachmentInfoMapper.deleteByBusinessId(businessId);
    }
}
ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java
对比新文件
@@ -0,0 +1,322 @@
package com.ruoyi.file.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.extra.servlet.ServletUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.file.constants.FileProjectConstants;
import com.ruoyi.file.entity.AttachmentInfo;
import com.ruoyi.file.properties.FilePathProperties;
import com.ruoyi.file.service.AttachmentInfoService;
import com.ruoyi.file.service.AttachmentService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import static cn.hutool.core.io.FileTypeUtil.getType;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/7/24
 * @time: 13:54
 */
@Service
public class AttachmentServiceImpl implements AttachmentService {
    @Autowired
    private AttachmentInfoService attachmentInfoService;
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    /**
     * 错误信息格式
     */
    private static final String ERROR_FORMATTER = "{}:{}";
    @Resource
    private FilePathProperties filePathProperties;
    @Override
    public AttachmentInfo findByKey(String key) {
        if (StringUtils.isBlank(key)){
            throw new ServiceException("文件标识为空", HttpStatus.ERROR);
        }
        return attachmentInfoService.findByKey(key);
    }
    @Override
    public AttachmentInfo findById(Long id) {
        if (id == null){
            throw new ServiceException("文件主键为空");
        }
        return attachmentInfoService.findById(id);
    }
    @Override
    public List<AttachmentInfo> findByIds(List<Long> ids) {
        if (CollectionUtils.isEmpty(ids)){
            throw new ServiceException("文件主键为空");
        }
        return attachmentInfoService.findByIds(ids);
    }
    @Override
    public List<AttachmentInfo> findByBusinessId(Long businessId) {
        if (businessId == null){
            throw new ServiceException("业务主键为空");
        }
        return attachmentInfoService.findByBusinessId(businessId);
    }
    @Override
    public void delete(Long id) {
        if (id == null){
            throw new ServiceException("文件主键为空");
        }
        attachmentInfoService.delete(id);
    }
    @Override
    public Object saveFileToPath(MultipartFile file, String module, int type) {
        //获取对应模块路径
        String path;
        //获取对应模块根路径
        String dcPath;
        path = filePathProperties.getModule().get(module);
        dcPath = filePathProperties.getDcPath();
        String originalFilename = file.getOriginalFilename();
        if (StringUtils.isEmpty(originalFilename)) {
            logger.error(ERROR_FORMATTER,module, "文件不存在");
            throw new ServiceException("文件不存在");
        }
        if (StringUtils.isEmpty(path)) {
            logger.error(ERROR_FORMATTER, module, "文件路径不存在");
            throw new ServiceException("文件路径不存在");
        }
        assert originalFilename != null;
        LocalDateTime now = LocalDateTime.now();
        File newFile = null;
        try {
            //文件标识 UUID 如4d6873609b144945935ae84442711fd6
            String key = "";
            String suffix = "";
            if (originalFilename.contains(".mp3")) {
                key = originalFilename;
                suffix = "";
            } else {
                key = UUID.randomUUID().toString().replace("-", "");
                //文件后缀  包含.
                suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
            }
            path = path.replace("/", File.separator);
            //文件模块路径 如 2021/base/build/0421
            String modulePath = now.getYear() + path + now.format(DateTimeFormatter.ofPattern("MMdd"));
            //文件路径  如 2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
            String newFilePath = modulePath + File.separator + key + suffix;
            //文件绝对路径 如 /home/img/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
            String localPath = dcPath + newFilePath;
            //文件访问路径 如 /upload/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
            String url = filePathProperties.getUrlRootPath() + newFilePath.replace(File.separator, "/");
            newFile = new File(localPath);
            if (!newFile.exists() && !newFile.mkdirs()) {
                logger.error(ERROR_FORMATTER, newFilePath, "文件上传失败");
                throw new ServiceException("文件上传失败");
            }
            file.transferTo(newFile);
            //创建文件信息
            AttachmentInfo attachmentInfo = new AttachmentInfo();
            attachmentInfo.setDelFlag(0);
            attachmentInfo.setFileKey(key);
            attachmentInfo.setFileSuffix(suffix);
            attachmentInfo.setFilePath(localPath);
            attachmentInfo.setFileUrl(url);
            attachmentInfo.setFileName(file.getOriginalFilename());
            attachmentInfo.setFileSize(file.getSize());
            attachmentInfo.setModule(module);
            attachmentInfo.setFileType(getType(suffix));
            attachmentInfo.setCreateBy(SecurityUtils.getUsername());
            attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
            attachmentInfo.setUpdateTime(new Date());
            attachmentInfo.setCreateTime(new Date());
            AttachmentInfo attachment = attachmentInfoService.saveOne(attachmentInfo);
            switch (type) {
                case FileProjectConstants.ReturnType.URL:
                    return url;
                case FileProjectConstants.ReturnType.KEY:
                    return key;
                case FileProjectConstants.ReturnType.DETAIL:
                    return attachment;
                default:
                    return null;
            }
        } catch (IOException e) {
            if (newFile != null && newFile.exists()) {
                newFile.delete();
            }
            logger.error(ERROR_FORMATTER, "文件上传失败");
            throw new ServiceException("文件上传失败");
        }
    }
    @Override
    public Object saveBatchFileToPath(MultipartFile[] fileList, String module) {
        //获取对应模块路径
        String path;
        //获取对应模块根路径
        String dcPath;
        path = filePathProperties.getModule().get(module);
        dcPath = filePathProperties.getDcPath();
        List<AttachmentInfo> attachmentInfoList = new ArrayList<>();
        for (MultipartFile file : fileList) {
            String originalFilename = file.getOriginalFilename();
            if (StringUtils.isEmpty(originalFilename)) {
                logger.error(ERROR_FORMATTER,module, "文件不存在");
                throw new ServiceException("文件不存在");
            }
            if (StringUtils.isEmpty(path)) {
                logger.error(ERROR_FORMATTER, module, "文件路径不存在");
                throw new ServiceException("文件路径不存在");
            }
            assert originalFilename != null;
            LocalDateTime now = LocalDateTime.now();
            File newFile = null;
            try {
                //文件标识 UUID 如4d6873609b144945935ae84442711fd6
                String key = "";
                String suffix = "";
                if (originalFilename.contains(".mp3")) {
                    key = originalFilename;
                    suffix = "";
                } else {
                    key = UUID.randomUUID().toString().replace("-", "");
                    //文件后缀  包含.
                    suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
                }
                path = path.replace("/", File.separator);
                //文件模块路径 如 2021/base/build/0421
                String modulePath = now.getYear() + path + now.format(DateTimeFormatter.ofPattern("MMdd"));
                //文件路径  如 2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
                String newFilePath = modulePath + File.separator + key + suffix;
                //文件绝对路径 如 /home/img/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
                String localPath = dcPath + newFilePath;
                //文件访问路径 如 /upload/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
                String url = filePathProperties.getUrlRootPath() + newFilePath.replace(File.separator, "/");
                newFile = new File(localPath);
                if (!newFile.exists() && !newFile.mkdirs()) {
                    logger.error(ERROR_FORMATTER, newFilePath, "文件上传失败");
                    throw new ServiceException("文件上传失败");
                }
                //上传文件
                file.transferTo(newFile);
                //创建文件信息
                AttachmentInfo attachmentInfo = new AttachmentInfo();
                attachmentInfo.setDelFlag(0);
                attachmentInfo.setFileKey(key);
                attachmentInfo.setFileSuffix(suffix);
                attachmentInfo.setFilePath(localPath);
                attachmentInfo.setFileUrl(url);
                attachmentInfo.setFileName(file.getOriginalFilename());
                attachmentInfo.setFileSize(file.getSize());
                attachmentInfo.setModule(module);
                attachmentInfo.setFileType(getType(suffix));
              /*  attachmentInfo.setCreateBy(SecurityUtils.getUsername());
                attachmentInfo.setUpdateBy(SecurityUtils.getUsername());*/
                attachmentInfo.setUpdateTime(new Date());
                attachmentInfo.setCreateTime(new Date());
                attachmentInfoList.add(attachmentInfo);
            } catch (IOException e) {
                if (newFile != null && newFile.exists()) {
                    newFile.delete();
                }
                logger.error(ERROR_FORMATTER, "文件上传失败", e.getMessage());
                throw new ServiceException("文件上传失败");
            }
        }
        List<AttachmentInfo> detailList = attachmentInfoService.saveBatchAttachment(attachmentInfoList);
        return detailList;
    }
    @Override
    public void downloadForStream(HttpServletResponse response, String key) {
        AttachmentInfo byKey = findByKey(key);
        File file;
        try {
            response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(byKey.getFileName(), StandardCharsets.UTF_8.name()));
            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
            file = new File(byKey.getFilePath());
            if (!file.exists()) {
                logger.error(ERROR_FORMATTER, key, "文件不存在");
                throw new ServiceException("文件不存在");
            }
            OutputStream outputStream = response.getOutputStream();
            FileInputStream inputStream = new FileInputStream(file);
            IoUtil.copy(inputStream, outputStream);
            outputStream.close();
        } catch (IOException e) {
            logger.error(e.getMessage());
            throw new ServiceException("文件下载异常");
        }
    }
    @Override
    public void downloadById(HttpServletResponse response, HttpServletRequest request, Long id) {
        Assert.isTrue(id == null, "文件key未知异常");
        AttachmentInfo byId = findById(id);
        downloadByEntity(response, request, byId);
    }
    public void downloadByEntity(HttpServletResponse response, HttpServletRequest request, AttachmentInfo attachmentInfo) {
        if (ObjectUtils.isNotNull(attachmentInfo)) {
            String type = attachmentInfo.getFileType();
            if (StringUtils.isBlank(type)) {
                type = "application/octet-stream";
            }
            type = type + ";charset=utf-8";
            String fileName = attachmentInfo.getFileName();
            response.setContentType("multipart/form-data;charset=utf-8");
            ServletUtil.setHeader(response, "Access-Control-Expose-Headers", "Content-Disposition");
            //本地文件下载
            File file = FileUtil.file(attachmentInfo.getFilePath());
            if (!FileUtil.exist(file)) {
                throw new ServiceException(attachmentInfo.getFileKey() + "文件不存在");
            }
            InputStream is = null;
            try {
                is = IoUtil.toStream(file);
                ServletUtil.write(response, is, type, fileName);
            } catch (Exception e) {
                throw new ServiceException("文件下载异常");
            } finally {
                IoUtil.close(is);
            }
        } else {
            throw new ServiceException("文件不存在");
        }
    }
}
ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml
对比新文件
@@ -0,0 +1,27 @@
<?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" >
<mapper namespace="com.ruoyi.file.mapper.AttachmentInfoMapper" >
  <insert id="saveBatch" useGeneratedKeys="true" keyProperty="id" >
    insert into attachment (file_key,file_path,file_url,file_name,file_suffix,file_desc,file_size,file_type,module,del_flag
    ,create_by,create_time,update_by,update_time)values
    <foreach collection="attachmentList" item="attachment" separator=",">
      (#{attachment.fileKey},#{attachment.filePath},#{attachment.fileUrl},#{attachment.fileName},#{attachment.fileSuffix},#{attachment.fileDesc},
       #{attachment.fileSize},#{attachment.fileType},#{attachment.module},#{attachment.delFlag},#{attachment.createBy},
       #{attachment.createTime},#{attachment.updateBy},#{attachment.updateTime})
    </foreach>
  </insert>
  <update id="updateBusinessIdBatch">
      <foreach collection="attachmentList" item="attachment" separator=";">
          update attachment
          set
              business_id = #{attachment.businessId}
          where id = #{attachment.id}
      </foreach>
  </update>
    <update id="deleteByBusinessId">
        update attachment
        set
            del_flag = 1
        where business_id = #{businessId}
    </update>
</mapper>
ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java
@@ -29,7 +29,7 @@
 * 
 * @author ruoyi
 */
@Configuration
/*@Configuration*/
public class MyBatisConfig
{
    @Autowired
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
@@ -2,6 +2,7 @@
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.CacheControl;
@@ -23,6 +24,9 @@
@Configuration
public class ResourcesConfig implements WebMvcConfigurer
{
    @Value("${file.path.dcPath}")
    private String dcPath;
    @Autowired
    private RepeatSubmitInterceptor repeatSubmitInterceptor;
@@ -33,10 +37,14 @@
        registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**")
                .addResourceLocations("file:" + RuoYiConfig.getProfile() + "/");
        /** swagger配置 */
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());;
                .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());
        //文件访问路径
        registry.addResourceHandler("/uploadfile/**")
                .addResourceLocations("file:" + dcPath);
    }
    /**
ruoyi-ui/.editorconfig
文件已删除
ruoyi-ui/.env.development
文件已删除
ruoyi-ui/.env.production
文件已删除
ruoyi-ui/.env.staging
文件已删除
ruoyi-ui/.eslintignore
文件已删除
ruoyi-ui/.eslintrc.js
文件已删除
ruoyi-ui/.gitignore
文件已删除
ruoyi-ui/README.md
文件已删除
ruoyi-ui/babel.config.js
文件已删除
ruoyi-ui/bin/build.bat
文件已删除
ruoyi-ui/bin/package.bat
文件已删除
ruoyi-ui/bin/run-web.bat
文件已删除
ruoyi-ui/build/index.js
文件已删除
ruoyi-ui/package.json
文件已删除
ruoyi-ui/public/favicon.ico
Binary files differ
ruoyi-ui/public/html/ie.html
文件已删除
ruoyi-ui/public/index.html
文件已删除
ruoyi-ui/public/robots.txt
文件已删除
ruoyi-ui/src/App.vue
文件已删除
ruoyi-ui/src/api/login.js
文件已删除
ruoyi-ui/src/api/menu.js
文件已删除
ruoyi-ui/src/api/monitor/cache.js
文件已删除
ruoyi-ui/src/api/monitor/job.js
文件已删除
ruoyi-ui/src/api/monitor/jobLog.js
文件已删除
ruoyi-ui/src/api/monitor/logininfor.js
文件已删除
ruoyi-ui/src/api/monitor/online.js
文件已删除
ruoyi-ui/src/api/monitor/operlog.js
文件已删除
ruoyi-ui/src/api/monitor/server.js
文件已删除
ruoyi-ui/src/api/system/config.js
文件已删除
ruoyi-ui/src/api/system/dept.js
文件已删除
ruoyi-ui/src/api/system/dict/data.js
文件已删除
ruoyi-ui/src/api/system/dict/type.js
文件已删除
ruoyi-ui/src/api/system/menu.js
文件已删除
ruoyi-ui/src/api/system/notice.js
文件已删除
ruoyi-ui/src/api/system/post.js
文件已删除
ruoyi-ui/src/api/system/role.js
文件已删除
ruoyi-ui/src/api/system/user.js
文件已删除
ruoyi-ui/src/api/tool/gen.js
文件已删除
ruoyi-ui/src/assets/401_images/401.gif
Binary files differ
ruoyi-ui/src/assets/404_images/404.png
Binary files differ
ruoyi-ui/src/assets/404_images/404_cloud.png
Binary files differ
ruoyi-ui/src/assets/icons/index.js
文件已删除
ruoyi-ui/src/assets/icons/svg/404.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/bug.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/build.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/button.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/cascader.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/chart.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/checkbox.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/clipboard.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/code.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/color.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/component.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/dashboard.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/date-range.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/date.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/dict.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/documentation.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/download.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/drag.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/druid.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/edit.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/education.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/email.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/example.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/excel.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/eye-open.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/eye.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/form.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/fullscreen.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/github.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/guide.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/icon.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/input.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/international.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/job.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/language.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/link.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/list.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/lock.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/log.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/logininfor.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/message.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/money.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/monitor.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/nested.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/number.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/online.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/password.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/pdf.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/people.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/peoples.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/phone.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/post.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/qq.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/question.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/radio.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/rate.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/redis-list.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/redis.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/row.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/search.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/select.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/server.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/shopping.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/size.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/skill.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/slider.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/star.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/swagger.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/switch.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/system.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/tab.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/table.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/textarea.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/theme.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/time-range.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/time.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/tool.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/tree-table.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/tree.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/upload.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/user.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/validCode.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/wechat.svg
文件已删除
ruoyi-ui/src/assets/icons/svg/zip.svg
文件已删除
ruoyi-ui/src/assets/icons/svgo.yml
文件已删除
ruoyi-ui/src/assets/images/dark.svg
文件已删除
ruoyi-ui/src/assets/images/light.svg
文件已删除
ruoyi-ui/src/assets/images/login-background.jpg
Binary files differ
ruoyi-ui/src/assets/images/pay.png
Binary files differ
ruoyi-ui/src/assets/images/profile.jpg
Binary files differ
ruoyi-ui/src/assets/logo/logo.png
Binary files differ
ruoyi-ui/src/assets/styles/btn.scss
文件已删除
ruoyi-ui/src/assets/styles/element-ui.scss
文件已删除
ruoyi-ui/src/assets/styles/element-variables.scss
文件已删除
ruoyi-ui/src/assets/styles/index.scss
文件已删除
ruoyi-ui/src/assets/styles/mixin.scss
文件已删除
ruoyi-ui/src/assets/styles/ruoyi.scss
文件已删除
ruoyi-ui/src/assets/styles/sidebar.scss
文件已删除
ruoyi-ui/src/assets/styles/transition.scss
文件已删除
ruoyi-ui/src/assets/styles/variables.scss
文件已删除
ruoyi-ui/src/components/Breadcrumb/index.vue
文件已删除
ruoyi-ui/src/components/Crontab/day.vue
文件已删除
ruoyi-ui/src/components/Crontab/hour.vue
文件已删除
ruoyi-ui/src/components/Crontab/index.vue
文件已删除
ruoyi-ui/src/components/Crontab/min.vue
文件已删除
ruoyi-ui/src/components/Crontab/month.vue
文件已删除
ruoyi-ui/src/components/Crontab/result.vue
文件已删除
ruoyi-ui/src/components/Crontab/second.vue
文件已删除
ruoyi-ui/src/components/Crontab/week.vue
文件已删除
ruoyi-ui/src/components/Crontab/year.vue
文件已删除
ruoyi-ui/src/components/DictData/index.js
文件已删除
ruoyi-ui/src/components/DictTag/index.vue
文件已删除
ruoyi-ui/src/components/Editor/index.vue
文件已删除
ruoyi-ui/src/components/FileUpload/index.vue
文件已删除
ruoyi-ui/src/components/Hamburger/index.vue
文件已删除
ruoyi-ui/src/components/HeaderSearch/index.vue
文件已删除
ruoyi-ui/src/components/IconSelect/index.vue
文件已删除
ruoyi-ui/src/components/IconSelect/requireIcons.js
文件已删除
ruoyi-ui/src/components/ImagePreview/index.vue
文件已删除
ruoyi-ui/src/components/ImageUpload/index.vue
文件已删除
ruoyi-ui/src/components/Pagination/index.vue
文件已删除
ruoyi-ui/src/components/PanThumb/index.vue
文件已删除
ruoyi-ui/src/components/ParentView/index.vue
文件已删除
ruoyi-ui/src/components/RightPanel/index.vue
文件已删除
ruoyi-ui/src/components/RightToolbar/index.vue
文件已删除
ruoyi-ui/src/components/RuoYi/Doc/index.vue
文件已删除
ruoyi-ui/src/components/RuoYi/Git/index.vue
文件已删除
ruoyi-ui/src/components/Screenfull/index.vue
文件已删除
ruoyi-ui/src/components/SizeSelect/index.vue
文件已删除
ruoyi-ui/src/components/SvgIcon/index.vue
文件已删除
ruoyi-ui/src/components/ThemePicker/index.vue
文件已删除
ruoyi-ui/src/components/TopNav/index.vue
文件已删除
ruoyi-ui/src/components/iFrame/index.vue
文件已删除
ruoyi-ui/src/directive/dialog/drag.js
文件已删除
ruoyi-ui/src/directive/dialog/dragHeight.js
文件已删除
ruoyi-ui/src/directive/dialog/dragWidth.js
文件已删除
ruoyi-ui/src/directive/index.js
文件已删除
ruoyi-ui/src/directive/module/clipboard.js
文件已删除
ruoyi-ui/src/directive/permission/hasPermi.js
文件已删除
ruoyi-ui/src/directive/permission/hasRole.js
文件已删除
ruoyi-ui/src/layout/components/AppMain.vue
文件已删除
ruoyi-ui/src/layout/components/IframeToggle/index.vue
文件已删除
ruoyi-ui/src/layout/components/InnerLink/index.vue
文件已删除
ruoyi-ui/src/layout/components/Navbar.vue
文件已删除
ruoyi-ui/src/layout/components/Settings/index.vue
文件已删除
ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
文件已删除
ruoyi-ui/src/layout/components/Sidebar/Item.vue
文件已删除
ruoyi-ui/src/layout/components/Sidebar/Link.vue
文件已删除
ruoyi-ui/src/layout/components/Sidebar/Logo.vue
文件已删除
ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
文件已删除
ruoyi-ui/src/layout/components/Sidebar/index.vue
文件已删除
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
文件已删除
ruoyi-ui/src/layout/components/TagsView/index.vue
文件已删除
ruoyi-ui/src/layout/components/index.js
文件已删除
ruoyi-ui/src/layout/index.vue
文件已删除
ruoyi-ui/src/layout/mixin/ResizeHandler.js
文件已删除
ruoyi-ui/src/main.js
文件已删除
ruoyi-ui/src/permission.js
文件已删除
ruoyi-ui/src/plugins/auth.js
文件已删除
ruoyi-ui/src/plugins/cache.js
文件已删除
ruoyi-ui/src/plugins/download.js
文件已删除
ruoyi-ui/src/plugins/index.js
文件已删除
ruoyi-ui/src/plugins/modal.js
文件已删除
ruoyi-ui/src/plugins/tab.js
文件已删除
ruoyi-ui/src/router/index.js
文件已删除
ruoyi-ui/src/settings.js
文件已删除
ruoyi-ui/src/store/getters.js
文件已删除
ruoyi-ui/src/store/index.js
文件已删除
ruoyi-ui/src/store/modules/app.js
文件已删除
ruoyi-ui/src/store/modules/dict.js
文件已删除
ruoyi-ui/src/store/modules/permission.js
文件已删除
ruoyi-ui/src/store/modules/settings.js
文件已删除
ruoyi-ui/src/store/modules/tagsView.js
文件已删除
ruoyi-ui/src/store/modules/user.js
文件已删除
ruoyi-ui/src/utils/auth.js
文件已删除
ruoyi-ui/src/utils/dict/Dict.js
文件已删除
ruoyi-ui/src/utils/dict/DictConverter.js
文件已删除
ruoyi-ui/src/utils/dict/DictData.js
文件已删除
ruoyi-ui/src/utils/dict/DictMeta.js
文件已删除
ruoyi-ui/src/utils/dict/DictOptions.js
文件已删除
ruoyi-ui/src/utils/dict/index.js
文件已删除
ruoyi-ui/src/utils/errorCode.js
文件已删除
ruoyi-ui/src/utils/generator/config.js
文件已删除
ruoyi-ui/src/utils/generator/css.js
文件已删除
ruoyi-ui/src/utils/generator/drawingDefault.js
文件已删除
ruoyi-ui/src/utils/generator/html.js
文件已删除
ruoyi-ui/src/utils/generator/icon.json
文件已删除
ruoyi-ui/src/utils/generator/js.js
文件已删除
ruoyi-ui/src/utils/generator/render.js
文件已删除
ruoyi-ui/src/utils/index.js
文件已删除
ruoyi-ui/src/utils/jsencrypt.js
文件已删除
ruoyi-ui/src/utils/permission.js
文件已删除
ruoyi-ui/src/utils/request.js
文件已删除
ruoyi-ui/src/utils/ruoyi.js
文件已删除
ruoyi-ui/src/utils/scroll-to.js
文件已删除
ruoyi-ui/src/utils/validate.js
文件已删除
ruoyi-ui/src/views/components/icons/element-icons.js
文件已删除
ruoyi-ui/src/views/components/icons/index.vue
文件已删除
ruoyi-ui/src/views/components/icons/svg-icons.js
文件已删除
ruoyi-ui/src/views/dashboard/BarChart.vue
文件已删除
ruoyi-ui/src/views/dashboard/LineChart.vue
文件已删除
ruoyi-ui/src/views/dashboard/PanelGroup.vue
文件已删除
ruoyi-ui/src/views/dashboard/PieChart.vue
文件已删除
ruoyi-ui/src/views/dashboard/RaddarChart.vue
文件已删除
ruoyi-ui/src/views/dashboard/mixins/resize.js
文件已删除
ruoyi-ui/src/views/error/401.vue
文件已删除
ruoyi-ui/src/views/error/404.vue
文件已删除
ruoyi-ui/src/views/index.vue
文件已删除
ruoyi-ui/src/views/index_v1.vue
文件已删除
ruoyi-ui/src/views/login.vue
文件已删除
ruoyi-ui/src/views/monitor/cache/index.vue
文件已删除
ruoyi-ui/src/views/monitor/cache/list.vue
文件已删除
ruoyi-ui/src/views/monitor/druid/index.vue
文件已删除
ruoyi-ui/src/views/monitor/job/index.vue
文件已删除
ruoyi-ui/src/views/monitor/job/log.vue
文件已删除
ruoyi-ui/src/views/monitor/logininfor/index.vue
文件已删除
ruoyi-ui/src/views/monitor/online/index.vue
文件已删除
ruoyi-ui/src/views/monitor/operlog/index.vue
文件已删除
ruoyi-ui/src/views/monitor/server/index.vue
文件已删除
ruoyi-ui/src/views/redirect.vue
文件已删除
ruoyi-ui/src/views/register.vue
文件已删除
ruoyi-ui/src/views/system/config/index.vue
文件已删除
ruoyi-ui/src/views/system/dept/index.vue
文件已删除
ruoyi-ui/src/views/system/dict/data.vue
文件已删除
ruoyi-ui/src/views/system/dict/index.vue
文件已删除
ruoyi-ui/src/views/system/menu/index.vue
文件已删除
ruoyi-ui/src/views/system/notice/index.vue
文件已删除
ruoyi-ui/src/views/system/post/index.vue
文件已删除
ruoyi-ui/src/views/system/role/authUser.vue
文件已删除
ruoyi-ui/src/views/system/role/index.vue
文件已删除
ruoyi-ui/src/views/system/role/selectUser.vue
文件已删除
ruoyi-ui/src/views/system/user/authRole.vue
文件已删除
ruoyi-ui/src/views/system/user/index.vue
文件已删除
ruoyi-ui/src/views/system/user/profile/index.vue
文件已删除
ruoyi-ui/src/views/system/user/profile/resetPwd.vue
文件已删除
ruoyi-ui/src/views/system/user/profile/userAvatar.vue
文件已删除
ruoyi-ui/src/views/system/user/profile/userInfo.vue
文件已删除
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
文件已删除
ruoyi-ui/src/views/tool/build/DraggableItem.vue
文件已删除
ruoyi-ui/src/views/tool/build/IconsDialog.vue
文件已删除
ruoyi-ui/src/views/tool/build/RightPanel.vue
文件已删除
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
文件已删除
ruoyi-ui/src/views/tool/build/index.vue
文件已删除
ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
文件已删除
ruoyi-ui/src/views/tool/gen/editTable.vue
文件已删除
ruoyi-ui/src/views/tool/gen/genInfoForm.vue
文件已删除
ruoyi-ui/src/views/tool/gen/importTable.vue
文件已删除
ruoyi-ui/src/views/tool/gen/index.vue
文件已删除
ruoyi-ui/src/views/tool/swagger/index.vue
文件已删除
ruoyi-ui/vue.config.js
文件已删除