Explorar el Código

提交 接口

xiao547607 hace 4 años
padre
commit
576125f4ce
Se han modificado 23 ficheros con 506 adiciones y 9 borrados
  1. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/dao/UserAuthenticationApproveDAO.java
  2. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/UserAuthenticationApproveService.java
  3. 5 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/UserAuthenticationApproveServiceImpl.java
  4. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeDAO.java
  5. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeEducationExperienceDAO.java
  6. 3 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeWorkExperienceDAO.java
  7. 2 0
      common/src/main/java/com/jpsoft/employment/modules/job/dao/UserCollectionDAO.java
  8. 3 0
      common/src/main/java/com/jpsoft/employment/modules/job/entity/ResumeDeliver.java
  9. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/ResumeEducationExperienceService.java
  10. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/ResumeService.java
  11. 1 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/ResumeWorkExperienceService.java
  12. 2 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/UserCollectionService.java
  13. 5 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/ResumeEducationExperienceServiceImpl.java
  14. 5 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/ResumeServiceImpl.java
  15. 5 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/ResumeWorkExperienceServiceImpl.java
  16. 9 0
      common/src/main/java/com/jpsoft/employment/modules/job/service/impl/UserCollectionServiceImpl.java
  17. 8 3
      common/src/main/resources/mapper/base/UserAuthenticationApprove.xml
  18. 7 0
      common/src/main/resources/mapper/job/Resume.xml
  19. 9 2
      common/src/main/resources/mapper/job/ResumeEducationExperience.xml
  20. 11 2
      common/src/main/resources/mapper/job/ResumeWorkExperience.xml
  21. 15 2
      common/src/main/resources/mapper/job/UserCollection.xml
  22. 108 0
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/JobUserApiController.java
  23. 302 0
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResumeApiController.java

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/UserAuthenticationApproveDAO.java

@@ -16,4 +16,5 @@ public interface UserAuthenticationApproveDAO {
 	int delete(String id);
 	List<UserAuthenticationApprove> list();
 	List<UserAuthenticationApprove> search(Map<String, Object> searchParams, List<Sort> sortList);
+	UserAuthenticationApprove findByUserId(String userId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/UserAuthenticationApproveService.java

@@ -14,4 +14,5 @@ public interface UserAuthenticationApproveService {
 	int delete(String id);
 	List<UserAuthenticationApprove> list();
 	Page<UserAuthenticationApprove> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	UserAuthenticationApprove findByUserId(String userId);
 }

+ 5 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/UserAuthenticationApproveServiceImpl.java

@@ -67,4 +67,9 @@ public class UserAuthenticationApproveServiceImpl implements UserAuthenticationA
         
         return page;
 	}
+
+	@Override
+	public UserAuthenticationApprove findByUserId(String userId){
+		return userAuthenticationApproveDAO.findByUserId(userId);
+	}
 }

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

@@ -15,4 +15,5 @@ public interface ResumeDAO {
 	int delete(String id);
 	List<Resume> list();
 	List<Resume> search(Map<String,Object> searchParams,List<Sort> sortList);
+	Resume findByUserId(String userId);
 }

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

@@ -15,4 +15,5 @@ public interface ResumeEducationExperienceDAO {
 	int delete(String id);
 	List<ResumeEducationExperience> list();
 	List<ResumeEducationExperience> search(Map<String,Object> searchParams,List<Sort> sortList);
+	List<ResumeEducationExperience> findByResumeId(String resumeId);
 }

+ 3 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dao/ResumeWorkExperienceDAO.java

@@ -1,6 +1,8 @@
 package com.jpsoft.employment.modules.job.dao;
 
 import java.util.List;
+
+import com.jpsoft.employment.modules.job.entity.ResumeEducationExperience;
 import org.springframework.stereotype.Repository;
 import com.jpsoft.employment.modules.job.entity.ResumeWorkExperience;
 import java.util.Map;
