From a8a26577533ef055c3d1bd3de48472b6cd9b38a5 Mon Sep 17 00:00:00 2001 From: ZhangAo Date: Thu, 25 Dec 2025 17:31:09 +0800 Subject: [PATCH] u --- .../post/controller/EditorPostController.java | 64 ++++++ .../controller/PostCategoryController.java | 27 --- .../post/controller/PostController.java | 59 ++--- .../post/controller/PostTagController.java | 27 --- .../cn/link56/post/mapper/PostMapper.java | 14 +- .../{AddPostDTO.java => CreatePostDTO.java} | 2 +- ...ryPostDTO.java => QueryEditorPostDTO.java} | 2 +- .../post/model/dto/QueryPublicPostDTO.java | 13 ++ .../java/cn/link56/post/model/po/PostTag.java | 3 + ...ashboardVO.java => EditorDashboardVO.java} | 2 +- .../vo/{EditPostVO.java => EditorPostVO.java} | 2 +- .../link56/post/model/vo/PostCategoryVO.java | 1 + .../cn/link56/post/model/vo/PostTagVO.java | 1 + ...ueryPostVO.java => QueryEditorPostVO.java} | 2 +- .../post/model/vo/QueryPublicPostVO.java | 25 ++ .../cn/link56/post/service/PostService.java | 70 +++--- .../cn/link56/post/mapper/PostMapper.xml | 91 +++++++- code/link56/link56-frontend-new/src/App.vue | 27 +++ .../src/layout/components/header.vue | 29 +-- .../link56-frontend-new/src/layout/index.vue | 4 +- .../src/request/api/post/editor.ts | 40 ++++ .../src/request/api/post/index.ts | 35 +-- .../link56-frontend-new/src/store/common.ts | 5 +- .../src/types/base/index.ts | 6 + .../src/types/post/editor.ts | 2 +- .../src/types/post/index.ts | 3 + .../src/views/post/home/index.vue | 215 ++++++++++++++++-- .../src/views/settings/creator/editor.vue | 26 +-- .../src/views/settings/creator/post.vue | 4 +- .../src/views/settings/info/company.vue | 6 +- 30 files changed, 552 insertions(+), 255 deletions(-) create mode 100644 code/link56/link56-backend/src/main/java/cn/link56/post/controller/EditorPostController.java delete mode 100644 code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostCategoryController.java delete mode 100644 code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostTagController.java rename code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/{AddPostDTO.java => CreatePostDTO.java} (95%) rename code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/{QueryPostDTO.java => QueryEditorPostDTO.java} (90%) create mode 100644 code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPublicPostDTO.java rename code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/{DashboardVO.java => EditorDashboardVO.java} (95%) rename code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/{EditPostVO.java => EditorPostVO.java} (94%) rename code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/{QueryPostVO.java => QueryEditorPostVO.java} (94%) create mode 100644 code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPublicPostVO.java create mode 100644 code/link56/link56-frontend-new/src/request/api/post/editor.ts diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/EditorPostController.java b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/EditorPostController.java new file mode 100644 index 00000000..71fd523a --- /dev/null +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/EditorPostController.java @@ -0,0 +1,64 @@ +package cn.link56.post.controller; + +import cn.link56.common.BasePageVO; +import cn.link56.common.Result; +import cn.link56.post.model.dto.*; +import cn.link56.post.model.vo.EditorDashboardVO; +import cn.link56.post.model.vo.EditorPostVO; +import cn.link56.post.model.vo.QueryEditorPostVO; +import cn.link56.post.service.PostService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/editor/post") +public class EditorPostController { + @Resource + private PostService postService; + + @GetMapping("/{id}") + public Result getEditDetail(@PathVariable("id") Long id) { + EditorPostVO editorPostVO = postService.getEditDetail(id); + return Result.success(editorPostVO); + } + + @PostMapping("/create") + public Result createPost(@RequestBody @Validated CreatePostDTO createPostDTO) { + EditorPostVO editorPostVO = postService.createPost(createPostDTO); + return Result.success(editorPostVO); + } + + @PostMapping("/update") + public Result updatePost(@RequestBody @Validated UpdatePostDTO updatePostDTO){ + EditorPostVO editorPostVO = postService.updatePost(updatePostDTO); + return Result.success(editorPostVO); + } + + @PostMapping("/update/status") + public Result updatePostStatus(@RequestBody @Validated UpdatePostStatusDTO updatePostStatusDTO){ + postService.updatePostStatus(updatePostStatusDTO); + + return Result.success(); + } + + @PostMapping("/delete") + public Result deletePost(@RequestBody @Validated DeletePostDTO deletePostDTO){ + postService.deletePost(deletePostDTO); + return Result.success(); + } + + @PostMapping("/query") + public Result> queryEditorPosts(@RequestBody QueryEditorPostDTO queryEditorPostDTO){ + BasePageVO data = postService.queryEditorPosts(queryEditorPostDTO); + return Result.success(data); + } + + @GetMapping("/dashboard") + public Result getEditorDashboard(){ + EditorDashboardVO editorDashboardVO = postService.getEditorDashboard(); + + return Result.success(editorDashboardVO); + } +} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostCategoryController.java b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostCategoryController.java deleted file mode 100644 index 9cc96a48..00000000 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostCategoryController.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.link56.post.controller; - -import cn.link56.common.Result; -import cn.link56.post.model.vo.PostCategoryVO; -import cn.link56.post.model.vo.PostTagVO; -import cn.link56.post.service.PostCategoryService; -import cn.link56.post.service.PostTagService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -@RestController -@RequestMapping("/post/category") -public class PostCategoryController { - @Resource - private PostCategoryService postCategoryService; - - @GetMapping - public Result> listCategories(){ - List list = postCategoryService.listCategories(); - - return Result.success(list); - } -} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostController.java b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostController.java index 60d340bb..019a1067 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostController.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostController.java @@ -2,65 +2,34 @@ package cn.link56.post.controller; import cn.link56.common.BasePageVO; import cn.link56.common.Result; -import cn.link56.post.model.dto.*; -import cn.link56.post.model.vo.EditPostVO; -import cn.link56.post.model.vo.DashboardVO; -import cn.link56.post.model.vo.QueryPostVO; +import cn.link56.post.model.dto.QueryPublicPostDTO; +import cn.link56.post.model.vo.PostTagVO; +import cn.link56.post.model.vo.QueryPublicPostVO; import cn.link56.post.service.PostService; -import org.springframework.validation.annotation.Validated; +import cn.link56.post.service.PostTagService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; @RestController @RequestMapping("/post") public class PostController { - @Resource private PostService postService; + @Resource + private PostTagService postTagService; - @GetMapping("/{id}") - public Result getDetail(@PathVariable("id") Long id) { - EditPostVO editPostVO = postService.getDetail(id); - return Result.success(editPostVO); - } + @GetMapping("/tag") + public Result> listTags(){ + List list = postTagService.listTags(); - @PostMapping("/add") - public Result addPost(@RequestBody @Validated AddPostDTO addPostDTO) { - EditPostVO editPostVO = postService.addPost(addPostDTO); - return Result.success(editPostVO); - } - - @PostMapping("/update") - public Result updatePost(@RequestBody @Validated UpdatePostDTO updatePostDTO){ - EditPostVO editPostVO = postService.updatePost(updatePostDTO); - return Result.success(editPostVO); - } - - @PostMapping("/update/status") - public Result updatePostStatus(@RequestBody @Validated UpdatePostStatusDTO updatePostStatusDTO){ - postService.updatePostStatus(updatePostStatusDTO); - - return Result.success(); + return Result.success(list); } @PostMapping("/query") - public Result> queryPost(@RequestBody QueryPostDTO queryPostDTO){ - BasePageVO data = postService.queryPost(queryPostDTO); - return Result.success(data); + public Result> queryPublicPosts(@RequestBody QueryPublicPostDTO dto){ + BasePageVO res = postService.queryPublicPosts(dto); + return Result.success(res); } - - @PostMapping("/delete") - public Result deletePost(@RequestBody @Validated DeletePostDTO deletePostDTO){ - postService.deletePost(deletePostDTO); - return Result.success(); - } - - @GetMapping("/dashboard") - public Result getDashboardData(){ - DashboardVO dashboardVO = postService.getDashboardData(); - - return Result.success(dashboardVO); - } - } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostTagController.java b/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostTagController.java deleted file mode 100644 index 317a1a10..00000000 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/controller/PostTagController.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.link56.post.controller; - -import cn.link56.common.Result; -import cn.link56.post.mapper.PostTagMapper; -import cn.link56.post.model.vo.PostTagVO; -import cn.link56.post.service.PostTagService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -@RestController -@RequestMapping("/post/tag") -public class PostTagController { - @Resource - private PostTagService postTagService; - - @GetMapping - public Result> listTags(){ - List list = postTagService.listTags(); - - return Result.success(list); - } -} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/mapper/PostMapper.java b/code/link56/link56-backend/src/main/java/cn/link56/post/mapper/PostMapper.java index 5403c341..798b294d 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/mapper/PostMapper.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/mapper/PostMapper.java @@ -1,8 +1,8 @@ package cn.link56.post.mapper; import cn.link56.post.model.po.Post; -import cn.link56.post.model.vo.DashboardVO; -import cn.link56.post.model.vo.QueryPostVO; +import cn.link56.post.model.vo.EditorDashboardVO; +import cn.link56.post.model.vo.QueryEditorPostVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -11,7 +11,7 @@ import java.util.List; @Mapper public interface PostMapper extends BaseMapper { - List selectPostPage( + List selectEditorPostPage( @Param("offset") int offset, @Param("limit") int limit, @Param("userId") Long userId, @@ -21,7 +21,7 @@ public interface PostMapper extends BaseMapper { @Param("month") String month ); - Long selectPostTotal( + Long selectEditorPostTotal( @Param("userId") Long userId, @Param("title") String title, @Param("status") Integer status, @@ -29,8 +29,8 @@ public interface PostMapper extends BaseMapper { @Param("month") String month ); - DashboardVO.Count selectDashboardOverview(@Param("userId") Long userId); + EditorDashboardVO.Count selectDashboardOverview(@Param("userId") Long userId); - List selectDashboardViewStats(@Param("userId") Long userId); - List selectDashboardNumberStats(@Param("userId") Long userId); + List selectDashboardViewStats(@Param("userId") Long userId); + List selectDashboardNumberStats(@Param("userId") Long userId); } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/AddPostDTO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/CreatePostDTO.java similarity index 95% rename from code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/AddPostDTO.java rename to code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/CreatePostDTO.java index 39ec49b7..6b362c8d 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/AddPostDTO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/CreatePostDTO.java @@ -10,7 +10,7 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -public class AddPostDTO { +public class CreatePostDTO { @NotBlank(message = "帖子标题不能为空") private String title; @NotBlank(message = "帖子内容不能为空") diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPostDTO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryEditorPostDTO.java similarity index 90% rename from code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPostDTO.java rename to code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryEditorPostDTO.java index 8ecb71fe..bc49ad8b 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPostDTO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryEditorPostDTO.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class QueryPostDTO { +public class QueryEditorPostDTO { private Integer currentPage; private Integer pageSize; diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPublicPostDTO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPublicPostDTO.java new file mode 100644 index 00000000..597b9451 --- /dev/null +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/dto/QueryPublicPostDTO.java @@ -0,0 +1,13 @@ +package cn.link56.post.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryPublicPostDTO { + private String title; + private String tag; +} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/po/PostTag.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/po/PostTag.java index 1c6c8b1c..b2f4764d 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/po/PostTag.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/po/PostTag.java @@ -18,6 +18,9 @@ public class PostTag { @TableField("b_name") private String name; + @TableField("b_icon") + private String icon; + @TableField("b_canuse") private String canuse; } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/DashboardVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorDashboardVO.java similarity index 95% rename from code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/DashboardVO.java rename to code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorDashboardVO.java index 93e99b5b..cc1acf84 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/DashboardVO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorDashboardVO.java @@ -9,7 +9,7 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -public class DashboardVO { +public class EditorDashboardVO { private Count allCount; private List numberChart; private List viewChart; diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditPostVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorPostVO.java similarity index 94% rename from code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditPostVO.java rename to code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorPostVO.java index 2e941b22..96b37422 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditPostVO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/EditorPostVO.java @@ -10,7 +10,7 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -public class EditPostVO { +public class EditorPostVO { private Long id; private String title; private String content; diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostCategoryVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostCategoryVO.java index 1af4a833..70588a0b 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostCategoryVO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostCategoryVO.java @@ -10,4 +10,5 @@ import lombok.NoArgsConstructor; public class PostCategoryVO { private Long id; private String name; + private String icon; } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostTagVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostTagVO.java index 49cb9678..f339850d 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostTagVO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/PostTagVO.java @@ -10,4 +10,5 @@ import lombok.NoArgsConstructor; public class PostTagVO { private Long id; private String name; + private String icon; } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPostVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryEditorPostVO.java similarity index 94% rename from code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPostVO.java rename to code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryEditorPostVO.java index 47311bcc..bb6f949b 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPostVO.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryEditorPostVO.java @@ -10,7 +10,7 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -public class QueryPostVO { +public class QueryEditorPostVO { private Long id; private String title; diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPublicPostVO.java b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPublicPostVO.java new file mode 100644 index 00000000..ceedcce4 --- /dev/null +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/model/vo/QueryPublicPostVO.java @@ -0,0 +1,25 @@ +package cn.link56.post.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryPublicPostVO { + private Long id; + private String title; + private List tags; + + private Long companyId; + private String companyName; + + private Integer viewCount; + private Integer commentCount; + + private Date activeTime; +} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/post/service/PostService.java b/code/link56/link56-backend/src/main/java/cn/link56/post/service/PostService.java index ad95e660..91a4ac8b 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/post/service/PostService.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/post/service/PostService.java @@ -7,9 +7,10 @@ import cn.link56.post.mapper.PostMapper; import cn.link56.post.model.dto.*; import cn.link56.post.model.enums.PostStatusEnum; import cn.link56.post.model.po.Post; -import cn.link56.post.model.vo.DashboardVO; -import cn.link56.post.model.vo.EditPostVO; -import cn.link56.post.model.vo.QueryPostVO; +import cn.link56.post.model.vo.EditorDashboardVO; +import cn.link56.post.model.vo.EditorPostVO; +import cn.link56.post.model.vo.QueryEditorPostVO; +import cn.link56.post.model.vo.QueryPublicPostVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; @@ -30,7 +31,7 @@ public class PostService extends ServiceImpl { private PostMapper postMapper; @Transactional - public EditPostVO addPost(AddPostDTO dto) { + public EditorPostVO createPost(CreatePostDTO dto) { Post post = new Post(); BeanUtils.copyProperties(dto, post); @@ -44,7 +45,7 @@ public class PostService extends ServiceImpl { return buildEditPostVO(post); } - public EditPostVO updatePost(UpdatePostDTO dto) { + public EditorPostVO updatePost(UpdatePostDTO dto) { Post post = postMapper.selectById(dto.getId()); if (post == null) { return null; @@ -59,7 +60,7 @@ public class PostService extends ServiceImpl { return buildEditPostVO(post); } - public EditPostVO getDetail(Long id) { + public EditorPostVO getEditDetail(Long id) { Post post = postMapper.selectById(id); if (post == null) { return null; @@ -68,11 +69,11 @@ public class PostService extends ServiceImpl { return buildEditPostVO(post); } - public BasePageVO queryPost(QueryPostDTO dto) { + public BasePageVO queryEditorPosts(QueryEditorPostDTO dto) { int offset = (dto.getCurrentPage() - 1) * dto.getPageSize() + 1; int limit = dto.getCurrentPage() * dto.getPageSize(); - List records = postMapper.selectPostPage( + List records = postMapper.selectEditorPostPage( offset, limit, UserContext.getUserId(), @@ -82,7 +83,7 @@ public class PostService extends ServiceImpl { dto.getMonth() ); - Long total = postMapper.selectPostTotal( + Long total = postMapper.selectEditorPostTotal( UserContext.getUserId(), dto.getTitle(), dto.getStatus(), @@ -90,7 +91,7 @@ public class PostService extends ServiceImpl { dto.getMonth() ); - BasePageVO page = new BasePageVO<>(); + BasePageVO page = new BasePageVO<>(); page.setRecords(records); page.setTotal(total); return page; @@ -98,8 +99,8 @@ public class PostService extends ServiceImpl { /* ================= 私有方法 ================= */ - private EditPostVO buildEditPostVO(Post post) { - EditPostVO vo = new EditPostVO(); + private EditorPostVO buildEditPostVO(Post post) { + EditorPostVO vo = new EditorPostVO(); BeanUtils.copyProperties(post, vo); vo.setTags( @@ -142,45 +143,45 @@ public class PostService extends ServiceImpl { postMapper.updateById(post); } - public DashboardVO getDashboardData() { + public EditorDashboardVO getEditorDashboard() { Long userId = UserContext.getUserId(); - DashboardVO dashboardVO = new DashboardVO(); + EditorDashboardVO editorDashboardVO = new EditorDashboardVO(); - DashboardVO.Count count = postMapper.selectDashboardOverview(userId); + EditorDashboardVO.Count count = postMapper.selectDashboardOverview(userId); // 原始数据 - List viewCharts = postMapper.selectDashboardViewStats(userId); - List numberCharts = postMapper.selectDashboardNumberStats(userId); - List typeCharts = getDashboardTypeStats(userId); + List viewCharts = postMapper.selectDashboardViewStats(userId); + List numberCharts = postMapper.selectDashboardNumberStats(userId); + List typeCharts = getDashboardTypeStats(userId); // 统一处理最近 7 天,补齐缺失值 - dashboardVO.setViewChart(fillLast7Days(viewCharts)); - dashboardVO.setNumberChart(fillLast7Days(numberCharts)); - dashboardVO.setTypeChart(typeCharts); + editorDashboardVO.setViewChart(fillLast7Days(viewCharts)); + editorDashboardVO.setNumberChart(fillLast7Days(numberCharts)); + editorDashboardVO.setTypeChart(typeCharts); - dashboardVO.setAllCount(count); - return dashboardVO; + editorDashboardVO.setAllCount(count); + return editorDashboardVO; } /** * 填充最近7天的 chart 数据,如果 map 里没有,则补 0 */ - private List fillLast7Days(List originalCharts) { + private List fillLast7Days(List originalCharts) { // 转 map,方便查 Map map = originalCharts.stream() - .collect(Collectors.toMap(DashboardVO.Chart::getLabel, DashboardVO.Chart::getValue, (a, b) -> b)); + .collect(Collectors.toMap(EditorDashboardVO.Chart::getLabel, EditorDashboardVO.Chart::getValue, (a, b) -> b)); - List result = new ArrayList<>(); + List result = new ArrayList<>(); for (int i = 6; i >= 0; i--) { String date = LocalDate.now().minusDays(i).toString(); - result.add(new DashboardVO.Chart(date, map.getOrDefault(date, 0))); + result.add(new EditorDashboardVO.Chart(date, map.getOrDefault(date, 0))); } return result; } - private List getDashboardTypeStats(Long userId) { + private List getDashboardTypeStats(Long userId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper .select(Post::getTag) @@ -209,10 +210,19 @@ public class PostService extends ServiceImpl { } // 转成 DashboardVO.Chart 列表 - List result = new ArrayList<>(); - tagCountMap.forEach((tag, count) -> result.add(new DashboardVO.Chart(tag, count))); + List result = new ArrayList<>(); + tagCountMap.forEach((tag, count) -> result.add(new EditorDashboardVO.Chart(tag, count))); return result; } + public BasePageVO queryPublicPosts(QueryPublicPostDTO dto) { + String title = dto.getTitle(); + String tag = dto.getTag(); + + + BasePageVO result = new BasePageVO<>(); + + return result; + } } diff --git a/code/link56/link56-backend/src/main/resources/cn/link56/post/mapper/PostMapper.xml b/code/link56/link56-backend/src/main/resources/cn/link56/post/mapper/PostMapper.xml index 17068fa6..ba71386f 100644 --- a/code/link56/link56-backend/src/main/resources/cn/link56/post/mapper/PostMapper.xml +++ b/code/link56/link56-backend/src/main/resources/cn/link56/post/mapper/PostMapper.xml @@ -4,8 +4,8 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -25,7 +25,27 @@ - SELECT * FROM ( SELECT @@ -68,7 +88,7 @@ WHERE t.rn BETWEEN #{offset} AND #{limit} - SELECT COUNT(*) FROM b_post p @@ -94,7 +114,7 @@ - SELECT (SELECT COUNT(*) FROM b_post WHERE b_create_by = #{userId}) AS postCount, (SELECT COUNT(*) FROM b_post_view WHERE b_post_id IN (SELECT b_id FROM b_post WHERE b_create_by = #{userId})) AS viewCount, @@ -102,7 +122,7 @@ (SELECT COUNT(*) FROM b_post_favorite WHERE b_post_id IN (SELECT b_id FROM b_post WHERE b_create_by = #{userId})) AS favoriteCount - SELECT CONVERT(VARCHAR(10), v.b_create_time, 120) AS label, COUNT(*) AS value @@ -115,7 +135,7 @@ ORDER BY label - SELECT CONVERT(VARCHAR(10), p.b_create_time, 120) AS label, COUNT(*) AS value @@ -127,4 +147,61 @@ ORDER BY label + + + \ No newline at end of file diff --git a/code/link56/link56-frontend-new/src/App.vue b/code/link56/link56-frontend-new/src/App.vue index fd69cb23..2377b891 100644 --- a/code/link56/link56-frontend-new/src/App.vue +++ b/code/link56/link56-frontend-new/src/App.vue @@ -1,8 +1,10 @@ diff --git a/code/link56/link56-frontend-new/src/layout/components/header.vue b/code/link56/link56-frontend-new/src/layout/components/header.vue index 26821744..a257ebd7 100644 --- a/code/link56/link56-frontend-new/src/layout/components/header.vue +++ b/code/link56/link56-frontend-new/src/layout/components/header.vue @@ -132,42 +132,25 @@ function isActive(path: string) { display: flex; align-items: center; cursor: pointer; - color: #000; + color: #9aa0a6; outline: none; margin-left: 36px; transition: color 0.3s ease; position: relative; &:hover { - color: #0f6fec !important; + color: #2f2f2f !important; } &:first-child { margin-left: 0px; } &.active { - color: #0f6fec !important; - } + color: #2f2f2f !important; - &::after { - content: ''; - position: absolute; - bottom: 0px; - bottom: -8px; - left: 50%; - width: 0; - height: 2px; - background-color: #0f6fec; - transition: all 0.3s ease; - transform: translateX(-50%); - } - - &:hover::after { - width: 100%; - } - - &.active::after { - width: 100%; + .menu-item-name { + font-weight: 500; + } } .menu-item-name { diff --git a/code/link56/link56-frontend-new/src/layout/index.vue b/code/link56/link56-frontend-new/src/layout/index.vue index 906b2888..e9c105e8 100644 --- a/code/link56/link56-frontend-new/src/layout/index.vue +++ b/code/link56/link56-frontend-new/src/layout/index.vue @@ -8,9 +8,9 @@ import Header from './components/header.vue'
-