diff --git a/client-api/src/main/java/org/jiayunet/controller/JobController.java b/client-api/src/main/java/org/jiayunet/controller/JobController.java index fa1864b..92f6e4e 100644 --- a/client-api/src/main/java/org/jiayunet/controller/JobController.java +++ b/client-api/src/main/java/org/jiayunet/controller/JobController.java @@ -9,6 +9,8 @@ import org.jiayunet.pojo.param.job.JobApplyParam; import org.jiayunet.pojo.param.job.JobApplyQueryParam; import org.jiayunet.pojo.param.job.JobDislikeParam; import org.jiayunet.pojo.param.job.JobQueryParam; +import org.jiayunet.pojo.vo.JobApplyCountVo; +import org.jiayunet.pojo.vo.JobFavoriteCountVo; import org.jiayunet.service.JobService; import org.jiayunet.tool.UserSecurityTool; import org.springframework.validation.annotation.Validated; @@ -99,4 +101,22 @@ public class JobController { Long userId = UserSecurityTool.getUserId(); jobService.applyJob(param.getJobId(), param.getStatus(), userId); } + + /** + * 收藏统计 + */ + @GetMapping("/favorite/count") + public JobFavoriteCountVo getFavoriteCount() { + Long userId = UserSecurityTool.getUserId(); + return jobService.getFavoriteCount(userId); + } + + /** + * 投递统计 + */ + @GetMapping("/apply/count") + public JobApplyCountVo getApplyCount() { + Long userId = UserSecurityTool.getUserId(); + return jobService.getApplyCount(userId); + } } diff --git a/client-api/src/main/java/org/jiayunet/pojo/vo/JobApplyCountVo.java b/client-api/src/main/java/org/jiayunet/pojo/vo/JobApplyCountVo.java new file mode 100644 index 0000000..a7a4dcb --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/pojo/vo/JobApplyCountVo.java @@ -0,0 +1,30 @@ +package org.jiayunet.pojo.vo; + +import lombok.Data; + +/** + * 投递统计结果 + * + * @author zk + */ +@Data +public class JobApplyCountVo { + + /** 投递总数 */ + private Long totalCount; + + /** 已投递数(status=0) */ + private Long appliedCount; + + /** 面试中数(status=1) */ + private Long interviewingCount; + + /** 有Offer数(status=2) */ + private Long offerCount; + + /** 未通过数(status=3) */ + private Long rejectedCount; + + /** 已结束数(status=4) */ + private Long closedCount; +} diff --git a/client-api/src/main/java/org/jiayunet/pojo/vo/JobFavoriteCountVo.java b/client-api/src/main/java/org/jiayunet/pojo/vo/JobFavoriteCountVo.java new file mode 100644 index 0000000..2549ac1 --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/pojo/vo/JobFavoriteCountVo.java @@ -0,0 +1,25 @@ +package org.jiayunet.pojo.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 收藏统计结果 + * + * @author zk + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JobFavoriteCountVo { + + /** 收藏总数 */ + private Long totalCount; + + /** 有效收藏数(岗位status=0) */ + private Long validCount; + + /** 失效收藏数(岗位status!=0或已删除) */ + private Long invalidCount; +} diff --git a/client-api/src/main/java/org/jiayunet/service/JobService.java b/client-api/src/main/java/org/jiayunet/service/JobService.java index a4052be..bc4a4f6 100644 --- a/client-api/src/main/java/org/jiayunet/service/JobService.java +++ b/client-api/src/main/java/org/jiayunet/service/JobService.java @@ -12,6 +12,8 @@ import org.jiayunet.pojo.dto.job.JobMatchScoreDto; import org.jiayunet.pojo.param.job.JobApplyQueryParam; import org.jiayunet.pojo.param.job.JobQueryParam; import org.jiayunet.pojo.po.*; +import org.jiayunet.pojo.vo.JobApplyCountVo; +import org.jiayunet.pojo.vo.JobFavoriteCountVo; import org.jiayunet.pojo.vo.JobListItemVo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -461,4 +463,51 @@ public class JobService { userJobApplicationMapper.insert(application); } } + + /** + * 收藏统计 + *
方法逻辑流程:
+ *1. 查询收藏总数
+ *2. 查询有效收藏数(JOIN岗位表,status=0)
+ *3. 计算失效收藏数
+ */ + public JobFavoriteCountVo getFavoriteCount(Long userId) { + // 1. 查询收藏总数 + Long totalCount = userJobFavoriteMapper.selectCount(new LambdaQueryWrapper方法逻辑流程:
+ *1. 查询所有投递记录
+ *2. 按状态分组统计
+ */ + public JobApplyCountVo getApplyCount(Long userId) { + // 1. 查询所有投递记录 + List