@@ -15,4 +17,5 @@ public interface ResumeWorkExperienceDAO {
 	int delete(String id);
 	List<ResumeWorkExperience> list();
 	List<ResumeWorkExperience> search(Map<String,Object> searchParams,List<Sort> sortList);
+	List<ResumeWorkExperience> findByResumeId(String resumeId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dao/UserCollectionDAO.java

@@ -15,4 +15,6 @@ public interface UserCollectionDAO {
 	int delete(String id);
 	List<UserCollection> list();
 	List<UserCollection> search(Map<String,Object> searchParams,List<Sort> sortList);
+	UserCollection findByUserIdAndRId(String userId,String recruitmentId);
+	List<UserCollection> findByUserId(String userId);
 }

+ 3 - 0
common/src/main/java/com/jpsoft/employment/modules/job/entity/ResumeDeliver.java

@@ -48,6 +48,9 @@ public class ResumeDeliver {
 	@ApiModelProperty(value = "招聘ID")
 	private String jobRecruitmentId;
 
+	@ApiModelProperty(value = "投递的招聘信息")
+	private Recruitment jobRecruitment;
+
 	@ApiModelProperty(value = "简历状态(已投递,已查看,邀请面试等)")
 	private String status;
 

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

@@ -14,4 +14,5 @@ public interface ResumeEducationExperienceService {
 	int delete(String id);
 	List<ResumeEducationExperience> list();
 	Page<ResumeEducationExperience> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	List<ResumeEducationExperience> findByResumeId(String resumeId);
 }

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

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

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

@@ -14,4 +14,5 @@ public interface ResumeWorkExperienceService {
 	int delete(String id);
 	List<ResumeWorkExperience> list();
 	Page<ResumeWorkExperience> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	List<ResumeWorkExperience> findByResumeId(String resumeId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/employment/modules/job/service/UserCollectionService.java

@@ -14,4 +14,6 @@ public interface UserCollectionService {
 	int delete(String id);
 	List<UserCollection> list();
 	Page<UserCollection> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	UserCollection findByUserIdAndRId(String userId,String recruitmentId);
+	List<UserCollection> findByUserId(String userId);
 }

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

@@ -67,4 +67,9 @@ public class ResumeEducationExperienceServiceImpl implements ResumeEducationExpe
         
         return page;
 	}
+
+	@Override
+	public List<ResumeEducationExperience> findByResumeId(String resumeId){
+		return resumeEducationExperienceDAO.findByResumeId(resumeId);
+	}
 }

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

@@ -58,6 +58,11 @@ public class ResumeServiceImpl implements ResumeService {
 		// TODO Auto-generated method stub
 		return resumeDAO.list();
 	}
+
+	@Override
+	public Resume findByUserId(String userId){
+		return resumeDAO.findByUserId(userId);
+	}
 		
 	@Override
 	public Page<Resume> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {

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

@@ -67,4 +67,9 @@ public class ResumeWorkExperienceServiceImpl implements ResumeWorkExperienceServ
         
         return page;
 	}
+
+	@Override
+	public List<ResumeWorkExperience> findByResumeId(String resumeId){
+		return resumeWorkExperienceDAO.findByResumeId(resumeId);
+	}
 }

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

@@ -67,4 +67,13 @@ public class UserCollectionServiceImpl implements UserCollectionService {
         
         return page;
 	}
+
+	@Override
+	public UserCollection findByUserIdAndRId(String userId,String recruitmentId){
+		return userCollectionDAO.findByUserIdAndRId(userId,recruitmentId);
+	}
+	@Override
+	public List<UserCollection> findByUserId(String userId){
+		return userCollectionDAO.findByUserId(userId);
+	}
 }

+ 8 - 3
common/src/main/resources/mapper/base/UserAuthenticationApprove.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!-- namespace必须指向DAO接口 -->
-<mapper namespace="com.jpsoft.employment.dao.UserAuthenticationApproveDAO">
+<mapper namespace="com.jpsoft.employment.modules.base.dao.UserAuthenticationApproveDAO">
 	<resultMap id="UserAuthenticationApproveMap" type="com.jpsoft.employment.modules.base.entity.UserAuthenticationApprove">
 		<id property="id" column="id_" />
 			<result property="createBy" column="create_by" />
@@ -76,8 +76,7 @@
 	where id_=#{id}
 	</update>
 	<select id="get" parameterType="string" resultMap="UserAuthenticationApproveMap">
-		select 
-id_,create_by,create_time,update_by,update_time,del_flag,job_user_id,approve_person_id,approve_time,approval_status		from base_user_authentication_approve where id_=#{0}
+		select * from base_user_authentication_approve where id_=#{0}
 	</select>
 	<select id="exist" parameterType="string" resultType="int">
 		select count(*) from base_user_authentication_approve where id_=#{0}
@@ -98,4 +97,10 @@ id_,create_by,create_time,update_by,update_time,del_flag,job_user_id,approve_per
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+	<select id="findByUserId" parameterType="string" resultMap="UserAuthenticationApproveMap">
+		select * from base_user_authentication_approve
+		where del_flag = 0
+		and job_user_id = #{0}
+		limit 1
+	</select>
 </mapper>

+ 7 - 0
common/src/main/resources/mapper/job/Resume.xml

@@ -133,4 +133,11 @@
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+	<select id="findByUserId" parameterType="string" resultMap="ResumeMap">
+		select * from job_resume
+		where
+		job_user_id=#{0}
+		and del_flag = 0
+		limit 1
+	</select>
 </mapper>

+ 9 - 2
common/src/main/resources/mapper/job/ResumeEducationExperience.xml

@@ -91,8 +91,7 @@
 	where id_=#{id}
 	</update>
 	<select id="get" parameterType="string" resultMap="ResumeEducationExperienceMap">
-		select 
-id_,create_by,create_time,update_by,update_time,del_flag,resume_id,sort_no,start_time,end_time,school_name,education_,major_		from job_resume_education_experience where id_=#{0}
+		select * from job_resume_education_experience where id_=#{0}
 	</select>
 	<select id="exist" parameterType="string" resultType="int">
 		select count(*) from job_resume_education_experience where id_=#{0}
@@ -113,4 +112,12 @@ id_,create_by,create_time,update_by,update_time,del_flag,resume_id,sort_no,start
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+	<select id="findByResumeId" parameterType="string" resultMap="ResumeEducationExperienceMap">
+		select
+		*
+		from
+		job_resume_education_experience
+		where del_flag = 0
+		and resume_id = #{resumeId}
+	</select>
 </mapper>

+ 11 - 2
common/src/main/resources/mapper/job/ResumeWorkExperience.xml

@@ -91,8 +91,7 @@
 	where id_=#{id}
 	</update>
 	<select id="get" parameterType="string" resultMap="ResumeWorkExperienceMap">
-		select 
-id_,create_by,create_time,update_by,update_time,del_flag,resume_id,sort_no,start_time,end_time,company_name,job_,content_		from job_resume_work_experience where id_=#{0}
+		select * from job_resume_work_experience where id_=#{0}
 	</select>
 	<select id="exist" parameterType="string" resultType="int">
 		select count(*) from job_resume_work_experience where id_=#{0}
@@ -113,4 +112,14 @@ id_,create_by,create_time,update_by,update_time,del_flag,resume_id,sort_no,start
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+
+	<select id="findByResumeId" parameterType="string" resultMap="ResumeWorkExperienceMap">
+		select
+		*
+		from
+		job_resume_work_experience
+		where del_flag = 0
+		and resume_id = #{resumeId}
+		limit 1
+	</select>
 </mapper>

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

@@ -66,8 +66,7 @@
 	where id_=#{id}
 	</update>
 	<select id="get" parameterType="string" resultMap="UserCollectionMap">
-		select 
-id_,create_by,create_time,update_by,update_time,del_flag,job_user_id,job_recruitment_id		from job_user_collection where id_=#{0}
+		select * from job_user_collection where id_=#{0}
 	</select>
 	<select id="exist" parameterType="string" resultType="int">
 		select count(*) from job_user_collection where id_=#{0}
@@ -88,4 +87,18 @@ id_,create_by,create_time,update_by,update_time,del_flag,job_user_id,job_recruit
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+
+	<select id="findByUserIdAndRId" parameterType="string" resultMap="UserCollectionMap">
+		select * from job_user_collection
+		where del_flag = 0
+		and job_user_id = #{userId}
+		and job_recruitment_id = #{recruitmentId}
+		limit 1
+	</select>
+
+	<select id="findByUserId" parameterType="string" resultMap="UserCollectionMap">
+		select * from job_user_collection
+		where del_flag = 0
+		and job_user_id = #{userId}
+	</select>
 </mapper>

+ 108 - 0
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/JobUserApiController.java

@@ -3,13 +3,21 @@ package com.jpsoft.employment.modules.mobile.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.domain.CompanyInfo;
 import com.jpsoft.employment.config.OSSConfig;
+import com.jpsoft.employment.modules.base.entity.UserAuthenticationApprove;
+import com.jpsoft.employment.modules.base.service.UserAuthenticationApproveService;
 import com.jpsoft.employment.modules.common.dto.MessageResult;
 import com.jpsoft.employment.modules.common.utils.DES3;
 import com.jpsoft.employment.modules.common.utils.JwtUtil;
 import com.jpsoft.employment.modules.common.utils.OSSUtil;
 import com.jpsoft.employment.modules.common.utils.SMSUtil;
 import com.jpsoft.employment.modules.job.entity.JobUser;
+import com.jpsoft.employment.modules.job.entity.Resume;
+import com.jpsoft.employment.modules.job.entity.ResumeDeliver;
+import com.jpsoft.employment.modules.job.entity.UserCollection;
 import com.jpsoft.employment.modules.job.service.JobUserService;
+import com.jpsoft.employment.modules.job.service.ResumeDeliverService;
+import com.jpsoft.employment.modules.job.service.ResumeService;
+import com.jpsoft.employment.modules.job.service.UserCollectionService;
 import com.jpsoft.employment.modules.sys.entity.SysLog;
 import com.jpsoft.employment.modules.sys.service.SysLogService;
 import io.swagger.annotations.ApiImplicitParam;
@@ -54,6 +62,18 @@ public class JobUserApiController {
     @Autowired
     private SysLogService sysLogService;
 
+    @Autowired
+    private UserAuthenticationApproveService userAuthenticationApproveService;
+
+    @Autowired
+    private UserCollectionService userCollectionService;
+
+    @Autowired
+    private ResumeDeliverService resumeDeliverService;
+
+    @Autowired
+    private ResumeService resumeService;
+
     @PostMapping("findByOpenId")
     @ApiOperation(value = "通过openId查询人员(公开接口)")
     @ApiImplicitParams({
@@ -425,4 +445,92 @@ public class JobUserApiController {
         return messageResult;
     }
 
+    @PostMapping("authenticationStatus")
+    @ApiOperation(value = "用户认证状态")
+    public MessageResult<Boolean> authenticationStatus(String token, @RequestAttribute  String subject) {
+        MessageResult<Boolean> messageResult = new MessageResult<>();
+
+        try {
+            JobUser jobUser = jobUserService.get(subject);
+            Boolean returnIs = false;
+            if(jobUser != null){
+                returnIs = jobUser.getIsAuthentication();
+            }
+
+            messageResult.setData(returnIs);
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+        return messageResult;
+    }
+
+
+    @PostMapping("submitAuthentication")
+    @ApiOperation(value = "提交认证信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "idCard", value = "身份证", required = true,paramType = "form"),
+            @ApiImplicitParam(name = "positiveUrl", value = "身份证正面地址", required = true,paramType = "form"),
+            @ApiImplicitParam(name = "reverseUrl", value = "身份证反面地址", required = true,paramType = "form"),
+    })
+    public MessageResult<String> submitAuthentication(
+            String name,
+            String idCard,
+            String positiveUrl,
+            String reverseUrl,
+            String token,
+            @RequestAttribute  String subject) {
+        MessageResult<String> messageResult = new MessageResult<>();
+
+        try {
+            JobUser jobUser = jobUserService.get(subject);
+
+            if (jobUser == null) {
+                throw new Exception("未登录!");
+            }
+
+            jobUser.setUpdateTime(new Date());
+            jobUser.setUpdateBy(subject);
+
+            jobUser.setIdCard(idCard);
+            jobUser.setHeadImageUrl(positiveUrl+","+reverseUrl);
+            jobUser.setRealName(name);
+
+            jobUserService.update(jobUser);
+
+            UserAuthenticationApprove uaa = userAuthenticationApproveService.findByUserId(jobUser.getId());
+            if(uaa == null) {
+                //保存认证信息到审批表
+                uaa = new UserAuthenticationApprove();
+                uaa.setId(UUID.randomUUID().toString());
+                uaa.setCreateTime(new Date());
+                uaa.setCreateBy(subject);
+                uaa.setDelFlag(false);
+                uaa.setJobUserId(jobUser.getId());
+
+                userAuthenticationApproveService.insert(uaa);
+            }else{
+                uaa.setUpdateTime(new Date());
+                uaa.setUpdateBy(subject);
+                uaa.setJobUserId(jobUser.getId());
+                userAuthenticationApproveService.update(uaa);
+            }
+
+            messageResult.setData("提交成功,请等待审核!");
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+
 }

+ 302 - 0
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResumeApiController.java

@@ -0,0 +1,302 @@
+package com.jpsoft.employment.modules.mobile.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.Page;
+import com.jpsoft.employment.config.OSSConfig;
+import com.jpsoft.employment.modules.common.dto.MessageResult;
+import com.jpsoft.employment.modules.common.dto.Sort;
+import com.jpsoft.employment.modules.common.utils.*;
+import com.jpsoft.employment.modules.job.entity.*;
+import com.jpsoft.employment.modules.job.service.*;
+import com.jpsoft.employment.modules.sys.entity.SysLog;
+import com.jpsoft.employment.modules.sys.service.DataDictionaryService;
+import com.jpsoft.employment.modules.sys.service.SysLogService;
+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.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import sun.misc.BASE64Decoder;
+
+import java.io.ByteArrayInputStream;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+@RestController
+@RequestMapping("/mobile/resumeApi")
+@Api(description = "简历接口")
+@Slf4j
+public class ResumeApiController {
+    @Value("${jwt.secret}")
+    private String jwtSecret;
+
+    @Autowired
+    private JobUserService jobUserService;
+
+    @Autowired
+    private ResumeService resumeService;
+
+    @Autowired
+    private RecruitmentService recruitmentService;
+
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
+
+    @Autowired
+    private UserCollectionService userCollectionService;
+
+    @Autowired
+    private ResumeDeliverService resumeDeliverService;
+
+    @Autowired
+    private ResumeEducationExperienceService resumeEducationExperienceService;
+
+    @Autowired
+    private ResumeWorkExperienceService resumeWorkExperienceService;
+
+    @Autowired
+    private ResumeDeliverRecordService resumeDeliverRecordService;
+
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @PostMapping("resumeStatus")
+    @ApiOperation(value = "简历状态")
+    public MessageResult<String> resumeStatus(String token, @RequestAttribute  String subject) {
+        MessageResult<String> messageResult = new MessageResult<>();
+
+        try {
+            //JobUser jobUser = jobUserService.get(subject);
+            Resume resume = resumeService.findByUserId(subject);
+            String returnStr = "未创建";
+            if(resume != null){
+                returnStr = dataDictionaryService.findNameByCatalogNameAndValue("简历审批状态",resume.getApproveStatus());
+            }
+
+            messageResult.setData(returnStr);
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+        return messageResult;
+    }
+
+    @PostMapping("collectResume")
+    @ApiOperation(value = "收藏简历")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "recruitmentId", value = "岗位ID", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "status", value = "状态(收藏1,取消0),默认1收藏",  paramType = "form"),
+    })
+    public MessageResult<String> collectResume(
+            String recruitmentId,
+            @RequestParam(value="status",defaultValue="1") String status,
+            @RequestAttribute  String subject) {
+        MessageResult<String> messageResult = new MessageResult<>();
+
+        try {
+            UserCollection uc = userCollectionService.findByUserIdAndRId(subject,recruitmentId);
+            if("1".equals(status)){
+                if(uc == null){
+                    uc = new UserCollection();
+                    uc.setId(UUID.randomUUID().toString());
+                    uc.setCreateBy(subject);
+                    uc.setCreateTime(new Date());
+                    uc.setJobRecruitmentId(recruitmentId);
+                    uc.setJobUserId(subject);
+                    uc.setDelFlag(false);
+
+                    userCollectionService.insert(uc);
+                }else{
+                    uc.setUpdateBy(subject);
+                    uc.setUpdateTime(new Date());
+                    uc.setDelFlag(false);
+
+                    userCollectionService.update(uc);
+                }
+            }else{
+                if(uc != null){
+                    uc.setUpdateBy(subject);
+                    uc.setUpdateTime(new Date());
+                    uc.setDelFlag(true);
+
+                    userCollectionService.update(uc);
+                }
+            }
+
+
+            messageResult.setData("操作成功");
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+    @PostMapping("deliverResume")
+    @ApiOperation(value = "投递简历")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "recruitmentId", value = "岗位ID", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "resumeId", value = "简历ID,不传则默认查当前简历", paramType = "form"),
+    })
+    public MessageResult<String> deliverResume(
+            String recruitmentId,
+            @RequestParam(value="resumeId",defaultValue="") String resumeId,
+            @RequestAttribute  String subject) {
+        MessageResult<String> messageResult = new MessageResult<>();
+
+        try {
+            //JobUser jobUser = jobUserService.get(subject);
+            Resume resume = null;
+            if(StringUtils.isNotEmpty(resumeId)) {
+                resume = resumeService.get(resumeId);
+            }else{
+                resume = resumeService.findByUserId(subject);
+            }
+            if(resume == null){
+                messageResult.setMessage("未创建简历");
+                messageResult.setResult(false);
+                messageResult.setCode(400);
+                return messageResult;
+            }else{
+                if(!"0".equals(resume.getStatus())){
+                    messageResult.setMessage("当前简历未开启");
+                    messageResult.setResult(false);
+                    messageResult.setCode(400);
+                    return messageResult;
+                }
+
+                if(!"2".equals(resume.getApproveStatus())){
+                    messageResult.setMessage("当前简历未审批");
+                    messageResult.setResult(false);
+                    messageResult.setCode(400);
+                    return messageResult;
+                }
+            }
+
+            ResumeDeliver rd = new ResumeDeliver();
+            rd.setId(UUID.randomUUID().toString());
+            rd.setCreateBy(subject);
+            rd.setCreateTime(new Date());
+            rd.setDelFlag(false);
+            rd.setJobRecruitmentId(recruitmentId);
+            rd.setJobUserId(subject);
+            rd.setStatus("0");
+
+            int inCount = resumeDeliverService.insert(rd);
+            if(inCount > 0) {
+                messageResult.setMessage("投递成功");
+                messageResult.setResult(true);
+                messageResult.setCode(200);
+            }else{
+                messageResult.setMessage("投递失败");
+                messageResult.setResult(false);
+                messageResult.setCode(400);
+                return messageResult;
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+    @PostMapping("myResumeDetail")
+    @ApiOperation(value = "我的简历-详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "resumeId", value = "简历ID,不传则默认查当前简历", paramType = "form"),
+    })
+    public MessageResult<Map> myResumeDetail(
+            @RequestParam(value="resumeId",defaultValue="") String resumeId,
+            @RequestAttribute  String subject) {
+        MessageResult<Map> messageResult = new MessageResult<>();
+
+        try {
+            //JobUser jobUser = jobUserService.get(subject);
+            Resume resume = null;
+            if(StringUtils.isNotEmpty(resumeId)) {
+                resume = resumeService.get(resumeId);
+            }else{
+                resume = resumeService.findByUserId(subject);
+            }
+
+            if(resume == null){
+                messageResult.setMessage("未创建简历");
+                messageResult.setResult(false);
+                messageResult.setCode(400);
+                return messageResult;
+            }
+
+            List<ResumeEducationExperience> rexList = resumeEducationExperienceService.findByResumeId(resume.getId());
+            List<ResumeWorkExperience> rweList = resumeWorkExperienceService.findByResumeId(resume.getId());
+
+
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+
+            dataMap.put("resume", resume);
+            dataMap.put("educationExperienceList", rexList);
+            dataMap.put("workExpList", rweList);
+
+            messageResult.setData(dataMap);
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+            return messageResult;
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+
+    @PostMapping("deliveryRecord")
+    @ApiOperation(value = "投递记录")
+    public MessageResult<Map> deliveryRecord(
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="10") int pageSize,
+            @RequestAttribute  String subject) {
+        MessageResult<Map> messageResult = new MessageResult<>();
+
+        try {
+            //JobUser jobUser = jobUserService.get(subject);
+            Map<String,Object> searchParams = new HashMap<>();
+
+            List<Sort> sortList = new ArrayList<>();
+            sortList.add(new Sort("a.create_time","desc"));
+
+            Page<ResumeDeliver> page = resumeDeliverService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+            for(ResumeDeliver rd : page.getResult()){
+                Recruitment recruitment = recruitmentService.get(rd.getJobRecruitmentId());
+                rd.setJobRecruitment(recruitment);
+            }
+
+            messageResult.setResult(true);
+            messageResult.setData(PojoUtils.pageWrapper(page));
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+}