Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

xiao547607 3 gadi atpakaļ
vecāks
revīzija
5e99f5b0bb
25 mainītis faili ar 631 papildinājumiem un 93 dzēšanām
  1. 8 0
      common/src/main/java/com/jpsoft/employment/modules/common/dto/MessageResultBuilder.java
  2. 50 0
      common/src/main/java/com/jpsoft/employment/modules/common/dto/MessageResultSimple.java
  3. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/JobUserDAO.java
  4. 21 5
      common/src/main/java/com/jpsoft/employment/modules/job/dao/RecruitmentCollectionDAO.java
  5. 9 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/RecruitmentDAO.java
  6. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeDAO.java
  7. 10 0
      common/src/main/java/com/jpsoft/employment/modules/job/entity/ApproveStatusConstant.java
  8. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/JobUserService.java
  9. 31 3
      common/src/main/java/com/jpsoft/employment/modules/job/service/RecruitmentCollectionService.java
  10. 9 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/RecruitmentService.java
  11. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/ResumeService.java
  12. 9 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/JobUserServiceImpl.java
  13. 23 8
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/RecruitmentCollectionServiceImpl.java
  14. 13 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/RecruitmentServiceImpl.java
  15. 9 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/ResumeServiceImpl.java
  16. 26 0
      common/src/main/resources/mapper/job/JobUser.xml
  17. 10 4
      common/src/main/resources/mapper/job/Recruitment.xml
  18. 101 9
      common/src/main/resources/mapper/job/RecruitmentCollection.xml
  19. 79 23
      common/src/main/resources/mapper/job/Resume.xml
  20. 2 0
      common/src/main/resources/mapper/job/UserBrowse.xml
  21. 2 0
      common/src/main/resources/mapper/job/UserCollection.xml
  22. 1 0
      web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java
  23. 1 6
      web/src/main/java/com/jpsoft/employment/modules/job/controller/RecruitmentController.java
  24. 22 13
      web/src/main/java/com/jpsoft/employment/modules/job/controller/ResumeController.java
  25. 191 22
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/RecruiterApiController.java

+ 8 - 0
common/src/main/java/com/jpsoft/employment/modules/common/dto/MessageResultBuilder.java

@@ -9,4 +9,12 @@ public class MessageResultBuilder {
     public static <T>  MessageResult<T> error(String msg){
         return new MessageResult<T>(false,msg,null,500);
     }
+    
+    public static  MessageResultSimple success(Object data){
+        return new MessageResultSimple(true,null,data,200);
+    }
+
+    public static  MessageResultSimple failed(String msg){
+        return new MessageResultSimple(false,msg,null,500);
+    }
 }

+ 50 - 0
common/src/main/java/com/jpsoft/employment/modules/common/dto/MessageResultSimple.java

