|
|
@@ -70,21 +70,42 @@ public class JobApplicationController extends JeecgController<JobApplication, IJ
|
|
|
|
|
|
/**
|
|
|
* 个人端 - 投递简历
|
|
|
- * 检查重复投递,设置初始状态和投递时间
|
|
|
+ * 检查重复投递,设置初始状态和投递时间。
|
|
|
+ * 已取消的投递支持重新投递(更新原记录为待查看状态)。
|
|
|
*/
|
|
|
@AutoLog(value = "投递简历")
|
|
|
@Operation(summary = "投递简历")
|
|
|
@PostMapping(value = "/apply")
|
|
|
public Result<?> apply(@RequestBody JobApplication application) {
|
|
|
- // 检查是否已投递过该岗位(排除已取消的记录)
|
|
|
- QueryWrapper<JobApplication> checkWrapper = new QueryWrapper<>();
|
|
|
- checkWrapper.eq("personal_id", application.getPersonalId())
|
|
|
+ // 检查是否存在未取消的投递记录
|
|
|
+ QueryWrapper<JobApplication> activeQuery = new QueryWrapper<>();
|
|
|
+ activeQuery.eq("personal_id", application.getPersonalId())
|
|
|
.eq("post_id", application.getPostId())
|
|
|
.ne("status", "4");
|
|
|
- Long count = jobApplicationService.count(checkWrapper);
|
|
|
- if (count > 0) {
|
|
|
+ Long activeCount = jobApplicationService.count(activeQuery);
|
|
|
+ if (activeCount > 0) {
|
|
|
return Result.error("您已投递过该岗位,请勿重复投递");
|
|
|
}
|
|
|
+
|
|
|
+ // 检查是否存在已取消的投递记录(status=4),有则复用该记录
|
|
|
+ QueryWrapper<JobApplication> cancelledQuery = new QueryWrapper<>();
|
|
|
+ cancelledQuery.eq("personal_id", application.getPersonalId())
|
|
|
+ .eq("post_id", application.getPostId())
|
|
|
+ .eq("status", "4");
|
|
|
+ JobApplication cancelledRecord = jobApplicationService.getOne(cancelledQuery);
|
|
|
+ if (cancelledRecord != null) {
|
|
|
+ // 复用已取消的记录,更新状态和投递时间
|
|
|
+ cancelledRecord.setStatus("0"); // 待查看
|
|
|
+ cancelledRecord.setApplyTime(new Date());
|
|
|
+ // 更新前端可能传入的备注等字段
|
|
|
+ if (application.getRemark() != null) {
|
|
|
+ cancelledRecord.setRemark(application.getRemark());
|
|
|
+ }
|
|
|
+ jobApplicationService.updateById(cancelledRecord);
|
|
|
+ return Result.OK("投递成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 全新投递
|
|
|
application.setApplyTime(new Date());
|
|
|
application.setStatus("0"); // 待查看
|
|
|
jobApplicationService.save(application);
|
|
|
@@ -93,22 +114,18 @@ public class JobApplicationController extends JeecgController<JobApplication, IJ
|
|
|
|
|
|
/**
|
|
|
* 个人端 - 查询我的投递记录
|
|
|
+ * 支持按岗位名称模糊查询(关联 post_info 表获取当前岗位名称)
|
|
|
*/
|
|
|
@Operation(summary = "我的投递记录")
|
|
|
@GetMapping(value = "/myApplications")
|
|
|
public Result<IPage<JobApplication>> myApplications(
|
|
|
@RequestParam(name = "personalId", required = true) String personalId,
|
|
|
@RequestParam(name = "status", required = false) String status,
|
|
|
+ @RequestParam(name = "postName", required = false) String postName,
|
|
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
|
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
|
|
Page<JobApplication> page = new Page<>(pageNo, pageSize);
|
|
|
- QueryWrapper<JobApplication> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("personal_id", personalId);
|
|
|
- if (status != null && !status.isEmpty()) {
|
|
|
- queryWrapper.eq("status", status);
|
|
|
- }
|
|
|
- queryWrapper.orderByDesc("apply_time");
|
|
|
- IPage<JobApplication> pageList = jobApplicationService.page(page, queryWrapper);
|
|
|
+ IPage<JobApplication> pageList = jobApplicationService.queryMyApplications(page, personalId, status, postName);
|
|
|
return Result.OK(pageList);
|
|
|
}
|
|
|
|
|
|
@@ -271,6 +288,27 @@ public class JobApplicationController extends JeecgController<JobApplication, IJ
|
|
|
return Result.OK("恢复成功");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 个人端 - 查询我的投递数量
|
|
|
+ *
|
|
|
+ * @param personalId 人员ID
|
|
|
+ * @param status 可选,按状态过滤
|
|
|
+ * @return 投递数量
|
|
|
+ */
|
|
|
+ @Operation(summary = "我的投递数量")
|
|
|
+ @GetMapping(value = "/countApplications")
|
|
|
+ public Result<Long> countApplications(
|
|
|
+ @RequestParam(name = "personalId", required = true) String personalId,
|
|
|
+ @RequestParam(name = "status", required = false) String status) {
|
|
|
+ QueryWrapper<JobApplication> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("personal_id", personalId);
|
|
|
+ if (status != null && !status.isEmpty()) {
|
|
|
+ queryWrapper.eq("status", status);
|
|
|
+ }
|
|
|
+ long count = jobApplicationService.count(queryWrapper);
|
|
|
+ return Result.OK(count);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询投递详情
|
|
|
*/
|