gitextract_lhpb8umu/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yaml │ │ └── feature_request.md │ └── workflows/ │ ├── api.yml │ ├── release.yml │ └── web.yml ├── .gitignore ├── .run/ │ └── campus-server.run.xml ├── LICENSE ├── README.md ├── campus-admin/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── oddfar/ │ └── campus/ │ └── admin/ │ ├── config/ │ │ ├── CaptchaConfig.java │ │ └── SwaggerConfig.java │ └── controller/ │ ├── monitor/ │ │ ├── SysLogininforController.java │ │ └── SysOperlogController.java │ └── system/ │ ├── CaptchaController.java │ ├── SysApiResourceController.java │ ├── SysConfigController.java │ ├── SysDictDataController.java │ ├── SysDictTypeController.java │ ├── SysIndexController.java │ ├── SysLoginController.java │ ├── SysMenuController.java │ ├── SysProfileController.java │ ├── SysRegisterController.java │ ├── SysRoleController.java │ └── SysUserController.java ├── campus-common/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── oddfar/ │ └── campus/ │ └── common/ │ ├── annotation/ │ │ ├── Anonymous.java │ │ ├── ApiResource.java │ │ ├── Log.java │ │ ├── RepeatSubmit.java │ │ └── Sensitive.java │ ├── config/ │ │ ├── CampusConfig.java │ │ ├── FastJson2JsonRedisSerializer.java │ │ ├── RedisConfig.java │ │ └── SensitiveSerializer.java │ ├── constant/ │ │ ├── CacheConstants.java │ │ ├── Constants.java │ │ ├── HttpStatus.java │ │ └── UserConstants.java │ ├── core/ │ │ ├── BaseMapperX.java │ │ ├── LambdaQueryWrapperX.java │ │ ├── RedisCache.java │ │ ├── page/ │ │ │ ├── PageQuery.java │ │ │ └── TableDataInfo.java │ │ └── text/ │ │ ├── CharsetKit.java │ │ └── Convert.java │ ├── domain/ │ │ ├── BaseEntity.java │ │ ├── PageResult.java │ │ ├── R.java │ │ ├── TreeSelect.java │ │ ├── entity/ │ │ │ ├── SysConfigEntity.java │ │ │ ├── SysDictDataEntity.java │ │ │ ├── SysDictTypeEntity.java │ │ │ ├── SysLoginLogEntity.java │ │ │ ├── SysMenuEntity.java │ │ │ ├── SysOperLogEntity.java │ │ │ ├── SysResourceEntity.java │ │ │ ├── SysRoleEntity.java │ │ │ ├── SysRoleMenuEntity.java │ │ │ ├── SysRoleResourceEntity.java │ │ │ ├── SysUserEntity.java │ │ │ └── SysUserRoleEntity.java │ │ ├── model/ │ │ │ ├── LoginBody.java │ │ │ ├── LoginUser.java │ │ │ ├── LoginUserToken.java │ │ │ ├── RegisterBody.java │ │ │ ├── SysRoleAuth.java │ │ │ └── SysRoleAuthList.java │ │ └── vo/ │ │ └── RouterVo.java │ ├── enums/ │ │ ├── BizCodeEnum.java │ │ ├── BusinessStatus.java │ │ ├── ResBizTypeEnum.java │ │ ├── SensitiveStrategy.java │ │ └── UserStatusEnum.java │ ├── exception/ │ │ ├── ServiceException.java │ │ ├── UtilException.java │ │ ├── base/ │ │ │ └── BaseException.java │ │ ├── file/ │ │ │ ├── FileException.java │ │ │ ├── FileNameLengthLimitExceededException.java │ │ │ ├── FileSizeLimitExceededException.java │ │ │ └── InvalidExtensionException.java │ │ └── user/ │ │ ├── CaptchaException.java │ │ ├── CaptchaExpireException.java │ │ ├── UserException.java │ │ ├── UserPasswordNotMatchException.java │ │ └── UserPasswordRetryLimitExceedException.java │ ├── filter/ │ │ ├── PropertyPreExcludeFilter.java │ │ └── RepeatedlyRequestWrapper.java │ ├── utils/ │ │ ├── DateUtils.java │ │ ├── DictUtils.java │ │ ├── LogUtils.java │ │ ├── MessageUtils.java │ │ ├── MetaVo.java │ │ ├── SecurityUtils.java │ │ ├── ServletUtils.java │ │ ├── SpringUtils.java │ │ ├── StringUtils.java │ │ ├── Threads.java │ │ ├── http/ │ │ │ ├── HttpHelper.java │ │ │ └── HttpUtils.java │ │ ├── ip/ │ │ │ ├── AddressUtils.java │ │ │ └── IpUtils.java │ │ ├── pol/ │ │ │ └── ExcelHandlerAdapter.java │ │ ├── reflect/ │ │ │ └── ReflectUtils.java │ │ ├── spring/ │ │ │ └── AopTargetUtils.java │ │ ├── sql/ │ │ │ └── SqlUtil.java │ │ ├── uuid/ │ │ │ ├── IdUtils.java │ │ │ └── Seq.java │ │ └── web/ │ │ └── WebFrameworkUtils.java │ └── validator/ │ ├── Xss.java │ └── XssValidator.java ├── campus-framework/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── oddfar/ │ │ └── campus/ │ │ └── framework/ │ │ ├── api/ │ │ │ ├── file/ │ │ │ │ ├── FileOperatorApi.java │ │ │ │ ├── FileUploadUtils.java │ │ │ │ ├── LocalFileOperator.java │ │ │ │ ├── MimeTypeUtils.java │ │ │ │ └── ZyFileAutoConfiguration.java │ │ │ ├── mail/ │ │ │ │ ├── Impl/ │ │ │ │ │ └── MailServiceImpl.java │ │ │ │ ├── MailConfigRead.java │ │ │ │ ├── MailSendApi.java │ │ │ │ ├── MailSendContext.java │ │ │ │ └── ZyMailAutoConfig.java │ │ │ ├── resource/ │ │ │ │ ├── ApiResourceAutoConfig.java │ │ │ │ ├── ResourceCollectorApi.java │ │ │ │ └── impl/ │ │ │ │ └── DefaultResourceCollector.java │ │ │ └── sysconfig/ │ │ │ ├── ConfigContext.java │ │ │ ├── ConfigExpander.java │ │ │ └── ZyConfigAutoConfiguration.java │ │ ├── aspectj/ │ │ │ └── LogAspect.java │ │ ├── config/ │ │ │ ├── ApplicationConfig.java │ │ │ ├── AsyncConfig.java │ │ │ ├── JacksonConfig.java │ │ │ ├── KaptchaTextCreator.java │ │ │ ├── MyWebMvcConfig.java │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── SecurityConfig.java │ │ │ └── ThreadPoolConfig.java │ │ ├── expander/ │ │ │ ├── SysConfigExpander.java │ │ │ └── SysFileConfigExpander.java │ │ ├── handler/ │ │ │ ├── BigNumberSerializer.java │ │ │ └── MyDBFieldHandler.java │ │ ├── interceptor/ │ │ │ ├── RepeatSubmitInterceptor.java │ │ │ └── impl/ │ │ │ └── SameUrlDataInterceptor.java │ │ ├── listener/ │ │ │ ├── ApiResourceScanner.java │ │ │ ├── ReadyEventListener.java │ │ │ └── ResourceReportListener.java │ │ ├── manager/ │ │ │ ├── AsyncFactory.java │ │ │ └── AsyncManager.java │ │ ├── mapper/ │ │ │ ├── SysConfigMapper.java │ │ │ ├── SysDictDataMapper.java │ │ │ ├── SysDictTypeMapper.java │ │ │ ├── SysLoginLogMapper.java │ │ │ ├── SysMenuMapper.java │ │ │ ├── SysOperLogMapper.java │ │ │ ├── SysResourceMapper.java │ │ │ ├── SysRoleMapper.java │ │ │ ├── SysRoleMenuMapper.java │ │ │ ├── SysRoleResourceMapper.java │ │ │ ├── SysUserMapper.java │ │ │ └── SysUserRoleMapper.java │ │ ├── security/ │ │ │ ├── context/ │ │ │ │ ├── AuthenticationContextHolder.java │ │ │ │ └── PermissionContextHolder.java │ │ │ ├── filter/ │ │ │ │ └── JwtAuthenticationTokenFilter.java │ │ │ ├── handle/ │ │ │ │ ├── AuthenticationEntryPointImpl.java │ │ │ │ └── LogoutSuccessHandlerImpl.java │ │ │ └── properties/ │ │ │ └── PermitAllUrlProperties.java │ │ ├── service/ │ │ │ ├── SysConfigService.java │ │ │ ├── SysDictDataService.java │ │ │ ├── SysDictTypeService.java │ │ │ ├── SysLoginLogService.java │ │ │ ├── SysMenuService.java │ │ │ ├── SysOperLogService.java │ │ │ ├── SysResourceService.java │ │ │ ├── SysRoleService.java │ │ │ ├── SysUserService.java │ │ │ └── impl/ │ │ │ ├── SysConfigServiceImpl.java │ │ │ ├── SysDictDataServiceImpl.java │ │ │ ├── SysDictTypeServiceImpl.java │ │ │ ├── SysLoginLogServiceImpl.java │ │ │ ├── SysMenuServiceImpl.java │ │ │ ├── SysOperLogServiceImpl.java │ │ │ ├── SysResourceServiceImpl.java │ │ │ ├── SysRoleServiceImpl.java │ │ │ └── SysUserServiceImpl.java │ │ └── web/ │ │ ├── exception/ │ │ │ └── GlobalExceptionHandler.java │ │ └── service/ │ │ ├── PermissionService.java │ │ ├── SysLoginService.java │ │ ├── SysPasswordService.java │ │ ├── SysPermissionService.java │ │ ├── SysRegisterService.java │ │ ├── TokenService.java │ │ └── UserDetailsServiceImpl.java │ └── resources/ │ └── mapper/ │ ├── SysConfigMapper.xml │ ├── SysDictDataMapper.xml │ ├── SysDictTypeMapper.xml │ ├── SysLoginLogMapper.xml │ ├── SysMenuMapper.xml │ ├── SysOperLogMapper.xml │ ├── SysResourceMapper.xml │ ├── SysRoleMapper.xml │ ├── SysRoleMenuMapper.xml │ ├── SysRoleResourceMapper.xml │ ├── SysUserMapper.xml │ └── SysUserRoleMapper.xml ├── campus-modular/ │ ├── Dockerfile │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── oddfar/ │ │ └── campus/ │ │ ├── CampusApplication.java │ │ └── business/ │ │ ├── api/ │ │ │ └── PushPlusApi.java │ │ ├── controller/ │ │ │ ├── IItemController.java │ │ │ ├── ILogController.java │ │ │ ├── IShopController.java │ │ │ ├── IUserController.java │ │ │ └── TestController.java │ │ ├── domain/ │ │ │ ├── IMTCacheConstants.java │ │ │ ├── IMTItemInfo.java │ │ │ ├── IUserRequest.java │ │ │ └── MapPoint.java │ │ ├── entity/ │ │ │ ├── IItem.java │ │ │ ├── ILog.java │ │ │ ├── IShop.java │ │ │ └── IUser.java │ │ ├── mapper/ │ │ │ ├── IItemMapper.java │ │ │ ├── ILogMapper.java │ │ │ ├── IShopMapper.java │ │ │ └── IUserMapper.java │ │ ├── service/ │ │ │ ├── IMTLogFactory.java │ │ │ ├── IMTLogService.java │ │ │ ├── IMTService.java │ │ │ ├── IShopService.java │ │ │ ├── IUserService.java │ │ │ └── impl/ │ │ │ ├── IMTLogServiceImpl.java │ │ │ ├── IMTServiceImpl.java │ │ │ ├── IShopServiceImpl.java │ │ │ └── IUserServiceImpl.java │ │ └── task/ │ │ └── CampusIMTTask.java │ └── resources/ │ ├── application-dev.yml │ ├── application-prod.yml │ ├── application.yml │ ├── i18n/ │ │ └── messages.properties │ ├── logback.xml │ ├── mapper/ │ │ ├── IItemMapper.xml │ │ ├── ILogMapper.xml │ │ ├── IShopMapper.xml │ │ └── IUserMapper.xml │ └── spy.properties ├── doc/ │ ├── docker/ │ │ ├── docker-compose.yml │ │ ├── nginx/ │ │ │ └── conf/ │ │ │ └── nginx.conf │ │ ├── redis/ │ │ │ ├── conf/ │ │ │ │ └── redis.conf │ │ │ └── data/ │ │ │ └── README.md │ │ └── server/ │ │ └── conf/ │ │ └── README.md │ └── sql/ │ └── campus_imaotai-1.0.5.sql ├── pom.xml └── vue_campus_admin/ ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── Dockerfile ├── README.md ├── babel.config.js ├── bin/ │ ├── build.bat │ ├── package.bat │ └── run-web.bat ├── package.json ├── public/ │ ├── html/ │ │ └── ie.html │ ├── index.html │ └── robots.txt ├── src/ │ ├── App.vue │ ├── api/ │ │ ├── imt/ │ │ │ ├── item.js │ │ │ ├── log.js │ │ │ ├── shop.js │ │ │ └── user.js │ │ ├── login.js │ │ ├── menu.js │ │ ├── monitor/ │ │ │ ├── cache.js │ │ │ ├── job.js │ │ │ ├── jobLog.js │ │ │ ├── logininfor.js │ │ │ ├── online.js │ │ │ ├── operlog.js │ │ │ └── server.js │ │ ├── system/ │ │ │ ├── config.js │ │ │ ├── dept.js │ │ │ ├── dict/ │ │ │ │ ├── data.js │ │ │ │ └── type.js │ │ │ ├── index.js │ │ │ ├── menu.js │ │ │ ├── notice.js │ │ │ ├── post.js │ │ │ ├── resource.js │ │ │ ├── role.js │ │ │ └── user.js │ │ └── tool/ │ │ └── gen.js │ ├── assets/ │ │ ├── icons/ │ │ │ ├── index.js │ │ │ └── svgo.yml │ │ └── styles/ │ │ ├── btn.scss │ │ ├── element-ui.scss │ │ ├── element-variables.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── ruoyi.scss │ │ ├── sidebar.scss │ │ ├── transition.scss │ │ └── variables.scss │ ├── components/ │ │ ├── Breadcrumb/ │ │ │ └── index.vue │ │ ├── Crontab/ │ │ │ ├── day.vue │ │ │ ├── hour.vue │ │ │ ├── index.vue │ │ │ ├── min.vue │ │ │ ├── month.vue │ │ │ ├── result.vue │ │ │ ├── second.vue │ │ │ ├── week.vue │ │ │ └── year.vue │ │ ├── DictData/ │ │ │ └── index.js │ │ ├── DictTag/ │ │ │ └── index.vue │ │ ├── Editor/ │ │ │ └── index.vue │ │ ├── FileUpload/ │ │ │ └── index.vue │ │ ├── Hamburger/ │ │ │ └── index.vue │ │ ├── HeaderSearch/ │ │ │ └── index.vue │ │ ├── IconSelect/ │ │ │ ├── index.vue │ │ │ └── requireIcons.js │ │ ├── ImagePreview/ │ │ │ └── index.vue │ │ ├── ImageUpload/ │ │ │ └── index.vue │ │ ├── Pagination/ │ │ │ └── index.vue │ │ ├── PanThumb/ │ │ │ └── index.vue │ │ ├── ParentView/ │ │ │ └── index.vue │ │ ├── RightPanel/ │ │ │ └── index.vue │ │ ├── RightToolbar/ │ │ │ └── index.vue │ │ ├── RuoYi/ │ │ │ ├── Doc/ │ │ │ │ └── index.vue │ │ │ └── Git/ │ │ │ └── index.vue │ │ ├── Screenfull/ │ │ │ └── index.vue │ │ ├── SizeSelect/ │ │ │ └── index.vue │ │ ├── SvgIcon/ │ │ │ └── index.vue │ │ ├── ThemePicker/ │ │ │ └── index.vue │ │ ├── TopNav/ │ │ │ └── index.vue │ │ └── iFrame/ │ │ └── index.vue │ ├── directive/ │ │ ├── dialog/ │ │ │ ├── drag.js │ │ │ ├── dragHeight.js │ │ │ └── dragWidth.js │ │ ├── index.js │ │ ├── module/ │ │ │ └── clipboard.js │ │ └── permission/ │ │ ├── hasPermi.js │ │ └── hasRole.js │ ├── layout/ │ │ ├── components/ │ │ │ ├── AppMain.vue │ │ │ ├── IframeToggle/ │ │ │ │ └── index.vue │ │ │ ├── InnerLink/ │ │ │ │ └── index.vue │ │ │ ├── Navbar.vue │ │ │ ├── Settings/ │ │ │ │ └── index.vue │ │ │ ├── Sidebar/ │ │ │ │ ├── FixiOSBug.js │ │ │ │ ├── Item.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ ├── TagsView/ │ │ │ │ ├── ScrollPane.vue │ │ │ │ └── index.vue │ │ │ └── index.js │ │ ├── index.vue │ │ └── mixin/ │ │ └── ResizeHandler.js │ ├── main.js │ ├── permission.js │ ├── plugins/ │ │ ├── auth.js │ │ ├── cache.js │ │ ├── download.js │ │ ├── index.js │ │ ├── modal.js │ │ └── tab.js │ ├── router/ │ │ └── index.js │ ├── settings.js │ ├── store/ │ │ ├── getters.js │ │ ├── index.js │ │ └── modules/ │ │ ├── app.js │ │ ├── dict.js │ │ ├── permission.js │ │ ├── settings.js │ │ ├── tagsView.js │ │ └── user.js │ ├── utils/ │ │ ├── auth.js │ │ ├── crypto.js │ │ ├── dict/ │ │ │ ├── Dict.js │ │ │ ├── DictConverter.js │ │ │ ├── DictData.js │ │ │ ├── DictMeta.js │ │ │ ├── DictOptions.js │ │ │ └── index.js │ │ ├── errorCode.js │ │ ├── generator/ │ │ │ ├── config.js │ │ │ ├── css.js │ │ │ ├── drawingDefault.js │ │ │ ├── html.js │ │ │ ├── icon.json │ │ │ ├── js.js │ │ │ └── render.js │ │ ├── index.js │ │ ├── jsencrypt.js │ │ ├── permission.js │ │ ├── request.js │ │ ├── ruoyi.js │ │ ├── scroll-to.js │ │ └── validate.js │ └── views/ │ ├── components/ │ │ └── icons/ │ │ ├── element-icons.js │ │ ├── index.vue │ │ └── svg-icons.js │ ├── dashboard/ │ │ ├── BarChart.vue │ │ ├── LineChart.vue │ │ ├── PanelGroup.vue │ │ ├── PieChart.vue │ │ ├── RaddarChart.vue │ │ └── mixins/ │ │ └── resize.js │ ├── error/ │ │ ├── 401.vue │ │ └── 404.vue │ ├── imt/ │ │ ├── item/ │ │ │ └── index.vue │ │ ├── log/ │ │ │ └── index.vue │ │ ├── shop/ │ │ │ └── index.vue │ │ └── user/ │ │ └── index.vue │ ├── index.vue │ ├── index_v1.vue │ ├── login.vue │ ├── monitor/ │ │ ├── job/ │ │ │ ├── index.vue │ │ │ └── log.vue │ │ ├── logininfor/ │ │ │ └── index.vue │ │ ├── online/ │ │ │ └── index.vue │ │ └── operlog/ │ │ └── index.vue │ ├── redirect.vue │ ├── register.vue │ ├── system/ │ │ ├── config/ │ │ │ └── index.vue │ │ ├── dict/ │ │ │ ├── data.vue │ │ │ └── index.vue │ │ ├── menu/ │ │ │ └── index.vue │ │ ├── notice/ │ │ │ └── index.vue │ │ ├── role/ │ │ │ ├── authUser.vue │ │ │ ├── index.vue │ │ │ └── selectUser.vue │ │ └── user/ │ │ ├── authRole.vue │ │ ├── index.vue │ │ └── profile/ │ │ ├── index.vue │ │ ├── resetPwd.vue │ │ ├── userAvatar.vue │ │ └── userInfo.vue │ └── tool/ │ ├── gen/ │ │ ├── basicInfoForm.vue │ │ ├── editTable.vue │ │ ├── genInfoForm.vue │ │ ├── importTable.vue │ │ └── index.vue │ └── swagger/ │ └── index.vue └── vue.config.js