Pārlūkot izejas kodu

公司认证,发布职位

Your Name 8 mēneši atpakaļ
vecāks
revīzija
3d130a6767

+ 3 - 0
src/main/java/com/sqx/modules/intention/controller/AppIntentionController.java

@@ -40,6 +40,9 @@ public class AppIntentionController {
         Intention.setIndustryId(201L);
         Intention.setIndustryOneId(200L);
         Intention.setIsDefault(1);
+        String[] parts = Intention.getSalaryRange().trim().split("-", 2);
+        Intention.setMinSalary(Integer.parseInt(parts[0].trim()));
+        Intention.setMaxSalary(Integer.parseInt(parts[1].trim()));
         return intentionService.saveUpdate(Intention);
     }
 

+ 2 - 0
src/main/java/com/sqx/modules/intention/entity/Intention.java

@@ -90,5 +90,7 @@ public class Intention implements Serializable {
      *是否是默认 0否 1是
      */
     private Integer isDefault;
+    private Integer minSalary;
+    private Integer maxSalary;
 
 }

+ 1 - 0
src/main/java/com/sqx/modules/resumes/controller/app/AppPostPushController.java

@@ -39,6 +39,7 @@ public class AppPostPushController {
     @ApiOperation("添加或修改招聘信息")
     public Result savePostPush(@RequestBody PostPush postPush, @RequestAttribute("userId") Long userId) {
         postPush.setUserId(String.valueOf(userId));
+        postPush.setOrderId(1);
         return postPushService.savePostPush(postPush, userId);
     }
 

+ 5 - 3
src/main/java/com/sqx/modules/resumes/controller/app/AppResumesController.java

@@ -10,11 +10,13 @@ import com.sqx.modules.app.service.UserBrowseService;
 import com.sqx.modules.app.service.UserService;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.firstLogin.entity.ResumesDto;
 import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
 import com.sqx.modules.myCollection.service.MyCollectionService;
 import com.sqx.modules.resumes.entity.Resumes;
 import com.sqx.modules.resumes.entity.ResumesDetails;
+import com.sqx.modules.resumes.entity.ResumesListDto;
 import com.sqx.modules.resumes.entity.RuleClassify;
 import com.sqx.modules.resumes.service.ResumesDetailsService;
 import com.sqx.modules.resumes.service.ResumesService;
@@ -155,10 +157,10 @@ public class AppResumesController {
 //    public Result selectResumesList(Integer page, Integer limit, Long companyId, Resumes resumes, Integer screen) {
 //        return resumesService.selectResumesListByCompany(page, limit, companyId, resumes, screen);
 
-    @GetMapping("selectResumesList")
+    @PostMapping("selectResumesList")
     @ApiOperation("查询简历列表")
-    public  Result selectResumesListHr(Integer page, Integer limit){
-        return  resumesService.selectResumesListHr(page,limit);
+    public  Result selectResumesListHr(Integer page, Integer limit,@RequestBody ResumesListDto resumesDto){
+        return  resumesService.selectResumesListHr(page,limit,resumesDto);
     }
 
     /**

+ 4 - 1
src/main/java/com/sqx/modules/resumes/dao/ResumesDao.java

@@ -3,6 +3,7 @@ package com.sqx.modules.resumes.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sqx.modules.firstLogin.entity.ResumesDto;
 import com.sqx.modules.resumes.entity.Resumes;
 import com.sqx.modules.resumes.entity.ResumesListDto;
 import org.apache.ibatis.annotations.Mapper;
@@ -28,5 +29,7 @@ public interface ResumesDao extends BaseMapper<Resumes> {
 
     Resumes selectResumesByResumesId(@Param("userId") Long userId, @Param("resumesId") Long resumesId);
 
-    List<Object> selectResumesListHr(@Param("page")Page<ResumesListDto> page);
+    Page<ResumesListDto> selectResumesListHr(Page<ResumesListDto> pages,ResumesListDto resumesDto);
+
+    IPage<ResumesListDto> selectPage(Page<ResumesListDto> pages, Page<ResumesListDto> resumesListDtoPage);
 }

+ 26 - 23
src/main/java/com/sqx/modules/resumes/entity/ResumesListDto.java

@@ -4,26 +4,29 @@ import lombok.Data;
 
 @Data
 public class ResumesListDto {
-//    u.user_id,
-//    u.user_name,
-//    last_work.type AS work_type,
-//    last_work.company_name,
-//    last_work.skills,
-//    last_work.end_time AS last_work_end_time,
-//    last_work.work_content,
-//    e.school,
-//    e.degree,
-//    intent.rule_classify_name AS expected_position,
-//    intent.salary_range AS expected_range
-    private  Integer userId;
-    private  String userName;
-    private  String WorkType;
-    private  String companyName;
-    private  String skills;
-    private  String workContent;
-    private  String school;
-    private  String degree;
-    private  String expectedPosition;
-    private  String expectedRange;
-    private  String profession;
-}
+        // 用户基本信息
+        private String userName;
+
+        // 工作经历信息
+        private String workType;
+        private String companyName;
+        private String skills;// 最后工作结束时间
+        private String lastWorkStartTime;
+        private String lastWorkEndTime;
+        private String workContent;
+
+        // 教育经历信息
+        private String school;
+        private String degree;  // 学历(如本科、硕士)
+
+        // 求职意向信息
+        private String expectedPosition;  // 期望职位
+        private String expectedCity;      // 期望城市
+        private Integer minSalary; // 期望薪资范围
+        private Integer maxSalary;
+        // 简历信息
+        private String resumesEducation;  // 简历学历信息
+        private String resumesWorkExperience;  // 简历工作经历信息
+        private Long resumesId;
+    }
+

+ 3 - 1
src/main/java/com/sqx/modules/resumes/service/ResumesService.java

@@ -3,7 +3,9 @@ package com.sqx.modules.resumes.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.Result;
+import com.sqx.modules.firstLogin.entity.ResumesDto;
 import com.sqx.modules.resumes.entity.Resumes;
+import com.sqx.modules.resumes.entity.ResumesListDto;
 import com.sqx.modules.utils.excel.ExcelData;
 
 
@@ -44,5 +46,5 @@ public interface ResumesService extends IService<Resumes> {
 
     Result updateShow(Long resumesId);
 
-    Result selectResumesListHr(Integer page, Integer limit);
+    Result selectResumesListHr(Integer page, Integer limit, ResumesListDto resumesDto);
 }

+ 3 - 2
src/main/java/com/sqx/modules/resumes/service/impl/ResumesServiceImpl.java

@@ -16,6 +16,7 @@ import com.sqx.modules.chat.entity.ChatConversation;
 import com.sqx.modules.chat.service.ChatContentService;
 import com.sqx.modules.chat.service.ChatConversationService;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.firstLogin.entity.ResumesDto;
 import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
 import com.sqx.modules.resumes.dao.ResumesDao;
@@ -233,7 +234,7 @@ public class ResumesServiceImpl extends ServiceImpl<ResumesDao, Resumes> impleme
         return Result.success().put("data", new PageUtils(resumesPage));
    }
     @Override
-    public Result selectResumesListHr(Integer page, Integer limit) {
+    public Result selectResumesListHr(Integer page, Integer limit, ResumesListDto resumesDto) {
         Page<ResumesListDto> pages;
         if (page != null && limit != null) {
             pages = new Page<>(page, limit);
@@ -241,7 +242,7 @@ public class ResumesServiceImpl extends ServiceImpl<ResumesDao, Resumes> impleme
             pages = new Page<>();
             pages.setSize(-1);
         }
-    List<Object> resumesPage = baseMapper.selectResumesListHr(pages) ;
+    IPage<ResumesListDto> resumesPage = baseMapper.selectResumesListHr(pages,resumesDto) ;
     return Result.success().put("data",resumesPage);
 }
 

+ 30 - 37
src/main/resources/mapper/resumes/ResumesDao.xml

@@ -70,19 +70,28 @@
     </select>
     <select id="selectResumesListHr" resultType="com.sqx.modules.resumes.entity.ResumesListDto">
         SELECT
-        u.user_id,
-        u.user_name,
-        last_work.type AS work_type,
-        last_work.company_name,
-        last_work.skills,
-        last_work.work_content,
-        e.school,
-        e.degree,
-        e.profession,
-        intent.rule_classify_name AS expected_position,
-        intent.salary_range AS expected_range
+        u.user_name AS userName,
+        last_work.type AS workType,
+        last_work.company_name AS companyName,
+        last_work.skills AS skills,
+        last_work.start_time As lastWorkStartTime,
+        last_work.end_time AS lastWorkEndTime,
+        last_work.work_content AS workContent,
+        e.school AS school,
+        e.degree AS degree,
+        intent.all_expected_positions AS expectedPositions,
+        intent.all_expected_cities AS expectedCity,
+        intent.min_salary AS minSalary,
+        intent.max_salary AS maxSalary,
+        resumes.status AS resumesStatus,
+        resumes.resumes_education AS resumesEducation,
+        resumes.resumes_work_experience AS resumesWorkExperience,
+        resumes.resumes_id AS resumesId
         FROM
         tb_user u
+        INNER JOIN resumes
+        ON u.user_id = resumes.user_id
+        AND resumes.`status` = 1  -- 简历状态为1(按实际业务含义)
         INNER JOIN (
         SELECT
         edu.*,
@@ -101,34 +110,18 @@
         INNER JOIN work_exp_detail wed ON we.work_exp_id = wed.work_exp_id
         WHERE we.is_use = 1
         ) last_work ON u.user_id = last_work.user_id AND last_work.work_rn = 1
+
         INNER JOIN (
         SELECT
-        intent.*,
-        ROW_NUMBER() OVER (
-        PARTITION BY intent.user_id
-        ORDER BY intent.is_default DESC, intent.create_time DESC
-        ) AS intent_rn
-        FROM intention intent
-        ) intent ON u.user_id = intent.user_id AND intent.intent_rn = 1
-        <where>
-
-            <if test="userName != null and userName != ''">
-                AND u.user_name LIKE CONCAT('%', #{userName}, '%')
-            </if>
-
-            <if test="workType != null and workType != ''">
-                AND last_work.type = #{workType}
-            </if>
-
-            <if test="degree != null and degree != ''">
-                AND e.school LIKE CONCAT('%', #{school}, '%')
-            </if>
-
-            <if test="expectedPosition != null and expectedPosition != ''">
-                AND intent.rule_classify_name LIKE CONCAT('%', #{expectedPosition}, '%')
-            </if>
-        </where>
-        ORDER BY u.user_id DESC
+        user_id,
+        GROUP_CONCAT(DISTINCT rule_classify_name SEPARATOR ',') AS all_expected_positions,
+        GROUP_CONCAT(DISTINCT citys SEPARATOR ',') AS all_expected_cities,
+        MIN(min_salary) AS min_salary,
+        MAX(max_salary) AS max_salary
+        FROM intention
+        WHERE is_default = 1
+        GROUP BY user_id
+        ) intent ON u.user_id = intent.user_id;
     </select>
     <select id="selectResumesListByCompany" resultType="com.sqx.modules.resumes.entity.Resumes">
         SELECT