From d7f8a56a5319653687a71cda22144c8686cfb5f7 Mon Sep 17 00:00:00 2001 From: TIAN <2013126141@qq.com> Date: Thu, 15 May 2025 00:13:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=A6=96=E9=A1=B5=20?= =?UTF-8?q?&=20=E8=AE=BA=E5=9D=9B=20API=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 8196 bytes src/.DS_Store | Bin 0 -> 6148 bytes .../controller/ChartController.java | 365 +++++++++++++++++- .../controller/PostController.java | 59 +++ .../controller/UserController.java | 17 + .../springbootinit/service/PostService.java | 11 + .../service/impl/PostServiceImpl.java | 56 +++ src/main/resources/application-prod.yml | 6 +- src/main/resources/application-test.yml | 6 +- src/main/resources/application.yml | 6 +- src/main/resources/mapper/ChartMapper.xml | 1 + .../resources/mapper/PostFavourMapper.xml | 1 + src/main/resources/mapper/PostMapper.xml | 1 + src/test/.DS_Store | Bin 0 -> 6148 bytes 14 files changed, 517 insertions(+), 12 deletions(-) create mode 100644 .DS_Store create mode 100644 src/.DS_Store create mode 100644 src/test/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f5b639300c06cfd176318cff1c453ed071e0e68c GIT binary patch literal 8196 zcmeHM&1(}u6n~SZ&89`kp_Nh)7Q6_?nzXf2dWkVTR1l#NJ!q{-Hm1?dZknWx5DM|6 z=*7RF^dflEOHuIBg9kqjf`@w4lj5NV4?QS|zWHb}vzvO6TCp>*^Ct6tZ{C~Vyv$@a z06>z9Rvcgu01SMnjPzmEp-?@2d?g@yj-e!I4|XA*&bg(s52-se1DXNNfM!55pc(jA z7{D`|7GsBVpKEok8PE*uO9trvVB$k%LdYhUZ0o>^T>(%Av6~faM`#13DP%&(CYPwe zLbxePZc4-zgK%@~Hw7*sWRpv74n$l&i119r4TUi8IKIi?KoVT)S~H*-@H0T~?m-xa z0u-Sp-`~l`(SBK1a#N|S?Pjshc>d$thr91zoL2SLZ}sK*_Pc>VeH~4q8~ql+f;?no z&k(vgp=xE{FIU4utK7F_Uvk^tJ0oQOV0@(h>AXv@1diez;ESx2eLuBwYh&}Rc{5wt zb0@vxmv3%CoO1?hkeRmKoZyshTa?e?pR8bu#wT#udbKQY&$4B^Sgplk8zj&b?CuE} zhS6utrsv&yx|XReR+E{^W%}uY>)P4vb|!nVn6J-8`p>vdEmL&z6=qPh@(8(dspwd4 zJ?SnwR+ZVNxxxsC!*h|rMq@lS5;aF+vE``Qm>7vg&9Tw(<>jz3aOA|~%-l`8}XM7gFFt4sK!wR^U43q78Y^nmk6Fx+ZMZp|0Y{VGqvWnFV#su^hH770=dsMOy0+ zlrfePqHkesd(bor86Achn8Gnqa1JHSV$b+29@(M`s<7Z27c-6=l%f!*|0LhUY~*YM zayy1x3XPm=Z$E$CTH^akOWWR4`l^l4$#*Ohg;vfpAgeg&_NbmLqxcHs{445X9#KlH zy|3uaOxVk@-uZqbv1PZSK|A?d;nym$4n3i<_R#$Y<0@e8*VNc(?kKS-*gemU(RkF1 zpNjwCUZl)PX5E-v8}RZYbN}i5p$98GPn0p_71#+QuY)mN_N{{_bEtkdOBWw}kY?G` z&hP(sGXy=hWrS3 literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c8d52009d499fefbbefb1cf14626a00a748414f4 GIT binary patch literal 6148 zcmeHKy-veG47MRd1WP3r*zOf7v9Y98c!ExBP=W|jL#npynRy8|Mkd%9cmN)W&u0TU z5iueJwsiOT{Buq|DR(gu@${w|6OD){#}H&u21Lw*t}P1|C(9m-%kk{IZI%O@{8p1Z zdqxeN(G^`M&%e{2^nFcRmh(kBhb_OYtEa>IWs>@fHUyHfSeBj zL$EOH6ywo>DYgK>4CW}%rI(PLU|1M-its>KQ-PYw)?%=x!yYWIFzggHo!FWWw#x6# z3&-l%Kg4k2LeXbuz!^vx*w*Dp?*C(aGJ{Qin&K;Gz!~^s3~*M?$|+vT?$$4_CwFbY uIK>c=xK0!Z^yDW13pq#jqf`Asbi@^goucd__LvUzAAv}SPtL#(Fz^N-szv4i literal 0 HcmV?d00001 diff --git a/src/main/java/com/yupi/springbootinit/controller/ChartController.java b/src/main/java/com/yupi/springbootinit/controller/ChartController.java index 93a407b..03220db 100644 --- a/src/main/java/com/yupi/springbootinit/controller/ChartController.java +++ b/src/main/java/com/yupi/springbootinit/controller/ChartController.java @@ -36,14 +36,13 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ThreadPoolExecutor; /** - * 帖子接口 + * 图表接口 * * @author 程序员鱼皮 * @from 编程导航知识星球 @@ -70,6 +69,366 @@ public class ChartController { @Resource private ThreadPoolExecutor threadPoolExecutor; + /** + * 获取本周每天图表生成成功数 + * + * @param request + * @return + */ + @GetMapping("/week/success/count") + public BaseResponse> getWeekChartSuccessCount(HttpServletRequest request) { + // 获取本周的开始日期(周一)和结束日期(周日) + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + Date weekStart = calendar.getTime(); + + calendar.add(Calendar.DATE, 6); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date weekEnd = calendar.getTime(); + + // 创建存储每天成功数量的列表 + List dailySuccessCounts = new ArrayList<>(); + + // 查询本周每天的成功图表数量 + calendar.setTime(weekStart); + for (int i = 0; i < 7; i++) { + Date dayStart = calendar.getTime(); + + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date dayEnd = calendar.getTime(); + + // 查询当天成功的图表数量 + QueryWrapper successQuery = new QueryWrapper<>(); + successQuery.in("status", Arrays.asList("succeed", "success")); + successQuery.between("createTime", dayStart, dayEnd); + successQuery.eq("isDelete", false); + long successCount = chartService.count(successQuery); + + dailySuccessCounts.add((int) successCount); + + // 移动到下一天 + calendar.add(Calendar.DATE, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + } + + return ResultUtils.success(dailySuccessCounts); + } + + /** + * 获取当前用户本周每天图表生成成功数 + * + * @param request + * @return + */ + @GetMapping("/my/week/success/count") + public BaseResponse> getMyWeekChartSuccessCount(HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + + // 获取本周的开始日期(周一)和结束日期(周日) + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + Date weekStart = calendar.getTime(); + + calendar.add(Calendar.DATE, 6); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date weekEnd = calendar.getTime(); + + // 创建存储每天成功数量的列表 + List dailySuccessCounts = new ArrayList<>(); + + // 查询本周每天的成功图表数量 + calendar.setTime(weekStart); + for (int i = 0; i < 7; i++) { + Date dayStart = calendar.getTime(); + + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date dayEnd = calendar.getTime(); + + // 查询当天成功的图表数量 + QueryWrapper successQuery = new QueryWrapper<>(); + successQuery.in("status", Arrays.asList("succeed", "success")); + successQuery.between("createTime", dayStart, dayEnd); + successQuery.eq("userId", loginUser.getId()); + successQuery.eq("isDelete", false); + long successCount = chartService.count(successQuery); + + dailySuccessCounts.add((int) successCount); + + // 移动到下一天 + calendar.add(Calendar.DATE, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + } + + return ResultUtils.success(dailySuccessCounts); + } + + + + /** + * 获取今日图表生成个数 + * + * @param request + * @return + */ + @GetMapping("/today/count") + public BaseResponse getTodayChartCount(HttpServletRequest request) { + // 获取今天的开始时间(00:00:00)和结束时间(23:59:59) + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + Date todayStart = calendar.getTime(); + + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date todayEnd = calendar.getTime(); + + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.between("createTime", todayStart, todayEnd); + queryWrapper.eq("isDelete", false); + + // 查询今日创建的图表数量 + long count = chartService.count(queryWrapper); + return ResultUtils.success(count); + } + + /** + * 获取当前用户今日图表生成个数 + * + * @param request + * @return + */ + @GetMapping("/my/today/count") + public BaseResponse getMyTodayChartCount(HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + + // 获取今天的开始时间(00:00:00)和结束时间(23:59:59) + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + Date todayStart = calendar.getTime(); + + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + Date todayEnd = calendar.getTime(); + + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.between("createTime", todayStart, todayEnd); + queryWrapper.eq("userId", loginUser.getId()); + queryWrapper.eq("isDelete", false); + + // 查询当前用户今日创建的图表数量 + long count = chartService.count(queryWrapper); + return ResultUtils.success(count); + } + + + /** + * 获取图表生成的成功率 + * + * @param request + * @return + */ + @GetMapping("/gen/success-rate") + // @AuthCheck(mustRole = UserConstant.ADMIN_ROLE) + public BaseResponse getChartGenerationSuccessRate(HttpServletRequest request) { + // 只允许管理员访问 + + // 查询所有已完成的任务(状态为succeed或failed) + QueryWrapper completedQuery = new QueryWrapper<>(); + completedQuery.in("status", Arrays.asList("succeed", "failed", "success")); + completedQuery.eq("isDelete", false); + long completedCount = chartService.count(completedQuery); + + if (completedCount == 0) { + // 如果没有完成的任务,返回0或null + return ResultUtils.success(0.0); + } + + // 查询成功的任务 + QueryWrapper successQuery = new QueryWrapper<>(); + successQuery.in("status", Arrays.asList("succeed", "success")); + successQuery.eq("isDelete", false); + long successCount = chartService.count(successQuery); + + // 计算成功率 + double successRate = (double) successCount / completedCount; + + return ResultUtils.success(successRate); + } + + /** + * 获取当前用户图表生成的成功率 + * + * @param request + * @return + */ + @GetMapping("/my/gen/success-rate") + public BaseResponse getMyChartGenerationSuccessRate(HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + + // 查询当前用户所有已完成的任务 + QueryWrapper completedQuery = new QueryWrapper<>(); + completedQuery.in("status", Arrays.asList("succeed", "failed", "success")); + completedQuery.eq("userId", loginUser.getId()); + completedQuery.eq("isDelete", false); + long completedCount = chartService.count(completedQuery); + + if (completedCount == 0) { + // 如果没有完成的任务,返回0 + return ResultUtils.success(0.0); + } + + // 查询当前用户成功的任务 + QueryWrapper successQuery = new QueryWrapper<>(); + successQuery.in("status", Arrays.asList("succeed", "success")); + successQuery.eq("userId", loginUser.getId()); + successQuery.eq("isDelete", false); + long successCount = chartService.count(successQuery); + + // 计算成功率 + double successRate = (double) successCount / completedCount; + + return ResultUtils.success(successRate); + } + + /** + * 获取详细的图表生成统计信息 + * + * @param request + * @return + */ + @GetMapping("/gen/stats") + //@AuthCheck(mustRole = UserConstant.ADMIN_ROLE) + public BaseResponse> getChartGenerationStats(HttpServletRequest request) { + // 只允许管理员访问 + + Map statsMap = new HashMap<>(); + + // 查询总任务数 + QueryWrapper totalQuery = new QueryWrapper<>(); + totalQuery.eq("isDelete", false); + long totalCount = chartService.count(totalQuery); + statsMap.put("totalCount", totalCount); + + // 查询等待中的任务数 + QueryWrapper waitingQuery = new QueryWrapper<>(); + waitingQuery.eq("status", "wait"); + waitingQuery.eq("isDelete", false); + long waitingCount = chartService.count(waitingQuery); + statsMap.put("waitingCount", waitingCount); + + // 查询运行中的任务数 + QueryWrapper runningQuery = new QueryWrapper<>(); + runningQuery.eq("status", "running"); + runningQuery.eq("isDelete", false); + long runningCount = chartService.count(runningQuery); + statsMap.put("runningCount", runningCount); + + // 查询成功的任务数 + QueryWrapper successQuery = new QueryWrapper<>(); + successQuery.in("status", Arrays.asList("succeed", "success")); + successQuery.eq("isDelete", false); + long successCount = chartService.count(successQuery); + statsMap.put("successCount", successCount); + + // 查询失败的任务数 + QueryWrapper failedQuery = new QueryWrapper<>(); + failedQuery.eq("status", "failed"); + failedQuery.eq("isDelete", false); + long failedCount = chartService.count(failedQuery); + statsMap.put("failedCount", failedCount); + + // 计算成功率 + double successRate = totalCount > 0 ? (double) successCount / totalCount : 0; + statsMap.put("successRate", successRate); + + // 计算已完成任务的成功率 + long completedCount = successCount + failedCount; + double completedSuccessRate = completedCount > 0 ? (double) successCount / completedCount : 0; + statsMap.put("completedSuccessRate", completedSuccessRate); + + return ResultUtils.success(statsMap); + } + + + /** + * 获取图表总数 + * + * @param request + * @return + */ + @GetMapping("/count") + public BaseResponse countCharts(HttpServletRequest request) { + // 只允许管理员访问 + // @AuthCheck(mustRole = UserConstant.ADMIN_ROLE) + + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("isDelete", false); + + // 如果只需要查询当前用户的图表总数,可以取消注释以下代码 + // User loginUser = userService.getLoginUser(request); + // queryWrapper.eq("userId", loginUser.getId()); + + long count = chartService.count(queryWrapper); + return ResultUtils.success(count); + } + + /** + * 获取当前用户的图表总数 + * + * @param request + * @return + */ + @GetMapping("/my/count") + public BaseResponse countMyCharts(HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("userId", loginUser.getId()); + queryWrapper.eq("isDelete", false); + + long count = chartService.count(queryWrapper); + return ResultUtils.success(count); + } + + /** * 创建 * diff --git a/src/main/java/com/yupi/springbootinit/controller/PostController.java b/src/main/java/com/yupi/springbootinit/controller/PostController.java index 676f173..44b5fff 100644 --- a/src/main/java/com/yupi/springbootinit/controller/PostController.java +++ b/src/main/java/com/yupi/springbootinit/controller/PostController.java @@ -1,4 +1,5 @@ package com.yupi.springbootinit.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -49,6 +50,62 @@ public class PostController { // region 增删改查 + @GetMapping("/list/all") + public BaseResponse> listAllPosts(HttpServletRequest request) { + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("isDelete", false); + queryWrapper.orderByDesc("createTime"); // 按创建时间降序排序 + queryWrapper.last("limit 100"); // 限制最多返回100条记录 + + // 查询所有帖子 + List postList = postService.list(queryWrapper); + + // 将帖子列表转换为 PostVO 列表 + List postVOList = postService.getPostVOList(postList, request); + + return ResultUtils.success(postVOList); + } + + + /** + * 获取帖子总数 + * + * @param request + * @return + */ + @GetMapping("/count") + public BaseResponse countPosts(HttpServletRequest request) { + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("isDelete", false); + + // 查询帖子总数 + long count = postService.count(queryWrapper); + return ResultUtils.success(count); + } + + /** + * 获取当前用户的帖子总数 + * + * @param request + * @return + */ + @GetMapping("/my/count") + public BaseResponse countMyPosts(HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + + // 创建查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("userId", loginUser.getId()); + queryWrapper.eq("isDelete", false); + + // 查询当前用户的帖子总数 + long count = postService.count(queryWrapper); + return ResultUtils.success(count); + } + + /** * 创建 * @@ -260,4 +317,6 @@ public class PostController { return ResultUtils.success(result); } + + } diff --git a/src/main/java/com/yupi/springbootinit/controller/UserController.java b/src/main/java/com/yupi/springbootinit/controller/UserController.java index d13d448..556d1d1 100644 --- a/src/main/java/com/yupi/springbootinit/controller/UserController.java +++ b/src/main/java/com/yupi/springbootinit/controller/UserController.java @@ -290,4 +290,21 @@ public class UserController { ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR); return ResultUtils.success(true); } + + /** + * 获取用户总数 + * + * @param request + * @return + */ + @GetMapping("/count") + //@AuthCheck(mustRole = UserConstant.ADMIN_ROLE) + public BaseResponse countUsers(HttpServletRequest request) { + // 默认只有管理员可以查看用户总数 + long count = userService.count(); + return ResultUtils.success(count); + } + + + } diff --git a/src/main/java/com/yupi/springbootinit/service/PostService.java b/src/main/java/com/yupi/springbootinit/service/PostService.java index d938f0b..f9483c3 100644 --- a/src/main/java/com/yupi/springbootinit/service/PostService.java +++ b/src/main/java/com/yupi/springbootinit/service/PostService.java @@ -7,6 +7,7 @@ import com.yupi.springbootinit.model.dto.post.PostQueryRequest; import com.yupi.springbootinit.model.entity.Post; import com.yupi.springbootinit.model.vo.PostVO; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 帖子服务 @@ -57,4 +58,14 @@ public interface PostService extends IService { * @return */ Page getPostVOPage(Page postPage, HttpServletRequest request); + + /** + * 获取帖子封装列表 + * + * @param postList + * @param request + * @return + */ + List getPostVOList(List postList, HttpServletRequest request); + } diff --git a/src/main/java/com/yupi/springbootinit/service/impl/PostServiceImpl.java b/src/main/java/com/yupi/springbootinit/service/impl/PostServiceImpl.java index 791c8c4..5dc9c81 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/PostServiceImpl.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/PostServiceImpl.java @@ -68,6 +68,62 @@ public class PostServiceImpl extends ServiceImpl implements Po @Resource private ElasticsearchRestTemplate elasticsearchRestTemplate; + + /** + * 获取帖子封装列表 + * + * @param postList + * @param request + * @return + */ + @Override + public List getPostVOList(List postList, HttpServletRequest request) { + if (CollUtil.isEmpty(postList)) { + return new ArrayList<>(); + } + + // 1. 关联查询用户信息 + Set userIdSet = postList.stream().map(Post::getUserId).collect(Collectors.toSet()); + Map> userIdUserListMap = userService.listByIds(userIdSet).stream() + .collect(Collectors.groupingBy(User::getId)); + + // 2. 已登录,获取用户点赞、收藏状态 + Map postIdHasThumbMap = new HashMap<>(); + Map postIdHasFavourMap = new HashMap<>(); + User loginUser = userService.getLoginUserPermitNull(request); + if (loginUser != null) { + Set postIdSet = postList.stream().map(Post::getId).collect(Collectors.toSet()); + // 获取点赞 + QueryWrapper postThumbQueryWrapper = new QueryWrapper<>(); + postThumbQueryWrapper.in("postId", postIdSet); + postThumbQueryWrapper.eq("userId", loginUser.getId()); + List postPostThumbList = postThumbMapper.selectList(postThumbQueryWrapper); + postPostThumbList.forEach(postPostThumb -> postIdHasThumbMap.put(postPostThumb.getPostId(), true)); + + // 获取收藏 + QueryWrapper postFavourQueryWrapper = new QueryWrapper<>(); + postFavourQueryWrapper.in("postId", postIdSet); + postFavourQueryWrapper.eq("userId", loginUser.getId()); + List postFavourList = postFavourMapper.selectList(postFavourQueryWrapper); + postFavourList.forEach(postFavour -> postIdHasFavourMap.put(postFavour.getPostId(), true)); + } + + // 3. 填充信息 + return postList.stream().map(post -> { + PostVO postVO = PostVO.objToVo(post); + Long userId = post.getUserId(); + User user = null; + if (userIdUserListMap.containsKey(userId)) { + user = userIdUserListMap.get(userId).get(0); + } + postVO.setUser(userService.getUserVO(user)); + postVO.setHasThumb(postIdHasThumbMap.getOrDefault(post.getId(), false)); + postVO.setHasFavour(postIdHasFavourMap.getOrDefault(post.getId(), false)); + return postVO; + }).collect(Collectors.toList()); + } + + @Override public void validPost(Post post, boolean add) { if (post == null) { diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index aaba71f..fdc5e18 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -8,9 +8,9 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/hebi - username: root - password: tianyinmiao + url: jdbc:mysql://110.40.62.21:3306/hebi + username: hebi + password: 123456 # Redis 配置 # todo 需替换配置 redis: diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 3f35c81..dba0a37 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -8,9 +8,9 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/hebi - username: root - password: tianyinmiao + url: jdbc:mysql://110.40.62.21:3306/hebi + username: hebi + password: 123456 # Redis 配置 # todo 需替换配置 redis: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5809560..54b4641 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -21,9 +21,9 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/hebi - username: root - password: tianyinmiao + url: jdbc:mysql://110.40.62.21:3306/hebi + username: hebi + password: 123456 # Redis 配置 # todo 需替换配置,然后取消注释 redis: diff --git a/src/main/resources/mapper/ChartMapper.xml b/src/main/resources/mapper/ChartMapper.xml index 228ed32..da294ec 100644 --- a/src/main/resources/mapper/ChartMapper.xml +++ b/src/main/resources/mapper/ChartMapper.xml @@ -23,3 +23,4 @@ userId,createTime,updateTime,isDelete + \ No newline at end of file diff --git a/src/main/resources/mapper/PostFavourMapper.xml b/src/main/resources/mapper/PostFavourMapper.xml index b7985c9..3748104 100644 --- a/src/main/resources/mapper/PostFavourMapper.xml +++ b/src/main/resources/mapper/PostFavourMapper.xml @@ -27,3 +27,4 @@ on p.id = pf.postId ${ew.customSqlSegment} + \ No newline at end of file diff --git a/src/main/resources/mapper/PostMapper.xml b/src/main/resources/mapper/PostMapper.xml index d57b866..1900517 100644 --- a/src/main/resources/mapper/PostMapper.xml +++ b/src/main/resources/mapper/PostMapper.xml @@ -31,3 +31,4 @@ where updateTime >= #{minUpdateTime} + \ No newline at end of file diff --git a/src/test/.DS_Store b/src/test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..bfeab2ce7ec9afcb8a706406d2de3980c6d8b9ae GIT binary patch literal 6148 zcmeHKJ5Iwu5S;}VmPnD3a*seH4zNV#1i1hSmWWUyr-6dXUCu$p3Ah0V5E=1-cQo|MHsLRweuRgJ}h*ZF&_t-rwR`=chFsVEpP;MoU zvX*CAkNLB=VQ$|w&1Tna5UXEb+V|`2$IUq3{+K^(htGBeDvb(I0V+TRsKCEe06kl+ zzHsD91*iZO_*Ou_4;ijl0((dMbYQU&0I0w5X1KOl0+=-bEP=fvBCzCCpi@(f7|H2~ z=cp@zy`$45*~z$1oSb4pNp?Eo*~%pqN3K+W3XByv_w8K!|1JE){68jfM+K