|
@@ -1,226 +0,0 @@
|
|
|
-package com.citupro.module.menduner.flames.serviceimpl;
|
|
|
-
|
|
|
-import cn.hutool.core.util.IdUtil;
|
|
|
-import com.alibaba.excel.EasyExcel;
|
|
|
-import com.alibaba.excel.read.builder.ExcelReaderBuilder;
|
|
|
-import com.alibaba.excel.read.listener.PageReadListener;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-
|
|
|
-import com.citu.framework.common.pojo.CommonResult;
|
|
|
-import com.citupro.module.menduner.flames.controller.base.reqvo.EenterpriseRecruitSaveReqVo;
|
|
|
-import com.citupro.module.menduner.flames.controller.base.reqvo.EnterpriseRecruitListReqVo;
|
|
|
-import com.citupro.module.menduner.flames.controller.base.vo.EnterpriseRecruitExcelVo;
|
|
|
-import com.citupro.module.menduner.flames.controller.base.vo.EnterpriseRecruitInfoVo;
|
|
|
-import com.citupro.module.menduner.flames.dal.mysql.EnterpriseRecruit;
|
|
|
-import com.citupro.module.menduner.flames.dal.mysql.EnterpriseRecruitTag;
|
|
|
-import com.citupro.module.menduner.flames.dal.mysql.Area;
|
|
|
-import com.citupro.module.menduner.flames.mapper.EnterpriseRecruitMapper;
|
|
|
-import com.citupro.module.menduner.flames.service.*;
|
|
|
-import com.citupro.module.menduner.flames.service.api.SysAreaServiceApi;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import java.io.InputStream;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-/**
|
|
|
- *
|
|
|
- *
|
|
|
- * @author code generator
|
|
|
- * @date 2023-06-06 09:56:21
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class EnterpriseRecruitServiceImpl
|
|
|
- extends ServiceImpl<EnterpriseRecruitMapper, EnterpriseRecruit> implements EnterpriseRecruitService {
|
|
|
-
|
|
|
- EnterpriseRecruitMapper enterpriseRecruitMapper;
|
|
|
-
|
|
|
- EnterpriseService enterpriseService;
|
|
|
-
|
|
|
- EnterpriseRecruitTagService enterpriseRecruitTagService;
|
|
|
-
|
|
|
- JobDictionaryService jobDictionaryService;
|
|
|
- // TODO
|
|
|
- SysAreaServiceApi sysAreaServiceApi;
|
|
|
-
|
|
|
- PraciceSubmitRecordService praciceSubmitRecordService;
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public CommonResult enterpriseRecruitSave(EnterpriseRecruit enterpriseRecruit, List<EnterpriseRecruitTag> tags) {
|
|
|
-
|
|
|
- if(null == enterpriseRecruit.getEnterpriseRecruitId()){
|
|
|
- enterpriseRecruit.setEnterpriseRecruitId(IdUtil.getSnowflake(1L,1L).nextId());
|
|
|
- enterpriseRecruit.setEnterpriseRecruitSendDate(LocalDateTime.now());
|
|
|
- enterpriseRecruit.setEnterpriseRecruitStatus("招聘中");
|
|
|
- enterpriseRecruit.setEnterpriseRecruitHitNum(0);
|
|
|
- enterpriseRecruit.setSort(System.currentTimeMillis()/1000);
|
|
|
- enterpriseRecruitMapper.insert(enterpriseRecruit);
|
|
|
- tags.forEach(item->item.setEnterpriseRecruitId(enterpriseRecruit.getEnterpriseRecruitId()));
|
|
|
- }else {
|
|
|
- tags.forEach(item->item.setEnterpriseRecruitId(enterpriseRecruit.getEnterpriseRecruitId()));
|
|
|
- enterpriseRecruitMapper.updateById(enterpriseRecruit);
|
|
|
- }
|
|
|
- enterpriseRecruitTagService.saveAll(tags,enterpriseRecruit.getEnterpriseRecruitId());
|
|
|
- return CommonResult.success(enterpriseRecruit);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public EnterpriseRecruit getEnterpriseRecruitById(Long enterpriseRecruitId) {
|
|
|
- if(null ==enterpriseRecruitId){
|
|
|
- return null;
|
|
|
- }
|
|
|
- return enterpriseRecruitMapper.selectById(enterpriseRecruitId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public CommonResult getEnterpriseRecruitList(EnterpriseRecruitListReqVo enterpriseRecruitListReqVo) {
|
|
|
- Page page =Page.of(enterpriseRecruitListReqVo.getCurrent(),enterpriseRecruitListReqVo.getSize());
|
|
|
- page.setOrders(enterpriseRecruitListReqVo.getOrders());
|
|
|
- EnterpriseRecruit object =new EnterpriseRecruit();
|
|
|
- BeanUtils.copyProperties(enterpriseRecruitListReqVo,object);
|
|
|
- object.setFrequency(null);
|
|
|
- String enterpriseRecruitJobName = object.getEnterpriseRecruitJobName();
|
|
|
- object.setEnterpriseRecruitJobName(null);
|
|
|
- LambdaQueryWrapper<EnterpriseRecruit> queryWrapper =new LambdaQueryWrapper<>(object);
|
|
|
- queryWrapper.in(null!=enterpriseRecruitListReqVo.getEnterpriseRecruitTypes() && enterpriseRecruitListReqVo.getEnterpriseRecruitTypes().size() > 0
|
|
|
- ,EnterpriseRecruit::getEnterpriseRecruitType,enterpriseRecruitListReqVo.getEnterpriseRecruitTypes() );
|
|
|
- queryWrapper.ge(null!=enterpriseRecruitListReqVo.getStartEnterpriseRecruitSalary(),EnterpriseRecruit::getEnterpriseRecruitSalary,enterpriseRecruitListReqVo.getStartEnterpriseRecruitSalary());
|
|
|
- queryWrapper.le(null!=enterpriseRecruitListReqVo.getEndEnterpriseRecruitSalary(),EnterpriseRecruit::getEnterpriseRecruitSalary,enterpriseRecruitListReqVo.getEndEnterpriseRecruitSalary());
|
|
|
- queryWrapper.like(StringUtils.isNotBlank(enterpriseRecruitJobName),EnterpriseRecruit::getEnterpriseRecruitJobName,enterpriseRecruitJobName);
|
|
|
-
|
|
|
- queryWrapper.and(StringUtils.isNotBlank(enterpriseRecruitListReqVo.getSearchKey()),
|
|
|
- qw->qw.like(EnterpriseRecruit::getEnterpriseRecruitJobName,enterpriseRecruitListReqVo.getSearchKey())
|
|
|
- .or()
|
|
|
- .like(EnterpriseRecruit::getJobName,enterpriseRecruitListReqVo.getSearchKey())
|
|
|
- .or()
|
|
|
- .apply("enterprise_id in ( select enterprise_id from enterprise where enterprise_name like concat('%',{0},'%') ) ",enterpriseRecruitListReqVo.getSearchKey())
|
|
|
- );
|
|
|
-// queryWrapper.like(StringUtils.isNotBlank(enterpriseRecruitListReqVo.getSearchKey()), EnterpriseRecruit::getEnterpriseRecruitJobName,enterpriseRecruitListReqVo.getSearchKey());
|
|
|
-// queryWrapper
|
|
|
- queryWrapper.apply(null!=enterpriseRecruitListReqVo.getTradeCategory()," enterprise_id in ( select enterprise_id from enterprise where trade_category = {0} ) ",enterpriseRecruitListReqVo.getTradeCategory());
|
|
|
-
|
|
|
-
|
|
|
- queryWrapper.apply(null!=enterpriseRecruitListReqVo.getScale()," enterprise_id in ( select enterprise_id from enterprise where scale = {0} ) ",enterpriseRecruitListReqVo.getScale());
|
|
|
-
|
|
|
- queryWrapper.apply(null!=enterpriseRecruitListReqVo.getEnterpriseIndustry()," enterprise_id in ( select enterprise_id from enterprise where enterprise_industry = {0} ) ",enterpriseRecruitListReqVo.getEnterpriseIndustry());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- Page page1 = enterpriseRecruitMapper.selectPage(page, queryWrapper);
|
|
|
-// Integer count = enterpriseRecruitMapper.selectCount(queryWrapper);
|
|
|
-
|
|
|
- List<EnterpriseRecruitInfoVo> enterpriseRecruitInfoVos =new ArrayList<>();
|
|
|
- page.getRecords().forEach(item->{
|
|
|
- EnterpriseRecruitInfoVo enterpriseRecruitInfoVo =new EnterpriseRecruitInfoVo();
|
|
|
- enterpriseRecruitInfoVo.setEnterpriseRecruit((EnterpriseRecruit) item);
|
|
|
- enterpriseRecruitInfoVo.setEnterprise(enterpriseService.getEnterpriseById(enterpriseRecruitInfoVo.getEnterpriseRecruit().getEnterpriseId()));
|
|
|
- enterpriseRecruitInfoVo.setEnterpriseRecruitTags(enterpriseRecruitTagService.getTagByEnterpriseRecruitId(((EnterpriseRecruit) item).getEnterpriseRecruitId()));
|
|
|
- enterpriseRecruitInfoVo.setWaitStudentCount(praciceSubmitRecordService.getEnterpriseRecruitWaitStudentCount(enterpriseRecruitInfoVo.getEnterpriseRecruit().getEnterpriseRecruitId()));
|
|
|
- enterpriseRecruitInfoVos.add(enterpriseRecruitInfoVo);
|
|
|
- });
|
|
|
- page1.setRecords(enterpriseRecruitInfoVos);
|
|
|
-// page1.setTotal(count);
|
|
|
-
|
|
|
- return CommonResult.success(page1);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public CommonResult enterpriseRecruitSaveAll(List<EenterpriseRecruitSaveReqVo> enterpriseRecruits) {
|
|
|
- for (EenterpriseRecruitSaveReqVo enterpriseRecruit : enterpriseRecruits) {
|
|
|
- CommonResult result = enterpriseRecruitSave(enterpriseRecruit.getEnterpriseRecruit(), enterpriseRecruit.getTags());
|
|
|
-
|
|
|
- }
|
|
|
- return CommonResult.success(null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public CommonResult enterpriseRecruitUpload(InputStream inputStream, String originalFilename,Long enterpriseId) {
|
|
|
- List<EnterpriseRecruitExcelVo> objects =new ArrayList<>();
|
|
|
- PageReadListener listener = new PageReadListener<EnterpriseRecruitExcelVo>(list->objects.addAll(list));
|
|
|
- ExcelReaderBuilder read = EasyExcel.read(inputStream, EnterpriseRecruitExcelVo.class,listener);
|
|
|
-// read.excelType(ExcelTypeEnum.XLS);
|
|
|
- read.sheet().doRead();
|
|
|
- Map<String,JSONObject> cacheJSONObject =new HashMap<>();
|
|
|
- List<EnterpriseRecruit> enterpriseRecruits =new ArrayList<>();
|
|
|
- for (EnterpriseRecruitExcelVo enterpriseRecruitExcelVo : objects) {
|
|
|
- EnterpriseRecruit enterpriseRecruit =new EnterpriseRecruit();
|
|
|
- BeanUtils.copyProperties(enterpriseRecruitExcelVo,enterpriseRecruit);
|
|
|
- Map<String,Object> frequency =new HashMap<>();
|
|
|
- frequency.put("dateType",enterpriseRecruitExcelVo.getWorkCategory());
|
|
|
- frequency.put("day",enterpriseRecruitExcelVo.getWorkDay());
|
|
|
- enterpriseRecruit.setFrequency(frequency);
|
|
|
- enterpriseRecruit.setEnterpriseId(enterpriseId);
|
|
|
-// enterpriseRecruit.setJobCode(jobDictionaryService.getJobDictionaryCodeByName(enterpriseRecruitExcelVo.getJobName()));
|
|
|
- enterpriseRecruit.setEnterpriseRecruitStatus("招聘中");
|
|
|
-// if(null == enterpriseRecruit.getJobCode()){
|
|
|
-// return Result.restResultSuccess("请检查招聘标题:"+enterpriseRecruitExcelVo.getEnterpriseRecruitJobName()+"岗位名称是否正确!");
|
|
|
-// }
|
|
|
- String cacheKey = enterpriseRecruitExcelVo.getWorkProvinceName()+enterpriseRecruitExcelVo.getWorkCityName();
|
|
|
- JSONObject data =cacheJSONObject.get(cacheKey);
|
|
|
- // 检查城市是否正确 省份是否正确
|
|
|
- if(null ==data) {
|
|
|
- data = sysAreaServiceApi.getSysAreaCode(enterpriseRecruitExcelVo.getWorkProvinceName(), enterpriseRecruitExcelVo.getWorkCityName()).getData();
|
|
|
- cacheJSONObject.put(cacheKey, data);
|
|
|
- }
|
|
|
- if(null==data.get("province") || null == data.get("city")){
|
|
|
-// Result.restResultSuccess("请检查招聘标题:"+enterpriseRecruitExcelVo.getEnterpriseRecruitJobName()+"的省市是否正确!");
|
|
|
- }
|
|
|
- enterpriseRecruit.setWorkCityCode( data.getObject("city", Area.class).getAreaCode());
|
|
|
- enterpriseRecruit.setWorkProvinceCode( data.getObject("province", Area.class).getAreaCode());
|
|
|
- enterpriseRecruits.add(enterpriseRecruit);
|
|
|
- }
|
|
|
- enterpriseRecruits.forEach(item-> enterpriseRecruitMapper.insert(item));
|
|
|
- return CommonResult.success(enterpriseRecruits);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void updateSort(Long enterpriseRecruitId) {
|
|
|
- enterpriseRecruitMapper.update(null,
|
|
|
- new LambdaUpdateWrapper<EnterpriseRecruit>()
|
|
|
- .eq(EnterpriseRecruit::getEnterpriseRecruitId,enterpriseRecruitId)
|
|
|
- .set(EnterpriseRecruit::getSort,System.currentTimeMillis()/1000)
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public void setEnterpriseService(EnterpriseService enterpriseService) {
|
|
|
- this.enterpriseService = enterpriseService;
|
|
|
- }
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public void setEnterpriseRecruitMapper(EnterpriseRecruitMapper enterpriseRecruitMapper) {
|
|
|
- this.enterpriseRecruitMapper = enterpriseRecruitMapper;
|
|
|
- }
|
|
|
- @Autowired
|
|
|
- public void setEnterpriseRecruitTagService(EnterpriseRecruitTagService enterpriseRecruitTagService) {
|
|
|
- this.enterpriseRecruitTagService = enterpriseRecruitTagService;
|
|
|
- }
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public void setJobDictionaryService(JobDictionaryService jobDictionaryService) {
|
|
|
- this.jobDictionaryService = jobDictionaryService;
|
|
|
- }
|
|
|
- @Autowired
|
|
|
- public void setSysAreaServiceApi(SysAreaServiceApi sysAreaServiceApi) {
|
|
|
- this.sysAreaServiceApi = sysAreaServiceApi;
|
|
|
- }
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public void setPraciceSubmitRecordService(PraciceSubmitRecordService praciceSubmitRecordService) {
|
|
|
- this.praciceSubmitRecordService = praciceSubmitRecordService;
|
|
|
- }
|
|
|
-}
|