Przeglądaj źródła

1、优化新任命
2、接口增加区域信息返回

rayson 6 miesięcy temu
rodzic
commit
b210545150
33 zmienionych plików z 418 dodań i 77 usunięć
  1. 3 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/data/NewAppointmentsController.java
  2. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/AppEnterpriseSearchPageReqVO.java
  3. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedDetailRespVO.java
  4. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedHomeRespVO.java
  5. 6 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonController.java
  6. 3 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/auth/AppRecruitEnterpriseAuthController.java
  7. 11 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java
  8. 3 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/AppRecruitPersonCvController.java
  9. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsRespVO.java
  10. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsSimpleRespVO.java
  11. 30 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/area/AreaWebRespVO.java
  12. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java
  13. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailExtendRespVO.java
  14. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonInfoRespVO.java
  15. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/resume/resumesdk/TemResumeContent.java
  16. 14 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java
  17. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/redis/RedisKeyConstants.java
  18. 30 30
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/job/PersonBirthdayJob.java
  19. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/job/TradeOrderAutoCancelJob.java
  20. 17 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsService.java
  21. 23 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsServiceImpl.java
  22. 7 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/area/AreaService.java
  23. 65 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/area/AreaServiceImpl.java
  24. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java
  25. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprisejob/EnterpriseJobServiceImpl.java
  26. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java
  27. 34 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  28. 22 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  29. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java
  30. 13 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java
  31. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionService.java
  32. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionServiceImpl.java
  33. 41 11
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/resume/OnlineResumeServiceImpl.java

+ 3 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/data/NewAppointmentsController.java

