From f4370ac912d2187bc1222220d6737c05cde8ff26 Mon Sep 17 00:00:00 2001 From: sh Date: Thu, 6 Nov 2025 17:30:33 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E7=A1=AE=E8=AE=A4=E6=97=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98app=E7=94=A8=E6=88=B7=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=B6=88=E6=81=AF=202.=E6=B7=BB=E5=8A=A0=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=97=B6=E7=BB=99=E6=94=B6=E8=97=8F=E6=AD=A4?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E7=94=A8=E6=88=B7=E7=A7=BB=E5=8A=A8=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=96=B0=E5=B2=97=E4=BD=8D=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/cms/CmsNoticeController.java | 4 +- .../cms/mapper/CompanyCollectionMapper.java | 3 + .../com/ruoyi/cms/mapper/CompanyMapper.java | 2 + .../java/com/ruoyi/cms/mapper/JobMapper.java | 7 ++ .../com/ruoyi/cms/mapper/NoticeMapper.java | 2 + .../service/impl/AppNoticeServiceImpl.java | 6 +- .../impl/EmployeeConfirmServiceImpl.java | 13 ++- .../cms/service/impl/JobApplyServiceImpl.java | 2 + .../cms/service/impl/JobServiceImpl.java | 20 +++- .../java/com/ruoyi/cms/util/NoticeUtils.java | 14 --- .../ruoyi/cms/util/notice/NoticeUtils.java | 105 ++++++++++++++++++ .../mapper/app/CompanyCollectionMapper.xml | 6 + .../resources/mapper/app/CompanyMapper.xml | 5 + .../main/resources/mapper/app/JobMapper.xml | 6 + .../resources/mapper/app/NoticeMapper.xml | 13 +++ 15 files changed, 182 insertions(+), 26 deletions(-) delete mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/NoticeUtils.java create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/notice/NoticeUtils.java diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsNoticeController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsNoticeController.java index 8a9cb73..dd3400e 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsNoticeController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsNoticeController.java @@ -5,7 +5,7 @@ import com.ruoyi.cms.domain.Notice; import com.ruoyi.cms.domain.vo.NoticeTotal; import com.ruoyi.cms.service.IAppNoticeService; import com.ruoyi.cms.service.IAppUserService; -import com.ruoyi.cms.util.NoticeUtils; +import com.ruoyi.cms.util.notice.NoticeUtils; import com.ruoyi.cms.util.RoleUtils; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.HttpStatus; @@ -154,7 +154,7 @@ public class CmsNoticeController extends BaseController } startPage(); notice.setIsRead(NoticeUtils.NOTICE_YD); - notice.setRemark(NoticeUtils.NOTICE_TYPE); + notice.setRemark(NoticeUtils.NOTICE_REMARK); List notices = noticeService.selectListAppNotices(notice); return getDataTable(notices); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyCollectionMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyCollectionMapper.java index 59f1e5d..69d22ca 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyCollectionMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyCollectionMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.cms.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; +import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.core.domain.entity.Company; import com.ruoyi.cms.domain.CompanyCollection; @@ -22,4 +23,6 @@ public interface CompanyCollectionMapper extends BaseMapper public List selectCompanyCollectionList(CompanyCollection companyCollection); List collectionJob(Long userId); + + List selectAppuserList(Long companyId); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyMapper.java index 9a431ab..8c168f9 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyMapper.java @@ -27,4 +27,6 @@ public interface CompanyMapper extends BaseMapper List label(@Param("companyNature") String companyNature, @Param("targ")String targ,@Param("companyName")String companyName); List selectLikeCompanyList(Company company); + + Company selectCompanyByJobId(Long jobId); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java index 68465b7..d53ded3 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java @@ -51,4 +51,11 @@ public interface JobMapper extends BaseMapper VectorJob selectVectorJob(Long jobId); List selectApplyJobUserList(Long jobId); + + /** + *查询单条岗位信息 + * @param jobId + * @return + */ + Job getJobInfo(Long jobId); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/NoticeMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/NoticeMapper.java index a177e3e..305dade 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/NoticeMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/NoticeMapper.java @@ -13,4 +13,6 @@ public interface NoticeMapper extends BaseMapper List getNoticlist(Notice notice); NoticeTotal noticTotal(Notice notice); + + int batchInsert(List list); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppNoticeServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppNoticeServiceImpl.java index 13d01b4..3bed788 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppNoticeServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppNoticeServiceImpl.java @@ -6,7 +6,7 @@ import com.ruoyi.cms.domain.*; import com.ruoyi.cms.domain.vo.NoticeTotal; import com.ruoyi.cms.mapper.*; import com.ruoyi.cms.service.IAppNoticeService; -import com.ruoyi.cms.util.NoticeUtils; +import com.ruoyi.cms.util.notice.NoticeUtils; import com.ruoyi.cms.util.StringUtil; import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.utils.SiteSecurityUtils; @@ -204,7 +204,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService @Override public List selectListAppNotRead(Notice notice) { - notice.setRemark(NoticeUtils.NOTICE_TYPE); + notice.setRemark(NoticeUtils.NOTICE_REMARK); notice.setIsRead(NoticeUtils.NOTICE_WD); //List sysNoticeList = noticeInfoMapper.selectList(Wrappers.lambdaQuery().eq(Notice::getUserId, notice.getUserId()).eq(Notice::getRemark,"notice_bar").eq(Notice::getIsRead,0).orderByDesc(Notice::getCreateTime)); return noticeInfoMapper.getNoticlist(notice); @@ -235,7 +235,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService @Override public List selectListAppNotics(Notice notice) { - notice.setRemark(NoticeUtils.NOTICE_TYPE); + notice.setRemark(NoticeUtils.NOTICE_REMARK); return noticeInfoMapper.getNoticlist(notice); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/EmployeeConfirmServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/EmployeeConfirmServiceImpl.java index 66cb2d0..bc58237 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/EmployeeConfirmServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/EmployeeConfirmServiceImpl.java @@ -1,13 +1,15 @@ package com.ruoyi.cms.service.impl; import com.ruoyi.cms.domain.EmployeeConfirm; +import com.ruoyi.cms.domain.Job; import com.ruoyi.cms.domain.JobApply; import com.ruoyi.cms.domain.Notice; import com.ruoyi.cms.mapper.EmployeeConfirmMapper; import com.ruoyi.cms.mapper.JobApplyMapper; +import com.ruoyi.cms.mapper.JobMapper; import com.ruoyi.cms.mapper.NoticeMapper; import com.ruoyi.cms.service.EmployeeConfirmService; -import com.ruoyi.cms.util.NoticeUtils; +import com.ruoyi.cms.util.notice.NoticeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +26,8 @@ public class EmployeeConfirmServiceImpl implements EmployeeConfirmService { private JobApplyMapper jobApplyMapper; @Autowired private NoticeMapper noticeMapper; + @Autowired + private JobMapper jobMapper; @Override public List getEmployeeConfirmList(EmployeeConfirm employeeConfirm) { @@ -39,12 +43,9 @@ public class EmployeeConfirmServiceImpl implements EmployeeConfirmService { apply.setHire("0"); jobApplyMapper.updateById(apply); } + Job job=jobMapper.getJobInfo(employeeConfirm.getJobId()); //添加消息 - Notice notice=new Notice(); - notice.setUserId(employeeConfirm.getUserId()); - notice.setBussinessId(employeeConfirm.getId()); - notice.setIsRead(NoticeUtils.NOTICE_WD); - notice.setTitle(""); + Notice notice=NoticeUtils.createLytzNotice(employeeConfirm,job); noticeMapper.insert(notice); return t; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobApplyServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobApplyServiceImpl.java index 400793a..831df00 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobApplyServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobApplyServiceImpl.java @@ -146,6 +146,8 @@ public class JobApplyServiceImpl extends ServiceImpl im jobApplyMapper.deleteBatchIds(ids); } jobApplyMapper.insert(jobApply); + //添加消息说明 + return 0; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java index 0cd2dfc..bdb750e 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.cms.domain.*; +import com.ruoyi.cms.util.notice.NoticeUtils; import com.ruoyi.common.core.domain.entity.File; import com.ruoyi.cms.domain.query.ESJobSearch; import com.ruoyi.cms.domain.vo.CandidateVO; @@ -33,6 +34,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.io.*; import java.math.BigDecimal; @@ -84,6 +86,10 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe private FileMapper fileMapper; @Autowired private IAppUserService appUserService; + @Autowired + private CompanyCollectionMapper companyCollectionMapper; + @Autowired + private NoticeMapper noticeMapper; /** * 更新工作地址的经纬度信息 @@ -287,16 +293,28 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe * @return 结果 */ @Override + @Transactional public int updateJob(Job job) { LocalDateTime now = LocalDateTime.now(); String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); //修改岗位状态 - //修改岗位状态 if(job.getIsPublish()!=null) { if(job.getIsPublish()==1){ job.setPostingDate(formattedDate); + //修改es缓存 iesJobSearchService.updateJob(job.getJobId()); + //添加岗位上新 + Job parmJob=null; + if(job.getCompanyId()==null){ + //传递job消息不完整 + parmJob=jobMapper.getJobInfo(job.getJobId()); + } + List users=companyCollectionMapper.selectAppuserList(parmJob.getCompanyId()); + if(users!=null&&users.size()>0){ + List notices= NoticeUtils.createGwsxNotice(users,parmJob); + noticeMapper.batchInsert(notices); + } }else { job.setPostingDate(null); iesJobSearchService.deleteJob(job.getJobId()); diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/NoticeUtils.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/NoticeUtils.java deleted file mode 100644 index 6764de3..0000000 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/NoticeUtils.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.ruoyi.cms.util; - -public class NoticeUtils { - /** - * 消息已读 - */ - public static final String NOTICE_YD="1"; - /** - * 消息未读 - */ - public static final String NOTICE_WD="0"; - - public static final String NOTICE_TYPE="notice_bar"; -} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/notice/NoticeUtils.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/notice/NoticeUtils.java new file mode 100644 index 0000000..7692a89 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/notice/NoticeUtils.java @@ -0,0 +1,105 @@ +package com.ruoyi.cms.util.notice; + +import com.ruoyi.cms.domain.EmployeeConfirm; +import com.ruoyi.cms.domain.Job; +import com.ruoyi.cms.domain.Notice; +import com.ruoyi.common.core.domain.entity.AppUser; + +import java.util.ArrayList; +import java.util.List; + +public class NoticeUtils { + /** + * 消息已读 + */ + public static final String NOTICE_YD="1"; + /** + * 消息未读 + */ + public static final String NOTICE_WD="0"; + + public static final String NOTICE_REMARK="notice_bar"; + + public static final String NOTICE_COMENT_ZH="衷心祝贺您通过"; + + public static final String NOTICE_COMENT_LY="全流程招聘考核,正式被录用,岗位为【"; + + public static final String NOTICE_COMENT_FF="】"; + + public static final String NOTICE_TYPE_LY="录用通知"; + + public static final String NOTICE_TYPE_GWSX="您收藏的公司有新的职位发布"; + + public static final String NOTICE_TYPE_XTLX="1"; + + public static final String NOTICE_TYPE_SXLX="2"; + + /** + * 拼装岗位 + */ + public static final String JOB_NEW="刚刚发布职位"; + public static final String JOB_XZ="薪资"; + public static final String JOB_KKB="快去看看吧"; + public static final String JOB_QFH="“"; + public static final String JOB_HFH="”"; + public static final String JOB_ZJG="-"; + public static final String JOB_DH=","; + + + /** + * 录用通知 + * @param companyName + * @param jobName + * @return + */ + public static String appUserLytz(String companyName,String jobName){ + return NoticeUtils.NOTICE_COMENT_ZH+companyName+NoticeUtils.NOTICE_COMENT_LY+jobName+NoticeUtils.NOTICE_COMENT_FF; + } + + /** + * “海尔集团”刚刚发布职位“产品性能分析工程师”薪资“1.5-2.5k,快去看看吧 + * @param job + * @return + */ + public static String appUserGwsx(Job job){ + return JOB_QFH+job.getCompanyName()+JOB_HFH+JOB_NEW+JOB_QFH+job.getJobTitle()+JOB_HFH+JOB_XZ+job.getMinSalary()+JOB_ZJG+job.getMaxSalary()+JOB_DH+JOB_KKB; + } + + /** + * 审核确认界面拼装消息 + */ + public static Notice createLytzNotice(EmployeeConfirm employeeConfirm, Job job) { + Notice notice = new Notice(); + notice.setUserId(employeeConfirm.getUserId()); + notice.setBussinessId(job.getJobId()); + notice.setIsRead(NoticeUtils.NOTICE_WD); + notice.setTitle(NoticeUtils.NOTICE_TYPE_LY); + notice.setSubTitle(NoticeUtils.NOTICE_TYPE_LY); + notice.setNoticeType(NoticeUtils.NOTICE_TYPE_XTLX); + notice.setRemark(NoticeUtils.NOTICE_REMARK); + String content = appUserLytz(job.getCompanyName(), job.getJobTitle()); + notice.setNoticeContent(content); + return notice; + } + + /** + * 岗位上新 + */ + public static List createGwsxNotice(List appUserList, Job job) { + List add=new ArrayList<>(); + appUserList.forEach(appUser -> { + String content = appUserGwsx(job); + Notice notice = new Notice(); + notice.setUserId(appUser.getUserId()); + notice.setBussinessId(job.getJobId()); + notice.setIsRead(NoticeUtils.NOTICE_WD); + notice.setTitle(NoticeUtils.NOTICE_TYPE_GWSX); + notice.setSubTitle(content); + notice.setNoticeType(NoticeUtils.NOTICE_TYPE_SXLX); + notice.setRemark(NoticeUtils.NOTICE_REMARK); + notice.setNoticeContent(content); + add.add(notice); + }); + return add; + } +} diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyCollectionMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyCollectionMapper.xml index 47f145e..6fa7cc0 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyCollectionMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyCollectionMapper.xml @@ -36,4 +36,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where del_flag = '0' and user_id = #{userId} order by create_time desc) + + \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyMapper.xml index e1c3daf..1fff035 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyMapper.xml @@ -104,4 +104,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LIMIT 50 + + + \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml index 1b04576..4608254 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml @@ -322,4 +322,10 @@ inner join app_user a on e.user_id =a.user_id and a.del_flag='0' where e.del_flag='0' and e.job_id=#{jobId} + + \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/NoticeMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/NoticeMapper.xml index 798d596..4b8f314 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/NoticeMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/NoticeMapper.xml @@ -28,4 +28,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + INSERT INTO notice ( + title, notice_type, notice_content,is_read,user_id,sub_title,not_read_count,date,bussiness_id, + create_by, create_time, del_flag,remark + ) VALUES + + ( + #{item.title}, #{item.noticeType}, #{item.noticeContent},#{item.isRead},#{item.userId},#{item.subTitle}, + #{item.notReadCount},sysdate(),#{item.bussinessId}, + #{item.createBy}, #{item.createTime}, #{item.delFlag},#{item.remark} + ) + + \ No newline at end of file