@@ -0,0 +1,50 @@
+package com.jpsoft.employment.modules.common.dto;
+
+public class MessageResultSimple {
+	private boolean result;
+	private String message;
+	private Object data;
+	private int code = 200;
+
+	public MessageResultSimple() {
+	}
+
+	public MessageResultSimple(boolean result, String message, Object data, int code) {
+		this.result = result;
+		this.message = message;
+		this.data = data;
+		this.code = code;
+	}
+
+	public boolean isResult() {
+		return result;
+	}
+
+	public void setResult(boolean result) {
+		this.result = result;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	public void setData(Object data) {
+		this.data = data;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+}

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dao/JobUserDAO.java

@@ -18,4 +18,5 @@ public interface JobUserDAO {
 	int delete(String id);
 	List<JobUser> list();
 	List<JobUser> search(Map<String, Object> searchParams, List<Sort> sortList);
+	List<Map> foundInterestList(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 21 - 5
common/src/main/java/com/jpsoft/employment/modules/job/dao/RecruitmentCollectionDAO.java

@@ -1,13 +1,13 @@
 package com.jpsoft.employment.modules.job.dao;
 
 import java.util.List;
+import java.util.Map;
 
-import com.jpsoft.employment.modules.job.entity.ResumeVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
-import com.jpsoft.employment.modules.job.entity.RecruitmentCollection;
-import java.util.Map;
+
 import com.jpsoft.employment.modules.common.dto.Sort;
-import org.apache.ibatis.annotations.Param;
+import com.jpsoft.employment.modules.job.entity.RecruitmentCollection;
 
 @Repository
 public interface RecruitmentCollectionDAO {
@@ -24,5 +24,21 @@ public interface RecruitmentCollectionDAO {
      * @param sortList
      * @return
      */
-    List<ResumeVO> pagedLoad(Map<String, Object> searchParams, List<Sort> sortList);
+    List<Map<String,Object>> pagedLoadCollectResumes(Map<String, Object> searchParams, List<Sort> sortList);
+
+	/**
+	 * 招聘方:招聘主页(显示有效的简历(还未入职的所有简历))
+	 * @param searchParams
+	 * @param sortList
+	 * @return
+	 */
+	List<Map<String,Object>> pagedLoadAllResumes(Map<String, Object> searchParams, List<Sort> sortList);
+	
+	/**
+	 * 招聘方:收藏的简历,取消收藏
+	 * @param resumeId
+	 * @param hrId
+	 * @return
+	 */
+	int updateCancelCollect(@Param("resumeId") String resumeId,@Param("hrId") String hrId);
 }

+ 9 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dao/RecruitmentDAO.java

@@ -34,4 +34,13 @@ public interface RecruitmentDAO {
      * @return
      */
     Map<String,Object> rptMyRecruitmentCount(String hrId);
+    
+    /**
+	 * 招聘方职位管理:上下架操作
+	 * @param recruitmentId
+	 * @param publishTag
+	 * @param caller
+	 * @return
+	 */
+	int updateForPublish(@Param("recruitmentId") String recruitmentId,@Param("publishTag") String publishTag,@Param("caller") String caller);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeDAO.java

@@ -17,4 +17,5 @@ public interface ResumeDAO {
 	List<Resume> list();
 	List<Resume> search(@Param("searchParams") Map<String,Object> searchParams, @Param("sortList")List<Sort> sortList);
 	Resume findByUserId(String userId);
+	List<Map> foundJobManagement(@Param("searchParams") Map<String,Object> searchParams, @Param("sortList")List<Sort> sortList);
 }

+ 10 - 0
common/src/main/java/com/jpsoft/employment/modules/job/entity/ApproveStatusConstant.java

@@ -0,0 +1,10 @@
+package com.jpsoft.employment.modules.job.entity;
+
+public class ApproveStatusConstant {
+
+	public static final String UNCREATE="1";  //未创建
+	
+	public static final String APPROVING="2";  //审批中
+	
+	public static final String FINISH="3";  // 已审批
+}

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/JobUserService.java

@@ -17,4 +17,5 @@ public interface JobUserService {
 	JobUser findByPhone(String phone);
 	List<JobUser> list();
 	Page<JobUser> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	Page<Map> foundInterestList(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList);
 }

+ 31 - 3
common/src/main/java/com/jpsoft/employment/modules/job/service/RecruitmentCollectionService.java

@@ -2,10 +2,10 @@ package com.jpsoft.employment.modules.job.service;
 
 import java.util.List;
 import java.util.Map;
-import com.jpsoft.employment.modules.job.entity.RecruitmentCollection;
+
 import com.github.pagehelper.Page;
 import com.jpsoft.employment.modules.common.dto.Sort;
-import com.jpsoft.employment.modules.job.entity.ResumeVO;
+import com.jpsoft.employment.modules.job.entity.RecruitmentCollection;
 
 public interface RecruitmentCollectionService {
 	RecruitmentCollection get(String id);
@@ -16,5 +16,33 @@ public interface RecruitmentCollectionService {
 	List<RecruitmentCollection> list();
 	Page<RecruitmentCollection> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 
-	Page<ResumeVO> pagedLoad(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList);
+	/**
+	 * 招聘方:收藏的简历
+	 * @param searchParams
+	 * @param pageNumber
+	 * @param pageSize
+	 * @param count
+	 * @param sortList
+	 * @return
+	 */
+	Page<Map<String,Object>> pagedLoadCollectResumes(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList);
+
+	/**
+	 * 招聘方:招聘主页(所有为入职的简历)
+	 * @param searchParams
+	 * @param pageNumber
+	 * @param pageSize
+	 * @param count
+	 * @param sortList
+	 * @return
+	 */
+	Page<Map<String,Object>> pagedLoadAllResumes(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList);
+	
+	/**
+	 * 招聘方:收藏的简历,取消收藏
+	 * @param resumeId
+	 * @param hrId
+	 * @return
+	 */
+	boolean updateCancelCollect(String resumeId,String hrId);
 }

+ 9 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/RecruitmentService.java

@@ -34,4 +34,13 @@ public interface RecruitmentService {
 	 * @return
 	 */
 	Map<String,Object> rptMyRecruitmentCount(String hrId);
+	
+	/**
+	 * 招聘方职位管理:上下架操作
+	 * @param recruitmentId
+	 * @param publishTag
+	 * @param caller
+	 * @return
+	 */
+	boolean updateForPublish(String recruitmentId,String publishTag,String caller);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/ResumeService.java

@@ -15,4 +15,5 @@ public interface ResumeService {
 	List<Resume> list();
 	Page<Resume> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 	Resume findByUserId(String userId);
+	Page<Map> foundJobManagement(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 9 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/impl/JobUserServiceImpl.java

@@ -78,4 +78,13 @@ public class JobUserServiceImpl implements JobUserService {
         
         return page;
 	}
+
+	@Override
+	public Page<Map> foundInterestList(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+			jobUserDAO.foundInterestList(searchParams,sortList);
+		});
+
+		return page;
+	}
 }

+ 23 - 8
common/src/main/java/com/jpsoft/employment/modules/job/service/impl/RecruitmentCollectionServiceImpl.java

@@ -2,18 +2,18 @@ package com.jpsoft.employment.modules.job.service.impl;
 
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
+
 import javax.annotation.Resource;
 
-import com.jpsoft.employment.modules.job.entity.ResumeVO;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import com.jpsoft.employment.modules.common.dto.Sort;
 import com.jpsoft.employment.modules.job.dao.RecruitmentCollectionDAO;
 import com.jpsoft.employment.modules.job.entity.RecruitmentCollection;
 import com.jpsoft.employment.modules.job.service.RecruitmentCollectionService;
-import com.github.pagehelper.Page;
-import com.jpsoft.employment.modules.common.dto.Sort;
-import com.github.pagehelper.PageHelper;
 
 @Transactional
 @Component(value="recruitmentCollectionService")
@@ -71,11 +71,26 @@ public class RecruitmentCollectionServiceImpl implements RecruitmentCollectionSe
 	}
 
 	@Override
-	public Page<ResumeVO> pagedLoad(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-		Page<ResumeVO> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-			recruitmentCollectionDAO.pagedLoad(searchParams,sortList);
+	public Page<Map<String,Object>> pagedLoadCollectResumes(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+		Page<Map<String,Object>> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+			recruitmentCollectionDAO.pagedLoadCollectResumes(searchParams,sortList);
 		});
 
 		return page;
 	}
+
+	@Override
+	public Page<Map<String,Object>> pagedLoadAllResumes(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+		Page<Map<String,Object>> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+			recruitmentCollectionDAO.pagedLoadAllResumes(searchParams,sortList);
+		});
+
+		return page;
+	}
+
+	@Override
+	public boolean updateCancelCollect(String resumeId,String hrId) {
+		int num=recruitmentCollectionDAO.updateCancelCollect(resumeId,hrId);
+		return num>0;
+	}
 }

+ 13 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/impl/RecruitmentServiceImpl.java

@@ -8,7 +8,10 @@ import javax.annotation.Resource;
 import com.jpsoft.employment.modules.job.entity.RecruitmentVO;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+
 import com.jpsoft.employment.modules.job.dao.RecruitmentDAO;
+import com.jpsoft.employment.modules.job.entity.ApproveStatusConstant;
 import com.jpsoft.employment.modules.job.entity.Recruitment;
 import com.jpsoft.employment.modules.job.service.RecruitmentService;
 import com.github.pagehelper.Page;
@@ -95,4 +98,14 @@ public class RecruitmentServiceImpl implements RecruitmentService {
 		return recruitmentDAO.rptMyRecruitmentCount(hrId);
 	}
 
+	@Override
+	public boolean updateForPublish(String recruitmentId, String publishTag,String caller) {
+		if("1".equals(publishTag)) {  //如果是上架操作,先进行审核状态判断,只有审核完才能上架
+			Recruitment  rec=recruitmentDAO.get(recruitmentId);
+			Assert.state(rec!=null&&ApproveStatusConstant.FINISH.equals(rec.getApproveStatus()),"只有审核完成的才能进行上架");
+		}
+		int num=recruitmentDAO.updateForPublish(recruitmentId, publishTag,caller);
+		return num>0;
+	}
+
 }

+ 9 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/impl/ResumeServiceImpl.java

@@ -72,4 +72,13 @@ public class ResumeServiceImpl implements ResumeService {
         
         return page;
 	}
+
+	@Override
+	public Page<Map> foundJobManagement(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+			resumeDAO.foundJobManagement(searchParams,sortList);
+		});
+
+		return page;
+	}
 }