@@ -7,7 +7,6 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.system.aop.VipEntitlementCheck;
-import com.citu.module.menduner.system.aop.VipEntitlementCheckAspect;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsRespVO;
@@ -52,8 +51,7 @@ public class NewAppointmentsController {
     public CommonResult<NewAppointmentsRespVO> get(@RequestParam("id") Long id) {
         // 效验,没有权限抛出异常
         enterpriseEntitlementService.checkPermission(VipEntitlementCheck.OPERATE_NEW_APPOINTMENT);
-        NewAppointmentsDO newAppointments = newAppointmentsService.getNewAppointments(id);
-        return success(BeanUtils.toBean(newAppointments, NewAppointmentsRespVO.class));
+        return success(BeanUtils.toBean(newAppointmentsService.getById(id), NewAppointmentsRespVO.class));
     }
 
     @GetMapping("/get/condition")
@@ -65,12 +63,11 @@ public class NewAppointmentsController {
     @GetMapping("/page")
     @Operation(summary = "获得新任命分页")
     public CommonResult<PageResult<NewAppointmentsSimpleRespVO>> page(@Valid NewAppointmentsPageReqVO pageReqVO) {
-        if(pageReqVO.getPageNo()>1 || pageReqVO.getPageSize()>10) {
+        if (pageReqVO.getPageNo() > 1 || pageReqVO.getPageSize() > 10) {
             // 效验,没有权限抛出异常
             enterpriseEntitlementService.checkPermission(VipEntitlementCheck.OPERATE_NEW_APPOINTMENT);
         }
-        PageResult<NewAppointmentsDO> pageResult = newAppointmentsService.getNewAppointmentsPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, NewAppointmentsSimpleRespVO.class));
+        return success(newAppointmentsService.page(pageReqVO));
     }
 
     @GetMapping("/export-excel")

+ 0 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/AppEnterpriseSearchPageReqVO.java

@@ -17,8 +17,6 @@ public class AppEnterpriseSearchPageReqVO extends PageParam {
     @Schema(description = "企业名称", example = "xx科技有限企业")
     private String name;
 
-
-
     @Schema(description = "企业地点", example = "[]")
     private List<Long> areaIds;
 

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedDetailRespVO.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.job.vo;
 
 
+import com.citu.module.menduner.system.controller.base.area.AreaWebRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
@@ -16,6 +17,9 @@ public class AppJobAdvertisedDetailRespVO extends JobAdvertisedRespVO {
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "区域")
+    private AreaWebRespVO area;
+
     @Schema(description = "企业信息")
     private EnterpriseBaseSimpleRespVO enterprise;
 

+ 2 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedHomeRespVO.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.job.vo;
 
+import com.citu.module.menduner.system.controller.base.area.AreaWebRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -27,4 +28,5 @@ public class AppJobAdvertisedHomeRespVO extends AppJobAdvertisedSimpleRespVO {
     private String logoUrl;
 
 
+
 }

+ 6 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonController.java

@@ -61,8 +61,12 @@ public class AppPersonController {
     @GetMapping("/get")
     @ApiSignature(timeout = 30)
     @Operation(summary = "获得人才信息")
-    public CommonResult<AppPersonInfoRespVO> getUserInfo() {
-        PersonInfoDO userInfo = personInfoService.getUserInfoByUserId(LoginUserContext.getUserId());
+    public CommonResult<AppPersonInfoRespVO> getUserInfo(@RequestParam(value = "userId", required = false) Long userId) {
+        Long userIdParam= LoginUserContext.getUserId();
+        if(null != userId){
+            userIdParam = userId;
+        }
+        PersonInfoDO userInfo = personInfoService.getUserInfoByUserId(userIdParam);
         return success(PersonConvert.INSTANCE.convert(userInfo));
     }
 

+ 3 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/auth/AppRecruitEnterpriseAuthController.java

@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+
+import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import java.util.Objects;
@@ -57,7 +59,7 @@ public class AppRecruitEnterpriseAuthController {
     }
 
     // 特殊接口需带上token,但是不进行token是否有效的效验
-    @PreAuthenticated
+    @PermitAll
     @PostMapping("/refresh-token")
     @Operation(summary = "刷新令牌")
     @Parameter(name = "refreshToken", description = "刷新令牌", required = true)

+ 11 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java

@@ -8,6 +8,7 @@ import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.joinJobFairReqVO;
 import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
+import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.fair.FairService;
 import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -30,6 +31,9 @@ public class AppRecruitFairController {
     @Resource
     private FairService fairService;
 
+    @Resource
+    private AreaService areaService;
+
     @Resource
     private JobAdvertisedService jobAdvertisedService;
 
@@ -73,7 +77,13 @@ public class AppRecruitFairController {
         if (ObjectUtil.isEmpty(jobIdList)) {
             return success(null);
         }
-        return success(jobAdvertisedService.getByIdsList(jobIdList));
+        List<AppRecruitJobSimpleRespVO> list = jobAdvertisedService.getByIdsList(jobIdList);
+        list.forEach(item -> {
+            if (null != item.getAreaId()) {
+                item.setArea(areaService.getById(item.getAreaId()));
+            }
+        });
+        return success(list);
     }
 
     @PreAuthenticated

+ 3 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/AppRecruitPersonCvController.java

@@ -49,9 +49,6 @@ public class AppRecruitPersonCvController {
     @Resource
     private InterviewInviteService interviewInviteService;
 
-    @Resource
-    private RedisUtils redisUtils;
-
     @PreAuthenticated
     @GetMapping("/page")
     @Operation(summary = "获得投递职位分页")
@@ -73,9 +70,9 @@ public class AppRecruitPersonCvController {
     @ApiSignature(timeout = 30)
     @Operation(summary = "获取人才在线简历详情")
     public CommonResult<AppRecruitPersonDetailRespVO> detail(@RequestParam("userId") Long userId) {
-        if (!redisUtils.checkEnterpriseUserLookPersonPermission(userId)) {
-            throw exception(MDE_REQUEST_ILLEGAL);
-        }
+//        if (!redisUtils.checkEnterpriseUserLookPersonPermission(userId)) {
+//            throw exception(MDE_REQUEST_ILLEGAL);
+//        }
         return success(personIntegrationService.detail(userId));
     }
 

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsRespVO.java

@@ -3,10 +3,12 @@ package com.citu.module.menduner.system.controller.base.appointment;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.module.menduner.system.controller.base.userperson.UserPersonRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Schema(description = "管理后台 - 新任命 Response VO")
 @Data
@@ -65,4 +67,7 @@ public class NewAppointmentsRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "用户人才信息")
+    private List<UserPersonRespVO> userPersonList;
+
 }

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsSimpleRespVO.java

@@ -3,10 +3,12 @@ package com.citu.module.menduner.system.controller.base.appointment;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.module.menduner.system.controller.base.userperson.UserPersonRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Schema(description = "管理后台 - 新任命简易 Response VO")
 @Data
@@ -53,9 +55,11 @@ public class NewAppointmentsSimpleRespVO {
     @ExcelProperty("过往工作酒店品牌")
     private String workHistory;
 
-
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "用户人才信息")
+    private List<UserPersonRespVO> userPersonList;
+
 }

+ 30 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/area/AreaWebRespVO.java

@@ -0,0 +1,30 @@
+package com.citu.module.menduner.system.controller.base.area;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "地区页面展示 Response VO")
+@Data
+public class AreaWebRespVO {
+
+    @Schema(description = "区域字符")
+    private String str;
+
+    @Schema(description = "省份ID")
+    private Long provinceId;
+
+    @Schema(description = "省份")
+    private String province;
+
+    @Schema(description = "城市ID")
+    private Long cityId;
+
+    @Schema(description = "城市")
+    private String city;
+
+    @Schema(description = "区县ID")
+    private Long districtId;
+
+    @Schema(description = "区县")
+    private String district;
+}

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.controller.base.job;
 
+import com.citu.module.menduner.system.controller.base.area.AreaWebRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -62,4 +63,9 @@ public class JobAdvertisedSimpleRespVO {
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "区域")
+    private AreaWebRespVO area;
+
+
+
 }

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailExtendRespVO.java

@@ -4,6 +4,7 @@ package com.citu.module.menduner.system.controller.base.person.info;
 import com.citu.module.menduner.system.controller.base.resume.resumesdk.TemResumeContent;
 import com.citu.module.menduner.system.controller.base.resume.resumesdk.TemResumeResVo;
 import com.citu.module.menduner.system.controller.base.talent.TalentMapDetailRespVO;
+import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,5 +15,10 @@ public class PersonDetailExtendRespVO extends TalentMapDetailRespVO {
     @Schema(description = "解析的简历信息")
     private TemResumeContent resume;
 
+    @Schema(description = "最后任职")
+    private TalentMapWorkExpRespVO lastEmployed;
+
+    @Schema(description = "最后意向职位id")
+    private Long lastPositionId;
 
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonInfoRespVO.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.controller.base.person.info;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.module.menduner.system.controller.base.area.AreaWebRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -99,4 +100,10 @@ public class PersonInfoRespVO {
     @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("更新时间")
     private LocalDateTime updateTime;
+
+    @Schema(description = "现居住地")
+    private AreaWebRespVO area;
+
+    @Schema(description = "户籍地")
+    private AreaWebRespVO reg;
 }

+ 4 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/resume/resumesdk/TemResumeContent.java

@@ -4,7 +4,10 @@ import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 
 import java.util.List;
-
+/**
+ * 简历内容
+ * https://resumesdk.com/demo-parser.html
+ */
 @Data
 public class TemResumeContent {
 

+ 14 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java

@@ -96,6 +96,20 @@ public interface MdeUserMapper extends BaseMapperX<MdeUserDO> {
         return selectJoinOne(UserPersonRespVO.class, query);
     }
 
+    /**
+     * 根据name以用户为主查询人才简历信息
+     **/
+    default List<UserPersonRespVO> getByName(String name) {
+        MPJLambdaWrapperX<MdeUserDO> query = new MPJLambdaWrapperX<>();
+        query.selectAssociation(MdeUserDO.class, UserPersonRespVO::getUser);
+        query.selectAssociation(PersonInfoDO.class, UserPersonRespVO::getPerson);
+        query.leftJoin(PersonInfoDO.class, on -> on.eq(PersonInfoDO::getUserId, MdeUserDO::getId));
+        query.eq(PersonInfoDO::getName, name);
+
+        query.orderByDesc(PersonInfoDO::getUpdateTime);
+        return selectJoinList(UserPersonRespVO.class, query);
+    }
+
     default MdeUserDO selectByEmail(String email) {
         return selectOne(MdeUserDO::getEmail, email);
     }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/redis/RedisKeyConstants.java

@@ -80,6 +80,14 @@ public interface RedisKeyConstants {
      */
     String MDE_AREA_HOT_LIST ="mde_area_hot_list";
 
+    /**
+     * 区域树信息的缓存
+     * <p>
+     * KEY 格式:mde_area_web_resp:{id}
+     * VALUE 数据类型:String 区域编号集合
+     */
+    String MDE_AREA_WEB_RESP="mde_area_web_resp";
+
     /**
      * 指定职位的所有子信息的缓存
      * <p>

+ 30 - 30
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/job/PersonBirthdayJob.java

@@ -33,34 +33,34 @@ public class PersonBirthdayJob {
     @Resource
     private UserAccountRecordService accountRecordService;
 
-//    @TenantJob
-//    // 每天早上8点
-//    //    @Scheduled(cron = "0 0 8 * * *")
-//    //    @Scheduled(cron = "*/5 * * * * *")
-//    @XxlJob("personBirthdayJob")
-//    public String execute() {
-//        // 今日生日的用户
-//        List<PersonInfoDO> list = mapper.getTodayBirthdayUserList();
-//        for (PersonInfoDO person : list) {
-//            // 修改时间
-//            mapper.update(person, new LambdaUpdateWrapper<PersonInfoDO>()
-//                    .eq(PersonInfoDO::getId, person.getId())
-//                    .set(PersonInfoDO::getBirthdayGiftSendTime, LocalDateTime.now())
-//            );
-//            // 发送邮件
-//            messageUtils.sendMail(packBirthdayWish(person.getEmail()));
-//            // 加500积分
-//            // 创建记录
-//            accountRecordService.createPointRecord(
-//                    person.getUserId(),
-//                    null,
-//                    PointBizTypeEnum.BIRTHDAY.getName(),
-//                    MathOperationEnum.ADD,
-//                    POINT,
-//                    PointBizTypeEnum.BIRTHDAY,
-//                    person.getUserId().toString()
-//            );
-//        }
-//        return String.format("生日用户 %s 个", list.size());
-//    }
+    @TenantJob
+    // 每天早上8点
+    //    @Scheduled(cron = "0 0 8 * * *")
+    //    @Scheduled(cron = "*/5 * * * * *")
+    @XxlJob("personBirthdayJob")
+    public String execute() {
+        // 今日生日的用户
+        List<PersonInfoDO> list = mapper.getTodayBirthdayUserList();
+        for (PersonInfoDO person : list) {
+            // 修改时间
+            mapper.update(person, new LambdaUpdateWrapper<PersonInfoDO>()
+                    .eq(PersonInfoDO::getId, person.getId())
+                    .set(PersonInfoDO::getBirthdayGiftSendTime, LocalDateTime.now())
+            );
+            // 发送邮件
+            messageUtils.sendMail(packBirthdayWish(person.getEmail()));
+            // 加500积分
+            // 创建记录
+            accountRecordService.createPointRecord(
+                    person.getUserId(),
+                    null,
+                    PointBizTypeEnum.BIRTHDAY.getName(),
+                    MathOperationEnum.ADD,
+                    POINT,
+                    PointBizTypeEnum.BIRTHDAY,
+                    person.getUserId().toString()
+            );
+        }
+        return String.format("生日用户 %s 个", list.size());
+    }
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/job/TradeOrderAutoCancelJob.java

@@ -20,8 +20,8 @@ public class TradeOrderAutoCancelJob {
     private TradeOrderService service;
 
     @TenantJob
-    @Scheduled(cron = "*/5 * * * * *")
-    //@XxlJob("tradeOrderAutoCancelJob")
+    //@Scheduled(cron = "*/5 * * * * *")
+    @XxlJob("tradeOrderAutoCancelJob")
     public String execute() {
         int count = service.cancelOrderBySystem();
         return String.format("过期订单 %s 个", count);

+ 17 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsService.java

@@ -2,9 +2,7 @@ package com.citu.module.menduner.system.service.appointment;
 
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsSaveReqVO;
+import com.citu.module.menduner.system.controller.base.appointment.*;
 import com.citu.module.menduner.system.dal.dataobject.appointment.NewAppointmentsDO;
 
 import javax.validation.Valid;
@@ -46,6 +44,14 @@ public interface NewAppointmentsService {
      */
     NewAppointmentsDO getNewAppointments(Long id);
 
+    /**
+     * 获得新任命
+     *
+     * @param id 编号
+     * @return 新任命
+     */
+    NewAppointmentsRespVO getById(Long id);
+
     /**
      * 获得新任命分页
      *
@@ -54,6 +60,14 @@ public interface NewAppointmentsService {
      */
     PageResult<NewAppointmentsDO> getNewAppointmentsPage(NewAppointmentsPageReqVO pageReqVO);
 
+    /**
+     * 获得新任命分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 新任命分页
+     */
+    PageResult<NewAppointmentsSimpleRespVO> page(NewAppointmentsPageReqVO pageReqVO);
+
     /**
      * 获得新任命查询条件
      *

+ 23 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsServiceImpl.java

@@ -2,11 +2,10 @@ package com.citu.module.menduner.system.service.appointment;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
-import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsSaveReqVO;
+import com.citu.module.menduner.system.controller.base.appointment.*;
 import com.citu.module.menduner.system.dal.dataobject.appointment.NewAppointmentsDO;
 import com.citu.module.menduner.system.dal.mysql.appointment.NewAppointmentsMapper;
+import com.citu.module.menduner.system.service.person.PersonIntegrationService;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -27,6 +26,9 @@ public class NewAppointmentsServiceImpl implements NewAppointmentsService {
     @Resource
     private NewAppointmentsMapper newAppointmentsMapper;
 
+    @Resource
+    private PersonIntegrationService personIntegrationService;
+
     @Override
     public Long createNewAppointments(NewAppointmentsSaveReqVO createReqVO) {
         // 插入
@@ -64,11 +66,29 @@ public class NewAppointmentsServiceImpl implements NewAppointmentsService {
         return newAppointmentsMapper.selectById(id);
     }
 
+    @Override
+    public NewAppointmentsRespVO getById(Long id) {
+        NewAppointmentsRespVO resp =
+                BeanUtils.toBean(newAppointmentsMapper.selectById(id), NewAppointmentsRespVO.class);
+        resp.setUserPersonList(personIntegrationService.getPersonByName(resp.getNameChinese()));
+        return resp;
+    }
+
     @Override
     public PageResult<NewAppointmentsDO> getNewAppointmentsPage(NewAppointmentsPageReqVO pageReqVO) {
         return newAppointmentsMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<NewAppointmentsSimpleRespVO> page(NewAppointmentsPageReqVO pageReqVO) {
+        PageResult<NewAppointmentsSimpleRespVO> respVO =
+                BeanUtils.toBean(newAppointmentsMapper.selectPage(pageReqVO), NewAppointmentsSimpleRespVO.class)   ;
+        respVO.getList().forEach(item -> {
+            item.setUserPersonList(personIntegrationService.getPersonByName(item.getNameChinese()));
+        });
+        return respVO;
+    }
+
     @Override
     public NewAppointmentsConditionRespVO getCondition() {
         NewAppointmentsConditionRespVO condition = new NewAppointmentsConditionRespVO();

+ 7 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/area/AreaService.java

@@ -135,4 +135,10 @@ public interface AreaService {
      * 根据名称和类型获取地区
      **/
     AreaDO getAreaByNameAndType(String name, String type);
-}
+
+    /**
+     * 根据id获取地区
+     **/
+    AreaWebRespVO getById(Long id);
+}
+

+ 65 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/area/AreaServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.datapermission.core.annotation.DataPermission;
+import com.citu.framework.ip.core.enums.AreaTypeEnum;
 import com.citu.module.menduner.system.controller.app.jobhunt.area.vo.AppAreaChildrenRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.area.vo.AppAreaHotRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.area.vo.AppAreaListReqVO;
@@ -294,4 +295,68 @@ public class AreaServiceImpl implements AreaService {
     public AreaDO getAreaByNameAndType(String name, String type) {
         return areaMapper.selectByNameAndType(name, type);
     }
+
+    @Override
+    @Cacheable(cacheNames = RedisKeyConstants.MDE_AREA_WEB_RESP, key = "#id", unless = "#result == null")
+    public AreaWebRespVO getById(Long id) {
+        AreaDO area = areaMapper.selectById(id);
+        if (null == area) {
+            return null;
+        }
+        AreaWebRespVO respVO = new AreaWebRespVO();
+        if (AreaTypeEnum.COUNTRY.getType().toString().equals(area.getType())) {
+            // 国家
+            respVO.setStr(area.getName());
+        }
+        if (AreaTypeEnum.PROVINCE.getType().toString().equals(area.getType())) {
+            // 省份
+            respVO.setStr(area.getName());
+            respVO.setProvinceId(area.getId());
+            respVO.setProvince(area.getName());
+        }
+        if (AreaTypeEnum.CITY.getType().toString().equals(area.getType())) {
+            // 城市
+            AreaDO province = areaMapper.selectById(area.getParentId());
+            if (null != province) {
+                respVO.setProvinceId(province.getId());
+                respVO.setProvince(province.getName());
+                // xx省-xx市
+                respVO.setStr(province.getName() + "-" + area.getName());
+            } else {
+                respVO.setStr(area.getName());
+            }
+
+            respVO.setCityId(area.getId());
+            respVO.setCity(area.getName());
+
+        }
+        if (AreaTypeEnum.DISTRICT.getType().toString().equals(area.getType())) {
+            // 区县
+
+            AreaDO city = areaMapper.selectById(area.getParentId());
+            if (null != city) {
+                respVO.setCityId(city.getId());
+                respVO.setCity(city.getName());
+                AreaDO province = areaMapper.selectById(city.getParentId());
+                if (null != province) {
+                    respVO.setProvinceId(province.getId());
+                    respVO.setProvince(province.getName());
+                }
+                if (null != province && "市辖区".equals(city.getName())) {
+                    // 直辖市
+                    // 北京市 xx 区
+                    respVO.setStr(province.getName() + "-" + area.getName());
+                } else {
+                    // xx 市 xx 区
+                    respVO.setStr(city.getName() + "-" + area.getName());
+                }
+            } else {
+                respVO.setStr(area.getName());
+            }
+            respVO.setDistrictId(area.getId());
+            respVO.setDistrict(area.getName());
+
+        }
+        return respVO;
+    }
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java

@@ -220,7 +220,7 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
             userBindService.createUser(userBindDO);
         }
         // 给管理员发邮件
-//        messageUtils.sendMail(packEnterpriseRegisterSuccess(enterpriseRegister.getEmail()));
+        messageUtils.sendMail(packEnterpriseRegisterSuccess(enterpriseRegister.getEmail()));
 
     }
 

+ 16 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprisejob/EnterpriseJobServiceImpl.java

@@ -67,6 +67,12 @@ public class EnterpriseJobServiceImpl implements EnterpriseJobService {
 
             if (CollUtil.isNotEmpty(jobList)) {
                 resp.setJobList(JobAdvertisedConvert.INSTANCE.convertListSimple(jobList));
+                // 设置区域
+                resp.getJobList().forEach(job -> {
+                    if (null != job.getAreaId()) {
+                        job.setArea(areaService.getById(job.getAreaId()));
+                    }
+                });
             }
         });
         return result;
@@ -88,6 +94,10 @@ public class EnterpriseJobServiceImpl implements EnterpriseJobService {
                 EnterpriseConvert.INSTANCE.convert(enterpriseMapper.selectById(job.getEnterpriseId()));
         respVO.setEnterprise(enterprise);
 
+        if (null != job.getAreaId()) {
+            respVO.setArea(areaService.getById(job.getAreaId()));
+        }
+
         // 查询联系人信息
         EnterpriseUserContactRespVO contactRespVO = userBindService.
                 getContact(enterprise.getId(), respVO.getUserId());
@@ -121,6 +131,12 @@ public class EnterpriseJobServiceImpl implements EnterpriseJobService {
 
             if (CollUtil.isNotEmpty(jobList)) {
                 resp.setJobList(JobAdvertisedConvert.INSTANCE.convertListSimple(jobList));
+                // 设置区域
+                resp.getJobList().forEach(job -> {
+                    if (null != job.getAreaId()) {
+                        job.setArea(areaService.getById(job.getAreaId()));
+                    }
+                });
             }
         });
         List<AppEnterpriseJobRespVO> list = result.getList();

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java

@@ -27,6 +27,7 @@ import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
 import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
 import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
+import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
@@ -91,6 +92,8 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     @Resource
     private PersonInfoService personInfoService;
     @Resource
+    private AreaService areaService;
+    @Resource
     private RedisUtils redisUtils;
     @Resource
     private MessageUtils messageUtils;
@@ -255,6 +258,11 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
         if (CollUtil.isEmpty(result.getList())) {
             return PageResult.empty();
         }
+        result.getList().forEach(resp -> {
+            if (null != resp.getJob() && null != resp.getJob().getAreaId()) {
+                resp.getJob().setArea(areaService.getById(resp.getJob().getAreaId()));
+            }
+        });
         redisUtils.setEnterpriseUserLookPersonPermission(result.getList().stream()
                 .map(AppRecruitInterviewInviteRespVO::getUserId)
                 .collect(Collectors.toSet()));

+ 34 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -36,6 +36,7 @@ import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.GraphProducer;
+import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -83,6 +84,8 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Resource
     private EnterpriseService enterpriseService;
     @Resource
+    private AreaService areaService;
+    @Resource
     private ESProducer esProducer;
     @Resource
     private GraphProducer producer;
@@ -240,8 +243,9 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         } catch (Exception ex) {
             ex.printStackTrace();
         }
-        return mapper.selectPage2(pageReqVO);
-
+        PageResult<AppJobAdvertisedHomeRespVO> result = mapper.selectPage2(pageReqVO);
+        fillArea(result);
+        return result;
 
     }
 
@@ -250,7 +254,9 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         AppJobAdvertisedPageReqVO pageReqVO =
                 new AppJobAdvertisedPageReqVO(pageParam, AppJobAdvertisedPageReqVO.NEW);
         pageReqVO.setHire(false);
-        return mapper.selectPage(pageReqVO);
+        PageResult<AppJobAdvertisedHomeRespVO> result = mapper.selectPage(pageReqVO);
+        fillArea(result);
+        return result;
     }
 
     @Override
@@ -271,7 +277,9 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         } catch (Exception ex) {
             ex.printStackTrace();
         }
