194 lines
7.4 KiB
Java
194 lines
7.4 KiB
Java
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();
|
||
}
|
||
} |