+ 26 - 0
common/src/main/resources/mapper/job/JobUser.xml

@@ -151,4 +151,30 @@
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+
+	<!--用于移动端接口:招聘方【对您感兴趣】-->
+	<select id="foundInterestList" parameterType="hashmap" resultType="map">
+		<![CDATA[
+			SELECT DISTINCT
+			  jj.id_ jobUserId,
+			  jj.real_name name,
+			  jj.head_image_url headImage,
+			  jre.id_ id,
+			  su.id_ sysUseId
+			FROM
+			  job_user_browse jub
+			INNER JOIN job_recruitment jr ON jub.job_recruitment_id = jr.id_
+			INNER JOIN sys_user su ON jr.company_id = su.company_id
+			INNER JOIN job_jobuser jj ON jub.job_user_id = jj.id_
+			LEFT JOIN job_resume jre ON jj.id_ = jre.job_user_id
+		]]>
+		<where>
+			<if test="searchParams.id != null">
+				and su.id = #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+			${sort.name} ${sort.order}
+		</foreach>
+	</select>
 </mapper>

+ 10 - 4
common/src/main/resources/mapper/job/Recruitment.xml

@@ -260,7 +260,8 @@
 			SELECT
 			    jr.del_flag,
 			    jr.create_by,
-				jr.update_time updateTime,
+			    jr.id_  recruitmentId,
+				DATE_FORMAT(jr.update_time,'%c月%e日 %H:%i') updateTime,
 				jr.status_ status,
 				jr.approve_status approveStatus,
 				jr.title_ title,
@@ -274,6 +275,7 @@
 			left join sys_data_dictionary waged on jr.wage_type=waged.id_ and waged.del_flag=0
 			left join sys_data_dictionary workyeard on jr.work_year=workyeard.id_ and workyeard.del_flag=0
 			left join sys_data_dictionary educationd on jr.education_=educationd.id_ and educationd.del_flag=0
+
 			) TAB
 		]]>
 		<where>
@@ -284,10 +286,10 @@
 				and create_by=#{searchParams.recruiter}
 			</if>
 			<if test='searchParams.status =="publish"'> <!--按招聘状态过滤publish:已发布且审核完;approve:审核中;close:关闭下架-->
-				and status='1'
+				and status='1' and approveStatus='3'  <!--sys_data_dictionary where parent_id='163b92e3-9847-4370-a31e-6d62bed279e8'  -->
 			</if>
 			<if test='searchParams.status =="approve"'>
-				and status='1' and approveStatus='eeba3cbf-80b3-4db9-a9e6-695f00c087b5'
+				and status='1' and approveStatus='2'
 			</if>
 			<if test='searchParams.status =="close"'>
 				and status='0'
@@ -300,8 +302,12 @@
 
 	<!--招聘方个人中心主页:统计已发布的招聘,被浏览量(不包含已撤销的(已关闭的))-->
 	<select id="rptMyRecruitmentCount" parameterType="String" resultType="Map">
-		select count(1) jobCount,sum(reading_times) readTimes from job_recruitment where create_by=#{0} and status_='open'
+		select count(1) jobCount,sum(reading_times) readTimes from job_recruitment where create_by=#{0} and status_='1'
 	</select>
 
+	<!--招聘方职位管理 上下架管理-->
+	<update id="updateForPublish">
+		update job_recruitment  set status_=#{publishTag},update_time=now(),update_by=#{caller}   where id_=#{recruitmentId}
+	</update>
 
 </mapper>

+ 101 - 9
common/src/main/resources/mapper/job/RecruitmentCollection.xml

@@ -117,10 +117,11 @@ id_,create_by,create_time,update_by,update_time,del_flag,company_id,sys_user_id,
 	</select>
 
 	<!--用于移动端接口:招聘方【收藏简历】-->