-        return mapper.selectPage2(pageReqVO);
+        PageResult<AppJobAdvertisedHomeRespVO> result = mapper.selectPage2(pageReqVO);
+        fillArea(result);
+        return result;
     }
 
     @Override
@@ -279,7 +287,21 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         AppJobAdvertisedPageReqVO pageReqVO =
                 new AppJobAdvertisedPageReqVO(pageParam, AppJobAdvertisedPageReqVO.HIRE);
         pageReqVO.setHire(true);
-        return mapper.selectPage(pageReqVO);
+        PageResult<AppJobAdvertisedHomeRespVO> result = mapper.selectPage(pageReqVO);
+        fillArea(result);
+        return result;
+    }
+
+
+    public void fillArea(PageResult<AppJobAdvertisedHomeRespVO> result) {
+        if (CollUtil.isEmpty(result.getList())) {
+            return;
+        }
+        for (AppJobAdvertisedHomeRespVO resp : result.getList()) {
+            if(null != resp.getAreaId()) {
+                resp.setArea(areaService.getById(resp.getAreaId()));
+            }
+        }
     }
 
 
@@ -553,11 +575,17 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Override
     public List<AppRecruitJobSimpleRespVO> getList(String status) {
-        return mapper.list(
+        List<AppRecruitJobSimpleRespVO> list = mapper.list(
                 LoginUserContext.getEnterpriseId(),
                 LoginUserContext.getUserId(),
                 null, status
         );
+        list.forEach(item -> {
+            if (null != item.getAreaId()) {
+                item.setArea(areaService.getById(item.getAreaId()));
+            }
+        });
+        return list;
     }
 
     @Override

+ 22 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

@@ -116,6 +116,10 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
                     .getContact(respVO.getEnterprise().getId(), respVO.getJob().getUserId());
             // 设置联系人
             respVO.setContact(contactRespVO);
+            // 填充区域信息
+            if (null != respVO.getJob() && null != respVO.getJob().getAreaId()) {
+                respVO.getJob().setArea(areaService.getById(respVO.getJob().getAreaId()));
+            }
         }
         return result;
     }
