package com.hz.employmentsite.controller.companyService; import com.github.pagehelper.PageInfo; import com.hz.employmentsite.filter.exception.BaseErrorEnum; import com.hz.employmentsite.filter.exception.BaseException; import com.hz.employmentsite.filter.exception.BaseResponse; import com.hz.employmentsite.filter.exception.RespGenerstor; import com.hz.employmentsite.model.PcPost; import com.hz.employmentsite.services.service.AccountService; import com.hz.employmentsite.services.service.companyService.PostService; import com.hz.employmentsite.util.DateUtils; import com.hz.employmentsite.util.ExcelHelper; import com.hz.employmentsite.vo.jobUserManager.RecommendCompanyPostVo; import com.hz.employmentsite.vo.companyService.RecommendPostVo; import com.hz.employmentsite.vo.companyService.PostVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; @RestController @RequestMapping(value = "/api/companyService/post") public class PostController { @Autowired private PostService postService; @Autowired private DateUtils dateUtils; @Autowired private AccountService accountService; @ResponseBody @GetMapping("/getList") public BaseResponse getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List postIDList, @RequestParam(required = false) String professionName, @RequestParam(required = false) Integer minCount, @RequestParam(required = false) Integer maxCount, @RequestParam(required = false) String companyName, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String companyID ) { PageInfo result = postService.getList(pageIndex, pageSize, postIDList, professionName, minCount, maxCount, companyName, recordStatus,companyID); return RespGenerstor.success(result); } @ResponseBody @GetMapping("/getCommendPostList") public BaseResponse getCommendPostList(@RequestParam("pageIndex") int pageIndex,@RequestParam("pageSize") int pageSize,@RequestParam("jobUserID") String jobUserID) { PageInfo result = postService.getCommendPostList(pageIndex, pageSize,jobUserID); return RespGenerstor.success(result); } @PostMapping("/saveCommendPost") public BaseResponse saveCommendPost(@RequestBody RecommendPostVo data) { var result = postService.saveCommendPost(data, accountService.getLoginUserID()); return RespGenerstor.success(result); } @PostMapping("/saveCommendPostList") public BaseResponse saveCommendPostList(@RequestBody List data) { var result = 0; for (RecommendPostVo curData: data) { result += postService.saveCommendPost(curData, accountService.getLoginUserID()); } return RespGenerstor.success(result); } @PostMapping("/save") public BaseResponse save(@RequestBody PostVo data) { var result = postService.save(data, accountService.getLoginUserID()); return RespGenerstor.success(result); } @PostMapping("/savePost") public BaseResponse savePost(@RequestBody PostVo data){ var result= postService.save(data,accountService.getLoginUserID()); return RespGenerstor.success(result); } @GetMapping("/getPostByID") public BaseResponse getPostById(@RequestParam(required = false) String id) { var data = postService.getDataById(id); if (data == null) { data = new PostVo(); data.postID = UUID.randomUUID().toString(); data.startTime = new Date(); data.endTime = new Date(); data.recordStatus=1; } return RespGenerstor.success(data); } @GetMapping("/getPostsByCompanyID") public BaseResponse> getPostsByCompanyID(@RequestParam(required = false) String companyId) { var dataList = postService.getDataListByCompanyID(companyId); return RespGenerstor.success(dataList); } @ResponseBody @PostMapping("/delete") public BaseResponse delete(@RequestBody List ids) { var result = postService.delete(ids); if (result <= 0) { throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR); } return RespGenerstor.success(result); } @ResponseBody @PostMapping("/deletePostAndRecommendMgt") public BaseResponse deletePostAndRecommendMgt(String id) { Integer result = postService.deletePostAndRecommendMgt(id); if (result <= 0) throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR); return RespGenerstor.success(1); } @GetMapping("/export") public BaseResponse export(HttpServletResponse response, @RequestParam(required = false) Boolean isExport, @RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List postIDList, @RequestParam(required = false) String professionName, @RequestParam(required = false) Integer minCount, @RequestParam(required = false) Integer maxCount, @RequestParam(required = false) String companyName, @RequestParam(required = false) String recordStatus ) throws Exception { PageInfo result = postService.getList(pageIndex, pageSize, postIDList, professionName, minCount, maxCount, companyName, recordStatus,null); if (isExport == null || !isExport) { return RespGenerstor.success(result); } else { ExcelHelper excelHelper = new ExcelHelper(); ExcelHelper.ExcelData data = excelHelper.new ExcelData(); data.setTitles(Arrays.asList(new String[]{"序号", "岗位名称", "招聘人数","开始日期", "结束日期", "招聘企业", "岗位状态", "工种名称", "文化程度", "薪酬", "联系人", "联系电话"})); int i = 0; List> rowsData = new ArrayList(); for (PostVo item : result.getList()) { List row = new ArrayList(); ++i; row.add(i); row.add(item.professionName); row.add(item.recruitCount); row.add(dateUtils.dateToStr(item.startTime)); row.add(dateUtils.dateToStr(item.endTime)); row.add(item.companyName); row.add(item.recordStatus == 1 ? "启用" : "停用"); row.add(item.workName); row.add(item.cultureLevelName); if(item.minSalary!=null){ if(item.maxSalary!=null){ row.add(item.minSalary+"-"+item.maxSalary); }else{ row.add("≥"+item.minSalary); } }else{ if(item.maxSalary!=null){ row.add("≤"+item.maxSalary); }else{ row.add(""); } } row.add(item.userName); row.add(item.userMobile); rowsData.add(row); } data.setRows(rowsData); excelHelper.exportExcel(response, data); return null; } } @PostMapping("/importPost") public BaseResponse importPost(@RequestBody List dataList){ List result = postService.importPost(dataList, accountService.getLoginUserID()); if (result != null && result.size() > 0) { return RespGenerstor.fail(BaseErrorEnum.IMPORT_DATA_ERROR, result); } else { return RespGenerstor.success(true); } } }