-	<select id="pagedLoad" parameterType="hashMap" resultType="Map">
+	<select id="pagedLoadCollectResumes" parameterType="hashMap" resultType="Map">
 		<![CDATA[
 			select  * from (select
 			c.sys_user_id hrId,
+			c.resume_id resumeId,
 			ju.real_name  realName,
 			ju.head_image_url headImage,
 			ju.address_ address,
@@ -128,28 +129,119 @@ id_,create_by,create_time,update_by,update_time,del_flag,company_id,sys_user_id,
 			w.name_ positionCategoryName,
 			workExpw.name_  workExp,
 			eduw.name_ eduName,
-			sexw.name_  sexName,
+			sexw.name_  sex,
 			jobstaw.name_  jobStatus,
 			drmoneyw.name_ dreamMoney,
 			c.update_time collectionTime,
-			c.del_flag
+			c.del_flag,
+			r.education_,
+			r.work_exp,
+			r.dream_money,
+			r.job_status,
+			r.position_category_id
 			from job_recruitment_collection  c inner join job_resume  r on c.resume_id=r.id_
 			inner join job_jobuser ju on r.job_user_id=ju.id_ and ju.del_flag=0
 			left join job_work_category w on r.position_category_id=w.id_ and w.del_flag=0
-			left join sys_data_dictionary workExpw on r.work_exp=workExpw.value_ and workExpw.del_flag=0  and workExpw.parent_id='7724a25f-a781-46f4-b048-d9812108ff02'
-			left join sys_data_dictionary eduw on r.education_=eduw.value_ and eduw.del_flag=0  and eduw.parent_id='c1887d9d-e945-4875-be3f-905195cd8a8e'
-			left join sys_data_dictionary sexw on r.sex_=sexw.value_ and sexw.del_flag=0  and sexw.parent_id='0c3194dc-884d-4ea9-9966-dfb94f537f5c'
-			left join sys_data_dictionary jobstaw on ju.job_status=jobstaw.value_ and jobstaw.del_flag=0  and jobstaw.parent_id='e03f43d0-46f8-4696-a6f2-331d353dccd8'
-			left join sys_data_dictionary drmoneyw on r.dream_money=drmoneyw.value_ and drmoneyw.del_flag=0  and drmoneyw.parent_id='b5e4a52a-9f89-4e3b-976f-79207a40587d'
+			left join sys_data_dictionary workExpw on r.work_exp=workExpw.id_ and workExpw.del_flag=0  
+			left join sys_data_dictionary eduw on r.education_=eduw.id_ and eduw.del_flag=0 
+			left join sys_data_dictionary sexw on r.sex_=sexw.id_ and sexw.del_flag=0  
+			left join sys_data_dictionary jobstaw on r.job_status=jobstaw.id_ and jobstaw.del_flag=0  
+			left join sys_data_dictionary drmoneyw on r.dream_money=drmoneyw.id_ and drmoneyw.del_flag=0  
 			) tab
 		]]>
 		<where>
 			<if test="1==1">
 				and del_flag=0 and hrId = #{searchParams.recruiterId}
 			</if>
-			<if test="searchParams.positionName != null">
+			<if test="searchParams.positionName != null and searchParams.positionName !=''">
 				and positionCategoryName like #{searchParams.positionName}
 			</if>
