Explorar el Código

1、加入判断已发布职位2内可编辑
2、加入职位删除接口(存在投递简历则逻辑删除,负责真删)

rayson hace 1 año
padre
commit
26d0df14ea

+ 22 - 2
src/main/java/com/wechat/common/utils/DateUtils.java

@@ -871,8 +871,28 @@ public class DateUtils extends BaseUtils {
          String dateStr = localDateformatString(date,PATTEN_YMD);
          return dateStr;
      }
-     
-     
+
+    /**
+     * @description 判断时间是否大于等于多少天
+     * 如果方法返回true,则表示createDate大于或等于day天前的日期
+     * 如果方法返回false,则表示createDate小于两天前的日期
+     * @author rayson
+     * @param createDate
+     * @date 2023-09-25 17:45
+     * @return boolean
+     **/
+    public static boolean isGreaterOrEqualThanTwoDays(Date createDate,int day) {
+        // 计算两天前的日期
+        Calendar twoDaysAgo = Calendar.getInstance();
+        twoDaysAgo.add(Calendar.DAY_OF_MONTH, -day);
+
+        // 创建Calendar对象来比较日期
+        Calendar dateToCompare = Calendar.getInstance();
+        dateToCompare.setTime(createDate);
+
+        // 比较createDate和两天前的日期
+        return dateToCompare.before(twoDaysAgo);
+    }
 
 
 }

+ 9 - 1
src/main/java/com/wechat/controller/EnterpriseController.java

