├── .gitignore ├── .idea ├── compiler.xml ├── encodings.xml ├── misc.xml ├── uiDesigner.xml └── vcs.xml ├── README.md ├── Testpom ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── zy │ │ │ └── blog │ │ │ ├── App.java │ │ │ └── test │ │ │ └── controller │ │ │ └── TestController.java │ └── resources │ │ ├── application.yml │ │ └── rebel.xml │ └── test │ └── java │ └── com │ └── zy │ └── blog │ └── AppTest.java ├── blog_admin ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ ├── AdminApplication.java │ │ └── admin │ │ ├── annotation │ │ ├── AspectAutoLog.java │ │ ├── AutoLog.java │ │ └── OperationLogger │ │ │ ├── LoggerAspect.java │ │ │ ├── OperationLogger.java │ │ │ └── SysLogHandle.java │ │ ├── config │ │ ├── DruidConfig.java │ │ ├── GlobalExceptionConfig.java │ │ ├── HandlerExceptionResolver.java │ │ ├── MyWebMvcConfig.java │ │ ├── MybatisPlusConfig.java │ │ ├── ResourceServerConfig.java │ │ ├── TokenConfig.java │ │ └── WebSecurityConfig.java │ │ ├── controller │ │ ├── AdminController.java │ │ ├── BlogController.java │ │ ├── BlogSortController.java │ │ ├── CategoryMenuController.java │ │ ├── CollectController.java │ │ ├── CommentController.java │ │ ├── FeedbackController.java │ │ ├── IndexController.java │ │ ├── LinkController.java │ │ ├── LogController.java │ │ ├── OauthController.java │ │ ├── PictureController.java │ │ ├── PictureSortController.java │ │ ├── ResourceSortController.java │ │ ├── RoleController.java │ │ ├── SearchIndexController.java │ │ ├── ServerMonitorController.java │ │ ├── StudyVideoController.java │ │ ├── SubjectController.java │ │ ├── SubjectItemController.java │ │ ├── SysDictTypeController.java │ │ ├── SysParamsController.java │ │ ├── SystemConfigController.java │ │ ├── SystemController.java │ │ ├── SystemDictDataController.java │ │ ├── TagController.java │ │ ├── TodoController.java │ │ ├── UserController.java │ │ ├── VisitorController.java │ │ ├── WebConfigController.java │ │ ├── WebNavbarController.java │ │ └── WebVisitController.java │ │ ├── filter │ │ ├── JwtAuthenticationTokenFilter.java │ │ └── UserInfoHandlerInterceptorAdapter.java │ │ ├── test │ │ └── Game.java │ │ └── util │ │ └── RequestUtil.java │ └── resources │ ├── Dockerfile │ ├── application.yml │ ├── banner.png │ ├── banner.txt │ ├── bootstrap.yml │ ├── logback-spring.xml │ └── rebel.xml ├── blog_commons ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── zy │ └── blog │ └── commons │ ├── exception │ ├── FeignErrorDecoder.java │ └── UserNamePasswordException.java │ ├── fallback │ ├── OauthFeignServiceFallback.java │ ├── PictureFeignFallback.java │ └── SearchFeignFallback.java │ ├── feign │ ├── AdminFeignClient.java │ ├── OauthFeignService.java │ ├── PictureFeignClient.java │ ├── SearchFeignClient.java │ └── WebFeignClient.java │ └── log │ └── LogThreadPoolConfig.java ├── blog_entity ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── zy │ └── blog │ ├── base │ ├── EntityBase.java │ ├── Page.java │ ├── ServiceBase.java │ ├── ServiceImplBase.java │ ├── SuperMapper.java │ └── ViewBase.java │ ├── conifg │ └── CorsConfigurationUtil.java │ ├── entity │ ├── Admin.java │ ├── AdminRole.java │ ├── Blog.java │ ├── BlogSort.java │ ├── CategoryMenu.java │ ├── Collect.java │ ├── Comment.java │ ├── CommentReport.java │ ├── Dict.java │ ├── DymaticRolePath.java │ ├── ExceptionLog.java │ ├── FeedBack.java │ ├── File.java │ ├── FileSort.java │ ├── Link.java │ ├── Menu.java │ ├── NetworkDisk.java │ ├── OnlineAdmin.java │ ├── Picture.java │ ├── PictureSort.java │ ├── ResourceSort.java │ ├── Role.java │ ├── RoleMenu.java │ ├── Storage.java │ ├── StudyVideo.java │ ├── Subject.java │ ├── SubjectItem.java │ ├── SysDictData.java │ ├── SysDictType.java │ ├── SysLog.java │ ├── SysParams.java │ ├── SystemConfig.java │ ├── Tag.java │ ├── Todo.java │ ├── User.java │ ├── Visitor.java │ ├── WebConfig.java │ ├── WebNavbar.java │ └── WebVisit.java │ ├── example │ ├── AdminExample.java │ ├── AdminRoleExample.java │ ├── BlogExample.java │ ├── BlogSortExample.java │ ├── CollectExample.java │ ├── CommentExample.java │ ├── DictExample.java │ ├── ExceptionLogExample.java │ ├── FeedBackExample.java │ ├── LinkExample.java │ ├── MenuExample.java │ ├── PictureExample.java │ ├── PictureSortExample.java │ ├── ResourceSortExample.java │ ├── RoleExample.java │ ├── RoleMenuExample.java │ ├── StudyVideoExample.java │ ├── SysDictTypeExample.java │ ├── SysLogExample.java │ ├── SystemConfigExample.java │ ├── TagExample.java │ ├── TodoExample.java │ ├── UserExample.java │ ├── VisitorExample.java │ ├── WebConfigExample.java │ └── WebVisitExample.java │ ├── securityconfig │ ├── CurentUser.java │ └── SecurityUser.java │ ├── utils │ ├── JsonUtils.java │ └── ResultUtil1.java │ └── view │ ├── AdminRoleView.java │ ├── AdminView.java │ ├── BlogSortView.java │ ├── BlogView.java │ ├── CategoryMenuView.java │ ├── CollectView.java │ ├── CommentView.java │ ├── DictView.java │ ├── ExceptionLogView.java │ ├── FeedBackView.java │ ├── FileView.java │ ├── LinkView.java │ ├── MenuView.java │ ├── PictureSortView.java │ ├── PictureView.java │ ├── ResourceSortView.java │ ├── RoleMenuView.java │ ├── RoleView.java │ ├── StudyVideoView.java │ ├── SubjectItemView.java │ ├── SubjectView.java │ ├── SysDictDataView.java │ ├── SysDictTypeView.java │ ├── SysLogView.java │ ├── SysParamsView.java │ ├── SystemConfigView.java │ ├── TagView.java │ ├── TodoView.java │ ├── UserView.java │ ├── VisitorView.java │ ├── WebConfigView.java │ ├── WebNavbarView.java │ └── WebVisitView.java ├── blog_gateway ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ └── gateway │ │ ├── GatewayApplication.java │ │ ├── config │ │ ├── AuthGlobalFilter.java │ │ ├── AuthorizationManager.java │ │ ├── CacheConfig.java │ │ ├── LRUCacheConfig.java │ │ ├── ResourceServerConfig.java │ │ └── WhiteListConfig.java │ │ ├── exception │ │ ├── RequestAccessDeniedHandler.java │ │ └── RequestAuthenticationEntryPoint.java │ │ ├── mapper │ │ ├── AdminMapper.java │ │ ├── CategoryMenuMapper.java │ │ └── RoleMapper.java │ │ ├── model │ │ ├── ResultCode.java │ │ └── ResultMsg.java │ │ ├── service │ │ ├── AdminService.java │ │ ├── CategoryMenuService.java │ │ ├── RoleService.java │ │ └── impl │ │ │ ├── AdminServiceImpl.java │ │ │ ├── CategoryMenuServiceImpl.java │ │ │ └── RoleServiceImpl.java │ │ └── util │ │ └── RedisUtil.java │ └── resources │ ├── Dockerfile │ ├── application.yml │ ├── bootstrap.yml │ ├── logback-spring.xml │ └── rebel.xml ├── blog_mse ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ └── mse │ │ ├── SmsApplication.java │ │ ├── config │ │ └── RabbitMqConfig.java │ │ ├── global │ │ ├── RedisConf.java │ │ └── SysConf.java │ │ ├── listener │ │ ├── BlogListener.java │ │ └── MailListener.java │ │ └── util │ │ └── SendMailUtils.java │ └── resources │ ├── Dockerfile │ ├── application.yml │ ├── bootstrap.yml │ └── logback-spring.xml ├── blog_oauth ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── zy │ │ │ └── blog │ │ │ └── oauth │ │ │ ├── OauthApplication.java │ │ │ ├── config │ │ │ ├── AuthorizationServer.java │ │ │ ├── DruidConfig.java │ │ │ ├── JwtAccessTokenEnhancer.java │ │ │ ├── TokenConfig.java │ │ │ └── WebSecurityConfig.java │ │ │ ├── controller │ │ │ ├── LogoutController.java │ │ │ └── PublicKeyController.java │ │ │ ├── exception │ │ │ ├── CustomClientCredentialsTokenEndpointFilter.java │ │ │ ├── ExceptionTranslator.java │ │ │ ├── OAuthServerAuthenticationEntryPoint.java │ │ │ └── oauth │ │ │ │ └── model │ │ │ │ └── UserNamePasswordException.java │ │ │ ├── global │ │ │ ├── GlobalExceptionConfig.java │ │ │ └── HandlerExceptionResolver.java │ │ │ ├── mapper │ │ │ ├── AdminMapper.java │ │ │ └── RoleMapper.java │ │ │ ├── model │ │ │ ├── ResultCode.java │ │ │ └── ResultMsg.java │ │ │ ├── service │ │ │ ├── OauthUserDetailServices.java │ │ │ ├── SecurityUser.java │ │ │ └── SecurityUserFactory.java │ │ │ └── utils │ │ │ └── ResponseUtils.java │ └── resources │ │ ├── Dockerfile │ │ ├── Mapper │ │ ├── AdminMapper.xml │ │ └── RoleMapper.xml │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ ├── logback-spring.xml │ │ ├── mybatis │ │ └── mybatis.cfg.xml │ │ ├── rebel.xml │ │ └── youlai.jks │ └── test │ └── java │ └── com │ └── test │ └── Test.java ├── blog_picture ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── zy │ │ │ └── blog │ │ │ ├── PictureApplication.java │ │ │ └── picture │ │ │ ├── config │ │ │ ├── CorsConfigurationUtil.java │ │ │ ├── DruidConfig.java │ │ │ ├── MessageConf.java │ │ │ ├── RedisConf.java │ │ │ ├── SQLConf.java │ │ │ └── SysConf.java │ │ │ ├── controller │ │ │ ├── FileController.java │ │ │ ├── NetworkDiskController.java │ │ │ └── StorageController.java │ │ │ ├── entity │ │ │ └── TreeNode.java │ │ │ ├── filter │ │ │ ├── JwtAuthenticationTokenFilter.java │ │ │ ├── ResourceServerConfig.java │ │ │ ├── TokenConfig.java │ │ │ └── WebSecurityConfig.java │ │ │ ├── mapper │ │ │ ├── FileMapper.java │ │ │ ├── FileSortMapper.java │ │ │ ├── NetworkDiskMapper.java │ │ │ └── StorageMapper.java │ │ │ ├── security │ │ │ ├── RequestHolder.java │ │ │ └── SecurityUser.java │ │ │ ├── service │ │ │ ├── FileService.java │ │ │ ├── FileSortService.java │ │ │ ├── LocalFileService.java │ │ │ ├── MinioService.java │ │ │ ├── NetworkDiskService.java │ │ │ ├── StorageService.java │ │ │ └── impl │ │ │ │ ├── FileServiceImpl.java │ │ │ │ ├── FileSortServiceImpl.java │ │ │ │ ├── LocalFileServiceImpl.java │ │ │ │ ├── MinioServiceImpl.java │ │ │ │ ├── NetworkDiskServiceImpl.java │ │ │ │ └── StorageServiceImpl.java │ │ │ ├── util │ │ │ ├── FeignUtil.java │ │ │ ├── MinioUtil.java │ │ │ └── MoGuFileUtil.java │ │ │ └── vo │ │ │ ├── NetworkDiskVO.java │ │ │ └── StorageVO.java │ └── resources │ │ ├── Dockerfile │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ ├── logback-spring.xml │ │ ├── mapper │ │ ├── FileMapper.xml │ │ └── FileSortMapper.xml │ │ └── mybatis │ │ └── mybatis.cfg.xml │ └── test │ └── java │ └── com │ └── zy │ └── blog │ └── test │ └── TestMinio.java ├── blog_search ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ └── serach │ │ ├── SearchApplication.java │ │ ├── config │ │ ├── CorsConfigurationUtil.java │ │ ├── MetaObjectHandlerConfig.java │ │ ├── MybatisPlusConfig.java │ │ ├── RestClientConfig.java │ │ ├── Swagger3Config.java │ │ └── WebSecurityConfig.java │ │ ├── global │ │ ├── MessageConf.java │ │ └── SysConf.java │ │ ├── mapper │ │ └── HighlightResultHelper.java │ │ ├── pojo │ │ └── ESBlogIndex.java │ │ ├── repository │ │ └── BlogRepository.java │ │ ├── restapi │ │ └── ElasticSearchRestApi.java │ │ └── service │ │ └── ElasticSearchService.java │ └── resources │ ├── Dockerfile │ ├── application.yml │ ├── bootstrap.yml │ └── logback-spring.xml ├── blog_services ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ └── service │ │ ├── expandconfig │ │ └── HandlerExceptionResolver.java │ │ ├── mapper │ │ ├── AdminMapper.java │ │ ├── AdminRoleMapper.java │ │ ├── BlogMapper.java │ │ ├── BlogSortMapper.java │ │ ├── CategoryMenuMapper.java │ │ ├── CollectMapper.java │ │ ├── CommentMapper.java │ │ ├── CommentReportMapper.java │ │ ├── ExceptionLogMapper.java │ │ ├── FeedbackMapper.java │ │ ├── LinkMapper.java │ │ ├── MenuMapper.java │ │ ├── PictureMapper.java │ │ ├── PictureSortMapper.java │ │ ├── ResourceSortMapper.java │ │ ├── RoleMapper.java │ │ ├── RoleMenuMapper.java │ │ ├── StudyVideoMapper.java │ │ ├── SubjectItemMapper.java │ │ ├── SubjectMapper.java │ │ ├── SysDictTypeMapper.java │ │ ├── SysLogMapper.java │ │ ├── SysParamsMapper.java │ │ ├── SystemConfigMapper.java │ │ ├── SystemDictDataMapper.java │ │ ├── TagMapper.java │ │ ├── TodoMapper.java │ │ ├── UserMapper.java │ │ ├── VisitorMapper.java │ │ ├── WebConfigMapper.java │ │ ├── WebNavbarMapper.java │ │ └── WebVisitMapper.java │ │ ├── netutils │ │ ├── RabbitMqUtil.java │ │ └── WebUtil.java │ │ └── service │ │ ├── AdminRoleService.java │ │ ├── AdminService.java │ │ ├── BlogService.java │ │ ├── BlogSortService.java │ │ ├── CategoryMenuService.java │ │ ├── CollectService.java │ │ ├── CommentReportService.java │ │ ├── CommentService.java │ │ ├── ExceptionLogService.java │ │ ├── FeedbackService.java │ │ ├── LinkService.java │ │ ├── MenuService.java │ │ ├── PictureService.java │ │ ├── PictureSortService.java │ │ ├── ResourceSortService.java │ │ ├── RoleMenuService.java │ │ ├── RoleService.java │ │ ├── StudyVideoService.java │ │ ├── SubjectItemService.java │ │ ├── SubjectService.java │ │ ├── SysDictTypeService.java │ │ ├── SysLogService.java │ │ ├── SysParamsService.java │ │ ├── SystemConfigService.java │ │ ├── SystemDictDataService.java │ │ ├── TagService.java │ │ ├── TodoService.java │ │ ├── UserService.java │ │ ├── VisitorService.java │ │ ├── WebConfigService.java │ │ ├── WebNavbarService.java │ │ ├── WebVisitService.java │ │ └── impl │ │ ├── AdminRoleServiceImpl.java │ │ ├── AdminServiceImpl.java │ │ ├── BlogServiceImpl.java │ │ ├── BlogSortServiceImpl.java │ │ ├── CategoryMenuServiceImpl.java │ │ ├── CollectServiceImpl.java │ │ ├── CommentReportServiceImpl.java │ │ ├── CommentServiceImpl.java │ │ ├── ExceptionLogServiceImpl.java │ │ ├── FeedbackServiceImpl.java │ │ ├── LinkServiceImpl.java │ │ ├── MenuServiceImpl.java │ │ ├── PictureServiceImpl.java │ │ ├── PictureSortServiceImpl.java │ │ ├── ResourceSortServiceImpl.java │ │ ├── RoleMenuServiceImpl.java │ │ ├── RoleServiceImpl.java │ │ ├── StudyVideoServiceImpl.java │ │ ├── SubjectItemServiceImpl.java │ │ ├── SubjectServiceImpl.java │ │ ├── SysDictTypeServiceImpl.java │ │ ├── SysLogServiceImpl.java │ │ ├── SysParamsServiceImpl.java │ │ ├── SystemConfigServiceImpl.java │ │ ├── SystemDictDataServiceImpl.java │ │ ├── TagServiceImpl.java │ │ ├── TodoServiceImpl.java │ │ ├── UserServiceImpl.java │ │ ├── VisitorServiceImpl.java │ │ ├── WebConfigServiceImpl.java │ │ ├── WebNavbarServiceImpl.java │ │ └── WebVisitServiceImpl.java │ └── resources │ ├── Mapper │ ├── AdminMapper.xml │ ├── BlogMapper.xml │ ├── CollectMapper.xml │ ├── CommentMapper.xml │ ├── DictMapper.xml │ ├── DictTypeMapper.xml │ ├── ExceptionLogMapper.xml │ ├── FeedbackMapper.xml │ ├── MenuMapper.xml │ ├── RoleMapper.xml │ ├── SysLogMapper.xml │ ├── SystemConfigMapper.xml │ ├── TagMapper.xml │ ├── UserMapper.xml │ └── VisitorMapper.xml │ └── mybatis │ └── mybatis.cfg.xml ├── blog_utils ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── zy │ └── blog │ └── utils │ ├── ServerInfo │ ├── Cpu.java │ ├── Jvm.java │ ├── Mem.java │ ├── ServerInfo.java │ ├── Sys.java │ └── SysFile.java │ ├── StringUtils.java │ ├── ThrowableUtils.java │ ├── annotion │ ├── authorityverify │ │ └── AuthorityVerify.java │ └── validator │ │ ├── Messages.java │ │ ├── annotion │ │ ├── BooleanNotNULL.java │ │ ├── IdValid.java │ │ ├── IntegerNotNull.java │ │ ├── LongNotNull.java │ │ ├── NotBlank.java │ │ ├── Numeric.java │ │ └── Range.java │ │ ├── group │ │ ├── Delete.java │ │ ├── GetList.java │ │ ├── GetOne.java │ │ ├── Insert.java │ │ └── Update.java │ │ └── validator │ │ ├── BooleanValidator.java │ │ ├── IdValidator.java │ │ ├── IntegerValidator.java │ │ ├── LongValidator.java │ │ ├── NumericValidator.java │ │ ├── RangValidator.java │ │ └── StringValidator.java │ ├── constant │ ├── AuthConstants.java │ ├── BaseMessageConf.java │ ├── BaseRedisConf.java │ ├── BaseSQLConf.java │ ├── BaseSysConf.java │ ├── Constants.java │ ├── ECode.java │ ├── EStatus.java │ ├── EntityConstant.java │ ├── ErrorCode.java │ ├── LogConstant.java │ ├── MessageConf.java │ ├── PublicConstant.java │ ├── RedisConf.java │ ├── RedisKeyConstant.java │ ├── SQLConf.java │ ├── SqlConstant.java │ ├── SysConf.java │ └── SysConstant.java │ ├── enums │ ├── EAccountType.java │ ├── EBehavior.java │ ├── ECommentSource.java │ ├── ECommentType.java │ ├── EFilePriority.java │ ├── EGender.java │ ├── ELevel.java │ ├── ELinkStatus.java │ ├── ELoginType.java │ ├── EMenuType.java │ ├── EOpenStatus.java │ ├── EOriginal.java │ ├── EPublish.java │ ├── EQiNiuArea.java │ ├── ESearchModel.java │ ├── EStatus.java │ ├── PlatformEnum.java │ └── SystemLanguageEnum.java │ ├── exception │ └── type │ │ ├── ApiInvalidParamException.java │ │ ├── BusinessException.java │ │ ├── DeleteException.java │ │ ├── InsertException.java │ │ ├── LoginException.java │ │ ├── QueryException.java │ │ └── UpdateException.java │ ├── holder │ ├── AbstractRequestAwareRunnable.java │ └── RequestHolder.java │ ├── upload │ ├── FileOperation.java │ ├── FileUtil.java │ ├── ImageOperation.java │ ├── PathUtil.java │ ├── UploadFile.java │ └── Uploader.java │ └── util │ ├── AboutFileUtil.java │ ├── AopUtils.java │ ├── Arith.java │ ├── AspectUtil.java │ ├── CheckUtils.java │ ├── CookieUtils.java │ ├── DateJsonValueProcessor.java │ ├── DateUtils.java │ ├── FileUtils.java │ ├── HttpRequestUtil.java │ ├── IdWorkerUtils.java │ ├── ImageUtils.java │ ├── IpUtils.java │ ├── JsonUtils.java │ ├── JwtUtil.java │ ├── MD5Utils.java │ ├── ProtoStuffSerializerUtil.java │ ├── RedisUtil.java │ ├── RedisUtils.java │ ├── RegexUtils.java │ ├── RequestUntils.java │ ├── ResultUtil.java │ ├── SignUtil.java │ ├── SnowflakeIdWorker.java │ ├── SpringUtils.java │ ├── StringUtils.java │ ├── UniappUtils.java │ ├── WebUtils.java │ └── cache │ ├── CacheNode.java │ └── LRUCache.java ├── blog_web ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── zy │ │ └── blog │ │ ├── WebApplication.java │ │ └── web │ │ ├── annotion │ │ ├── log │ │ │ ├── BussinessLog.java │ │ │ ├── LoggerAspect.java │ │ │ └── SysLogHandle.java │ │ └── requestLimit │ │ │ ├── RequestLimit.java │ │ │ ├── RequestLimitAspect.java │ │ │ └── RequestLimitConfig.java │ │ ├── config │ │ ├── AuthenticationTokenFilter.java │ │ ├── FreemarkerController.java │ │ ├── GlobalExceptionConfig.java │ │ ├── HandlerExceptionResolver.java │ │ ├── MybatisPlusConfig.java │ │ ├── RabbitMqConfig.java │ │ ├── ResourceServerConfig.java │ │ ├── Swagger3Config.java │ │ ├── TokenConfig.java │ │ └── WebSecurityConfig.java │ │ ├── controller │ │ ├── AboutMeRestApi.java │ │ ├── AuthRestApi.java │ │ ├── BlogContentRestApi.java │ │ ├── ClassifyRestApi.java │ │ ├── CommentRestApi.java │ │ ├── IndexRestApi.java │ │ ├── LoginRestApi.java │ │ ├── ResourceRestApi.java │ │ ├── SearchRestApi.java │ │ ├── SortRestApi.java │ │ ├── SysDictDataRestApi.java │ │ ├── TagRestApi.java │ │ └── WechatRestApi.java │ │ ├── filter │ │ ├── JwtAuthenticationTokenFilter.java │ │ └── SecurityUser.java │ │ ├── global │ │ ├── MessageConf.java │ │ ├── RedisConf.java │ │ ├── SQLConf.java │ │ ├── SubjectRestApi.java │ │ └── SysConf.java │ │ └── util │ │ ├── JwtAuthenticationTokenFilter.java │ │ └── RequestUtil.java │ └── resources │ ├── Dockerfile │ ├── application.yml │ ├── bootstrap.yml │ └── logback-spring.xml ├── pom.xml ├── vue_admin ├── .env ├── .env.dev ├── .env.prod ├── .gitignore ├── Dockerfile ├── README.md ├── babel.config.js ├── default.conf ├── index.html ├── package.json ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── api │ │ ├── admin.js │ │ ├── adminRole.js │ │ ├── blog.js │ │ ├── blogSort.js │ │ ├── categoryMenu.js │ │ ├── collect.js │ │ ├── comment.js │ │ ├── feedback.js │ │ ├── file.js │ │ ├── index.js │ │ ├── link.js │ │ ├── log.js │ │ ├── login.js │ │ ├── oauth.js │ │ ├── picture.js │ │ ├── pictureSort.js │ │ ├── resourceSort.js │ │ ├── role.js │ │ ├── searchIndex.js │ │ ├── serverMonitor.js │ │ ├── spider.js │ │ ├── studyVideo.js │ │ ├── subject.js │ │ ├── subjectItem.js │ │ ├── sysConfig.js │ │ ├── sysDict.js │ │ ├── sysDictData.js │ │ ├── sysDictType.js │ │ ├── sysParams.js │ │ ├── system.js │ │ ├── systemConfig.js │ │ ├── tag.js │ │ ├── test.js │ │ ├── todo.js │ │ ├── user.js │ │ ├── webConfig.js │ │ ├── webNavbar.js │ │ └── webVisit.js │ ├── assets │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404.jpg │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ ├── 405.jpg │ │ ├── css │ │ │ └── emoji.css │ │ ├── images │ │ │ ├── common │ │ │ │ ├── logo_footer.png │ │ │ │ └── logo_header.png │ │ │ ├── error │ │ │ │ ├── 401.png │ │ │ │ ├── 404.png │ │ │ │ └── 500.png │ │ │ ├── file │ │ │ │ ├── dir.png │ │ │ │ ├── file_avi.png │ │ │ │ ├── file_chm.png │ │ │ │ ├── file_code.png │ │ │ │ ├── file_css.png │ │ │ │ ├── file_csv.png │ │ │ │ ├── file_dmg.png │ │ │ │ ├── file_excel.png │ │ │ │ ├── file_exe.png │ │ │ │ ├── file_gif.png │ │ │ │ ├── file_html.png │ │ │ │ ├── file_img.png │ │ │ │ ├── file_jar.png │ │ │ │ ├── file_js.png │ │ │ │ ├── file_json.png │ │ │ │ ├── file_md.png │ │ │ │ ├── file_music.png │ │ │ │ ├── file_oa.png │ │ │ │ ├── file_open.png │ │ │ │ ├── file_pdf.png │ │ │ │ ├── file_pic.png │ │ │ │ ├── file_ppt.png │ │ │ │ ├── file_rar.png │ │ │ │ ├── file_rtf.png │ │ │ │ ├── file_sql.png │ │ │ │ ├── file_svg.png │ │ │ │ ├── file_txt.png │ │ │ │ ├── file_unknown.png │ │ │ │ ├── file_video.png │ │ │ │ ├── file_war.png │ │ │ │ ├── file_word.png │ │ │ │ └── file_zip.png │ │ │ ├── footer │ │ │ │ ├── QQImg.png │ │ │ │ └── wechatImg.png │ │ │ ├── login │ │ │ │ └── qqIcon.png │ │ │ └── settings │ │ │ │ └── userImg.png │ │ ├── img │ │ │ ├── emoji_sprite.png │ │ │ └── face_logo.png │ │ ├── logo.png │ │ ├── logo │ │ │ └── logo.png │ │ └── styles │ │ │ ├── css │ │ │ ├── base.css │ │ │ ├── border.css │ │ │ ├── element-cover.css │ │ │ └── mediaScreen.styl │ │ │ ├── mixins.styl │ │ │ └── varibles.styl │ ├── components │ │ ├── AvatarCropper │ │ │ ├── index.vue │ │ │ └── utils │ │ │ │ ├── data2blob.js │ │ │ │ ├── effectRipple.js │ │ │ │ ├── language.js │ │ │ │ └── mimes.js │ │ ├── BarChart │ │ │ └── index.vue │ │ ├── Breadcrumb │ │ │ └── index.vue │ │ ├── CKEditor │ │ │ └── index.vue │ │ ├── CalendarChart │ │ │ └── index.vue │ │ ├── CheckPhoto │ │ │ └── index.vue │ │ ├── EmojiPanel │ │ │ ├── Emoji │ │ │ │ └── Emoji.vue │ │ │ └── EmojiPanel.vue │ │ ├── GithubCorner │ │ │ └── index.vue │ │ ├── Hamburger │ │ │ └── index.vue │ │ ├── HtmlPanel │ │ │ └── index.vue │ │ ├── IconsDialog │ │ │ ├── icon.json │ │ │ └── index.vue │ │ ├── Kanban │ │ │ └── index.vue │ │ ├── LineChart │ │ │ └── index.vue │ │ ├── MarkdownEditor │ │ │ └── index.vue │ │ ├── MoGu │ │ │ ├── Doc │ │ │ │ └── index.vue │ │ │ ├── Git │ │ │ │ └── index.vue │ │ │ └── Website │ │ │ │ └── index.vue │ │ ├── PictureCropper │ │ │ └── index.vue │ │ ├── PieChart │ │ │ └── index.vue │ │ ├── RightToolbar │ │ │ └── index.vue │ │ ├── Screenfull │ │ │ └── index.vue │ │ ├── ScrollPane │ │ │ └── index.vue │ │ ├── SubjectSelect │ │ │ └── index.vue │ │ ├── SvgIcon │ │ │ └── index.vue │ │ ├── ThemePicker │ │ │ └── index.vue │ │ └── TodoList │ │ │ ├── Todo.vue │ │ │ ├── index.scss │ │ │ └── index.vue │ ├── directive │ │ ├── downloadFile │ │ │ ├── download.js │ │ │ └── index.js │ │ ├── index.js │ │ └── permission │ │ │ ├── index.js │ │ │ └── permission.js │ ├── icons │ │ ├── index.js │ │ ├── svg │ │ │ ├── dashboard.svg │ │ │ ├── dashboardmain.svg │ │ │ ├── email.svg │ │ │ ├── example.svg │ │ │ ├── eye-open.svg │ │ │ ├── eye.svg │ │ │ ├── form.svg │ │ │ ├── gitee.svg │ │ │ ├── link.svg │ │ │ ├── nested.svg │ │ │ ├── password.svg │ │ │ ├── peoples.svg │ │ │ ├── table.svg │ │ │ ├── tree.svg │ │ │ ├── user.svg │ │ │ └── website.svg │ │ └── svgo.yml │ ├── layout │ │ ├── components │ │ │ ├── AppMain.vue │ │ │ ├── Navbar.vue │ │ │ ├── Sidebar │ │ │ │ ├── FixiOSBug.js │ │ │ │ ├── Item.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ ├── TagsView.vue │ │ │ └── index.js │ │ ├── index.vue │ │ └── mixin │ │ │ └── ResizeHandler.js │ ├── main.js │ ├── permission.js │ ├── router │ │ └── index.js │ ├── settings.js │ ├── store │ │ ├── getters.js │ │ ├── index.js │ │ └── modules │ │ │ ├── app.js │ │ │ ├── networkDisk.js │ │ │ ├── permission.js │ │ │ ├── settings.js │ │ │ ├── tagsView.js │ │ │ └── user.js │ ├── style │ │ ├── element-ui.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── sidebar.scss │ │ ├── transition.scss │ │ └── variables.scss │ ├── utils │ │ ├── auth.js │ │ ├── commonUtil.js │ │ ├── cookieUtils.js │ │ ├── generator │ │ │ ├── config.js │ │ │ ├── css.js │ │ │ ├── drawingDefalut.js │ │ │ ├── html.js │ │ │ ├── icon.json │ │ │ ├── js.js │ │ │ └── render.js │ │ ├── get-title.js │ │ ├── index.js │ │ ├── prototype.js │ │ ├── request.js │ │ ├── validate.js │ │ └── webUtils.js │ └── view │ │ ├── 404.vue │ │ ├── authority │ │ ├── admin.vue │ │ ├── categoryMenu.vue │ │ └── role.vue │ │ ├── blog │ │ ├── blog.vue │ │ ├── blogRecommend.vue │ │ ├── blogSort.vue │ │ ├── blogTag.vue │ │ ├── collect.vue │ │ ├── subject.vue │ │ └── subjectItem.vue │ │ ├── dashboard │ │ ├── index.vue │ │ └── index1.vue │ │ ├── layout │ │ ├── Layout.vue │ │ ├── components │ │ │ ├── AppMain.vue │ │ │ ├── Navbar.vue │ │ │ ├── Sidebar │ │ │ │ ├── Item.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ ├── TagsView.vue │ │ │ └── index.js │ │ └── mixin │ │ │ └── ResizeHandler.js │ │ ├── log │ │ ├── exceptionLog.vue │ │ ├── log.vue │ │ └── webVisit.vue │ │ ├── login │ │ └── index.vue │ │ ├── message │ │ ├── comment.vue │ │ └── feedback.vue │ │ ├── monitor │ │ ├── ELK.vue │ │ ├── ElasticSearch.vue │ │ ├── OnlineAdmin.vue │ │ ├── ServerMonitor.vue │ │ └── Solr.vue │ │ ├── picture │ │ ├── picture.vue │ │ └── pictureSort.vue │ │ ├── resource │ │ ├── file │ │ │ ├── File.vue │ │ │ └── components │ │ │ │ ├── AsideMenu │ │ │ │ └── AsideMenu.vue │ │ │ │ └── FileList │ │ │ │ ├── components │ │ │ │ ├── BreadCrumb.vue │ │ │ │ ├── FileTable.vue │ │ │ │ ├── ImageModel.vue │ │ │ │ ├── ImgReview.vue │ │ │ │ ├── MoveFileDialog.vue │ │ │ │ └── OperationMenu.vue │ │ │ │ └── index.vue │ │ ├── resourceSort.vue │ │ └── studyVideo.vue │ │ ├── restapi │ │ ├── adminRestApi.vue │ │ ├── pictureRestApi.vue │ │ ├── searchRestApi.vue │ │ └── webRestApi.vue │ │ ├── spider │ │ └── pictureSpider.vue │ │ ├── system │ │ ├── SysDictData.vue │ │ ├── SysDictType.vue │ │ ├── aboutMe.vue │ │ ├── blogLink.vue │ │ ├── sysParams.vue │ │ ├── systemConfig.vue │ │ └── webConfig.vue │ │ ├── user │ │ ├── user.vue │ │ └── visitor.vue │ │ └── web │ │ └── webNavbar.vue ├── static │ ├── .gitkeep │ ├── cdn │ │ ├── ckeditor.js │ │ ├── element-ui.css │ │ ├── element-ui.js │ │ ├── fonts │ │ │ ├── element-icons.ttf │ │ │ └── element-icons.woff │ │ ├── highlight.css │ │ ├── highlight.js │ │ ├── showdown.min.js │ │ ├── social-share.css │ │ ├── turndown.min.js │ │ ├── vditor.css │ │ ├── vditor.js │ │ └── vue.js │ └── js │ │ └── storage.js └── vue.config.js └── vue_web ├── .babelrc ├── .default.env ├── .editorconfig ├── .env ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .project ├── Dockerfile ├── README.md ├── build ├── build.js ├── check-versions.js ├── getEnv.js ├── logo.png ├── utils.js ├── vue-loader.conf.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── config ├── dev.env.js ├── index.js ├── prod.env.js └── test.env.js ├── env-config.js ├── env.sh ├── favicon.ico ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.vue ├── api │ ├── about.js │ ├── blogContent.js │ ├── classify.js │ ├── comment.js │ ├── index.js │ ├── resource.js │ ├── search.js │ ├── sort.js │ ├── subject.js │ ├── sysDictData.js │ ├── tag.js │ └── user.js ├── assets │ ├── 401_images │ │ └── 401.gif │ ├── 404_images │ │ ├── 404.png │ │ └── 404_cloud.png │ ├── css │ │ └── emoji.css │ ├── iconfont │ │ ├── iconfont.css │ │ ├── iconfont.eot │ │ ├── iconfont.js │ │ ├── iconfont.json │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ ├── img │ │ ├── emoji_sprite.png │ │ └── face_logo.png │ └── logo.png ├── components │ ├── AvatarCropper │ │ ├── index.vue │ │ └── utils │ │ │ ├── data2blob.js │ │ │ ├── effectRipple.js │ │ │ ├── language.js │ │ │ └── mimes.js │ ├── CdTop │ │ └── index.vue │ ├── ChangYan │ │ └── index.vue │ ├── CommentBox │ │ └── index.vue │ ├── CommentList │ │ └── index.vue │ ├── EmojiPanel │ │ ├── Emoji │ │ │ └── Emoji.vue │ │ └── EmojiPanel.vue │ ├── FirstRecommend │ │ └── index.vue │ ├── FollowUs │ │ └── index.vue │ ├── FourthRecommend │ │ └── index.vue │ ├── Head │ │ └── index.vue │ ├── HotBlog │ │ └── index.vue │ ├── Link │ │ └── index.vue │ ├── LoginBox │ │ └── index.vue │ ├── PayCode │ │ └── index.vue │ ├── Sticky │ │ └── index.vue │ ├── SubjectItemList │ │ └── index.vue │ ├── TagCloud │ │ └── index.vue │ ├── ThirdRecommend │ │ └── index.vue │ └── VueSideCatalog │ │ ├── index.vue │ │ └── main.scss ├── main.js ├── permission.js ├── router │ └── index.js ├── store │ ├── app.js │ ├── index.js │ ├── mutation-types.js │ └── user.js ├── utils │ ├── commonUtil.js │ ├── cookieUtils.js │ ├── index.js │ ├── math.js │ ├── prototype.js │ ├── request.js │ ├── validate.js │ └── webUtils.js └── views │ ├── 404.vue │ ├── 500.vue │ ├── 502.vue │ ├── about.vue │ ├── classify.vue │ ├── home.vue │ ├── index.vue │ ├── info.vue │ ├── life.vue │ ├── list.vue │ ├── messageBoard.vue │ ├── share.vue │ ├── sort.vue │ ├── subject.vue │ ├── tag.vue │ └── time.vue ├── static ├── .gitkeep ├── cdn │ ├── ckeditor.js │ ├── element-ui.css │ ├── element-ui.js │ ├── fonts │ │ ├── element-icons.ttf │ │ └── element-icons.woff │ ├── highlight.css │ ├── highlight.js │ ├── showdown.min.js │ ├── social-share.css │ ├── turndown.min.js │ ├── vditor.css │ ├── vditor.js │ └── vue.js ├── css │ ├── ckeditor.css │ └── index.css ├── highlight │ ├── CHANGES.md │ ├── LICENSE │ ├── README.md │ ├── README.ru.md │ ├── highlight.pack.js │ └── styles │ │ ├── a11y-dark.css │ │ ├── a11y-light.css │ │ ├── agate.css │ │ ├── an-old-hope.css │ │ ├── androidstudio.css │ │ ├── arduino-light.css │ │ ├── arta.css │ │ ├── ascetic.css │ │ ├── atelier-cave-dark.css │ │ ├── atelier-cave-light.css │ │ ├── atelier-dune-dark.css │ │ ├── atelier-dune-light.css │ │ ├── atelier-estuary-dark.css │ │ ├── atelier-estuary-light.css │ │ ├── atelier-forest-dark.css │ │ ├── atelier-forest-light.css │ │ ├── atelier-heath-dark.css │ │ ├── atelier-heath-light.css │ │ ├── atelier-lakeside-dark.css │ │ ├── atelier-lakeside-light.css │ │ ├── atelier-plateau-dark.css │ │ ├── atelier-plateau-light.css │ │ ├── atelier-savanna-dark.css │ │ ├── atelier-savanna-light.css │ │ ├── atelier-seaside-dark.css │ │ ├── atelier-seaside-light.css │ │ ├── atelier-sulphurpool-dark.css │ │ ├── atelier-sulphurpool-light.css │ │ ├── atom-one-dark-reasonable.css │ │ ├── atom-one-dark.css │ │ ├── atom-one-light.css │ │ ├── brown-paper.css │ │ ├── brown-papersq.png │ │ ├── codepen-embed.css │ │ ├── color-brewer.css │ │ ├── darcula.css │ │ ├── dark.css │ │ ├── default.css │ │ ├── docco.css │ │ ├── dracula.css │ │ ├── far.css │ │ ├── foundation.css │ │ ├── github-gist.css │ │ ├── github.css │ │ ├── gml.css │ │ ├── googlecode.css │ │ ├── gradient-dark.css │ │ ├── grayscale.css │ │ ├── gruvbox-dark.css │ │ ├── gruvbox-light.css │ │ ├── hopscotch.css │ │ ├── hybrid.css │ │ ├── idea.css │ │ ├── ir-black.css │ │ ├── isbl-editor-dark.css │ │ ├── isbl-editor-light.css │ │ ├── kimbie.dark.css │ │ ├── kimbie.light.css │ │ ├── lightfair.css │ │ ├── lioshi.css │ │ ├── magula.css │ │ ├── mono-blue.css │ │ ├── monokai-sublime.css │ │ ├── monokai.css │ │ ├── night-owl.css │ │ ├── nnfx-dark.css │ │ ├── nnfx.css │ │ ├── nord.css │ │ ├── obsidian.css │ │ ├── ocean.css │ │ ├── paraiso-dark.css │ │ ├── paraiso-light.css │ │ ├── pojoaque.css │ │ ├── pojoaque.jpg │ │ ├── purebasic.css │ │ ├── qtcreator_dark.css │ │ ├── qtcreator_light.css │ │ ├── railscasts.css │ │ ├── rainbow.css │ │ ├── routeros.css │ │ ├── school-book.css │ │ ├── school-book.png │ │ ├── shades-of-purple.css │ │ ├── solarized-dark.css │ │ ├── solarized-light.css │ │ ├── srcery.css │ │ ├── sunburst.css │ │ ├── tomorrow-night-blue.css │ │ ├── tomorrow-night-bright.css │ │ ├── tomorrow-night-eighties.css │ │ ├── tomorrow-night.css │ │ ├── tomorrow.css │ │ ├── vs.css │ │ ├── vs2015.css │ │ ├── xcode.css │ │ ├── xt256.css │ │ └── zenburn.css ├── images │ ├── 5794.png │ ├── alipay.jpg │ ├── auicon.jpg │ ├── author.png │ ├── b01.jpg │ ├── b02.jpg │ ├── b03.jpg │ ├── b04.jpg │ ├── banner.png │ ├── bg.jpg │ ├── bg.png │ ├── blank.jpg │ ├── cd-top-arrow.svg │ ├── close.png │ ├── date.png │ ├── datepng.png │ ├── defaultAvatar.png │ ├── dsbz.jpg │ ├── dzbg.jpg │ ├── gitee.jpg │ ├── giteeLogo.png │ ├── github.jpg │ ├── githubLogo.png │ ├── gzbg.jpg │ ├── jdbg.png │ ├── lanmbq.png │ ├── logo.jpg │ ├── logo.png │ ├── navbg.png │ ├── navline.jpg │ ├── navt.png │ ├── newsbg01.png │ ├── newsbg02.png │ ├── newsbg03 (1).png │ ├── newsbg03.png │ ├── newsbg04.png │ ├── obscure.png │ ├── page_bg.jpg │ ├── page_classify.jpg │ ├── page_time.jpg │ ├── posttime.gif │ ├── qqGroup.png │ ├── radio1.jpg │ ├── radio2.jpg │ ├── searchbg.png │ ├── t01.jpg │ ├── t02.jpg │ ├── t03.jpg │ ├── tbg.jpg │ ├── titlebg.png │ ├── top.png │ └── wechat.jpg └── js │ ├── changyan.js │ ├── common.js │ ├── jquery.easyfader.min.js │ ├── jquery.min.js │ ├── menu.js │ ├── modernizr.js │ └── scrollReveal.js └── test ├── e2e ├── custom-assertions │ └── elementCount.js ├── nightwatch.conf.js ├── runner.js └── specs │ └── test.js └── unit ├── .eslintrc ├── jest.conf.js ├── setup.js └── specs └── HelloWorld.spec.js /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | out 4 | gen 5 | *.class 6 | /.idea -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Testpom/src/main/java/com/zy/blog/App.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | /** 8 | * Hello world! 9 | * 10 | */ 11 | @SpringBootApplication 12 | @EnableDiscoveryClient 13 | public class App 14 | { 15 | public static void main( String[] args ) 16 | { 17 | SpringApplication.run(App.class, args); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Testpom/src/main/java/com/zy/blog/test/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.test.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | /** 8 | * @author zy 1716457206@qq.com 9 | */ 10 | @RestController 11 | @RequestMapping("/testpom") 12 | public class TestController { 13 | 14 | @GetMapping("/test1") 15 | public String test1(){ 16 | return "meesahges1"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Testpom/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 6001 3 | 4 | spring: 5 | application: 6 | name: blog-admin-test 7 | cloud: 8 | nacos: 9 | discovery: 10 | server-addr: 47.114.172.114:80 11 | 12 | 13 | 14 | management: 15 | endpoints: 16 | web: 17 | exposure: 18 | include: '*' 19 | 20 | -------------------------------------------------------------------------------- /Testpom/src/main/resources/rebel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Testpom/src/test/java/com/zy/blog/AppTest.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog; 2 | 3 | import static org.junit.Assert.assertTrue; 4 | 5 | import org.junit.Test; 6 | 7 | /** 8 | * Unit test for simple App. 9 | */ 10 | public class AppTest 11 | { 12 | /** 13 | * Rigorous Test :-) 14 | */ 15 | @Test 16 | public void shouldAnswerWithTrue() 17 | { 18 | assertTrue( true ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/annotation/AutoLog.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @description: 日志记录注解 10 | * @author 小章鱼 11 | * @date 2020年12月31日 12 | **/ 13 | @Target({ElementType.METHOD}) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface AutoLog { 16 | 17 | /** 18 | * 是否记录耗时 19 | * */ 20 | boolean recordTime() default false; 21 | } 22 | -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/annotation/OperationLogger/OperationLogger.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.annotation.OperationLogger; 2 | 3 | import com.zy.blog.utils.enums.PlatformEnum; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 标注该该注解的方法需要记录操作日志 12 | * 13 | * @author 小章鱼 14 | * @date 2020年12月31日 15 | */ 16 | @Target(ElementType.METHOD) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | public @interface OperationLogger { 19 | 20 | /** 21 | * 业务名称 22 | */ 23 | String value() default ""; 24 | 25 | /** 26 | * 平台,默认为WEB端 27 | */ 28 | PlatformEnum platform() default PlatformEnum.ADMIN; 29 | 30 | /** 31 | * 是否将当前日志记录到数据库中 32 | */ 33 | boolean save() default true; 34 | } -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/config/GlobalExceptionConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @description: 9 | * @author 小章鱼 10 | * @date 2021年01月1日 11 | **/ 12 | @Configuration 13 | public class GlobalExceptionConfig { 14 | @Bean 15 | public HandlerExceptionResolver getHandlerExceptionResolver() { 16 | return new HandlerExceptionResolver(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/controller/CollectController.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | /** 8 | * 收藏表 RestApi 9 | * 10 | * @author 小章鱼 11 | * @date 2021年02月5日 12 | */ 13 | @RestController 14 | @RequestMapping("/collect") 15 | public class CollectController { 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/controller/VisitorController.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.controller; 2 | 3 | 4 | import io.swagger.annotations.Api; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import org.springframework.web.bind.annotation.RestController; 8 | 9 | /** 10 | * 游客表 RestApi 11 | * 12 | * @author 小章鱼 13 | * @date 2021-09-08 14 | */ 15 | @RestController 16 | @RequestMapping("/visitor") 17 | @Api(value = "游客相关接口", tags = {"游客相关接口"}) 18 | @Slf4j 19 | public class VisitorController { 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /blog_admin/src/main/java/com/zy/blog/admin/test/Game.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.admin.test; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Component; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class Game { 9 | @Autowired 10 | private Player player; 11 | 12 | public Game(Player player) { 13 | this.player = player; 14 | } 15 | 16 | public String attack() { 17 | return "Player attack with: " + player.getWeapon(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /blog_admin/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_admin-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_admin/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_admin/src/main/resources/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/blog_admin/src/main/resources/banner.png -------------------------------------------------------------------------------- /blog_admin/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | @@@@@@@@@@@@@@@@@@@ 2 | @@@@@@@@@@@@@@@@@@@ 3 | @@@@@@@@@@@@@@@@@@@@@@@@@ -------------------------------------------------------------------------------- /blog_admin/src/main/resources/rebel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /blog_commons/src/main/java/com/zy/blog/commons/exception/UserNamePasswordException.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.commons.exception; 2 | 3 | import com.netflix.hystrix.exception.HystrixBadRequestException; 4 | 5 | /** 6 | * @description: 7 | * @author: 小章鱼 8 | * @date: 2022/6/25 10:46 9 | **/ 10 | public class UserNamePasswordException extends HystrixBadRequestException { 11 | public UserNamePasswordException(String message) { 12 | super(message); 13 | } 14 | 15 | public UserNamePasswordException(String message, Throwable cause) { 16 | super(message, cause); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /blog_commons/src/main/java/com/zy/blog/commons/feign/AdminFeignClient.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.commons.feign; 2 | 3 | 4 | 5 | import org.springframework.cloud.openfeign.FeignClient; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RequestMethod; 9 | 10 | /** 11 | * 后台服务feign远程调用 12 | * 13 | * @author 小章鱼 14 | * @date 2021年1月21日22:19:10 15 | */ 16 | @Component 17 | @FeignClient(name = "blog-admin") 18 | public interface AdminFeignClient { 19 | 20 | 21 | /** 22 | * 获取系统配置信息 23 | */ 24 | @RequestMapping(value = "/sysConfig/getSystemConfig", method = RequestMethod.GET) 25 | public String getSystemConfig(); 26 | 27 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/base/Page.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.base; 2 | 3 | import com.zy.blog.utils.annotion.validator.Messages; 4 | import com.zy.blog.utils.annotion.validator.annotion.LongNotNull; 5 | import com.zy.blog.utils.annotion.validator.group.GetList; 6 | import lombok.Data; 7 | 8 | /** 9 | * 10 | * @description:分页 11 | * @author: 小章鱼 12 | * @date: 2021/8/26 23:14 13 | **/ 14 | @Data 15 | public class Page { 16 | /** 17 | * 关键字 18 | */ 19 | private String keyword; 20 | 21 | /** 22 | * 当前页 23 | */ 24 | @LongNotNull(groups = {GetList.class}, message = Messages.PAGE_NOT_NULL) 25 | private Long currentPage; 26 | 27 | /** 28 | * 页大小 29 | */ 30 | @LongNotNull(groups = {GetList.class}, message = Messages.SIZE_NOT_NULL) 31 | private Long pageSize; 32 | } 33 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/base/ServiceBase.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.base; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | 5 | /** 6 | * @author: 小章鱼 7 | * @description:服务基础接口 8 | * @date: 2021/8/1 19:03 9 | **/ 10 | public interface ServiceBase extends IService { 11 | } 12 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/base/ServiceImplBase.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.base; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | 5 | /** 6 | * @author: 小章鱼 7 | * @description: 8 | * @date: 2021/8/1 19:25 9 | **/ 10 | public class ServiceImplBase, T> extends ServiceImpl implements ServiceBase { 11 | } 12 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/base/SuperMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.base; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | 5 | /** 6 | * @author: 小章鱼 7 | * @description: 8 | * @date: 2021/8/1 19:31 9 | **/ 10 | public interface SuperMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/base/ViewBase.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.base; 2 | 3 | /** 4 | * @description: 表现层基类对象 5 | * @author: 小章鱼 6 | * @create: 2021-07-28 22:02 7 | **/ 8 | 9 | public class ViewBase extends Page { 10 | 11 | public String uid; 12 | 13 | /** 14 | * 状态 0:失效 1:生效 15 | */ 16 | public int status; 17 | 18 | public String getUid() { 19 | return uid; 20 | } 21 | 22 | public void setUid(String uid) { 23 | this.uid = uid; 24 | } 25 | 26 | public int getStatus() { 27 | return status; 28 | } 29 | 30 | public void setStatus(int status) { 31 | this.status = status; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/AdminRole.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.FieldStrategy; 4 | import com.baomidou.mybatisplus.annotation.TableField; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import com.zy.blog.base.EntityBase; 7 | import lombok.Data; 8 | 9 | /** 10 | * @description: 11 | * @author: 小章鱼 12 | * @date: 2021/9/28 16:13 13 | **/ 14 | @Data 15 | @TableName(value = "t_admin_role") 16 | public class AdminRole extends EntityBase { 17 | 18 | @TableField(updateStrategy = FieldStrategy.IGNORED) 19 | private String adminUid; 20 | @TableField(updateStrategy = FieldStrategy.IGNORED) 21 | private String roleUid; 22 | 23 | 24 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/DymaticRolePath.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @description: 路径 角色 访问列表 7 | * @author: 小章鱼 8 | * @date: 2022/6/23 21:53 9 | **/ 10 | public class DymaticRolePath { 11 | 12 | private String path; 13 | 14 | private List roleNames; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/FileSort.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | /** 8 | * @description: 9 | * @author: 小章鱼 10 | * @date: 2021/9/28 16:13 11 | **/ 12 | 13 | @TableName("t_file_sort") 14 | @Data 15 | public class FileSort extends EntityBase { 16 | 17 | private static final long serialVersionUID = 1L; 18 | 19 | /** 20 | * 项目名 21 | */ 22 | private String projectName; 23 | 24 | /** 25 | * 模块分类名 26 | */ 27 | private String sortName; 28 | 29 | /** 30 | * 存储路径 31 | */ 32 | private String url; 33 | } 34 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/RoleMenu.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | import java.util.Objects; 8 | 9 | @Data 10 | @TableName(value = "t_role_menu") 11 | public class RoleMenu extends EntityBase { 12 | private static final long serialVersionUID = 1L; 13 | private String roleUid; 14 | 15 | private String menuUid; 16 | 17 | public static long getSerialVersionUID() { 18 | return serialVersionUID; 19 | } 20 | 21 | 22 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/Storage.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | /** 8 | * @description: 9 | *

10 | * 存储信息实体类 11 | *

12 | * @author: 小章鱼 13 | * @date: 2021/9/28 16:16 14 | **/ 15 | @TableName("t_storage") 16 | @Data 17 | public class Storage extends EntityBase { 18 | private static final long serialVersionUID = 1L; 19 | /** 20 | * 管理员UID 21 | */ 22 | private String adminUid; 23 | 24 | /** 25 | * 当前网盘容量 26 | */ 27 | private long storageSize; 28 | 29 | /** 30 | * 最大网盘容量 31 | */ 32 | private long maxStorageSize; 33 | } 34 | -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/Tag.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | @Data 8 | @TableName(value = "t_tag") 9 | public class Tag extends EntityBase { 10 | private static final long serialVersionUID = 1L; 11 | 12 | /** 13 | * 标签内容 14 | */ 15 | private String content; 16 | 17 | /** 18 | * 标签简介 19 | */ 20 | private int clickCount; 21 | 22 | /** 23 | * 排序字段,数值越大,越靠前 24 | */ 25 | private int sort; 26 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/Todo.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | @Data 8 | @TableName(value = "t_todo") 9 | public class Todo extends EntityBase { 10 | private static final long serialVersionUID = 1L; 11 | 12 | /** 13 | * 内容 14 | */ 15 | private String text; 16 | 17 | /** 18 | * 管理员UID 19 | */ 20 | private String adminUid; 21 | 22 | /** 23 | * 表示事项是否完成 24 | */ 25 | private Boolean done; 26 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/entity/Visitor.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.zy.blog.base.EntityBase; 5 | import lombok.Data; 6 | 7 | import java.util.Date; 8 | @Data 9 | @TableName(value = "t_visitor") 10 | public class Visitor extends EntityBase { 11 | private static final long serialVersionUID = 1L; 12 | 13 | /** 14 | * 用户名 15 | */ 16 | private String user_name; 17 | 18 | /** 19 | * 邮箱 20 | */ 21 | private String email; 22 | 23 | /** 24 | * 登录次数 25 | */ 26 | private Integer login_count; 27 | 28 | /** 29 | * 最后登录时间 30 | */ 31 | private Date last_login_time; 32 | 33 | /** 34 | * 最后登录IP 35 | */ 36 | private String last_login_ip; 37 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/AdminRoleView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | 5 | 6 | public class AdminRoleView extends ViewBase { 7 | private String adminUid; 8 | 9 | private String roleUid; 10 | 11 | public String getAdminUid() { 12 | return adminUid; 13 | } 14 | 15 | public void setAdminUid(String adminUid) { 16 | this.adminUid = adminUid == null ? null : adminUid.trim(); 17 | } 18 | 19 | public String getRoleUid() { 20 | return roleUid; 21 | } 22 | 23 | public void setRoleUid(String roleUid) { 24 | this.roleUid = roleUid == null ? null : roleUid.trim(); 25 | } 26 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/CollectView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | 5 | public class CollectView extends ViewBase { 6 | private String userUid; 7 | 8 | private String blogUid; 9 | 10 | public String getUserUid() { 11 | return userUid; 12 | } 13 | 14 | public void setUserUid(String userUid) { 15 | this.userUid = userUid == null ? null : userUid.trim(); 16 | } 17 | 18 | public String getBlogUid() { 19 | return blogUid; 20 | } 21 | 22 | public void setBlogUid(String blogUid) { 23 | this.blogUid = blogUid == null ? null : blogUid.trim(); 24 | } 25 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/FeedBackView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | import com.zy.blog.utils.annotion.validator.annotion.*; 5 | import com.zy.blog.utils.annotion.validator.group.*; 6 | import lombok.Data; 7 | 8 | @Data 9 | public class FeedBackView extends ViewBase { 10 | 11 | /** 12 | * 用户uid 13 | */ 14 | private String userUid; 15 | 16 | /** 17 | * 标题 18 | */ 19 | @NotBlank(groups = {Insert.class, Update.class}) 20 | private String title; 21 | 22 | /** 23 | * 反馈的内容 24 | */ 25 | @NotBlank(groups = {Insert.class, Update.class}) 26 | private String content; 27 | 28 | /** 29 | * 回复 30 | */ 31 | private String reply; 32 | 33 | /** 34 | * 反馈状态: 0:已开启 1:进行中 2:已完成 3:已拒绝 35 | */ 36 | private Integer feedbackStatus; 37 | 38 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/PictureSortView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | import com.zy.blog.utils.annotion.validator.annotion.IntegerNotNull; 5 | import com.zy.blog.utils.annotion.validator.group.Insert; 6 | import com.zy.blog.utils.annotion.validator.group.Update; 7 | import lombok.Data; 8 | 9 | @Data 10 | public class PictureSortView extends ViewBase { 11 | /** 12 | * 父UID 13 | */ 14 | private String parentUid; 15 | 16 | /** 17 | * 分类名 18 | */ 19 | private String name; 20 | 21 | /** 22 | * 分类图片Uid 23 | */ 24 | private String fileUid; 25 | 26 | /** 27 | * 排序字段,数值越大,越靠前 28 | */ 29 | private int sort; 30 | 31 | /** 32 | * 是否显示 1: 是 0: 否 33 | */ 34 | @IntegerNotNull(groups = {Insert.class, Update.class}) 35 | private Integer isShow; 36 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/RoleMenuView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | 5 | public class RoleMenuView extends ViewBase { 6 | private String roleUid; 7 | 8 | private String menuUid; 9 | 10 | public String getRoleUid() { 11 | return roleUid; 12 | } 13 | 14 | public void setRoleUid(String roleUid) { 15 | this.roleUid = roleUid == null ? null : roleUid.trim(); 16 | } 17 | 18 | public String getMenuUid() { 19 | return menuUid; 20 | } 21 | 22 | public void setMenuUid(String menuUid) { 23 | this.menuUid = menuUid == null ? null : menuUid.trim(); 24 | } 25 | } -------------------------------------------------------------------------------- /blog_entity/src/main/java/com/zy/blog/view/TodoView.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.view; 2 | 3 | import com.zy.blog.base.ViewBase; 4 | 5 | public class TodoView extends ViewBase { 6 | private String adminUid; 7 | 8 | private String text; 9 | 10 | private Boolean done; 11 | 12 | public String getAdminUid() { 13 | return adminUid; 14 | } 15 | 16 | public void setAdminUid(String adminUid) { 17 | this.adminUid = adminUid == null ? null : adminUid.trim(); 18 | } 19 | 20 | public String getText() { 21 | return text; 22 | } 23 | 24 | public void setText(String text) { 25 | this.text = text == null ? null : text.trim(); 26 | } 27 | 28 | public Boolean getDone() { 29 | return done; 30 | } 31 | 32 | public void setDone(Boolean done) { 33 | this.done = done; 34 | } 35 | } -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.context.annotation.ComponentScan; 7 | 8 | 9 | @SpringBootApplication 10 | @EnableDiscoveryClient 11 | 12 | public class GatewayApplication { 13 | public static void main(String[] args) { 14 | SpringApplication.run(GatewayApplication.class, args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/config/LRUCacheConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.config; 2 | 3 | import com.zy.blog.utils.util.cache.LRUCache; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * @author: 小章鱼 11 | * @description: 12 | * @date: 2022/7/11 22:17 13 | **/ 14 | @Configuration 15 | public class LRUCacheConfig { 16 | 17 | @Bean 18 | public LRUCache> perCache(){ 19 | return new LRUCache<>(10) ; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/mapper/AdminMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.Admin; 5 | import com.zy.blog.view.AdminView; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | 9 | import java.util.List; 10 | 11 | @Mapper 12 | public interface AdminMapper extends SuperMapper { 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/mapper/CategoryMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.CategoryMenu; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | 9 | @Mapper 10 | public interface CategoryMenuMapper extends SuperMapper { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/mapper/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Role; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 角色表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2022-07-09 13 | */ 14 | @Mapper 15 | public interface RoleMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/model/ResultMsg.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.experimental.Accessors; 8 | 9 | /** 10 | * @description: 11 | * @author: 小章鱼 12 | * @date: 2022/6/22 12:39 13 | **/ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @Builder 18 | @Accessors(chain = true) 19 | public class ResultMsg { 20 | private String code; 21 | 22 | private String message; 23 | 24 | private Object data; 25 | } -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.service; 2 | 3 | import com.zy.blog.base.ServiceBase; 4 | import com.zy.blog.entity.Admin; 5 | import com.zy.blog.view.AdminView; 6 | import org.springframework.web.bind.annotation.RequestParam; 7 | 8 | import java.util.List; 9 | 10 | public interface AdminService extends ServiceBase { 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /blog_gateway/src/main/java/com/zy/blog/gateway/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.gateway.service; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.Role; 6 | import com.zy.blog.view.RoleView; 7 | 8 | /** 9 | * 角色表 服务类 10 | * 11 | * @author 小章鱼 12 | * @date 2021-09-04 13 | */ 14 | public interface RoleService extends ServiceBase { 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_gateway/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_gateway-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_gateway/src/main/resources/rebel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | blog_gateway 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /blog_mse/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_mse-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_mse/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_mse/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | server: 5 | port: 8888 6 | spring: 7 | application: 8 | name: blog-mse 9 | profiles: 10 | active: dev 11 | cloud: 12 | nacos: 13 | discovery: 14 | server-addr: 106.14.136.83:8848 15 | group: ${spring.profiles.active} 16 | namespace: ${spring.profiles.active} 17 | config: 18 | server-addr: 106.14.136.83:8848 19 | file-extension: yml 20 | group: ${spring.profiles.active} 21 | namespace: ${spring.profiles.active} 22 | username: nacos 23 | password: nacos 24 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/OauthApplication.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.openfeign.EnableFeignClients; 7 | 8 | @SpringBootApplication 9 | @EnableDiscoveryClient 10 | @EnableFeignClients 11 | public class OauthApplication { 12 | public static void main(String[] args) { 13 | SpringApplication.run(OauthApplication.class, args); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/controller/LogoutController.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.controller; 2 | 3 | import com.zy.blog.utils.ResultUtil1; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | /** 8 | * @author 小章鱼 1716457206@qq.com 9 | */ 10 | @RestController 11 | @RequestMapping("/oauth") 12 | public class LogoutController { 13 | 14 | @RequestMapping("/logout") 15 | public ResultUtil1 logout(){ 16 | 17 | return new ResultUtil1(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/exception/oauth/model/UserNamePasswordException.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.exception.oauth.model; 2 | 3 | import com.netflix.hystrix.exception.HystrixBadRequestException; 4 | 5 | /** 6 | * @description: 认证服务重构 7 | * @author: 小章鱼 8 | * @date: 2022/6/25 10:46 9 | **/ 10 | public class UserNamePasswordException extends HystrixBadRequestException { 11 | public UserNamePasswordException(String message) { 12 | super(message); 13 | } 14 | 15 | public UserNamePasswordException(String message, Throwable cause) { 16 | super(message, cause); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/global/GlobalExceptionConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.global; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @description: 认证服务重构 8 | * @author: 小章鱼 9 | * @date: 2022/6/6 23:40 10 | **/ 11 | @Configuration 12 | public class GlobalExceptionConfig { 13 | @Bean 14 | public HandlerExceptionResolver getHandlerExceptionResolver() { 15 | return new HandlerExceptionResolver(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/mapper/AdminMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.zy.blog.entity.Admin; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.web.bind.annotation.RequestParam; 7 | 8 | @Mapper 9 | public interface AdminMapper extends BaseMapper { 10 | public Admin getUserByUsername(@RequestParam("username") String username); 11 | } 12 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/mapper/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.zy.blog.entity.Admin; 5 | import com.zy.blog.entity.Role; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | 9 | import java.util.List; 10 | 11 | @Mapper 12 | public interface RoleMapper extends BaseMapper { 13 | public List getRoleListByName(@RequestParam("username") String username); 14 | } 15 | -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/model/ResultMsg.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.experimental.Accessors; 8 | 9 | /** 10 | * @description: 11 | * @author: 小章鱼 12 | * @date: 2022/6/22 12:39 13 | **/ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @Builder 18 | @Accessors(chain = true) 19 | public class ResultMsg { 20 | private String code; 21 | 22 | private String message; 23 | 24 | private Object data; 25 | } -------------------------------------------------------------------------------- /blog_oauth/src/main/java/com/zy/blog/oauth/utils/ResponseUtils.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.oauth.utils; 2 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; 4 | import com.zy.blog.oauth.model.ResultMsg; 5 | 6 | import javax.servlet.ServletOutputStream; 7 | import javax.servlet.http.HttpServletResponse; 8 | import java.io.IOException; 9 | 10 | /** 11 | * @description: 12 | * @author: 小章鱼 13 | * @date: 2022/6/22 13:23 14 | **/ 15 | public class ResponseUtils { 16 | public static void result(HttpServletResponse response, ResultMsg msg) throws IOException { 17 | response.setContentType("application/json;charset=UTF-8"); 18 | ServletOutputStream out = response.getOutputStream(); 19 | ObjectMapper objectMapper = new ObjectMapper(); 20 | out.write(objectMapper.writeValueAsString(msg).getBytes("UTF-8")); 21 | out.flush(); 22 | out.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_oauth-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | server: 5 | port: 5555 6 | spring: 7 | application: 8 | name: blog-oauth 9 | profiles: 10 | active: dev 11 | cloud: 12 | nacos: 13 | discovery: 14 | server-addr: 106.14.136.83:8848 15 | group: ${spring.profiles.active} 16 | namespace: ${spring.profiles.active} 17 | config: 18 | server-addr: 106.14.136.83:8848 19 | file-extension: yml 20 | group: ${spring.profiles.active} 21 | namespace: ${spring.profiles.active} 22 | username: nacos 23 | password: nacos 24 | main: 25 | allow-bean-definition-overriding: true -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/mybatis/mybatis.cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/rebel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | blog_oauth 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /blog_oauth/src/main/resources/youlai.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/blog_oauth/src/main/resources/youlai.jks -------------------------------------------------------------------------------- /blog_oauth/src/test/java/com/test/Test.java: -------------------------------------------------------------------------------- 1 | package com.test; 2 | 3 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 4 | import org.springframework.security.crypto.password.PasswordEncoder; 5 | 6 | /** 7 | * @author 小章鱼 1716457206@qq.com 8 | */ 9 | public class Test { 10 | @org.junit.Test 11 | public void test1(){ 12 | PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); 13 | String ss = passwordEncoder.encode("666666"); 14 | System.out.println(ss); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/config/MessageConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.config; 2 | 3 | 4 | import com.zy.blog.utils.constant.BaseMessageConf; 5 | 6 | /** 7 | * 消息通知 8 | * 9 | * @author 小章鱼 10 | * @date 2021年12月29日 11 | */ 12 | public final class MessageConf extends BaseMessageConf { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/config/RedisConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.config; 2 | 3 | import com.zy.blog.utils.constant.BaseRedisConf; 4 | 5 | /** 6 | * Redis常量类 7 | * 8 | * @author: 小章鱼 9 | * @create: 2021年12月29日 10 | */ 11 | public class RedisConf extends BaseRedisConf { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/config/SQLConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.config; 2 | 3 | 4 | import com.zy.blog.utils.constant.BaseSQLConf; 5 | 6 | /** 7 | * SQL字段常量 8 | * @author 小章鱼 9 | * @create: 2021年12月29日 10 | */ 11 | public final class SQLConf extends BaseSQLConf { 12 | 13 | 14 | //FileSort表 15 | public final static String PROJECT_NAME = "project_name"; 16 | public final static String SORT_NAME = "sort_name"; 17 | public final static String ADMIN_UID = "admin_uid"; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/config/SysConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.config; 2 | 3 | import com.zy.blog.utils.constant.BaseSysConf; 4 | 5 | /** 6 | * 系统常量 7 | * 8 | * @author 小章鱼 9 | */ 10 | public final class SysConf extends BaseSysConf { 11 | 12 | public final static String ID = "id"; 13 | public final static String CREATE_TIME = "createTime"; 14 | public final static String UPDATE_TIME = "updateTime"; 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/mapper/FileMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.File; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-17 13 | */ 14 | @Mapper 15 | public interface FileMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/mapper/FileSortMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.FileSort; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-17 13 | */ 14 | @Mapper 15 | public interface FileSortMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/mapper/NetworkDiskMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.NetworkDisk; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2020年6月13日17:08:09 13 | */ 14 | @Mapper 15 | public interface NetworkDiskMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/mapper/StorageMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Storage; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2020年6月13日17:21:48 13 | */ 14 | @Mapper 15 | public interface StorageMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/service/FileSortService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.service; 2 | 3 | import com.zy.blog.base.ServiceBase; 4 | import com.zy.blog.entity.File; 5 | import com.zy.blog.entity.FileSort; 6 | 7 | /** 8 | *

9 | * 文件分类服务类 10 | *

11 | * 12 | * @author 小章鱼 13 | * @since 2021-09-17 14 | */ 15 | public interface FileSortService extends ServiceBase { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/service/impl/FileSortServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.service.impl; 2 | 3 | import com.zy.blog.base.ServiceImplBase; 4 | import com.zy.blog.entity.FileSort; 5 | import com.zy.blog.picture.mapper.FileSortMapper; 6 | import com.zy.blog.picture.service.FileSortService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * 服务实现类 11 | * 12 | * @author 小章鱼 13 | * @since 2021-09-17 14 | */ 15 | @Service 16 | public class FileSortServiceImpl extends ServiceImplBase implements FileSortService { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_picture/src/main/java/com/zy/blog/picture/vo/StorageVO.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.picture.vo; 2 | 3 | 4 | import com.zy.blog.base.ViewBase; 5 | import lombok.Data; 6 | 7 | /** 8 | * CommentVO 9 | * 10 | * @author: 小章鱼 11 | * @create: 2022年3月11日 12 | */ 13 | @Data 14 | public class StorageVO extends ViewBase { 15 | 16 | /** 17 | * 管理员UID 18 | */ 19 | private String adminUid; 20 | 21 | /** 22 | * 存储大小 23 | */ 24 | private long storagesize; 25 | } 26 | -------------------------------------------------------------------------------- /blog_picture/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_picture-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_picture/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_picture/src/main/resources/mybatis/mybatis.cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /blog_search/src/main/java/com/zy/blog/serach/global/MessageConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.serach.global; 2 | 3 | import com.zy.blog.utils.constant.BaseMessageConf; 4 | 5 | /** 6 | * 消息通知 7 | * 8 | * @author 小章鱼_ 9 | * @date 2021年12月29日20:20:14 10 | */ 11 | public final class MessageConf extends BaseMessageConf { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /blog_search/src/main/java/com/zy/blog/serach/repository/BlogRepository.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.serach.repository; 2 | 3 | import com.zy.blog.serach.pojo.ESBlogIndex; 4 | import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 5 | 6 | /** 7 | * BlogRepository操作类 8 | * 在ElasticsearchRepository中我们可以使用Not Add Like Or Between等关键词自动创建查询语句 9 | * 10 | * @author 小章鱼 11 | * @date 2021年1月18日19:09:20 12 | */ 13 | public interface BlogRepository extends ElasticsearchRepository { 14 | } 15 | -------------------------------------------------------------------------------- /blog_search/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_search-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_search/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /blog_search/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | server: 5 | port: 7777 6 | spring: 7 | application: 8 | name: blog-search 9 | profiles: 10 | active: dev 11 | cloud: 12 | nacos: 13 | discovery: 14 | server-addr: 106.14.136.83:8848 15 | group: ${spring.profiles.active} 16 | namespace: ${spring.profiles.active} 17 | config: 18 | server-addr: 106.14.136.83:8848 19 | file-extension: yml 20 | group: ${spring.profiles.active} 21 | namespace: ${spring.profiles.active} 22 | username: nacos 23 | password: nacos 24 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/expandconfig/HandlerExceptionResolver.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.expandconfig; 2 | 3 | /*import org.springframework.web.servlet.ModelAndView;*/ 4 | 5 | /** 6 | * @description: 7 | * @author: 小章鱼 8 | * @date: 2022/5/30 22:35 9 | * 10 | **/ 11 | public class HandlerExceptionResolver/* implements org.springframework.web.servlet.HandlerExceptionResolver*/{ 12 | 13 | /*@Override 14 | public ModelAndView resolveException(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler, Exception ex) { 15 | return null; 16 | }*/ 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/AdminRoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.Admin; 5 | import com.zy.blog.entity.AdminRole; 6 | import com.zy.blog.view.AdminView; 7 | import org.apache.ibatis.annotations.Mapper; 8 | import org.springframework.web.bind.annotation.RequestParam; 9 | 10 | import java.util.List; 11 | 12 | @Mapper 13 | public interface AdminRoleMapper extends SuperMapper { 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/BlogSortMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.BlogSort; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * @author: 小章鱼 9 | * @description: 10 | * @date: 2021/8/26 22:30 11 | **/ 12 | @Mapper 13 | public interface BlogSortMapper extends SuperMapper { 14 | } 15 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/CategoryMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.CategoryMenu; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | 9 | @Mapper 10 | public interface CategoryMenuMapper extends SuperMapper { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/CollectMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.Collect; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 收藏表 Mapper 接口 9 | * 10 | * @author 小章鱼 11 | * @since 2021-09-08 12 | */ 13 | @Mapper 14 | public interface CollectMapper extends SuperMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/CommentMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Comment; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 评论表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-08 13 | */ 14 | @Mapper 15 | public interface CommentMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/CommentReportMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.CommentReport; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 评论举报表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-04 13 | */ 14 | @Mapper 15 | public interface CommentReportMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/ExceptionLogMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.ExceptionLog; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 操作日志 Mapper 接口 10 | * 11 | * @author limbo 12 | * @since 2021-11-18 13 | */ 14 | @Mapper 15 | public interface ExceptionLogMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/FeedbackMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.FeedBack; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 反馈表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-08 13 | */ 14 | @Mapper 15 | public interface FeedbackMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/LinkMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Link; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 友链表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-08 13 | */ 14 | @Mapper 15 | public interface LinkMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/MenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.Menu; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.web.bind.annotation.RequestParam; 7 | 8 | import java.util.List; 9 | 10 | @Mapper 11 | public interface MenuMapper extends SuperMapper { 12 | public List getRouterList(@RequestParam("userid") String userid); 13 | } 14 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/PictureMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Picture; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 图片表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021年9月17日16:16:42 13 | */ 14 | @Mapper 15 | public interface PictureMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/PictureSortMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.PictureSort; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 图片分类表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021年9月17日16:16:35 13 | */ 14 | @Mapper 15 | public interface PictureSortMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/ResourceSortMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.ResourceSort; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 资源分类表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021年10月19日21:24:05 13 | */ 14 | @Mapper 15 | public interface ResourceSortMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Role; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 角色表 Mapper 接口 10 | * 11 | * @author limbo 12 | * @since 2021-09-30 13 | */ 14 | @Mapper 15 | public interface RoleMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/RoleMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Role; 6 | import com.zy.blog.entity.RoleMenu; 7 | import org.apache.ibatis.annotations.Mapper; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * 角色表 Mapper 接口 13 | * 14 | * @author limbo 15 | * @since 2021-09-30 16 | */ 17 | @Mapper 18 | public interface RoleMenuMapper extends SuperMapper { 19 | 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/StudyVideoMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | 5 | import com.zy.blog.base.SuperMapper; 6 | import com.zy.blog.entity.StudyVideo; 7 | import org.apache.ibatis.annotations.Mapper; 8 | 9 | /** 10 | * 学习视频表 Mapper 接口 11 | * 12 | * @author 小章鱼 13 | * @since 2021年10月19日21:25:02 14 | */ 15 | @Mapper 16 | public interface StudyVideoMapper extends SuperMapper { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SubjectItemMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.SubjectItem; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 专题Item Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2020年8月22日22:02:31 13 | */ 14 | @Mapper 15 | public interface SubjectItemMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SubjectMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Subject; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 专题 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2020年8月22日22:02:31 13 | */ 14 | @Mapper 15 | public interface SubjectMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SysDictTypeMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.SysDictType; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | import java.util.List; 9 | 10 | @Mapper 11 | public interface SysDictTypeMapper extends SuperMapper { 12 | public List selectDictTypeList(List types); 13 | } 14 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SysLogMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.SysLog; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 操作日志 Mapper 接口 10 | * 11 | * @author limbo 12 | * @since 2021-11-18 13 | */ 14 | @Mapper 15 | public interface SysLogMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SysParamsMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | 5 | import com.zy.blog.base.SuperMapper; 6 | import com.zy.blog.entity.SysParams; 7 | import org.apache.ibatis.annotations.Mapper; 8 | 9 | /** 10 | * 参数配置 Mapper接口 11 | * 12 | * @author 小章鱼 13 | * @since 2020年7月21日15:55:34 14 | */ 15 | @Mapper 16 | public interface SysParamsMapper extends SuperMapper { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SystemConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.SystemConfig; 5 | import com.zy.blog.example.SystemConfigExample; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.apache.ibatis.annotations.Param; 8 | 9 | import java.util.List; 10 | 11 | @Mapper 12 | public interface SystemConfigMapper extends SuperMapper { 13 | 14 | public List selectSystemConfig(); 15 | 16 | int editSystemConfig(@Param("record") SystemConfig record, @Param("example") SystemConfigExample example); 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/SystemDictDataMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Dict; 6 | import com.zy.blog.entity.SysDictData; 7 | import org.apache.ibatis.annotations.Mapper; 8 | import org.springframework.web.bind.annotation.RequestParam; 9 | 10 | import java.util.List; 11 | 12 | @Mapper 13 | public interface SystemDictDataMapper extends SuperMapper { 14 | 15 | public List selectByTypeList(@RequestParam("typeId") String typeId); 16 | } 17 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/TagMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | import com.zy.blog.base.SuperMapper; 4 | import com.zy.blog.entity.Tag; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * @author: 小章鱼 9 | * @description: 10 | * @date: 2021/8/26 22:30 11 | **/ 12 | @Mapper 13 | public interface TagMapper extends SuperMapper { 14 | } 15 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/TodoMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | 5 | import com.zy.blog.base.SuperMapper; 6 | import com.zy.blog.entity.Todo; 7 | import com.zy.blog.utils.enums.EStatus; 8 | import org.apache.ibatis.annotations.Mapper; 9 | import org.apache.ibatis.annotations.Param; 10 | import org.apache.ibatis.annotations.Select; 11 | 12 | /** 13 | * 待办事项表 Mapper 接口 14 | * 15 | * @author 小章鱼 16 | * @since 2019年6月29日10:30:37 17 | */ 18 | @Mapper 19 | public interface TodoMapper extends SuperMapper { 20 | 21 | /** 22 | * 批量更新未删除的代表事项的状态 23 | * 24 | * @param done 25 | */ 26 | @Select("UPDATE t_todo SET done = #{done} WHERE STATUS = " + EStatus.ENABLE + " AND admin_uid = #{adminUid}") 27 | public void toggleAll(@Param("done") Integer done, @Param("adminUid") String adminUid); 28 | } 29 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | 5 | import com.zy.blog.base.SuperMapper; 6 | import com.zy.blog.entity.User; 7 | import org.apache.ibatis.annotations.Mapper; 8 | 9 | /** 10 | *

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

13 | * 14 | * @author xuzhixiang 15 | * @since 2021-09-04 16 | */ 17 | @Mapper 18 | public interface UserMapper extends SuperMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/VisitorMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.Visitor; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 游客表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021-09-08 13 | */ 14 | @Mapper 15 | public interface VisitorMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/WebConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.WebConfig; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 网站配置表 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021年11月11日15:01:44 13 | */ 14 | @Mapper 15 | public interface WebConfigMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/mapper/WebNavbarMapper.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.mapper; 2 | 3 | 4 | import com.zy.blog.base.SuperMapper; 5 | import com.zy.blog.entity.WebNavbar; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 门户页导航栏 Mapper 接口 10 | * 11 | * @author 小章鱼 12 | * @since 2021年2月22日16:58:56 13 | */ 14 | @Mapper 15 | public interface WebNavbarMapper extends SuperMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/AdminRoleService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | import com.zy.blog.base.ServiceBase; 4 | import com.zy.blog.entity.AdminRole; 5 | 6 | /** 7 | * @description: 8 | * @author: 小章鱼 9 | * @date: 2022/6/24 22:49 10 | **/ 11 | public interface AdminRoleService extends ServiceBase { 12 | } 13 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/CollectService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.Collect; 6 | 7 | /** 8 | * 收藏表 服务类 9 | * 10 | * @author 小章鱼 11 | * @date 2021-09-08 12 | */ 13 | public interface CollectService extends ServiceBase { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/CommentReportService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.CommentReport; 6 | 7 | /** 8 | * 评论举报表 服务类 9 | * 10 | * @author 小章鱼 11 | * @date 2021年1月12日15:46:25 12 | */ 13 | public interface CommentReportService extends ServiceBase { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/ExceptionLogService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.ExceptionLog; 6 | import com.zy.blog.view.ExceptionLogView; 7 | 8 | /** 9 | * 操作异常日志 服务类 10 | * 11 | * @author limbo 12 | * @date 2021-09-30 13 | */ 14 | public interface ExceptionLogService extends ServiceBase { 15 | 16 | /** 17 | * 获取异常日志列表 18 | * 19 | * @param exceptionLogVO 20 | * @return 21 | */ 22 | public IPage getPageList(ExceptionLogView exceptionLogVO); 23 | } 24 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/MenuService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | import com.zy.blog.base.ServiceBase; 4 | import com.zy.blog.entity.Menu; 5 | import org.springframework.web.bind.annotation.RequestParam; 6 | 7 | import java.util.List; 8 | 9 | public interface MenuService extends ServiceBase { 10 | public List getRouterList(@RequestParam("userid")String userid); 11 | } 12 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/RoleMenuService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.Role; 6 | import com.zy.blog.entity.RoleMenu; 7 | import com.zy.blog.view.RoleView; 8 | import org.apache.ibatis.annotations.Delete; 9 | 10 | /** 11 | * 角色表 服务类 12 | * 13 | * @author 小章鱼 14 | * @date 2021-09-04 15 | */ 16 | public interface RoleMenuService extends ServiceBase { 17 | 18 | 19 | 20 | /** 21 | * 新增角色 22 | * 23 | * @param 24 | */ 25 | public String addRoleMenu(String roleId,String menuUids); 26 | 27 | public String deleteRoleMenu(String roleIds); 28 | 29 | public String updateRoleMenu(RoleView RoleView); 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/SysLogService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.SysLog; 6 | import com.zy.blog.view.SysLogView; 7 | 8 | /** 9 | * 操作日志 服务类 10 | * 11 | * @author limbo 12 | * @date 2021-09-30 13 | */ 14 | public interface SysLogService extends ServiceBase { 15 | 16 | /** 17 | * 获取操作日志列表 18 | * 19 | * @param sysLogVO 20 | * @return 21 | */ 22 | public IPage getPageList(SysLogView sysLogVO); 23 | } 24 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/VisitorService.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service; 2 | 3 | ; 4 | import com.zy.blog.base.ServiceBase; 5 | import com.zy.blog.entity.Visitor; 6 | 7 | /** 8 | * 博主表 服务类 9 | * 10 | * @author 小章鱼 11 | * @date 2021-09-08 12 | */ 13 | public interface VisitorService extends ServiceBase { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/impl/AdminRoleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service.impl; 2 | 3 | import com.zy.blog.base.ServiceImplBase; 4 | import com.zy.blog.entity.AdminRole; 5 | import com.zy.blog.entity.Blog; 6 | import com.zy.blog.service.mapper.AdminRoleMapper; 7 | import com.zy.blog.service.mapper.BlogMapper; 8 | import com.zy.blog.service.service.AdminRoleService; 9 | import com.zy.blog.service.service.BlogService; 10 | import lombok.extern.slf4j.Slf4j; 11 | import org.springframework.stereotype.Service; 12 | 13 | /** 14 | * @description: 15 | * @author: 小章鱼 16 | * @date: 2022/6/24 22:50 17 | **/ 18 | @Service 19 | @Slf4j 20 | public class AdminRoleServiceImpl extends ServiceImplBase implements AdminRoleService { 21 | } 22 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/impl/CollectServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service.impl; 2 | 3 | import com.zy.blog.base.ServiceImplBase; 4 | import com.zy.blog.entity.Collect; 5 | import com.zy.blog.service.mapper.CollectMapper; 6 | import com.zy.blog.service.service.CollectService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * 收藏表 服务实现类 11 | * 12 | * @author 小章鱼 13 | * @since 2021-09-08 14 | */ 15 | @Service 16 | public class CollectServiceImpl extends ServiceImplBase implements CollectService { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/impl/CommentReportServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service.impl; 2 | 3 | import com.zy.blog.base.ServiceImplBase; 4 | import com.zy.blog.entity.CommentReport; 5 | import com.zy.blog.service.mapper.CommentReportMapper; 6 | import com.zy.blog.service.service.CommentReportService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * 评论举报表 服务实现类 11 | * 12 | * @author 小章鱼 13 | * @date 2021年1月12日15:47:47 14 | */ 15 | @Service 16 | public class CommentReportServiceImpl extends ServiceImplBase implements CommentReportService { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/impl/MenuServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service.impl; 2 | 3 | 4 | import com.zy.blog.base.ServiceImplBase; 5 | import com.zy.blog.entity.Menu; 6 | import com.zy.blog.service.mapper.MenuMapper; 7 | import com.zy.blog.service.service.MenuService; 8 | import org.springframework.stereotype.Service; 9 | 10 | import javax.annotation.Resource; 11 | import java.util.List; 12 | 13 | @Service 14 | public class MenuServiceImpl extends ServiceImplBase implements MenuService { 15 | @Resource 16 | private MenuMapper menuMapper; 17 | public List getRouterList(String userid) { 18 | return menuMapper.getRouterList(userid); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /blog_services/src/main/java/com/zy/blog/service/service/impl/VisitorServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.service.service.impl; 2 | 3 | 4 | import com.zy.blog.base.ServiceImplBase; 5 | import com.zy.blog.entity.Visitor; 6 | import com.zy.blog.service.mapper.VisitorMapper; 7 | import com.zy.blog.service.service.VisitorService; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | *

12 | * 博主表 服务实现类 13 | *

14 | * 15 | * @author 小章鱼 16 | * @since 2021-09-08 17 | */ 18 | @Service 19 | public class VisitorServiceImpl extends ServiceImplBase implements VisitorService { 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_services/src/main/resources/Mapper/ExceptionLogMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | uid, exceptionJson, exceptionMessage, happenTime 16 | 17 | 18 | -------------------------------------------------------------------------------- /blog_services/src/main/resources/Mapper/RoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | uid, roleName, status, createTime, updateTime 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /blog_services/src/main/resources/Mapper/TagMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | uid, content, status, createtime, updatetime, clickcount 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /blog_services/src/main/resources/mybatis/mybatis.cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/ServerInfo/Cpu.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.ServerInfo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * CPU相关信息 7 | * 8 | * @author ruoyi 9 | */ 10 | @Data 11 | public class Cpu { 12 | /** 13 | * 核心数 14 | */ 15 | private int cpuNum; 16 | 17 | /** 18 | * CPU总的使用率 19 | */ 20 | private double total; 21 | 22 | /** 23 | * CPU系统使用率 24 | */ 25 | private double sys; 26 | 27 | /** 28 | * CPU用户使用率 29 | */ 30 | private double used; 31 | 32 | /** 33 | * CPU当前等待率 34 | */ 35 | private double wait; 36 | 37 | /** 38 | * CPU当前空闲率 39 | */ 40 | private double free; 41 | } 42 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/ServerInfo/Mem.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.ServerInfo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 內存相关信息 7 | * 8 | * @author ruoyi 9 | */ 10 | @Data 11 | public class Mem { 12 | /** 13 | * 内存总量 14 | */ 15 | private double total; 16 | 17 | /** 18 | * 已用内存 19 | */ 20 | private double used; 21 | 22 | /** 23 | * 剩余内存 24 | */ 25 | private double free; 26 | 27 | /** 28 | * 使用率 29 | */ 30 | private double usage; 31 | } 32 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/authorityverify/AuthorityVerify.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.authorityverify; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | 9 | @Target({ElementType.METHOD, ElementType.TYPE}) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | public @interface AuthorityVerify { 12 | String value() default ""; 13 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/group/Delete.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.group; 2 | 3 | /** 4 | * 5 | * @description:Delete策略 用于删除操作 6 | * @author: 小章鱼 7 | * @date: 2021/9/29 00:29 8 | **/ 9 | public interface Delete { 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/group/GetList.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.group; 2 | 3 | /** 4 | * 5 | * @description:Delete策略 GetList Group 用于getList方法查询时 6 | * @author: 小章鱼 7 | * @date: 2021/9/29 00:28 8 | **/ 9 | public interface GetList { 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/group/GetOne.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.group; 2 | 3 | /** 4 | * 5 | * @description:Delete策略 用于get方法查询时 6 | * @author: 小章鱼 7 | * @date: 2021/9/29 00:26 8 | **/ 9 | public interface GetOne { 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/group/Insert.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.group; 2 | 3 | /** 4 | * 5 | * @description:Delete策略 用于add方法时 6 | * @author: 小章鱼 7 | * @date: 2021/9/29 00:23 8 | **/ 9 | public interface Insert { 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/group/Update.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.group; 2 | 3 | /** 4 | * 5 | * @description:Delete策略 用于 edit更新 6 | * @author: 小章鱼 7 | * @date: 2021/9/29 00:20 8 | **/ 9 | public interface Update { 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/validator/BooleanValidator.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.validator; 2 | 3 | import com.zy.blog.utils.annotion.validator.annotion.BooleanNotNULL; 4 | 5 | 6 | import javax.validation.ConstraintValidator; 7 | import javax.validation.ConstraintValidatorContext; 8 | 9 | 10 | /** 11 | * @description: 判断Boolean类型是否为空【校验器】 12 | * @author: 小章鱼 13 | * @date: 2021/9/29 11:21 14 | **/ 15 | public class BooleanValidator implements ConstraintValidator { 16 | 17 | @Override 18 | public void initialize(BooleanNotNULL constraintAnnotation) { 19 | 20 | } 21 | 22 | @Override 23 | public boolean isValid(Boolean value, ConstraintValidatorContext context) { 24 | if (value == null) { 25 | return false; 26 | } 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/validator/IntegerValidator.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.validator; 2 | 3 | 4 | import com.zy.blog.utils.annotion.validator.annotion.IntegerNotNull; 5 | 6 | import javax.validation.ConstraintValidator; 7 | import javax.validation.ConstraintValidatorContext; 8 | 9 | 10 | /** 11 | * @description: 判断Integer是否为空【校验器】 12 | * @author: 小章鱼 13 | * @date: 2021/9/29 9:29 14 | **/ 15 | public class IntegerValidator implements ConstraintValidator { 16 | 17 | @Override 18 | public void initialize(IntegerNotNull constraintAnnotation) { 19 | 20 | } 21 | 22 | @Override 23 | public boolean isValid(Integer value, ConstraintValidatorContext context) { 24 | if (value == null) { 25 | return false; 26 | } 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/annotion/validator/validator/LongValidator.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.annotion.validator.validator; 2 | 3 | import com.zy.blog.utils.annotion.validator.annotion.LongNotNull; 4 | 5 | import javax.validation.ConstraintValidator; 6 | import javax.validation.ConstraintValidatorContext; 7 | 8 | /** 9 | * @description: 判断Long是否为空【校验器】 10 | * @author: 小章鱼 11 | * @date: 2021/9/29 9:29 12 | **/ 13 | public class LongValidator implements ConstraintValidator { 14 | 15 | 16 | @Override 17 | public void initialize(LongNotNull constraintAnnotation) { 18 | 19 | } 20 | 21 | @Override 22 | public boolean isValid(Long value, ConstraintValidatorContext context) { 23 | if (value == null) { 24 | return false; 25 | } 26 | return true; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/AuthConstants.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @date: 2021/9/28 6 | */ 7 | public interface AuthConstants { 8 | /** 9 | * JWT载体key 10 | */ 11 | public final static String JWT_PAYLOAD_KEY = "payload"; 12 | 13 | public final static String JWT_Bear = "Bearer "; 14 | public final static String JWT_AUTHORITIES = "authorities"; 15 | public final static String JWT_UN = "user_name"; 16 | public final static String JWT_UID = "uid"; 17 | public final static String JWT_PRINCIPAL= "principal"; 18 | public final static String JWT_JTI = "jti"; 19 | public final static String JWT_AUTHORIZATION = "Authorization"; 20 | public final static String Token_black_prefix = "blackToken:"; 21 | 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/ECode.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | 4 | /** 状态码常量 5 | * @author 小章鱼 1716457206@qq.com 6 | */ 7 | public class ECode { 8 | 9 | /** 10 | * 操作成功 11 | */ 12 | public static final Integer SUCCESS = 200; 13 | 14 | /** 15 | * 操作失败,请求参数有误 16 | */ 17 | public static final Integer ERROR = 400; 18 | 19 | /** 20 | * 未通过token验证 21 | */ 22 | public static final Integer UNAUTHORIZED = 401; 23 | 24 | /** 25 | * 无操作权限 26 | */ 27 | public static final Integer NO_OPERATION_AUTHORITY = 402; 28 | 29 | /** 30 | * 服务器出现异常 31 | */ 32 | public static final Integer SERVER_ERROR = 500; 33 | 34 | /** 35 | * 请求次数过于频繁 36 | */ 37 | public static final Integer REQUEST_OVER_LIMIT = 502; 38 | } 39 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/EStatus.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @description: 5 | * @author: 小章鱼 6 | * @date: 2021/9/28 19:53 7 | **/ 8 | public class EStatus { 9 | /** 10 | * 删除的 11 | */ 12 | public static final int DISABLED = 0; 13 | /** 14 | * 激活的 15 | */ 16 | public static final int ENABLE = 1; 17 | /** 18 | * 冻结的 19 | */ 20 | public static final int FREEZE = 2; 21 | /** 22 | * 置顶的 23 | */ 24 | public static final int STICK = 3; 25 | } 26 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/EntityConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: 数据实体常量 对用数据表的字段名 6 | * @date: 2021/8/1 20:59 7 | **/ 8 | public class EntityConstant { 9 | /*公共*/ 10 | public final static String STATUS ="status"; 11 | public final static String CREATE_TIME ="create_time"; 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/LogConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: 6 | * @date: 2021/8/15 21:04 7 | **/ 8 | public class LogConstant { 9 | 10 | public final static String CACHE_LOG ="从缓加载数据成功:"; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/MessageConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * 消息通知 5 | * 6 | * @author 小章鱼 7 | * @date 2021年2月29日20:20:14 8 | */ 9 | public final class MessageConf extends BaseMessageConf { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/PublicConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: 6 | * @date: 2021/8/27 21:50 7 | **/ 8 | public class PublicConstant { 9 | 10 | public final static String COMMA =","; 11 | } 12 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/RedisConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * Redis常量类 5 | * @author: 小章鱼 6 | * @date: 2021/8/15 21:04 7 | **/ 8 | public class RedisConf extends BaseRedisConf { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/RedisKeyConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: 6 | * @date: 2021/8/15 20:43 7 | **/ 8 | public class RedisKeyConstant { 9 | 10 | public final static String SYSTEM_CONFIG="system_config"; 11 | } 12 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/SqlConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: sql常量字符串 6 | * @date: 2021/8/1 21:02 7 | **/ 8 | public class SqlConstant { 9 | 10 | public final static String LIMIT_ONE ="limit 1"; 11 | 12 | public final static String STATUS_ZERO ="0"; 13 | 14 | public final static String STATUS_ONE ="1"; 15 | 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/constant/SysConstant.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.constant; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @description: 系统常量 6 | * @date: 2021/7/31 11:55 7 | **/ 8 | public class SysConstant { 9 | 10 | public final static String LIST ="list"; 11 | } 12 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/ECommentSource.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 评论来源枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/28 8 | */ 9 | 10 | public enum ECommentSource { 11 | 12 | /** 13 | * 关于我 14 | */ 15 | ABOUT("ABOUT", "关于我"), 16 | 17 | /** 18 | * 博客详情 19 | */ 20 | BLOG_INFO("BLOG_INFO", "博客详情"), 21 | 22 | /** 23 | * 留言板 24 | */ 25 | MESSAGE_BOARD("MESSAGE_BOARD", "留言板"); 26 | 27 | 28 | private final String code; 29 | private final String name; 30 | 31 | ECommentSource(String code, String name) { 32 | this.code = code; 33 | this.name = name; 34 | } 35 | 36 | public String getCode() { 37 | return code; 38 | } 39 | 40 | public String getName() { 41 | return name; 42 | } 43 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/ECommentType.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 评论类型枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/28 8 | */ 9 | public class ECommentType { 10 | 11 | /** 12 | * 评论 13 | */ 14 | public static final Integer COMMENT = 0; 15 | 16 | /** 17 | * 点赞 18 | */ 19 | public static final Integer PRAISE = 1; 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EFilePriority.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 文件显示优先级 枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/11/28 8 | */ 9 | public class EFilePriority { 10 | /** 11 | * 本地文件存储 12 | */ 13 | public static final String LOCAL = "0"; 14 | /** 15 | * 七牛云对象存储 16 | */ 17 | public static final String QI_NIU = "1"; 18 | 19 | /** 20 | * Minio对象存储 21 | */ 22 | public static final String MINIO = "2"; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EGender.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 性别枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class EGender { 10 | 11 | /** 12 | * 未知 13 | */ 14 | public static final String UNKNOWN = "0"; 15 | 16 | /** 17 | * 男 18 | */ 19 | public static final String MALE = "1"; 20 | 21 | /** 22 | * 女 23 | */ 24 | public static final String FEMALE = "2"; 25 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/ELevel.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 推荐等级枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class ELevel { 10 | /** 11 | * 正常的 12 | */ 13 | public static final int NORMAL = 0; 14 | 15 | /** 16 | * 一级推荐 17 | */ 18 | public static final int FIRST = 1; 19 | 20 | /** 21 | * 二级推荐 22 | */ 23 | public static final int SECOND = 2; 24 | 25 | /** 26 | * 三级推荐 27 | */ 28 | public static final int THIRD = 3; 29 | 30 | /** 31 | * 四级推荐 32 | */ 33 | public static final int FOURTH = 4; 34 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/ELinkStatus.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 友链状态枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class ELinkStatus { 10 | 11 | /** 12 | * 申请中 13 | */ 14 | public static final Integer APPLY = 0; 15 | 16 | /** 17 | * 已发布 18 | */ 19 | public static final Integer PUBLISH = 1; 20 | 21 | /** 22 | * 已下架 23 | */ 24 | public static final Integer NO_PUBLISH = 2; 25 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EMenuType.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 菜单类型枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class EMenuType { 10 | /** 11 | * 菜单 12 | */ 13 | public static final int MENU = 0; 14 | 15 | /** 16 | * 按钮 17 | */ 18 | public static final int BUTTON = 1; 19 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EOpenStatus.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 开启状态枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class EOpenStatus { 10 | /** 11 | * 关闭 12 | */ 13 | public static final String CLOSE = "0"; 14 | /** 15 | * 开启 16 | */ 17 | public static final String OPEN = "1"; 18 | 19 | /** 20 | * 关闭 21 | */ 22 | public static final Integer CLOSE_STATUS = 0; 23 | /** 24 | * 开启 25 | */ 26 | public static final Integer OPEN_STATUS = 1; 27 | } 28 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EOriginal.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 原创状态枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/22 8 | */ 9 | public class EOriginal { 10 | 11 | /** 12 | * 原创 13 | */ 14 | public static final String ORIGINAL = "1"; 15 | 16 | /** 17 | * 非原创 18 | */ 19 | public static final String UNORIGINAL = "0"; 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EPublish.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 发布状态枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/10/27 8 | */ 9 | public class EPublish { 10 | 11 | /** 12 | * 发布 13 | */ 14 | public static final String PUBLISH = "1"; 15 | 16 | /** 17 | * 下架 18 | */ 19 | public static final String NO_PUBLISH = "0"; 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/ESearchModel.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 搜索模式枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class ESearchModel { 10 | 11 | /** 12 | * SQL搜索 13 | */ 14 | public static final String SQL = "0"; 15 | 16 | /** 17 | * ElasticSearch搜索 18 | */ 19 | public static final String ES = "1"; 20 | 21 | /** 22 | * Solr搜索 23 | */ 24 | public static final String SOLR = "2"; 25 | } 26 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/EStatus.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 状态枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public class EStatus { 10 | /** 11 | * 删除的 12 | */ 13 | public static final int DISABLED = 0; 14 | /** 15 | * 激活的 16 | */ 17 | public static final int ENABLE = 1; 18 | /** 19 | * 冻结的 20 | */ 21 | public static final int FREEZE = 2; 22 | /** 23 | * 置顶的 24 | */ 25 | public static final int STICK = 3; 26 | } 27 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/PlatformEnum.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * 平台枚举类 5 | * 6 | * @author: 小章鱼 7 | * @date: 2021/9/27 8 | */ 9 | public enum PlatformEnum { 10 | /** 11 | * Admin端 和 Web端 12 | */ 13 | ADMIN, WEB 14 | } 15 | -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/enums/SystemLanguageEnum.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.enums; 2 | 3 | /** 4 | * @author: 小章鱼 5 | * @date: 2021/10/03 6 | */ 7 | public enum SystemLanguageEnum { 8 | 9 | /** 10 | * 中文 11 | */ 12 | ZH("zh", "中文"), 13 | 14 | /** 15 | * 英文 16 | */ 17 | EN("en", "英文"); 18 | 19 | private final String code; 20 | private final String name; 21 | 22 | SystemLanguageEnum(String code, String name) { 23 | this.code = code; 24 | this.name = name; 25 | } 26 | 27 | public String getCode() { 28 | return code; 29 | } 30 | 31 | public String getName() { 32 | return name; 33 | } 34 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/exception/type/ApiInvalidParamException.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.exception.type; 2 | 3 | 4 | /** 5 | * @description: 自定义异常类型是方便全局异常拦截器将参数异常拦截,做统一的Response响应编码.如(20,"Parameter Error") 6 | * @author: 小章鱼 7 | * @date: 2021/9/30 18:26 8 | **/ 9 | public class ApiInvalidParamException extends RuntimeException { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public ApiInvalidParamException() { 13 | super(); 14 | } 15 | 16 | public ApiInvalidParamException(String message, Throwable cause) { 17 | super(message, cause); 18 | } 19 | 20 | public ApiInvalidParamException(String message) { 21 | super(message); 22 | } 23 | 24 | public ApiInvalidParamException(Throwable cause) { 25 | super(cause); 26 | } 27 | } -------------------------------------------------------------------------------- /blog_utils/src/main/java/com/zy/blog/utils/util/cache/CacheNode.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.utils.util.cache; 2 | 3 | /** 4 | * LRU算法实现 5 | * 6 | * @author 小章鱼 7 | * @date 2022/7/10 19:51 8 | */ 9 | public class CacheNode { 10 | K key; 11 | V value; 12 | CacheNode pre; 13 | CacheNode next; 14 | public CacheNode(K k,V v){ 15 | this.key=k; 16 | this.value=v; 17 | pre=this; 18 | next=this; 19 | } 20 | public CacheNode(){ 21 | pre=this; 22 | next=this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /blog_web/src/main/java/com/zy/blog/web/annotion/requestLimit/RequestLimit.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.web.annotion.requestLimit; 2 | 3 | 4 | import org.springframework.core.Ordered; 5 | import org.springframework.core.annotation.Order; 6 | 7 | import java.lang.annotation.*; 8 | 9 | /** 10 | * Request请求次数拦截 自定义注解 11 | * 12 | * @author 小章鱼 13 | * @date 2021年3月6日18:58:12 14 | */ 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Target(ElementType.METHOD) 17 | @Documented 18 | @Order(Ordered.HIGHEST_PRECEDENCE) 19 | public @interface RequestLimit { 20 | 21 | /** 22 | * 允许访问的次数,默认值100 23 | */ 24 | int amount() default 100; 25 | 26 | /** 27 | * 时间段,单位为毫秒,默认值一分钟 28 | */ 29 | long time() default 60000; 30 | } -------------------------------------------------------------------------------- /blog_web/src/main/java/com/zy/blog/web/annotion/requestLimit/RequestLimitConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.web.annotion.requestLimit; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.cloud.context.config.annotation.RefreshScope; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * RequestLimitConfig 10 | * 11 | * @author: 小章鱼 12 | * @create: 2021-03-06-18:58 13 | */ 14 | @RefreshScope 15 | @ConfigurationProperties(prefix = "request-limit") 16 | @Component 17 | @Data 18 | public class RequestLimitConfig { 19 | /** 20 | * 是否开启请求限制 21 | */ 22 | private Boolean start; 23 | 24 | /** 25 | * 允许访问的数量 26 | */ 27 | private int amount; 28 | 29 | /** 30 | * 时间段 31 | */ 32 | private long time; 33 | } 34 | -------------------------------------------------------------------------------- /blog_web/src/main/java/com/zy/blog/web/config/GlobalExceptionConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.web.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @description: 8 | * @author: 小章鱼 9 | * @date: 2022/6/6 23:40 10 | **/ 11 | @Configuration 12 | public class GlobalExceptionConfig { 13 | @Bean 14 | public HandlerExceptionResolver getHandlerExceptionResolver() { 15 | return new HandlerExceptionResolver(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /blog_web/src/main/java/com/zy/blog/web/config/RabbitMqConfig.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.web.config; 2 | 3 | import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; 4 | import org.springframework.amqp.support.converter.MessageConverter; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | @Configuration 9 | public class RabbitMqConfig { 10 | @Bean 11 | public MessageConverter messageConverter() { 12 | return new Jackson2JsonMessageConverter(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /blog_web/src/main/java/com/zy/blog/web/global/RedisConf.java: -------------------------------------------------------------------------------- 1 | package com.zy.blog.web.global; 2 | 3 | import com.zy.blog.utils.constant.BaseRedisConf; 4 | 5 | /** 6 | * Redis常量类 7 | * 8 | * @author: 小章鱼 9 | * @create: 2021-03-06-20:44 10 | */ 11 | public class RedisConf extends BaseRedisConf { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /blog_web/src/main/resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:alpine 2 | VOLUME /tmp 3 | ADD blog_web-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java","-Xms256m","-Xmx256m","-Dfile.encoding=utf-8","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /blog_web/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | #配置文件已持久化到nacos配置中心 3 | ############################################################################## 4 | spring: 5 | profiles: 6 | active: dev 7 | -------------------------------------------------------------------------------- /vue_admin/.env: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | VUE_APP_ADMIN_API = 'http://81.70.251.237:8080/admin' 3 | VUE_APP_PICTURE_API = 'http://81.70.251.237:8080/picture' 4 | 5 | // #PICTURE_API= http://120.78.126.96:8607/mogu-picture 6 | // WEB_API=http://120.78.126.96:8607/mogu-web 7 | // Search_API=http://120.78.126.96:8607/mogu-search 8 | // Spider_API=http://120.78.126.96:8607/mogu-spider 9 | // FILE_API=http://120.78.126.96:8600/ 10 | // BLOG_WEB_URL=http://120.78.126.96:9527 11 | // SOLR_API=http://120.78.126.96:8080/solr 12 | // ELASTIC_SEARCH=http://120.78.126.96:5601 13 | -------------------------------------------------------------------------------- /vue_admin/.env.dev: -------------------------------------------------------------------------------- 1 | NODE_ENV = dev 2 | VUE_APP_ADMIN_API = 'http://localhost:8080/admin' 3 | VUE_APP_PICTURE_API = 'http://localhost:8080/picture' 4 | #VUE_APP_ADMIN_API = 'http://81.70.251.237:8080/admin' 5 | #VUE_APP_PICTURE_API = 'http://81.70.251.237:8080/picture' 6 | // #PICTURE_API= http://120.78.126.96:8607/mogu-picture 7 | // WEB_API=http://120.78.126.96:8607/mogu-web 8 | // Search_API=http://120.78.126.96:8607/mogu-search 9 | // Spider_API=http://120.78.126.96:8607/mogu-spider 10 | // FILE_API=http://120.78.126.96:8600/ 11 | // BLOG_WEB_URL=http://120.78.126.96:9527 12 | // SOLR_API=http://120.78.126.96:8080/solr 13 | // ELASTIC_SEARCH=http://120.78.126.96:5601 -------------------------------------------------------------------------------- /vue_admin/.env.prod: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | #VUE_APP_ADMIN_API = 'http://81.70.251.237:8080/admin' 3 | #VUE_APP_PICTURE_API = 'http://81.70.251.237:8080/picture' 4 | VUE_APP_ADMIN_API = 'http://localhost:8080/admin' 5 | VUE_APP_PICTURE_API = 'http://localhost:8080/picture' 6 | // #PICTURE_API= http://120.78.126.96:8607/mogu-picture 7 | // WEB_API=http://120.78.126.96:8607/mogu-web 8 | // Search_API=http://120.78.126.96:8607/mogu-search 9 | // Spider_API=http://120.78.126.96:8607/mogu-spider 10 | // FILE_API=http://120.78.126.96:8600/ 11 | // BLOG_WEB_URL=http://120.78.126.96:9527 12 | // SOLR_API=http://120.78.126.96:8080/solr 13 | // ELASTIC_SEARCH=http://120.78.126.96:5601 14 | -------------------------------------------------------------------------------- /vue_admin/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | /node_modules/ 25 | -------------------------------------------------------------------------------- /vue_admin/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | # 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面 3 | COPY dist/ /usr/share/nginx/html/ 4 | #COPY dist/ /usr/share/nginx/html/ 5 | #用本地的 default.conf 配置来替换nginx镜像里的默认配置 6 | COPY default.conf /etc/nginx/conf.d/default.conf -------------------------------------------------------------------------------- /vue_admin/README.md: -------------------------------------------------------------------------------- 1 | # blog_admin_web 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /vue_admin/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /vue_admin/default.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 9527; 3 | server_name localhost; 4 | 5 | #charset koi8-r; 6 | # access_log /var/log/nginx/host.access.log main; 7 | # error_log /var/log/nginx/error.log error; 8 | 9 | location / { 10 | root /usr/share/nginx/html; 11 | index index.html index.htm; 12 | try_files $uri $uri/ /index.html; 13 | } 14 | 15 | location /picture { 16 | proxy_pass http://81.70.251.237:8080; 17 | } 18 | 19 | #error_page 404 /404.html; 20 | 21 | # redirect server error pages to the static page /50x.html 22 | # 23 | error_page 500 502 503 504 /50x.html; 24 | location = /50x.html { 25 | root /usr/share/nginx/html; 26 | } 27 | } -------------------------------------------------------------------------------- /vue_admin/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/public/favicon.ico -------------------------------------------------------------------------------- /vue_admin/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | 17 | -------------------------------------------------------------------------------- /vue_admin/src/api/collect.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/collect/getList', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /vue_admin/src/api/feedback.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getFeedbackList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/feedback/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function editFeedback(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/feedback/edit', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function deleteBatchFeedback(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/feedback/deleteBatch', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /vue_admin/src/api/log.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | export function getLogList(params) { 3 | return request({ 4 | url: process.env.VUE_APP_ADMIN_API+'/log/getLogList', 5 | method: 'post', 6 | data: params 7 | }) 8 | } 9 | 10 | export function getExceptionLogList(params) { 11 | return request({ 12 | url: process.env.VUE_APP_ADMIN_API+'/log/getExceptionList', 13 | method: 'post', 14 | data: params 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /vue_admin/src/api/oauth.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | //登录认证 4 | export function login(params) { 5 | return request({ 6 | 7 | url: process.env.VUE_APP_ADMIN_API+'/admin/login', 8 | method: 'post', 9 | params 10 | }) 11 | } 12 | 13 | export function getInfo(token) { 14 | return request({ 15 | url: process.env.VUE_APP_ADMIN_API+'/admin/getInfo', 16 | method: 'post', 17 | params: { token } 18 | }) 19 | } 20 | 21 | export function getRouter() { 22 | return request({ 23 | url: process.env.VUE_APP_ADMIN_API+'/admin/getRouter', 24 | method: 'post' 25 | }) 26 | } 27 | 28 | export function logout() { 29 | return request({ 30 | url: process.env.VUE_APP_ADMIN_API+'/admin/logout', 31 | method: 'post' 32 | }) 33 | } -------------------------------------------------------------------------------- /vue_admin/src/api/role.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getRoleList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/role/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function addRole(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/role/add', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editRole(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/role/edit', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | 27 | export function deleteRole(params) { 28 | return request({ 29 | url: process.env.VUE_APP_ADMIN_API+'/role/delete', 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /vue_admin/src/api/searchIndex.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | /** 4 | * 初始化ElasticSearch索引 5 | * @param params 6 | */ 7 | export function initElasticIndex(params) { 8 | return request({ 9 | url: process.env.VUE_APP_ADMIN_API+'/search/initElasticIndex', 10 | method: 'post', 11 | params 12 | }) 13 | } 14 | 15 | /** 16 | * 初始化solr索引 17 | * @param params 18 | */ 19 | export function initSolrIndex(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/search/initSolrIndex', 22 | method: 'post', 23 | params 24 | }) 25 | } 26 | 27 | -------------------------------------------------------------------------------- /vue_admin/src/api/serverMonitor.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | const baseUrl=process.env.VUE_APP_ADMIN_API; 3 | const Prix=process.env.VUE_APP_ADMIN_API; 4 | export function getServerInfo(params) { 5 | return request({ 6 | url: process.env.VUE_APP_ADMIN_API+ '/monitor/getServerInfo', 7 | method: 'get', 8 | params 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /vue_admin/src/api/spider.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function pictureSpider(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/spider/spiderPicture', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | -------------------------------------------------------------------------------- /vue_admin/src/api/studyVideo.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getStudyVideoList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/studyVideo/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function addStudyVideo(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/studyVideo/add', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editStudyVideo(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/studyVideo/edit', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | 27 | export function deleteBatchStudyVideo(params) { 28 | return request({ 29 | url: process.env.VUE_APP_ADMIN_API+'/studyVideo/deleteBatch', 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /vue_admin/src/api/subject.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSubjectList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/subject/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function addSubject(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/subject/add', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editSubject(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/subject/edit', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | 27 | export function deleteBatchSubject(params) { 28 | return request({ 29 | url: process.env.VUE_APP_ADMIN_API+'/subject/deleteBatch', 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | 35 | 36 | -------------------------------------------------------------------------------- /vue_admin/src/api/sysConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSysConfig() { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/sysConfig/getSystemConfig', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function editSysConfig(params) { 11 | return request({ 12 | url: process.env.VUE_APP_ADMIN_API+'/sysConfig/editSystemConfig', 13 | method: 'post', 14 | data:params 15 | }) 16 | } -------------------------------------------------------------------------------- /vue_admin/src/api/sysDict.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getDict(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/dictData/getDictByTypes', 6 | method: 'post', 7 | data: params 8 | }) 9 | } -------------------------------------------------------------------------------- /vue_admin/src/api/sysDictType.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSysDictTypeList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/sysDictType/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function addSysDictType(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/sysDictType/add', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editSysDictType(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/sysDictType/edit', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | 27 | export function deleteBatchSysDictType(params) { 28 | return request({ 29 | url: process.env.VUE_APP_ADMIN_API+'/sysDictType/deleteBatch', 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /vue_admin/src/api/sysParams.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSysParamsList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/sysParams/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function addSysParams(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/sysParams/add', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editSysParams(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/sysParams/edit', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | 27 | export function deleteBatchSysParams(params) { 28 | return request({ 29 | url: process.env.VUE_APP_ADMIN_API+'/sysParams/deleteBatch', 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /vue_admin/src/api/system.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getMe(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/system/getMe', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function editMe(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/system/editMe', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function changePwd(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/system/changePwd', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /vue_admin/src/api/systemConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSystemConfig(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/sysConfig/getSystemConfig', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function cleanRedisByKey(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/sysConfig/cleanRedisByKey', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | export function editSystemConfig(params) { 20 | return request({ 21 | url: process.env.VUE_APP_ADMIN_API+'/sysConfig/editSystemConfig', 22 | method: 'post', 23 | data: params 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /vue_admin/src/api/test.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function cropperPicture(params) { 4 | return request({ 5 | url: process.env.VUE_APP_PICTURE_API + '/file/cropperPicture', 6 | method: 'POST', 7 | data: params 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /vue_admin/src/api/webConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getWebConfig(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/webConfig/getWebConfig', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function editWebConfig(params) { 12 | return request({ 13 | url: process.env.VUE_APP_ADMIN_API+'/webConfig/editWebConfig', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_admin/src/api/webVisit.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getWebVisitList(params) { 4 | return request({ 5 | url: process.env.VUE_APP_ADMIN_API+'/webVisit/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /vue_admin/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /vue_admin/src/assets/404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/404.jpg -------------------------------------------------------------------------------- /vue_admin/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/404_images/404.png -------------------------------------------------------------------------------- /vue_admin/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /vue_admin/src/assets/405.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/405.jpg -------------------------------------------------------------------------------- /vue_admin/src/assets/images/common/logo_footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/common/logo_footer.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/common/logo_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/common/logo_header.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/error/401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/error/401.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/error/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/error/404.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/error/500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/error/500.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/dir.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_avi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_avi.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_chm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_chm.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_code.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_css.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_csv.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_dmg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_dmg.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_excel.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_exe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_exe.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_gif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_gif.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_html.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_img.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_jar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_jar.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_js.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_json.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_md.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_music.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_oa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_oa.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_open.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_pdf.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_pic.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_ppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_ppt.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_rar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_rar.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_rtf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_rtf.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_sql.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_svg.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_txt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_txt.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_unknown.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_video.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_war.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_word.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/file/file_zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/file/file_zip.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/footer/QQImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/footer/QQImg.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/footer/wechatImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/footer/wechatImg.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/login/qqIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/login/qqIcon.png -------------------------------------------------------------------------------- /vue_admin/src/assets/images/settings/userImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/images/settings/userImg.png -------------------------------------------------------------------------------- /vue_admin/src/assets/img/emoji_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/img/emoji_sprite.png -------------------------------------------------------------------------------- /vue_admin/src/assets/img/face_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/img/face_logo.png -------------------------------------------------------------------------------- /vue_admin/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/logo.png -------------------------------------------------------------------------------- /vue_admin/src/assets/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/assets/logo/logo.png -------------------------------------------------------------------------------- /vue_admin/src/assets/styles/css/base.css: -------------------------------------------------------------------------------- 1 | *{ margin:0; padding:0; box-sizing: border-box;} 2 | html{ height: 100%; } 3 | body{ height: 100%;font-size:16px; font-family:微软雅黑;font-style:normal;overflow-x: hidden;} 4 | a{ text-decoration:none} 5 | /*a,a:hover{ transition:background 0.5s linear;-webkit-transition:background 0.5s linear;-moz-transition:background 0.5s linear;-o-transition:background 0.5s linear;}*/ 6 | em, i{font-style: normal;} 7 | ul, ol, li{list-style: none;} 8 | img{ border:none;vertical-align:middle;} 9 | input,select,textarea{outline:none;border:none;background:none;} 10 | textarea{resize:none;} 11 | p{line-height:22px;} 12 | .fl{float: left;} 13 | .fr{float: right;} 14 | .clear{ clear:both; height:0px; width:100%; overflow:hidden;} 15 | .position{position:relative;} 16 | 17 | /*公共样式*/ 18 | .layout{ width:1100px; display:table; margin:0 auto;} 19 | .margin-bottom { margin-bottom: 15px; } -------------------------------------------------------------------------------- /vue_admin/src/assets/styles/css/element-cover.css: -------------------------------------------------------------------------------- 1 | .el-avatar>img { 2 | width: 100%; 3 | } 4 | .el-textarea__inner { 5 | font-family: inherit; 6 | } -------------------------------------------------------------------------------- /vue_admin/src/assets/styles/css/mediaScreen.styl: -------------------------------------------------------------------------------- 1 | @media screen and (max-width 980px) 2 | // 顶部导航栏 3 | .headerWrapper 4 | .headerItem 5 | padding 0 10px !important 6 | .userDisplay 7 | width 110px !important 8 | .el-menu-demo 9 | .userDisplay 10 | .username-header 11 | display none !important 12 | // 底部 13 | .footer-wrapper 14 | .footer-top 15 | .info 16 | .logo 17 | height 80px !important 18 | .link-wrapper 19 | padding 6px 6px 6px 12px !important 20 | line-height 30px !important -------------------------------------------------------------------------------- /vue_admin/src/assets/styles/mixins.styl: -------------------------------------------------------------------------------- 1 | setScrollbar(scrollbarWidth) 2 | // 修改滚动条下面的宽度 3 | &::-webkit-scrollbar 4 | width scrollbarWidth 5 | // 修改滚动条的下面的样式 6 | &::-webkit-scrollbar-track 7 | background-color #EBEEF5 8 | -webkit-border-radius 2em 9 | -moz-border-radius 2em 10 | border-radius 2em 11 | // 修改滑块 12 | &::-webkit-scrollbar-thumb 13 | background-color #909399 14 | -webkit-border-radius 2em 15 | -moz-border-radius 2em 16 | border-radius 2em -------------------------------------------------------------------------------- /vue_admin/src/assets/styles/varibles.styl: -------------------------------------------------------------------------------- 1 | $Primary = #409EFF 2 | $Success = #67C23A 3 | $Warning = #E6A23C 4 | $Danger = #F56C6C 5 | $Info = #909399 6 | 7 | $PrimaryHover = #ecf5ff 8 | $SuccessHover = #f0f9eb 9 | $WarningHover = #fdf6ec 10 | $DangerHover = #fdf6ec 11 | $InfoHover = #fef0f0 12 | 13 | $PrimaryText = #303133 14 | $RegularText = #606266 15 | $SecondaryText = #909399 16 | $Placeholder = #C0C4CC 17 | 18 | $BorderBase = #DCDFE6 19 | $BorderLight = #E4E7ED 20 | $BorderLighter = #EBEEF5 21 | $BorderExtralight = #F2F6FC 22 | 23 | $tabBackColor = #F5F7FA 24 | $tabBoxShadow = 0 2px 12px 0 rgba(0, 0, 0, 0.1) 25 | $tabBoxShadowMin = 0 2px 4px 0 rgba(0, 0, 0, 0.1) -------------------------------------------------------------------------------- /vue_admin/src/components/AvatarCropper/utils/data2blob.js: -------------------------------------------------------------------------------- 1 | /** 2 | * database64文件格式转换为2进制 3 | * 4 | * @param {[String]} data dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了 5 | * @param {[String]} mime [description] 6 | * @return {[blob]} [description] 7 | */ 8 | export default function(data, mime) { 9 | data = data.split(',')[1] 10 | data = window.atob(data) 11 | var ia = new Uint8Array(data.length) 12 | for (var i = 0; i < data.length; i++) { 13 | ia[i] = data.charCodeAt(i) 14 | } 15 | // canvas.toDataURL 返回的默认格式就是 image/png 16 | return new Blob([ia], { 17 | type: mime 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /vue_admin/src/components/AvatarCropper/utils/mimes.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'jpg': 'image/jpeg', 3 | 'png': 'image/png', 4 | 'gif': 'image/gif', 5 | 'svg': 'image/svg+xml', 6 | 'psd': 'image/photoshop' 7 | } 8 | -------------------------------------------------------------------------------- /vue_admin/src/components/EmojiPanel/Emoji/Emoji.vue: -------------------------------------------------------------------------------- 1 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /vue_admin/src/components/HtmlPanel/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/src/components/HtmlPanel/index.vue -------------------------------------------------------------------------------- /vue_admin/src/components/MoGu/Doc/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /vue_admin/src/components/MoGu/Git/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | 25 | -------------------------------------------------------------------------------- /vue_admin/src/components/MoGu/Website/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | 25 | -------------------------------------------------------------------------------- /vue_admin/src/directive/downloadFile/download.js: -------------------------------------------------------------------------------- 1 | export default { 2 | inserted(el, binding) { 3 | el.style.cssText = 'cursor: pointer;color:write;' 4 | el.addEventListener('click', () => { 5 | let link = document.createElement('a') 6 | let url = binding.value 7 | // 这里是将url转成blob地址, 8 | fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址 9 | link.href = URL.createObjectURL(blob) 10 | link.download = '' 11 | document.body.appendChild(link) 12 | link.click() 13 | }) 14 | }) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /vue_admin/src/directive/downloadFile/index.js: -------------------------------------------------------------------------------- 1 | import download from './download' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('download', download) 5 | } 6 | 7 | if (window.Vue) { 8 | window['download'] = download 9 | Vue.use(install); // eslint-disable-line 10 | } 11 | 12 | download.install = install 13 | export default download 14 | -------------------------------------------------------------------------------- /vue_admin/src/directive/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import permission from './permission' 3 | import downloadFile from './downloadFile' 4 | 5 | const directives = [permission, downloadFile] 6 | directives.forEach(d => Vue.use(d)) 7 | -------------------------------------------------------------------------------- /vue_admin/src/directive/permission/index.js: -------------------------------------------------------------------------------- 1 | import permission from './permission' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('permission', permission) 5 | } 6 | 7 | if (window.Vue) { 8 | window['permission'] = permission 9 | Vue.use(install); // eslint-disable-line 10 | } 11 | 12 | permission.install = install 13 | export default permission 14 | -------------------------------------------------------------------------------- /vue_admin/src/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 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue_admin/src/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 | -------------------------------------------------------------------------------- /vue_admin/src/layout/components/AppMain.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 21 | 22 | 34 | 35 | 43 | -------------------------------------------------------------------------------- /vue_admin/src/layout/components/Sidebar/FixiOSBug.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | device() { 4 | return this.$store.state.app.device 5 | } 6 | }, 7 | mounted() { 8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug 9 | // https://github.com/PanJiaChen/vue-element-admin/issues/1135 10 | this.fixBugIniOS() 11 | }, 12 | methods: { 13 | fixBugIniOS() { 14 | const $subMenu = this.$refs.subMenu 15 | if ($subMenu) { 16 | const handleMouseleave = $subMenu.handleMouseleave 17 | $subMenu.handleMouseleave = (e) => { 18 | if (this.device === 'mobile') { 19 | return 20 | } 21 | handleMouseleave(e) 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vue_admin/src/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /vue_admin/src/layout/components/Sidebar/Link.vue: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 37 | -------------------------------------------------------------------------------- /vue_admin/src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as Navbar } from './Navbar' 2 | export { default as Sidebar } from './Sidebar' 3 | export { default as AppMain } from './AppMain' 4 | -------------------------------------------------------------------------------- /vue_admin/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import ElementUI from 'element-ui';//引入element-ui 3 | import 'element-ui/lib/theme-chalk/index.css'; 4 | import App from './App.vue' 5 | import locale from 'element-ui/lib/locale/lang/en' 6 | import router from './router' //路由 7 | import store from './store' //vuex状态管理器 8 | import prototype from './utils/prototype' 9 | import '@/style/index.scss' // global css全局样式 10 | import '@/permission' // permission control 11 | import '@/icons' // icon 12 | 13 | import xss from 'xss' 14 | // 定义全局XSS解决方法 15 | Object.defineProperty(Vue.prototype, '$xss', { 16 | value: xss 17 | }) 18 | Vue.use(ElementUI, { locale }) 19 | Vue.use(prototype) 20 | Vue.config.productionTip = false 21 | 22 | new Vue({ 23 | router, 24 | store, 25 | render: h => h(App), 26 | }).$mount('#app') 27 | -------------------------------------------------------------------------------- /vue_admin/src/settings.js: -------------------------------------------------------------------------------- 1 | //全局设置 2 | module.exports = { 3 | 4 | title: '小章鱼博客后台管理系统' 5 | 6 | 7 | } 8 | -------------------------------------------------------------------------------- /vue_admin/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import user from './modules/user' 4 | import app from './modules/app' 5 | import settings from './modules/settings' 6 | import permission from './modules/permission' //导入permission 7 | import getters from './getters' 8 | import tagsView from './modules/tagsView' 9 | import networkDisk from "./modules/networkDisk"; 10 | //import createPersistedState from "vuex-persistedstate" //vuex持久化插件 11 | Vue.use(Vuex) 12 | const store = new Vuex.Store({ 13 | modules:{ 14 | app, 15 | user, 16 | settings, 17 | permission, 18 | tagsView, 19 | networkDisk 20 | }, 21 | getters 22 | //vuex缓存插件 23 | // plugins: [createPersistedState({ 24 | // paths:['user','permission'] 25 | // })] 26 | }) 27 | 28 | export default store -------------------------------------------------------------------------------- /vue_admin/src/style/mixin.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix { 2 | &:after { 3 | content: ""; 4 | display: table; 5 | clear: both; 6 | } 7 | } 8 | 9 | @mixin scrollBar { 10 | &::-webkit-scrollbar-track-piece { 11 | background: #d3dce6; 12 | } 13 | 14 | &::-webkit-scrollbar { 15 | width: 6px; 16 | } 17 | 18 | &::-webkit-scrollbar-thumb { 19 | background: #99a9bf; 20 | border-radius: 20px; 21 | } 22 | } 23 | 24 | @mixin relative { 25 | position: relative; 26 | width: 100%; 27 | height: 100%; 28 | } 29 | -------------------------------------------------------------------------------- /vue_admin/src/style/variables.scss: -------------------------------------------------------------------------------- 1 | // sidebar 2 | $menuText:#bfcbd9; 3 | $menuActiveText:#409EFF; 4 | $subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951 5 | 6 | $menuBg:#304156; 7 | $menuHover:#263445; 8 | 9 | $subMenuBg:#1f2d3d; 10 | $subMenuHover:#001528; 11 | 12 | $sideBarWidth: 210px; 13 | 14 | // the :export directive is the magic sauce for webpack 15 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 16 | :export { 17 | menuText: $menuText; 18 | menuActiveText: $menuActiveText; 19 | subMenuActiveText: $subMenuActiveText; 20 | menuBg: $menuBg; 21 | menuHover: $menuHover; 22 | subMenuBg: $subMenuBg; 23 | subMenuHover: $subMenuHover; 24 | sideBarWidth: $sideBarWidth; 25 | } 26 | -------------------------------------------------------------------------------- /vue_admin/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'blog-admin-token' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | //设置token到cookie 10 | export function setToken(token) { 11 | return Cookies.set(TokenKey, token) 12 | } 13 | 14 | export function removeToken() { 15 | return Cookies.remove(TokenKey) 16 | } 17 | -------------------------------------------------------------------------------- /vue_admin/src/utils/cookieUtils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * CookieUtil常用的一些工具类 3 | */ 4 | 5 | export function setCookie(name, value, days) { 6 | var exp = new Date(); 7 | exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000); 8 | document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); 9 | } 10 | 11 | export function getCookie(name) { 12 | var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)") 13 | if (arr = document.cookie.match(reg)) 14 | return unescape(arr[2]) 15 | else 16 | return null 17 | } 18 | 19 | export function delCookie(name) { 20 | var exp = new Date(); 21 | exp.setTime(exp.getTime() - 1); 22 | var cval = getCookie(name); 23 | if (cval != null) 24 | document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); 25 | } -------------------------------------------------------------------------------- /vue_admin/src/utils/generator/css.js: -------------------------------------------------------------------------------- 1 | const styles = { 2 | 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', 3 | 'el-upload': '.el-upload__tip{line-height: 1.2;}' 4 | } 5 | 6 | function addCss(cssList, el) { 7 | const css = styles[el.tag] 8 | css && cssList.indexOf(css) === -1 && cssList.push(css) 9 | if (el.children) { 10 | el.children.forEach(el2 => addCss(cssList, el2)) 11 | } 12 | } 13 | 14 | export function makeUpCss(conf) { 15 | const cssList = [] 16 | conf.fields.forEach(el => addCss(cssList, el)) 17 | return cssList.join('\n') 18 | } 19 | -------------------------------------------------------------------------------- /vue_admin/src/utils/generator/drawingDefalut.js: -------------------------------------------------------------------------------- 1 | export default [ 2 | { 3 | layout: 'colFormItem', 4 | tagIcon: 'input', 5 | label: '手机号', 6 | vModel: 'mobile', 7 | formId: 6, 8 | tag: 'el-input', 9 | placeholder: '请输入手机号', 10 | defaultValue: '', 11 | span: 24, 12 | style: { width: '100%' }, 13 | clearable: true, 14 | prepend: '', 15 | append: '', 16 | 'prefix-icon': 'el-icon-mobile', 17 | 'suffix-icon': '', 18 | maxlength: 11, 19 | 'show-word-limit': true, 20 | readonly: false, 21 | disabled: false, 22 | required: true, 23 | changeTag: true, 24 | regList: [{ 25 | pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', 26 | message: '手机号格式错误' 27 | }] 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /vue_admin/src/utils/get-title.js: -------------------------------------------------------------------------------- 1 | import defaultSettings from '@/settings' 2 | 3 | const title = defaultSettings.title || '博客后台系统' 4 | 5 | export default function getPageTitle(pageTitle) { 6 | if (pageTitle) { 7 | return `${pageTitle} - ${title}` 8 | } 9 | return `${title}` 10 | } 11 | -------------------------------------------------------------------------------- /vue_admin/src/utils/prototype.js: -------------------------------------------------------------------------------- 1 | import commonUtil from './commonUtil' 2 | 3 | export default { 4 | install(Vue,options) { 5 | Vue.prototype.$commonUtil = commonUtil.FUNCTIONS 6 | Vue.prototype.$ECode = commonUtil.ECode 7 | Vue.prototype.$SysConf = commonUtil.SysConf 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vue_admin/src/utils/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by PanJiaChen on 16/11/18. 3 | */ 4 | 5 | /** 6 | * @param {string} path 7 | * @returns {Boolean} 8 | */ 9 | export function isExternal(path) { 10 | return /^(https?:|mailto:|tel:)/.test(path) 11 | } 12 | 13 | /** 14 | * @param {string} str 15 | * @returns {Boolean} 16 | */ 17 | export function validUsername(str) { 18 | const valid_map = ['admin', 'editor'] 19 | return valid_map.indexOf(str.trim()) >= 0 20 | } 21 | -------------------------------------------------------------------------------- /vue_admin/src/utils/webUtils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * WebUtil常用的一些工具类 3 | */ 4 | 5 | export function formatData(arr) { 6 | const params = new URLSearchParams() 7 | for (var key in arr) { 8 | params.append(key, arr[key]) 9 | } 10 | return params 11 | } 12 | 13 | export function formatDataToJson(arr) { 14 | var params = "[" 15 | for (var key in arr) { 16 | params = params + key + ":" + arr[key] + "," 17 | } 18 | params += "]" 19 | return params 20 | } 21 | 22 | export function formatDataToForm(arr) { 23 | const params = new FormData() 24 | for (var key in arr) { 25 | console.log('"' + key + '"', arr[key]) 26 | params.append('"' + key + '"', arr[key]) 27 | } 28 | return params 29 | } -------------------------------------------------------------------------------- /vue_admin/src/view/blog/collect.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /vue_admin/src/view/dashboard/index1.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /vue_admin/src/view/layout/components/AppMain.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 21 | 22 | 30 | -------------------------------------------------------------------------------- /vue_admin/src/view/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /vue_admin/src/view/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as Navbar } from './Navbar' 2 | export { default as Sidebar } from './Sidebar' 3 | export { default as AppMain } from './AppMain' 4 | export { default as TagsView } from './TagsView' 5 | -------------------------------------------------------------------------------- /vue_admin/src/view/user/visitor.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 23 | -------------------------------------------------------------------------------- /vue_admin/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/static/.gitkeep -------------------------------------------------------------------------------- /vue_admin/static/cdn/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/static/cdn/fonts/element-icons.ttf -------------------------------------------------------------------------------- /vue_admin/static/cdn/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_admin/static/cdn/fonts/element-icons.woff -------------------------------------------------------------------------------- /vue_web/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"], 12 | "env": { 13 | "test": { 14 | "presets": ["env", "stage-2"], 15 | "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vue_web/.default.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/.default.env -------------------------------------------------------------------------------- /vue_web/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /vue_web/.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=production 2 | VUE_BLOG_WEB = http://http://81.70.251.*:9527 3 | PICTURE_API = http://81.70.251.*:8080/picture 4 | WEB_API = http://81.70.251.*:8080/web 5 | SEARCH_API = http://81.70.251.*:8080/search -------------------------------------------------------------------------------- /vue_web/.eslintignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /config/ 3 | /dist/ 4 | /*.js 5 | /test/unit/coverage/ 6 | -------------------------------------------------------------------------------- /vue_web/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | /test/unit/coverage/ 8 | /test/e2e/reports/ 9 | selenium-debug.log 10 | 11 | # Editor directories and files 12 | .idea 13 | .vscode 14 | *.suo 15 | *.ntvs* 16 | *.njsproj 17 | *.sln 18 | dist.zip 19 | debug.log 20 | /dist/ 21 | -------------------------------------------------------------------------------- /vue_web/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /vue_web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | # 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面 3 | COPY dist/ /usr/share/nginx/html/ 4 | #COPY dist/ /usr/share/nginx/html/ 5 | #用本地的 default.conf 配置来替换nginx镜像里的默认配置 6 | COPY default.conf /etc/nginx/conf.d/default.conf 7 | -------------------------------------------------------------------------------- /vue_web/README.md: -------------------------------------------------------------------------------- 1 | # zhangyublog 2 | 3 | > A Vue.js project 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | # build for production and view the bundle analyzer report 18 | npm run build --report 19 | 20 | # run unit tests 21 | npm run unit 22 | 23 | # run e2e tests 24 | npm run e2e 25 | 26 | # run all tests 27 | npm test 28 | ``` 29 | 30 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 31 | -------------------------------------------------------------------------------- /vue_web/build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/build/logo.png -------------------------------------------------------------------------------- /vue_web/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vue_web/config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"', 7 | 8 | VUE_BLOG_WEB: '"http://localhost:9527"', 9 | PICTURE_API: '"http://localhost:8080/picture"', 10 | WEB_API: '"http://localhost:8080/web"', 11 | SEARCH_API: '"http://localhost:8080/search"', 12 | 13 | // VUE_BLOG_WEB: '"http://81.70.251.*:9527"', 14 | // PICTURE_API: '"http://81.70.251.*:8080/picture"', 15 | // WEB_API: '"http://81.70.251.*:8080/web"', 16 | // SEARCH_API: '"http://81.70.251.*:8080/search"', 17 | 18 | }) 19 | -------------------------------------------------------------------------------- /vue_web/config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"', 4 | 5 | // ############## 注意 ############ 6 | // 生产环境配置文件在项目 vue_blog_admin根目录下的 .env文件 进行配置和修改【本配置文件已失效】 7 | } 8 | -------------------------------------------------------------------------------- /vue_web/config/test.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const devEnv = require('./dev.env') 4 | 5 | module.exports = merge(devEnv, { 6 | NODE_ENV: '"testing"', 7 | //配置测试环境 8 | WEB_API: '"http://localhost:8603"', 9 | }) 10 | -------------------------------------------------------------------------------- /vue_web/env-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/env-config.js -------------------------------------------------------------------------------- /vue_web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/favicon.ico -------------------------------------------------------------------------------- /vue_web/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /vue_web/src/api/about.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getMe (params) { 4 | return request({ 5 | url: process.env.WEB_API + '/about/getMe', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getContact (params) { 12 | return request({ 13 | url: process.env.WEB_API + '/about/getContact', 14 | method: 'get', 15 | params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_web/src/api/classify.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getBlogSortList(params) { 4 | return request({ 5 | url: process.env.WEB_API + '/classify/getBlogSortList', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getArticleByBlogSortUid(params) { 12 | return request({ 13 | url: process.env.WEB_API + '/classify/getArticleByBlogSortUid', 14 | method: 'get', 15 | params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_web/src/api/resource.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getStudyVideoBySort (params) { 4 | return request({ 5 | url: process.env.WEB_API + '/resource/getStudyVideoBySort', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /vue_web/src/api/sort.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSortList (params) { 4 | return request({ 5 | url: process.env.WEB_API + '/sort/getSortList', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getArticleByMonth (params) { 12 | return request({ 13 | url: process.env.WEB_API + '/sort/getArticleByMonth', 14 | method: 'get', 15 | params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_web/src/api/subject.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getSubjectList(params) { 4 | return request({ 5 | url: process.env.WEB_API + '/subject/getList', 6 | method: 'post', 7 | data: params 8 | }) 9 | } 10 | 11 | export function getSubjectItemList(params) { 12 | return request({ 13 | url: process.env.WEB_API + '/subject/getItemList', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /vue_web/src/api/sysDictData.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getListByDictType(params) { 4 | return request({ 5 | url: process.env.WEB_API + '/sysDictData/getListByDictType', 6 | method: 'post', 7 | params 8 | }) 9 | } 10 | 11 | export function getListByDictTypeList(params) { 12 | return request({ 13 | url: process.env.WEB_API + '/sysDictData/getListByDictTypeList', 14 | method: 'post', 15 | data: params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_web/src/api/tag.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getTagList(params) { 4 | return request({ 5 | url: process.env.WEB_API + '/tag/getTagList', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getArticleByTagUid(params) { 12 | return request({ 13 | url: process.env.WEB_API + '/tag/getArticleByTagUid', 14 | method: 'get', 15 | params 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /vue_web/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /vue_web/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/404_images/404.png -------------------------------------------------------------------------------- /vue_web/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /vue_web/src/assets/iconfont/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/iconfont/iconfont.eot -------------------------------------------------------------------------------- /vue_web/src/assets/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /vue_web/src/assets/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/iconfont/iconfont.woff -------------------------------------------------------------------------------- /vue_web/src/assets/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /vue_web/src/assets/img/emoji_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/img/emoji_sprite.png -------------------------------------------------------------------------------- /vue_web/src/assets/img/face_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/img/face_logo.png -------------------------------------------------------------------------------- /vue_web/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/assets/logo.png -------------------------------------------------------------------------------- /vue_web/src/components/AvatarCropper/utils/data2blob.js: -------------------------------------------------------------------------------- 1 | /** 2 | * database64文件格式转换为2进制 3 | * 4 | * @param {[String]} data dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了 5 | * @param {[String]} mime [description] 6 | * @return {[blob]} [description] 7 | */ 8 | export default function(data, mime) { 9 | data = data.split(',')[1] 10 | data = window.atob(data) 11 | var ia = new Uint8Array(data.length) 12 | for (var i = 0; i < data.length; i++) { 13 | ia[i] = data.charCodeAt(i) 14 | } 15 | // canvas.toDataURL 返回的默认格式就是 image/png 16 | return new Blob([ia], { 17 | type: mime 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /vue_web/src/components/AvatarCropper/utils/mimes.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'jpg': 'image/jpeg', 3 | 'png': 'image/png', 4 | 'gif': 'image/gif', 5 | 'svg': 'image/svg+xml', 6 | 'psd': 'image/photoshop' 7 | } 8 | -------------------------------------------------------------------------------- /vue_web/src/components/ChangYan/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 23 | -------------------------------------------------------------------------------- /vue_web/src/components/EmojiPanel/Emoji/Emoji.vue: -------------------------------------------------------------------------------- 1 | 4 | 18 | 21 | -------------------------------------------------------------------------------- /vue_web/src/components/Head/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /vue_web/src/components/Sticky/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/src/components/Sticky/index.vue -------------------------------------------------------------------------------- /vue_web/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import app from './app' 4 | import user from './user' 5 | 6 | //让vuex生效 7 | Vue.use(Vuex) 8 | 9 | const store = new Vuex.Store({ 10 | 11 | // 将app和user放在store中 12 | modules: { 13 | app, 14 | user 15 | } 16 | }) 17 | 18 | export default store 19 | -------------------------------------------------------------------------------- /vue_web/src/store/mutation-types.js: -------------------------------------------------------------------------------- 1 | export const SET_COMMENT_LIST = "setCommentList" 2 | export const SET_USER_TAG = "setUserTag" 3 | export const SET_USER_INFO = "setUserInfo" 4 | export const SET_LOGIN_MESSAGE = 'setLoginMessage' 5 | export const GET_USER_INFO = "getUserInfo" 6 | export const SET_LOGIN_STATE = "setLoginState" 7 | export const GET_LOGIN_STATE = "getLoginState" 8 | 9 | export const SET_WEB_CONFIG_DATA = "setWebConfigData" 10 | 11 | export const INCREMENT = "increment" 12 | export const DECREMENT = "decrement" 13 | -------------------------------------------------------------------------------- /vue_web/src/utils/math.js: -------------------------------------------------------------------------------- 1 | export default { 2 | MathConfig() { 3 | this.loadjs('../../../static/js/jquery-1.9.1.min.js'); 4 | MathJax.Hub.Config({ 5 | showProcessingMessages: false, 6 | messageStyle: "none", 7 | extensions: ["tex2jax.js"], 8 | jax: ["input/TeX", "output/HTML-CSS"], 9 | tex2jax: { 10 | inlineMath: [["$", "$"]], 11 | displayMath: [["", "", ""]], 12 | skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'a'], 13 | ignoreClass: "comment-content" 14 | }, 15 | "HTML-CSS": { 16 | availableFonts: ["STIX", "TeX"], 17 | showMathMenu: true 18 | } 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vue_web/src/utils/prototype.js: -------------------------------------------------------------------------------- 1 | import commonUtil from './commonUtil' 2 | 3 | export default { 4 | install(Vue, options) { 5 | Vue.prototype.$commonUtil = commonUtil.FUNCTIONS 6 | Vue.prototype.$ECode = commonUtil.ECode 7 | Vue.prototype.$SysConf = commonUtil.SysConf 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vue_web/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/.gitkeep -------------------------------------------------------------------------------- /vue_web/static/cdn/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/cdn/fonts/element-icons.ttf -------------------------------------------------------------------------------- /vue_web/static/cdn/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/cdn/fonts/element-icons.woff -------------------------------------------------------------------------------- /vue_web/static/highlight/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-string, 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-symbol, 19 | .hljs-bullet, 20 | .hljs-section, 21 | .hljs-addition, 22 | .hljs-attribute, 23 | .hljs-link { 24 | color: #888; 25 | } 26 | 27 | .hljs-comment, 28 | .hljs-quote, 29 | .hljs-meta, 30 | .hljs-deletion { 31 | color: #ccc; 32 | } 33 | 34 | .hljs-keyword, 35 | .hljs-selector-tag, 36 | .hljs-section, 37 | .hljs-name, 38 | .hljs-type, 39 | .hljs-strong { 40 | font-weight: bold; 41 | } 42 | 43 | .hljs-emphasis { 44 | font-style: italic; 45 | } 46 | -------------------------------------------------------------------------------- /vue_web/static/highlight/styles/brown-papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/highlight/styles/brown-papersq.png -------------------------------------------------------------------------------- /vue_web/static/highlight/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/highlight/styles/pojoaque.jpg -------------------------------------------------------------------------------- /vue_web/static/highlight/styles/school-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/highlight/styles/school-book.png -------------------------------------------------------------------------------- /vue_web/static/images/5794.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/5794.png -------------------------------------------------------------------------------- /vue_web/static/images/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/alipay.jpg -------------------------------------------------------------------------------- /vue_web/static/images/auicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/auicon.jpg -------------------------------------------------------------------------------- /vue_web/static/images/author.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/author.png -------------------------------------------------------------------------------- /vue_web/static/images/b01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/b01.jpg -------------------------------------------------------------------------------- /vue_web/static/images/b02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/b02.jpg -------------------------------------------------------------------------------- /vue_web/static/images/b03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/b03.jpg -------------------------------------------------------------------------------- /vue_web/static/images/b04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/b04.jpg -------------------------------------------------------------------------------- /vue_web/static/images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/banner.png -------------------------------------------------------------------------------- /vue_web/static/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/bg.jpg -------------------------------------------------------------------------------- /vue_web/static/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/bg.png -------------------------------------------------------------------------------- /vue_web/static/images/blank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/blank.jpg -------------------------------------------------------------------------------- /vue_web/static/images/cd-top-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /vue_web/static/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/close.png -------------------------------------------------------------------------------- /vue_web/static/images/date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/date.png -------------------------------------------------------------------------------- /vue_web/static/images/datepng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/datepng.png -------------------------------------------------------------------------------- /vue_web/static/images/defaultAvatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/defaultAvatar.png -------------------------------------------------------------------------------- /vue_web/static/images/dsbz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/dsbz.jpg -------------------------------------------------------------------------------- /vue_web/static/images/dzbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/dzbg.jpg -------------------------------------------------------------------------------- /vue_web/static/images/gitee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/gitee.jpg -------------------------------------------------------------------------------- /vue_web/static/images/giteeLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/giteeLogo.png -------------------------------------------------------------------------------- /vue_web/static/images/github.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/github.jpg -------------------------------------------------------------------------------- /vue_web/static/images/githubLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/githubLogo.png -------------------------------------------------------------------------------- /vue_web/static/images/gzbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/gzbg.jpg -------------------------------------------------------------------------------- /vue_web/static/images/jdbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/jdbg.png -------------------------------------------------------------------------------- /vue_web/static/images/lanmbq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/lanmbq.png -------------------------------------------------------------------------------- /vue_web/static/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/logo.jpg -------------------------------------------------------------------------------- /vue_web/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/logo.png -------------------------------------------------------------------------------- /vue_web/static/images/navbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/navbg.png -------------------------------------------------------------------------------- /vue_web/static/images/navline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/navline.jpg -------------------------------------------------------------------------------- /vue_web/static/images/navt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/navt.png -------------------------------------------------------------------------------- /vue_web/static/images/newsbg01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/newsbg01.png -------------------------------------------------------------------------------- /vue_web/static/images/newsbg02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/newsbg02.png -------------------------------------------------------------------------------- /vue_web/static/images/newsbg03 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/newsbg03 (1).png -------------------------------------------------------------------------------- /vue_web/static/images/newsbg03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/newsbg03.png -------------------------------------------------------------------------------- /vue_web/static/images/newsbg04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/newsbg04.png -------------------------------------------------------------------------------- /vue_web/static/images/obscure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/obscure.png -------------------------------------------------------------------------------- /vue_web/static/images/page_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/page_bg.jpg -------------------------------------------------------------------------------- /vue_web/static/images/page_classify.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/page_classify.jpg -------------------------------------------------------------------------------- /vue_web/static/images/page_time.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/page_time.jpg -------------------------------------------------------------------------------- /vue_web/static/images/posttime.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/posttime.gif -------------------------------------------------------------------------------- /vue_web/static/images/qqGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/qqGroup.png -------------------------------------------------------------------------------- /vue_web/static/images/radio1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/radio1.jpg -------------------------------------------------------------------------------- /vue_web/static/images/radio2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/radio2.jpg -------------------------------------------------------------------------------- /vue_web/static/images/searchbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/searchbg.png -------------------------------------------------------------------------------- /vue_web/static/images/t01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/t01.jpg -------------------------------------------------------------------------------- /vue_web/static/images/t02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/t02.jpg -------------------------------------------------------------------------------- /vue_web/static/images/t03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/t03.jpg -------------------------------------------------------------------------------- /vue_web/static/images/tbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/tbg.jpg -------------------------------------------------------------------------------- /vue_web/static/images/titlebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/titlebg.png -------------------------------------------------------------------------------- /vue_web/static/images/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/top.png -------------------------------------------------------------------------------- /vue_web/static/images/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhrzy/SpringCloudBlog/c8f4efd888f6eedfe01fe68cdde00ea21d20f515/vue_web/static/images/wechat.jpg -------------------------------------------------------------------------------- /vue_web/test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | // automatically uses dev Server port from /config.index.js 7 | // default: http://localhost:8080 8 | // see nightwatch.conf.js 9 | const devServer = browser.globals.devServerURL 10 | 11 | browser 12 | .url(devServer) 13 | .waitForElementVisible('#app', 5000) 14 | .assert.elementPresent('.hello') 15 | .assert.containsText('h1', 'Welcome to Your Vue.js App') 16 | .assert.elementCount('img', 1) 17 | .end() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vue_web/test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "jest": true 4 | }, 5 | "globals": { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /vue_web/test/unit/jest.conf.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | module.exports = { 4 | rootDir: path.resolve(__dirname, '../../'), 5 | moduleFileExtensions: [ 6 | 'js', 7 | 'json', 8 | 'vue' 9 | ], 10 | moduleNameMapper: { 11 | '^@/(.*)$': '/src/$1' 12 | }, 13 | transform: { 14 | '^.+\\.js$': '/node_modules/babel-jest', 15 | '.*\\.(vue)$': '/node_modules/vue-jest' 16 | }, 17 | testPathIgnorePatterns: [ 18 | '/test/e2e' 19 | ], 20 | snapshotSerializers: ['/node_modules/jest-serializer-vue'], 21 | setupFiles: ['/test/unit/setup'], 22 | mapCoverage: true, 23 | coverageDirectory: '/test/unit/coverage', 24 | collectCoverageFrom: [ 25 | 'src/**/*.{js,vue}', 26 | '!src/main.js', 27 | '!src/router/index.js', 28 | '!**/node_modules/**' 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /vue_web/test/unit/setup.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | Vue.config.productionTip = false 4 | -------------------------------------------------------------------------------- /vue_web/test/unit/specs/HelloWorld.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import HelloWorld from '@/components/HelloWorld' 3 | 4 | describe('HelloWorld.vue', () => { 5 | it('should render correct contents', () => { 6 | const Constructor = Vue.extend(HelloWorld) 7 | const vm = new Constructor().$mount() 8 | expect(vm.$el.querySelector('.hello h1').textContent) 9 | .toEqual('Welcome to Your Vue.js App') 10 | }) 11 | }) 12 | --------------------------------------------------------------------------------