+			<if test="searchParams.positionId != null and searchParams.positionId !=''">
+				and position_category_id in (select id_ from job_work_category  where instr(code_,#{searchParams.positionId})>0)
+			</if>
+			<if test="searchParams.education != null and searchParams.education != ''">
+				and education_ = #{searchParams.education}
+			</if>
+			<if test="searchParams.workExp != null and searchParams.workExp !='' ">
+				and work_exp = #{searchParams.workExp}
+			</if>
+			
+			<if test="searchParams.dreamMoney != null and searchParams.dreamMoney !=''">
+				and dream_money = #{searchParams.dreamMoney}
+			</if>
+			<if test="searchParams.jobStatus != null and searchParams.jobStatus != ''">
+				and job_status = #{searchParams.jobStatus}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+			${sort.name} ${sort.order}
+		</foreach>
+	</select>
+	
+	<!-- 用于移动端接口:招聘方【收藏简历】 取消收藏 -->
+	<update id="updateCancelCollect">
+		update job_recruitment_collection  set del_flag=1,update_time=now(),update_by=#{hrId} where resume_id=#{resumeId} and sys_user_id=#{hrId}
+	</update>
+
+	<!--用于移动端接口:招聘方【招聘主页】-->
+	<select id="pagedLoadAllResumes" parameterType="hashMap" resultType="Map">
+		<![CDATA[
+			select  * from (select
+				ju.real_name  realName,
+				ju.head_image_url headImage,
+				ju.address_ address,
+				year(now())-year(ju.birthday_)  age,
+				w.name_ positionCategoryName,
+				workExpw.name_   workExp,
+				eduw.name_  eduName,
+				sexw.name_   sex,
+				jobstaw.name_   jobStatus,
+				drmoneyw.name_  dreamMoney,
+				r.id_ as resumeId,
+				r.del_flag,
+				r.update_time,
+				rede.chat_status,
+				rerd.browse_count,
+				r.education_,
+				r.work_exp,
+				r.dream_money,
+				r.job_status,
+				r.position_category_id
+			from job_resume  r
+			inner join job_jobuser ju on r.job_user_id=ju.id_ and ju.del_flag=0
+			left join job_resume_deliver rede on r.id_=rede.job_resume_id and rede.del_flag=0
+			left join job_work_category w on r.position_category_id=w.id_ and w.del_flag=0
+			left join sys_data_dictionary workExpw on r.work_exp=workExpw.id_ and workExpw.del_flag=0  
+			left join sys_data_dictionary eduw on r.education_=eduw.id_ and eduw.del_flag=0  
+			left join sys_data_dictionary sexw on r.sex_=sexw.id_ and sexw.del_flag=0  
+			left join sys_data_dictionary jobstaw on r.job_status=jobstaw.id_ and jobstaw.del_flag=0
+			left join sys_data_dictionary drmoneyw on r.dream_money=drmoneyw.id_ and drmoneyw.del_flag=0 
+			left join (select count(1) browse_count,job_resume_id from job_user_browse_hr where del_flag=0 group by job_resume_id) rerd  on r.id_=rerd.job_resume_id
+			) tab
+		]]>
+		<where>
+			<if test="1==1">
+				<![CDATA[ and del_flag=0  and (chat_status is null or chat_status <>'5') ]]>  <!--非已入职的简历sys_data_dictionary where parent_id=5e048b6d-cb1d-4fd5-bc70-c94259960862-->
+			</if>
+			<if test="searchParams.positionName != null and searchParams.positionName !=''">
+				and positionCategoryName like #{searchParams.positionName}
+			</if>
+			<if test="searchParams.positionId != null and searchParams.positionId !=''">
+				and position_category_id in (select id_ from job_work_category  where instr(code_,#{searchParams.positionId})>0)
+			</if>
+			<if test="searchParams.education != null and searchParams.education != ''">
+				and education_ = #{searchParams.education}
+			</if>
+			<if test="searchParams.workExp != null and searchParams.workExp !='' ">
+				and work_exp = #{searchParams.workExp}
+			</if>
+			
+			<if test="searchParams.dreamMoney != null and searchParams.dreamMoney !=''">
+				and dream_money = #{searchParams.dreamMoney}
+			</if>
+			<if test="searchParams.jobStatus != null and searchParams.jobStatus != ''">
+				and job_status = #{searchParams.jobStatus}
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}

+ 79 - 23
common/src/main/resources/mapper/job/Resume.xml

@@ -5,25 +5,29 @@
 <mapper namespace="com.jpsoft.employment.modules.job.dao.ResumeDAO">
 	<resultMap id="ResumeMap" type="com.jpsoft.employment.modules.job.entity.Resume">
 		<id property="id" column="id_" />
-			<result property="createBy" column="create_by" />
-			<result property="createTime" column="create_time" />
-			<result property="updateBy" column="update_by" />
-			<result property="updateTime" column="update_time" />
-			<result property="delFlag" column="del_flag" />
-			<result property="jobUserId" column="job_user_id" />
-			<result property="sex" column="sex_" />
-			<result property="positionCategoryId" column="position_category_id" />
-			<result property="workExp" column="work_exp" />
-			<result property="education" column="education_" />
-			<result property="dreamMoney" column="dream_money" />
-			<result property="dreamAdd" column="dream_add" />
-			<result property="birthday" column="birthday_" />
-			<result property="introduction" column="introduction_" />
-			<result property="status" column="status_" />
-			<result property="approveStatus" column="approve_status" />
-			<result property="jobStatus" column="job_status" />
-			<result property="resumeUrls" column="resume_urls" />
-			</resultMap>
+		<result property="createBy" column="create_by" />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy" column="update_by" />
+		<result property="updateTime" column="update_time" />
+		<result property="delFlag" column="del_flag" />
+		<result property="jobUserId" column="job_user_id" />
+		<result property="sex" column="sex_" />
+		<result property="positionCategoryId" column="position_category_id" />
+		<result property="workExp" column="work_exp" />
+		<result property="education" column="education_" />
+		<result property="dreamMoney" column="dream_money" />
+		<result property="dreamAdd" column="dream_add" />
+		<result property="birthday" column="birthday_" />
+		<result property="introduction" column="introduction_" />
+		<result property="status" column="status_" />
+		<result property="approveStatus" column="approve_status" />
+		<result property="jobStatus" column="job_status" />
+		<result property="resumeUrls" column="resume_urls" />
+		<!--外联字段-->
+		<result property="userPhoto" column="head_image_url" />
+		<result property="userName" column="real_name" />
+		<result property="userIsAuthentication" column="is_authentication" />
+	</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.employment.modules.job.entity.Resume">
 	<!--
 	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
@@ -132,12 +136,22 @@
 	</select>
 	<select id="search" parameterType="hashmap" resultMap="ResumeMap">
 		<![CDATA[
-			select * from job_resume
+			SELECT a.*,b.head_image_url,b.real_name,b.is_authentication FROM job_resume a
+			LEFT JOIN job_jobuser b ON a.job_user_id = b.id_
 		]]>
 		<where>
-			del_flag = 0
-			<if test="searchParams.id != null">
-				and ID_ like #{searchParams.id}
+			a.del_flag = 0
+			<if test="searchParams.positionCategoryId != null">
+				and a.position_category_id = #{searchParams.positionCategoryId}
+			</if>
+			<if test="searchParams.approveStatus != null">
+				and a.approve_status = #{searchParams.approveStatus}
+			</if>
+			<if test="searchParams.status != null">
+				and a.status_ = #{searchParams.status}
+			</if>
+			<if test="searchParams.name != null">
+				and b.real_name like #{searchParams.name}
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
@@ -151,4 +165,46 @@
 		and del_flag = 0
 		limit 1
 	</select>
+
+	<!--用于移动端接口:招聘方【求职管理】-->
+	<select id="foundJobManagement" parameterType="hashmap" resultType="map">
+		<![CDATA[
+			SELECT DISTINCT
+			  jwc.name_ workName,
+			  sdda.name_ dreamMoney,
+			  sddb.name_ jobStatus,
+			  sddc.name_ sex,
+			  year(now())-year(jre.birthday_)  age,
+			  sddd.name_ workExp,
+			  sdde.name_ education,
+			  jj.head_image_url headImage,
+			  jj.real_name name,
+			  jre.dream_add dreamAdd,
+			  jre.approve_status approveStatus,
+              su.id_ sysUserId
+			FROM
+			  job_resume jre
+			LEFT JOIN job_work_category jwc ON jre.position_category_id = jwc.id_
+			LEFT JOIN sys_data_dictionary sdda ON jre.dream_money = sdda.id_
+			LEFT JOIN sys_data_dictionary sddb ON jre.job_status = sddb.id_
+			LEFT JOIN sys_data_dictionary sddc ON jre.sex_ = sddc.id_
+			LEFT JOIN sys_data_dictionary sddd ON jre.work_exp = sddd.id_
+			LEFT JOIN sys_data_dictionary sdde ON jre.education_ = sdde.id_
+			LEFT JOIN job_jobuser jj ON jre.job_user_id = jj.id_
+			LEFT JOIN job_resume_deliver jrd ON jre.id_ = jrd.job_resume_id
+			LEFT JOIN job_recruitment jr ON jrd.job_recruitment_id = jr.id_
+			INNER JOIN sys_user su ON jr.company_id = su.company_id
+		]]>
+		<where>
+			<if test="searchParams.id != null">
+				and su.id = #{searchParams.id}
+			</if>
+			<if test="searchParams.type != null">
+				and jre.approve_status = #{searchParams.type}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+			${sort.name} ${sort.order}
+		</foreach>
+	</select>
 </mapper>

+ 2 - 0
common/src/main/resources/mapper/job/UserBrowse.xml

@@ -124,6 +124,7 @@
 			select
 			p.logo_  companyLogo,
 			p.area_  companyBelongArea,
+			bcity.city_name cityName,
 			pd.name_ companyScale,
 			p.name_  companyName,
 			waged.name_ wageTypeName,
@@ -138,6 +139,7 @@
 			left join sys_data_dictionary waged on j.wage_type=waged.id_ and waged.del_flag=0
 			left join base_company p on j.company_id=p.id_ and p.del_flag=0
 			left join sys_data_dictionary  pd on p.scale_=pd.id_ and pd.del_flag=0
+				left join base_city  as bcity on bcity.id_=j.area_
 		]]>
 		<where>
 			and job_user_id = #{searchParams.jobUserId}

+ 2 - 0
common/src/main/resources/mapper/job/UserCollection.xml

@@ -138,6 +138,7 @@
 			select
 			p.logo_  companyLogo,
 			p.area_  companyBelongArea,
+			bcity.city_name cityName,
 			pd.name_ companyScale,
 			p.name_  companyName,
 			waged.name_ wageTypeName,
@@ -152,6 +153,7 @@
 			left join sys_data_dictionary waged on j.wage_type=waged.id_ and waged.del_flag=0
 			left join base_company p on j.company_id=p.id_ and p.del_flag=0
 			left join sys_data_dictionary  pd on p.scale_=pd.id_ and pd.del_flag=0
+			left join base_city  as bcity on bcity.id_=j.area_
 		]]>
 		<where>
 			and job_user_id = #{searchParams.jobUserId}

