Files
senmesh-zc/src/main/java/com/newyetai/recruit/position/controller/PositionRegistrationController.java
ran.shang 7e38b8d971 init
2025-06-11 09:42:13 +08:00

194 lines
7.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.newyetai.recruit.position.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.newyetai.common.AlitaResult;
import com.newyetai.common.exception.BusinessException;
import com.newyetai.tkmybatis.pojo.Page;
import com.newyetai.recruit.position.dto.*;
import com.newyetai.recruit.position.service.PositionRegistrationService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 岗位报名信息表
*
* @author guixinman
* @since 1.0.0 2024-04-15
*/
@Api(tags = "岗位报名信息表")
@RestController
@RequestMapping("/position_registration")
@Slf4j
public class PositionRegistrationController {
@Autowired
private PositionRegistrationService positionRegistrationService;
@PostMapping("/create")
@ApiOperation("岗位报名信息表-创建")
public AlitaResult<String> create(@RequestBody @Validated PositionRegistrationOperatorDTO operatorDTO) {
if (CollectionUtils.isEmpty(operatorDTO.getUserIds())) {
throw new BusinessException("缺失参数");
}
int successrows = operatorDTO.getUserIds().size();
for (Long userId : operatorDTO.getUserIds()) {
try {
operatorDTO.setUserId(userId);
positionRegistrationService.create(operatorDTO);
} catch (Exception e) {
successrows = successrows - 1;
log.error(String.format("用户id:%s 操作加入招聘失败,失败原因:%s",userId,e.getMessage()));
}
}
return AlitaResult.success(String.format("成功数: %s条,失败数: %s条", successrows, operatorDTO.getUserIds().size() - successrows));
}
@PutMapping("/modify")
@ApiOperation("岗位报名信息表-修改")
public AlitaResult<PositionRegistrationDTO> modify(@RequestBody PositionRegistrationOperatorDTO operatorDTO) {
return AlitaResult.success(positionRegistrationService.modify(operatorDTO));
}
@DeleteMapping("/{id}")
@ApiOperation("岗位报名信息表-删除")
public AlitaResult<PositionRegistrationDTO> delete(@PathVariable("id") Long id) {
return AlitaResult.success(positionRegistrationService.delete(id));
}
@GetMapping("/{id}")
@ApiOperation("岗位报名信息表-查询单个")
public AlitaResult<PositionRegistrationDTO> findById(@PathVariable("id") Long id, @RequestParam("childrenOrgAll") Boolean childrenOrgAll) {
return AlitaResult.success(positionRegistrationService.findByIdAndChildrenOrgAll(id,childrenOrgAll));
}
@GetMapping("/list")
@ApiOperation("岗位报名信息表-列表查询")
public AlitaResult<List<PositionRegistrationDTO>> list(PositionRegistrationPageQueryDTO queryDTO) {
return AlitaResult.success(positionRegistrationService.list(queryDTO));
}
@GetMapping("/page")
@ApiOperation("岗位报名信息表-分页查询")
public AlitaResult<Page<PositionRegistrationDTO>> page(PositionRegistrationPageQueryDTO queryDTO) {
positionRegistrationService.page(queryDTO);
return AlitaResult.success(queryDTO.getPageResult());
}
/**
* @description: 用户端报名岗位
* @return:
* @author: guixinman
* @param:
*/
@PostMapping("/user_create")
public AlitaResult<Void> userCreate(@RequestBody @Validated UserPositionRegistrationDTO dto) {
positionRegistrationService.userCreate(dto);
return AlitaResult.success();
}
@PostMapping("/invite")
@ApiOperation("岗位报名信息表-邀约面试")
public AlitaResult<String> invite(@RequestBody PositionRegistrationOperatorDTO operatorDTO) {
if (CollectionUtils.isEmpty(operatorDTO.getIds())) {
throw new BusinessException("缺失参数");
}
int successrows = operatorDTO.getIds().size();
for (Long id : operatorDTO.getIds()) {
try {
operatorDTO.setId(id);
positionRegistrationService.invite(operatorDTO);
} catch (Exception e) {
successrows = successrows - 1;
log.error(String.format("邀约面试id:%s 操作邀约面试,失败原因:%s",id,e.getMessage()));
}
}
return AlitaResult.success(String.format("成功数: %s条,失败数: %s条", successrows, operatorDTO.getIds().size() - successrows));
}
@PostMapping("/termination")
@ApiOperation("岗位报名信息表-结束招聘")
public AlitaResult<String> termination(@RequestBody PositionRegistrationOperatorDTO operatorDTO) {
if (CollectionUtils.isEmpty(operatorDTO.getIds())) {
throw new BusinessException("缺失参数");
}
int successrows = operatorDTO.getIds().size();
for (Long id : operatorDTO.getIds()) {
try {
operatorDTO.setId(id);
positionRegistrationService.termination(operatorDTO);
} catch (Exception e) {
successrows = successrows - 1;
log.error(String.format("结束招聘id:%s 操作结束招聘,失败原因:%s",id,e.getMessage()));
}
}
return AlitaResult.success(String.format("成功数: %s条,失败数: %s条", successrows, operatorDTO.getIds().size() - successrows));
}
@PostMapping("/fulfillInterview")
@ApiOperation("岗位报名信息表-完成面试")
public AlitaResult<String> fulfillInterview(@RequestBody PositionRegistrationOperatorDTO operatorDTO) {
if (CollectionUtils.isEmpty(operatorDTO.getIds())) {
throw new BusinessException("缺失参数");
}
int successrows = operatorDTO.getIds().size();
for (Long id : operatorDTO.getIds()) {
try {
operatorDTO.setId(id);
positionRegistrationService.fulfillInterview(operatorDTO);
} catch (Exception e) {
successrows = successrows - 1;
log.error(String.format("完成面试id:%s 操作完成面试,失败原因:%s",id,e.getMessage()));
}
}
return AlitaResult.success(String.format("成功数: %s条,失败数: %s条", successrows, operatorDTO.getIds().size() - successrows));
}
@PostMapping("/onTheJob")
@ApiOperation("岗位报名信息表-入职")
public AlitaResult<Void> onTheJob(@RequestBody @Validated OnTheJobDTO dto) {
positionRegistrationService.onTheJob(dto);
return AlitaResult.success();
}
@PostMapping("/resigned")
@ApiOperation("岗位报名信息表-离职")
public AlitaResult<Void> resigned(@RequestBody @Validated ResignedDTO dto) {
positionRegistrationService.resigned(dto);
return AlitaResult.success();
}
@GetMapping("/export")
@ApiOperation("岗位报名信息表-导出")
public void export(PositionRegistrationPageQueryDTO queryDTO) {
positionRegistrationService.export(queryDTO);
}
@GetMapping("/userPage")
@ApiOperation("岗位报名信息表-用户端分页查询")
public AlitaResult<Page<UserPositionRegistrationResDTO>> userPage(UserPositionRegistrationPageQueryDTO queryDTO) {
positionRegistrationService.userPage(queryDTO);
return AlitaResult.success(queryDTO.getPageResult());
}
@GetMapping("/user_cancel")
@ApiOperation("岗位报名信息表-用户端取消报名")
public AlitaResult<Void> cancel(@RequestParam("positionId") Long positionId) {
positionRegistrationService.cancel(positionId);
return AlitaResult.success();
}
@ApiOperation("查看")
@PutMapping("/show")
public AlitaResult<Void> show(@RequestParam("id") Long id){
positionRegistrationService.show(id);
return AlitaResult.success();
}
}