@@ -129,6 +133,10 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
                     .getContact(respVO.getEnterprise().getId(), respVO.getJob().getUserId());
             // 设置联系人
             respVO.setContact(contactRespVO);
+            // 填充区域信息
+            if (null != respVO.getJob() && null != respVO.getJob().getAreaId()) {
+                respVO.getJob().setArea(areaService.getById(respVO.getJob().getAreaId()));
+            }
         }
         return result;
     }
@@ -281,6 +289,11 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
                     enterprise.setAnotherName(searchHit.getContent().getEnterpriseAnotherName());
                     respVO.setEnterprise(enterprise);
 
+                    if (null != respVO.getJob() && null != respVO.getJob().getAreaId()) {
+                        respVO.getJob()
+                                .setArea(areaService.getById(respVO.getJob().getAreaId()));
+                    }
+
                     // 获取职位发布人
                     EnterpriseUserContactRespVO contactRespVO = userBindService
                             .getContact(searchHit.getContent().getEnterpriseId(), searchHit.getContent().getUserId());
@@ -327,6 +340,10 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
                 respVO.setEdit(true);
             }
 
+            if (null != job.getAreaId()) {
+                respVO.setArea(areaService.getById(job.getAreaId()));
+            }
+
             list.add(respVO);
 
         });