+ 1 - 0
web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java

@@ -62,6 +62,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 				.excludePathPatterns("/mobile/recruitmentApi/getRecruitmentList")
 				.excludePathPatterns("/mobile/recruitmentApi/getScreenList")
 				.excludePathPatterns("/mobile/sysUserApi/wechatLogin")
+				.excludePathPatterns("/mobile/sysUserApi/findByOpenId")
 				.excludePathPatterns("/mobile/sysUserApi/passwordLogin")
 		;
 

+ 1 - 6
web/src/main/java/com/jpsoft/employment/modules/job/controller/RecruitmentController.java

@@ -230,12 +230,7 @@ public class RecruitmentController {
 
             recruitment.setWorkYearName(dataDictionaryService.getName(recruitment.getWorkYear()));
             recruitment.setEducationName(dataDictionaryService.getName(recruitment.getEducation()));
-            if(recruitment.getIsDiscussPersonally()){
-                recruitment.setWageTypeName("面议");
-            }
-            else{
-                recruitment.setWageTypeName(dataDictionaryService.getName(recruitment.getWageType()));
-            }
+            recruitment.setWageTypeName(dataDictionaryService.getName(recruitment.getWageType()));
         }
 
         msgResult.setResult(true);

+ 22 - 13
web/src/main/java/com/jpsoft/employment/modules/job/controller/ResumeController.java

