预约面试功能开发

This commit is contained in:
francis-fh
2026-06-24 18:18:55 +08:00
parent a3cd9b0277
commit f51b1a3ce1
14 changed files with 354 additions and 23 deletions

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.InterviewInvitation;
import com.ruoyi.cms.domain.vo.InterviewInvitationVO;
import com.ruoyi.cms.service.InterviewInvitationService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -30,25 +31,35 @@ public class AppInterviewController extends BaseController {
private InterviewInvitationService interviewInvitationService;
/**
* 我的面试邀约列表
* 我的面试邀约列表(带公司名和岗位名)
*/
@ApiOperation("我的面试邀约列表")
@GetMapping("/list")
public TableDataInfo list(){
public TableDataInfo list(@RequestParam(required = false) Long userId,
@RequestParam(required = false) String status){
InterviewInvitation query = new InterviewInvitation();
query.setUserId(SiteSecurityUtils.getUserId());
// 优先用传入的userId否则取当前登录用户
if (userId != null) {
query.setUserId(userId);
} else {
query.setUserId(SiteSecurityUtils.getUserId());
}
if (status != null && !status.isEmpty()) {
query.setStatus(status);
}
startPage();
List<InterviewInvitation> list = interviewInvitationService.getInterviewInvitationList(query);
List<InterviewInvitationVO> list = interviewInvitationService.getInterviewInvitationVOList(query);
return getDataTable(list);
}
/**
* 获取详细信息
* 获取详细信息(带公司名和岗位名)
*/
@ApiOperation("面试邀约详情")
@GetMapping("/{id}")
public AjaxResult getInfo(@PathVariable Long id){
return AjaxResult.success(interviewInvitationService.getInterviewInvitationById(id));
InterviewInvitationVO vo = interviewInvitationService.getInterviewInvitationVOById(id);
return AjaxResult.success(vo);
}
/**
@@ -57,6 +68,13 @@ public class AppInterviewController extends BaseController {
@ApiOperation("更新面试邀约状态")
@PutMapping("/status/{id}")
public AjaxResult updateStatus(@PathVariable Long id, @RequestParam String status){
return toAjax(interviewInvitationService.updateInterviewStatus(id, status));
int rows = interviewInvitationService.updateInterviewStatus(id, status);
if (rows > 0 && "accepted".equals(status)) {
// 接受时返回面试官联系方式,供前端弹窗展示
InterviewInvitation invitation = interviewInvitationService.getInterviewInvitationById(id);
return AjaxResult.success("操作成功",
invitation != null ? invitation.getContactPhone() : null);
}
return toAjax(rows);
}
}