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 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 modify(@RequestBody PositionRegistrationOperatorDTO operatorDTO) { return AlitaResult.success(positionRegistrationService.modify(operatorDTO)); } @DeleteMapping("/{id}") @ApiOperation("岗位报名信息表-删除") public AlitaResult delete(@PathVariable("id") Long id) { return AlitaResult.success(positionRegistrationService.delete(id)); } @GetMapping("/{id}") @ApiOperation("岗位报名信息表-查询单个") public AlitaResult findById(@PathVariable("id") Long id, @RequestParam("childrenOrgAll") Boolean childrenOrgAll) { return AlitaResult.success(positionRegistrationService.findByIdAndChildrenOrgAll(id,childrenOrgAll)); } @GetMapping("/list") @ApiOperation("岗位报名信息表-列表查询") public AlitaResult> list(PositionRegistrationPageQueryDTO queryDTO) { return AlitaResult.success(positionRegistrationService.list(queryDTO)); } @GetMapping("/page") @ApiOperation("岗位报名信息表-分页查询") public AlitaResult> page(PositionRegistrationPageQueryDTO queryDTO) { positionRegistrationService.page(queryDTO); return AlitaResult.success(queryDTO.getPageResult()); } /** * @description: 用户端报名岗位 * @return: * @author: guixinman * @param: */ @PostMapping("/user_create") public AlitaResult userCreate(@RequestBody @Validated UserPositionRegistrationDTO dto) { positionRegistrationService.userCreate(dto); return AlitaResult.success(); } @PostMapping("/invite") @ApiOperation("岗位报名信息表-邀约面试") public AlitaResult 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 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 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 onTheJob(@RequestBody @Validated OnTheJobDTO dto) { positionRegistrationService.onTheJob(dto); return AlitaResult.success(); } @PostMapping("/resigned") @ApiOperation("岗位报名信息表-离职") public AlitaResult 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> userPage(UserPositionRegistrationPageQueryDTO queryDTO) { positionRegistrationService.userPage(queryDTO); return AlitaResult.success(queryDTO.getPageResult()); } @GetMapping("/user_cancel") @ApiOperation("岗位报名信息表-用户端取消报名") public AlitaResult cancel(@RequestParam("positionId") Long positionId) { positionRegistrationService.cancel(positionId); return AlitaResult.success(); } @ApiOperation("查看") @PutMapping("/show") public AlitaResult show(@RequestParam("id") Long id){ positionRegistrationService.show(id); return AlitaResult.success(); } }