@@ -157,7 +157,7 @@ public class ResumeController {
     @ApiOperation(value="列表")
     @RequestMapping(value = "pageList",method = RequestMethod.POST)
     public MessageResult<Map> pageList(
-            String id,
+            String positionCategoryId, String approveStatus, String status, String name,
             @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
             @RequestParam(value="pageSize",defaultValue="20") int pageSize,
             HttpServletRequest request){
@@ -166,20 +166,29 @@ public class ResumeController {
         Map<String,Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("id_","asc"));
+        sortList.add(new Sort("a.id_","asc"));
 
-        if (StringUtils.isNotEmpty(id)) {
-            searchParams.put("id","%" + id + "%");
+        if (StringUtils.isNotEmpty(positionCategoryId)) {
+            searchParams.put("positionCategoryId",positionCategoryId);
+        }
+        if (StringUtils.isNotEmpty(approveStatus)) {
+            searchParams.put("approveStatus",approveStatus);
+        }
+        if (StringUtils.isNotEmpty(status)) {
+            searchParams.put("status",status);
+        }
+        if (StringUtils.isNotEmpty(name)) {
+            searchParams.put("name","%" + name + "%");
         }
 
         Page<Resume> page = resumeService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
         for(Resume resume : page.getResult()){
-            JobUser jobUser = jobUserService.get(resume.getJobUserId());
-            if(jobUser != null) {
-                resume.setUserPhoto(jobUser.getHeadImageUrl());
-                resume.setUserName(jobUser.getRealName());
-                resume.setUserIsAuthentication(jobUser.getIsAuthentication());
-            }
+//            JobUser jobUser = jobUserService.get(resume.getJobUserId());
+//            if(jobUser != null) {
+//                resume.setUserPhoto(jobUser.getHeadImageUrl());
+//                resume.setUserName(jobUser.getRealName());
+//                resume.setUserIsAuthentication(jobUser.getIsAuthentication());
+//            }
 
             WorkCategory workCategory = workCategoryService.get(resume.getPositionCategoryId());
             if(workCategory != null) resume.setPositionCategoryName(workCategory.getName());
@@ -205,11 +214,11 @@ public class ResumeController {
 
         try {
             Resume resume = resumeService.get(id);
-            if(resume.getStatus().equals("0")) {
-                resume.setStatus("1");
+            if(resume.getStatus().equals("7a308001-f476-411a-8802-28992be86cb1")) {
+                resume.setStatus("89ad69d3-b9e5-4ea3-90bf-04a57fc3c48c");
             }
             else{
-                resume.setStatus("0");
+                resume.setStatus("7a308001-f476-411a-8802-28992be86cb1");
             }
             int affectCount = resumeService.update(resume);
 

+ 191 - 22
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/RecruiterApiController.java

@@ -1,34 +1,41 @@
 package com.jpsoft.employment.modules.mobile.controller;
 
-import cn.hutool.core.lang.Assert;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.github.pagehelper.Page;
 import com.jpsoft.employment.modules.common.dto.MessageResult;
 import com.jpsoft.employment.modules.common.dto.MessageResultBuilder;
+import com.jpsoft.employment.modules.common.dto.MessageResultSimple;
 import com.jpsoft.employment.modules.common.dto.Sort;
 import com.jpsoft.employment.modules.common.utils.MapUtils;
 import com.jpsoft.employment.modules.common.utils.PojoUtils;
 import com.jpsoft.employment.modules.job.entity.RecruitmentVO;
-import com.jpsoft.employment.modules.job.entity.ResumeVO;
+import com.jpsoft.employment.modules.job.service.JobUserService;
 import com.jpsoft.employment.modules.job.service.RecruitmentCollectionService;
 import com.jpsoft.employment.modules.job.service.RecruitmentService;
+import com.jpsoft.employment.modules.job.service.ResumeService;
 import com.jpsoft.employment.modules.job.service.UserBrowseHrService;
 import com.jpsoft.employment.modules.sys.entity.UserVO;
 import com.jpsoft.employment.modules.sys.service.UserService;
+
+import cn.hutool.core.lang.Assert;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 @Slf4j
 @RestController
@@ -36,8 +43,7 @@ import java.util.Map;
 @Api(tags = "移动端接口:招聘方相关接口")
 public class RecruiterApiController {
 
-    private Logger logger = LoggerFactory.getLogger(getClass());
-
+   
     @Autowired
     private RecruitmentService recruitmentService;
 
@@ -50,10 +56,16 @@ public class RecruiterApiController {
     @Autowired
     private UserBrowseHrService  userBrowseHrService;
 
+    @Autowired
+    private JobUserService jobUserService;
+
+    @Autowired
+    private ResumeService resumeService;
+
 
     @PostMapping("getAboutMe")
     @ApiOperation(value = "招聘方['我的'主页]")
-    public MessageResult<Map>  getAboutMe(@RequestAttribute String subject){
+    public MessageResult<Map<String,Object>>  getAboutMe(@RequestAttribute String subject){
         try{
             //包含两部分信息:个人信息,统计信息
             Assert.state(StringUtils.isNoneEmpty(subject),"缺少用户参数");
@@ -80,7 +92,7 @@ public class RecruiterApiController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "status", value = "招聘信息状态(publish:招聘中;approve:审核中;close:已下架)", required = true, paramType = "form")
     })
-    public MessageResult<Map> loadOwnRecruitments(@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+    public MessageResultSimple loadOwnRecruitments(@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
                                                 @RequestParam(value="pageSize",defaultValue="20") int pageSize,
                                                 @RequestParam(value="status",defaultValue="publish") String status,
                                                 @RequestAttribute String subject
@@ -90,11 +102,33 @@ public class RecruiterApiController {
             List<Sort> sortList = new ArrayList<>();
             sortList.add(new Sort("updateTime","desc"));
             Page<RecruitmentVO> page = recruitmentService.loadForRecruiter(MapUtils.builder("recruiter",subject,"status",status),pageIndex,pageSize,true,sortList);
-            return MessageResultBuilder.ok(PojoUtils.pageWrapper(page));
+            return MessageResultBuilder.success(PojoUtils.pageWrapper(page));
         }
         catch(Exception ex){
             log.error(ex.getMessage());
-            return MessageResultBuilder.error(ex.getMessage());
+            return MessageResultBuilder.failed(ex.getMessage());
+        }
+    }
+    
+    @PostMapping("publishRecruitment")
+    @ApiOperation(value = "招聘方[职位管理上下架操作]")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "recruitmentId", value = "招聘记录ID", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "publishTag", value = "上下架操作[1:上架,0:下架]", required = true, paramType = "form")
+    })
+    public MessageResultSimple publishRecruitment(@RequestParam(value="recruitmentId",required = true) String recruitmentId,
+    		@RequestParam(value="publishTag",required = true) String publishTag,
+    		@RequestAttribute String subject
+    		){
+    	try{
+    		 Assert.state(StringUtils.isNotEmpty(recruitmentId),"缺少招聘记录参数");
+    		 Assert.state("1".equals(publishTag)||"0".equals(publishTag),"未选择上下架操作");
+    		 
+    		 return recruitmentService.updateForPublish(recruitmentId, publishTag,subject)?MessageResultBuilder.success("success"): MessageResultBuilder.failed("操作失败");
+    	}
+    	catch(Exception ex){
+            log.error(ex.getMessage());
+            return MessageResultBuilder.failed(ex.getMessage());
         }
     }
 
@@ -102,11 +136,21 @@ public class RecruiterApiController {
     @PostMapping("loadCollectResumes")
     @ApiOperation(value = "招聘方[收藏简历]")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "positionName", value = "职位名称关键字", required = false, paramType = "form")
+            @ApiImplicitParam(name = "positionName", value = "职位名称关键字", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "positionId", value = "职位类别id值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "education", value = "学历编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "workExp", value = "工作经验编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "dreamMoney", value = "期望月薪编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "jobStatus", value = "工作状态编码值", required = false, paramType = "form")
     })
-    public MessageResult<Map> loadCollectResumes(@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+    public MessageResultSimple loadCollectResumes(@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
                                                 @RequestParam(value="pageSize",defaultValue="20") int pageSize,
                                                 @RequestParam(value="positionName",required = false) String positionName,
+                                                @RequestParam(value="positionId",required = false) String positionId,
+                                                @RequestParam(value="education",required = false) String education,
+                                                @RequestParam(value="workExp",required = false) String workExp,
+                                                @RequestParam(value="dreamMoney",required = false) String dreamMoney,
+                                                @RequestParam(value="jobStatus",required = false) String jobStatus,
                                                 @RequestAttribute String subject
     ) {
 
@@ -114,12 +158,137 @@ public class RecruiterApiController {
             List<Sort> sortList = new ArrayList<>();
             sortList.add(new Sort("collectionTime","desc"));
             positionName=StringUtils.isEmpty(positionName)?null:("%"+positionName+"%");
-            Page<ResumeVO> page = recruitmentCollectionService.pagedLoad(MapUtils.builder("recruiterId",subject,"positionName",positionName),pageIndex,pageSize,true,sortList);
-            return MessageResultBuilder.ok(PojoUtils.pageWrapper(page));
+            Map<String,Object> args=MapUtils.builder("recruiterId",subject,"positionId",positionId,"positionName",positionName,"education",education,"workExp",workExp,"dreamMoney",dreamMoney,"jobStatus",jobStatus);
+            Page<Map<String,Object>> page = recruitmentCollectionService.pagedLoadCollectResumes(args,pageIndex,pageSize,true,sortList);
+            return MessageResultBuilder.success(PojoUtils.pageWrapper(page));
         }
         catch(Exception ex){
             log.error(ex.getMessage());
-            return MessageResultBuilder.error(ex.getMessage());
+            return MessageResultBuilder.failed(ex.getMessage());
+        }
+    }
+    
+    @PostMapping("cancelCollectResume")
+    @ApiOperation(value = "招聘方[收藏简历] 取消收藏")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "resumeId", value = "简历记录主键", required = true, paramType = "form")
+    })
+    public MessageResultSimple cancelCollectResume(@RequestParam(value="resumeId",required = true) String resumeId, @RequestAttribute String subject) {
+    	try{
+    		Assert.state(StringUtils.isNoneEmpty(subject),"缺少登录信息");
+    		recruitmentCollectionService.updateCancelCollect(resumeId,subject);
+    		return MessageResultBuilder.success("success");
+    	}
+        catch(Exception ex){
+            log.error(ex.getMessage());
+            return MessageResultBuilder.failed(ex.getMessage());
+        }
+    
+    }
+
+
+    @PostMapping("loadAllResumes")
+    @ApiOperation(value = "招聘方[招聘主页]")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "positionName", value = "职位名称关键字", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "positionId", value = "职位类别id值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "education", value = "学历编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "workExp", value = "工作经验编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "dreamMoney", value = "期望月薪编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "jobStatus", value = "工作状态编码值", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "orderType", value = "排序类别[new:最新,hot:最热]", required = false, paramType = "form")
+    })
+    public MessageResultSimple loadAllResumes(@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+                                                 @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+                                                 @RequestParam(value="orderType",defaultValue="new") String orderType,
+                                                 @RequestParam(value="positionName",required = false) String positionName,
+                                                 @RequestParam(value="positionId",required = false) String positionId,
+                                                 @RequestParam(value="education",required = false) String education,
+                                                 @RequestParam(value="workExp",required = false) String workExp,
+                                                 @RequestParam(value="dreamMoney",required = false) String dreamMoney,
+                                                 @RequestParam(value="jobStatus",required = false) String jobStatus
+    ) {
+
+        try{
+            List<Sort> sortList = new ArrayList<>();
+            if("hot".equalsIgnoreCase(orderType)){
+                sortList.add(new Sort("browse_count","desc"));
+            }
+            else{
+                sortList.add(new Sort("update_time","desc"));
+            }
+            positionName=StringUtils.isEmpty(positionName)?null:("%"+positionName+"%");
+            Map<String,Object> args=MapUtils.builder("positionId",positionId,"positionName",positionName,"education",education,"workExp",workExp,"dreamMoney",dreamMoney,"jobStatus",jobStatus);
+            
+            Page<Map<String,Object>> page = recruitmentCollectionService.pagedLoadAllResumes(args,pageIndex,pageSize,true,sortList);
+            return MessageResultBuilder.success(PojoUtils.pageWrapper(page));
+        }
+        catch(Exception ex){
+            log.error(ex.getMessage());
+            return MessageResultBuilder.failed(ex.getMessage());
+        }
+    }
+
+
+    @PostMapping("loadInterestList")
+    @ApiOperation(value = "招聘方[对您感兴趣]")
+    public MessageResult<Map> loadInterestList(
+            String id,String token,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            @RequestAttribute  String subject) {
+        System.out.println(subject);
+
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("jub.create_time","desc"));
+
+        if (StringUtils.isNotEmpty(id)) {
+            searchParams.put("id","%" + id + "%");
         }
+
+        Page<Map> page = jobUserService.foundInterestList(searchParams,pageIndex,pageSize,true,sortList);
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
     }
+
+    @PostMapping("loadJobManagement")
+    @ApiOperation(value = "招聘方[求职管理]")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1:已投递,2:邀沟通,3:邀面试,4:邀入职,5:已入职,6:不合适)", required = false, paramType = "query")
+    })
+    public MessageResult<Map> loadJobManagement(
+            String id,String token,String type,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            @RequestAttribute  String subject) {
+        System.out.println(subject);
+
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("jrd.create_time","desc"));
+
+        if (StringUtils.isNotEmpty(id)) {
+            searchParams.put("id","%" + id + "%");
+        }
+
+        searchParams.put("type",type);
+
+        Page<Map> page = resumeService.foundJobManagement(searchParams,pageIndex,pageSize,true,sortList);
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
+
 }