├── README.md ├── ServerDeploy ├── home │ ├── background │ │ ├── Dockerfile │ │ └── start.sh │ ├── front │ │ └── start.sh │ ├── shutdownAll.sh │ └── startAll.sh ├── nginx.conf └── 服务器部署流程.txt ├── background ├── .gitignore ├── LICENSE ├── README.en.md ├── README.md ├── eladmin-common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── me │ │ └── zhengjie │ │ ├── annotation │ │ ├── AnonymousAccess.java │ │ ├── DataPermission.java │ │ ├── Limit.java │ │ ├── Query.java │ │ └── rest │ │ │ ├── AnonymousDeleteMapping.java │ │ │ ├── AnonymousGetMapping.java │ │ │ ├── AnonymousPatchMapping.java │ │ │ ├── AnonymousPostMapping.java │ │ │ └── AnonymousPutMapping.java │ │ ├── aspect │ │ ├── LimitAspect.java │ │ └── LimitType.java │ │ ├── base │ │ ├── BaseDTO.java │ │ ├── BaseEntity.java │ │ └── BaseMapper.java │ │ ├── config │ │ ├── AuditorConfig.java │ │ ├── ElPermissionConfig.java │ │ ├── FileProperties.java │ │ ├── RedisConfig.java │ │ ├── RsaProperties.java │ │ └── SwaggerConfig.java │ │ ├── exception │ │ ├── BadConfigurationException.java │ │ ├── BadRequestException.java │ │ ├── EntityExistException.java │ │ ├── EntityNotFoundException.java │ │ └── handler │ │ │ ├── ApiError.java │ │ │ └── GlobalExceptionHandler.java │ │ └── utils │ │ ├── CacheKey.java │ │ ├── CallBack.java │ │ ├── CloseUtil.java │ │ ├── DateUtil.java │ │ ├── ElAdminConstant.java │ │ ├── EncryptUtils.java │ │ ├── FileUtil.java │ │ ├── PageUtil.java │ │ ├── QueryHelp.java │ │ ├── RedisUtils.java │ │ ├── RequestHolder.java │ │ ├── RsaUtils.java │ │ ├── SecurityUtils.java │ │ ├── SpringContextHolder.java │ │ ├── StringUtils.java │ │ ├── ThrowableUtil.java │ │ ├── TranslatorUtil.java │ │ ├── ValidationUtil.java │ │ └── enums │ │ ├── CodeBiEnum.java │ │ ├── CodeEnum.java │ │ ├── DataScopeEnum.java │ │ └── RequestMethodEnum.java ├── eladmin-generator │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── me │ │ └── zhengjie │ │ ├── domain │ │ ├── ColumnInfo.java │ │ ├── GenConfig.java │ │ └── vo │ │ │ └── TableInfo.java │ │ ├── repository │ │ ├── ColumnInfoRepository.java │ │ └── GenConfigRepository.java │ │ ├── rest │ │ ├── GenConfigController.java │ │ └── GeneratorController.java │ │ ├── service │ │ ├── GenConfigService.java │ │ ├── GeneratorService.java │ │ └── impl │ │ │ ├── GenConfigServiceImpl.java │ │ │ └── GeneratorServiceImpl.java │ │ └── utils │ │ ├── ColUtil.java │ │ └── GenUtil.java ├── eladmin-logging │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── me │ │ └── zhengjie │ │ ├── annotation │ │ └── Log.java │ │ ├── aspect │ │ └── LogAspect.java │ │ ├── domain │ │ └── Log.java │ │ ├── repository │ │ └── LogRepository.java │ │ ├── rest │ │ └── LogController.java │ │ └── service │ │ ├── LogService.java │ │ ├── dto │ │ ├── LogErrorDTO.java │ │ ├── LogQueryCriteria.java │ │ └── LogSmallDTO.java │ │ ├── impl │ │ └── LogServiceImpl.java │ │ └── mapstruct │ │ ├── LogErrorMapper.java │ │ └── LogSmallMapper.java ├── eladmin-system │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── docker │ │ │ │ └── Dockerfile │ │ │ └── me │ │ │ │ └── zhengjie │ │ │ │ ├── AppRun.java │ │ │ │ ├── config │ │ │ │ ├── ConfigurerAdapter.java │ │ │ │ ├── WebSocketConfig.java │ │ │ │ └── thread │ │ │ │ │ ├── AsyncTaskExecutePool.java │ │ │ │ │ ├── AsyncTaskProperties.java │ │ │ │ │ ├── TheadFactoryName.java │ │ │ │ │ └── ThreadPoolExecutorUtil.java │ │ │ │ └── modules │ │ │ │ ├── mnt │ │ │ │ ├── domain │ │ │ │ │ ├── App.java │ │ │ │ │ ├── Database.java │ │ │ │ │ ├── Deploy.java │ │ │ │ │ ├── DeployHistory.java │ │ │ │ │ └── ServerDeploy.java │ │ │ │ ├── repository │ │ │ │ │ ├── AppRepository.java │ │ │ │ │ ├── DatabaseRepository.java │ │ │ │ │ ├── DeployHistoryRepository.java │ │ │ │ │ ├── DeployRepository.java │ │ │ │ │ └── ServerDeployRepository.java │ │ │ │ ├── rest │ │ │ │ │ ├── AppController.java │ │ │ │ │ ├── DatabaseController.java │ │ │ │ │ ├── DeployController.java │ │ │ │ │ ├── DeployHistoryController.java │ │ │ │ │ └── ServerDeployController.java │ │ │ │ ├── service │ │ │ │ │ ├── AppService.java │ │ │ │ │ ├── DatabaseService.java │ │ │ │ │ ├── DeployHistoryService.java │ │ │ │ │ ├── DeployService.java │ │ │ │ │ ├── ServerDeployService.java │ │ │ │ │ ├── dto │ │ │ │ │ │ ├── AppDto.java │ │ │ │ │ │ ├── AppQueryCriteria.java │ │ │ │ │ │ ├── DatabaseDto.java │ │ │ │ │ │ ├── DatabaseQueryCriteria.java │ │ │ │ │ │ ├── DeployDto.java │ │ │ │ │ │ ├── DeployHistoryDto.java │ │ │ │ │ │ ├── DeployHistoryQueryCriteria.java │ │ │ │ │ │ ├── DeployQueryCriteria.java │ │ │ │ │ │ ├── ServerDeployDto.java │ │ │ │ │ │ └── ServerDeployQueryCriteria.java │ │ │ │ │ ├── impl │ │ │ │ │ │ ├── AppServiceImpl.java │ │ │ │ │ │ ├── DatabaseServiceImpl.java │ │ │ │ │ │ ├── DeployHistoryServiceImpl.java │ │ │ │ │ │ ├── DeployServiceImpl.java │ │ │ │ │ │ └── ServerDeployServiceImpl.java │ │ │ │ │ └── mapstruct │ │ │ │ │ │ ├── AppMapper.java │ │ │ │ │ │ ├── DatabaseMapper.java │ │ │ │ │ │ ├── DeployHistoryMapper.java │ │ │ │ │ │ ├── DeployMapper.java │ │ │ │ │ │ └── ServerDeployMapper.java │ │ │ │ ├── util │ │ │ │ │ ├── DataTypeEnum.java │ │ │ │ │ ├── ExecuteShellUtil.java │ │ │ │ │ ├── ScpClientUtil.java │ │ │ │ │ └── SqlUtils.java │ │ │ │ └── websocket │ │ │ │ │ ├── MsgType.java │ │ │ │ │ ├── SocketMsg.java │ │ │ │ │ └── WebSocketServer.java │ │ │ │ ├── mockexam │ │ │ │ ├── config │ │ │ │ │ ├── CrawlingConfig.java │ │ │ │ │ ├── JacksonConfig.java │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ └── XxlJobConfig.java │ │ │ │ ├── constant │ │ │ │ │ ├── CommonConstant.java │ │ │ │ │ ├── ErrorCodeConstant.java │ │ │ │ │ ├── RedisConstant.java │ │ │ │ │ └── enums │ │ │ │ │ │ ├── AnswerTypeEnum.java │ │ │ │ │ │ ├── CarTypeEnum.java │ │ │ │ │ │ ├── ChooseAnswerTypeEnum.java │ │ │ │ │ │ ├── FavoritesTypeEnum.java │ │ │ │ │ │ ├── MessageTypeEnum.java │ │ │ │ │ │ ├── ModelTypeEnum.java │ │ │ │ │ │ ├── QuestionBelongTypeEnum.java │ │ │ │ │ │ ├── QuestionObjectiveTypeEnum.java │ │ │ │ │ │ ├── QuestionTypeEnum.java │ │ │ │ │ │ └── SubjectTypeEnum.java │ │ │ │ ├── controller │ │ │ │ │ ├── MeFavoritesController.java │ │ │ │ │ ├── MeQuestionController.java │ │ │ │ │ ├── MeUserBehaviorController.java │ │ │ │ │ └── MeWrongQuestionController.java │ │ │ │ ├── job │ │ │ │ │ ├── CalUserBehaviorJobHandler.java │ │ │ │ │ ├── QuestionPicJobInitHanlder.java │ │ │ │ │ └── ThirdPartyDataJobHandler.java │ │ │ │ ├── mapper │ │ │ │ │ ├── MeFavoritesMapper.java │ │ │ │ │ ├── MeQuestionMapper.java │ │ │ │ │ ├── MeUserBehaviorMapper.java │ │ │ │ │ └── MeWrongQuestionMapper.java │ │ │ │ ├── pojo │ │ │ │ │ ├── MeFavorites.java │ │ │ │ │ ├── MeQuestion.java │ │ │ │ │ ├── MeUserBehavior.java │ │ │ │ │ ├── MeWrongQuestion.java │ │ │ │ │ └── page │ │ │ │ │ │ └── PageData.java │ │ │ │ ├── service │ │ │ │ │ ├── CrawlingService.java │ │ │ │ │ ├── MeFavoritesService.java │ │ │ │ │ ├── MeQuestionService.java │ │ │ │ │ ├── MeUserBehaviorService.java │ │ │ │ │ ├── MeWrongQuestionService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── MeFavoritesServiceImpl.java │ │ │ │ │ │ ├── MeQuestionServiceImpl.java │ │ │ │ │ │ ├── MeUserBehaviorServiceImpl.java │ │ │ │ │ │ └── MeWrongQuestionServiceImpl.java │ │ │ │ └── utils │ │ │ │ │ ├── CodeGenerationUtil.java │ │ │ │ │ ├── DataHandleUtil.java │ │ │ │ │ ├── DockingFileUtils.java │ │ │ │ │ ├── FastDFSUtil.java │ │ │ │ │ ├── FileUtil.java │ │ │ │ │ ├── HttpUtil.java │ │ │ │ │ ├── JsonData.java │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ ├── LocalDateUtil.java │ │ │ │ │ ├── MessageUtils.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── SpringContextUtils.java │ │ │ │ │ └── SystemUtil.java │ │ │ │ ├── quartz │ │ │ │ ├── config │ │ │ │ │ ├── JobRunner.java │ │ │ │ │ └── QuartzConfig.java │ │ │ │ ├── domain │ │ │ │ │ ├── QuartzJob.java │ │ │ │ │ └── QuartzLog.java │ │ │ │ ├── repository │ │ │ │ │ ├── QuartzJobRepository.java │ │ │ │ │ └── QuartzLogRepository.java │ │ │ │ ├── rest │ │ │ │ │ └── QuartzJobController.java │ │ │ │ ├── service │ │ │ │ │ ├── QuartzJobService.java │ │ │ │ │ ├── dto │ │ │ │ │ │ └── JobQueryCriteria.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── QuartzJobServiceImpl.java │ │ │ │ ├── task │ │ │ │ │ └── TestTask.java │ │ │ │ └── utils │ │ │ │ │ ├── ExecutionJob.java │ │ │ │ │ ├── QuartzManage.java │ │ │ │ │ └── QuartzRunnable.java │ │ │ │ ├── security │ │ │ │ ├── config │ │ │ │ │ ├── ConfigBeanConfiguration.java │ │ │ │ │ ├── SpringSecurityConfig.java │ │ │ │ │ └── bean │ │ │ │ │ │ ├── LoginCode.java │ │ │ │ │ │ ├── LoginCodeEnum.java │ │ │ │ │ │ ├── LoginProperties.java │ │ │ │ │ │ └── SecurityProperties.java │ │ │ │ ├── rest │ │ │ │ │ ├── AuthorizationController.java │ │ │ │ │ └── OnlineController.java │ │ │ │ ├── security │ │ │ │ │ ├── JwtAccessDeniedHandler.java │ │ │ │ │ ├── JwtAuthenticationEntryPoint.java │ │ │ │ │ ├── TokenConfigurer.java │ │ │ │ │ ├── TokenFilter.java │ │ │ │ │ └── TokenProvider.java │ │ │ │ └── service │ │ │ │ │ ├── OnlineUserService.java │ │ │ │ │ ├── UserCacheClean.java │ │ │ │ │ ├── UserDetailsServiceImpl.java │ │ │ │ │ └── dto │ │ │ │ │ ├── AuthUserDto.java │ │ │ │ │ ├── JwtUserDto.java │ │ │ │ │ └── OnlineUserDto.java │ │ │ │ └── system │ │ │ │ ├── domain │ │ │ │ ├── Dept.java │ │ │ │ ├── Dict.java │ │ │ │ ├── DictDetail.java │ │ │ │ ├── Job.java │ │ │ │ ├── Menu.java │ │ │ │ ├── Role.java │ │ │ │ ├── User.java │ │ │ │ └── vo │ │ │ │ │ ├── MenuMetaVo.java │ │ │ │ │ ├── MenuVo.java │ │ │ │ │ └── UserPassVo.java │ │ │ │ ├── repository │ │ │ │ ├── DeptRepository.java │ │ │ │ ├── DictDetailRepository.java │ │ │ │ ├── DictRepository.java │ │ │ │ ├── JobRepository.java │ │ │ │ ├── MenuRepository.java │ │ │ │ ├── RoleRepository.java │ │ │ │ └── UserRepository.java │ │ │ │ ├── rest │ │ │ │ ├── DeptController.java │ │ │ │ ├── DictController.java │ │ │ │ ├── DictDetailController.java │ │ │ │ ├── JobController.java │ │ │ │ ├── LimitController.java │ │ │ │ ├── MenuController.java │ │ │ │ ├── MonitorController.java │ │ │ │ ├── RoleController.java │ │ │ │ ├── UserController.java │ │ │ │ └── VerifyController.java │ │ │ │ └── service │ │ │ │ ├── DataService.java │ │ │ │ ├── DeptService.java │ │ │ │ ├── DictDetailService.java │ │ │ │ ├── DictService.java │ │ │ │ ├── JobService.java │ │ │ │ ├── MenuService.java │ │ │ │ ├── MonitorService.java │ │ │ │ ├── RoleService.java │ │ │ │ ├── UserService.java │ │ │ │ ├── VerifyService.java │ │ │ │ ├── dto │ │ │ │ ├── DeptDto.java │ │ │ │ ├── DeptQueryCriteria.java │ │ │ │ ├── DeptSmallDto.java │ │ │ │ ├── DictDetailDto.java │ │ │ │ ├── DictDetailQueryCriteria.java │ │ │ │ ├── DictDto.java │ │ │ │ ├── DictQueryCriteria.java │ │ │ │ ├── DictSmallDto.java │ │ │ │ ├── JobDto.java │ │ │ │ ├── JobQueryCriteria.java │ │ │ │ ├── JobSmallDto.java │ │ │ │ ├── MenuDto.java │ │ │ │ ├── MenuQueryCriteria.java │ │ │ │ ├── RoleDto.java │ │ │ │ ├── RoleQueryCriteria.java │ │ │ │ ├── RoleSmallDto.java │ │ │ │ ├── UserDto.java │ │ │ │ └── UserQueryCriteria.java │ │ │ │ ├── impl │ │ │ │ ├── DataServiceImpl.java │ │ │ │ ├── DeptServiceImpl.java │ │ │ │ ├── DictDetailServiceImpl.java │ │ │ │ ├── DictServiceImpl.java │ │ │ │ ├── JobServiceImpl.java │ │ │ │ ├── MenuServiceImpl.java │ │ │ │ ├── MonitorServiceImpl.java │ │ │ │ ├── RoleServiceImpl.java │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── VerifyServiceImpl.java │ │ │ │ └── mapstruct │ │ │ │ ├── DeptMapper.java │ │ │ │ ├── DeptSmallMapper.java │ │ │ │ ├── DictDetailMapper.java │ │ │ │ ├── DictMapper.java │ │ │ │ ├── DictSmallMapper.java │ │ │ │ ├── JobMapper.java │ │ │ │ ├── JobSmallMapper.java │ │ │ │ ├── MenuMapper.java │ │ │ │ ├── RoleMapper.java │ │ │ │ ├── RoleSmallMapper.java │ │ │ │ └── UserMapper.java │ │ └── resources │ │ │ ├── application-dev.yml │ │ │ ├── application.yml │ │ │ ├── generator.properties │ │ │ ├── ip2region │ │ │ └── ip2region.db │ │ │ ├── log4jdbc.log4j2.properties │ │ │ ├── logback.xml │ │ │ ├── mapper │ │ │ ├── MeFavoritesMapper.xml │ │ │ ├── MeQuestionMapper.xml │ │ │ └── MeWrongQuestionMapper.xml │ │ │ └── template │ │ │ ├── email │ │ │ ├── email.ftl │ │ │ └── taskAlarm.ftl │ │ │ └── generator │ │ │ ├── admin │ │ │ ├── Controller.ftl │ │ │ ├── Dto.ftl │ │ │ ├── Entity.ftl │ │ │ ├── Mapper.ftl │ │ │ ├── QueryCriteria.ftl │ │ │ ├── Repository.ftl │ │ │ ├── Service.ftl │ │ │ └── ServiceImpl.ftl │ │ │ └── front │ │ │ ├── api.ftl │ │ │ └── index.ftl │ │ └── test │ │ └── java │ │ └── me │ │ └── zhengjie │ │ ├── fastdfsTest.java │ │ ├── test.java │ │ └── testUtil.java ├── eladmin-tools │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── me │ │ └── zhengjie │ │ ├── config │ │ └── MultipartConfig.java │ │ ├── domain │ │ ├── AlipayConfig.java │ │ ├── EmailConfig.java │ │ ├── LocalStorage.java │ │ ├── QiniuConfig.java │ │ ├── QiniuContent.java │ │ └── vo │ │ │ ├── EmailVo.java │ │ │ └── TradeVo.java │ │ ├── repository │ │ ├── AliPayRepository.java │ │ ├── EmailRepository.java │ │ ├── LocalStorageRepository.java │ │ ├── QiNiuConfigRepository.java │ │ └── QiniuContentRepository.java │ │ ├── rest │ │ ├── AliPayController.java │ │ ├── EmailController.java │ │ ├── LocalStorageController.java │ │ └── QiniuController.java │ │ ├── service │ │ ├── AliPayService.java │ │ ├── EmailService.java │ │ ├── LocalStorageService.java │ │ ├── QiNiuService.java │ │ ├── dto │ │ │ ├── LocalStorageDto.java │ │ │ ├── LocalStorageQueryCriteria.java │ │ │ ├── PictureQueryCriteria.java │ │ │ └── QiniuQueryCriteria.java │ │ ├── impl │ │ │ ├── AliPayServiceImpl.java │ │ │ ├── EmailServiceImpl.java │ │ │ ├── LocalStorageServiceImpl.java │ │ │ └── QiNiuServiceImpl.java │ │ └── mapstruct │ │ │ └── LocalStorageMapper.java │ │ └── utils │ │ ├── AliPayStatusEnum.java │ │ ├── AlipayUtils.java │ │ └── QiNiuUtil.java ├── pom.xml ├── sql │ └── eladmin.sql └── src │ └── main │ └── resources │ └── mapper │ ├── MeUserBehavior │ └── MeUserBehaviorMapper.xml │ ├── meFavorites │ └── MeFavoritesMapper.xml │ ├── meWrongQuestion │ └── MeWrongQuestionMapper.xml │ ├── question │ └── MeQuestionMapper.xml │ └── quetsion │ └── MeQuestionMapper.xml ├── front ├── .editorconfig ├── .env.development ├── .env.production ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── babel.config.js ├── jest.config.js ├── package.json ├── plopfile.js ├── postcss.config.js ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── api │ │ ├── data.js │ │ ├── generator │ │ │ ├── genConfig.js │ │ │ └── generator.js │ │ ├── login.js │ │ ├── mnt │ │ │ ├── app.js │ │ │ ├── connect.js │ │ │ ├── database.js │ │ │ ├── deploy.js │ │ │ ├── deployHistory.js │ │ │ └── serverDeploy.js │ │ ├── monitor │ │ │ ├── log.js │ │ │ └── online.js │ │ ├── system │ │ │ ├── code.js │ │ │ ├── dept.js │ │ │ ├── dict.js │ │ │ ├── dictDetail.js │ │ │ ├── job.js │ │ │ ├── menu.js │ │ │ ├── question.js │ │ │ ├── role.js │ │ │ ├── timing.js │ │ │ └── user.js │ │ └── tools │ │ │ ├── alipay.js │ │ │ ├── email.js │ │ │ ├── localStorage.js │ │ │ └── qiniu.js │ ├── assets │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ ├── icons │ │ │ ├── index.js │ │ │ ├── svg │ │ │ │ ├── Steve-Jobs.svg │ │ │ │ ├── alipay.svg │ │ │ │ ├── anq.svg │ │ │ │ ├── app.svg │ │ │ │ ├── backup.svg │ │ │ │ ├── chain.svg │ │ │ │ ├── chart.svg │ │ │ │ ├── codeConsole.svg │ │ │ │ ├── dashboard.svg │ │ │ │ ├── database.svg │ │ │ │ ├── date.svg │ │ │ │ ├── deploy.svg │ │ │ │ ├── dept.svg │ │ │ │ ├── dev.svg │ │ │ │ ├── develop.svg │ │ │ │ ├── dictionary.svg │ │ │ │ ├── doc.svg │ │ │ │ ├── download.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── education.svg │ │ │ │ ├── email.svg │ │ │ │ ├── error.svg │ │ │ │ ├── exit-fullscreen.svg │ │ │ │ ├── fullscreen.svg │ │ │ │ ├── fwb.svg │ │ │ │ ├── github.svg │ │ │ │ ├── gonggao.svg │ │ │ │ ├── icon.svg │ │ │ │ ├── image.svg │ │ │ │ ├── index.svg │ │ │ │ ├── international.svg │ │ │ │ ├── ipvisits.svg │ │ │ │ ├── java.svg │ │ │ │ ├── link.svg │ │ │ │ ├── list.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── log.svg │ │ │ │ ├── login.svg │ │ │ │ ├── markdown.svg │ │ │ │ ├── menu.svg │ │ │ │ ├── message.svg │ │ │ │ ├── mnt.svg │ │ │ │ ├── money.svg │ │ │ │ ├── monitor.svg │ │ │ │ ├── nested.svg │ │ │ │ ├── password.svg │ │ │ │ ├── people.svg │ │ │ │ ├── peoples.svg │ │ │ │ ├── permission.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── qiniu.svg │ │ │ │ ├── redis.svg │ │ │ │ ├── role.svg │ │ │ │ ├── search.svg │ │ │ │ ├── server.svg │ │ │ │ ├── shopping.svg │ │ │ │ ├── size.svg │ │ │ │ ├── skill.svg │ │ │ │ ├── source.svg │ │ │ │ ├── sqlMonitor.svg │ │ │ │ ├── swagger.svg │ │ │ │ ├── sys-tools.svg │ │ │ │ ├── system.svg │ │ │ │ ├── system1.svg │ │ │ │ ├── tab.svg │ │ │ │ ├── theme.svg │ │ │ │ ├── timing.svg │ │ │ │ ├── tools.svg │ │ │ │ ├── tree-table.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── user.svg │ │ │ │ ├── user1.svg │ │ │ │ ├── validCode.svg │ │ │ │ ├── visits.svg │ │ │ │ ├── web.svg │ │ │ │ ├── wechat.svg │ │ │ │ ├── weixin.svg │ │ │ │ └── zujian.svg │ │ │ └── svgo.yml │ │ ├── images │ │ │ ├── avatar.png │ │ │ ├── background.jpg │ │ │ ├── background2.jpg │ │ │ └── logo.png │ │ └── styles │ │ │ ├── btn.scss │ │ │ ├── eladmin.scss │ │ │ ├── element-ui.scss │ │ │ ├── element-variables.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── sidebar.scss │ │ │ ├── transition.scss │ │ │ └── variables.scss │ ├── components │ │ ├── Breadcrumb │ │ │ └── index.vue │ │ ├── Crud │ │ │ ├── CRUD.operation.vue │ │ │ ├── Pagination.vue │ │ │ ├── RR.operation.vue │ │ │ ├── UD.operation.vue │ │ │ └── crud.js │ │ ├── DateRangePicker │ │ │ └── index.vue │ │ ├── Dict │ │ │ ├── Dict.js │ │ │ └── index.js │ │ ├── Doc │ │ │ └── index.vue │ │ ├── Echarts │ │ │ ├── BarChart.vue │ │ │ ├── Category.vue │ │ │ ├── Funnel.vue │ │ │ ├── Gauge.vue │ │ │ ├── Graph.vue │ │ │ ├── HeatMap.vue │ │ │ ├── Line3D.vue │ │ │ ├── PieChart.vue │ │ │ ├── Point.vue │ │ │ ├── RadarChart.vue │ │ │ ├── Rich.vue │ │ │ ├── Sankey.vue │ │ │ ├── Scatter.vue │ │ │ ├── Sunburst.vue │ │ │ ├── ThemeRiver.vue │ │ │ └── WordCloud.vue │ │ ├── GithubCorner │ │ │ └── index.vue │ │ ├── Hamburger │ │ │ └── index.vue │ │ ├── HeaderSearch │ │ │ └── index.vue │ │ ├── IconSelect │ │ │ ├── index.vue │ │ │ └── requireIcons.js │ │ ├── Iframe │ │ │ └── index.vue │ │ ├── JavaEdit │ │ │ └── index.vue │ │ ├── Pagination │ │ │ └── index.vue │ │ ├── PanThumb │ │ │ └── index.vue │ │ ├── ParentView │ │ │ └── index.vue │ │ ├── Permission │ │ │ ├── index.js │ │ │ └── permission.js │ │ ├── RightPanel │ │ │ └── index.vue │ │ ├── Screenfull │ │ │ └── index.vue │ │ ├── SizeSelect │ │ │ └── index.vue │ │ ├── SvgIcon │ │ │ └── index.vue │ │ ├── ThemePicker │ │ │ └── index.vue │ │ ├── UploadExcel │ │ │ └── index.vue │ │ ├── YamlEdit │ │ │ └── index.vue │ │ └── countdown │ │ │ └── count_down.vue │ ├── layout │ │ ├── components │ │ │ ├── AppMain.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 │ ├── mixins │ │ └── crud.js │ ├── router │ │ ├── index.js │ │ └── routers.js │ ├── settings.js │ ├── store │ │ ├── getters.js │ │ ├── index.js │ │ └── modules │ │ │ ├── api.js │ │ │ ├── app.js │ │ │ ├── permission.js │ │ │ ├── settings.js │ │ │ ├── tagsView.js │ │ │ └── user.js │ ├── utils │ │ ├── auth.js │ │ ├── clipboard.js │ │ ├── datetime.js │ │ ├── index.js │ │ ├── permission.js │ │ ├── request.js │ │ ├── rsaEncrypt.js │ │ ├── shortcuts.js │ │ ├── upload.js │ │ └── validate.js │ └── views │ │ ├── components │ │ ├── Echarts.vue │ │ ├── Editor.vue │ │ ├── MarkDown.vue │ │ ├── YamlEdit.vue │ │ ├── excel │ │ │ └── upload-excel.vue │ │ └── icons │ │ │ ├── element-icons.js │ │ │ ├── index.vue │ │ │ └── svg-icons.js │ │ ├── dashboard │ │ ├── LineChart.vue │ │ ├── PanelGroup.vue │ │ └── mixins │ │ │ └── resize.js │ │ ├── exam │ │ ├── car │ │ │ ├── order.vue │ │ │ ├── rand.vue │ │ │ └── special.vue │ │ ├── count_down.vue │ │ ├── index.vue │ │ ├── passenger │ │ │ ├── order.vue │ │ │ ├── rand.vue │ │ │ └── special.vue │ │ └── truck │ │ │ ├── order.vue │ │ │ ├── rand.vue │ │ │ └── special.vue │ │ ├── features │ │ ├── 401.vue │ │ ├── 404.vue │ │ └── redirect.vue │ │ ├── generator │ │ ├── config.vue │ │ ├── index.vue │ │ └── preview.vue │ │ ├── home.vue │ │ ├── login.vue │ │ ├── mnt │ │ ├── app │ │ │ └── index.vue │ │ ├── database │ │ │ ├── execute.vue │ │ │ └── index.vue │ │ ├── deploy │ │ │ ├── deploy.vue │ │ │ ├── index.vue │ │ │ └── sysRestore.vue │ │ ├── deployHistory │ │ │ └── index.vue │ │ └── server │ │ │ └── index.vue │ │ ├── monitor │ │ ├── log │ │ │ ├── errorLog.vue │ │ │ ├── index.vue │ │ │ └── search.vue │ │ ├── online │ │ │ └── index.vue │ │ ├── server │ │ │ └── index.vue │ │ └── sql │ │ │ └── index.vue │ │ ├── nested │ │ ├── menu1 │ │ │ ├── menu1-1 │ │ │ │ └── index.vue │ │ │ └── menu1-2 │ │ │ │ └── index.vue │ │ └── menu2 │ │ │ └── index.vue │ │ ├── question │ │ ├── edit.vue │ │ ├── favorites.vue │ │ ├── recommend.vue │ │ └── wrong.vue │ │ ├── system │ │ ├── dept │ │ │ └── index.vue │ │ ├── dict │ │ │ ├── dictDetail.vue │ │ │ └── index.vue │ │ ├── job │ │ │ ├── index.vue │ │ │ └── module │ │ │ │ ├── form.vue │ │ │ │ └── header.vue │ │ ├── menu │ │ │ └── index.vue │ │ ├── role │ │ │ └── index.vue │ │ ├── timing │ │ │ ├── index.vue │ │ │ └── log.vue │ │ └── user │ │ │ ├── center.vue │ │ │ ├── center │ │ │ ├── updateEmail.vue │ │ │ └── updatePass.vue │ │ │ └── index.vue │ │ └── tools │ │ ├── aliPay │ │ ├── config.vue │ │ ├── index.vue │ │ └── toPay.vue │ │ ├── email │ │ ├── config.vue │ │ ├── index.vue │ │ └── send.vue │ │ ├── storage │ │ ├── index.vue │ │ ├── local │ │ │ └── index.vue │ │ └── qiniu │ │ │ ├── form.vue │ │ │ └── index.vue │ │ └── swagger │ │ └── index.vue └── vue.config.js └── images ├── 图片1.png ├── 图片10.png ├── 图片12.png ├── 图片13.png ├── 图片14.png ├── 图片15.png ├── 图片2.png ├── 图片3.png ├── 图片4.png ├── 图片5.png ├── 图片6.png ├── 图片7.png ├── 图片8.png └── 图片9.png /ServerDeploy/home/background/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:8 2 | EXPOSE 8000 3 | VOLUME /tmp 4 | ADD *.jar /app.jar 5 | RUN bash -c 'touch /app.jar' 6 | ENTRYPOINT java -Dspring.profiles.active=prod -jar /app.jar 7 | 8 | -------------------------------------------------------------------------------- /ServerDeploy/home/background/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #先进行打包 3 | cd /var/lib/jenkins/workspace/MockExam-Server 4 | mvn clean package 5 | cd /var/lib/jenkins/workspace/MockExam-Server/eladmin-system/target 6 | IMAGE_NAME=mockexam-server 7 | #进入到打包目录,开始Docker部署 8 | docker ps -a | grep $IMAGE_NAME &> /dev/null 9 | #如果存在,关闭并删除该容器 10 | echo $IMAGE_NAME" 容器正在运行。准备删除.." 11 | docker stop $IMAGE_NAME 12 | echo $IMAGE_NAME" 容器已经停止。" 13 | docker rm $IMAGE_NAME 14 | echo $IMAGE_NAME"删除容器" 15 | docker rmi $IMAGE_NAME 16 | echo $IMAGE_NAME"删除镜像" 17 | echo $IMAGE_NAME" 容器不存在。创建并启动容器。" 18 | docker build -f /home/mockExam/background/Dockerfile -t $IMAGE_NAME . 19 | echo $IMAGE_NAME" 容器创建成功。" 20 | docker run -d -p8000:8000 --name=$IMAGE_NAME $IMAGE_NAME --network=host 21 | echo $IMAGE_NAME" 容器运行成功。" 22 | -------------------------------------------------------------------------------- /ServerDeploy/home/front/start.sh: -------------------------------------------------------------------------------- 1 | #进入到当前前台目录 2 | #!/bin/sh 3 | echo $PATH 4 | echo '当前npm node 检测无误' 5 | vue_url=/var/lib/jenkins/workspace/MockExam-Vue 6 | cd $vue_url 7 | rm -rf ./dist && rm -rf ./dist.* 8 | echo '已删除之前构建' 9 | 10 | #安装node_modules 11 | cnpm i 12 | #开始构建 13 | npm run build:prod 14 | echo '构建完成,准备放入到指定目录' 15 | 16 | cd dist 17 | tar -zcvf dist.tar.gz * 18 | cp -r $vue_url/dist/dist.tar.gz /home/mockExam/front/dist 19 | echo'已把包发送到指定服务器目录' 20 | cd /home/mockExam/front/dist && tar -zxvf dist.tar.gz 21 | echo '执行完成' 22 | -------------------------------------------------------------------------------- /ServerDeploy/home/shutdownAll.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | killall nginx 3 | docker stop mockexam-server 4 | systemctl stop jenkins 5 | xxl_pid=`ps -ef|grep xxl-job-admin-2.0.2.jar |grep -v grep|awk '{printf $2}'` 6 | kill -9 $xxl_pid 7 | 8 | redis_pid=`ps -ef | grep "redis-server" | grep -v grep | awk '{print $2}'` 9 | kill -9 $redis_pid 10 | 11 | 12 | killall fdfs_trackerd 13 | killall fdfs_storaged 14 | -------------------------------------------------------------------------------- /ServerDeploy/home/startAll.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | cd /usr/local/nginx 3 | touch nginx.pid 4 | cd /usr/local/nginx/sbin 5 | ./nginx 6 | 7 | /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart 8 | /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart 9 | 10 | cd /usr/local/middleSoftWare/redis/redis-4.0.6/src 11 | ./redis-server ../redis.conf 12 | 13 | 14 | systemctl start jenkins 15 | systemctl start docker 16 | docker start mockexam-server 17 | cd /home/mockExam/xxl-job 18 | nohup java -jar *.jar >/dev/null 2>&1 & 19 | -------------------------------------------------------------------------------- /ServerDeploy/nginx.conf: -------------------------------------------------------------------------------- 1 | 2 | server { 3 | listen 80; 4 | server_name yourServerIp; 5 | index index.html; 6 | root /home/mockExam/front/dist; #dist上传的路径 7 | 8 | location / { 9 | try_files $uri $uri/ @router; 10 | index index.html; 11 | } 12 | location @router { 13 | rewrite ^.*$ /index.html last; 14 | } 15 | 16 | location /M00{ 17 | root /home/fastdfs/storage-data/data; 18 | ngx_fastdfs_module; 19 | } 20 | #error_page 404 /404.html; 21 | 22 | # redirect server error pages to the static page /50x.html 23 | # 24 | error_page 500 502 503 504 /50x.html; 25 | location = /50x.html { 26 | root html; 27 | } 28 | } -------------------------------------------------------------------------------- /ServerDeploy/服务器部署流程.txt: -------------------------------------------------------------------------------- 1 | 本地服务器需要安装 npm cnpm node 16以上 2 | git* maven3.* 3 | java 1.8 4 | jenkins * 5 | fastdfs 6 | nginx 1.8及以上 7 | redis 4.0及以上 8 | 9 | 10 | 一、FreeStyle项目 11 | (1)选择git地址 12 | (2)添加用户凭据 13 | 14 | 15 | 二、创建构建步骤 16 | (1)选择shell 17 | (2)后台的添加脚本 18 | #! /bin/bash 19 | sh /home/mockExam/background/start.sh 20 | 21 | (2)前台的添加脚本 22 | #! /bin/bash 23 | sh /home/mockExam/front/start.sh 24 | 25 | 26 | 三、服务器 /home文件夹下创建脚本文件夹 27 | 28 | 29 | 四、按照控制台输出查看是否构建 -------------------------------------------------------------------------------- /background/.gitignore: -------------------------------------------------------------------------------- 1 | *.java.hsp 2 | *.sonarj 3 | *.sw* 4 | 5 | .DS_Store 6 | .settings 7 | .springBeans 8 | bin 9 | build.sh 10 | integration-repo 11 | ivy-cache 12 | jxl.log 13 | jmx.log 14 | derby.log 15 | spring-test/test-output/ 16 | .gradle 17 | argfile* 18 | activemq-data/ 19 | logs 20 | *.log 21 | 22 | classes/ 23 | /build 24 | buildSrc/build 25 | /spring-*/build 26 | /src/asciidoc/build 27 | target/ 28 | # Eclipse artifacts, including WTP generated manifests 29 | .classpath 30 | .project 31 | spring-*/src/main/java/META-INF/MANIFEST.MF 32 | 33 | # IDEA artifacts and output dirs 34 | *.iml 35 | *.ipr 36 | *.iws 37 | .idea/ 38 | out 39 | test-output 40 | atlassian-ide-plugin.xml 41 | .gradletasknamecache 42 | /logs 43 | -------------------------------------------------------------------------------- /background/README.en.md: -------------------------------------------------------------------------------- 1 | # mockExam 2 | 3 | #### Description 4 | 驾校模拟考试系统 5 | 6 | #### Software Architecture 7 | Software architecture description 8 | 9 | #### Installation 10 | 11 | 1. xxxx 12 | 2. xxxx 13 | 3. xxxx 14 | 15 | #### Instructions 16 | 17 | 1. xxxx 18 | 2. xxxx 19 | 3. xxxx 20 | 21 | #### Contribution 22 | 23 | 1. Fork the repository 24 | 2. Create Feat_xxx branch 25 | 3. Commit your code 26 | 4. Create Pull Request 27 | 28 | 29 | #### Gitee Feature 30 | 31 | 1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md 32 | 2. Gitee blog [blog.gitee.com](https://blog.gitee.com) 33 | 3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) 34 | 4. The most valuable open source project [GVP](https://gitee.com/gvp) 35 | 5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) 36 | 6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 37 | -------------------------------------------------------------------------------- /background/README.md: -------------------------------------------------------------------------------- 1 | # mockExam 2 | 3 | #### 介绍 4 | 驾校模拟考试系统 5 | 6 | #### 软件架构 7 | 软件架构说明 8 | 9 | 10 | #### 安装教程 11 | 12 | 1. xxxx 13 | 2. xxxx 14 | 3. xxxx 15 | 16 | #### 使用说明 17 | 18 | 1. xxxx 19 | 2. xxxx 20 | 3. xxxx 21 | 22 | #### 参与贡献 23 | 24 | 1. Fork 本仓库 25 | 2. 新建 Feat_xxx 分支 26 | 3. 提交代码 27 | 4. 新建 Pull Request 28 | 29 | 30 | #### 特技 31 | 32 | 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 33 | 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 34 | 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 35 | 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 36 | 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 37 | 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 38 | -------------------------------------------------------------------------------- /background/eladmin-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | eladmin 7 | me.zhengjie 8 | 2.6 9 | 10 | 4.0.0 11 | 12 | 5.3.4 13 | 14 | 15 | eladmin-common 16 | 17 | 18 | 19 | 20 | cn.hutool 21 | hutool-all 22 | ${hutool.version} 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /background/eladmin-common/src/main/java/me/zhengjie/annotation/AnonymousAccess.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.annotation; 17 | 18 | import java.lang.annotation.*; 19 | 20 | /** 21 | * @author jacky 22 | * 用于标记匿名访问方法 23 | */ 24 | @Inherited 25 | @Documented 26 | @Target({ElementType.METHOD,ElementType.ANNOTATION_TYPE}) 27 | @Retention(RetentionPolicy.RUNTIME) 28 | public @interface AnonymousAccess { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /background/eladmin-common/src/main/java/me/zhengjie/aspect/LimitType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.aspect; 17 | 18 | /** 19 | * 限流枚举 20 | * @author / 21 | */ 22 | public enum LimitType { 23 | // 默认 24 | CUSTOMER, 25 | // by ip addr 26 | IP 27 | } 28 | -------------------------------------------------------------------------------- /background/eladmin-common/src/main/java/me/zhengjie/base/BaseDTO.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.base; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.apache.commons.lang3.builder.ToStringBuilder; 6 | import java.io.Serializable; 7 | import java.lang.reflect.Field; 8 | import java.sql.Timestamp; 9 | 10 | /** 11 | * @author Zheng Jie 12 | * @date 2019年10月24日20:48:53 13 | */ 14 | @Getter 15 | @Setter 16 | public class BaseDTO implements Serializable { 17 | 18 | private String createBy; 19 | 20 | private String updatedBy; 21 | 22 | private Timestamp createTime; 23 | 24 | private Timestamp updateTime; 25 | 26 | @Override 27 | public String toString() { 28 | ToStringBuilder builder = new ToStringBuilder(this); 29 | Field[] fields = this.getClass().getDeclaredFields(); 30 | try { 31 | for (Field f : fields) { 32 | f.setAccessible(true); 33 | builder.append(f.getName(), f.get(this)).append("\n"); 34 | } 35 | } catch (Exception e) { 36 | builder.append("toString builder encounter an error"); 37 | } 38 | return builder.toString(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /background/eladmin-common/src/main/java/me/zhengjie/config/RsaProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.config; 17 | 18 | import lombok.Data; 19 | import org.springframework.beans.factory.annotation.Value; 20 | import org.springframework.stereotype.Component; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @website https://el-admin.vip 25 | * @description 26 | * @date 2020-05-18 27 | **/ 28 | @Data 29 | @Component 30 | public class RsaProperties { 31 | 32 | public static String privateKey; 33 | 34 | @Value("${rsa.private_key}") 35 | public void setPrivateKey(String privateKey) { 36 | RsaProperties.privateKey = privateKey; 37 | } 38 | } -------------------------------------------------------------------------------- /background/eladmin-common/src/main/java/me/zhengjie/utils/ThrowableUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.utils; 17 | 18 | import java.io.PrintWriter; 19 | import java.io.StringWriter; 20 | 21 | /** 22 | * 异常工具 2019-01-06 23 | * @author Zheng Jie 24 | */ 25 | public class ThrowableUtil { 26 | 27 | /** 28 | * 获取堆栈信息 29 | */ 30 | public static String getStackTrace(Throwable throwable){ 31 | StringWriter sw = new StringWriter(); 32 | try (PrintWriter pw = new PrintWriter(sw)) { 33 | throwable.printStackTrace(pw); 34 | return sw.toString(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /background/eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.ColumnInfo; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import java.util.List; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-01-14 25 | */ 26 | public interface ColumnInfoRepository extends JpaRepository { 27 | 28 | /** 29 | * 查询表信息 30 | * @param tableName 表格名 31 | * @return 表信息 32 | */ 33 | List findByTableNameOrderByIdAsc(String tableName); 34 | } 35 | -------------------------------------------------------------------------------- /background/eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.GenConfig; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2019-01-14 24 | */ 25 | public interface GenConfigRepository extends JpaRepository { 26 | 27 | /** 28 | * 查询表配置 29 | * @param tableName 表名 30 | * @return / 31 | */ 32 | GenConfig findByTableName(String tableName); 33 | } 34 | -------------------------------------------------------------------------------- /background/eladmin-generator/src/main/java/me/zhengjie/service/GenConfigService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service; 17 | 18 | import me.zhengjie.domain.GenConfig; 19 | 20 | /** 21 | * @author Zheng Jie 22 | * @date 2019-01-14 23 | */ 24 | public interface GenConfigService { 25 | 26 | /** 27 | * 查询表配置 28 | * @param tableName 表名 29 | * @return 表配置 30 | */ 31 | GenConfig find(String tableName); 32 | 33 | /** 34 | * 更新表配置 35 | * @param tableName 表名 36 | * @param genConfig 表配置 37 | * @return 表配置 38 | */ 39 | GenConfig update(String tableName, GenConfig genConfig); 40 | } 41 | -------------------------------------------------------------------------------- /background/eladmin-logging/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | eladmin 7 | me.zhengjie 8 | 2.6 9 | 10 | 4.0.0 11 | 12 | eladmin-logging 13 | 14 | 15 | 16 | me.zhengjie 17 | eladmin-common 18 | 2.6 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /background/eladmin-logging/src/main/java/me/zhengjie/annotation/Log.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.annotation; 17 | 18 | import java.lang.annotation.ElementType; 19 | import java.lang.annotation.Retention; 20 | import java.lang.annotation.RetentionPolicy; 21 | import java.lang.annotation.Target; 22 | 23 | /** 24 | * @author Zheng Jie 25 | * @date 2018-11-24 26 | */ 27 | @Target(ElementType.METHOD) 28 | @Retention(RetentionPolicy.RUNTIME) 29 | public @interface Log { 30 | String value() default ""; 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * 日志查询类 25 | * @author Zheng Jie 26 | * @date 2019-6-4 09:23:07 27 | */ 28 | @Data 29 | public class LogQueryCriteria { 30 | 31 | @Query(blurry = "username,description,address,requestIp,method,params") 32 | private String blurry; 33 | 34 | @Query 35 | private String logType; 36 | 37 | @Query(type = Query.Type.BETWEEN) 38 | private List createTime; 39 | } 40 | -------------------------------------------------------------------------------- /background/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogSmallDTO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Data; 19 | import java.io.Serializable; 20 | import java.sql.Timestamp; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-5-22 25 | */ 26 | @Data 27 | public class LogSmallDTO implements Serializable { 28 | 29 | private String description; 30 | 31 | private String requestIp; 32 | 33 | private Long time; 34 | 35 | private String address; 36 | 37 | private String browser; 38 | 39 | private Timestamp createTime; 40 | } 41 | -------------------------------------------------------------------------------- /background/eladmin-logging/src/main/java/me/zhengjie/service/mapstruct/LogErrorMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.domain.Log; 20 | import me.zhengjie.service.dto.LogErrorDTO; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-5-22 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface LogErrorMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-logging/src/main/java/me/zhengjie/service/mapstruct/LogSmallMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.domain.Log; 20 | import me.zhengjie.service.dto.LogSmallDTO; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-5-22 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface LogSmallMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:8 2 | EXPOSE 8000 3 | ENV TZ=PRC 4 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 5 | ENV LANG C.UTF-8 6 | VOLUME /tmp 7 | ADD ../../../../*.jar /app.jar 8 | RUN bash -c 'touch /app.jar' 9 | #ENV JVM_OPTIONS=" -Xms900m -Xmx900m -Xmn400m -server -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow " 10 | #ENTRYPOINT java ${JVM_OPTIONS} -Dspring.profiles.active=prod -jar /app.jar 11 | ENTRYPOINT java -Dspring.profiles.active=prod -jar /app.jar 12 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/config/WebSocketConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.config; 17 | 18 | import org.springframework.context.annotation.Bean; 19 | import org.springframework.context.annotation.Configuration; 20 | import org.springframework.web.socket.server.standard.ServerEndpointExporter; 21 | 22 | /** 23 | * @author ZhangHouYing 24 | * @date 2019-08-24 15:44 25 | */ 26 | @Configuration 27 | public class WebSocketConfig { 28 | 29 | @Bean 30 | public ServerEndpointExporter serverEndpointExporter() { 31 | return new ServerEndpointExporter(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/AppRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.repository; 17 | 18 | import me.zhengjie.modules.mnt.domain.App; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author zhanghouying 24 | * @date 2019-08-24 25 | */ 26 | public interface AppRepository extends JpaRepository, JpaSpecificationExecutor { 27 | } 28 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/DatabaseRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.repository; 17 | 18 | import me.zhengjie.modules.mnt.domain.Database; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author zhanghouying 24 | * @date 2019-08-24 25 | */ 26 | public interface DatabaseRepository extends JpaRepository, JpaSpecificationExecutor { 27 | } 28 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/DeployHistoryRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.repository; 17 | 18 | import me.zhengjie.modules.mnt.domain.DeployHistory; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author zhanghouying 24 | * @date 2019-08-24 25 | */ 26 | public interface DeployHistoryRepository extends JpaRepository, JpaSpecificationExecutor { 27 | } 28 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/DeployRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.repository; 17 | 18 | import me.zhengjie.modules.mnt.domain.Deploy; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author zhanghouying 24 | * @date 2019-08-24 25 | */ 26 | public interface DeployRepository extends JpaRepository, JpaSpecificationExecutor { 27 | } 28 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/AppQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * @author zhanghouying 25 | * @date 2019-08-24 26 | */ 27 | @Data 28 | public class AppQueryCriteria{ 29 | 30 | /** 31 | * 模糊 32 | */ 33 | @Query(type = Query.Type.INNER_LIKE) 34 | private String name; 35 | 36 | @Query(type = Query.Type.BETWEEN) 37 | private List createTime; 38 | } 39 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/DeployHistoryQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * @author zhanghouying 25 | * @date 2019-08-24 26 | */ 27 | @Data 28 | public class DeployHistoryQueryCriteria{ 29 | 30 | /** 31 | * 精确 32 | */ 33 | @Query(blurry = "appName,ip,deployUser") 34 | private String blurry; 35 | 36 | @Query 37 | private Long deployId; 38 | 39 | @Query(type = Query.Type.BETWEEN) 40 | private List deployDate; 41 | } 42 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/DeployQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * @author zhanghouying 25 | * @date 2019-08-24 26 | */ 27 | @Data 28 | public class DeployQueryCriteria{ 29 | 30 | /** 31 | * 模糊 32 | */ 33 | @Query(type = Query.Type.INNER_LIKE, propName = "name", joinName = "app") 34 | private String appName; 35 | 36 | @Query(type = Query.Type.BETWEEN) 37 | private List createTime; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/ServerDeployQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * @author zhanghouying 25 | * @date 2019-08-24 26 | */ 27 | @Data 28 | public class ServerDeployQueryCriteria{ 29 | 30 | /** 31 | * 模糊 32 | */ 33 | @Query(blurry = "name,ip,account") 34 | private String blurry; 35 | 36 | @Query(type = Query.Type.BETWEEN) 37 | private List createTime; 38 | } 39 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/mapstruct/AppMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.mnt.domain.App; 20 | import me.zhengjie.modules.mnt.service.dto.AppDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author zhanghouying 26 | * @date 2019-08-24 27 | */ 28 | @Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface AppMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/mapstruct/DatabaseMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.mnt.domain.Database; 20 | import me.zhengjie.modules.mnt.service.dto.DatabaseDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author zhanghouying 26 | * @date 2019-08-24 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DatabaseMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/mapstruct/DeployHistoryMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.mnt.domain.DeployHistory; 20 | import me.zhengjie.modules.mnt.service.dto.DeployHistoryDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author zhanghouying 26 | * @date 2019-08-24 27 | */ 28 | @Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DeployHistoryMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/mapstruct/DeployMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.mnt.domain.Deploy; 20 | import me.zhengjie.modules.mnt.service.dto.DeployDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author zhanghouying 26 | * @date 2019-08-24 27 | */ 28 | @Mapper(componentModel = "spring",uses = {AppMapper.class, ServerDeployMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DeployMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/mapstruct/ServerDeployMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.mnt.domain.ServerDeploy; 20 | import me.zhengjie.modules.mnt.service.dto.ServerDeployDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author zhanghouying 26 | * @date 2019-08-24 27 | */ 28 | @Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface ServerDeployMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/websocket/MsgType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.websocket; 17 | 18 | /** 19 | * @author ZhangHouYing 20 | * @date 2019-08-10 9:56 21 | */ 22 | public enum MsgType { 23 | /** 连接 */ 24 | CONNECT, 25 | /** 关闭 */ 26 | CLOSE, 27 | /** 信息 */ 28 | INFO, 29 | /** 错误 */ 30 | ERROR 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mnt/websocket/SocketMsg.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.mnt.websocket; 17 | 18 | import lombok.Data; 19 | 20 | /** 21 | * @author ZhangHouYing 22 | * @date 2019-08-10 9:55 23 | */ 24 | @Data 25 | public class SocketMsg { 26 | private String msg; 27 | private MsgType msgType; 28 | 29 | public SocketMsg(String msg, MsgType msgType) { 30 | this.msg = msg; 31 | this.msgType = msgType; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/constant/ErrorCodeConstant.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * https://www.leimingtech.com 5 | * 6 | * 版权所有,侵权必究! 7 | */ 8 | 9 | package me.zhengjie.modules.mockexam.constant; 10 | 11 | 12 | /** 13 | * 错误编码 14 | * 15 | * 16 | * @return: 17 | * @Author: Mingxuan_X 18 | * @Date: 2021/4/11 19 | */ 20 | public interface ErrorCodeConstant { 21 | int SUCCESS = 200; 22 | int INTERNAL_SERVER_ERROR = 500; 23 | int UNAUTHORIZED = 401; 24 | int FORBIDDEN = 403; 25 | 26 | int NOT_NULL = 10001; 27 | int DB_RECORD_EXISTS = 10002; 28 | int PARAMS_GET_ERROR = 10003; 29 | int ACCOUNT_PASSWORD_ERROR = 10004; 30 | int ACCOUNT_DISABLE = 10005; 31 | int IDENTIFIER_NOT_NULL = 10006; 32 | int CAPTCHA_ERROR = 10007; 33 | int SUB_MENU_EXIST = 10008; 34 | int PASSWORD_ERROR = 10009; 35 | int ACCOUNT_NOT_EXIST = 10010; 36 | int SUPERIOR_DEPT_ERROR = 10011; 37 | int SUPERIOR_MENU_ERROR = 10012; 38 | int DATA_SCOPE_PARAMS_ERROR = 10013; 39 | int DEPT_SUB_DELETE_ERROR = 10014; 40 | int DEPT_USER_DELETE_ERROR = 10015; 41 | int JSON_FORMAT_ERROR = 10016; 42 | int METHOD_EXCUTEING = 10017; 43 | int IS_TRUE = 10017; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/constant/RedisConstant.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.constant; 2 | 3 | /** 4 | * @author : Mingxuan_x 5 | * @version : 1.0 6 | * @Description: 7 | * @Telephone : 15135964789 8 | * @createDate : 2021/4/15 12:01 9 | * @updateUser : Mingxuan_x 10 | * @updateDate : 2021/4/15 12:01 11 | * @updateRemark : 修改内容 12 | **/ 13 | public class RedisConstant { 14 | 15 | public static final String USER_BEHAVIOR_KEY="user_behavior_key_"; 16 | } 17 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/job/CalUserBehaviorJobHandler.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.job; 2 | 3 | import com.xxl.job.core.biz.model.ReturnT; 4 | import com.xxl.job.core.handler.IJobHandler; 5 | import com.xxl.job.core.handler.annotation.JobHandler; 6 | import lombok.extern.slf4j.Slf4j; 7 | import me.zhengjie.modules.mockexam.service.MeUserBehaviorService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Component; 10 | 11 | /** 12 | * @author : Mingxuan_x 13 | * @version : 1.0 14 | * @Description: 定时获取错题集数据,收集用户最近错的题,推荐他一部分这样的题,并把推荐的结果放入到redis 15 | * cron: 16 | * @Telephone : 15135964789 17 | * @createDate : 2021/4/15 11:36 18 | * @updateUser : Mingxuan_x 19 | * @updateDate : 2021/4/15 11:36 20 | * @updateRemark : 修改内容 21 | **/ 22 | @JobHandler(value = "CalUserBehaviorJobHandler") 23 | @Component 24 | @Slf4j 25 | public class CalUserBehaviorJobHandler extends IJobHandler { 26 | 27 | @Autowired 28 | private MeUserBehaviorService meUserBehaviorService; 29 | 30 | @Override 31 | public ReturnT execute(String param) { 32 | meUserBehaviorService.calculateUserWrongQuestion(); 33 | return ReturnT.SUCCESS; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/job/QuestionPicJobInitHanlder.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.job; 2 | 3 | import com.xxl.job.core.biz.model.ReturnT; 4 | import com.xxl.job.core.handler.IJobHandler; 5 | import com.xxl.job.core.handler.annotation.JobHandler; 6 | import lombok.extern.slf4j.Slf4j; 7 | import me.zhengjie.modules.mockexam.service.CrawlingService; 8 | import me.zhengjie.modules.mockexam.service.MeUserBehaviorService; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Component; 11 | 12 | /** 13 | * @author : Mingxuan_x 14 | * @version : 1.0 15 | * @Description: 初始化驾考题图片(Init) 16 | * @Telephone : 15135964789 17 | * @createDate : 2021/4/15 12:16 18 | * @updateUser : Mingxuan_x 19 | * @updateDate : 2021/4/15 12:16 20 | * @updateRemark : 修改内容 21 | **/ 22 | @JobHandler(value = "QuestionPicJobInitHanlder") 23 | @Component 24 | @Slf4j 25 | public class QuestionPicJobInitHanlder extends IJobHandler { 26 | 27 | 28 | @Autowired 29 | private CrawlingService crawlingService; 30 | 31 | @Override 32 | public ReturnT execute(String param) { 33 | crawlingService.pic2Local(); 34 | return ReturnT.SUCCESS; 35 | } 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/job/ThirdPartyDataJobHandler.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.job; 2 | 3 | import com.xxl.job.core.biz.model.ReturnT; 4 | import com.xxl.job.core.handler.IJobHandler; 5 | import com.xxl.job.core.handler.annotation.JobHandler; 6 | import lombok.extern.slf4j.Slf4j; 7 | import me.zhengjie.modules.mockexam.service.CrawlingService; 8 | import me.zhengjie.modules.mockexam.service.MeUserBehaviorService; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Component; 11 | 12 | /** 13 | * @author : Mingxuan_x 14 | * @version : 1.0 15 | * @Description: 定时获取第三方平台数据 16 | * @Telephone : 15135964789 17 | * @createDate : 2021/4/15 12:14 18 | * @updateUser : Mingxuan_x 19 | * @updateDate : 2021/4/15 12:14 20 | * @updateRemark : 修改内容 21 | **/ 22 | @JobHandler(value = "ThirdPartyDataJobHandler") 23 | @Component 24 | @Slf4j 25 | public class ThirdPartyDataJobHandler extends IJobHandler { 26 | 27 | @Autowired 28 | private CrawlingService crawlingService; 29 | @Override 30 | public ReturnT execute(String param) throws Exception { 31 | crawlingService.getTimingThirdPartyData(); 32 | return ReturnT.SUCCESS; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/mapper/MeFavoritesMapper.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import me.zhengjie.modules.mockexam.pojo.MeFavorites; 6 | import me.zhengjie.modules.mockexam.pojo.MeQuestion; 7 | import org.apache.ibatis.annotations.Param; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | /** 13 | *