@@ -340,6 +357,11 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         if (CollUtil.isEmpty(pageResult.getList())) {
             return PageResult.empty();
         }
+        pageResult.getList().forEach(item -> {
+            if(null!=item.getJob() && null != item.getJob().getAreaId()) {
+                item.getJob().setArea(areaService.getById(item.getJob().getAreaId()));
+            }
+        });
         redisUtils.setEnterpriseUserLookPersonPermission(pageResult.getList().stream()
                 .map(AppRecruitJobCvRelRespVO::getUserId)
                 .collect(Collectors.toSet()));

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java

@@ -11,6 +11,7 @@ import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRes
 import com.citu.module.menduner.system.controller.base.userperson.UserPersonPageReqVO;
 import com.citu.module.menduner.system.controller.base.userperson.UserPersonRespVO;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -37,6 +38,14 @@ public interface PersonIntegrationService {
      */
     UserPersonRespVO sysDetail(Long userId);
 
+    /**
+     * 获取人才详情
+     *
+     * @param name 姓名
+     * @return UserPersonRespVO
+     **/
+    List<UserPersonRespVO> getPersonByName(String name);
+
     /**
      * 根据id获取人才在线简历详情
      *

+ 13 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java

@@ -154,6 +154,11 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
         return respVO;
     }
 
+    @Override
+    public List<UserPersonRespVO> getPersonByName(String name) {
+        return userMapper.getByName(name);
+    }
+
     @Override
     public AppRecruitPersonDetailRespVO detail(Long userId) {
         AppRecruitPersonDetailRespVO respVO = new AppRecruitPersonDetailRespVO();
@@ -331,6 +336,14 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
             }
         }
         PageResult<PersonInfoRespVO> result = personInfoMapper.queryPage(reqVO, LoginUserContext.getEnterpriseId());
+        result.getList().forEach(item -> {
+            if (null != item.getAreaId()) {
+                item.setArea(areaService.getById(item.getAreaId()));
+            }
+            if (null != item.getRegId()) {
+                item.setReg(areaService.getById(item.getRegId()));
+            }
+        });
         redisUtils.setEnterpriseUserLookPersonPermission(
                 result.getList().stream()
                         .map(PersonInfoRespVO::getUserId)

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionService.java

@@ -120,4 +120,12 @@ public interface PositionService {
      * 获取职位名称集合
      **/
     Map<Long, String> getNameByIds(Set<Long> ids);
+
+    /**
+     * 根据职位名称获取职位信息
+     *
+     * @param name 职位名称
+     * @return 职位信息
+     **/
+    PositionDO getByName(String name);
 }

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionServiceImpl.java

@@ -396,4 +396,9 @@ public class PositionServiceImpl implements PositionService {
         List<PositionDO> positionList = positionMapper.selectBatchIds(ids);
         return positionList.stream().collect(Collectors.toMap(PositionDO::getId, PositionDO::getNameCn));
     }
+
+    @Override
+    public PositionDO getByName(String name) {
+        return positionMapper.selectOne(PositionDO::getNameCn,name);
+    }
 }

+ 41 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/resume/OnlineResumeServiceImpl.java

@@ -13,6 +13,7 @@ import com.citu.module.menduner.system.controller.base.talent.info.TalentMapInfo
 import com.citu.module.menduner.system.controller.base.talent.train.TalentMapTrainExpRespVO;
 import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpRespVO;
 import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
+import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
 import com.citu.module.menduner.system.enums.eduexp.EducationTypeEnum;
 import com.citu.module.menduner.system.enums.job.JobSeekStatusEnum;
 import com.citu.module.menduner.system.enums.job.JobTypeEnum;
@@ -20,8 +21,9 @@ import com.citu.module.menduner.system.enums.person.MaritalStatusEnum;
 import com.citu.module.menduner.system.enums.person.PersonSexEnum;
 import com.citu.module.menduner.system.enums.workexp.ExpTypeEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
