├── .gitignore ├── README.md ├── blog-springboot ├── HELP.md ├── pom.xml ├── src │ ├── main │ │ ├── doc │ │ │ └── db │ │ │ │ └── init_blog.sql │ │ ├── docker │ │ │ └── Dockerfile │ │ ├── java │ │ │ └── org │ │ │ │ └── cuit │ │ │ │ └── epoch │ │ │ │ ├── HexoBlogSatokenApplication.java │ │ │ │ ├── annotation │ │ │ │ ├── AccessLimit.java │ │ │ │ └── OptLog.java │ │ │ │ ├── aspect │ │ │ │ └── OptLogAspect.java │ │ │ │ ├── config │ │ │ │ ├── Knife4jConfig.java │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ ├── OssConfigProperties.java │ │ │ │ ├── QQConfigProperties.java │ │ │ │ ├── RabbitMQConfig.java │ │ │ │ ├── RedisConfig.java │ │ │ │ ├── WebSocketConfig.java │ │ │ │ ├── WeiboConfigProperties.java │ │ │ │ └── satoken │ │ │ │ │ ├── XiaoXiaoConfig.java │ │ │ │ │ └── XiaoXiaoInterfaceImpl.java │ │ │ │ ├── constant │ │ │ │ ├── CommonConst.java │ │ │ │ ├── HexoConst.java │ │ │ │ ├── MQPrefixConst.java │ │ │ │ ├── OptTypeConst.java │ │ │ │ ├── RedisPrefixConst.java │ │ │ │ └── SocialLoginConst.java │ │ │ │ ├── consumer │ │ │ │ ├── EmailConsumer.java │ │ │ │ └── MaxWellConsumer.java │ │ │ │ ├── controller │ │ │ │ ├── ArticleController.java │ │ │ │ ├── BlogInfoController.java │ │ │ │ ├── CategoryController.java │ │ │ │ ├── CommentController.java │ │ │ │ ├── FriendLinkController.java │ │ │ │ ├── LogController.java │ │ │ │ ├── LoginController.java │ │ │ │ ├── MenuController.java │ │ │ │ ├── MessageController.java │ │ │ │ ├── PageController.java │ │ │ │ ├── PhotoAlbumController.java │ │ │ │ ├── PhotoController.java │ │ │ │ ├── ResourceController.java │ │ │ │ ├── RoleController.java │ │ │ │ ├── TagController.java │ │ │ │ ├── TalkController.java │ │ │ │ ├── TestController.java │ │ │ │ ├── UserAuthController.java │ │ │ │ └── UserInfoController.java │ │ │ │ ├── dto │ │ │ │ ├── EmailDTO.java │ │ │ │ ├── LabelOptionDTO.java │ │ │ │ ├── ResourceRoleDTO.java │ │ │ │ ├── RoleDTO.java │ │ │ │ ├── UserAreaDTO.java │ │ │ │ ├── UserBackDTO.java │ │ │ │ ├── UserDetailDTO.java │ │ │ │ ├── UserInfoDTO.java │ │ │ │ ├── UserOnlineDTO.java │ │ │ │ ├── UserRoleDTO.java │ │ │ │ ├── article │ │ │ │ │ ├── ArchiveDTO.java │ │ │ │ │ ├── ArticleBackDTO.java │ │ │ │ │ ├── ArticleDTO.java │ │ │ │ │ ├── ArticleHomeDTO.java │ │ │ │ │ ├── ArticlePaginationDTO.java │ │ │ │ │ ├── ArticlePreviewDTO.java │ │ │ │ │ ├── ArticlePreviewListDTO.java │ │ │ │ │ ├── ArticleRecommendDTO.java │ │ │ │ │ ├── ArticleSearchDTO.java │ │ │ │ │ ├── ArticleStatisticsDTO.java │ │ │ │ │ └── MaxwellDataDTO.java │ │ │ │ ├── blog │ │ │ │ │ ├── ArticleRankDTO.java │ │ │ │ │ ├── BlogBackInfoDTO.java │ │ │ │ │ ├── BlogHomeInfoDTO.java │ │ │ │ │ └── UniqueViewDTO.java │ │ │ │ ├── category │ │ │ │ │ ├── CategoryBackDTO.java │ │ │ │ │ ├── CategoryDTO.java │ │ │ │ │ └── CategoryOptionDTO.java │ │ │ │ ├── chat │ │ │ │ │ ├── ChatRecordDTO.java │ │ │ │ │ ├── RecallMessageDTO.java │ │ │ │ │ └── WebsocketMessageDTO.java │ │ │ │ ├── comment │ │ │ │ │ ├── CommentBackDTO.java │ │ │ │ │ ├── CommentCountDTO.java │ │ │ │ │ ├── CommentDTO.java │ │ │ │ │ ├── ReplyCountDTO.java │ │ │ │ │ └── ReplyDTO.java │ │ │ │ ├── friend │ │ │ │ │ ├── FriendLinkBackDTO.java │ │ │ │ │ └── FriendLinkDTO.java │ │ │ │ ├── log │ │ │ │ │ └── OperationLogDTO.java │ │ │ │ ├── menu │ │ │ │ │ ├── MenuDTO.java │ │ │ │ │ └── UserMenuDTO.java │ │ │ │ ├── message │ │ │ │ │ ├── MessageBackDTO.java │ │ │ │ │ └── MessageDTO.java │ │ │ │ ├── photo │ │ │ │ │ ├── PhotoAlbumBackDTO.java │ │ │ │ │ ├── PhotoAlbumDTO.java │ │ │ │ │ ├── PhotoBackDTO.java │ │ │ │ │ └── PhotoDTO.java │ │ │ │ ├── resource │ │ │ │ │ └── ResourceDTO.java │ │ │ │ ├── strategy │ │ │ │ │ └── login │ │ │ │ │ │ ├── QQTokenDTO.java │ │ │ │ │ │ ├── QQUserInfoDTO.java │ │ │ │ │ │ ├── SocialTokenDTO.java │ │ │ │ │ │ ├── SocialUserInfoDTO.java │ │ │ │ │ │ ├── WeiboTokenDTO.java │ │ │ │ │ │ └── WeiboUserInfoDTO.java │ │ │ │ ├── tag │ │ │ │ │ ├── TagBackDTO.java │ │ │ │ │ └── TagDTO.java │ │ │ │ └── talk │ │ │ │ │ ├── TalkBackDTO.java │ │ │ │ │ └── TalkDTO.java │ │ │ │ ├── entity │ │ │ │ ├── Article.java │ │ │ │ ├── ArticleTag.java │ │ │ │ ├── Category.java │ │ │ │ ├── ChatRecord.java │ │ │ │ ├── Comment.java │ │ │ │ ├── FriendLink.java │ │ │ │ ├── Menu.java │ │ │ │ ├── Message.java │ │ │ │ ├── OperationLog.java │ │ │ │ ├── Page.java │ │ │ │ ├── Photo.java │ │ │ │ ├── PhotoAlbum.java │ │ │ │ ├── Resource.java │ │ │ │ ├── Role.java │ │ │ │ ├── RoleMenu.java │ │ │ │ ├── RoleResource.java │ │ │ │ ├── Tag.java │ │ │ │ ├── Talk.java │ │ │ │ ├── UniqueView.java │ │ │ │ ├── UserAuth.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserRole.java │ │ │ │ └── WebsiteConfig.java │ │ │ │ ├── enums │ │ │ │ ├── ArticleStatusEnum.java │ │ │ │ ├── ArticleTypeEnum.java │ │ │ │ ├── ChatTypeEnum.java │ │ │ │ ├── CommentTypeEnum.java │ │ │ │ ├── FileExtEnum.java │ │ │ │ ├── FilePathEnum.java │ │ │ │ ├── LoginTypeEnum.java │ │ │ │ ├── MarkdownTypeEnum.java │ │ │ │ ├── RoleEnum.java │ │ │ │ ├── SearchModeEnum.java │ │ │ │ ├── StatusCodeEnum.java │ │ │ │ ├── TalkStatusEnum.java │ │ │ │ ├── UploadModeEnum.java │ │ │ │ ├── UserAreaTypeEnum.java │ │ │ │ └── ZoneEnum.java │ │ │ │ ├── exception │ │ │ │ ├── AppException.java │ │ │ │ ├── GlobalException.java │ │ │ │ └── NotFoundHandle.java │ │ │ │ ├── handler │ │ │ │ ├── AccessLimitHandler.java │ │ │ │ ├── ControllerAdviceHandler.java │ │ │ │ ├── MyMetaObjectHandler.java │ │ │ │ ├── MySourceSafilterAuthStrategy.java │ │ │ │ └── PageableHandlerInterceptor.java │ │ │ │ ├── mapper │ │ │ │ ├── ArticleMapper.java │ │ │ │ ├── ArticleSearchRepository.java │ │ │ │ ├── ArticleTagMapper.java │ │ │ │ ├── CategoryMapper.java │ │ │ │ ├── ChatRecordMapper.java │ │ │ │ ├── CommentMapper.java │ │ │ │ ├── FriendLinkMapper.java │ │ │ │ ├── MenuMapper.java │ │ │ │ ├── MessageMapper.java │ │ │ │ ├── OperationLogMapper.java │ │ │ │ ├── PageMapper.java │ │ │ │ ├── PhotoAlbumMapper.java │ │ │ │ ├── PhotoMapper.java │ │ │ │ ├── ResourceMapper.java │ │ │ │ ├── RoleMapper.java │ │ │ │ ├── RoleMenuMapper.java │ │ │ │ ├── RoleResourceMapper.java │ │ │ │ ├── TagMapper.java │ │ │ │ ├── TalkMapper.java │ │ │ │ ├── UniqueViewMapper.java │ │ │ │ ├── UserAuthMapper.java │ │ │ │ ├── UserInfoMapper.java │ │ │ │ ├── UserRoleMapper.java │ │ │ │ └── WebsiteConfigMapper.java │ │ │ │ ├── service │ │ │ │ ├── ArticleService.java │ │ │ │ ├── ArticleTagService.java │ │ │ │ ├── BlogInfoService.java │ │ │ │ ├── CategoryService.java │ │ │ │ ├── CommentService.java │ │ │ │ ├── FriendLinkService.java │ │ │ │ ├── MenuService.java │ │ │ │ ├── MessageService.java │ │ │ │ ├── OperationLogService.java │ │ │ │ ├── PageService.java │ │ │ │ ├── PhotoAlbumService.java │ │ │ │ ├── PhotoService.java │ │ │ │ ├── RedisService.java │ │ │ │ ├── ResourceService.java │ │ │ │ ├── RoleMenuService.java │ │ │ │ ├── RoleResourceService.java │ │ │ │ ├── RoleService.java │ │ │ │ ├── TagService.java │ │ │ │ ├── TalkService.java │ │ │ │ ├── UniqueViewService.java │ │ │ │ ├── UserAuthService.java │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserRoleService.java │ │ │ │ └── impl │ │ │ │ │ ├── ArticleServiceImpl.java │ │ │ │ │ ├── ArticleTagServiceImpl.java │ │ │ │ │ ├── BlogInfoServiceImpl.java │ │ │ │ │ ├── CategoryServiceImpl.java │ │ │ │ │ ├── CommentServiceImpl.java │ │ │ │ │ ├── FriendLinkServiceImpl.java │ │ │ │ │ ├── MenuServiceImpl.java │ │ │ │ │ ├── MessageServiceImpl.java │ │ │ │ │ ├── OperationLogServiceImpl.java │ │ │ │ │ ├── PageServiceImpl.java │ │ │ │ │ ├── PhotoAlbumServiceImpl.java │ │ │ │ │ ├── PhotoServiceImpl.java │ │ │ │ │ ├── RedisServiceImpl.java │ │ │ │ │ ├── ResourceServiceImpl.java │ │ │ │ │ ├── RoleMenuServiceImpl.java │ │ │ │ │ ├── RoleResourceServiceImpl.java │ │ │ │ │ ├── RoleServiceImpl.java │ │ │ │ │ ├── TagServiceImpl.java │ │ │ │ │ ├── TalkServiceImpl.java │ │ │ │ │ ├── UniqueViewServiceImpl.java │ │ │ │ │ ├── UserAuthServiceImpl.java │ │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ │ ├── UserRoleServiceImpl.java │ │ │ │ │ └── WebSocketServiceImpl.java │ │ │ │ ├── strategy │ │ │ │ ├── ArticleImportStrategy.java │ │ │ │ ├── SearchStrategy.java │ │ │ │ ├── SocialLoginStrategy.java │ │ │ │ ├── UploadStrategy.java │ │ │ │ ├── context │ │ │ │ │ ├── ArticleImportStrategyContext.java │ │ │ │ │ ├── SearchStrategyContext.java │ │ │ │ │ ├── SocialLoginStrategyContext.java │ │ │ │ │ └── UploadStrategyContext.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractSocialLoginStrategyImpl.java │ │ │ │ │ ├── AbstractUploadStrategyImpl.java │ │ │ │ │ ├── EsSearchStrategyImpl.java │ │ │ │ │ ├── HexoArticleImportStrategyImpl.java │ │ │ │ │ ├── LocalUploadStrategyImpl.java │ │ │ │ │ ├── MySqlSearchStrategyImpl.java │ │ │ │ │ ├── NormalArticleImportStrategyImpl.java │ │ │ │ │ ├── OssUploadStrategyImpl.java │ │ │ │ │ ├── QQLoginStrategyImpl.java │ │ │ │ │ └── WeiboLoginStrategyImpl.java │ │ │ │ ├── test │ │ │ │ ├── AtController.java │ │ │ │ ├── LoginController.java │ │ │ │ ├── StressTestController.java │ │ │ │ └── TestController.java │ │ │ │ ├── todolist │ │ │ │ └── todolist.java │ │ │ │ ├── util │ │ │ │ ├── AjaxJson.java │ │ │ │ ├── BeanCopyUtils.java │ │ │ │ ├── CommonUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── HTMLUtils.java │ │ │ │ ├── IpUtils.java │ │ │ │ ├── PageUtils.java │ │ │ │ ├── PasswordUtils.java │ │ │ │ ├── Result.java │ │ │ │ └── Ttime.java │ │ │ │ └── vo │ │ │ │ ├── ArticleTopVO.java │ │ │ │ ├── ArticleVO.java │ │ │ │ ├── BlogInfoVO.java │ │ │ │ ├── CategoryVO.java │ │ │ │ ├── CommentQueryVO.java │ │ │ │ ├── CommentVO.java │ │ │ │ ├── ConditionVO.java │ │ │ │ ├── DeleteVO.java │ │ │ │ ├── EmailVO.java │ │ │ │ ├── FriendLinkVO.java │ │ │ │ ├── HexoArticleVO.java │ │ │ │ ├── MenuVO.java │ │ │ │ ├── MessageVO.java │ │ │ │ ├── PageVO.java │ │ │ │ ├── PasswordVO.java │ │ │ │ ├── PhotoAlbumVO.java │ │ │ │ ├── PhotoInfoVO.java │ │ │ │ ├── PhotoVO.java │ │ │ │ ├── ResourceVO.java │ │ │ │ ├── ReviewVO.java │ │ │ │ ├── RoleVO.java │ │ │ │ ├── TagVO.java │ │ │ │ ├── TalkVO.java │ │ │ │ ├── UserDisableVO.java │ │ │ │ ├── UserInfoVO.java │ │ │ │ ├── UserRoleVO.java │ │ │ │ ├── UserVO.java │ │ │ │ ├── VoiceVO.java │ │ │ │ ├── WebsiteConfigVO.java │ │ │ │ ├── page │ │ │ │ └── PageResult.java │ │ │ │ └── strategy │ │ │ │ └── login │ │ │ │ ├── QQLoginVO.java │ │ │ │ └── WeiboLoginVO.java │ │ └── resources │ │ │ ├── application-online.yml │ │ │ ├── application.yml │ │ │ └── mapper │ │ │ ├── ArticleMapper.xml │ │ │ ├── CategoryMapper.xml │ │ │ ├── CommentMapper.xml │ │ │ ├── MenuMapper.xml │ │ │ ├── PageMapper.xml │ │ │ ├── PhotoAlbumMapper.xml │ │ │ ├── RoleMapper.xml │ │ │ ├── TagMapper.xml │ │ │ ├── TaklMapper.xml │ │ │ ├── UniqueViewMapper.xml │ │ │ ├── UserAuthMapper.xml │ │ │ └── UserRoleMapper.xml │ └── test │ │ └── java │ │ └── org │ │ └── cuit │ │ └── epoch │ │ ├── HexoBlogSatokenApplicationTests.java │ │ ├── RedisTest.java │ │ ├── SupplyAsyncExample.java │ │ ├── ThreadSleep.java │ │ └── text │ │ └── CheckText.java └── target │ └── classes │ ├── application-online.yml │ ├── application.yml │ └── mapper │ ├── RoleMapper.xml │ └── UserAuthMapper.xml ├── blog-vue ├── .idea │ ├── .gitignore │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── modules.xml │ └── vcs.xml ├── admin │ ├── README.md │ ├── babel.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── css │ │ │ │ ├── iconfont.css │ │ │ │ ├── iconfont.eot │ │ │ │ ├── iconfont.svg │ │ │ │ ├── iconfont.ttf │ │ │ │ ├── iconfont.woff │ │ │ │ ├── iconfont.woff2 │ │ │ │ └── index.css │ │ │ └── js │ │ │ │ ├── china.js │ │ │ │ ├── config.js │ │ │ │ ├── emoji.js │ │ │ │ └── menu.js │ │ ├── components │ │ │ ├── Editor.vue │ │ │ └── tag-cloud.js │ │ ├── layout │ │ │ ├── components │ │ │ │ ├── NavBar.vue │ │ │ │ └── SideBar.vue │ │ │ └── index.vue │ │ ├── main.js │ │ ├── router │ │ │ └── index.js │ │ ├── store │ │ │ └── index.js │ │ └── views │ │ │ ├── about │ │ │ └── About.vue │ │ │ ├── album │ │ │ ├── Album.vue │ │ │ ├── Delete.vue │ │ │ └── Photo.vue │ │ │ ├── article │ │ │ ├── Article.vue │ │ │ └── ArticleList.vue │ │ │ ├── category │ │ │ └── Category.vue │ │ │ ├── comment │ │ │ └── Comment.vue │ │ │ ├── friendLink │ │ │ └── FriendLink.vue │ │ │ ├── home │ │ │ └── Home.vue │ │ │ ├── log │ │ │ └── Operation.vue │ │ │ ├── login │ │ │ └── Login.vue │ │ │ ├── menu │ │ │ └── Menu.vue │ │ │ ├── message │ │ │ └── Message.vue │ │ │ ├── page │ │ │ └── Page.vue │ │ │ ├── resource │ │ │ └── Resource.vue │ │ │ ├── role │ │ │ └── Role.vue │ │ │ ├── setting │ │ │ └── Setting.vue │ │ │ ├── tag │ │ │ └── Tag.vue │ │ │ ├── talk │ │ │ ├── Talk.vue │ │ │ └── TalkList.vue │ │ │ ├── user │ │ │ ├── Online.vue │ │ │ └── User.vue │ │ │ └── website │ │ │ └── Website.vue │ └── vue.config.js └── blog │ ├── README.md │ ├── babel.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ └── index.html │ ├── src │ ├── App.vue │ ├── assets │ │ ├── css │ │ │ ├── iconfont.css │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.svg │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ ├── iconfont.woff2 │ │ │ ├── index.css │ │ │ ├── markdown.css │ │ │ └── vue-social-share │ │ │ │ ├── client.css │ │ │ │ └── static │ │ │ │ ├── iconfont.eot │ │ │ │ ├── iconfont.svg │ │ │ │ ├── iconfont.ttf │ │ │ │ └── iconfont.woff │ │ └── js │ │ │ ├── config.js │ │ │ └── emoji.js │ ├── components │ │ ├── BackTop.vue │ │ ├── ChatRoom.vue │ │ ├── Comment.vue │ │ ├── Emoji.vue │ │ ├── OauthLogin.vue │ │ ├── Paging.vue │ │ ├── Reply.vue │ │ ├── Swiper.vue │ │ ├── TalkComment.vue │ │ ├── layout │ │ │ ├── Footer.vue │ │ │ ├── SideNavBar.vue │ │ │ └── TopNavBar.vue │ │ ├── model │ │ │ ├── EmailModel.vue │ │ │ ├── ForgetModel.vue │ │ │ ├── LoginModel.vue │ │ │ ├── RegisterModel.vue │ │ │ └── SearchModel.vue │ │ ├── toast │ │ │ ├── Toast.vue │ │ │ └── index.js │ │ └── zw-player │ │ │ ├── api │ │ │ └── music.js │ │ │ ├── img │ │ │ ├── add.png │ │ │ ├── list_bg.jpg │ │ │ ├── list_pan.png │ │ │ ├── list_play_hover.png │ │ │ ├── pan.png │ │ │ ├── pause.png │ │ │ ├── play.png │ │ │ ├── state_0.png │ │ │ ├── state_1.png │ │ │ ├── talkicon1.png │ │ │ └── talkicon2.png │ │ │ ├── package.json │ │ │ ├── player.css │ │ │ ├── player.vue │ │ │ └── playermobile.css │ ├── main.js │ ├── plugins │ │ └── vuetify.js │ ├── router │ │ └── index.js │ ├── store │ │ └── index.js │ ├── utils │ │ └── markdown.js │ └── views │ │ ├── about │ │ └── About.vue │ │ ├── album │ │ ├── Album.vue │ │ └── Photo.vue │ │ ├── archive │ │ └── Archive.vue │ │ ├── article │ │ ├── Article.vue │ │ └── ArticleList.vue │ │ ├── category │ │ └── Category.vue │ │ ├── home │ │ └── Home.vue │ │ ├── link │ │ └── Link.vue │ │ ├── message │ │ └── Message.vue │ │ ├── tag │ │ └── Tag.vue │ │ ├── talk │ │ ├── Talk.vue │ │ └── TalkInfo.vue │ │ └── user │ │ └── User.vue │ └── vue.config.js └── 项目接口实现细节.md /.gitignore: -------------------------------------------------------------------------------- 1 | /blog-springboot/target/ 2 | /blog-springboot/src/main/docker/docker-ca/ 3 | -------------------------------------------------------------------------------- /blog-springboot/HELP.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | ### Reference Documentation 4 | 5 | For further reference, please consider the following sections: 6 | 7 | * [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) 8 | * [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.7.5/maven-plugin/reference/html/) 9 | * [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.7.5/maven-plugin/reference/html/#build-image) 10 | 11 | -------------------------------------------------------------------------------- /blog-springboot/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8 2 | VOLUME /tmp 3 | ADD hexo-blog-satoken-0.0.1.jar blog.jar 4 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/blog.jar"] 5 | ENV TZ=Asia/Shanghai 6 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 7 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/HexoBlogSatokenApplication.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch; 2 | 3 | import cn.dev33.satoken.SaManager; 4 | import org.mybatis.spring.annotation.MapperScan; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | import org.springframework.context.annotation.Bean; 8 | import org.springframework.scheduling.annotation.EnableScheduling; 9 | import org.springframework.web.client.RestTemplate; 10 | 11 | @SpringBootApplication 12 | @MapperScan("org.cuit.epoch.mapper") 13 | @EnableScheduling 14 | public class HexoBlogSatokenApplication { 15 | 16 | public static void main(String[] args) { 17 | SpringApplication.run(HexoBlogSatokenApplication.class, args); 18 | System.out.println("\n启动成功:Xiaoxiao-Token配置如下:" + SaManager.getConfig()); 19 | } 20 | @Bean 21 | public RestTemplate restTemplate() { 22 | return new RestTemplate(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/annotation/AccessLimit.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * @author: ladidol 7 | * @date: 2022/11/16 20:11 8 | * @description: redis接口限流 9 | */ 10 | @Target(ElementType.METHOD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | public @interface AccessLimit { 14 | 15 | /** 16 | * 单位时间(秒) 17 | * 18 | * @return int 19 | */ 20 | int seconds(); 21 | 22 | /** 23 | * 单位时间最大请求次数 24 | * 25 | * @return int 26 | */ 27 | int maxCount(); 28 | } 29 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/annotation/OptLog.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * @author: ladidol 7 | * @date: 2022/11/28 15:00 8 | * @description: 操作日志注解 9 | */ 10 | @Target(ElementType.METHOD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | public @interface OptLog { 14 | 15 | /** 16 | * @return 操作类型 17 | */ 18 | String optType() default ""; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/MybatisPlusConfig.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import com.baomidou.mybatisplus.annotation.DbType; 4 | import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; 5 | import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | import org.springframework.transaction.annotation.EnableTransactionManagement; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/11/18 20:27 13 | * @description: 14 | */ 15 | @EnableTransactionManagement 16 | @Configuration 17 | public class MybatisPlusConfig { 18 | 19 | @Bean 20 | public MybatisPlusInterceptor mybatisPlusInterceptor() { 21 | MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); 22 | interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); 23 | return interceptor; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/OssConfigProperties.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/21 19:35 10 | * @description: 11 | */ 12 | @Data 13 | @Configuration 14 | @ConfigurationProperties(prefix = "upload.oss") 15 | public class OssConfigProperties { 16 | 17 | /** 18 | * oss域名 19 | */ 20 | private String url; 21 | 22 | /** 23 | * 终点 24 | */ 25 | private String endpoint; 26 | 27 | /** 28 | * 访问密钥id 29 | */ 30 | private String accessKeyId; 31 | 32 | /** 33 | * 访问密钥密码 34 | */ 35 | private String accessKeySecret; 36 | 37 | /** 38 | * bucket名称 39 | */ 40 | private String bucketName; 41 | 42 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/QQConfigProperties.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/23 8:48 10 | * @description: 11 | */ 12 | @Data 13 | @Configuration 14 | @ConfigurationProperties(prefix = "qq") 15 | public class QQConfigProperties { 16 | 17 | /** 18 | * QQ appId 19 | */ 20 | private String appId; 21 | 22 | /** 23 | * 校验token地址 24 | */ 25 | private String checkTokenUrl; 26 | 27 | /** 28 | * QQ用户信息地址 29 | */ 30 | private String userInfoUrl; 31 | 32 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/RabbitMQConfig.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import org.springframework.amqp.core.Binding; 4 | import org.springframework.amqp.core.BindingBuilder; 5 | import org.springframework.amqp.core.FanoutExchange; 6 | import org.springframework.amqp.core.Queue; 7 | import org.springframework.context.annotation.Bean; 8 | import org.springframework.context.annotation.Configuration; 9 | 10 | import static org.cuit.epoch.constant.MQPrefixConst.*; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2023/1/12 23:37 15 | * @description: {Rabbitmq配置类} 16 | */ 17 | @Configuration 18 | public class RabbitMQConfig { 19 | 20 | @Bean 21 | public Queue articleQueue() { 22 | return new Queue(MAXWELL_QUEUE, true); 23 | } 24 | 25 | @Bean 26 | public FanoutExchange maxWellExchange() { 27 | return new FanoutExchange(MAXWELL_EXCHANGE, true, false); 28 | } 29 | 30 | @Bean 31 | public Binding bindingArticleDirect() { 32 | return BindingBuilder.bind(articleQueue()).to(maxWellExchange()); 33 | } 34 | 35 | @Bean 36 | public Queue emailQueue() { 37 | return new Queue(EMAIL_QUEUE, true); 38 | } 39 | 40 | @Bean 41 | public FanoutExchange emailExchange() { 42 | return new FanoutExchange(EMAIL_EXCHANGE, true, false); 43 | } 44 | 45 | @Bean 46 | public Binding bindingEmailDirect() { 47 | return BindingBuilder.bind(emailQueue()).to(emailExchange()); 48 | } 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/WebSocketConfig.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.web.socket.server.standard.ServerEndpointExporter; 6 | 7 | /** 8 | * @author: Xiaoqiang-Ladidol 9 | * @date: 2022/12/26 16:55 10 | * @description: {websocket配置类} 11 | */ 12 | @Configuration 13 | public class WebSocketConfig { 14 | 15 | /** 16 | * 17 | * 注入一个ServerEndpointExporter,该Bean会自动注册使用@ServerEndpoint注解申明的websocket endpoint 18 | * @return 19 | */ 20 | @Bean 21 | public ServerEndpointExporter serverEndpointExporter() { 22 | return new ServerEndpointExporter(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/config/WeiboConfigProperties.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/22 17:11 10 | * @description: 11 | */ 12 | @Data 13 | @Configuration 14 | @ConfigurationProperties(prefix = "weibo") 15 | public class WeiboConfigProperties { 16 | 17 | /** 18 | * 微博appId 19 | */ 20 | private String appId; 21 | 22 | /** 23 | * 微博appSecret 24 | */ 25 | private String appSecret; 26 | 27 | /** 28 | * 微博登录类型 29 | */ 30 | private String grantType; 31 | 32 | /** 33 | * 微博回调域名 34 | */ 35 | private String redirectUrl; 36 | 37 | /** 38 | * 微博访问令牌地址 39 | */ 40 | private String accessTokenUrl; 41 | 42 | /** 43 | * 微博用户信息地址 44 | */ 45 | private String userInfoUrl; 46 | 47 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/constant/HexoConst.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.constant; 2 | 3 | /** 4 | * @author: Xiaoqiang-Ladidol 5 | * @date: 2022/12/21 18:43 6 | * @description: {} 7 | */ 8 | public class HexoConst { 9 | /** 10 | * 标题 11 | */ 12 | public static final String TITLE_PREFIX = "title:"; 13 | 14 | /** 15 | * 日期 16 | */ 17 | public static final String DATE_PREFIX = "date:"; 18 | 19 | /** 20 | * 分类 21 | */ 22 | public static final String CATEGORIES_PREFIX = "categories:"; 23 | 24 | /** 25 | * 标签 26 | */ 27 | public static final String TAGS_PREFIX = "tags:"; 28 | 29 | /** 30 | * 分隔符 31 | */ 32 | public static final String DELIMITER = "---"; 33 | 34 | /** 35 | * 前缀 36 | */ 37 | public static final String PREFIX = "-"; 38 | 39 | /** 40 | * 正常标记 41 | */ 42 | public static final Integer NORMAL_FLAG = 0; 43 | 44 | /** 45 | * 分类标记 46 | */ 47 | public static final Integer CATEGORY_FLAG = 1; 48 | 49 | /** 50 | * 标签标记 51 | */ 52 | public static final Integer TAG_FLAG = 2; 53 | 54 | /** 55 | * 换行符 56 | */ 57 | public static final String NEW_LINE = "\n"; 58 | } 59 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/constant/MQPrefixConst.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.constant; 2 | 3 | /** 4 | * @author: ladidol 5 | * @date: 2022/11/18 20:14 6 | * @description: 7 | */ 8 | public class MQPrefixConst { 9 | 10 | /** 11 | * maxwell交换机 12 | */ 13 | public static final String MAXWELL_EXCHANGE = "maxwell_exchange"; 14 | 15 | /** 16 | * maxwell队列 17 | */ 18 | public static final String MAXWELL_QUEUE = "maxwell_queue"; 19 | 20 | /** 21 | * email交换机 22 | */ 23 | public static final String EMAIL_EXCHANGE = "email_exchange"; 24 | 25 | /** 26 | * 邮件队列 27 | */ 28 | public static final String EMAIL_QUEUE = "email_queue"; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/constant/OptTypeConst.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.constant; 2 | 3 | /** 4 | * @author: ladidol 5 | * @date: 2022/11/28 14:33 6 | * @description: 操作日志类型常量 7 | */ 8 | public class OptTypeConst { 9 | 10 | /** 11 | * 新增操作 12 | */ 13 | public static final String SAVE_OR_UPDATE = "新增或修改"; 14 | 15 | /** 16 | * 新增 17 | */ 18 | public static final String SAVE = "新增"; 19 | 20 | /** 21 | * 修改操作 22 | */ 23 | public static final String UPDATE = "修改"; 24 | 25 | /** 26 | * 删除操作 27 | */ 28 | public static final String REMOVE = "删除"; 29 | 30 | /** 31 | * 上传操作 32 | */ 33 | public static final String UPLOAD = "上传"; 34 | 35 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/constant/SocialLoginConst.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.constant; 2 | 3 | /** 4 | * @author: ladidol 5 | * @date: 2022/11/22 17:13 6 | * @description: 7 | */ 8 | public class SocialLoginConst { 9 | 10 | /** 11 | * oauth2登录方式 12 | */ 13 | public static final String GRANT_TYPE = "grant_type"; 14 | 15 | /** 16 | * 微博uid 17 | */ 18 | public static final String UID = "uid"; 19 | 20 | /** 21 | * oauth2客户端id 22 | */ 23 | public static final String CLIENT_ID = "client_id"; 24 | 25 | /** 26 | * oauth2客户端密码 27 | */ 28 | public static final String CLIENT_SECRET = "client_secret"; 29 | 30 | /** 31 | * code 32 | */ 33 | public static final String CODE = "code"; 34 | 35 | /** 36 | * oauth2回调域名 37 | */ 38 | public static final String REDIRECT_URI = "redirect_uri"; 39 | 40 | /** 41 | * QQ openId 42 | */ 43 | public static final String QQ_OPEN_ID = "openid"; 44 | 45 | /** 46 | * 访问令牌 47 | */ 48 | public static final String ACCESS_TOKEN = "access_token"; 49 | 50 | /** 51 | * QQ AppId 52 | */ 53 | public static final String OAUTH_CONSUMER_KEY = "oauth_consumer_key"; 54 | 55 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.controller; 2 | 3 | import cn.dev33.satoken.stp.StpUtil; 4 | import io.swagger.annotations.Api; 5 | import io.swagger.annotations.ApiOperation; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/11/18 17:42 13 | * @description: 14 | */ 15 | @RestController 16 | @Slf4j 17 | @Api(tags = "测试模块") 18 | public class TestController { 19 | 20 | @GetMapping("/admin/test") 21 | @ApiOperation(value = "test1") 22 | public String test1(String username, String password) { 23 | return StpUtil.getLoginId() + "成功了"; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/EmailDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/18 20:09 11 | * @description: 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class EmailDTO { 18 | 19 | /** 20 | * 邮箱号 21 | */ 22 | private String email; 23 | 24 | /** 25 | * 主题 26 | */ 27 | private String subject; 28 | 29 | /** 30 | * 内容 31 | */ 32 | private String content; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/LabelOptionDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/11/25 14:59 13 | * @description: 标签选项 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class LabelOptionDTO { 20 | 21 | /** 22 | * 选项id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 选项名 28 | */ 29 | private String label; 30 | 31 | /** 32 | * 子选项 33 | */ 34 | private List children; 35 | 36 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/ResourceRoleDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/15 21:20 10 | * @description: 11 | */ 12 | @Data 13 | public class ResourceRoleDTO { 14 | 15 | /** 16 | * 资源id 17 | */ 18 | private Integer id; 19 | 20 | /** 21 | * 路径 22 | */ 23 | private String url; 24 | 25 | /** 26 | * 请求方式 27 | */ 28 | private String requestMethod; 29 | 30 | /** 31 | * 角色名 32 | */ 33 | private List roleList; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/RoleDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/15 21:22 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class RoleDTO { 21 | 22 | /** 23 | * 角色id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 角色名 29 | */ 30 | private String roleName; 31 | 32 | /** 33 | * 角色标签 34 | */ 35 | private String roleLabel; 36 | 37 | /** 38 | * 创建时间 39 | */ 40 | private LocalDateTime createTime; 41 | 42 | /** 43 | * 是否禁用 44 | */ 45 | private Integer isDisable; 46 | 47 | /** 48 | * 资源id列表 49 | */ 50 | private List resourceIdList; 51 | 52 | /** 53 | * 菜单id列表 54 | */ 55 | private List menuIdList; 56 | 57 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/UserAreaDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/29 16:18 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class UserAreaDTO { 18 | 19 | /** 20 | * 地区名 21 | */ 22 | private String name; 23 | 24 | /** 25 | * 数量 26 | */ 27 | private Long count; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/UserBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.Date; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 13:55 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class UserBackDTO { 21 | 22 | /** 23 | * id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 用户信息id 29 | */ 30 | private Integer userInfoId; 31 | 32 | /** 33 | * 头像 34 | */ 35 | private String avatar; 36 | 37 | /** 38 | * 昵称 39 | */ 40 | private String nickname; 41 | 42 | /** 43 | * 用户角色 44 | */ 45 | private List roleList; 46 | 47 | /** 48 | * 登录类型 49 | */ 50 | private Integer loginType; 51 | 52 | /** 53 | * 用户登录ip 54 | */ 55 | private String ipAddress; 56 | 57 | /** 58 | * ip来源 59 | */ 60 | private String ipSource; 61 | 62 | /** 63 | * 创建时间 64 | */ 65 | private Date createTime; 66 | 67 | /** 68 | * 最近登录时间 69 | */ 70 | private Date lastLoginTime; 71 | 72 | /** 73 | * 用户评论状态 74 | */ 75 | private Integer isDisable; 76 | 77 | /** 78 | * 状态 79 | */ 80 | private Integer status; 81 | 82 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/UserOnlineDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/12/1 21:17 13 | * @description: 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class UserOnlineDTO { 20 | 21 | /** 22 | * 用户信息id 23 | */ 24 | private Integer userInfoId; 25 | 26 | /** 27 | * 用户昵称 28 | */ 29 | private String nickname; 30 | 31 | /** 32 | * 用户头像 33 | */ 34 | private String avatar; 35 | 36 | /** 37 | * 用户登录ip 38 | */ 39 | private String ipAddress; 40 | 41 | /** 42 | * ip来源 43 | */ 44 | private String ipSource; 45 | 46 | /** 47 | * 浏览器 48 | */ 49 | private String browser; 50 | 51 | /** 52 | * 操作系统 53 | */ 54 | private String os; 55 | 56 | /** 57 | * 最近登录时间 58 | */ 59 | private LocalDateTime lastLoginTime; 60 | 61 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/UserRoleDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/16 13:55 11 | * @description: 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class UserRoleDTO { 18 | 19 | /** 20 | * 角色id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 角色名 26 | */ 27 | private String roleName; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArchiveDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/17 22:08 13 | * @description: {} 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class ArchiveDTO { 20 | 21 | /** 22 | * id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 标题 28 | */ 29 | private String articleTitle; 30 | 31 | /** 32 | * 发表时间 33 | */ 34 | private LocalDateTime createTime; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticleBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.dto.tag.TagDTO; 8 | 9 | import java.time.LocalDateTime; 10 | import java.util.List; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/17 22:10 15 | * @description: {} 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class ArticleBackDTO { 22 | 23 | /** 24 | * id 25 | */ 26 | private Integer id; 27 | 28 | /** 29 | * 文章封面 30 | */ 31 | private String articleCover; 32 | 33 | /** 34 | * 标题 35 | */ 36 | private String articleTitle; 37 | 38 | /** 39 | * 发表时间 40 | */ 41 | private LocalDateTime createTime; 42 | 43 | /** 44 | * 点赞量 45 | */ 46 | private Integer likeCount; 47 | 48 | /** 49 | * 浏览量 50 | */ 51 | private Integer viewsCount; 52 | 53 | /** 54 | * 文章分类名 55 | */ 56 | private String categoryName; 57 | 58 | /** 59 | * 文章标签 60 | */ 61 | private List tagDTOList; 62 | 63 | /** 64 | * 文章类型 65 | */ 66 | private Integer type; 67 | 68 | /** 69 | * 是否置顶 70 | */ 71 | private Integer isTop; 72 | 73 | /** 74 | * 是否删除 75 | */ 76 | private Integer isDelete; 77 | 78 | /** 79 | * 文章状态 80 | */ 81 | private Integer status; 82 | 83 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticleHomeDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.dto.tag.TagDTO; 8 | 9 | import java.time.LocalDateTime; 10 | import java.util.List; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/17 22:09 15 | * @description: {} 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class ArticleHomeDTO { 22 | 23 | /** 24 | * id 25 | */ 26 | private Integer id; 27 | 28 | /** 29 | * 文章缩略图 30 | */ 31 | private String articleCover; 32 | 33 | /** 34 | * 标题 35 | */ 36 | private String articleTitle; 37 | 38 | /** 39 | * 内容 40 | */ 41 | private String articleContent; 42 | 43 | /** 44 | * 发表时间 45 | */ 46 | private LocalDateTime createTime; 47 | 48 | /** 49 | * 是否置顶 50 | */ 51 | private Integer isTop; 52 | 53 | /** 54 | * 文章类型 55 | */ 56 | private Integer type; 57 | 58 | /** 59 | * 文章分类id 60 | */ 61 | private Integer categoryId; 62 | 63 | /** 64 | * 文章分类名 65 | */ 66 | private String categoryName; 67 | 68 | /** 69 | * 文章标签 70 | */ 71 | private List tagDTOList; 72 | 73 | } 74 | 75 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticlePaginationDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/17 22:17 11 | * @description: {文章上下篇} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class ArticlePaginationDTO { 18 | 19 | /** 20 | * id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 文章缩略图 26 | */ 27 | private String articleCover; 28 | 29 | /** 30 | * 标题 31 | */ 32 | private String articleTitle; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticlePreviewDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.dto.tag.TagDTO; 8 | 9 | import java.util.Date; 10 | import java.util.List; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/17 22:19 15 | * @description: {} 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class ArticlePreviewDTO { 22 | 23 | /** 24 | * 文章id 25 | */ 26 | private Integer id; 27 | 28 | /** 29 | * 文章缩略图 30 | */ 31 | private String articleCover; 32 | 33 | /** 34 | * 标题 35 | */ 36 | private String articleTitle; 37 | 38 | /** 39 | * 发表时间 40 | */ 41 | private Date createTime; 42 | 43 | /** 44 | * 文章分类id 45 | */ 46 | private Integer categoryId; 47 | 48 | /** 49 | * 文章分类名 50 | */ 51 | private String categoryName; 52 | 53 | /** 54 | * 文章标签 55 | */ 56 | private List tagDTOList; 57 | 58 | 59 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticlePreviewListDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/17 22:18 13 | * @description: {} 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class ArticlePreviewListDTO { 20 | 21 | /** 22 | * 文章列表 23 | */ 24 | private List articlePreviewDTOList; 25 | 26 | /** 27 | * 条件名 28 | */ 29 | private String name; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticleRecommendDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/17 22:17 13 | * @description: {推荐文章} 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | public class ArticleRecommendDTO { 20 | 21 | /** 22 | * id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 文章缩略图 28 | */ 29 | private String articleCover; 30 | 31 | /** 32 | * 标题 33 | */ 34 | private String articleTitle; 35 | 36 | /** 37 | * 创建时间 38 | */ 39 | private LocalDateTime createTime; 40 | 41 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticleSearchDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.springframework.data.annotation.Id; 8 | import org.springframework.data.elasticsearch.annotations.Document; 9 | import org.springframework.data.elasticsearch.annotations.Field; 10 | import org.springframework.data.elasticsearch.annotations.FieldType; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/17 22:19 15 | * @description: {} 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Document(indexName = "article") 22 | public class ArticleSearchDTO { 23 | 24 | /** 25 | * 文章id 26 | */ 27 | @Id 28 | private Integer id; 29 | 30 | /** 31 | * 文章标题 32 | */ 33 | @Field(type = FieldType.Text, analyzer = "ik_max_word") 34 | private String articleTitle; 35 | 36 | /** 37 | * 文章内容 38 | */ 39 | @Field(type = FieldType.Text, analyzer = "ik_max_word") 40 | private String articleContent; 41 | 42 | /** 43 | * 是否删除 44 | */ 45 | @Field(type = FieldType.Integer) 46 | private Integer isDelete; 47 | 48 | /** 49 | * 文章状态 50 | */ 51 | @Field(type = FieldType.Integer) 52 | private Integer status; 53 | 54 | } 55 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/ArticleStatisticsDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/17 22:29 11 | * @description: {} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class ArticleStatisticsDTO { 18 | 19 | /** 20 | * 日期 21 | */ 22 | private String date; 23 | 24 | /** 25 | * 数量 26 | */ 27 | private Integer count; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/article/MaxwellDataDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.article; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.Map; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/22 1:48 13 | * @description: {maxwell监听数据} 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | public class MaxwellDataDTO { 20 | 21 | /** 22 | * 数据库 23 | */ 24 | private String database; 25 | 26 | /** 27 | * xid 28 | */ 29 | private Integer xid; 30 | 31 | /** 32 | * 数据 33 | */ 34 | private Map data; 35 | 36 | /** 37 | * 是否提交 38 | */ 39 | private Boolean commit; 40 | 41 | /** 42 | * 类型 43 | */ 44 | private String type; 45 | 46 | /** 47 | * 表 48 | */ 49 | private String table; 50 | 51 | /** 52 | * ts 53 | */ 54 | private Integer ts; 55 | 56 | } 57 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/blog/ArticleRankDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.blog; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/25 23:39 11 | * @description: {} 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class ArticleRankDTO { 18 | 19 | /** 20 | * 标题 21 | */ 22 | private String articleTitle; 23 | 24 | /** 25 | * 浏览量 26 | */ 27 | private Integer viewsCount; 28 | 29 | 30 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/blog/BlogBackInfoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.blog; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.dto.article.ArticleStatisticsDTO; 8 | import org.cuit.epoch.dto.category.CategoryDTO; 9 | import org.cuit.epoch.dto.tag.TagDTO; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/29 17:42 16 | * @description: 17 | */ 18 | @Data 19 | @Builder 20 | @NoArgsConstructor 21 | @AllArgsConstructor 22 | public class BlogBackInfoDTO { 23 | /** 24 | * 访问量 25 | */ 26 | private Integer viewsCount; 27 | 28 | /** 29 | * 留言量 30 | */ 31 | private Integer messageCount; 32 | 33 | /** 34 | * 用户量 35 | */ 36 | private Integer userCount; 37 | 38 | /** 39 | * 文章量 40 | */ 41 | private Integer articleCount; 42 | 43 | /** 44 | * 分类统计 45 | */ 46 | private List categoryDTOList; 47 | 48 | /** 49 | * 标签列表 50 | */ 51 | private List tagDTOList; 52 | 53 | /** 54 | * 文章统计列表 55 | */ 56 | private List articleStatisticsList; 57 | 58 | /** 59 | * 一周用户量集合 60 | */ 61 | private List uniqueViewDTOList; 62 | 63 | /** 64 | * 文章浏览量排行 65 | */ 66 | private List articleRankDTOList; 67 | 68 | } 69 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/blog/BlogHomeInfoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.blog; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.vo.PageVO; 8 | import org.cuit.epoch.vo.WebsiteConfigVO; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/16 18:55 15 | * @description: 16 | */ 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class BlogHomeInfoDTO { 22 | 23 | /** 24 | * 文章数量 25 | */ 26 | private Integer articleCount; 27 | 28 | /** 29 | * 分类数量 30 | */ 31 | private Integer categoryCount; 32 | 33 | /** 34 | * 标签数量 35 | */ 36 | private Integer tagCount; 37 | 38 | /** 39 | * 访问量 40 | */ 41 | private String viewsCount; 42 | 43 | /** 44 | * 网站配置 45 | */ 46 | private WebsiteConfigVO websiteConfig; 47 | 48 | /** 49 | * 页面列表 50 | */ 51 | private List pageList; 52 | 53 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/blog/UniqueViewDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.blog; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/25 23:39 11 | * @description: {} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class UniqueViewDTO { 18 | 19 | /** 20 | * 日期 21 | */ 22 | private String day; 23 | 24 | /** 25 | * 访问量 26 | */ 27 | private Integer viewsCount; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/category/CategoryBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.category; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/12/2 20:16 13 | * @description: 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | public class CategoryBackDTO { 20 | 21 | /** 22 | * 分类id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 分类名称 28 | */ 29 | private String categoryName; 30 | 31 | /** 32 | * 文章数量 33 | */ 34 | private Integer articleCount; 35 | 36 | /** 37 | * 创建时间 38 | */ 39 | private LocalDateTime createTime; 40 | 41 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/category/CategoryDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.category; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/2 20:13 11 | * @description: 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class CategoryDTO { 18 | 19 | /** 20 | * id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 分类名 26 | */ 27 | private String categoryName; 28 | 29 | /** 30 | * 分类下的文章数量 31 | */ 32 | private Integer articleCount; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/category/CategoryOptionDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.category; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/2 20:20 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class CategoryOptionDTO { 18 | 19 | /** 20 | * 分类id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 分类名 26 | */ 27 | private String categoryName; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/chat/ChatRecordDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.chat; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.cuit.epoch.entity.ChatRecord; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/26 16:44 14 | * @description: {} 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | public class ChatRecordDTO { 21 | 22 | /** 23 | * 聊天记录 24 | */ 25 | private List chatRecordList; 26 | 27 | /** 28 | * ip地址 29 | */ 30 | private String ipAddress; 31 | 32 | /** 33 | * ip来源 34 | */ 35 | private String ipSource; 36 | 37 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/chat/RecallMessageDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.chat; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/26 16:45 11 | * @description: {撤回消息} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class RecallMessageDTO { 18 | 19 | /** 20 | * 消息id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 是否为语音 26 | */ 27 | private Boolean isVoice; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/chat/WebsocketMessageDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.chat; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/26 16:44 11 | * @description: {} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class WebsocketMessageDTO { 18 | 19 | /** 20 | * 类型 21 | */ 22 | private Integer type; 23 | 24 | /** 25 | * 数据 26 | */ 27 | private Object data; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/comment/CommentBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.comment; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/14 21:40 13 | * @description: {} 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class CommentBackDTO { 20 | /** 21 | * id 22 | */ 23 | private Integer id; 24 | 25 | /** 26 | * 用户头像 27 | */ 28 | private String avatar; 29 | 30 | /** 31 | * 用户昵称 32 | */ 33 | private String nickname; 34 | 35 | /** 36 | * 被回复用户昵称 37 | */ 38 | private String replyNickname; 39 | 40 | /** 41 | * 文章标题 42 | */ 43 | private String articleTitle; 44 | 45 | /** 46 | * 评论内容 47 | */ 48 | private String commentContent; 49 | 50 | /** 51 | * 评论类型 52 | */ 53 | private Integer type; 54 | 55 | /** 56 | * 是否审核 57 | */ 58 | private Integer isReview; 59 | 60 | /** 61 | * 发表时间 62 | */ 63 | private LocalDateTime createTime; 64 | 65 | 66 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/comment/CommentCountDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.comment; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/14 21:45 11 | * @description: {} 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class CommentCountDTO { 18 | 19 | /** 20 | * id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 评论数量 26 | */ 27 | private Integer commentCount; 28 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/comment/CommentDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.comment; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/14 21:38 14 | * @description: {} 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class CommentDTO { 21 | 22 | /** 23 | * 评论id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 用户id 29 | */ 30 | private Integer userId; 31 | 32 | /** 33 | * 用户昵称 34 | */ 35 | private String nickname; 36 | 37 | /** 38 | * 用户头像 39 | */ 40 | private String avatar; 41 | 42 | /** 43 | * 个人网站 44 | */ 45 | private String webSite; 46 | 47 | /** 48 | * 评论内容 49 | */ 50 | private String commentContent; 51 | 52 | /** 53 | * 点赞数 54 | */ 55 | private Integer likeCount; 56 | 57 | /** 58 | * 评论时间 59 | */ 60 | private LocalDateTime createTime; 61 | 62 | /** 63 | * 回复量 64 | */ 65 | private Integer replyCount; 66 | 67 | /** 68 | * 回复列表 69 | */ 70 | private List replyDTOList; 71 | 72 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/comment/ReplyCountDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.comment; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/14 21:45 11 | * @description: {} 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class ReplyCountDTO { 18 | 19 | /** 20 | * 评论id 21 | */ 22 | private Integer commentId; 23 | 24 | /** 25 | * 回复数量 26 | */ 27 | private Integer replyCount; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/comment/ReplyDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.comment; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/14 21:39 13 | * @description: {} 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class ReplyDTO { 20 | 21 | /** 22 | * 评论id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 父评论id 28 | */ 29 | private Integer parentId; 30 | 31 | /** 32 | * 用户id 33 | */ 34 | private Integer userId; 35 | 36 | /** 37 | * 用户昵称 38 | */ 39 | private String nickname; 40 | 41 | /** 42 | * 用户头像 43 | */ 44 | private String avatar; 45 | 46 | /** 47 | * 个人网站 48 | */ 49 | private String webSite; 50 | 51 | /** 52 | * 被回复用户id 53 | */ 54 | private Integer replyUserId; 55 | 56 | /** 57 | * 被回复用户昵称 58 | */ 59 | private String replyNickname; 60 | 61 | /** 62 | * 被回复个人网站 63 | */ 64 | private String replyWebSite; 65 | 66 | /** 67 | * 评论内容 68 | */ 69 | private String commentContent; 70 | 71 | /** 72 | * 点赞数 73 | */ 74 | private Integer likeCount; 75 | 76 | /** 77 | * 评论时间 78 | */ 79 | private LocalDateTime createTime; 80 | 81 | } 82 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/friend/FriendLinkBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.friend; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/11/30 20:57 13 | * @description: 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class FriendLinkBackDTO { 20 | /** 21 | * id 22 | */ 23 | private Integer id; 24 | 25 | /** 26 | * 链接名 27 | */ 28 | private String linkName; 29 | 30 | /** 31 | * 链接头像 32 | */ 33 | private String linkAvatar; 34 | 35 | /** 36 | * 链接地址 37 | */ 38 | private String linkAddress; 39 | 40 | /** 41 | * 链接介绍 42 | */ 43 | private String linkIntro; 44 | 45 | /** 46 | * 创建时间 47 | */ 48 | private LocalDateTime createTime; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/friend/FriendLinkDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.friend; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/30 20:57 11 | * @description: 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class FriendLinkDTO { 18 | 19 | /** 20 | * id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 链接名 26 | */ 27 | private String linkName; 28 | 29 | /** 30 | * 链接头像 31 | */ 32 | private String linkAvatar; 33 | 34 | /** 35 | * 链接地址 36 | */ 37 | private String linkAddress; 38 | 39 | /** 40 | * 介绍 41 | */ 42 | private String linkIntro; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/log/OperationLogDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.log; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/12/5 17:22 13 | * @description: 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class OperationLogDTO { 20 | /** 21 | * 日志id 22 | */ 23 | private Integer id; 24 | 25 | /** 26 | * 操作模块 27 | */ 28 | private String optModule; 29 | 30 | /** 31 | * 操作路径 32 | */ 33 | private String optUrl; 34 | 35 | /** 36 | * 操作类型 37 | */ 38 | private String optType; 39 | 40 | /** 41 | * 操作方法 42 | */ 43 | private String optMethod; 44 | 45 | /** 46 | * 操作描述 47 | */ 48 | private String optDesc; 49 | 50 | /** 51 | * 请求方式 52 | */ 53 | private String requestMethod; 54 | 55 | /** 56 | * 请求参数 57 | */ 58 | private String requestParam; 59 | 60 | /** 61 | * 返回数据 62 | */ 63 | private String responseData; 64 | 65 | /** 66 | * 用户昵称 67 | */ 68 | private String nickname; 69 | 70 | /** 71 | * 用户登录ip 72 | */ 73 | private String ipAddress; 74 | 75 | /** 76 | * ip来源 77 | */ 78 | private String ipSource; 79 | 80 | /** 81 | * 创建时间 82 | */ 83 | private LocalDateTime createTime; 84 | 85 | } 86 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/menu/MenuDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.menu; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/25 13:09 14 | * @description: 菜单 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class MenuDTO { 21 | 22 | /** 23 | * id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 菜单名 29 | */ 30 | private String name; 31 | 32 | /** 33 | * 路径 34 | */ 35 | private String path; 36 | 37 | /** 38 | * 组件 39 | */ 40 | private String component; 41 | 42 | /** 43 | * icon 44 | */ 45 | private String icon; 46 | 47 | /** 48 | * 创建时间 49 | */ 50 | private LocalDateTime createTime; 51 | 52 | /** 53 | * 排序 54 | */ 55 | private Integer orderNum; 56 | 57 | /** 58 | * 是否禁用 59 | */ 60 | private Integer isDisable; 61 | 62 | /** 63 | * 是否隐藏 64 | */ 65 | private Integer isHidden; 66 | 67 | /** 68 | * 子菜单列表 69 | */ 70 | private List children; 71 | 72 | } 73 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/menu/UserMenuDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.menu; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/11/25 12:46 13 | * @description: 用户菜单 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class UserMenuDTO { 20 | 21 | /** 22 | * 菜单名 23 | */ 24 | private String name; 25 | 26 | /** 27 | * 路径 28 | */ 29 | private String path; 30 | 31 | /** 32 | * 组件 33 | */ 34 | private String component; 35 | 36 | /** 37 | * icon 38 | */ 39 | private String icon; 40 | 41 | /** 42 | * 是否隐藏 43 | */ 44 | private Boolean hidden; 45 | 46 | /** 47 | * 子菜单列表 48 | */ 49 | private List children; 50 | 51 | } 52 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/message/MessageBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.message; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/14 20:27 13 | * @description: {} 14 | */ 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class MessageBackDTO { 20 | 21 | /** 22 | * 主键id 23 | */ 24 | private Integer id; 25 | 26 | /** 27 | * 用户ip 28 | */ 29 | private String ipAddress; 30 | 31 | /** 32 | * 用户ip地址 33 | */ 34 | private String ipSource; 35 | 36 | /** 37 | * 昵称 38 | */ 39 | private String nickname; 40 | 41 | /** 42 | * 头像 43 | */ 44 | private String avatar; 45 | 46 | /** 47 | * 留言内容 48 | */ 49 | private String messageContent; 50 | 51 | /** 52 | * 是否审核 53 | */ 54 | private Integer isReview; 55 | 56 | /** 57 | * 留言时间 58 | */ 59 | private LocalDateTime createTime; 60 | 61 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/message/MessageDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.message; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: Xiaoqiang-Ladidol 10 | * @date: 2022/12/14 20:26 11 | * @description: {} 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class MessageDTO { 18 | 19 | /** 20 | * 主键id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 昵称 26 | */ 27 | private String nickname; 28 | 29 | /** 30 | * 头像 31 | */ 32 | private String avatar; 33 | 34 | /** 35 | * 留言内容 36 | */ 37 | private String messageContent; 38 | 39 | /** 40 | * 弹幕速度 41 | */ 42 | private Integer time; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/photo/PhotoAlbumBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.photo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/7 19:36 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class PhotoAlbumBackDTO { 18 | 19 | /** 20 | * 相册id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 相册名 26 | */ 27 | private String albumName; 28 | 29 | /** 30 | * 相册描述 31 | */ 32 | private String albumDesc; 33 | 34 | /** 35 | * 相册封面 36 | */ 37 | private String albumCover; 38 | 39 | /** 40 | * 照片数量 41 | */ 42 | private Integer photoCount; 43 | 44 | /** 45 | * 状态值 1公开 2私密 46 | */ 47 | private Integer status; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/photo/PhotoAlbumDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.photo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/7 19:37 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class PhotoAlbumDTO { 18 | 19 | /** 20 | * 相册id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 相册名 26 | */ 27 | private String albumName; 28 | 29 | /** 30 | * 相册描述 31 | */ 32 | private String albumDesc; 33 | 34 | /** 35 | * 相册封面 36 | */ 37 | private String albumCover; 38 | 39 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/photo/PhotoBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.photo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/8 15:14 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class PhotoBackDTO { 18 | 19 | /** 20 | * 照片id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 照片名 26 | */ 27 | private String photoName; 28 | 29 | /** 30 | * 照片描述 31 | */ 32 | private String photoDesc; 33 | 34 | /** 35 | * 照片地址 36 | */ 37 | private String photoSrc; 38 | 39 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/photo/PhotoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.photo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/12/8 15:22 13 | * @description: 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | public class PhotoDTO { 20 | 21 | /** 22 | * 相册封面 23 | */ 24 | private String photoAlbumCover; 25 | 26 | /** 27 | * 相册名 28 | */ 29 | private String photoAlbumName; 30 | 31 | /** 32 | * 照片列表 33 | */ 34 | private List photoList; 35 | 36 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/resource/ResourceDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.resource; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/26 14:43 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | public class ResourceDTO { 21 | 22 | /** 23 | * 权限id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 资源名 29 | */ 30 | private String resourceName; 31 | 32 | /** 33 | * 权限路径 34 | */ 35 | private String url; 36 | 37 | /** 38 | * 请求方式 39 | */ 40 | private String requestMethod; 41 | 42 | /** 43 | * 是否禁用 44 | */ 45 | private Integer isDisable; 46 | 47 | /** 48 | * 是否匿名访问 49 | */ 50 | private Integer isAnonymous; 51 | 52 | /** 53 | * 创建时间 54 | */ 55 | private LocalDateTime createTime; 56 | 57 | /** 58 | * 权限列表 59 | */ 60 | private List children; 61 | 62 | 63 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/QQTokenDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/23 8:49 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class QQTokenDTO { 18 | 19 | /** 20 | * openid 21 | */ 22 | private String openid; 23 | 24 | /** 25 | * 客户端id 26 | */ 27 | private String client_id; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/QQUserInfoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/23 8:44 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class QQUserInfoDTO { 18 | 19 | /** 20 | * 昵称 21 | */ 22 | private String nickname; 23 | 24 | /** 25 | * qq头像 26 | */ 27 | private String figureurl_qq_1; 28 | 29 | 30 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/SocialTokenDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/22 16:13 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class SocialTokenDTO { 18 | 19 | /** 20 | * 开放id 21 | */ 22 | private String openId; 23 | 24 | /** 25 | * 访问令牌 26 | */ 27 | private String accessToken; 28 | 29 | /** 30 | * 登录类型 31 | */ 32 | private Integer loginType; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/SocialUserInfoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/22 17:05 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class SocialUserInfoDTO { 18 | 19 | /** 20 | * 昵称 21 | */ 22 | private String nickname; 23 | 24 | /** 25 | * 头像 26 | */ 27 | private String avatar; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/WeiboTokenDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/22 17:12 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class WeiboTokenDTO { 18 | 19 | /** 20 | * 微博用户的uid 21 | */ 22 | private String uid; 23 | 24 | /** 25 | * 访问令牌 26 | */ 27 | private String access_token; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/strategy/login/WeiboUserInfoDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.strategy.login; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/22 17:13 11 | * @description: 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Builder 17 | public class WeiboUserInfoDTO { 18 | 19 | /** 20 | * 昵称 21 | */ 22 | private String screen_name; 23 | 24 | /** 25 | * 头像 26 | */ 27 | private String avatar_hd; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/tag/TagBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.tag; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: ladidol 12 | * @date: 2022/12/2 21:27 13 | * @description: 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | public class TagBackDTO { 20 | /** 21 | * 标签id 22 | */ 23 | private Integer id; 24 | 25 | /** 26 | * 标签名 27 | */ 28 | private String tagName; 29 | 30 | /** 31 | * 文章量 32 | */ 33 | private Integer articleCount; 34 | 35 | /** 36 | * 创建时间 37 | */ 38 | private LocalDateTime createTime; 39 | 40 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/tag/TagDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.tag; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/12/2 21:26 11 | * @description: 12 | */ 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class TagDTO { 18 | 19 | /** 20 | * id 21 | */ 22 | private Integer id; 23 | 24 | /** 25 | * 标签名 26 | */ 27 | private String tagName; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/talk/TalkBackDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.talk; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/12 23:19 14 | * @description: {} 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | public class TalkBackDTO { 21 | 22 | /** 23 | * 说说id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 昵称 29 | */ 30 | private String nickname; 31 | 32 | /** 33 | * 头像 34 | */ 35 | private String avatar; 36 | 37 | /** 38 | * 说说内容 39 | */ 40 | private String content; 41 | 42 | /** 43 | * 图片 44 | */ 45 | private String images; 46 | 47 | /** 48 | * 图片列表 49 | */ 50 | private List imgList; 51 | 52 | /** 53 | * 是否置顶 54 | */ 55 | private Integer isTop; 56 | 57 | /** 58 | * 状态 59 | */ 60 | private Integer status; 61 | 62 | /** 63 | * 创建时间 64 | */ 65 | private LocalDateTime createTime; 66 | 67 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/dto/talk/TalkDTO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.dto.talk; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/12 23:17 14 | * @description: {} 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | public class TalkDTO { 21 | 22 | /** 23 | * 说说id 24 | */ 25 | private Integer id; 26 | 27 | /** 28 | * 昵称 29 | */ 30 | private String nickname; 31 | 32 | /** 33 | * 头像 34 | */ 35 | private String avatar; 36 | 37 | /** 38 | * 说说内容 39 | */ 40 | private String content; 41 | 42 | /** 43 | * 图片 44 | */ 45 | private String images; 46 | 47 | /** 48 | * 图片列表 49 | */ 50 | private List imgList; 51 | 52 | /** 53 | * 是否置顶 54 | */ 55 | private Integer isTop; 56 | 57 | /** 58 | * 点赞量 59 | */ 60 | private Integer likeCount; 61 | 62 | /** 63 | * 评论量 64 | */ 65 | private Integer commentCount; 66 | 67 | /** 68 | * 创建时间 69 | */ 70 | private LocalDateTime createTime; 71 | 72 | } 73 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/ArticleTag.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/12/2 21:37 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_article_tag") 21 | public class ArticleTag { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 文章id 31 | */ 32 | private Integer articleId; 33 | 34 | /** 35 | * 标签id 36 | */ 37 | private Integer tagId; 38 | 39 | 40 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Category.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 19:29 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_category") 21 | public class Category { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 分类名 31 | */ 32 | private String categoryName; 33 | 34 | /** 35 | * 创建时间 36 | */ 37 | @TableField(fill = FieldFill.INSERT) 38 | private LocalDateTime createTime; 39 | 40 | /** 41 | * 修改时间 42 | */ 43 | @TableField(fill = FieldFill.UPDATE) 44 | private LocalDateTime updateTime; 45 | 46 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/ChatRecord.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/26 16:37 14 | * @description: {} 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_chat_record") 21 | public class ChatRecord { 22 | 23 | /** 24 | * 主键 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 用户id 31 | */ 32 | private Integer userId; 33 | 34 | /** 35 | * 用户昵称 36 | */ 37 | private String nickname; 38 | 39 | /** 40 | * 用户头像 41 | */ 42 | private String avatar; 43 | 44 | /** 45 | * 聊天内容 46 | */ 47 | private String content; 48 | 49 | /** 50 | * 类型 51 | */ 52 | private Integer type; 53 | 54 | /** 55 | * 用户登录ip 56 | */ 57 | private String ipAddress; 58 | 59 | /** 60 | * ip来源 61 | */ 62 | private String ipSource; 63 | 64 | /** 65 | * 创建时间 66 | */ 67 | @TableField(fill = FieldFill.INSERT) 68 | private LocalDateTime createTime; 69 | 70 | /** 71 | * 修改时间 72 | */ 73 | @TableField(fill = FieldFill.UPDATE) 74 | private LocalDateTime updateTime; 75 | 76 | 77 | } 78 | 79 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/FriendLink.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/30 20:55 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_friend_link") 21 | public class FriendLink { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 链接名 31 | */ 32 | private String linkName; 33 | 34 | /** 35 | * 链接头像 36 | */ 37 | private String linkAvatar; 38 | 39 | /** 40 | * 链接地址 41 | */ 42 | private String linkAddress; 43 | 44 | /** 45 | * 介绍 46 | */ 47 | private String linkIntro; 48 | 49 | /** 50 | * 创建时间 51 | */ 52 | @TableField(fill = FieldFill.INSERT) 53 | private LocalDateTime createTime; 54 | 55 | /** 56 | * 修改时间 57 | */ 58 | @TableField(fill = FieldFill.UPDATE) 59 | private LocalDateTime updateTime; 60 | 61 | } 62 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Menu.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/25 12:44 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_menu") 21 | public class Menu { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 菜单名 31 | */ 32 | private String name; 33 | 34 | /** 35 | * 路径 36 | */ 37 | private String path; 38 | 39 | /** 40 | * 组件 41 | */ 42 | private String component; 43 | 44 | /** 45 | * icon 46 | */ 47 | private String icon; 48 | 49 | /** 50 | * 排序 51 | */ 52 | private Integer orderNum; 53 | 54 | /** 55 | * 父id 56 | */ 57 | private Integer parentId; 58 | 59 | /** 60 | * 是否隐藏 61 | */ 62 | private Integer isHidden; 63 | 64 | /** 65 | * 创建时间 66 | */ 67 | @TableField(fill = FieldFill.INSERT) 68 | private LocalDateTime createTime; 69 | 70 | /** 71 | * 修改时间 72 | */ 73 | @TableField(fill = FieldFill.UPDATE) 74 | private LocalDateTime updateTime; 75 | 76 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Message.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/14 20:19 14 | * @description: {} 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_message") 21 | public class Message { 22 | 23 | /** 24 | * 主键id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 用户ip 31 | */ 32 | private String ipAddress; 33 | 34 | /** 35 | * 用户地址 36 | */ 37 | private String ipSource; 38 | 39 | /** 40 | * 昵称 41 | */ 42 | private String nickname; 43 | 44 | /** 45 | * 头像 46 | */ 47 | private String avatar; 48 | 49 | /** 50 | * 留言内容 51 | */ 52 | private String messageContent; 53 | 54 | /** 55 | * 弹幕速度 56 | */ 57 | private Integer time; 58 | 59 | /** 60 | * 是否审核 61 | */ 62 | private Integer isReview; 63 | 64 | /** 65 | * 创建时间 66 | */ 67 | @TableField(fill = FieldFill.INSERT) 68 | private LocalDateTime createTime; 69 | 70 | /** 71 | * 修改时间 72 | */ 73 | @TableField(fill = FieldFill.UPDATE) 74 | private LocalDateTime updateTime; 75 | 76 | } 77 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Page.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 19:50 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @TableName(value ="tb_page") 21 | public class Page { 22 | 23 | /** 24 | * 页面id 25 | */ 26 | @TableId(type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 页面名 31 | */ 32 | private String pageName; 33 | 34 | /** 35 | * 页面标签 36 | */ 37 | private String pageLabel; 38 | 39 | /** 40 | * 页面封面 41 | */ 42 | private String pageCover; 43 | 44 | /** 45 | * 创建时间 46 | */ 47 | @TableField(fill = FieldFill.INSERT) 48 | private LocalDateTime createTime; 49 | 50 | /** 51 | * 修改时间 52 | */ 53 | @TableField(fill = FieldFill.UPDATE) 54 | private LocalDateTime updateTime; 55 | 56 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Photo.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/12/7 19:28 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @TableName(value ="tb_photo") 21 | public class Photo { 22 | 23 | /** 24 | * 照片id 25 | */ 26 | @TableId(type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 相册id 31 | */ 32 | private Integer albumId; 33 | 34 | /** 35 | * 照片名 36 | */ 37 | private String photoName; 38 | 39 | /** 40 | * 照片描述 41 | */ 42 | private String photoDesc; 43 | 44 | /** 45 | * 照片地址 46 | */ 47 | private String photoSrc; 48 | 49 | /** 50 | * 是否删除 51 | */ 52 | private Integer isDelete; 53 | 54 | /** 55 | * 创建时间 56 | */ 57 | @TableField(fill = FieldFill.INSERT) 58 | private LocalDateTime createTime; 59 | 60 | /** 61 | * 修改时间 62 | */ 63 | @TableField(fill = FieldFill.UPDATE) 64 | private LocalDateTime updateTime; 65 | 66 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/PhotoAlbum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/12/7 19:29 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @TableName(value ="tb_photo_album") 21 | public class PhotoAlbum { 22 | 23 | /** 24 | * 主键 25 | */ 26 | @TableId(type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 相册名 31 | */ 32 | private String albumName; 33 | 34 | /** 35 | * 相册描述 36 | */ 37 | private String albumDesc; 38 | 39 | /** 40 | * 相册封面 41 | */ 42 | private String albumCover; 43 | 44 | /** 45 | * 是否删除 46 | */ 47 | private Integer isDelete; 48 | 49 | /** 50 | * 状态值 1公开 2私密 51 | */ 52 | private Integer status; 53 | 54 | /** 55 | * 创建时间 56 | */ 57 | @TableField(fill = FieldFill.INSERT) 58 | private LocalDateTime createTime; 59 | 60 | /** 61 | * 修改时间 62 | */ 63 | @TableField(fill = FieldFill.UPDATE) 64 | private LocalDateTime updateTime; 65 | 66 | 67 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Resource.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/26 14:41 14 | * @description: 资源 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_resource") 21 | public class Resource { 22 | /** 23 | * 权限id 24 | */ 25 | @TableId(value = "id", type = IdType.AUTO) 26 | private Integer id; 27 | 28 | /** 29 | * 权限名 30 | */ 31 | private String resourceName; 32 | 33 | /** 34 | * 权限路径 35 | */ 36 | private String url; 37 | 38 | /** 39 | * 请求方式 40 | */ 41 | private String requestMethod; 42 | 43 | /** 44 | * 父权限id 45 | */ 46 | private Integer parentId; 47 | 48 | /** 49 | * 是否匿名访问 50 | */ 51 | private Integer isAnonymous; 52 | 53 | /** 54 | * 创建时间 55 | */ 56 | @TableField(fill = FieldFill.INSERT) 57 | private LocalDateTime createTime; 58 | 59 | /** 60 | * 修改时间 61 | */ 62 | @TableField(fill = FieldFill.UPDATE) 63 | private LocalDateTime updateTime; 64 | 65 | } 66 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Role.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/15 21:16 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_role") 21 | public class Role { 22 | 23 | /** 24 | * 角色id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 角色名 31 | */ 32 | private String roleName; 33 | 34 | /** 35 | * 角色标签 36 | */ 37 | private String roleLabel; 38 | 39 | /** 40 | * 是否禁用 41 | */ 42 | private Integer isDisable; 43 | 44 | /** 45 | * 创建时间 46 | */ 47 | @TableField(fill = FieldFill.INSERT) 48 | private LocalDateTime createTime; 49 | 50 | /** 51 | * 修改时间 52 | */ 53 | @TableField(fill = FieldFill.UPDATE) 54 | private LocalDateTime updateTime; 55 | 56 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/RoleMenu.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/25 14:38 14 | * @description: 角色菜单 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_role_menu") 21 | public class RoleMenu { 22 | 23 | /** 24 | * 主键id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 角色id 31 | */ 32 | private Integer roleId; 33 | 34 | /** 35 | * 菜单id 36 | */ 37 | private Integer menuId; 38 | 39 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/RoleResource.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/26 14:48 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_role_resource") 21 | public class RoleResource { 22 | /** 23 | * 主键id 24 | */ 25 | @TableId(value = "id", type = IdType.AUTO) 26 | private Integer id; 27 | 28 | /** 29 | * 角色id 30 | */ 31 | private Integer roleId; 32 | 33 | /** 34 | * 资源id 35 | */ 36 | private Integer resourceId; 37 | 38 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Tag.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 19:31 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_tag") 21 | public class Tag { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 标签名 31 | */ 32 | private String tagName; 33 | 34 | /** 35 | * 创建时间 36 | */ 37 | @TableField(fill = FieldFill.INSERT) 38 | private LocalDateTime createTime; 39 | 40 | /** 41 | * 修改时间 42 | */ 43 | @TableField(fill = FieldFill.UPDATE) 44 | private LocalDateTime updateTime; 45 | 46 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/Talk.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/12 23:15 14 | * @description: {} 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @TableName("tb_talk") 21 | public class Talk { 22 | 23 | /** 24 | * 说说id 25 | */ 26 | @TableId(type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 用户id 31 | */ 32 | private Integer userId; 33 | 34 | /** 35 | * 说说内容 36 | */ 37 | private String content; 38 | 39 | /** 40 | * 图片 41 | */ 42 | private String images; 43 | 44 | /** 45 | * 是否置顶 46 | */ 47 | private Integer isTop; 48 | 49 | /** 50 | * 说说状态 1.公开 2.私密 51 | */ 52 | private Integer status; 53 | 54 | /** 55 | * 创建时间 56 | */ 57 | @TableField(fill = FieldFill.INSERT) 58 | private LocalDateTime createTime; 59 | 60 | /** 61 | * 修改时间 62 | */ 63 | @TableField(fill = FieldFill.UPDATE) 64 | private LocalDateTime updateTime; 65 | 66 | 67 | } 68 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/UniqueView.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/26 0:02 14 | * @description: {} 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_unique_view") 21 | public class UniqueView { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 访问量 31 | */ 32 | private Integer viewsCount; 33 | 34 | /** 35 | * 创建时间 36 | */ 37 | @TableField(fill = FieldFill.INSERT) 38 | private LocalDateTime createTime; 39 | 40 | /** 41 | * 修改时间 42 | */ 43 | @TableField(fill = FieldFill.UPDATE) 44 | private LocalDateTime updateTime; 45 | 46 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/UserAuth.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/15 21:45 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_user_auth") 21 | public class UserAuth { 22 | 23 | /** 24 | * id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 用户信息id 31 | */ 32 | private Integer userInfoId; 33 | 34 | /** 35 | * 用户名 36 | */ 37 | private String username; 38 | 39 | /** 40 | * 密码 41 | */ 42 | private String password; 43 | 44 | /** 45 | * 登录类型 46 | */ 47 | private Integer loginType; 48 | 49 | /** 50 | * 用户登录ip 51 | */ 52 | private String ipAddress; 53 | 54 | /** 55 | * ip来源 56 | */ 57 | private String ipSource; 58 | 59 | /** 60 | * 创建时间 61 | */ 62 | @TableField(fill = FieldFill.INSERT) 63 | private LocalDateTime createTime; 64 | 65 | /** 66 | * 修改时间 67 | */ 68 | @TableField(fill = FieldFill.UPDATE) 69 | private LocalDateTime updateTime; 70 | 71 | /** 72 | * 最近登录时间 73 | */ 74 | private LocalDateTime lastLoginTime; 75 | 76 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/UserInfo.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 17:15 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_user_info") 21 | public class UserInfo { 22 | 23 | /** 24 | * 用户ID 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 邮箱号 31 | */ 32 | private String email; 33 | 34 | /** 35 | * 用户昵称 36 | */ 37 | private String nickname; 38 | 39 | /** 40 | * 用户头像 41 | */ 42 | private String avatar; 43 | 44 | /** 45 | * 用户简介 46 | */ 47 | private String intro; 48 | 49 | /** 50 | * 个人网站 51 | */ 52 | private String webSite; 53 | 54 | /** 55 | * 是否禁言 56 | */ 57 | private Integer isDisable; 58 | 59 | /** 60 | * 创建时间 61 | */ 62 | @TableField(fill = FieldFill.INSERT) 63 | private LocalDateTime createTime; 64 | 65 | /** 66 | * 修改时间 67 | */ 68 | @TableField(fill = FieldFill.UPDATE) 69 | private LocalDateTime updateTime; 70 | 71 | 72 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/UserRole.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/18 19:44 14 | * @description: 15 | */ 16 | @Data 17 | @Builder 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @TableName("tb_user_role") 21 | public class UserRole { 22 | 23 | /** 24 | * 主键id 25 | */ 26 | @TableId(value = "id", type = IdType.AUTO) 27 | private Integer id; 28 | 29 | /** 30 | * 用户id 31 | */ 32 | private Integer userId; 33 | 34 | /** 35 | * 角色id 36 | */ 37 | private Integer roleId; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/entity/WebsiteConfig.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/16 19:21 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @TableName(value = "tb_website_config") 21 | public class WebsiteConfig { 22 | /** 23 | * 24 | */ 25 | @TableId(type = IdType.AUTO) 26 | private Integer id; 27 | 28 | /** 29 | * 配置信息 30 | */ 31 | private String config; 32 | 33 | /** 34 | * 创建时间 35 | */ 36 | @TableField(fill = FieldFill.INSERT) 37 | private LocalDateTime createTime; 38 | 39 | /** 40 | * 修改时间 41 | */ 42 | @TableField(fill = FieldFill.UPDATE) 43 | private LocalDateTime updateTime; 44 | 45 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/ArticleStatusEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/16 19:28 9 | * @description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum ArticleStatusEnum { 14 | /** 15 | * 公开 16 | */ 17 | PUBLIC(1, "公开"), 18 | /** 19 | * 私密 20 | */ 21 | SECRET(2, "私密"), 22 | /** 23 | * 草稿 24 | */ 25 | DRAFT(3, "草稿"); 26 | 27 | /** 28 | * 状态 29 | */ 30 | private final Integer status; 31 | 32 | /** 33 | * 描述 34 | */ 35 | private final String desc; 36 | 37 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/ArticleTypeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/16 19:28 9 | * @description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum ArticleTypeEnum { 14 | 15 | /** 16 | * 原始 17 | */ 18 | ORIGINAL(1,"原创"), 19 | /** 20 | * 转载 21 | */ 22 | REPRINTED(2,"转载"), 23 | 24 | /** 25 | * 翻译 26 | */ 27 | TRANSLATION(3,"翻译"); 28 | 29 | /** 30 | * 类型 31 | */ 32 | private final Integer type; 33 | 34 | /** 35 | * 描述 36 | */ 37 | private final String desc; 38 | } 39 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/ChatTypeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum ChatTypeEnum { 9 | /** 10 | * 在线人数 11 | */ 12 | ONLINE_COUNT(1, "在线人数"), 13 | /** 14 | * 历史记录 15 | */ 16 | HISTORY_RECORD(2, "历史记录"), 17 | /** 18 | * 发送消息 19 | */ 20 | SEND_MESSAGE(3, "发送消息"), 21 | /** 22 | * 撤回消息 23 | */ 24 | RECALL_MESSAGE(4, "撤回消息"), 25 | /** 26 | * 语音消息 27 | */ 28 | VOICE_MESSAGE(5,"语音消息"), 29 | /** 30 | * 心跳消息 31 | */ 32 | HEART_BEAT(6,"心跳消息"); 33 | 34 | /** 35 | * 类型 36 | */ 37 | private final Integer type; 38 | 39 | /** 40 | * 描述 41 | */ 42 | private final String desc; 43 | 44 | /** 45 | * 根据类型获取枚举 46 | * @param type 类型 47 | * @return 枚举 48 | */ 49 | public static ChatTypeEnum getChatType(Integer type) { 50 | for (ChatTypeEnum chatType : ChatTypeEnum.values()) { 51 | if (chatType.getType().equals(type)) { 52 | return chatType; 53 | } 54 | } 55 | return null; 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/FileExtEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum FileExtEnum { 9 | /** 10 | * jpg文件 11 | */ 12 | JPG(".jpg", "jpg文件"), 13 | /** 14 | * png文件 15 | */ 16 | PNG(".png", "png文件"), 17 | /** 18 | * Jpeg文件 19 | */ 20 | JPEG(".jpeg", "jpeg文件"), 21 | /** 22 | * wav文件 23 | */ 24 | WAV(".wav", "wav文件"), 25 | /** 26 | * md文件 27 | */ 28 | MD(".md","markdown文件"), 29 | /** 30 | * txt文件 31 | */ 32 | TXT(".txt","txt文件"); 33 | 34 | /** 35 | * 获取文件格式 36 | * 37 | * @param extName 扩展名 38 | * @return {@link FileExtEnum} 文件格式 39 | */ 40 | public static FileExtEnum getFileExt(String extName) { 41 | for (FileExtEnum value : FileExtEnum.values()) { 42 | if (value.getExtName().equalsIgnoreCase(extName)) { 43 | return value; 44 | } 45 | } 46 | return null; 47 | } 48 | 49 | /** 50 | * 扩展名 51 | */ 52 | private final String extName; 53 | 54 | /** 55 | * 描述 56 | */ 57 | private final String desc; 58 | 59 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/FilePathEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum FilePathEnum { 9 | /** 10 | * 头像路径 11 | */ 12 | AVATAR("avatar/", "头像路径"), 13 | /** 14 | * 文章图片路径 15 | */ 16 | ARTICLE("articles/", "文章图片路径"), 17 | /** 18 | * 音频路径 19 | */ 20 | VOICE("voice/", "音频路径"), 21 | /** 22 | * 照片路径 23 | */ 24 | PHOTO("photos/", "相册路径"), 25 | /** 26 | * 配置图片路径 27 | */ 28 | CONFIG("config/", "配置图片路径"), 29 | /** 30 | * 说说图片路径 31 | */ 32 | TALK("talks/", "说说图片路径"), 33 | /** 34 | * md文件路径 35 | */ 36 | MD("markdown/", "md文件路径"); 37 | 38 | /** 39 | * 路径 40 | */ 41 | private final String path; 42 | 43 | /** 44 | * 描述 45 | */ 46 | private final String desc; 47 | 48 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/LoginTypeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/18 19:56 9 | * @description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum LoginTypeEnum { 14 | /** 15 | * 邮箱登录 16 | */ 17 | EMAIL(1, "邮箱登录", ""), 18 | /** 19 | * QQ登录 20 | */ 21 | QQ(2, "QQ登录", "qqLoginStrategyImpl"), 22 | /** 23 | * 微博登录 24 | */ 25 | WEIBO(3, "微博登录", "weiboLoginStrategyImpl"); 26 | 27 | /** 28 | * 登录方式 29 | */ 30 | private final Integer type; 31 | 32 | /** 33 | * 描述 34 | */ 35 | private final String desc; 36 | 37 | /** 38 | * 策略 39 | */ 40 | private final String strategy; 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/MarkdownTypeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: Xiaoqiang-Ladidol 8 | * @date: 2022/12/21 18:44 9 | * @description: {} 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum MarkdownTypeEnum { 14 | /** 15 | * 普通文章 16 | */ 17 | NORMAL("", "normalArticleImportStrategyImpl"), 18 | /** 19 | * Hexo文章 20 | */ 21 | HEXO("hexo", "hexoArticleImportStrategyImpl"); 22 | 23 | /** 24 | * 类型 25 | */ 26 | private final String type; 27 | 28 | /** 29 | * 策略 30 | */ 31 | private final String strategy; 32 | 33 | public static String getMarkdownType(String name) { 34 | if (name == null) { 35 | return NORMAL.getStrategy(); 36 | } 37 | for (MarkdownTypeEnum value : MarkdownTypeEnum.values()) { 38 | if (value.getType().equalsIgnoreCase(name)) { 39 | return value.getStrategy(); 40 | } 41 | } 42 | return null; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/RoleEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum RoleEnum { 9 | /** 10 | * 管理员 11 | */ 12 | ADMIN(1, "管理员", "admin"), 13 | /** 14 | * 普通用户 15 | */ 16 | USER(2, "用户", "user"), 17 | /** 18 | * 测试账号 19 | */ 20 | TEST(3, "测试", "test"); 21 | 22 | /** 23 | * 角色id 24 | */ 25 | private final Integer roleId; 26 | 27 | /** 28 | * 描述 29 | */ 30 | private final String name; 31 | 32 | /** 33 | * 权限标签 34 | */ 35 | private final String label; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/SearchModeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: Xiaoqiang-Ladidol 8 | * @date: 2022/12/24 21:46 9 | * @description: {} 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum SearchModeEnum { 14 | /** 15 | * mysql 16 | */ 17 | MYSQL("mysql", "mySqlSearchStrategyImpl"), 18 | /** 19 | * elasticsearch 20 | */ 21 | ELASTICSEARCH("elasticsearch", "esSearchStrategyImpl"); 22 | 23 | /** 24 | * 模式 25 | */ 26 | private final String mode; 27 | 28 | /** 29 | * 策略 30 | */ 31 | private final String strategy; 32 | 33 | /** 34 | * 获取策略 35 | * 36 | * @param mode 模式 37 | * @return {@link String} 搜索策略 38 | */ 39 | public static String getStrategy(String mode) { 40 | for (SearchModeEnum value : SearchModeEnum.values()) { 41 | if (value.getMode().equals(mode)) { 42 | return value.getStrategy(); 43 | } 44 | } 45 | return null; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/StatusCodeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * 接口状态码枚举 8 | * 9 | * @author yezhqiu 10 | * @date 2021/06/11 11 | **/ 12 | @Getter 13 | @AllArgsConstructor 14 | public enum StatusCodeEnum { 15 | /** 16 | * 成功 17 | */ 18 | SUCCESS(20000, "操作成功"), 19 | /** 20 | * 未登录 21 | */ 22 | NO_LOGIN(40001, "用户未登录"), 23 | /** 24 | * 没有操作权限 25 | */ 26 | AUTHORIZED(40300, "没有操作权限"), 27 | /** 28 | * 系统异常 29 | */ 30 | SYSTEM_ERROR(50000, "系统异常"), 31 | /** 32 | * 失败 33 | */ 34 | FAIL(51000, "操作失败"), 35 | /** 36 | * 参数校验失败 37 | */ 38 | VALID_ERROR(52000, "参数格式不正确"), 39 | /** 40 | * 用户名已存在 41 | */ 42 | USERNAME_EXIST(52001, "用户名已存在"), 43 | /** 44 | * 用户名不存在 45 | */ 46 | USERNAME_NOT_EXIST(52002, "用户名不存在"), 47 | /** 48 | * qq登录错误 49 | */ 50 | QQ_LOGIN_ERROR(53001, "qq登录错误"), 51 | /** 52 | * 微博登录错误 53 | */ 54 | WEIBO_LOGIN_ERROR(53002, "微博登录错误"); 55 | 56 | /** 57 | * 状态码 58 | */ 59 | private final Integer code; 60 | 61 | /** 62 | * 描述 63 | */ 64 | private final String desc; 65 | 66 | } 67 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/TalkStatusEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: Xiaoqiang-Ladidol 8 | * @date: 2022/12/12 23:30 9 | * @description: {} 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum TalkStatusEnum { 14 | /** 15 | * 公开 16 | */ 17 | PUBLIC(1, "公开"), 18 | /** 19 | * 私密 20 | */ 21 | SECRET(2, "私密"); 22 | 23 | /** 24 | * 状态 25 | */ 26 | private final Integer status; 27 | 28 | /** 29 | * 描述 30 | */ 31 | private final String desc; 32 | 33 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/UploadModeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/21 11:56 9 | * @description: 上传模式枚举 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum UploadModeEnum { 14 | /** 15 | * oss 16 | */ 17 | OSS("oss", "ossUploadStrategyImpl"), 18 | /** 19 | * 本地 20 | */ 21 | LOCAL("local", "localUploadStrategyImpl"), 22 | 23 | /** 24 | * cos 25 | */ 26 | COS("cos", "cosUploadStrategyImpl"); 27 | 28 | /** 29 | * 模式 30 | */ 31 | private final String mode; 32 | 33 | /** 34 | * 策略 35 | */ 36 | private final String strategy; 37 | 38 | /** 39 | * 获取策略 40 | * 41 | * @param mode 模式 42 | * @return {@link String} 搜索策略 43 | */ 44 | public static String getStrategy(String mode) { 45 | for (UploadModeEnum value : UploadModeEnum.values()) { 46 | if (value.getMode().equals(mode)) { 47 | return value.getStrategy(); 48 | } 49 | } 50 | return null; 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/UserAreaTypeEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/29 16:22 9 | * @description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum UserAreaTypeEnum { 14 | /** 15 | * 用户 16 | */ 17 | USER_VISITOR(1, "用户"), 18 | /** 19 | * 游客 20 | */ 21 | VISITOR(2, "游客"); 22 | 23 | /** 24 | * 类型 25 | */ 26 | private final Integer type; 27 | 28 | /** 29 | * 描述 30 | */ 31 | private final String desc; 32 | 33 | /** 34 | * 获取用户区域类型 35 | * 36 | * @param type 类型 37 | * @return {@link UserAreaTypeEnum} 用户区域类型枚举 38 | */ 39 | public static UserAreaTypeEnum getUserAreaType(Integer type) { 40 | for (UserAreaTypeEnum value : UserAreaTypeEnum.values()) { 41 | if (value.getType().equals(type)) { 42 | return value; 43 | } 44 | } 45 | return null; 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/enums/ZoneEnum.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/16 17:20 9 | * @description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum ZoneEnum { 14 | 15 | /** 16 | * 上海 17 | */ 18 | SHANGHAI("Asia/Shanghai", "中国上海"); 19 | 20 | /** 21 | * 时区 22 | */ 23 | private final String zone; 24 | 25 | /** 26 | * 描述 27 | */ 28 | private final String desc; 29 | 30 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/exception/AppException.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.exception; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import org.cuit.epoch.enums.StatusCodeEnum; 6 | 7 | import static org.cuit.epoch.enums.StatusCodeEnum.FAIL; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/9/27 23:13 12 | * @description: 13 | */ 14 | @Getter 15 | @AllArgsConstructor 16 | public class AppException extends RuntimeException { 17 | /** 18 | * 错误码 19 | */ 20 | private Integer code = FAIL.getCode(); 21 | 22 | /** 23 | * 错误信息 24 | */ 25 | private final String message; 26 | 27 | public AppException(String message) { 28 | this.message = message; 29 | } 30 | 31 | public AppException(StatusCodeEnum statusCodeEnum) { 32 | this.code = statusCodeEnum.getCode(); 33 | this.message = statusCodeEnum.getDesc(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/exception/NotFoundHandle.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.exception; 2 | 3 | import org.cuit.epoch.util.Result; 4 | import org.springframework.boot.web.servlet.error.ErrorController; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import java.io.IOException; 11 | 12 | /** 13 | * 处理 404 14 | * @author kong 15 | */ 16 | @RestController 17 | public class NotFoundHandle implements ErrorController { 18 | 19 | @RequestMapping("/error") 20 | public Object error(HttpServletRequest request, HttpServletResponse response) throws IOException { 21 | // response.setStatus(200); 22 | // 2022/11/25 不需要设置一下status,直接用原始的就行 23 | // return SaResult.get(404, "not found", null); 24 | return Result.fail(404,"not found"); 25 | } 26 | 27 | @Override 28 | public String getErrorPath() { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/handler/MyMetaObjectHandler.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.handler; 2 | 3 | import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 4 | import lombok.extern.log4j.Log4j2; 5 | import org.apache.ibatis.reflection.MetaObject; 6 | import org.springframework.stereotype.Component; 7 | 8 | import java.time.LocalDateTime; 9 | import java.time.ZoneId; 10 | 11 | import static org.cuit.epoch.enums.ZoneEnum.SHANGHAI; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/18 20:28 16 | * @description: 17 | */ 18 | @Log4j2 19 | @Component 20 | public class MyMetaObjectHandler implements MetaObjectHandler { 21 | 22 | @Override 23 | public void insertFill(MetaObject metaObject) { 24 | log.info("start insert fill ...."); 25 | this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now(ZoneId.of(SHANGHAI.getZone()))); 26 | } 27 | 28 | @Override 29 | public void updateFill(MetaObject metaObject) { 30 | log.info("start update fill ...."); 31 | this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now(ZoneId.of(SHANGHAI.getZone()))); 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/handler/PageableHandlerInterceptor.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.handler; 2 | 3 | import com.aliyun.oss.common.utils.StringUtils; 4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 5 | import org.cuit.epoch.util.PageUtils; 6 | import org.springframework.web.servlet.HandlerInterceptor; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import java.util.Optional; 11 | 12 | import static org.cuit.epoch.constant.CommonConst.*; 13 | 14 | /** 15 | * @author: ladidol 16 | * @date: 2022/11/28 12:46 17 | * @description: 分页拦截器,根据请求处理是否分页 18 | */ 19 | public class PageableHandlerInterceptor implements HandlerInterceptor { 20 | 21 | @Override 22 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { 23 | String currentPage = request.getParameter(CURRENT); 24 | String pageSize = Optional.ofNullable(request.getParameter(SIZE)).orElse(DEFAULT_SIZE); 25 | if (!StringUtils.isNullOrEmpty(currentPage)) { 26 | PageUtils.setCurrentPage(new Page<>(Long.parseLong(currentPage), Long.parseLong(pageSize))); 27 | } 28 | return true; 29 | } 30 | 31 | @Override 32 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { 33 | PageUtils.remove(); 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/ArticleSearchRepository.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import org.cuit.epoch.dto.article.ArticleSearchDTO; 4 | import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: Xiaoqiang-Ladidol 9 | * @date: 2022/12/22 1:49 10 | * @description: {} 11 | */ 12 | @Repository 13 | public interface ArticleSearchRepository extends ElasticsearchRepository { 14 | } 15 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/ArticleTagMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.ArticleTag; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ArticleTagMapper extends BaseMapper { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/CategoryMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.cuit.epoch.dto.category.CategoryBackDTO; 6 | import org.cuit.epoch.dto.category.CategoryDTO; 7 | import org.cuit.epoch.entity.Category; 8 | import org.cuit.epoch.vo.ConditionVO; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/16 19:24 16 | * @description: 17 | */ 18 | @Repository 19 | public interface CategoryMapper extends BaseMapper { 20 | 21 | /** 22 | * 查询分类和对应文章数量 23 | * 24 | * @return 分类列表 25 | */ 26 | List listCategoryDTO(); 27 | 28 | /** 29 | * 查询后台分类列表 30 | * 31 | * @param current 页码 32 | * @param size 大小 33 | * @param condition 条件 34 | * @return {@link List< CategoryBackDTO >} 分类列表 35 | */ 36 | List listCategoryBackDTO(@Param("current") Long current, @Param("size") Long size, @Param("condition") ConditionVO condition); 37 | 38 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/ChatRecordMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.ChatRecord; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: Xiaoqiang-Ladidol 9 | * @date: 2022/12/26 16:37 10 | * @description: {} 11 | */ 12 | @Repository 13 | public interface ChatRecordMapper extends BaseMapper { 14 | } 15 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/FriendLinkMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.FriendLink; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface FriendLinkMapper extends BaseMapper { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/MenuMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.Menu; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface MenuMapper extends BaseMapper { 11 | 12 | /** 13 | * 根据用户id查询菜单 14 | * @param userInfoId 用户信息id 15 | * @return 菜单列表 16 | */ 17 | List listMenusByUserInfoId(Integer userInfoId); 18 | 19 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/MessageMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.Message; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: Xiaoqiang-Ladidol 9 | * @date: 2022/12/14 20:29 10 | * @description: {} 11 | */ 12 | @Repository 13 | public interface MessageMapper extends BaseMapper { 14 | 15 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/OperationLogMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.OperationLog; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface OperationLogMapper extends BaseMapper { 9 | } 10 | 11 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/PageMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.Page; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/16 19:53 10 | * @description: 11 | */ 12 | @Repository 13 | public interface PageMapper extends BaseMapper { 14 | 15 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/PhotoAlbumMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.cuit.epoch.dto.photo.PhotoAlbumBackDTO; 6 | import org.cuit.epoch.entity.PhotoAlbum; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import java.util.List; 11 | 12 | @Repository 13 | public interface PhotoAlbumMapper extends BaseMapper { 14 | 15 | /** 16 | * 查询后台相册列表 17 | * 18 | * @param current 页码 19 | * @param size 大小 20 | * @param condition 条件 21 | * @return {@link List < PhotoAlbumBackDTO >} 相册列表 22 | */ 23 | List listPhotoAlbumBacks(@Param("current") Long current, @Param("size") Long size, @Param("condition") ConditionVO condition); 24 | 25 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/PhotoMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.Photo; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface PhotoMapper extends BaseMapper { 9 | 10 | 11 | 12 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/ResourceMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.Resource; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ResourceMapper extends BaseMapper { 9 | 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.cuit.epoch.dto.ResourceRoleDTO; 7 | import org.cuit.epoch.dto.RoleDTO; 8 | import org.cuit.epoch.entity.Role; 9 | import org.cuit.epoch.vo.ConditionVO; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/15 21:14 16 | * @description: 17 | */ 18 | @Mapper 19 | public interface RoleMapper extends BaseMapper { 20 | 21 | /** 22 | * 查询路由角色列表,获取非匿名访问的路由。 23 | * 24 | * @return 角色标签 25 | */ 26 | List listResourceRoles(); 27 | 28 | /** 29 | * 根据用户id获取角色列表 30 | * 31 | * @param userInfoId 用户id 32 | * @return 角色标签 33 | */ 34 | List listRolesByUserInfoId(Integer userInfoId); 35 | 36 | /** 37 | * 查询角色列表 38 | * 39 | * @param current 页码 40 | * @param size 条数 41 | * @param conditionVO 条件 42 | * @return 角色列表 43 | */ 44 | List listRoles(@Param("current") Long current, @Param("size") Long size, @Param("conditionVO") ConditionVO conditionVO); 45 | 46 | 47 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/RoleMenuMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.RoleMenu; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface RoleMenuMapper extends BaseMapper { 9 | 10 | } 11 | 12 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/RoleResourceMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.RoleResource; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface RoleResourceMapper extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/TagMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.cuit.epoch.dto.tag.TagBackDTO; 6 | import org.cuit.epoch.entity.Tag; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/16 19:24 15 | * @description: 16 | */ 17 | @Repository 18 | public interface TagMapper extends BaseMapper { 19 | 20 | /** 21 | * 查询后台标签列表 22 | * 23 | * @param current 页码 24 | * @param size 大小 25 | * @param condition 条件 26 | * @return {@link List } 标签列表 27 | */ 28 | List listTagBackDTO(@Param("current") Long current, @Param("size") Long size, @Param("condition") ConditionVO condition); 29 | 30 | /** 31 | * 根据文章id查询标签名 32 | * 33 | * @param articleId 文章id 34 | * @return {@link List} 标签名列表 35 | */ 36 | List listTagNameByArticleId(Integer articleId); 37 | 38 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/UniqueViewMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.cuit.epoch.dto.blog.UniqueViewDTO; 6 | import org.cuit.epoch.entity.UniqueView; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.Date; 10 | import java.util.List; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/26 0:05 15 | * @description: {} 16 | */ 17 | @Repository 18 | public interface UniqueViewMapper extends BaseMapper { 19 | 20 | /** 21 | * 获取7天用户量 22 | * 23 | * @param startTime 开始时间 24 | * @param endTime 结束时间 25 | * @return 用户量 26 | */ 27 | List listUniqueViews(@Param("startTime") Date startTime, @Param("endTime") Date endTime); 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/UserAuthMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.cuit.epoch.dto.UserBackDTO; 7 | import org.cuit.epoch.entity.UserAuth; 8 | import org.cuit.epoch.vo.ConditionVO; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import java.util.List; 12 | 13 | @Mapper 14 | public interface UserAuthMapper extends BaseMapper { 15 | 16 | /** 17 | * 查询后台用户列表 18 | * 19 | * @param current 页码 20 | * @param size 大小 21 | * @param condition 条件 22 | * @return {@link List } 用户列表 23 | */ 24 | List listUsers(@Param("current") Long current, @Param("size") Long size, @Param("condition") ConditionVO condition); 25 | 26 | /** 27 | * 查询后台用户数量 28 | * 29 | * @param condition 条件 30 | * @return 用户数量 31 | */ 32 | Integer countUser(@Param("condition") ConditionVO condition); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/UserInfoMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.cuit.epoch.entity.UserInfo; 7 | import org.springframework.stereotype.Repository; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/11/16 17:11 12 | * @description: 13 | */ 14 | @Mapper 15 | public interface UserInfoMapper extends BaseMapper { 16 | 17 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/UserRoleMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.UserRole; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/18 19:47 10 | * @description: 11 | */ 12 | @Repository 13 | public interface UserRoleMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/mapper/WebsiteConfigMapper.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.cuit.epoch.entity.WebsiteConfig; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/16 19:20 10 | * @description: 11 | */ 12 | @Repository 13 | public interface WebsiteConfigMapper extends BaseMapper { 14 | 15 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/ArticleTagService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.entity.ArticleTag; 5 | 6 | /** 7 | * @author: Xiaoqiang-Ladidol 8 | * @date: 2022/12/17 22:28 9 | * @description: {} 10 | */ 11 | public interface ArticleTagService extends IService { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/BlogInfoService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import org.cuit.epoch.dto.blog.BlogBackInfoDTO; 4 | import org.cuit.epoch.dto.blog.BlogHomeInfoDTO; 5 | import org.cuit.epoch.vo.BlogInfoVO; 6 | import org.cuit.epoch.vo.WebsiteConfigVO; 7 | 8 | /** 9 | * @author: ladidol 10 | * @date: 2022/11/16 19:08 11 | * @description: 12 | */ 13 | public interface BlogInfoService { 14 | 15 | /** 16 | * 获取首页数据 17 | * 18 | * @return 博客首页信息 19 | */ 20 | BlogHomeInfoDTO getBlogHomeInfo(); 21 | 22 | /** 23 | * 获取后台首页数据 24 | * 25 | * @return 博客后台信息 26 | */ 27 | BlogBackInfoDTO getBlogBackInfo(); 28 | 29 | /** 30 | * 保存或更新网站配置 31 | * 32 | * @param websiteConfigVO 网站配置 33 | */ 34 | void updateWebsiteConfig(WebsiteConfigVO websiteConfigVO); 35 | 36 | /** 37 | * 获取网站配置 38 | * 39 | * @return {@link WebsiteConfigVO} 网站配置 40 | */ 41 | WebsiteConfigVO getWebsiteConfig(); 42 | 43 | /** 44 | * 获取关于我内容 45 | * 46 | * @return 关于我内容 47 | */ 48 | String getAbout(); 49 | 50 | /** 51 | * 修改关于我内容 52 | * 53 | * @param blogInfoVO 博客信息 54 | */ 55 | void updateAbout(BlogInfoVO blogInfoVO); 56 | 57 | /** 58 | * 上传访客信息 59 | */ 60 | void report(); 61 | 62 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/CategoryService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.category.CategoryBackDTO; 5 | import org.cuit.epoch.dto.category.CategoryDTO; 6 | import org.cuit.epoch.dto.category.CategoryOptionDTO; 7 | import org.cuit.epoch.entity.Category; 8 | import org.cuit.epoch.vo.CategoryVO; 9 | import org.cuit.epoch.vo.ConditionVO; 10 | import org.cuit.epoch.vo.page.PageResult; 11 | 12 | import java.util.List; 13 | 14 | public interface CategoryService extends IService { 15 | 16 | /** 17 | * 查询分类列表 18 | * 19 | * @return 分类列表 20 | */ 21 | PageResult listCategories(); 22 | 23 | /** 24 | * 查询后台分类 25 | * 26 | * @param conditionVO 条件 27 | * @return {@link PageResult} 后台分类 28 | */ 29 | PageResult listBackCategories(ConditionVO conditionVO); 30 | 31 | /** 32 | * 搜索文章分类 33 | * 34 | * @param condition 条件 35 | * @return {@link List } 分类列表 36 | */ 37 | List listCategoriesBySearch(ConditionVO condition); 38 | 39 | /** 40 | * 删除分类 41 | * 42 | * @param categoryIdList 分类id集合 43 | */ 44 | void deleteCategory(List categoryIdList); 45 | 46 | /** 47 | * 添加或修改分类 48 | * 49 | * @param categoryVO 分类 50 | */ 51 | void saveOrUpdateCategory(CategoryVO categoryVO); 52 | 53 | } 54 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/FriendLinkService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.friend.FriendLinkBackDTO; 5 | import org.cuit.epoch.dto.friend.FriendLinkDTO; 6 | import org.cuit.epoch.entity.FriendLink; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.cuit.epoch.vo.FriendLinkVO; 9 | import org.cuit.epoch.vo.page.PageResult; 10 | 11 | import java.util.List; 12 | 13 | public interface FriendLinkService extends IService { 14 | 15 | /** 16 | * 查看友链列表 17 | * 18 | * @return 友链列表 19 | */ 20 | List listFriendLinks(); 21 | 22 | /** 23 | * 查看后台友链列表 24 | * 25 | * @param condition 条件 26 | * @return 友链列表 27 | */ 28 | PageResult listFriendLinkDTO(ConditionVO condition); 29 | 30 | /** 31 | * 保存或更新友链 32 | * 33 | * @param friendLinkVO 友链 34 | */ 35 | void saveOrUpdateFriendLink(FriendLinkVO friendLinkVO); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/MenuService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.LabelOptionDTO; 5 | import org.cuit.epoch.dto.menu.MenuDTO; 6 | import org.cuit.epoch.dto.menu.UserMenuDTO; 7 | import org.cuit.epoch.entity.Menu; 8 | import org.cuit.epoch.vo.ConditionVO; 9 | import org.cuit.epoch.vo.MenuVO; 10 | 11 | import java.util.List; 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/25 12:38 15 | * @description: 后台菜单服务 16 | */ 17 | public interface MenuService extends IService { 18 | 19 | /** 20 | * 查看菜单列表 21 | * 22 | * @param conditionVO 条件 23 | * @return 菜单列表 24 | */ 25 | List listMenus(ConditionVO conditionVO); 26 | 27 | /** 28 | * 新增或修改菜单 29 | * 30 | * @param menuVO 菜单信息 31 | */ 32 | void saveOrUpdateMenu(MenuVO menuVO); 33 | 34 | /** 35 | * 删除菜单 36 | * 37 | * @param menuId 菜单id 38 | */ 39 | void deleteMenu(Integer menuId); 40 | 41 | /** 42 | * 查看角色菜单选项 43 | * 44 | * @return 角色菜单选项 45 | */ 46 | List listMenuOptions(); 47 | 48 | /** 49 | * 查看用户菜单 50 | * 51 | * @return 菜单列表 52 | */ 53 | List listUserMenus(); 54 | 55 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/MessageService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.message.MessageBackDTO; 5 | import org.cuit.epoch.dto.message.MessageDTO; 6 | import org.cuit.epoch.entity.Message; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.cuit.epoch.vo.MessageVO; 9 | import org.cuit.epoch.vo.ReviewVO; 10 | import org.cuit.epoch.vo.page.PageResult; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * @author: Xiaoqiang-Ladidol 16 | * @date: 2022/12/14 20:19 17 | * @description: {} 18 | */ 19 | public interface MessageService extends IService { 20 | 21 | /** 22 | * 添加留言弹幕 23 | * 24 | * @param messageVO 留言对象 25 | */ 26 | void saveMessage(MessageVO messageVO); 27 | 28 | /** 29 | * 查看留言弹幕 30 | * 31 | * @return 留言列表 32 | */ 33 | List listMessages(); 34 | 35 | /** 36 | * 审核留言 37 | * 38 | * @param reviewVO 审查签证官 39 | */ 40 | void updateMessagesReview(ReviewVO reviewVO); 41 | 42 | /** 43 | * 查看后台留言 44 | * 45 | * @param condition 条件 46 | * @return 留言列表 47 | */ 48 | PageResult listMessageBackDTO(ConditionVO condition); 49 | 50 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/OperationLogService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.log.OperationLogDTO; 5 | import org.cuit.epoch.entity.OperationLog; 6 | import org.cuit.epoch.vo.ConditionVO; 7 | import org.cuit.epoch.vo.page.PageResult; 8 | 9 | public interface OperationLogService extends IService { 10 | 11 | /** 12 | * 查询日志列表 13 | * 14 | * @param conditionVO 条件 15 | * @return 日志列表 16 | */ 17 | PageResult listOperationLogs(ConditionVO conditionVO); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/PageService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.entity.Page; 5 | import org.cuit.epoch.vo.PageVO; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/11/16 19:49 12 | * @description: 13 | */ 14 | public interface PageService extends IService { 15 | 16 | /** 17 | * 保存或更新页面 18 | * 19 | * @param pageVO 页面信息 20 | */ 21 | void saveOrUpdatePage(PageVO pageVO); 22 | 23 | /** 24 | * 删除页面 25 | * 26 | * @param pageId 页面id 27 | */ 28 | void deletePage(Integer pageId); 29 | 30 | /** 31 | * 获取页面列表 32 | * 33 | * @return {@link List } 页面列表 34 | */ 35 | List listPages(); 36 | 37 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/ResourceService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.LabelOptionDTO; 5 | import org.cuit.epoch.dto.resource.ResourceDTO; 6 | import org.cuit.epoch.entity.Resource; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.cuit.epoch.vo.ResourceVO; 9 | 10 | import java.util.List; 11 | 12 | public interface ResourceService extends IService { 13 | 14 | /** 15 | * 添加或修改资源 16 | * 17 | * @param resourceVO 资源对象 18 | */ 19 | void saveOrUpdateResource(ResourceVO resourceVO); 20 | 21 | /*** 22 | * 删除资源 23 | * 24 | @param resourceId 资源id 25 | */ 26 | void deleteResource(Integer resourceId); 27 | 28 | /** 29 | * 查看资源列表 30 | * 31 | * @param conditionVO 条件 32 | * @return 资源列表 33 | */ 34 | List listResources(ConditionVO conditionVO); 35 | 36 | /** 37 | * 查看资源选项 38 | * 39 | * @return 资源选项 40 | */ 41 | List listResourceOption(); 42 | 43 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/RoleMenuService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.entity.RoleMenu; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/28 14:34 9 | * @description: 角色菜单服务 10 | */ 11 | public interface RoleMenuService extends IService { 12 | 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/RoleResourceService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.entity.RoleResource; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/28 14:34 9 | * @description: 角色资源服务 10 | */ 11 | public interface RoleResourceService extends IService { 12 | 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.RoleDTO; 5 | import org.cuit.epoch.dto.UserRoleDTO; 6 | import org.cuit.epoch.entity.Role; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.cuit.epoch.vo.RoleVO; 9 | import org.cuit.epoch.vo.page.PageResult; 10 | 11 | import java.util.List; 12 | 13 | public interface RoleService extends IService { 14 | 15 | /** 16 | * 获取用户角色选项 17 | * 18 | * @return 角色 19 | */ 20 | List listUserRoles(); 21 | 22 | /** 23 | * 查询角色列表 24 | * 25 | * @param conditionVO 条件 26 | * @return 角色列表 27 | */ 28 | PageResult listRoles(ConditionVO conditionVO); 29 | 30 | /** 31 | * 保存或更新角色 32 | * 33 | * @param roleVO 角色 34 | */ 35 | void saveOrUpdateRole(RoleVO roleVO); 36 | 37 | /** 38 | * 删除角色 39 | * @param roleIdList 角色id列表 40 | */ 41 | void deleteRoles(List roleIdList); 42 | 43 | } 44 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/TagService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.tag.TagBackDTO; 5 | import org.cuit.epoch.dto.tag.TagDTO; 6 | import org.cuit.epoch.entity.Tag; 7 | import org.cuit.epoch.vo.ConditionVO; 8 | import org.cuit.epoch.vo.TagVO; 9 | import org.cuit.epoch.vo.page.PageResult; 10 | 11 | import java.util.List; 12 | 13 | public interface TagService extends IService { 14 | 15 | /** 16 | * 查询标签列表 17 | * 18 | * @return 标签列表 19 | */ 20 | PageResult listTags(); 21 | 22 | /** 23 | * 查询后台标签 24 | * 25 | * @param condition 条件 26 | * @return {@link PageResult} 标签列表 27 | */ 28 | PageResult listTagBackDTO(ConditionVO condition); 29 | 30 | /** 31 | * 搜索文章标签 32 | * 33 | * @param condition 条件 34 | * @return {@link List } 标签列表 35 | */ 36 | List listTagsBySearch(ConditionVO condition); 37 | 38 | /** 39 | * 删除标签 40 | * 41 | * @param tagIdList 标签id集合 42 | */ 43 | void deleteTag(List tagIdList); 44 | 45 | /** 46 | * 保存或更新标签 47 | * 48 | * @param tagVO 标签 49 | */ 50 | void saveOrUpdateTag(TagVO tagVO); 51 | 52 | } 53 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/UniqueViewService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.dto.blog.UniqueViewDTO; 5 | import org.cuit.epoch.entity.UniqueView; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author: Xiaoqiang-Ladidol 11 | * @date: 2022/12/26 0:01 12 | * @description: {} 13 | */ 14 | public interface UniqueViewService extends IService { 15 | 16 | /** 17 | * 获取7天用户量统计 18 | * 19 | * @return 用户量 20 | */ 21 | List listUniqueViews(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/UserRoleService.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.cuit.epoch.entity.UserRole; 5 | 6 | public interface UserRoleService extends IService { 7 | 8 | } 9 | 10 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/impl/ArticleTagServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.cuit.epoch.entity.ArticleTag; 5 | import org.cuit.epoch.mapper.ArticleTagMapper; 6 | import org.cuit.epoch.service.ArticleTagService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author: Xiaoqiang-Ladidol 11 | * @date: 2022/12/17 22:28 12 | * @description: {} 13 | */ 14 | @Service 15 | public class ArticleTagServiceImpl extends ServiceImpl implements ArticleTagService { 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/impl/RoleMenuServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.cuit.epoch.entity.RoleMenu; 5 | import org.cuit.epoch.mapper.RoleMenuMapper; 6 | import org.cuit.epoch.service.RoleMenuService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/11/28 14:36 12 | * @description: 13 | */ 14 | @Service 15 | public class RoleMenuServiceImpl extends ServiceImpl implements RoleMenuService { 16 | 17 | 18 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/impl/RoleResourceServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.cuit.epoch.entity.RoleResource; 5 | import org.cuit.epoch.mapper.RoleResourceMapper; 6 | import org.cuit.epoch.service.RoleResourceService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/11/28 14:36 12 | * @description: 13 | */ 14 | @Service 15 | public class RoleResourceServiceImpl extends ServiceImpl implements RoleResourceService { 16 | 17 | 18 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/service/impl/UserRoleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.cuit.epoch.entity.UserRole; 5 | import org.cuit.epoch.mapper.UserRoleMapper; 6 | import org.cuit.epoch.service.UserRoleService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author: ladidol 11 | * @date: 2022/12/1 20:24 12 | * @description: 13 | */ 14 | @Service 15 | public class UserRoleServiceImpl extends ServiceImpl implements UserRoleService { 16 | 17 | 18 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/ArticleImportStrategy.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | /** 6 | * @author: Xiaoqiang-Ladidol 7 | * @date: 2022/12/21 18:37 8 | * @description: {文章导入策略} 9 | */ 10 | public interface ArticleImportStrategy { 11 | 12 | /** 13 | * 导入文章 14 | * 15 | * @param file 文件 16 | */ 17 | void importArticles(MultipartFile file); 18 | } 19 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/SearchStrategy.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy; 2 | 3 | import org.cuit.epoch.dto.article.ArticleSearchDTO; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author: Xiaoqiang-Ladidol 9 | * @date: 2022/12/21 22:07 10 | * @description: {搜索策略} 11 | */ 12 | public interface SearchStrategy { 13 | 14 | /** 15 | * 搜索文章 16 | * 17 | * @param keywords 关键字 18 | * @return {@link List } 文章列表 19 | */ 20 | List searchArticle(String keywords); 21 | 22 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/SocialLoginStrategy.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy; 2 | 3 | import org.cuit.epoch.dto.UserInfoDTO; 4 | 5 | /** 6 | * 作者:Ladidol 7 | * 描述:第三方登录策略 8 | */ 9 | public interface SocialLoginStrategy { 10 | 11 | /** 12 | * 登录 13 | * 14 | * @param data 数据 15 | * @return {@link UserInfoDTO} 用户信息 16 | */ 17 | UserInfoDTO login(String data); 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/UploadStrategy.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | import java.io.InputStream; 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/21 10:52 9 | * @description: 上传策略 10 | */ 11 | public interface UploadStrategy { 12 | 13 | /** 14 | * 上传文件 15 | * 16 | * @param file 文件 17 | * @param path 上传路径 18 | * @return {@link String} 文件地址 19 | */ 20 | String uploadFile(MultipartFile file, String path); 21 | 22 | /** 23 | * 上传文件 24 | * 25 | * @param fileName 文件名 26 | * @param inputStream 输入流 27 | * @param path 路径 28 | * @return {@link String} 29 | */ 30 | String uploadFile(String fileName, InputStream inputStream, String path); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/context/ArticleImportStrategyContext.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy.context; 2 | 3 | import org.cuit.epoch.enums.MarkdownTypeEnum; 4 | import org.cuit.epoch.strategy.ArticleImportStrategy; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | import java.util.Map; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/21 18:35 14 | * @description: {文章导入策略上下文} 15 | */ 16 | @Service 17 | public class ArticleImportStrategyContext { 18 | @Autowired 19 | private Map articleImportStrategyMap; 20 | 21 | public void importArticles(MultipartFile file, String type) { 22 | articleImportStrategyMap.get(MarkdownTypeEnum.getMarkdownType(type)).importArticles(file); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/context/SearchStrategyContext.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy.context; 2 | 3 | import org.cuit.epoch.dto.article.ArticleSearchDTO; 4 | import org.cuit.epoch.strategy.SearchStrategy; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.beans.factory.annotation.Value; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | import static org.cuit.epoch.enums.SearchModeEnum.getStrategy; 13 | 14 | /** 15 | * @author: Xiaoqiang-Ladidol 16 | * @date: 2022/12/21 22:00 17 | * @description: {搜索策略上下文} 18 | */ 19 | @Service 20 | public class SearchStrategyContext { 21 | /** 22 | * 搜索模式 23 | */ 24 | @Value("${search.mode}") 25 | private String searchMode; 26 | 27 | @Autowired 28 | private Map searchStrategyMap; 29 | 30 | /** 31 | * 执行搜索策略 32 | * 33 | * @param keywords 关键字 34 | * @return {@link List < ArticleSearchDTO >} 搜索文章 35 | */ 36 | public List executeSearchStrategy(String keywords) { 37 | return searchStrategyMap.get(getStrategy(searchMode)).searchArticle(keywords); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/context/SocialLoginStrategyContext.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy.context; 2 | 3 | import org.cuit.epoch.dto.UserInfoDTO; 4 | import org.cuit.epoch.enums.LoginTypeEnum; 5 | import org.cuit.epoch.strategy.SocialLoginStrategy; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.Map; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/22 15:57 14 | * @description: 15 | */ 16 | @Service 17 | public class SocialLoginStrategyContext { 18 | 19 | @Autowired 20 | private Map socialLoginStrategyMap; 21 | 22 | /** 23 | * 执行第三方登录策略 24 | * 25 | * @param data 数据 26 | * @param loginTypeEnum 登录枚举类型 27 | * @return {@link UserInfoDTO} 用户信息 28 | */ 29 | public UserInfoDTO executeLoginStrategy(String data, LoginTypeEnum loginTypeEnum) { 30 | return socialLoginStrategyMap.get(loginTypeEnum.getStrategy()).login(data); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/strategy/impl/OssUploadStrategyImpl.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.strategy.impl; 2 | 3 | import com.aliyun.oss.OSS; 4 | import com.aliyun.oss.OSSClientBuilder; 5 | import org.cuit.epoch.config.OssConfigProperties; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.io.InputStream; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/21 19:35 14 | * @description: 15 | */ 16 | @Service("ossUploadStrategyImpl") 17 | public class OssUploadStrategyImpl extends AbstractUploadStrategyImpl { 18 | @Autowired 19 | private OssConfigProperties ossConfigProperties; 20 | 21 | @Override 22 | public Boolean exists(String filePath) { 23 | return getOssClient().doesObjectExist(ossConfigProperties.getBucketName(), filePath); 24 | } 25 | 26 | @Override 27 | public void upload(String path, String fileName, InputStream inputStream) { 28 | getOssClient().putObject(ossConfigProperties.getBucketName(), path + fileName, inputStream); 29 | } 30 | 31 | @Override 32 | public String getFileAccessUrl(String filePath) { 33 | return ossConfigProperties.getUrl() + filePath; 34 | } 35 | 36 | /** 37 | * 获取ossClient 38 | * 39 | * @return {@link OSS} ossClient 40 | */ 41 | private OSS getOssClient() { 42 | return new OSSClientBuilder().build(ossConfigProperties.getEndpoint(), ossConfigProperties.getAccessKeyId(), ossConfigProperties.getAccessKeySecret()); 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/test/TestController.java: -------------------------------------------------------------------------------- 1 | //package org.cuit.epoch.test; 2 | // 3 | //import cn.dev33.satoken.util.SaResult; 4 | //import org.springframework.web.bind.annotation.RequestMapping; 5 | //import org.springframework.web.bind.annotation.RestController; 6 | // 7 | ///** 8 | // * 测试专用Controller 9 | // * @author kong 10 | // * 11 | // */ 12 | //@RestController 13 | //@RequestMapping("/admin1/") 14 | //public class TestController { 15 | // 16 | // // 测试 浏览器访问: http://localhost:8081/test/test 17 | // @RequestMapping("test") 18 | // public SaResult test(String data) { 19 | // System.out.println(data+ " ------------进来了"); 20 | // return SaResult.ok(); 21 | // } 22 | // 23 | // // 测试 浏览器访问: http://localhost:8081/test/test2 24 | // @RequestMapping("test2") 25 | // public SaResult test2() { 26 | // return SaResult.ok(); 27 | // } 28 | // 29 | //} 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/util/BeanCopyUtils.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.util; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * @author: ladidol 8 | * @date: 2022/11/16 19:55 9 | * @description: 10 | */ 11 | public class BeanCopyUtils { 12 | 13 | /** 14 | * 复制对象 15 | * 16 | * @param source 源 17 | * @param target 目标 18 | * @return {@link T} 19 | */ 20 | public static T copyObject(Object source, Class target) { 21 | T temp = null; 22 | try { 23 | temp = target.newInstance(); 24 | if (null != source) { 25 | org.springframework.beans.BeanUtils.copyProperties(source, temp); 26 | } 27 | } catch (Exception e) { 28 | e.printStackTrace(); 29 | } 30 | return temp; 31 | } 32 | 33 | /** 34 | * 拷贝集合 35 | * 36 | * @param source 源 37 | * @param target 目标 38 | * @return {@link List } 集合 39 | */ 40 | public static List copyList(List source, Class target) { 41 | List list = new ArrayList<>(); 42 | if (null != source && source.size() > 0) { 43 | for (Object obj : source) { 44 | list.add(BeanCopyUtils.copyObject(obj, target)); 45 | } 46 | } 47 | return list; 48 | } 49 | 50 | 51 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/util/PageUtils.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.util; 2 | 3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 4 | 5 | import java.util.Objects; 6 | 7 | /** 8 | * @author: ladidol 9 | * @date: 2022/11/28 12:49 10 | * @description: 分页工具类 11 | */ 12 | public class PageUtils { 13 | 14 | //ThreadLocal,线程的局部变量,只有当前线程能访问,这里就表示只有当前请求才能访问的 15 | private static final ThreadLocal> PAGE_HOLDER = new ThreadLocal<>(); 16 | 17 | public static void setCurrentPage(Page page) { 18 | PAGE_HOLDER.set(page); 19 | } 20 | 21 | public static Page getPage() { 22 | Page page = PAGE_HOLDER.get(); 23 | if (Objects.isNull(page)) { 24 | setCurrentPage(new Page<>()); 25 | } 26 | return PAGE_HOLDER.get(); 27 | } 28 | 29 | public static Long getCurrent() { 30 | return getPage().getCurrent(); 31 | } 32 | 33 | public static Long getSize() { 34 | return getPage().getSize(); 35 | } 36 | 37 | public static Long getLimitCurrent() { 38 | return (getCurrent() - 1) * getSize(); 39 | } 40 | 41 | public static void remove() { 42 | PAGE_HOLDER.remove(); 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/util/Ttime.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.util; 2 | 3 | 4 | /** 5 | * 用于测试用时 6 | * @author kong 7 | * 8 | */ 9 | public class Ttime { 10 | 11 | private long start=0; //开始时间 12 | private long end=0; //结束时间 13 | 14 | public static Ttime t = new Ttime(); //static快捷使用 15 | 16 | /** 17 | * 开始计时 18 | * @return 19 | */ 20 | public Ttime start() { 21 | start=System.currentTimeMillis(); 22 | return this; 23 | } 24 | 25 | 26 | /** 27 | * 结束计时 28 | */ 29 | public Ttime end() { 30 | end=System.currentTimeMillis(); 31 | return this; 32 | } 33 | 34 | 35 | /** 36 | * 返回所用毫秒数 37 | */ 38 | public long returnMs() { 39 | return end-start; 40 | } 41 | 42 | /** 43 | * 格式化输出结果 44 | */ 45 | public void outTime() { 46 | System.out.println(this.toString()); 47 | } 48 | 49 | /** 50 | * 结束并格式化输出结果 51 | */ 52 | public void endOutTime() { 53 | this.end().outTime(); 54 | } 55 | 56 | @Override 57 | public String toString() { 58 | return (returnMs() + 0.0) / 1000 + "s"; // 格式化为:0.01s 59 | } 60 | 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/ArticleTopVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import javax.validation.constraints.NotNull; 10 | 11 | /** 12 | * @author: Xiaoqiang-Ladidol 13 | * @date: 2022/12/17 22:16 14 | * @description: {} 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @ApiModel(description = "文章置顶") 21 | public class ArticleTopVO { 22 | 23 | /** 24 | * id 25 | */ 26 | @NotNull(message = "id不能为空") 27 | private Integer id; 28 | 29 | /** 30 | * 置顶状态 31 | */ 32 | @NotNull(message = "置顶状态不能为空") 33 | private Integer isTop; 34 | 35 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/BlogInfoVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | /** 11 | * @author: Xiaoqiang-Ladidol 12 | * @date: 2022/12/25 23:51 13 | * @description: {} 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Builder 19 | @ApiModel(description = "博客信息") 20 | public class BlogInfoVO { 21 | 22 | /** 23 | * 关于我内容 24 | */ 25 | @ApiModelProperty(name = "aboutContent", value = "关于我内容", required = true, dataType = "String") 26 | private String aboutContent; 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/CategoryVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/12/2 20:21 15 | * @description: 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @ApiModel(description = "分类") 22 | public class CategoryVO { 23 | 24 | /** 25 | * id 26 | */ 27 | @ApiModelProperty(name = "id", value = "分类id", dataType = "Integer") 28 | private Integer id; 29 | 30 | /** 31 | * 分类名 32 | */ 33 | @NotBlank(message = "分类名不能为空") 34 | @ApiModelProperty(name = "categoryName", value = "分类名", required = true, dataType = "String") 35 | private String categoryName; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/CommentQueryVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotNull; 11 | 12 | /** 13 | * @author: Xiaoqiang-Ladidol 14 | * @date: 2022/12/14 21:39 15 | * @description: {} 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @ApiModel(description = "评论") 22 | public class CommentQueryVO { 23 | 24 | 25 | /** 26 | * 评论主题id 27 | */ 28 | @ApiModelProperty(name = "topicId", value = "主题id", dataType = "Integer") 29 | private Integer topicId; 30 | 31 | 32 | /** 33 | * 父评论id 34 | */ 35 | @ApiModelProperty(name = "parentId", value = "评论父id", dataType = "Integer") 36 | private Integer parentId; 37 | 38 | /** 39 | * 类型 40 | */ 41 | @NotNull(message = "评论类型不能为空") 42 | @ApiModelProperty(name = "type", value = "评论类型", dataType = "Integer") 43 | private Integer type; 44 | 45 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/DeleteVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotNull; 11 | import java.util.List; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/12/8 15:21 16 | * @description: 17 | */ 18 | @Data 19 | @Builder 20 | @AllArgsConstructor 21 | @NoArgsConstructor 22 | @ApiModel(description = "逻辑删除") 23 | public class DeleteVO { 24 | 25 | /** 26 | * id列表 27 | */ 28 | @NotNull(message = "id不能为空") 29 | @ApiModelProperty(name = "idList", value = "id列表", required = true, dataType = "List") 30 | private List idList; 31 | 32 | /** 33 | * 状态值 34 | */ 35 | @NotNull(message = "状态值不能为空") 36 | @ApiModelProperty(name = "isDelete", value = "删除状态", required = true, dataType = "Integer") 37 | private Integer isDelete; 38 | 39 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/EmailVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.Email; 11 | import javax.validation.constraints.NotBlank; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/21 14:02 16 | * @description: 17 | */ 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Builder 22 | @ApiModel(description = "绑定邮箱") 23 | public class EmailVO { 24 | 25 | /** 26 | * 邮箱 27 | */ 28 | @NotBlank(message = "邮箱不能为空") 29 | @Email(message = "邮箱格式不正确") 30 | @ApiModelProperty(name = "email", value = "用户名", required = true, dataType = "String") 31 | private String email; 32 | 33 | /** 34 | * 验证码 35 | */ 36 | @NotBlank(message = "验证码不能为空") 37 | @ApiModelProperty(name = "code", value = "邮箱验证码", required = true, dataType = "String") 38 | private String code; 39 | 40 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/HexoArticleVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | /** 10 | * @author: Xiaoqiang-Ladidol 11 | * @date: 2022/12/21 18:39 12 | * @description: {hexo文章} 13 | */ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class HexoArticleVO extends ArticleVO { 18 | private LocalDateTime createTime; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/MessageVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | import javax.validation.constraints.NotNull; 12 | 13 | /** 14 | * @author: Xiaoqiang-Ladidol 15 | * @date: 2022/12/14 20:24 16 | * @description: {} 17 | */ 18 | @Data 19 | @Builder 20 | @AllArgsConstructor 21 | @NoArgsConstructor 22 | @ApiModel(description = "留言") 23 | public class MessageVO { 24 | 25 | /** 26 | * 昵称 27 | */ 28 | @NotBlank(message = "昵称不能为空") 29 | @ApiModelProperty(name = "nickname", value = "昵称", required = true, dataType = "String") 30 | private String nickname; 31 | 32 | /** 33 | * 头像 34 | */ 35 | @NotBlank(message = "头像不能为空") 36 | @ApiModelProperty(name = "avatar", value = "头像", required = true, dataType = "String") 37 | private String avatar; 38 | 39 | /** 40 | * 留言内容 41 | */ 42 | @NotBlank(message = "留言内容不能为空") 43 | @ApiModelProperty(name = "messageContent", value = "留言内容", required = true, dataType = "String") 44 | private String messageContent; 45 | 46 | /** 47 | * 弹幕速度 48 | */ 49 | @NotNull(message = "弹幕速度不能为空") 50 | @ApiModelProperty(name = "time", value = "弹幕速度", required = true, dataType = "Integer") 51 | private Integer time; 52 | } 53 | 54 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/PageVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/16 18:58 15 | * @description: 页面信息 16 | */ 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @Builder 21 | @ApiModel(description = "页面") 22 | public class PageVO { 23 | 24 | /** 25 | * 页面id 26 | */ 27 | @ApiModelProperty(name = "id", value = "页面id", required = true, dataType = "Integer") 28 | private Integer id; 29 | 30 | /** 31 | * 页面名 32 | */ 33 | @NotBlank(message = "页面名称不能为空") 34 | @ApiModelProperty(name = "pageName", value = "页面名称", required = true, dataType = "String") 35 | private String pageName; 36 | 37 | /** 38 | * 页面标签 39 | */ 40 | @NotBlank(message = "页面标签不能为空") 41 | @ApiModelProperty(name = "pageLabel", value = "页面标签", required = true, dataType = "String") 42 | private String pageLabel; 43 | 44 | /** 45 | * 页面封面 46 | */ 47 | @NotBlank(message = "页面封面不能为空") 48 | @ApiModelProperty(name = "pageCover", value = "页面封面", required = true, dataType = "String") 49 | private String pageCover; 50 | 51 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/PasswordVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | import javax.validation.constraints.Size; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/11/29 18:07 16 | * @description: 17 | */ 18 | @Data 19 | @Builder 20 | @AllArgsConstructor 21 | @NoArgsConstructor 22 | @ApiModel(description = "密码") 23 | public class PasswordVO { 24 | 25 | /** 26 | * 旧密码 27 | */ 28 | @NotBlank(message = "旧密码不能为空") 29 | @ApiModelProperty(name = "oldPassword", value = "旧密码", required = true, dataType = "String") 30 | private String oldPassword; 31 | 32 | /** 33 | * 新密码 34 | */ 35 | @Size(min = 6, message = "新密码不能少于6位") 36 | @NotBlank(message = "新密码不能为空") 37 | @ApiModelProperty(name = "newPassword", value = "新密码", required = true, dataType = "String") 38 | private String newPassword; 39 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/PhotoInfoVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | import javax.validation.constraints.NotNull; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/12/8 15:19 16 | * @description: 17 | */ 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Builder 22 | @ApiModel(description = "照片信息") 23 | public class PhotoInfoVO { 24 | 25 | /** 26 | * 照片id 27 | */ 28 | @NotNull(message = "照片id不能为空") 29 | @ApiModelProperty(name = "id", value = "照片id", required = true, dataType = "Integer") 30 | private Integer id; 31 | 32 | /** 33 | * 照片名 34 | */ 35 | @NotBlank(message = "照片名不能为空") 36 | @ApiModelProperty(name = "photoName", value = "照片名", required = true, dataType = "String") 37 | private String photoName; 38 | 39 | /** 40 | * 照片描述 41 | */ 42 | @ApiModelProperty(name = "photoDesc", value = "照片描述", dataType = "String") 43 | private String photoDesc; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/PhotoVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotNull; 11 | import java.util.List; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/12/8 15:21 16 | * @description: 17 | */ 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Builder 22 | @ApiModel(description = "照片") 23 | public class PhotoVO { 24 | 25 | /** 26 | * 相册id 27 | */ 28 | @NotNull(message = "相册id不能为空") 29 | @ApiModelProperty(name = "id", value = "相册id", required = true, dataType = "Integer") 30 | private Integer albumId; 31 | 32 | /** 33 | * 照片url列表 34 | */ 35 | @ApiModelProperty(name = "photoUrlList", value = "照片列表", required = true, dataType = "List") 36 | private List photoUrlList; 37 | 38 | /** 39 | * 照片id列表 40 | */ 41 | @ApiModelProperty(name = "photoIdList", value = "照片id列表", required = true, dataType = "List") 42 | private List photoIdList; 43 | 44 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/ReviewVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotNull; 11 | import java.util.List; 12 | 13 | /** 14 | * @author: Xiaoqiang-Ladidol 15 | * @date: 2022/12/14 20:26 16 | * @description: {} 17 | */ 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Builder 22 | @ApiModel(description = "审核") 23 | public class ReviewVO { 24 | 25 | /** 26 | * id列表 27 | */ 28 | @NotNull(message = "id不能为空") 29 | @ApiModelProperty(name = "idList", value = "id列表", required = true, dataType = "List") 30 | private List idList; 31 | 32 | /** 33 | * 状态值 34 | */ 35 | @NotNull(message = "状态值不能为空") 36 | @ApiModelProperty(name = "isDelete", value = "删除状态", required = true, dataType = "Integer") 37 | private Integer isReview; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/TagVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/12/2 21:28 15 | * @description: 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @ApiModel(description = "标签对象") 22 | public class TagVO { 23 | 24 | /** 25 | * id 26 | */ 27 | @ApiModelProperty(name = "id", value = "标签id", dataType = "Integer") 28 | private Integer id; 29 | 30 | /** 31 | * 标签名 32 | */ 33 | @NotBlank(message = "标签名不能为空") 34 | @ApiModelProperty(name = "categoryName", value = "标签名", required = true, dataType = "String") 35 | private String tagName; 36 | 37 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/UserDisableVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import javax.validation.constraints.NotNull; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/12/1 20:26 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | @ApiModel(description = "用户禁用状态") 21 | public class UserDisableVO { 22 | 23 | /** 24 | * id 25 | */ 26 | @NotNull(message = "用户id不能为空") 27 | private Integer id; 28 | 29 | /** 30 | * 置顶状态 31 | */ 32 | @NotNull(message = "置顶状态不能为空") 33 | private Integer isDisable; 34 | 35 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/UserInfoVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/20 21:32 15 | * @description: 16 | */ 17 | @Data 18 | @Builder 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @ApiModel(description = "用户信息对象") 22 | public class UserInfoVO { 23 | 24 | /** 25 | * 用户昵称 26 | */ 27 | @NotBlank(message = "昵称不能为空") 28 | @ApiModelProperty(name = "nickname", value = "昵称", dataType = "String") 29 | private String nickname; 30 | 31 | /** 32 | * 用户简介 33 | */ 34 | @ApiModelProperty(name = "intro", value = "介绍", dataType = "String") 35 | private String intro; 36 | 37 | /** 38 | * 个人网站 39 | */ 40 | @ApiModelProperty(name = "webSite", value = "个人网站", dataType = "String") 41 | private String webSite; 42 | } 43 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/UserRoleVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | import javax.validation.constraints.NotNull; 12 | import java.util.List; 13 | 14 | /** 15 | * @author: ladidol 16 | * @date: 2022/12/1 20:05 17 | * @description: 18 | */ 19 | @Data 20 | @Builder 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | @ApiModel(description = "用户角色") 24 | public class UserRoleVO { 25 | /** 26 | * 用户id 27 | */ 28 | @NotNull(message = "id不能为空") 29 | @ApiModelProperty(name = "userInfoId", value = "用户信息id", dataType = "Integer") 30 | private Integer userInfoId; 31 | 32 | /** 33 | * 用户昵称 34 | */ 35 | @NotBlank(message = "昵称不能为空") 36 | @ApiModelProperty(name = "nickname", value = "昵称", dataType = "String") 37 | private String nickname; 38 | 39 | /** 40 | * 用户角色 41 | */ 42 | @NotNull(message = "用户角色不能为空") 43 | @ApiModelProperty(name = "roleList", value = "角色id集合", dataType = "List") 44 | private List roleIdList; 45 | 46 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/UserVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.Email; 11 | import javax.validation.constraints.NotBlank; 12 | import javax.validation.constraints.Size; 13 | 14 | /** 15 | * @author: ladidol 16 | * @date: 2022/11/18 19:35 17 | * @description: 18 | */ 19 | @Data 20 | @Builder 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | @ApiModel(description = "用户账号") 24 | public class UserVO { 25 | 26 | /** 27 | * 用户名 28 | */ 29 | @NotBlank(message = "邮箱不能为空") 30 | @Email(message = "邮箱格式不正确") 31 | @ApiModelProperty(name = "username", value = "用户名", required = true, dataType = "String") 32 | private String username; 33 | 34 | /** 35 | * 密码 36 | */ 37 | @Size(min = 6, message = "密码不能少于6位") 38 | @NotBlank(message = "密码不能为空") 39 | @ApiModelProperty(name = "password", value = "密码", required = true, dataType = "String") 40 | private String password; 41 | 42 | /** 43 | * 验证码 44 | */ 45 | @NotBlank(message = "验证码不能为空") 46 | @ApiModelProperty(name = "code", value = "邮箱验证码", required = true, dataType = "String") 47 | private String code; 48 | 49 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/page/PageResult.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo.page; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/28 13:15 15 | * @description: 分页对象 16 | */ 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @Builder 21 | @ApiModel(description = "分页对象") 22 | public class PageResult { 23 | 24 | /** 25 | * 分页列表 26 | */ 27 | @ApiModelProperty(name = "recordList", value = "分页列表", required = true, dataType = "List") 28 | private List recordList; 29 | 30 | /** 31 | * 总数 32 | */ 33 | @ApiModelProperty(name = "count", value = "总数", required = true, dataType = "Integer") 34 | private Integer count; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/strategy/login/QQLoginVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo.strategy.login; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.validation.constraints.NotBlank; 11 | 12 | /** 13 | * @author: ladidol 14 | * @date: 2022/11/23 8:48 15 | * @description: 16 | */ 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @Builder 21 | @ApiModel(description = "qq登录信息") 22 | public class QQLoginVO { 23 | 24 | /** 25 | * openId 26 | */ 27 | @NotBlank(message = "openId不能为空") 28 | @ApiModelProperty(name = "openId", value = "qq openId", required = true, dataType = "String") 29 | private String openId; 30 | 31 | /** 32 | * accessToken 33 | */ 34 | @NotBlank(message = "accessToken不能为空") 35 | @ApiModelProperty(name = "accessToken", value = "qq accessToken", required = true, dataType = "String") 36 | private String accessToken; 37 | 38 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/java/org/cuit/epoch/vo/strategy/login/WeiboLoginVO.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch.vo.strategy.login; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import javax.validation.constraints.NotBlank; 10 | 11 | /** 12 | * @author: ladidol 13 | * @date: 2022/11/22 15:20 14 | * @description: 15 | */ 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Builder 20 | public class WeiboLoginVO { 21 | 22 | /** 23 | * code 24 | */ 25 | @NotBlank(message = "code不能为空") 26 | @ApiModelProperty(name = "openId", value = "weibo openId", required = true, dataType = "String") 27 | private String code; 28 | 29 | } -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: dev -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/CategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/MenuMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/PageMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/PhotoAlbumMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/TagMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 25 | 26 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/UniqueViewMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /blog-springboot/src/main/resources/mapper/UserRoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /blog-springboot/src/test/java/org/cuit/epoch/RedisTest.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch; 2 | 3 | import org.cuit.epoch.service.RedisService; 4 | import org.junit.jupiter.api.Test; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | 8 | import java.util.HashSet; 9 | import java.util.Set; 10 | 11 | import static org.cuit.epoch.constant.RedisPrefixConst.USER_ONLINE; 12 | 13 | /** 14 | * @author: ladidol 15 | * @date: 2022/12/2 12:28 16 | * @description: 17 | */ 18 | @SpringBootTest 19 | public class RedisTest { 20 | @Autowired 21 | RedisService redisService; 22 | 23 | @Test 24 | void contextLoads() { 25 | 26 | redisService.set(USER_ONLINE, new HashSet()); 27 | Set onlineUsers = (Set) redisService.get(USER_ONLINE); 28 | 29 | onlineUsers.add(1); 30 | onlineUsers.add(222); 31 | onlineUsers.add(3); 32 | onlineUsers.add(4); 33 | onlineUsers.remove(222); 34 | 35 | redisService.set(USER_ONLINE, onlineUsers); 36 | 37 | System.out.println("有点怪"); 38 | 39 | } 40 | 41 | 42 | } -------------------------------------------------------------------------------- /blog-springboot/src/test/java/org/cuit/epoch/SupplyAsyncExample.java: -------------------------------------------------------------------------------- 1 | package org.cuit.epoch; 2 | 3 | import java.util.concurrent.CompletableFuture; 4 | import java.util.concurrent.ExecutionException; 5 | 6 | /** 7 | * @author: Xiaoqiang-Ladidol 8 | * @date: 2022/12/18 18:10 9 | * @description: {} 10 | */ 11 | public class SupplyAsyncExample { 12 | 13 | public static void main(String[] args) throws ExecutionException, InterruptedException { 14 | // 查询推荐文章 15 | CompletableFuture recommendArticleList = CompletableFuture.supplyAsync(() -> 16 | { 17 | for (long i = 0; i < 1000000L; i++) { 18 | 19 | } 20 | return "supplyAsync 运行完成!"; 21 | } 22 | 23 | ); 24 | 25 | 26 | System.out.println("main 已经运行完成了!"); 27 | System.out.println("recommendArticleList.get() = " + recommendArticleList.get()); 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /blog-springboot/src/test/java/org/cuit/epoch/text/CheckText.java: -------------------------------------------------------------------------------- 1 | //package org.cuit.epoch.text; 2 | // 3 | //import cn.textcheck.engine.report.Reporter; 4 | //import cn.textcheck.starter.EasyStarter; 5 | //import org.junit.jupiter.api.Test; 6 | //import org.springframework.boot.test.context.SpringBootTest; 7 | // 8 | //import java.io.File; 9 | //import java.io.IOException; 10 | //import java.util.List; 11 | // 12 | ///** 13 | // * @author: ladidol 14 | // * @date: 2022/12/7 0:12 15 | // * @description: 16 | // */ 17 | //@SpringBootTest 18 | //public class CheckText { 19 | // 20 | // @Test 21 | // public void test1() throws IOException, InterruptedException { 22 | // List reporters = EasyStarter.check( 23 | // new File("C:\\Users\\冯小强\\Desktop\\text01.txt"), 24 | // new File("参数2"), 25 | // "参数3", 26 | // "参数4"); 27 | // } 28 | // 29 | // 30 | //} -------------------------------------------------------------------------------- /blog-springboot/target/classes/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: dev -------------------------------------------------------------------------------- /blog-vue/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /blog-vue/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /blog-vue/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /blog-vue/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /blog-vue/admin/README.md: -------------------------------------------------------------------------------- 1 | # admins 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 | ### Run your tests 19 | ``` 20 | npm run test 21 | ``` 22 | 23 | ### Lints and fixes files 24 | ``` 25 | npm run lint 26 | ``` 27 | 28 | ### Customize configuration 29 | See [Configuration Reference](https://cli.vuejs.org/config/). 30 | -------------------------------------------------------------------------------- /blog-vue/admin/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"] 3 | }; 4 | -------------------------------------------------------------------------------- /blog-vue/admin/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/admin/public/favicon.ico -------------------------------------------------------------------------------- /blog-vue/admin/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 后台管理系统 10 | 11 | 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /blog-vue/admin/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/css/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/admin/src/assets/css/iconfont.eot -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/css/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/admin/src/assets/css/iconfont.ttf -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/css/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/admin/src/assets/css/iconfont.woff -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/css/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/admin/src/assets/css/iconfont.woff2 -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/js/config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | TENCENT_CAPTCHA: "2088053498", 3 | UPLOAD_SIZE: 200 // 压缩文件大小 4 | }; 5 | -------------------------------------------------------------------------------- /blog-vue/admin/src/assets/js/menu.js: -------------------------------------------------------------------------------- 1 | import Layout from "@/layout/index.vue"; 2 | import router from "../../router"; 3 | import store from "../../store"; 4 | import axios from "axios"; 5 | import Vue from "vue"; 6 | 7 | export function generaMenu() { 8 | // 查询用户菜单 9 | axios.get("/api/admin/user/menus").then(({ data }) => { 10 | if (data.flag) { 11 | var userMenuList = data.data; 12 | userMenuList.forEach(item => { 13 | if (item.icon != null) { 14 | item.icon = "iconfont " + item.icon; 15 | } 16 | if (item.component == "Layout") { 17 | item.component = Layout; 18 | } 19 | if (item.children && item.children.length > 0) { 20 | item.children.forEach(route => { 21 | route.icon = "iconfont " + route.icon; 22 | route.component = loadView(route.component); 23 | }); 24 | } 25 | }); 26 | // 添加侧边栏菜单 27 | store.commit("saveUserMenuList", userMenuList); 28 | // 添加菜单到路由 29 | router.addRoutes(userMenuList); 30 | } else { 31 | Vue.prototype.$message.error(data.message); 32 | router.push({ path: "/login" }); 33 | } 34 | }); 35 | } 36 | 37 | export const loadView = view => { 38 | // 路由懒加载 39 | return resolve => require([`@/views${view}`], resolve); 40 | }; 41 | -------------------------------------------------------------------------------- /blog-vue/admin/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import VueRouter from "vue-router"; 3 | 4 | Vue.use(VueRouter); 5 | 6 | const routes = [ 7 | { 8 | path: "/login", 9 | name: "登录", 10 | hidden: true, 11 | component: () => import("../views/login/Login.vue") 12 | } 13 | ]; 14 | 15 | const createRouter = () => 16 | new VueRouter({ 17 | mode: "history", 18 | routes: routes 19 | }); 20 | 21 | const router = createRouter(); 22 | 23 | export function resetRouter() { 24 | const newRouter = createRouter(); 25 | router.matcher = newRouter.matcher; 26 | } 27 | 28 | export default router; 29 | -------------------------------------------------------------------------------- /blog-vue/admin/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | productionSourceMap: false, 3 | devServer: { 4 | proxy: { 5 | "/api": { 6 | target: "http://localhost:8888", 7 | changeOrigin: true, 8 | pathRewrite: { 9 | "^/api": "" 10 | } 11 | } 12 | }, 13 | disableHostCheck: true 14 | }, 15 | chainWebpack: config => { 16 | config.resolve.alias.set("@", resolve("src")); 17 | } 18 | }; 19 | 20 | const path = require("path"); 21 | function resolve(dir) { 22 | return path.join(__dirname, dir); 23 | } 24 | -------------------------------------------------------------------------------- /blog-vue/blog/README.md: -------------------------------------------------------------------------------- 1 | # blog 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 | ### Run your tests 19 | ``` 20 | npm run test 21 | ``` 22 | 23 | ### Lints and fixes files 24 | ``` 25 | npm run lint 26 | ``` 27 | 28 | ### Customize configuration 29 | See [Configuration Reference](https://cli.vuejs.org/config/). 30 | -------------------------------------------------------------------------------- /blog-vue/blog/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"] 3 | }; 4 | -------------------------------------------------------------------------------- /blog-vue/blog/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/public/favicon.ico -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/iconfont.eot -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/iconfont.ttf -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/iconfont.woff -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/iconfont.woff2 -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.eot -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.ttf -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/assets/css/vue-social-share/static/iconfont.woff -------------------------------------------------------------------------------- /blog-vue/blog/src/assets/js/config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | QQ_APP_ID: "102036215", 3 | QQ_REDIRECT_URI: "http://blog.ladidol.top/oauth/login/qq", 4 | WEIBO_APP_ID: "83843779", 5 | WEIBO_REDIRECT_URI: "http://blog.ladidol.top/oauth/login/weibo", 6 | TENCENT_CAPTCHA: "2088053498" 7 | }; 8 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/Emoji.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 41 | 42 | 63 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/layout/Footer.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 28 | 29 | 57 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/toast/Toast.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/toast/index.js: -------------------------------------------------------------------------------- 1 | import ToastComponent from "./Toast.vue"; // 引入先前写好的vue 2 | 3 | const Toast = {}; 4 | 5 | // 注册Toast 6 | Toast.install = function(Vue) { 7 | // 生成一个Vue的子类 8 | const ToastConstructor = Vue.extend(ToastComponent); 9 | // 生成一个该子类的实例 10 | const instance = new ToastConstructor(); 11 | 12 | // 将这个实例挂载在我创建的div上 13 | // 并将此div加入全局挂载点内部 14 | instance.$mount(document.createElement("div")); 15 | document.body.appendChild(instance.$el); 16 | 17 | // 通过Vue的原型注册一个方法 18 | // 让所有实例共享这个方法
// 其中的duration是持续时间 19 | Vue.prototype.$toast = (options, duration = 2000) => { 20 | instance.message = options.message; 21 | instance.type = options.type; 22 | instance.show = true; 23 | 24 | setTimeout(() => { 25 | instance.show = false; 26 | }, duration); 27 | }; 28 | }; 29 | 30 | export default Toast; 31 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/api/music.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | //获取歌词 3 | export const getWords = id => { 4 | return axios.post(`https://n.xlz122.cn/api/lyric?id=${id}`); 5 | }; 6 | //获取歌曲详情 7 | export const getMusicInfo = id => { 8 | return axios.post(`https://n.xlz122.cn/api/song/detail?ids=${id}`); 9 | }; 10 | //获取歌曲url 11 | export const getMusicUrl = id => { 12 | return axios.post(`https://n.xlz122.cn/api/song/url?id=${id}`); 13 | }; 14 | //获取热门歌曲 15 | export const getHotMusic = id => { 16 | return axios.post(`https://n.xlz122.cn/api/playlist/detail?id=${id}`); 17 | }; 18 | //获取搜索建议 19 | export const getSearchSuggest = key => { 20 | return axios.post(`https://n.xlz122.cn/api/search/suggest?keywords=${key}`); 21 | }; 22 | //获取歌曲热门评论 23 | export const getHotTalk = id => { 24 | return axios.post(`https://n.xlz122.cn/api/comment/music?id=${id}&limit=3`); 25 | }; 26 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/add.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/list_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/list_bg.jpg -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/list_pan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/list_pan.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/list_play_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/list_play_hover.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/pan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/pan.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/pause.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/play.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/state_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/state_0.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/state_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/state_1.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/talkicon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/talkicon1.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/img/talkicon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/img/talkicon2.png -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "zw-player", 3 | "_id": "zw-player@1.0.6", 4 | "_inBundle": false, 5 | "_integrity": "sha1-NajRC2RNL7w89O6lfLrgFW25aJw=", 6 | "_location": "/zw-player", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "tag", 10 | "registry": true, 11 | "raw": "zw-player", 12 | "name": "zw-player", 13 | "escapedName": "zw-player", 14 | "rawSpec": "", 15 | "saveSpec": null, 16 | "fetchSpec": "latest" 17 | }, 18 | "_requiredBy": [ 19 | "#USER", 20 | "/" 21 | ], 22 | "_resolved": "https://registry.npm.taobao.org/zw-player/download/zw-player-1.0.6.tgz", 23 | "_shasum": "35a8d10b644d2fbc3cf4eea57cbae0156db9689c", 24 | "_spec": "zw-player", 25 | "_where": "D:\\idea\\blog\\blog-vue\\blog", 26 | "author": { 27 | "name": "956661947@qq.com" 28 | }, 29 | "bundleDependencies": false, 30 | "dependencies": { 31 | "axios": "^0.19.0", 32 | "jquery": "^3.4.1" 33 | }, 34 | "deprecated": false, 35 | "description": "a web music player", 36 | "keywords": [ 37 | "music", 38 | "player", 39 | "webplayer", 40 | "musicplayer", 41 | "vue", 42 | "component", 43 | "web" 44 | ], 45 | "license": "ISC", 46 | "main": "player.vue", 47 | "name": "zw-player", 48 | "scripts": { 49 | "test": "echo \"Error: no test specified\" && exit 1" 50 | }, 51 | "version": "1.0.6" 52 | } 53 | -------------------------------------------------------------------------------- /blog-vue/blog/src/components/zw-player/playermobile.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ladidol/hexo-blog-satoken/82dcfd9c89d602a1d30f855bbb65eecc74238b08/blog-vue/blog/src/components/zw-player/playermobile.css -------------------------------------------------------------------------------- /blog-vue/blog/src/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import Vuetify from "vuetify/lib"; 3 | 4 | Vue.use(Vuetify); 5 | 6 | export default new Vuetify({}); 7 | -------------------------------------------------------------------------------- /blog-vue/blog/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transpileDependencies: ["vuetify"], 3 | devServer: { 4 | proxy: { 5 | "/api": { 6 | target: "http://localhost:8888", 7 | changeOrigin: true, 8 | pathRewrite: { 9 | "^/api": "" 10 | } 11 | } 12 | }, 13 | disableHostCheck: true 14 | }, 15 | productionSourceMap: false, 16 | css: { 17 | extract: true, 18 | sourceMap: false 19 | } 20 | }; 21 | --------------------------------------------------------------------------------