14 | * 试题收藏表 Mapper 接口 15 | *

16 | * 17 | * @author Ming 18 | * @since 2021-04-12 19 | */ 20 | public interface MeFavoritesMapper extends BaseMapper { 21 | 22 | /** 23 | * 分页查询用户收藏试题 24 | * 25 | * @return: 26 | * @Author: Mingxuan_X 27 | * @Date: 2021/4/12 28 | */ 29 | List selectByPage(IPage page, @Param("map") Map map); 30 | 31 | 32 | /** 33 | * 获取收藏试题总数 34 | * 35 | * 36 | * @return: 37 | * @Author: Mingxuan_X 38 | * @Date: 2021/4/17 39 | */ 40 | Integer selectQuestionCount(@Param("map") Map map); 41 | } 42 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/mapper/MeUserBehaviorMapper.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.mapper; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import me.zhengjie.modules.mockexam.pojo.MeUserBehavior; 6 | 7 | /** 8 | *

9 | * 用户行为分析表 Mapper 接口 10 | *

11 | * 12 | * @author Ming 13 | * @since 2021-04-13 14 | */ 15 | public interface MeUserBehaviorMapper extends BaseMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/mapper/MeWrongQuestionMapper.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie.modules.mockexam.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import me.zhengjie.modules.mockexam.pojo.MeWrongQuestion; 6 | import org.apache.ibatis.annotations.Param; 7 | import java.util.Map; 8 | 9 | /** 10 | *

11 | * 用户错题表 Mapper 接口 12 | *

13 | * 14 | * @author Ming 15 | * @since 2021-04-12 16 | */ 17 | public interface MeWrongQuestionMapper extends BaseMapper { 18 | 19 | /** 20 | * 分页查询当前错题集 21 | * 22 | * 23 | * @return: 24 | * @Author: Mingxuan_X 25 | * @Date: 2021/4/12 26 | */ 27 | String selectByPage( @Param("map") Map map); 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/pojo/page/PageData.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * https://www.leimingtech.com 5 | * 6 | * 版权所有,侵权必究! 7 | */ 8 | 9 | package me.zhengjie.modules.mockexam.pojo.page; 10 | 11 | import io.swagger.annotations.ApiModel; 12 | import io.swagger.annotations.ApiModelProperty; 13 | import lombok.Data; 14 | import java.io.Serializable; 15 | import java.util.List; 16 | 17 | /** 18 | * 分页工具类 19 | * 20 | * @author Mingxuan_x 21 | * @since 1.0.0 22 | */ 23 | @Data 24 | @ApiModel(description = "PageData") 25 | public class PageData implements Serializable { 26 | private static final long serialVersionUID = 1L; 27 | 28 | @ApiModelProperty(value = "总记录数") 29 | private int total; 30 | 31 | @ApiModelProperty(value = "列表数据") 32 | private List list; 33 | 34 | /** 35 | * 调用feignClient 的分页方法,必须有无参构造 36 | */ 37 | public PageData() { 38 | } 39 | 40 | /** 41 | * 分页 42 | * 43 | * @param list 列表数据 44 | * @param total 总记录数 45 | */ 46 | public PageData(List list, long total) { 47 | this.list = list; 48 | this.total = (int) total; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/mockexam/utils/MessageUtils.java: -------------------------------------------------------------------------------- 1 | /** 2 | * https://www.leimingtech.com 3 | *

4 | * 版权所有,侵权必究! 5 | */ 6 | 7 | package me.zhengjie.modules.mockexam.utils; 8 | 9 | import org.springframework.context.MessageSource; 10 | import org.springframework.context.i18n.LocaleContextHolder; 11 | 12 | 13 | /** 14 | * 国际化 15 | * 16 | * 17 | * @return: 18 | * @Author: Mingxuan_X 19 | * @Date: 2021/4/11 20 | */ 21 | public class MessageUtils { 22 | private MessageUtils() { 23 | } 24 | 25 | private static MessageSource messageSource; 26 | 27 | static { 28 | messageSource = (MessageSource) SpringContextUtils.getBean("messageSource"); 29 | } 30 | 31 | public static String getMessage(int code) { 32 | return getMessage(code, new String[0]); 33 | } 34 | 35 | public static String getMessage(int code, String... params) { 36 | return messageSource.getMessage(code + "", params, LocaleContextHolder.getLocale()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/quartz/repository/QuartzLogRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.quartz.repository; 17 | 18 | import me.zhengjie.modules.quartz.domain.QuartzLog; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-01-07 25 | */ 26 | public interface QuartzLogRepository extends JpaRepository, JpaSpecificationExecutor { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/dto/JobQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.quartz.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * @author Zheng Jie 25 | * @date 2019-6-4 10:33:02 26 | */ 27 | @Data 28 | public class JobQueryCriteria { 29 | 30 | @Query(type = Query.Type.INNER_LIKE) 31 | private String jobName; 32 | 33 | @Query 34 | private Boolean isSuccess; 35 | 36 | @Query(type = Query.Type.BETWEEN) 37 | private List createTime; 38 | } 39 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/TestTask.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.quartz.task; 17 | 18 | import lombok.extern.slf4j.Slf4j; 19 | import org.springframework.stereotype.Component; 20 | 21 | /** 22 | * 测试用 23 | * @author Zheng Jie 24 | * @date 2019-01-08 25 | */ 26 | @Slf4j 27 | @Component 28 | public class TestTask { 29 | 30 | public void run(){ 31 | log.info("run 执行成功"); 32 | } 33 | 34 | public void run1(String str){ 35 | log.info("run1 执行成功,参数为: {}" + str); 36 | } 37 | 38 | public void run2(){ 39 | log.info("run2 执行成功"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginCodeEnum.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.security.config.bean; 17 | 18 | /** 19 | * 验证码配置枚举 20 | * 21 | * @author: liaojinlong 22 | * @date: 2020/6/10 17:40 23 | */ 24 | 25 | public enum LoginCodeEnum { 26 | /** 27 | * 算数 28 | */ 29 | arithmetic, 30 | /** 31 | * 中文 32 | */ 33 | chinese, 34 | /** 35 | * 中文闪图 36 | */ 37 | chinese_gif, 38 | /** 39 | * 闪图 40 | */ 41 | gif, 42 | spec 43 | } 44 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto/AuthUserDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.security.service.dto; 17 | 18 | import lombok.Getter; 19 | import lombok.Setter; 20 | import javax.validation.constraints.NotBlank; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2018-11-30 25 | */ 26 | @Getter 27 | @Setter 28 | public class AuthUserDto { 29 | 30 | @NotBlank 31 | private String username; 32 | 33 | @NotBlank 34 | private String password; 35 | 36 | private String code; 37 | 38 | private String uuid = ""; 39 | } 40 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/MenuMetaVo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.domain.vo; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import java.io.Serializable; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2018-12-20 25 | */ 26 | @Data 27 | @AllArgsConstructor 28 | public class MenuMetaVo implements Serializable { 29 | 30 | private String title; 31 | 32 | private String icon; 33 | 34 | private Boolean noCache; 35 | } 36 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/UserPassVo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.domain.vo; 17 | 18 | import lombok.Data; 19 | 20 | /** 21 | * 修改密码的 Vo 类 22 | * @author Zheng Jie 23 | * @date 2019年7月11日13:59:49 24 | */ 25 | @Data 26 | public class UserPassVo { 27 | 28 | private String oldPass; 29 | 30 | private String newPass; 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DataService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service; 17 | 18 | import me.zhengjie.modules.system.service.dto.UserDto; 19 | import java.util.List; 20 | 21 | /** 22 | * 数据权限服务类 23 | * @author Zheng Jie 24 | * @date 2020-05-07 25 | */ 26 | public interface DataService { 27 | 28 | /** 29 | * 获取数据权限 30 | * @param user / 31 | * @return / 32 | */ 33 | List getDeptIds(UserDto user); 34 | } 35 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MonitorService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service; 17 | 18 | import java.util.Map; 19 | 20 | /** 21 | * @author Zheng Jie 22 | * @date 2020-05-02 23 | */ 24 | public interface MonitorService { 25 | 26 | /** 27 | * 查询数据分页 28 | * @return Map 29 | */ 30 | Map getServers(); 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/VerifyService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service; 17 | 18 | import me.zhengjie.domain.vo.EmailVo; 19 | 20 | /** 21 | * @author Zheng Jie 22 | * @date 2018-12-26 23 | */ 24 | public interface VerifyService { 25 | 26 | /** 27 | * 发送验证码 28 | * @param email / 29 | * @param key / 30 | * @return / 31 | */ 32 | EmailVo sendEmail(String email, String key); 33 | 34 | 35 | /** 36 | * 验证 37 | * @param code / 38 | * @param key / 39 | */ 40 | void validated(String key, String code); 41 | } 42 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DeptSmallDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import java.io.Serializable; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2019-6-10 16:32:18 24 | */ 25 | @Data 26 | public class DeptSmallDto implements Serializable { 27 | 28 | private Long id; 29 | 30 | private String name; 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDetailDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Getter; 19 | import lombok.Setter; 20 | import me.zhengjie.base.BaseDTO; 21 | import java.io.Serializable; 22 | 23 | /** 24 | * @author Zheng Jie 25 | * @date 2019-04-10 26 | */ 27 | @Getter 28 | @Setter 29 | public class DictDetailDto extends BaseDTO implements Serializable { 30 | 31 | private Long id; 32 | 33 | private DictSmallDto dict; 34 | 35 | private String label; 36 | 37 | private String value; 38 | 39 | private Integer dictSort; 40 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDetailQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2019-04-10 24 | */ 25 | @Data 26 | public class DictDetailQueryCriteria { 27 | 28 | @Query(type = Query.Type.INNER_LIKE) 29 | private String label; 30 | 31 | @Query(propName = "name",joinName = "dict") 32 | private String dictName; 33 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Getter; 19 | import lombok.Setter; 20 | import me.zhengjie.base.BaseDTO; 21 | import java.io.Serializable; 22 | import java.util.List; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-04-10 27 | */ 28 | @Getter 29 | @Setter 30 | public class DictDto extends BaseDTO implements Serializable { 31 | 32 | private Long id; 33 | 34 | private List dictDetails; 35 | 36 | private String name; 37 | 38 | private String description; 39 | } 40 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * 公共查询类 24 | */ 25 | @Data 26 | public class DictQueryCriteria { 27 | 28 | @Query(blurry = "name,description") 29 | private String blurry; 30 | } 31 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictSmallDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Getter; 19 | import lombok.Setter; 20 | import java.io.Serializable; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-04-10 25 | */ 26 | @Getter 27 | @Setter 28 | public class DictSmallDto implements Serializable { 29 | 30 | private Long id; 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobSmallDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | import java.io.Serializable; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-6-10 16:32:18 25 | */ 26 | @Data 27 | @NoArgsConstructor 28 | public class JobSmallDto implements Serializable { 29 | 30 | private Long id; 31 | 32 | private String name; 33 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | 21 | import java.sql.Timestamp; 22 | import java.util.List; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * 公共查询类 27 | */ 28 | @Data 29 | public class RoleQueryCriteria { 30 | 31 | @Query(blurry = "name,description") 32 | private String blurry; 33 | 34 | @Query(type = Query.Type.BETWEEN) 35 | private List createTime; 36 | } 37 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleSmallDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.dto; 17 | 18 | import lombok.Data; 19 | import java.io.Serializable; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2018-11-23 24 | */ 25 | @Data 26 | public class RoleSmallDto implements Serializable { 27 | 28 | private Long id; 29 | 30 | private String name; 31 | 32 | private Integer level; 33 | 34 | private String dataScope; 35 | } 36 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/DeptMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Dept; 20 | import me.zhengjie.modules.system.service.dto.DeptDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-03-25 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DeptMapper extends BaseMapper { 30 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/DeptSmallMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Dept; 20 | import me.zhengjie.modules.system.service.dto.DeptSmallDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-03-25 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DeptSmallMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/DictDetailMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.DictDetail; 20 | import me.zhengjie.modules.system.service.dto.DictDetailDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-04-10 27 | */ 28 | @Mapper(componentModel = "spring", uses = {DictSmallMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DictDetailMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/DictMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Dict; 20 | import me.zhengjie.modules.system.service.dto.DictDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-04-10 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DictMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/DictSmallMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Dict; 20 | import me.zhengjie.modules.system.service.dto.DictSmallDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-04-10 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface DictSmallMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/JobMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Job; 20 | import me.zhengjie.modules.system.service.dto.JobDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-03-29 27 | */ 28 | @Mapper(componentModel = "spring",uses = {DeptMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface JobMapper extends BaseMapper { 30 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/JobSmallMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Job; 20 | import me.zhengjie.modules.system.service.dto.JobSmallDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-03-29 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface JobSmallMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/MenuMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Menu; 20 | import me.zhengjie.modules.system.service.dto.MenuDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2018-12-17 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface MenuMapper extends BaseMapper { 30 | } 31 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/RoleMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Role; 20 | import me.zhengjie.modules.system.service.dto.RoleDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2018-11-23 27 | */ 28 | @Mapper(componentModel = "spring", uses = {MenuMapper.class, DeptMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface RoleMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/RoleSmallMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.Role; 20 | import me.zhengjie.modules.system.service.dto.RoleSmallDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-5-23 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface RoleSmallMapper extends BaseMapper { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct/UserMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.modules.system.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.modules.system.domain.User; 20 | import me.zhengjie.modules.system.service.dto.UserDto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2018-11-23 27 | */ 28 | @Mapper(componentModel = "spring",uses = {RoleMapper.class, DeptMapper.class, JobMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface UserMapper extends BaseMapper { 30 | } 31 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/generator.properties: -------------------------------------------------------------------------------- 1 | #数据库类型转Java类型 2 | tinyint=Integer 3 | smallint=Integer 4 | mediumint=Integer 5 | int=Integer 6 | integer=Integer 7 | 8 | bigint=Long 9 | 10 | float=Float 11 | 12 | double=Double 13 | 14 | decimal=BigDecimal 15 | 16 | bit=Boolean 17 | 18 | char=String 19 | varchar=String 20 | tinytext=String 21 | text=String 22 | mediumtext=String 23 | longtext=String 24 | 25 | date=Timestamp 26 | datetime=Timestamp 27 | timestamp=Timestamp -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/ip2region/ip2region.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/background/eladmin-system/src/main/resources/ip2region/ip2region.db -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/log4jdbc.log4j2.properties: -------------------------------------------------------------------------------- 1 | # If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger 2 | log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator 3 | log4jdbc.auto.load.popular.drivers=false 4 | log4jdbc.drivers=com.mysql.cj.jdbc.Driver -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/mapper/MeWrongQuestionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/template/generator/admin/Mapper.ftl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package ${package}.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import ${package}.domain.${className}; 20 | import ${package}.service.dto.${className}Dto; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @website https://el-admin.vip 26 | * @author ${author} 27 | * @date ${date} 28 | **/ 29 | @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) 30 | public interface ${className}Mapper extends BaseMapper<${className}Dto, ${className}> { 31 | 32 | } -------------------------------------------------------------------------------- /background/eladmin-system/src/main/resources/template/generator/front/api.ftl: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/${changeClassName}', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/${changeClassName}/', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/${changeClassName}', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /background/eladmin-system/src/test/java/me/zhengjie/test.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie; 2 | 3 | 4 | import me.zhengjie.modules.mockexam.service.CrawlingService; 5 | import org.junit.Test; 6 | import org.junit.runner.RunWith; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.boot.test.context.SpringBootTest; 9 | import org.springframework.test.context.junit4.SpringRunner; 10 | 11 | 12 | @RunWith(SpringRunner.class) 13 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 14 | public class test { 15 | 16 | @Autowired 17 | private CrawlingService crawlingService; 18 | 19 | @Test 20 | public void contextLoads() { 21 | crawlingService.pic2Local(); 22 | } 23 | 24 | 25 | 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /background/eladmin-system/src/test/java/me/zhengjie/testUtil.java: -------------------------------------------------------------------------------- 1 | package me.zhengjie; 2 | 3 | import cn.hutool.core.bean.BeanUtil; 4 | 5 | import java.util.ArrayList; 6 | import java.util.Collections; 7 | import java.util.HashMap; 8 | import java.util.List; 9 | import java.util.Map; 10 | 11 | /** 12 | * @author : Mingxuan_x 13 | * @version : 1.0 14 | * @Description: 15 | * @Telephone : 15135964789 16 | * @createDate : 2021/4/11 11:55 17 | * @updateUser : Mingxuan_x 18 | * @updateDate : 2021/4/11 11:55 19 | * @updateRemark : 修改内容 20 | **/ 21 | public class testUtil { 22 | public static void main(String[] args) { 23 | ArrayList list = new ArrayList(); 24 | for(int i=0;i<90000;i++) 25 | { 26 | list.add(1L); 27 | list.add(2L); 28 | list.add(3L); 29 | list.add(4L); 30 | list.add(5L); 31 | } 32 | 33 | Collections.shuffle(list); 34 | System.out.println(list.toString()); 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/repository/AliPayRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.AlipayConfig; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2018-12-31 24 | */ 25 | public interface AliPayRepository extends JpaRepository { 26 | } 27 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/repository/EmailRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.EmailConfig; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | 21 | /** 22 | * @author Zheng Jie 23 | * @date 2018-12-26 24 | */ 25 | public interface EmailRepository extends JpaRepository { 26 | } 27 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/repository/LocalStorageRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.LocalStorage; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2019-09-05 25 | */ 26 | public interface LocalStorageRepository extends JpaRepository, JpaSpecificationExecutor { 27 | } -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/repository/QiniuContentRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.repository; 17 | 18 | import me.zhengjie.domain.QiniuContent; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 21 | 22 | /** 23 | * @author Zheng Jie 24 | * @date 2018-12-31 25 | */ 26 | public interface QiniuContentRepository extends JpaRepository, JpaSpecificationExecutor { 27 | 28 | /** 29 | * 根据key查询 30 | * @param key 文件名 31 | * @return QiniuContent 32 | */ 33 | QiniuContent findByKey(String key); 34 | } 35 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/service/dto/LocalStorageDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Getter; 19 | import lombok.Setter; 20 | import me.zhengjie.base.BaseDTO; 21 | import java.io.Serializable; 22 | 23 | /** 24 | * @author Zheng Jie 25 | * @date 2019-09-05 26 | */ 27 | @Getter 28 | @Setter 29 | public class LocalStorageDto extends BaseDTO implements Serializable { 30 | 31 | private Long id; 32 | 33 | private String realName; 34 | 35 | private String name; 36 | 37 | private String suffix; 38 | 39 | private String type; 40 | 41 | private String size; 42 | } -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/service/dto/LocalStorageQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Data; 19 | import java.sql.Timestamp; 20 | import java.util.List; 21 | 22 | import me.zhengjie.annotation.Query; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-09-05 27 | */ 28 | @Data 29 | public class LocalStorageQueryCriteria{ 30 | 31 | @Query(blurry = "name,suffix,type,createBy,size") 32 | private String blurry; 33 | 34 | @Query(type = Query.Type.BETWEEN) 35 | private List createTime; 36 | } -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/service/dto/PictureQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | import java.sql.Timestamp; 21 | import java.util.List; 22 | 23 | /** 24 | * sm.ms图床 25 | * 26 | * @author Zheng Jie 27 | * @date 2019-6-4 09:52:09 28 | */ 29 | @Data 30 | public class PictureQueryCriteria{ 31 | 32 | @Query(type = Query.Type.INNER_LIKE) 33 | private String filename; 34 | 35 | @Query(type = Query.Type.INNER_LIKE) 36 | private String username; 37 | 38 | @Query(type = Query.Type.BETWEEN) 39 | private List createTime; 40 | } 41 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/service/dto/QiniuQueryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.dto; 17 | 18 | import lombok.Data; 19 | import me.zhengjie.annotation.Query; 20 | 21 | import java.sql.Timestamp; 22 | import java.util.List; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-6-4 09:54:37 27 | */ 28 | @Data 29 | public class QiniuQueryCriteria{ 30 | 31 | @Query(type = Query.Type.INNER_LIKE) 32 | private String key; 33 | 34 | @Query(type = Query.Type.BETWEEN) 35 | private List createTime; 36 | } 37 | -------------------------------------------------------------------------------- /background/eladmin-tools/src/main/java/me/zhengjie/service/mapstruct/LocalStorageMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 Zheng Jie 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.zhengjie.service.mapstruct; 17 | 18 | import me.zhengjie.base.BaseMapper; 19 | import me.zhengjie.service.dto.LocalStorageDto; 20 | import me.zhengjie.domain.LocalStorage; 21 | import org.mapstruct.Mapper; 22 | import org.mapstruct.ReportingPolicy; 23 | 24 | /** 25 | * @author Zheng Jie 26 | * @date 2019-09-05 27 | */ 28 | @Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) 29 | public interface LocalStorageMapper extends BaseMapper { 30 | 31 | } -------------------------------------------------------------------------------- /background/src/main/resources/mapper/MeUserBehavior/MeUserBehaviorMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /background/src/main/resources/mapper/meFavorites/MeFavoritesMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /background/src/main/resources/mapper/meWrongQuestion/MeWrongQuestionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /background/src/main/resources/mapper/question/MeQuestionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /background/src/main/resources/mapper/quetsion/MeQuestionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /front/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /front/.env.development: -------------------------------------------------------------------------------- 1 | ENV = 'development' 2 | 3 | # 接口地址 4 | VUE_APP_BASE_API = 'http://localhost:8000' 5 | VUE_APP_WS_API = 'ws://localhost:8000' 6 | 7 | # 是否启用 babel-plugin-dynamic-import-node插件 8 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 9 | -------------------------------------------------------------------------------- /front/.env.production: -------------------------------------------------------------------------------- 1 | ENV = 'production' 2 | 3 | # 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 4 | # 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http 5 | VUE_APP_BASE_API = 'http://yourServerIp:8000' 6 | # 如果接口是 http 形式, wss 需要改为 ws 7 | VUE_APP_WS_API = 'ws://yourServerIp:8000' 8 | -------------------------------------------------------------------------------- /front/.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | src/assets 3 | public 4 | dist 5 | -------------------------------------------------------------------------------- /front/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | yarn.lock 24 | -------------------------------------------------------------------------------- /front/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 10 3 | script: npm run test 4 | notifications: 5 | email: false 6 | -------------------------------------------------------------------------------- /front/README.md: -------------------------------------------------------------------------------- 1 | # 1.启动 2 | 3 | **(1)npm install** 或者**cnpm i** 4 | 5 | **(2)npm run dev** 6 | 7 | -------------------------------------------------------------------------------- /front/babel.config.js: -------------------------------------------------------------------------------- 1 | const plugins = ['@vue/babel-plugin-transform-vue-jsx'] 2 | // 生产环境移除console 3 | if (process.env.NODE_ENV === 'production') { 4 | plugins.push('transform-remove-console') 5 | } 6 | module.exports = { 7 | plugins: plugins, 8 | presets: [ 9 | '@vue/app' 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /front/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], 3 | transform: { 4 | '^.+\\.vue$': 'vue-jest', 5 | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 6 | 'jest-transform-stub', 7 | '^.+\\.jsx?$': 'babel-jest' 8 | }, 9 | moduleNameMapper: { 10 | '^@/(.*)$': '/src/$1' 11 | }, 12 | snapshotSerializers: ['jest-serializer-vue'], 13 | testMatch: [ 14 | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' 15 | ], 16 | collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], 17 | coverageDirectory: '/tests/unit/coverage', 18 | // 'collectCoverage': true, 19 | 'coverageReporters': [ 20 | 'lcov', 21 | 'text-summary' 22 | ], 23 | testURL: 'http://localhost/' 24 | } 25 | -------------------------------------------------------------------------------- /front/plopfile.js: -------------------------------------------------------------------------------- 1 | const viewGenerator = require('./plop-templates/view/prompt') 2 | const componentGenerator = require('./plop-templates/component/prompt') 3 | 4 | module.exports = function(plop) { 5 | plop.setGenerator('view', viewGenerator) 6 | plop.setGenerator('component', componentGenerator) 7 | } 8 | -------------------------------------------------------------------------------- /front/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /front/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/public/favicon.ico -------------------------------------------------------------------------------- /front/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <%= webpackConfig.name %> 10 | 11 | 12 |

13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /front/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /front/src/api/data.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | import qs from 'qs' 3 | 4 | export function initData(url, params) { 5 | return request({ 6 | url: url + '?' + qs.stringify(params, { indices: false }), 7 | method: 'get' 8 | }) 9 | } 10 | 11 | export function download(url, params) { 12 | return request({ 13 | url: url + '?' + qs.stringify(params, { indices: false }), 14 | method: 'get', 15 | responseType: 'blob' 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /front/src/api/generator/genConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get(tableName) { 4 | return request({ 5 | url: 'api/genConfig/' + tableName, 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/genConfig', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /front/src/api/generator/generator.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getAllTable() { 4 | return request({ 5 | url: 'api/generator/tables/all', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function generator(tableName, type) { 11 | return request({ 12 | url: 'api/generator/' + tableName + '/' + type, 13 | method: 'post', 14 | responseType: type === 2 ? 'blob' : '' 15 | }) 16 | } 17 | 18 | export function save(data) { 19 | return request({ 20 | url: 'api/generator', 21 | data, 22 | method: 'put' 23 | }) 24 | } 25 | 26 | export function sync(tables) { 27 | return request({ 28 | url: 'api/generator/sync', 29 | method: 'post', 30 | data: tables 31 | }) 32 | } 33 | 34 | -------------------------------------------------------------------------------- /front/src/api/login.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function login(username, password, code, uuid) { 4 | return request({ 5 | url: 'auth/login', 6 | method: 'post', 7 | data: { 8 | username, 9 | password, 10 | code, 11 | uuid 12 | } 13 | }) 14 | } 15 | 16 | export function getInfo() { 17 | return request({ 18 | url: 'auth/info', 19 | method: 'get' 20 | }) 21 | } 22 | 23 | export function getCodeImg() { 24 | return request({ 25 | url: 'auth/code', 26 | method: 'get' 27 | }) 28 | } 29 | 30 | export function logout() { 31 | return request({ 32 | url: 'auth/logout', 33 | method: 'delete' 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /front/src/api/mnt/app.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/app', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/app', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/app', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /front/src/api/mnt/connect.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function testDbConnect(data) { 4 | return request({ 5 | url: 'api/database/testConnect', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function testServerConnect(data) { 12 | return request({ 13 | url: 'api/serverDeploy/testConnect', 14 | method: 'post', 15 | data 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /front/src/api/mnt/database.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/database', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/database', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/database', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export function testDbConnection(data) { 28 | return request({ 29 | url: 'api/database/testConnect', 30 | method: 'post', 31 | data 32 | }) 33 | } 34 | 35 | export default { add, edit, del, testDbConnection } 36 | -------------------------------------------------------------------------------- /front/src/api/mnt/deployHistory.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function del(ids) { 4 | return request({ 5 | url: 'api/deployHistory', 6 | method: 'delete', 7 | data: ids 8 | }) 9 | } 10 | 11 | /** 12 | * 版本回退 13 | * @param data 选中行 14 | */ 15 | export function reducte(data) { 16 | return request({ 17 | url: 'api/deploy/serverReduction', 18 | method: 'post', 19 | data 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /front/src/api/mnt/serverDeploy.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/serverDeploy', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/serverDeploy', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/serverDeploy', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /front/src/api/monitor/log.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getErrDetail(id) { 4 | return request({ 5 | url: 'api/logs/error/' + id, 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function delAllError() { 11 | return request({ 12 | url: 'api/logs/del/error', 13 | method: 'delete' 14 | }) 15 | } 16 | 17 | export function delAllInfo() { 18 | return request({ 19 | url: 'api/logs/del/info', 20 | method: 'delete' 21 | }) 22 | } 23 | -------------------------------------------------------------------------------- /front/src/api/monitor/online.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function del(keys) { 4 | return request({ 5 | url: 'auth/online', 6 | method: 'delete', 7 | data: keys 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /front/src/api/system/code.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function resetEmail(data) { 4 | return request({ 5 | url: 'api/code/resetEmail?email=' + data, 6 | method: 'post' 7 | }) 8 | } 9 | 10 | export function updatePass(pass) { 11 | return request({ 12 | url: 'api/users/updatePass/' + pass, 13 | method: 'get' 14 | }) 15 | } 16 | -------------------------------------------------------------------------------- /front/src/api/system/dept.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getDepts(params) { 4 | return request({ 5 | url: 'api/dept', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getDeptSuperior(ids) { 12 | const data = ids.length || ids.length === 0 ? ids : Array.of(ids) 13 | return request({ 14 | url: 'api/dept/superior', 15 | method: 'post', 16 | data 17 | }) 18 | } 19 | 20 | export function add(data) { 21 | return request({ 22 | url: 'api/dept', 23 | method: 'post', 24 | data 25 | }) 26 | } 27 | 28 | export function del(ids) { 29 | return request({ 30 | url: 'api/dept', 31 | method: 'delete', 32 | data: ids 33 | }) 34 | } 35 | 36 | export function edit(data) { 37 | return request({ 38 | url: 'api/dept', 39 | method: 'put', 40 | data 41 | }) 42 | } 43 | 44 | export default { add, edit, del, getDepts, getDeptSuperior } 45 | -------------------------------------------------------------------------------- /front/src/api/system/dict.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getDicts() { 4 | return request({ 5 | url: 'api/dict/all', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function add(data) { 11 | return request({ 12 | url: 'api/dict', 13 | method: 'post', 14 | data 15 | }) 16 | } 17 | 18 | export function del(ids) { 19 | return request({ 20 | url: 'api/dict/', 21 | method: 'delete', 22 | data: ids 23 | }) 24 | } 25 | 26 | export function edit(data) { 27 | return request({ 28 | url: 'api/dict', 29 | method: 'put', 30 | data 31 | }) 32 | } 33 | 34 | export default { add, edit, del } 35 | -------------------------------------------------------------------------------- /front/src/api/system/dictDetail.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get(dictName) { 4 | const params = { 5 | dictName, 6 | page: 0, 7 | size: 9999 8 | } 9 | return request({ 10 | url: 'api/dictDetail', 11 | method: 'get', 12 | params 13 | }) 14 | } 15 | 16 | export function getDictMap(dictName) { 17 | const params = { 18 | dictName, 19 | page: 0, 20 | size: 9999 21 | } 22 | return request({ 23 | url: 'api/dictDetail/map', 24 | method: 'get', 25 | params 26 | }) 27 | } 28 | 29 | export function add(data) { 30 | return request({ 31 | url: 'api/dictDetail', 32 | method: 'post', 33 | data 34 | }) 35 | } 36 | 37 | export function del(id) { 38 | return request({ 39 | url: 'api/dictDetail/' + id, 40 | method: 'delete' 41 | }) 42 | } 43 | 44 | export function edit(data) { 45 | return request({ 46 | url: 'api/dictDetail', 47 | method: 'put', 48 | data 49 | }) 50 | } 51 | 52 | export default { add, edit, del } 53 | -------------------------------------------------------------------------------- /front/src/api/system/job.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getAllJob() { 4 | const params = { 5 | page: 0, 6 | size: 9999, 7 | enabled: true 8 | } 9 | return request({ 10 | url: 'api/job', 11 | method: 'get', 12 | params 13 | }) 14 | } 15 | 16 | export function add(data) { 17 | return request({ 18 | url: 'api/job', 19 | method: 'post', 20 | data 21 | }) 22 | } 23 | 24 | export function del(ids) { 25 | return request({ 26 | url: 'api/job', 27 | method: 'delete', 28 | data: ids 29 | }) 30 | } 31 | 32 | export function edit(data) { 33 | return request({ 34 | url: 'api/job', 35 | method: 'put', 36 | data 37 | }) 38 | } 39 | 40 | export default { add, edit, del } 41 | -------------------------------------------------------------------------------- /front/src/api/system/role.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取所有的Role 4 | export function getAll() { 5 | return request({ 6 | url: 'api/roles/all', 7 | method: 'get' 8 | }) 9 | } 10 | 11 | export function add(data) { 12 | return request({ 13 | url: 'api/roles', 14 | method: 'post', 15 | data 16 | }) 17 | } 18 | 19 | export function get(id) { 20 | return request({ 21 | url: 'api/roles/' + id, 22 | method: 'get' 23 | }) 24 | } 25 | 26 | export function getLevel() { 27 | return request({ 28 | url: 'api/roles/level', 29 | method: 'get' 30 | }) 31 | } 32 | 33 | export function del(ids) { 34 | return request({ 35 | url: 'api/roles', 36 | method: 'delete', 37 | data: ids 38 | }) 39 | } 40 | 41 | export function edit(data) { 42 | return request({ 43 | url: 'api/roles', 44 | method: 'put', 45 | data 46 | }) 47 | } 48 | 49 | export function editMenu(data) { 50 | return request({ 51 | url: 'api/roles/menu', 52 | method: 'put', 53 | data 54 | }) 55 | } 56 | 57 | export default { add, edit, del, get, editMenu, getLevel } 58 | -------------------------------------------------------------------------------- /front/src/api/system/timing.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/jobs', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/jobs', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/jobs', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export function updateIsPause(id) { 28 | return request({ 29 | url: 'api/jobs/' + id, 30 | method: 'put' 31 | }) 32 | } 33 | 34 | export function execution(id) { 35 | return request({ 36 | url: 'api/jobs/exec/' + id, 37 | method: 'put' 38 | }) 39 | } 40 | 41 | export default { del, updateIsPause, execution, add, edit } 42 | -------------------------------------------------------------------------------- /front/src/api/system/user.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | import { encrypt } from '@/utils/rsaEncrypt' 3 | 4 | export function add(data) { 5 | return request({ 6 | url: 'api/users', 7 | method: 'post', 8 | data 9 | }) 10 | } 11 | 12 | export function del(ids) { 13 | return request({ 14 | url: 'api/users', 15 | method: 'delete', 16 | data: ids 17 | }) 18 | } 19 | 20 | export function edit(data) { 21 | return request({ 22 | url: 'api/users', 23 | method: 'put', 24 | data 25 | }) 26 | } 27 | 28 | export function editUser(data) { 29 | return request({ 30 | url: 'api/users/center', 31 | method: 'put', 32 | data 33 | }) 34 | } 35 | 36 | export function updatePass(user) { 37 | const data = { 38 | oldPass: encrypt(user.oldPass), 39 | newPass: encrypt(user.newPass) 40 | } 41 | return request({ 42 | url: 'api/users/updatePass/', 43 | method: 'post', 44 | data 45 | }) 46 | } 47 | 48 | export function updateEmail(form) { 49 | const data = { 50 | password: encrypt(form.pass), 51 | email: form.email 52 | } 53 | return request({ 54 | url: 'api/users/updateEmail/' + form.code, 55 | method: 'post', 56 | data 57 | }) 58 | } 59 | 60 | export default { add, edit, del } 61 | 62 | -------------------------------------------------------------------------------- /front/src/api/tools/alipay.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/aliPay', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/aliPay', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | 18 | // 支付 19 | export function toAliPay(url, data) { 20 | return request({ 21 | url: 'api/' + url, 22 | data, 23 | method: 'post' 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /front/src/api/tools/email.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/email', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/email', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | 18 | export function send(data) { 19 | return request({ 20 | url: 'api/email', 21 | data, 22 | method: 'post' 23 | }) 24 | } 25 | -------------------------------------------------------------------------------- /front/src/api/tools/localStorage.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/localStorage', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/localStorage/', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/localStorage', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /front/src/api/tools/qiniu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/qiNiuContent/config', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/qiNiuContent/config', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | 18 | export function download(id) { 19 | return request({ 20 | url: 'api/qiNiuContent/download/' + id, 21 | method: 'get' 22 | }) 23 | } 24 | 25 | export function sync() { 26 | return request({ 27 | url: 'api/qiNiuContent/synchronize', 28 | method: 'post' 29 | }) 30 | } 31 | 32 | export function del(ids) { 33 | return request({ 34 | url: 'api/qiNiuContent', 35 | method: 'delete', 36 | data: ids 37 | }) 38 | } 39 | 40 | export default { del, download, sync } 41 | -------------------------------------------------------------------------------- /front/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /front/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/404_images/404.png -------------------------------------------------------------------------------- /front/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /front/src/assets/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/app.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/backup.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/codeConsole.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/deploy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/dev.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/develop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/dictionary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/doc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/gonggao.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/image.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/international.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/list.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/login.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/markdown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/monitor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/people.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/skill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/sqlMonitor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/theme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/timing.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/tree-table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/unlock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/user1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/validCode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/visits.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/wechat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/weixin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svg/zujian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /front/src/assets/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /front/src/assets/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/images/avatar.png -------------------------------------------------------------------------------- /front/src/assets/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/images/background.jpg -------------------------------------------------------------------------------- /front/src/assets/images/background2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/images/background2.jpg -------------------------------------------------------------------------------- /front/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1170159634/Mockexam-Server/12bb9bae87f20a919f175e56cbe23d70b9ff7414/front/src/assets/images/logo.png -------------------------------------------------------------------------------- /front/src/assets/styles/element-variables.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * I think element-ui's default theme color is too light for long-term use. 3 | * So I modified the default color and you can modify it to your liking. 4 | **/ 5 | 6 | /* theme color */ 7 | $--color-primary: #1890ff; 8 | $--color-success: #13ce66; 9 | $--color-warning: #FFBA00; 10 | $--color-danger: #ff4949; 11 | // $--color-info: #1E1E1E; 12 | 13 | $--button-font-weight: 400; 14 | 15 | // $--color-text-regular: #1f2d3d; 16 | 17 | $--border-color-light: #dfe4ed; 18 | $--border-color-lighter: #e6ebf5; 19 | 20 | $--table-border:1px solid#dfe6ec; 21 | 22 | /* icon font path, required */ 23 | $--font-path: '~element-ui/lib/theme-chalk/fonts'; 24 | 25 | @import "../../../node_modules/element-ui/packages/theme-chalk/src/index"; 26 | 27 | // the :export directive is the magic sauce for webpack 28 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 29 | :export { 30 | theme: $--color-primary; 31 | } 32 | -------------------------------------------------------------------------------- /front/src/assets/styles/transition.scss: -------------------------------------------------------------------------------- 1 | // global transition css 2 | 3 | /* fade */ 4 | .fade-enter-active, 5 | .fade-leave-active { 6 | transition: opacity 0.28s; 7 | } 8 | 9 | .fade-enter, 10 | .fade-leave-active { 11 | opacity: 0; 12 | } 13 | 14 | /* fade-transform */ 15 | .fade-transform-leave-active, 16 | .fade-transform-enter-active { 17 | transition: all .5s; 18 | } 19 | 20 | .fade-transform-enter { 21 | opacity: 0; 22 | transform: translateX(-30px); 23 | } 24 | 25 | .fade-transform-leave-to { 26 | opacity: 0; 27 | transform: translateX(30px); 28 | } 29 | 30 | /* breadcrumb transition */ 31 | .breadcrumb-enter-active, 32 | .breadcrumb-leave-active { 33 | transition: all .5s; 34 | } 35 | 36 | .breadcrumb-enter, 37 | .breadcrumb-leave-active { 38 | opacity: 0; 39 | transform: translateX(20px); 40 | } 41 | 42 | .breadcrumb-move { 43 | transition: all .5s; 44 | } 45 | 46 | .breadcrumb-leave-active { 47 | position: absolute; 48 | } 49 | -------------------------------------------------------------------------------- /front/src/assets/styles/variables.scss: -------------------------------------------------------------------------------- 1 | // base color 2 | $blue:#324157; 3 | $light-blue:#3A71A8; 4 | $red:#C03639; 5 | $pink: #E65D6E; 6 | $green: #30B08F; 7 | $tiffany: #4AB7BD; 8 | $yellow:#FEC171; 9 | $panGreen: #30B08F; 10 | 11 | // sidebar 12 | $menuText:#bfcbd9; 13 | $menuActiveText:#409EFF; 14 | $subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 15 | 16 | $menuBg:#304156; 17 | $menuHover:#263445; 18 | 19 | $subMenuBg:#1f2d3d; 20 | $subMenuHover:#001528; 21 | 22 | $sideBarWidth: 205px; 23 | 24 | // the :export directive is the magic sauce for webpack 25 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 26 | :export { 27 | menuText: $menuText; 28 | menuActiveText: $menuActiveText; 29 | subMenuActiveText: $subMenuActiveText; 30 | menuBg: $menuBg; 31 | menuHover: $menuHover; 32 | subMenuBg: $subMenuBg; 33 | subMenuHover: $subMenuHover; 34 | sideBarWidth: $sideBarWidth; 35 | } 36 | -------------------------------------------------------------------------------- /front/src/components/Crud/Pagination.vue: -------------------------------------------------------------------------------- 1 | 2 | 13 | 19 | -------------------------------------------------------------------------------- /front/src/components/Crud/RR.operation.vue: -------------------------------------------------------------------------------- 1 | 2 | 8 | 21 | -------------------------------------------------------------------------------- /front/src/components/DateRangePicker/index.vue: -------------------------------------------------------------------------------- 1 | 46 | -------------------------------------------------------------------------------- /front/src/components/Dict/Dict.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import { get as getDictDetail } from '@/api/system/dictDetail' 3 | 4 | export default class Dict { 5 | constructor(dict) { 6 | this.dict = dict 7 | } 8 | 9 | async init(names, completeCallback) { 10 | if (names === undefined || name === null) { 11 | throw new Error('need Dict names') 12 | } 13 | const ps = [] 14 | names.forEach(n => { 15 | Vue.set(this.dict.dict, n, {}) 16 | Vue.set(this.dict.label, n, {}) 17 | Vue.set(this.dict, n, []) 18 | ps.push(getDictDetail(n).then(data => { 19 | this.dict[n].splice(0, 0, ...data.content) 20 | data.content.forEach(d => { 21 | Vue.set(this.dict.dict[n], d.value, d) 22 | Vue.set(this.dict.label[n], d.value, d.label) 23 | }) 24 | })) 25 | }) 26 | await Promise.all(ps) 27 | completeCallback() 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /front/src/components/Dict/index.js: -------------------------------------------------------------------------------- 1 | import Dict from './Dict' 2 | 3 | const install = function(Vue) { 4 | Vue.mixin({ 5 | data() { 6 | if (this.$options.dicts instanceof Array) { 7 | const dict = { 8 | dict: {}, 9 | label: {} 10 | } 11 | return { 12 | dict 13 | } 14 | } 15 | return {} 16 | }, 17 | created() { 18 | if (this.$options.dicts instanceof Array) { 19 | new Dict(this.dict).init(this.$options.dicts, () => { 20 | this.$nextTick(() => { 21 | this.$emit('dictReady') 22 | }) 23 | }) 24 | } 25 | } 26 | }) 27 | } 28 | 29 | export default { install } 30 | -------------------------------------------------------------------------------- /front/src/components/Doc/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | -------------------------------------------------------------------------------- /front/src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | 2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) 3 | const requireAll = requireContext => requireContext.keys() 4 | 5 | const re = /\.\/(.*)\.svg/ 6 | 7 | const icons = requireAll(req).map(i => { 8 | return i.match(re)[1] 9 | }) 10 | 11 | export default icons 12 | -------------------------------------------------------------------------------- /front/src/components/Iframe/index.vue: -------------------------------------------------------------------------------- 1 |