-import org.apache.commons.lang3.StringUtils;
+import com.citu.module.menduner.system.service.position.PositionService;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -40,6 +42,8 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
     @Resource
     private AreaService areaService;
     @Resource
+    private PositionService positionService;
+    @Resource
     private TenResumeService tenResumeService;
 
     @Override
@@ -71,6 +75,21 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         resp.setEduList(temResumeResVoConvertToEduExpRespVO(temResumeResVo));
         // TODO resp.workList 可填enterpriseName、positionName、startTime、endTime、content
         resp.setWorkList(temResumeResVoConvertToWorkExpRespVO(temResumeResVo));
+        resp.setLastEmployed(getLastEmployed(resp.getWorkList()));
+        if (StringUtils.hasText(temResumeResVo.getExpectJob())) {
+            // 定义分隔符数组
+            String[] delimiters = {"/", ",", "、", ","};
+            // 将多个分隔符转换为一个正则表达式
+            String regex = StrUtil.join("|", Arrays.asList(delimiters));
+            // 使用正则表达式分割字符串
+            String[] parts = temResumeResVo.getExpectJob().split(regex);
+            if (parts.length > 0) {
+                PositionDO position = positionService.getByName(parts[0]);
+                if (null != position) {
+                    resp.setLastPositionId(position.getId());
+                }
+            }
+        }
         // TODO resp.projectList 自行评估有没有
         // resp.setProjectList(temResumeResVoConvertToProjectExpRespVO(temResumeResVo));
         // TODO resp.trainList 大概率没有
@@ -122,7 +141,7 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         talentMapInfoRespVO.setHeight(temResumeResVo.getHeight());
         talentMapInfoRespVO.setWeight(temResumeResVo.getWeight());
         // 是否党员