@@ -280,7 +280,6 @@ public class EnterpriseController {
 
     /**
      * @param req
-     * @param resp
      * @param keyWordReq 关键词
      * @return ResultEntity<AlreadyPublishResp>
      * @description 已发职位关键词检索
@@ -301,4 +300,13 @@ public class EnterpriseController {
     }
 
 
+    @RequestMapping(value = "deleteJobAdvertised", method = RequestMethod.POST)
+    @ResponseBody
+    public ResultEntity<Integer> deleteJobAdvertised(HttpServletRequest req,
+                                                           @RequestBody DeleteReq deleteReq) throws Exception {
+        String userCode = commonService.getUserCode(req);
+        enterpriseService.deleteJobAdvertised(userCode,deleteReq);
+        return new ResultEntity<>(InfoMsg.SUCCESS_REQUEST);
+    }
+
 }

+ 36 - 3
src/main/java/com/wechat/dao/MdeJobAdvertisedDao.java

@@ -13,6 +13,7 @@ import com.wechat.model.dto.AvailableAndUsedCountDto;
 import com.wechat.model.dto.JobAdvertisedListDto;
 import com.wechat.model.dto.JobRepFormPvDto;
 import com.wechat.model.dto.ShowOfJobsDto;
+import com.wechat.model.requestDto.AdJobCvNumReq;
 import com.wechat.model.responseDto.AlreadyPublishPositionResp;
 import com.wechat.model.responseDto.JobAdvertisedNologinResp;
 import com.wechat.model.responseDto.JobAdvertisedRes;
@@ -305,9 +306,7 @@ public class MdeJobAdvertisedDao extends BaseDao {
      * @date 2023-09-19 14:34
      * @return PagingResult<AlreadyPublishPositionResp>
      **/
-    public List<AlreadyPublishPositionResp> alreadyPublishPositionList(String userCode) {
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("userCode", userCode);
+    public List<AlreadyPublishPositionResp> alreadyPublishPositionList(Map<String,Object> map) {
         return super.select("MdeJobAdvertisedMapper.alreadyPublishPositionList",map);
 
     }
@@ -375,6 +374,40 @@ public class MdeJobAdvertisedDao extends BaseDao {
         return sqlSession.update("MdeJobAdvertisedMapper.batchUpdatePublishDate", publisher);
     }
 
+
+    /**
+     * @description 根据jobId删除数据
+     * @author rayson
+     * @param map
+     * @date 2023-09-26 15:12
+     * @return int
+     **/
+    public int deleteByJobId(Map<String,Object> map) {
+        return sqlSession.delete("MdeJobAdvertisedMapper.deleteByJobId", map);
+    }
+
+    /**
+     * @description 逻辑删除数据
+     * @author rayson
+     * @param map
+     * @date 2023-09-26 15:12
+     * @return int
+     **/
+    public int delete(Map<String,Object> map) {
+        return sqlSession.delete("MdeJobAdvertisedMapper.delete", map);
+    }
+
+    /**
+     * @description 查询已发布职位的投递简历数量
+     * @author rayson
+     * @param map
+     * @date 2023-09-26 15:36
+     * @return int
+     **/
+    public AdJobCvNumReq getJobCvNum(Map<String,Object> map) {
+        return sqlSession.selectOne("MdeJobAdvertisedMapper.getJobCvNum",map);
+    }
+
     /**
      * 更新发布日期(招聘中的职位)
      *

+ 1 - 0
src/main/java/com/wechat/global/message/InfoMsg.java

@@ -55,6 +55,7 @@ public enum InfoMsg {
 	ERROR_MD5ENCRYPT_ERROR("1040","加密失败|Encryption failed"),
 	ERROR_SEND_EMAIL_FAIL("1041","邮件发送失败|Failure to send text email"),
 	ERROR_EMAIL_CHECK("1042","邮箱格式不正确|The email format is not correct"),
+	ERROR_POSITION_NOT_CLOSED("1043","职位未关闭|The position not closed"),
 	/****************方法内失败****************/
 	ERROR_INSERT_REDIS_ERROR("2001","缓存信息失败|Cache memory information failed"),
 	ERROR_PARAM_CONVERSION_ERROR("2002","Cookie Error"),

+ 49 - 0
src/main/java/com/wechat/model/requestDto/AdJobCvNumReq.java

@@ -0,0 +1,49 @@
+package com.wechat.model.requestDto;
+
+/**
+ * @author rayson
+ * @description AdJobCvNumReq 已发布职位的投递简历信息
+ * @create 2023-09-26 15:50
+ **/
+public class AdJobCvNumReq {
+
+    private Integer jobId; // 发布职位id
+
+    private String JobName; // 发布职位名称
+
+    private Integer status;// 发布职位的状态
+
+    private Integer cvNum;// 发布职位所投递的简历数量
+
+    public Integer getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(Integer jobId) {
+        this.jobId = jobId;
+    }
+
+    public String getJobName() {
+        return JobName;
+    }
+
+    public void setJobName(String jobName) {
+        JobName = jobName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getCvNum() {
+        return cvNum;
+    }
+
+    public void setCvNum(Integer cvNum) {
+        this.cvNum = cvNum;
+    }
+}

+ 31 - 0
src/main/java/com/wechat/model/requestDto/DeleteReq.java

@@ -0,0 +1,31 @@
+package com.wechat.model.requestDto;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author rayson
+ * @description DeleteReq 公共删除req
+ * @create 2023-09-26 15:06
+ **/
+public class DeleteReq {
+
+    @NotNull(message="发布职位不能为空|Post position cannot be empty")
+    private Integer id;
+
+    @NotNull(message="职位版本号不能为空|Position version number cannot be empty")
+    private Integer versionNo;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getVersionNo() {
+        return versionNo;
+    }
+    public void setVersionNo(Integer versionNo) {
+        this.versionNo = versionNo;
+    }
+}

+ 5 - 5
src/main/java/com/wechat/model/requestDto/UserCvStatusReq.java

@@ -20,7 +20,7 @@ public class UserCvStatusReq {
 //	@NotNull(message = "不能为空|type not null")
 	private String type; // 简历类型
 
-	private String jobIdList; // 职位Id
+	private String positionIdList; // 职位Id
 
 	public Integer getIndex() {
 		
@@ -47,12 +47,12 @@ public class UserCvStatusReq {
 		this.type = type;
 	}
 
-	public String getJobIdList() {
-		return jobIdList;
+	public String getPositionIdList() {
+		return positionIdList;
 	}
 
-	public void setJobIdList(String jobIdList) {
-		this.jobIdList = jobIdList;
+	public void setPositionIdList(String positionIdList) {
+		this.positionIdList = positionIdList;
 	}
 
 }

+ 10 - 10
src/main/java/com/wechat/model/responseDto/AlreadyPublishPositionResp.java

@@ -7,22 +7,22 @@ package com.wechat.model.responseDto;
  **/
 public class AlreadyPublishPositionResp {
 
-    private String jobId; // 发布的工作Id
-    private String jobName; // 职位名称
+    private String positionId; // 发布的工作Id
+    private String positionName; // 职位名称
 
 
-    public String getJobId() {
-        return jobId;
+    public String getPositionId() {
+        return positionId;
     }
 
-    public void setJobId(String jobId) {
-        this.jobId = jobId;
+    public void setPositionId(String positionId) {
+        this.positionId = positionId;
     }
-    public String getJobName() {
-        return jobName;
+    public String getPositionName() {
+        return positionName;
     }
 
-    public void setJobName(String jobName) {
-        this.jobName = jobName;
+    public void setPositionName(String positionName) {
+        this.positionName = positionName;
     }
 }

+ 10 - 0
src/main/java/com/wechat/model/responseDto/JobAdvertisedResp.java

@@ -33,6 +33,16 @@ public class JobAdvertisedResp {
 	
 	private String newFlag; // 新简历标识
 
+	private Integer versionNo; // 版本号
+
+	public Integer getVersionNo() {
+		return versionNo;
+	}
+
+	public void setVersionNo(Integer versionNo) {
+		this.versionNo = versionNo;
+	}
+
 	public String getPositionName() {
 		return positionName;
 	}

+ 63 - 24
src/main/java/com/wechat/service/EnterpriseService.java

@@ -15,9 +15,7 @@ import com.wechat.global.base.interceptor.Page;
 import com.wechat.global.message.InfoMsg;
 import com.wechat.model.dbEntity.MdePositionCvRel;
 import com.wechat.model.dbEntity.MdeUser;
-import com.wechat.model.dto.TalentRetrievalDto;
 import com.wechat.model.dto.UserInfoResp;
-import com.wechat.model.dto.WorkDateDto;
 import com.wechat.model.requestDto.*;
 import com.wechat.model.responseDto.AlreadyPublishPositionResp;
 import com.wechat.model.responseDto.ContactUserInfoResp;
@@ -31,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -440,25 +437,25 @@ public class EnterpriseService extends BaseService {
     }
 
     /**
+     * @param statusReq
+     * @param model     终端类型(1-PC端 只显示1个面试时间)
+     * @return Map<String, Object>
      * @description 已发简历筛选
      * @author rayson
-     * @param statusReq
-     * @param model 终端类型(1-PC端 只显示1个面试时间)
      * @date 2023-09-19 14:46
-     * @return Map<String,Object>
      **/
     public Map<String, Object> filterUserCv(HttpServletRequest req, UserCvStatusReq statusReq, String model) {
         Map<String, Object> maps = Maps.newHashMap();
         Pagination pagination = new Pagination(statusReq.getIndex(), statusReq.getSize());
         Map<Object, Object> params = Maps.newHashMap();
-        List<String> jobIdList = null;
-        if (StringsUtils.isNotEmpty(statusReq.getJobIdList())) {
-            jobIdList = Arrays.asList(statusReq.getJobIdList().split(","));
+        List<String> positionIdList = null;
+        if (StringsUtils.isNotEmpty(statusReq.getPositionIdList())) {
+            positionIdList = Arrays.asList(statusReq.getPositionIdList().split(","));
         }
         String userCode = commonService.getUserCode(req);
         String lang = commonService.getLanguage(req);
-        params.put("jobIdList", jobIdList);
-        params.put("lang",  lang);
+        params.put("positionIdList", positionIdList);
+        params.put("lang", lang);
         params.put("publisher", userCode);
         params.put("model", model);
         params.put("status", statusReq.getType());
@@ -481,13 +478,13 @@ public class EnterpriseService extends BaseService {
     }
 
     /**
+     * @param keyWordReq 关键词
+     * @return Map<String, Object>
      * @description 已发简历关键词检索
      * @author rayson
-     * @param keyWordReq 关键词
      * @date 2023-09-18 17:00
-     * @return Map<String,Object>
      **/
-    public Map<String, Object> searchUserCvByKeyWord(HttpServletRequest req, KeyWordReq keyWordReq,String model){
+    public Map<String, Object> searchUserCvByKeyWord(HttpServletRequest req, KeyWordReq keyWordReq, String model) {
         Map<String, Object> map = Maps.newHashMap();
         if (keyWordReq != null && StringsUtils.isEmpty(keyWordReq.getKeyWord())) {
             PagingResult<UserInfoResp> pagingResult = new PagingResult<>();
@@ -496,7 +493,7 @@ public class EnterpriseService extends BaseService {
             pagingResult.setPageSize(keyWordReq.getSize());
             pagingResult.setResultList(new ArrayList<UserInfoResp>());
             pagingResult.setPageNoSize(10);
-            map.put("page",pagingResult);
+            map.put("page", pagingResult);
             return map;
         }
         String language = commonService.getLanguage(req);
@@ -507,7 +504,7 @@ public class EnterpriseService extends BaseService {
         pageParam.put("publisher", userCode);
         pageParam.put("lang", language);
         pageParam.put("keyWord", keyWordReq.getKeyWord());
-        pageParam.put("model",model);
+        pageParam.put("model", model);
         page.setParams(pageParam);
         PagingResult<UserInfoResp> result = mdePositionCvRelDao.searchUserCvByKeyWord(page);
         // 所有简历数量
@@ -654,13 +651,16 @@ public class EnterpriseService extends BaseService {
     }
 
     /**
+     * @return PagingResult<AlreadyPublishPositionResp>
      * @description 获取已发布职位列表
      * @author rayson
      * @date 2023-09-19 14:34
-     * @return PagingResult<AlreadyPublishPositionResp>
      **/
-    public List<AlreadyPublishPositionResp> alreadyPublishPositionList(HttpServletRequest req){
-       return mdeJobAdvertisedDao.alreadyPublishPositionList( commonService.getUserCode(req));
+    public List<AlreadyPublishPositionResp> alreadyPublishPositionList(HttpServletRequest req) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("userCode", commonService.getUserCode(req));
+        map.put("lang", commonService.getLanguage(req));
+        return mdeJobAdvertisedDao.alreadyPublishPositionList(map);
     }
 
 
@@ -762,20 +762,59 @@ public class EnterpriseService extends BaseService {
     }
 
     /**
+     * @param jobId    发布职位id
+     * @param userCode 用户code
+     * @return void
      * @description 更新发布日期(招聘中职位)
      * @author rayson
-     * @param jobId 发布职位id
-     * @param userCode 用户code
      * @date 2023-09-18 14:33
-     * @return void
      **/
     @Transactional
-    public void updatePublishDate(String userCode,Integer jobId) {
+    public void updatePublishDate(String userCode, Integer jobId) {
         try {
-            mdeJobAdvertisedDao.updatePublishDate(userCode,jobId);
+            mdeJobAdvertisedDao.updatePublishDate(userCode, jobId);
         } catch (Exception e) {
             e.printStackTrace();
             throw new CustomException(InfoMsg.ERROR_UPDATE_USERCVSTATUS_FILE);
         }
     }
+
+
+    /**
+     * @param userCode 用户code
+     * @return void
+     * @description 删除职位
+     * @author rayson
+     * @date 2023-09-26 15:58
+     **/
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteJobAdvertised(String userCode, DeleteReq req) {
+
+        Map<String, Object> map = new HashMap<>(4);
+        map.put("userCode", userCode);
+        map.put("id", req.getId());
+        AdJobCvNumReq adJobCvNumReq = mdeJobAdvertisedDao.getJobCvNum(map);
+        if (null == adJobCvNumReq) {
+            throw new CustomException(InfoMsg.ERROR_NOPOSITION_ERROR);
+        }
+        if (1 != adJobCvNumReq.getStatus()) {
+            // 职位未关闭
+            throw new CustomException(InfoMsg.ERROR_POSITION_NOT_CLOSED);
+        }
+        map.put("versionNo", req.getVersionNo());
+        Integer result;
+        if (adJobCvNumReq.getCvNum() > 0) {
+            map.put("delFlag", 1);
+            // 逻辑删除
+            result = mdeJobAdvertisedDao.delete(map);
+        } else {
+            // 真删除
+            result = mdeJobAdvertisedDao.deleteByJobId(map);
+        }
+        if (result <= 0) {
+            throw new CustomException(InfoMsg.ERROR_DELETE_ERROR);
+        }
+
+    }
+
 }

+ 4 - 6
src/main/java/com/wechat/service/LoginService.java

@@ -2,11 +2,7 @@ package com.wechat.service;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -528,7 +524,9 @@ public class LoginService {
 			return new ResultEntity<>(InfoMsg.SUCCESS_REQUEST);
 		}
 		// 拆分关键词
-		Map<String, Object> param = keyWordSplit(searchReq.getKeyWord());
+//		Map<String, Object> param = keyWordSplit(searchReq.getKeyWord());
+		Map<String, Object> param = new HashMap<>(1);
+		param.put("keyWord",searchReq.getKeyWord());
 		list = mdeJobAdvertisedDao.searchJobNotLogin(param);
 		// 隐藏酒店名称前三位
 		// List<MdeJobAdvertised> mdeJobAdvertisedList =

+ 6 - 0
src/main/java/com/wechat/service/MdeJobAdvertisedService.java

@@ -1,9 +1,14 @@
 package com.wechat.service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.wechat.global.CustomException;
+import com.wechat.global.message.InfoMsg;
+import com.wechat.model.requestDto.DeleteReq;
 import org.springframework.stereotype.Service;
 
 import com.wechat.dao.MdeJobAdvertisedDao;
@@ -13,6 +18,7 @@ import com.wechat.model.dto.AvailableAndUsedCountDto;
 import com.wechat.model.responseDto.JobAdvertisedNologinResp;
 import com.wechat.model.responseDto.JobAdvertisedRes;
 import com.wechat.model.responseDto.JobAdvertisedResp;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class MdeJobAdvertisedService extends BaseService{

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 606 - 667
src/main/java/com/wechat/service/PositionService.java


+ 89 - 25
src/main/resources/mybatis/MdeJobAdvertisedMapper.xml

@@ -163,7 +163,8 @@
         ad.UPDATE_DATE AS publishDate,
         ad.JOB_STATUS AS jobStatus,
         rel2.cvNum AS cvNum,
-        IFNULL( rel2.newFlag, 9 ) AS newFlag
+        IFNULL( rel2.newFlag, 9 ) AS newFlag,
+        ad.VERSION_NO as versionNo
     </sql>
     <!-- 获取职位信息 -->
     <select id="get" resultMap="MdeJobAdvertised">
@@ -361,10 +362,43 @@
     <update id="delete">
         UPDATE mde_job_advertised
         SET version_no = version_no + 1,
-            del_flag   = #{DEL_FLAG_DELETE}
+            del_flag   = #{delFlag}
         WHERE job_id = #{id}
           and version_no = #{versionNo}
     </update>
+    
+    <delete id="deleteByJobId">
+        DELETE FROM mde_job_advertised
+        WHERE job_id = #{id}
+          AND version_no = #{versionNo}
+          AND PUBLISHER = #{userCode}
+    </delete>
+
+    <select id="getJobCvNum" resultType="com.wechat.model.requestDto.AdJobCvNumReq">
+        SELECT
+            ad.JOB_ID as jobId,
+            ad.JOB_NAME as jobName,
+            ad.JOB_STATUS as status,
+            IFNULL(rel2.cvNum,0)  as cvNum
+        FROM
+            mde_job_advertised ad
+                LEFT JOIN (
+                SELECT
+                    rel.POS_ID,
+                    COUNT( rel.INTV_ID ) AS cvNum,
+                    min( rel.CV_STATUS ) AS newFlag
+                FROM
+                    mde_position_cv_rel rel
+                        INNER JOIN mde_user u ON u.USER_CODE = rel.CANDIDATE
+                WHERE
+                    rel.PUBLISHER = #{userCode}
+                  AND u.DEL_FLAG = 0
+                GROUP BY
+                    rel.POS_ID
+            ) rel2 ON ad.JOB_ID = rel2.POS_ID
+        WHERE
+            ad.JOB_ID = #{id}
+    </select>
 
     <!-- 推荐职位 (已登录) -->
     <select id="getRecommentJobs" resultMap="MdeJobAdvertised">
@@ -503,13 +537,27 @@
         AND u.DEL_FLAG = 0
         AND j.JOB_STATUS = 0
         AND j.DEL_FLAG = 0
-        <if test="keyWord != null and keyWord.size() >0">
+<!--        <if test="keyWord != null and keyWord.size() >0">-->
+<!--            AND-->
+<!--            <foreach collection="keyWord" item="key" open="(" close=")" separator="or">-->
+<!--                CONCAT(a.`name`, b.`name`, c.`name`,j.ADD_DETAIL) LIKE CONCAT('%', #{key}, '%')-->
+<!--                OR u.`NAME` LIKE CONCAT('%', #{key}, '%')-->
+<!--                OR j.JOB_NAME LIKE CONCAT('%', #{key}, '%')-->
+<!--            </foreach>-->
+<!--        </if>-->
+        <if test="keyWord !=null">
             AND
-            <foreach collection="keyWord" item="key" open="(" close=")" separator="or">
-                CONCAT(a.`name`, b.`name`, c.`name`,j.ADD_DETAIL) LIKE CONCAT('%', #{key}, '%')
-                OR u.`NAME` LIKE CONCAT('%', #{key}, '%')
-                OR j.JOB_NAME LIKE CONCAT('%', #{key}, '%')
-            </foreach>
+            (
+            MATCH(j.JOB_NAME,j.ADD_DETAIL) AGAINST(#{keyWord} IN BOOLEAN MODE)
+            or
+            MATCH( u.NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
+            or
+            MATCH( a.NAME,a.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
+            or
+            MATCH( b.NAME,b.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
+            or
+            MATCH( c.NAME,c.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
+            )
         </if>
         GROUP BY j.PUBLISHER
         order by j.RECOMMEND_FLAG desc,j.update_date desc
@@ -538,21 +586,29 @@
             and a.job_status = 0
             AND u.del_flag = 0
             AND u.IDENTITY_FLAG = 1
-            <if test="keyWord !=null and keyWord.size() != 0">
-                and
-                (
+<!--            <if test="keyWord !=null and keyWord.size() != 0">-->
+<!--                and-->
+<!--                (-->
+<!--                (-->
+<!--                &lt;!&ndash; 职位名搜索 &ndash;&gt;-->
+<!--                <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">-->
+<!--                    a.JOB_NAME like concat('%',#{key},'%')-->
+<!--                </foreach>-->
+<!--                )-->
+<!--                &lt;!&ndash; 加入 按照酒店名称搜索 &ndash;&gt;-->
+<!--                or (-->
+<!--                <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">-->
+<!--                    u.name like concat("%", #{key},"%")-->
+<!--                </foreach>-->
+<!--                )-->
+<!--                )-->
+<!--            </if>-->
+            <if test="keyWord !=null">
+                AND
                 (
-                <!-- 职位名搜索 -->
-                <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
-                    a.JOB_NAME like concat('%',#{key},'%')
-                </foreach>
-                )
-                <!-- 加入 按照酒店名称搜索 -->
-                or (
-                <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
-                    u.name like concat("%", #{key},"%")
-                </foreach>
-                )
+                MATCH(a.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
+                or
+                MATCH( u.NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
                 )
             </if>
             <if test="position != null and position.size() != 0">
@@ -1002,15 +1058,23 @@
     <!-- 获取发布的职位列表 -->
     <select id="alreadyPublishPositionList" resultType="com.wechat.model.responseDto.AlreadyPublishPositionResp">
         SELECT
-            ad.JOB_ID AS jobId,
-            ad.JOB_NAME AS jobName
+        p.POSITION_ID AS positionId,
+        <choose>
+            <when test="lang=='en'.toString()">
+                p.POSITION_NAME_EN AS positionName
+            </when>
+            <otherwise>
+                p.POSITION_NAME_CN AS positionName
+            </otherwise>
+        </choose>
         FROM
             mde_job_advertised ad
+            left join mde_position p on ad.POSITION_ID = p.POSITION_ID
         WHERE
             ad.DEL_FLAG = 0
         AND ad.PUBLISHER = #{userCode}
         GROUP BY
-            ad.JOB_NAME
+            ad.POSITION_ID
         ORDER BY
             ad.JOB_STATUS ASC
     </select>

+ 6 - 14
src/main/resources/mybatis/MdePositionCvRelMapper.xml

@@ -481,7 +481,6 @@
                 GROUP BY
                 edu.USER_CODE
                 ) edumin ON edumin.USER_CODE = p.CANDIDATE
-
                 left JOIN sys_dict s
                 on edumin.EDUCATION = s.`value`
                 AND s.type = 'education'
@@ -490,12 +489,9 @@
                 <if test="status != null and status != ''">
                     AND p.CV_STATUS =#{status}
                 </if>
-                <if test="jobId != null and jobId != ''">
-                    AND j.JOB_ID =#{jobId}
-                </if>
-                <if test="jobIdList != null">
-                    AND j.JOB_ID IN
-                    <foreach collection="jobIdList" item="id" separator="," open="(" close=")">
+                <if test="positionIdList != null">
+                    AND j.POSITION_ID IN
+                    <foreach collection="positionIdList" item="id" separator="," open="(" close=")">
                         #{id}
                     </foreach>
                 </if>
@@ -597,7 +593,6 @@
         GROUP BY
         edu.USER_CODE
         ) edumin ON edumin.USER_CODE = p.CANDIDATE
-
         left JOIN sys_dict s
         on edumin.EDUCATION = s.`value`
         AND s.type = 'education'
@@ -606,12 +601,9 @@
         <if test="status != null and status != ''">
             AND p.CV_STATUS =#{status}
         </if>
-        <if test="jobId != null and jobId != ''">
-            AND j.JOB_ID =#{jobId}
-        </if>
-        <if test="jobIdList != null">
-            AND j.JOB_ID IN
-            <foreach collection="jobIdList" item="id" separator="," open="(" close=")">
+        <if test="positionIdList != null">
+            AND j.POSITION_ID IN
+            <foreach collection="positionIdList" item="id" separator="," open="(" close=")">
                   #{id}
             </foreach>
         </if>

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio