添加收藏相关接口
This commit is contained in:
@@ -41,4 +41,22 @@ public class JobController {
|
|||||||
Long userId = UserSecurityTool.getUserId();
|
Long userId = UserSecurityTool.getUserId();
|
||||||
return jobService.getJobDetail(jobId, userId);
|
return jobService.getJobDetail(jobId, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏岗位
|
||||||
|
*/
|
||||||
|
@PostMapping("/{jobId}/favorite")
|
||||||
|
public void favoriteJob(@PathVariable Long jobId) {
|
||||||
|
Long userId = UserSecurityTool.getUserId();
|
||||||
|
jobService.favoriteJob(jobId, userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏岗位
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{jobId}/favorite")
|
||||||
|
public void unfavoriteJob(@PathVariable Long jobId) {
|
||||||
|
Long userId = UserSecurityTool.getUserId();
|
||||||
|
jobService.unfavoriteJob(jobId, userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,12 +15,13 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位服务
|
* 岗位服务
|
||||||
* <p>主要功能:岗位列表查询、岗位详情查询、匹配度计算</p>
|
* <p>主要功能:岗位列表查询、岗位详情查询、岗位收藏管理、匹配度计算</p>
|
||||||
* <p>依赖服务:JobMatchService(匹配度计算)</p>
|
* <p>依赖服务:JobMatchService(匹配度计算)</p>
|
||||||
* <p>使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_china_regions_code、bg_job_category、bg_industry</p>
|
* <p>使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_china_regions_code、bg_job_category、bg_industry</p>
|
||||||
*
|
*
|
||||||
@@ -261,4 +262,36 @@ public class JobService {
|
|||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏岗位
|
||||||
|
* <p>方法逻辑流程:</p>
|
||||||
|
* <p>1. 检查岗位是否存在</p>
|
||||||
|
* <p>2. 检查是否已收藏(避免重复)</p>
|
||||||
|
* <p>3. 插入收藏记录</p>
|
||||||
|
*/
|
||||||
|
public void favoriteJob(Long jobId, Long userId) {
|
||||||
|
// 1. 检查岗位是否存在
|
||||||
|
Job job = jobMapper.selectOne(new LambdaQueryWrapper<Job>().eq(Job::getId, jobId).eq(Job::getStatus, 0));
|
||||||
|
if (job == null) throw new RuntimeException("岗位不存在或已下架");
|
||||||
|
|
||||||
|
// 2. 检查是否已收藏
|
||||||
|
Long count = userJobFavoriteMapper.selectCount(new LambdaQueryWrapper<UserJobFavorite>().eq(UserJobFavorite::getUserId, userId).eq(UserJobFavorite::getJobId, jobId));
|
||||||
|
if (count > 0) throw new RuntimeException("已收藏该岗位");
|
||||||
|
|
||||||
|
// 3. 插入收藏记录
|
||||||
|
UserJobFavorite favorite = new UserJobFavorite();
|
||||||
|
favorite.setUserId(userId);
|
||||||
|
favorite.setJobId(jobId);
|
||||||
|
favorite.setCreateTime(Instant.now());
|
||||||
|
userJobFavoriteMapper.insert(favorite);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏岗位
|
||||||
|
* <p>方法逻辑流程:</p>
|
||||||
|
* <p>1. 删除收藏记录</p>
|
||||||
|
*/
|
||||||
|
public void unfavoriteJob(Long jobId, Long userId) {
|
||||||
|
userJobFavoriteMapper.delete(new LambdaQueryWrapper<UserJobFavorite>().eq(UserJobFavorite::getUserId, userId).eq(UserJobFavorite::getJobId, jobId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user