-        if (StringUtils.isNotBlank(temResumeResVo.getPolitStatus())) {
+        if (StringUtils.hasText(temResumeResVo.getPolitStatus())) {
             if ("党员".contains(temResumeResVo.getPolitStatus())
                     || "共产党员".equals(temResumeResVo.getPolitStatus())
                     || "共产党党员".equals(temResumeResVo.getPolitStatus())
@@ -138,7 +157,7 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         // 婚姻状态
         talentMapInfoRespVO.setMaritalStatus(MaritalStatusEnum.NOT_DISCLOSED.getType());
         talentMapInfoRespVO.setMaritalStatusStr(MaritalStatusEnum.NOT_DISCLOSED.getName());
-        if (StringUtils.isNotBlank(temResumeResVo.getMaritalStatus())) {
+        if (StringUtils.hasText(temResumeResVo.getMaritalStatus())) {
 
             String maritalStatus = temResumeResVo.getMaritalStatus().replaceAll(" ", "");
             Map<String, MaritalStatusEnum> maritalStatusMap = new HashMap<>();
@@ -156,7 +175,7 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         }
 
         // 所在城市
-        if (StringUtils.isNotBlank(temResumeResVo.getCityNorm())) {
+        if (StringUtils.hasText(temResumeResVo.getCityNorm())) {
             String cityNorm = temResumeResVo.getCityNorm().replaceAll(" ", "");
             String[] split = cityNorm.split("-");// 规范化的城市名,到“区县”一级: 中国-广东省 中国-湖南省-岳阳市 中国-湖南省-岳阳市-华容县
             // 只有省级别
@@ -178,7 +197,7 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         }
 
         // 户籍地
-        if (StringUtils.isNotBlank(temResumeResVo.getHukouAddressNorm())) {
+        if (StringUtils.hasText(temResumeResVo.getHukouAddressNorm())) {
             String hukouAddressNorm = temResumeResVo.getHukouAddressNorm().replaceAll(" ", "");
             String[] split = hukouAddressNorm.split("-");// 规范化的城市名,到“区县”一级: 中国-广东省 中国-湖南省-岳阳市 中国-湖南省-岳阳市-华容县
             // 只有省级别
@@ -202,8 +221,8 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         }
 
         // 意向城市
-        if (StringUtils.isNotBlank(temResumeResVo.getExpectJLocationNorm())) {
-            String expectJLocationNorm =  temResumeResVo.getExpectJLocationNorm().replaceAll(" ", "");
+        if (StringUtils.hasText(temResumeResVo.getExpectJLocationNorm())) {
+            String expectJLocationNorm = temResumeResVo.getExpectJLocationNorm().replaceAll(" ", "");
             String[] split = expectJLocationNorm.split("-");// 规范化的城市名,到“区县”一级: 中国-广东省 中国-湖南省-岳阳市 中国-湖南省-岳阳市-华容县
             // 只有省级别
             if (split.length == 2) {
@@ -253,9 +272,9 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         talentMapInfoRespVO.setJobTypeStr(jobTypeEnum.getName());
 
         // 求职意向
-        if (StringUtils.isNotBlank(temResumeResVo.getExpectJob())) {
+        if (StringUtils.hasText(temResumeResVo.getExpectJob())) {
             // 定义分隔符数组
-            String[] delimiters = {"/", ",", "、",","};
+            String[] delimiters = {"/", ",", "、", ","};
             // 将多个分隔符转换为一个正则表达式
             String regex = StrUtil.join("|", Arrays.asList(delimiters));
             // 使用正则表达式分割字符串
@@ -268,10 +287,10 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
     List<JobInterestedRespVO> temResumeResVoConvertToJobInterestedRespVO(TemResumeContent temResumeResVo) {
         List<JobInterestedRespVO> interestedList = new ArrayList<>();
         JobInterestedRespVO jobInterestedRespVO = new JobInterestedRespVO();
-        if (StringUtils.isNotBlank(temResumeResVo.getExpectSalaryMin())) {
+        if (StringUtils.hasText(temResumeResVo.getExpectSalaryMin())) {
             jobInterestedRespVO.setPayFrom(new BigDecimal(temResumeResVo.getExpectSalaryMin()));
         }
-        if (StringUtils.isNotBlank(temResumeResVo.getExpectSalaryMax())) {
+        if (StringUtils.hasText(temResumeResVo.getExpectSalaryMax())) {
             jobInterestedRespVO.setPayTo(new BigDecimal(temResumeResVo.getExpectSalaryMax()));
         }
 
@@ -322,6 +341,17 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         return respVOS;
     }
 
+    TalentMapWorkExpRespVO getLastEmployed(List<TalentMapWorkExpRespVO> list) {
+        TalentMapWorkExpRespVO lastEmployed = list.stream()
+                .filter(TalentMapWorkExpRespVO::getCurrentlyEmployed).findFirst().orElse(null);
+        if(null != lastEmployed) {
+            // 取在职那一条数据
+            return lastEmployed;
+        }
+        // 取endTime最新一条
+        return list.stream().max(Comparator.comparing(TalentMapWorkExpRespVO::getEndTime)).orElse(null);
+    }
+
     List<ProjectExpRespVO> temResumeResVoConvertToProjectExpRespVO(TemResumeContent temResumeResVo) {
         List<ProjectExpRespVO> respVOS = new ArrayList<>();
         for (TemResumetProjectVo projectVo : temResumeResVo.getProjExpObjs()) {