├── .gitignore
├── README.md
├── pom.xml
├── screenshot
├── 1.png
├── 2.png
├── 3.png
├── 4.png
├── 5.png
├── 6.png
├── 7.png
├── 8.png
└── 9.png
└── src
├── main
├── java
│ └── com
│ │ ├── SpringbootSchemaApplication.java
│ │ ├── annotation
│ │ ├── APPLoginUser.java
│ │ ├── IgnoreAuth.java
│ │ └── LoginUser.java
│ │ ├── config
│ │ ├── InterceptorConfig.java
│ │ └── MybatisPlusConfig.java
│ │ ├── controller
│ │ ├── ChatController.java
│ │ ├── CommonController.java
│ │ ├── ConfigController.java
│ │ ├── FileController.java
│ │ ├── GonggaoxinxiController.java
│ │ ├── MessagesController.java
│ │ ├── UserController.java
│ │ ├── XueshengController.java
│ │ ├── ZixishiController.java
│ │ └── ZuoweiyudingController.java
│ │ ├── dao
│ │ ├── ChatDao.java
│ │ ├── CommonDao.java
│ │ ├── ConfigDao.java
│ │ ├── GonggaoxinxiDao.java
│ │ ├── MessagesDao.java
│ │ ├── TokenDao.java
│ │ ├── UserDao.java
│ │ ├── XueshengDao.java
│ │ ├── ZixishiDao.java
│ │ └── ZuoweiyudingDao.java
│ │ ├── entity
│ │ ├── ChatEntity.java
│ │ ├── ConfigEntity.java
│ │ ├── EIException.java
│ │ ├── GonggaoxinxiEntity.java
│ │ ├── MessagesEntity.java
│ │ ├── TokenEntity.java
│ │ ├── UserEntity.java
│ │ ├── XueshengEntity.java
│ │ ├── ZixishiEntity.java
│ │ ├── ZuoweiyudingEntity.java
│ │ ├── model
│ │ │ ├── ChatModel.java
│ │ │ ├── GonggaoxinxiModel.java
│ │ │ ├── MessagesModel.java
│ │ │ ├── XueshengModel.java
│ │ │ ├── ZixishiModel.java
│ │ │ └── ZuoweiyudingModel.java
│ │ ├── view
│ │ │ ├── ChatView.java
│ │ │ ├── GonggaoxinxiView.java
│ │ │ ├── MessagesView.java
│ │ │ ├── XueshengView.java
│ │ │ ├── ZixishiView.java
│ │ │ └── ZuoweiyudingView.java
│ │ └── vo
│ │ │ ├── ChatVO.java
│ │ │ ├── GonggaoxinxiVO.java
│ │ │ ├── MessagesVO.java
│ │ │ ├── XueshengVO.java
│ │ │ ├── ZixishiVO.java
│ │ │ └── ZuoweiyudingVO.java
│ │ ├── interceptor
│ │ └── AuthorizationInterceptor.java
│ │ ├── service
│ │ ├── ChatService.java
│ │ ├── CommonService.java
│ │ ├── ConfigService.java
│ │ ├── GonggaoxinxiService.java
│ │ ├── MessagesService.java
│ │ ├── TokenService.java
│ │ ├── UserService.java
│ │ ├── XueshengService.java
│ │ ├── ZixishiService.java
│ │ ├── ZuoweiyudingService.java
│ │ └── impl
│ │ │ ├── ChatServiceImpl.java
│ │ │ ├── CommonServiceImpl.java
│ │ │ ├── ConfigServiceImpl.java
│ │ │ ├── GonggaoxinxiServiceImpl.java
│ │ │ ├── MessagesServiceImpl.java
│ │ │ ├── TokenServiceImpl.java
│ │ │ ├── UserServiceImpl.java
│ │ │ ├── XueshengServiceImpl.java
│ │ │ ├── ZixishiServiceImpl.java
│ │ │ └── ZuoweiyudingServiceImpl.java
│ │ └── utils
│ │ ├── BaiduUtil.java
│ │ ├── CommonUtil.java
│ │ ├── FileUtil.java
│ │ ├── HttpClientUtils.java
│ │ ├── JQPageInfo.java
│ │ ├── MD5Util.java
│ │ ├── MPUtil.java
│ │ ├── PageUtils.java
│ │ ├── Query.java
│ │ ├── R.java
│ │ ├── SQLFilter.java
│ │ ├── SpringContextUtils.java
│ │ └── ValidatorUtils.java
└── resources
│ ├── admin
│ └── admin
│ │ ├── .gitignore
│ │ ├── 1-install.bat
│ │ ├── 2-run.bat
│ │ ├── 3-build.bat
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ │ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ ├── css
│ │ │ │ ├── element-variables.scss
│ │ │ │ └── style.scss
│ │ │ └── img
│ │ │ │ ├── 404.png
│ │ │ │ ├── avator.png
│ │ │ │ ├── bg.jpg
│ │ │ │ ├── captcha.jpg
│ │ │ │ ├── login.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── password.png
│ │ │ │ ├── role.png
│ │ │ │ ├── test
│ │ │ │ ├── jianshe.png
│ │ │ │ ├── jiaotong.png
│ │ │ │ ├── nongye.png
│ │ │ │ ├── weixin.png
│ │ │ │ ├── zhifubao.png
│ │ │ │ └── zhongguo.png
│ │ │ │ └── username.png
│ │ ├── components
│ │ │ ├── SvgIcon
│ │ │ │ └── index.vue
│ │ │ ├── common
│ │ │ │ ├── BreadCrumbs.vue
│ │ │ │ ├── BreadCrumbs.vue.bak
│ │ │ │ ├── Editor.vue
│ │ │ │ └── FileUpload.vue
│ │ │ ├── home
│ │ │ │ ├── HomeCard.vue
│ │ │ │ ├── HomeChart.vue
│ │ │ │ ├── HomeComment.vue
│ │ │ │ └── HomeProgress.vue
│ │ │ └── index
│ │ │ │ ├── IndexAside.vue
│ │ │ │ ├── IndexAsideStatic.vue
│ │ │ │ ├── IndexAsideStatic.vue.bak
│ │ │ │ ├── IndexAsideSub.vue
│ │ │ │ ├── IndexHeader.vue
│ │ │ │ ├── IndexHeader.vue.bak
│ │ │ │ └── IndexMain.vue
│ │ ├── icons
│ │ │ ├── index.js
│ │ │ ├── svg
│ │ │ │ ├── 404.svg
│ │ │ │ ├── articleEdit.svg
│ │ │ │ ├── banner.svg
│ │ │ │ ├── bug.svg
│ │ │ │ ├── build.svg
│ │ │ │ ├── cfg.svg
│ │ │ │ ├── channel.svg
│ │ │ │ ├── chart.svg
│ │ │ │ ├── clipboard.svg
│ │ │ │ ├── code.svg
│ │ │ │ ├── component.svg
│ │ │ │ ├── contacts.svg
│ │ │ │ ├── dashboard.svg
│ │ │ │ ├── date.svg
│ │ │ │ ├── dept.svg
│ │ │ │ ├── dict.svg
│ │ │ │ ├── documentation.svg
│ │ │ │ ├── download.svg
│ │ │ │ ├── drag.svg
│ │ │ │ ├── druid.svg
│ │ │ │ ├── edit.svg
│ │ │ │ ├── education.svg
│ │ │ │ ├── email.svg
│ │ │ │ ├── excel.svg
│ │ │ │ ├── exit-fullscreen.svg
│ │ │ │ ├── eye-open.svg
│ │ │ │ ├── file.svg
│ │ │ │ ├── form.svg
│ │ │ │ ├── fullscreen.svg
│ │ │ │ ├── icon.svg
│ │ │ │ ├── international.svg
│ │ │ │ ├── job.svg
│ │ │ │ ├── language.svg
│ │ │ │ ├── link.svg
│ │ │ │ ├── list.svg
│ │ │ │ ├── lock.svg
│ │ │ │ ├── log.svg
│ │ │ │ ├── logininfor.svg
│ │ │ │ ├── menu.svg
│ │ │ │ ├── message.svg
│ │ │ │ ├── money.svg
│ │ │ │ ├── monitor.svg
│ │ │ │ ├── nested.svg
│ │ │ │ ├── nested0.svg
│ │ │ │ ├── online.svg
│ │ │ │ ├── operation.svg
│ │ │ │ ├── password.svg
│ │ │ │ ├── password0.svg
│ │ │ │ ├── pdf.svg
│ │ │ │ ├── people.svg
│ │ │ │ ├── peoples.svg
│ │ │ │ ├── phone.svg
│ │ │ │ ├── post.svg
│ │ │ │ ├── qq.svg
│ │ │ │ ├── search.svg
│ │ │ │ ├── sender.svg
│ │ │ │ ├── server.svg
│ │ │ │ ├── shopping.svg
│ │ │ │ ├── shoppingCard.svg
│ │ │ │ ├── size.svg
│ │ │ │ ├── skill.svg
│ │ │ │ ├── star.svg
│ │ │ │ ├── svg
│ │ │ │ │ ├── AI.svg
│ │ │ │ │ ├── AIDeviceLayout.svg
│ │ │ │ │ ├── EIM.svg
│ │ │ │ │ ├── VIP.svg
│ │ │ │ │ ├── agricultureRegister.svg
│ │ │ │ │ ├── area.svg
│ │ │ │ │ ├── base.svg
│ │ │ │ │ ├── batch.svg
│ │ │ │ │ ├── board.svg
│ │ │ │ │ ├── board1.svg
│ │ │ │ │ ├── boardConfig.svg
│ │ │ │ │ ├── cfg.svg
│ │ │ │ │ ├── code.svg
│ │ │ │ │ ├── company.svg
│ │ │ │ │ ├── crop.svg
│ │ │ │ │ ├── crops.svg
│ │ │ │ │ ├── dashboard.svg
│ │ │ │ │ ├── dataAbnormal.svg
│ │ │ │ │ ├── dataLack.svg
│ │ │ │ │ ├── dept.svg
│ │ │ │ │ ├── device.svg
│ │ │ │ │ ├── deviceMonitorData.svg
│ │ │ │ │ ├── dict.svg
│ │ │ │ │ ├── diseasesinsect.svg
│ │ │ │ │ ├── diseasesinsects.svg
│ │ │ │ │ ├── documentation.svg
│ │ │ │ │ ├── email.svg
│ │ │ │ │ ├── environmental.svg
│ │ │ │ │ ├── eye-open.svg
│ │ │ │ │ ├── farmingProject.svg
│ │ │ │ │ ├── finance.svg
│ │ │ │ │ ├── financeBudget.svg
│ │ │ │ │ ├── financeReality.svg
│ │ │ │ │ ├── firm.svg
│ │ │ │ │ ├── firms.svg
│ │ │ │ │ ├── harvestBatch.svg
│ │ │ │ │ ├── harvestDetection.svg
│ │ │ │ │ ├── harvestManage.svg
│ │ │ │ │ ├── harvestWorks.svg
│ │ │ │ │ ├── heavyMetalDetection.svg
│ │ │ │ │ ├── home.svg
│ │ │ │ │ ├── inspection.svg
│ │ │ │ │ ├── internet.svg
│ │ │ │ │ ├── internetActive.svg
│ │ │ │ │ ├── log.svg
│ │ │ │ │ ├── mainSystem.svg
│ │ │ │ │ ├── mainSystemActive.svg
│ │ │ │ │ ├── menu.svg
│ │ │ │ │ ├── monitorEquipment.svg
│ │ │ │ │ ├── news.svg
│ │ │ │ │ ├── order.svg
│ │ │ │ │ ├── password.svg
│ │ │ │ │ ├── peoples.svg
│ │ │ │ │ ├── pest.svg
│ │ │ │ │ ├── pestActive.svg
│ │ │ │ │ ├── pesticideResidue.svg
│ │ │ │ │ ├── pests.svg
│ │ │ │ │ ├── phone.svg
│ │ │ │ │ ├── plant.svg
│ │ │ │ │ ├── plants.svg
│ │ │ │ │ ├── plantsActive.svg
│ │ │ │ │ ├── residual.svg
│ │ │ │ │ ├── retroactiveCoding.svg
│ │ │ │ │ ├── scheme.svg
│ │ │ │ │ ├── source.svg
│ │ │ │ │ ├── sourceActive.svg
│ │ │ │ │ ├── system.svg
│ │ │ │ │ ├── task.svg
│ │ │ │ │ ├── tempFarm.svg
│ │ │ │ │ ├── traceability.svg
│ │ │ │ │ ├── traceabilityList.svg
│ │ │ │ │ ├── traceabilityStyle.svg
│ │ │ │ │ ├── user.svg
│ │ │ │ │ ├── user0.svg
│ │ │ │ │ ├── validCode.svg
│ │ │ │ │ ├── video.svg
│ │ │ │ │ ├── videoEquipment.svg
│ │ │ │ │ ├── videoKey.svg
│ │ │ │ │ ├── vipCustomized.svg
│ │ │ │ │ ├── warnings.svg
│ │ │ │ │ ├── workOrder.svg
│ │ │ │ │ ├── ┐┤░х╣▄└э.svg
│ │ │ │ │ └── ╓╪╜Ё╩Ї╝ь▓т╣▄└э.svg
│ │ │ │ ├── swagger.svg
│ │ │ │ ├── system.svg
│ │ │ │ ├── tab.svg
│ │ │ │ ├── table.svg
│ │ │ │ ├── table0.svg
│ │ │ │ ├── task.svg
│ │ │ │ ├── template.svg
│ │ │ │ ├── theme.svg
│ │ │ │ ├── tool.svg
│ │ │ │ ├── tree-table.svg
│ │ │ │ ├── tree.svg
│ │ │ │ ├── user.svg
│ │ │ │ ├── user0.svg
│ │ │ │ ├── validCode.svg
│ │ │ │ ├── wechat.svg
│ │ │ │ └── zip.svg
│ │ │ └── svgo.yml
│ │ ├── main.js
│ │ ├── router
│ │ │ └── router-static.js
│ │ ├── store
│ │ │ └── store.js
│ │ ├── utils
│ │ │ ├── api.js
│ │ │ ├── base.js
│ │ │ ├── http.js
│ │ │ ├── i18n.js
│ │ │ ├── menu.js
│ │ │ ├── storage.js
│ │ │ ├── utils.js
│ │ │ └── validate.js
│ │ ├── views
│ │ │ ├── 404.vue
│ │ │ ├── center.vue
│ │ │ ├── home.vue
│ │ │ ├── index.vue
│ │ │ ├── login.vue
│ │ │ ├── modules
│ │ │ │ ├── chat
│ │ │ │ │ ├── chat-add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── config
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── gonggaoxinxi
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── messages
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── users
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── xuesheng
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ ├── zixishi
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ │ └── zuoweiyuding
│ │ │ │ │ ├── add-or-update.vue
│ │ │ │ │ └── list.vue
│ │ │ ├── pay.vue
│ │ │ ├── register.vue
│ │ │ ├── update-password.vue
│ │ │ └── update-password.vue.bak
│ │ └── vm
│ │ │ ├── add-or-update.vue.vm
│ │ │ ├── base.js.vm
│ │ │ ├── http.js.vm
│ │ │ ├── list.vue.vm
│ │ │ ├── login.vue.vm
│ │ │ ├── menu.js.vm
│ │ │ ├── router-static.js.vm
│ │ │ └── vue.config.js.vm
│ │ └── vue.config.js
│ ├── application.yml
│ ├── front
│ └── front
│ │ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── common.css
│ │ ├── style.css
│ │ └── theme.css
│ │ ├── elementui
│ │ ├── elementui.css
│ │ ├── elementui.js
│ │ └── fonts
│ │ │ ├── element-icons.ttf
│ │ │ └── element-icons.woff
│ │ ├── img
│ │ ├── avator.png
│ │ ├── banner.jpg
│ │ ├── jianshe.png
│ │ ├── jiaotong.png
│ │ ├── line.jpg
│ │ ├── nongye.png
│ │ ├── now.png
│ │ ├── seckilling.jpg
│ │ ├── select.png
│ │ ├── unselect.png
│ │ ├── weixin.png
│ │ ├── yuan.png
│ │ ├── zhifubao.png
│ │ └── zhongguo.png
│ │ ├── index.html
│ │ ├── index.html.bak
│ │ ├── js
│ │ ├── bootstrap.AMapPositionPicker.js
│ │ ├── bootstrap.min.js
│ │ ├── config.js
│ │ ├── jquery.js
│ │ ├── utils.js
│ │ ├── validate.js
│ │ └── vue.js
│ │ ├── layui
│ │ ├── css
│ │ │ ├── layui.css
│ │ │ ├── layui.mobile.css
│ │ │ └── modules
│ │ │ │ ├── code.css
│ │ │ │ ├── laydate
│ │ │ │ └── default
│ │ │ │ │ └── laydate.css
│ │ │ │ └── layer
│ │ │ │ └── default
│ │ │ │ ├── icon-ext.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── layer.css
│ │ │ │ ├── loading-0.gif
│ │ │ │ ├── loading-1.gif
│ │ │ │ └── loading-2.gif
│ │ ├── font
│ │ │ ├── iconfont.eot
│ │ │ ├── iconfont.svg
│ │ │ ├── iconfont.ttf
│ │ │ ├── iconfont.woff
│ │ │ └── iconfont.woff2
│ │ ├── images
│ │ │ └── face
│ │ │ │ ├── 0.gif
│ │ │ │ ├── 1.gif
│ │ │ │ ├── 10.gif
│ │ │ │ ├── 11.gif
│ │ │ │ ├── 12.gif
│ │ │ │ ├── 13.gif
│ │ │ │ ├── 14.gif
│ │ │ │ ├── 15.gif
│ │ │ │ ├── 16.gif
│ │ │ │ ├── 17.gif
│ │ │ │ ├── 18.gif
│ │ │ │ ├── 19.gif
│ │ │ │ ├── 2.gif
│ │ │ │ ├── 20.gif
│ │ │ │ ├── 21.gif
│ │ │ │ ├── 22.gif
│ │ │ │ ├── 23.gif
│ │ │ │ ├── 24.gif
│ │ │ │ ├── 25.gif
│ │ │ │ ├── 26.gif
│ │ │ │ ├── 27.gif
│ │ │ │ ├── 28.gif
│ │ │ │ ├── 29.gif
│ │ │ │ ├── 3.gif
│ │ │ │ ├── 30.gif
│ │ │ │ ├── 31.gif
│ │ │ │ ├── 32.gif
│ │ │ │ ├── 33.gif
│ │ │ │ ├── 34.gif
│ │ │ │ ├── 35.gif
│ │ │ │ ├── 36.gif
│ │ │ │ ├── 37.gif
│ │ │ │ ├── 38.gif
│ │ │ │ ├── 39.gif
│ │ │ │ ├── 4.gif
│ │ │ │ ├── 40.gif
│ │ │ │ ├── 41.gif
│ │ │ │ ├── 42.gif
│ │ │ │ ├── 43.gif
│ │ │ │ ├── 44.gif
│ │ │ │ ├── 45.gif
│ │ │ │ ├── 46.gif
│ │ │ │ ├── 47.gif
│ │ │ │ ├── 48.gif
│ │ │ │ ├── 49.gif
│ │ │ │ ├── 5.gif
│ │ │ │ ├── 50.gif
│ │ │ │ ├── 51.gif
│ │ │ │ ├── 52.gif
│ │ │ │ ├── 53.gif
│ │ │ │ ├── 54.gif
│ │ │ │ ├── 55.gif
│ │ │ │ ├── 56.gif
│ │ │ │ ├── 57.gif
│ │ │ │ ├── 58.gif
│ │ │ │ ├── 59.gif
│ │ │ │ ├── 6.gif
│ │ │ │ ├── 60.gif
│ │ │ │ ├── 61.gif
│ │ │ │ ├── 62.gif
│ │ │ │ ├── 63.gif
│ │ │ │ ├── 64.gif
│ │ │ │ ├── 65.gif
│ │ │ │ ├── 66.gif
│ │ │ │ ├── 67.gif
│ │ │ │ ├── 68.gif
│ │ │ │ ├── 69.gif
│ │ │ │ ├── 7.gif
│ │ │ │ ├── 70.gif
│ │ │ │ ├── 71.gif
│ │ │ │ ├── 8.gif
│ │ │ │ └── 9.gif
│ │ ├── lay
│ │ │ └── modules
│ │ │ │ ├── carousel.js
│ │ │ │ ├── code.js
│ │ │ │ ├── colorpicker.js
│ │ │ │ ├── element.js
│ │ │ │ ├── flow.js
│ │ │ │ ├── form.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── laydate.js
│ │ │ │ ├── layedit.js
│ │ │ │ ├── layer.js
│ │ │ │ ├── laypage.js
│ │ │ │ ├── laytpl.js
│ │ │ │ ├── mobile.js
│ │ │ │ ├── rate.js
│ │ │ │ ├── slider.js
│ │ │ │ ├── table.js
│ │ │ │ ├── transfer.js
│ │ │ │ ├── tree.js
│ │ │ │ ├── upload.js
│ │ │ │ └── util.js
│ │ ├── layui.all.js
│ │ └── layui.js
│ │ ├── modules
│ │ ├── config.js
│ │ ├── http
│ │ │ └── http.js
│ │ ├── layarea
│ │ │ └── layarea.js
│ │ └── tinymce
│ │ │ ├── index.html
│ │ │ ├── tinymce.js
│ │ │ └── tinymce
│ │ │ ├── jquery.tinymce.min.js
│ │ │ ├── langs
│ │ │ ├── readme.md
│ │ │ └── zh_CN.js
│ │ │ ├── license.txt
│ │ │ ├── plugins
│ │ │ ├── advlist
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── anchor
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── autolink
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── autoresize
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── autosave
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── bbcode
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── charmap
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── code
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── codesample
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── colorpicker
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── contextmenu
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── directionality
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── emoticons
│ │ │ │ ├── js
│ │ │ │ │ ├── emojis.js
│ │ │ │ │ └── emojis.min.js
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── fullpage
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── fullscreen
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── help
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── hr
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── image
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── imagetools
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── importcss
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── indent2em
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── insertdatetime
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── legacyoutput
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── link
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── lists
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── media
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── nonbreaking
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── noneditable
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── pagebreak
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── paste
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── preview
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── print
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── quickbars
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── save
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── searchreplace
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── spellchecker
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── tabfocus
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── table
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── template
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── textcolor
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── textpattern
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── toc
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── visualblocks
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── visualchars
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ └── wordcount
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── readme.md
│ │ │ ├── skins
│ │ │ ├── content
│ │ │ │ ├── dark
│ │ │ │ │ ├── content.css
│ │ │ │ │ ├── content.min.css
│ │ │ │ │ └── content.min.css.map
│ │ │ │ ├── default
│ │ │ │ │ ├── content.css
│ │ │ │ │ ├── content.min.css
│ │ │ │ │ └── content.min.css.map
│ │ │ │ ├── document
│ │ │ │ │ ├── content.css
│ │ │ │ │ ├── content.min.css
│ │ │ │ │ └── content.min.css.map
│ │ │ │ └── writer
│ │ │ │ │ ├── content.css
│ │ │ │ │ ├── content.min.css
│ │ │ │ │ └── content.min.css.map
│ │ │ └── ui
│ │ │ │ ├── oxide-dark
│ │ │ │ ├── content.css
│ │ │ │ ├── content.inline.css
│ │ │ │ ├── content.inline.min.css
│ │ │ │ ├── content.inline.min.css.map
│ │ │ │ ├── content.min.css
│ │ │ │ ├── content.min.css.map
│ │ │ │ ├── content.mobile.css
│ │ │ │ ├── content.mobile.min.css
│ │ │ │ ├── content.mobile.min.css.map
│ │ │ │ ├── fonts
│ │ │ │ │ └── tinymce-mobile.woff
│ │ │ │ ├── skin.css
│ │ │ │ ├── skin.min.css
│ │ │ │ ├── skin.min.css.map
│ │ │ │ ├── skin.mobile.css
│ │ │ │ ├── skin.mobile.min.css
│ │ │ │ └── skin.mobile.min.css.map
│ │ │ │ └── oxide
│ │ │ │ ├── content.css
│ │ │ │ ├── content.inline.css
│ │ │ │ ├── content.inline.min.css
│ │ │ │ ├── content.inline.min.css.map
│ │ │ │ ├── content.min.css
│ │ │ │ ├── content.min.css.map
│ │ │ │ ├── content.mobile.css
│ │ │ │ ├── content.mobile.min.css
│ │ │ │ ├── content.mobile.min.css.map
│ │ │ │ ├── fonts
│ │ │ │ └── tinymce-mobile.woff
│ │ │ │ ├── skin.css
│ │ │ │ ├── skin.min.css
│ │ │ │ ├── skin.min.css.map
│ │ │ │ ├── skin.mobile.css
│ │ │ │ ├── skin.mobile.min.css
│ │ │ │ └── skin.mobile.min.css.map
│ │ │ ├── themes
│ │ │ ├── mobile
│ │ │ │ ├── theme.js
│ │ │ │ └── theme.min.js
│ │ │ └── silver
│ │ │ │ ├── theme.js
│ │ │ │ └── theme.min.js
│ │ │ ├── tinymce.js
│ │ │ └── tinymce.min.js
│ │ ├── pages
│ │ ├── chat
│ │ │ └── chat.html
│ │ ├── config
│ │ │ ├── add.html
│ │ │ ├── detail.html
│ │ │ └── list.html
│ │ ├── gonggaoxinxi
│ │ │ ├── add.html
│ │ │ ├── detail.html
│ │ │ └── list.html
│ │ ├── home
│ │ │ └── home.html
│ │ ├── login
│ │ │ └── login.html
│ │ ├── messages
│ │ │ └── list.html
│ │ ├── users
│ │ │ ├── add.html
│ │ │ ├── detail.html
│ │ │ └── list.html
│ │ ├── xuesheng
│ │ │ ├── add.html
│ │ │ ├── center.html
│ │ │ ├── detail.html
│ │ │ ├── list.html
│ │ │ └── register.html
│ │ ├── zixishi
│ │ │ ├── add.html
│ │ │ ├── detail.html
│ │ │ └── list.html
│ │ └── zuoweiyuding
│ │ │ ├── add.html
│ │ │ ├── detail.html
│ │ │ └── list.html
│ │ └── xznstatic
│ │ ├── css
│ │ ├── common.css
│ │ ├── login.css
│ │ ├── public.css
│ │ └── style.css
│ │ ├── img
│ │ ├── 162237296.jpg
│ │ ├── 162240878.jpg
│ │ ├── 19.jpg
│ │ ├── 1_092ZZ2503138.jpg
│ │ ├── 20.jpg
│ │ ├── index_24.gif
│ │ ├── index_35.gif
│ │ ├── index_41.gif
│ │ ├── index_44.gif
│ │ ├── logo.png
│ │ ├── news_list_time.jpg
│ │ ├── service_btn.png
│ │ ├── service_img.png
│ │ └── service_title.png
│ │ └── js
│ │ ├── index.js
│ │ ├── jquery-1.11.3.min.js
│ │ └── jquery.SuperSlide.2.1.1.js
│ ├── mapper
│ ├── ChatDao.xml
│ ├── CommonDao.xml
│ ├── ConfigDao.xml
│ ├── GonggaoxinxiDao.xml
│ ├── MessagesDao.xml
│ ├── TokenDao.xml
│ ├── UserDao.xml
│ ├── XueshengDao.xml
│ ├── ZixishiDao.xml
│ └── ZuoweiyudingDao.xml
│ └── static
│ └── upload
│ ├── 1577351717989.jpg
│ ├── gonggaoxinxi_tupian1.jpg
│ ├── gonggaoxinxi_tupian2.jpg
│ ├── gonggaoxinxi_tupian3.jpg
│ ├── gonggaoxinxi_tupian4.jpg
│ ├── gonggaoxinxi_tupian5.jpg
│ ├── gonggaoxinxi_tupian6.jpg
│ ├── picture1.jpg
│ ├── picture2.jpg
│ ├── picture3.jpg
│ ├── test
│ ├── xuesheng_touxiang1.jpg
│ ├── xuesheng_touxiang2.jpg
│ ├── xuesheng_touxiang3.jpg
│ ├── xuesheng_touxiang4.jpg
│ ├── xuesheng_touxiang5.jpg
│ ├── xuesheng_touxiang6.jpg
│ ├── zixishi_tupian1.jpg
│ ├── zixishi_tupian2.jpg
│ ├── zixishi_tupian3.jpg
│ ├── zixishi_tupian4.jpg
│ ├── zixishi_tupian5.jpg
│ └── zixishi_tupian6.jpg
└── test
└── java
└── com
└── SpringbootSchemaApplicationTests.java
/.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 | out/
12 |
13 | ######################################################################
14 | # IDE
15 |
16 | ### STS ###
17 | .apt_generated
18 | .classpath
19 | .factorypath
20 | .project
21 | .settings
22 | .springBeans
23 |
24 | ### IntelliJ IDEA ###
25 | .idea
26 | *.iws
27 | *.iml
28 | *.ipr
29 |
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
47 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
264.基于springboot的自习室预约管理系统
2 |
3 | - 完整代码获取地址:从戎源码网 ([https://armycodes.com/](https://armycodes.com/))
4 | - 技术探讨、资料分享,请加QQ群:692619798
5 | - 作者微信:19941326836 QQ:952045282
6 | - 承接计算机毕业设计、Java毕业设计、Python毕业设计、深度学习、机器学习
7 | - 选题+开题报告+任务书+程序定制+安装调试+论文+答辩ppt 一条龙服务
8 | - 所有选题地址 ([https://github.com/YuLin-Coder/AllProjectCatalog](https://github.com/YuLin-Coder/AllProjectCatalog))
9 |
10 | ## 项目介绍
11 | 基于springboot的自习室预约管理系统:前端 vue2、elementui,后端 maven、springmvc、spring、mybatis;角色分为管理员、用户;集成公告信息、自习室预定、留言反馈、客服等功能于一体的系统。
12 |
13 | ## 环境
14 |
15 | - IntelliJ IDEA 2021.3
16 |
17 | - Mysql 5.7.26
18 |
19 | - Node 14.14.0
20 |
21 | - JDK 1.8
22 |
23 | ## 运行截图
24 | 
25 |
26 | 
27 |
28 | 
29 |
30 | 
31 |
32 | 
33 |
34 | 
35 |
36 | 
37 |
38 | 
39 |
40 | 
41 |
--------------------------------------------------------------------------------
/screenshot/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/1.png
--------------------------------------------------------------------------------
/screenshot/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/2.png
--------------------------------------------------------------------------------
/screenshot/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/3.png
--------------------------------------------------------------------------------
/screenshot/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/4.png
--------------------------------------------------------------------------------
/screenshot/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/5.png
--------------------------------------------------------------------------------
/screenshot/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/6.png
--------------------------------------------------------------------------------
/screenshot/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/7.png
--------------------------------------------------------------------------------
/screenshot/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/8.png
--------------------------------------------------------------------------------
/screenshot/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YuLin-Coder/No264SelfStudyRoomReservationManagementSystem/1da0437864c6aa2be468b9159e376ce1edad069d/screenshot/9.png
--------------------------------------------------------------------------------
/src/main/java/com/SpringbootSchemaApplication.java:
--------------------------------------------------------------------------------
1 | package com;
2 |
3 | import org.mybatis.spring.annotation.MapperScan;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.boot.builder.SpringApplicationBuilder;
7 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
8 |
9 | @SpringBootApplication
10 | @MapperScan(basePackages = {"com.dao"})
11 | public class SpringbootSchemaApplication extends SpringBootServletInitializer{
12 |
13 | public static void main(String[] args) {
14 | SpringApplication.run(SpringbootSchemaApplication.class, args);
15 | }
16 |
17 | @Override
18 | protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
19 | return applicationBuilder.sources(SpringbootSchemaApplication.class);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/APPLoginUser.java:
--------------------------------------------------------------------------------
1 | package com.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 | * 登录用户信息
10 | */
11 | @Target(ElementType.PARAMETER)
12 | @Retention(RetentionPolicy.RUNTIME)
13 | public @interface APPLoginUser {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/IgnoreAuth.java:
--------------------------------------------------------------------------------
1 | package com.annotation;
2 |
3 | import java.lang.annotation.*;
4 |
5 | /**
6 | * 忽略Token验证
7 | */
8 | @Target(ElementType.METHOD)
9 | @Retention(RetentionPolicy.RUNTIME)
10 | @Documented
11 | public @interface IgnoreAuth {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/LoginUser.java:
--------------------------------------------------------------------------------
1 | package com.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 | * 登录用户信息
10 | */
11 | @Target(ElementType.PARAMETER)
12 | @Retention(RetentionPolicy.RUNTIME)
13 | public @interface LoginUser {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/config/MybatisPlusConfig.java:
--------------------------------------------------------------------------------
1 |
2 | package com.config;
3 |
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
8 | import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
9 |
10 | /**
11 | * mybatis-plus配置
12 | */
13 | @Configuration
14 | public class MybatisPlusConfig {
15 |
16 | /**
17 | * 分页插件
18 | */
19 | @Bean
20 | public PaginationInterceptor paginationInterceptor() {
21 | return new PaginationInterceptor();
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/dao/ChatDao.java:
--------------------------------------------------------------------------------
1 | package com.dao;
2 |
3 | import com.entity.ChatEntity;
4 | import com.baomidou.mybatisplus.mapper.BaseMapper;
5 | import java.util.List;
6 | import com.baomidou.mybatisplus.mapper.Wrapper;
7 | import com.baomidou.mybatisplus.plugins.pagination.Pagination;
8 |
9 | import org.apache.ibatis.annotations.Param;
10 | import com.entity.vo.ChatVO;
11 | import com.entity.view.ChatView;
12 |
13 |
14 | /**
15 | * 客服聊天表
16 | *
17 | * @author
18 | * @email
19 | * @date 2021-03-11 13:48:15
20 | */
21 | public interface ChatDao extends BaseMapper {
22 |
23 | List selectListVO(@Param("ew") Wrapper wrapper);
24 |
25 | ChatVO selectVO(@Param("ew") Wrapper wrapper);
26 |
27 | List selectListView(@Param("ew") Wrapper wrapper);
28 |
29 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper);
30 |
31 | ChatView selectView(@Param("ew") Wrapper wrapper);
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/dao/CommonDao.java:
--------------------------------------------------------------------------------
1 |
2 | package com.dao;
3 |
4 | import java.util.List;
5 | import java.util.Map;
6 |
7 | /**
8 | * 通用接口
9 | */
10 | public interface CommonDao{
11 | List getOption(Map params);
12 |
13 | Map getFollowByOption(Map params);
14 |
15 | List getFollowByOption2(Map params);
16 |
17 | void sh(Map params);
18 |
19 | int remindCount(Map params);
20 |
21 | Map selectCal(Map params);
22 |
23 | List