Explorar el Código

1、完善招聘会管理相关
2、增加同步旧平台简历投递时间逻辑

rayson hace 7 meses
padre
commit
0499cd0699
Se han modificado 25 ficheros con 358 adiciones y 87 borrados
  1. 2 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 7 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java
  3. 25 12
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/fair/FairController.java
  4. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/sync/SyncController.java
  5. 5 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/resume/AppOnlineResumeController.java
  6. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java
  7. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java
  8. 18 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/FairWhiteReqVO.java
  9. 6 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairPageReqVO.java
  10. 6 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairRespVO.java
  11. 9 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairSaveReqVO.java
  12. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairDO.java
  13. 18 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  14. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/talent/TalentMapInfoMapper.java
  15. 25 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/MdeOldSyncService.java
  16. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  17. 14 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java
  18. 71 31
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java
  19. 28 19
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  20. 4 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  21. 17 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/talent/TalentMapEduExpServiceImpl.java
  22. 74 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/talent/TalentMapInfoServiceImpl.java
  23. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_GB.properties
  24. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  25. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

+ 2 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -587,6 +587,8 @@ public interface ErrorCodeConstants {
 
     ErrorCode JOB_FAIR_NO_PERMISSION = new ErrorCode(1_100_056_005, "您没有权限参加该招聘会");
 
+    ErrorCode JOB_FAIR_NOT_START = new ErrorCode(1_100_056_006, "招聘会时间还未开始");
+
     // ========== 招聘职位扩展 1_100_057_000 ==========
     ErrorCode JOB_EXTEND_JOB_ID_NOT_NULL = new ErrorCode(1_100_057_001, "招聘职位id不能为空");
 

+ 7 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java

@@ -91,12 +91,18 @@ public class EnterpriseController {
 
     @GetMapping(value = {"/list-all-simple", "/simple-list"})
     @Operation(summary = "获取企业精简信息列表", description = "只包含被开启的企业,主要用于前端的下拉选项")
-    public CommonResult<List<EnterpriseSimpleRespVO>> getSimpleDeptList() {
+    public CommonResult<List<EnterpriseSimpleRespVO>> getSimpleList() {
         List<EnterpriseDO> list = enterpriseService.getEnterpriseList(
                 new EnterpriseListReqVO().setStatus(MendunerStatusEnum.ENABLE.getStatus()));
         return success(BeanUtils.toBean(list, EnterpriseSimpleRespVO.class));
     }
 
+    @GetMapping(value = {"/simple-page"})
+    @Operation(summary = "获取企业精简信息分页", description = "只包含被开启的企业,主要用于前端的下拉选项")
+    public CommonResult<PageResult<EnterpriseBaseSimpleRespVO>> getSimplePage(@Valid PageParam pageReqVO) {
+        return success(enterpriseService.getEnterpriseSimplePage(pageReqVO));
+    }
+
     @GetMapping("/sync/graph")
     @Operation(summary = "同步知识图谱数据")
     public CommonResult<Boolean> syncGraph() {

+ 25 - 12
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/fair/FairController.java

@@ -11,7 +11,6 @@ import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.system.controller.base.fair.*;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.service.fair.FairService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -94,11 +93,25 @@ public class FairController {
                 BeanUtils.toBean(list, JobFairRespVO.class));
     }
 
+    @PostMapping("/enable")
+    @Operation(summary = "开启")
+    @PreAuthorize("@ss.hasPermission('menduner:system:job-fair:update')")
+    public CommonResult<Boolean> enable(@RequestParam("ids") String ids) {
+        fairService.enable(StrUtils.splitToLong(ids));
+        return success(true);
+    }
+
+    @PostMapping("/disable")
+    @Operation(summary = "关闭")
+    @PreAuthorize("@ss.hasPermission('menduner:system:job-fair:update')")
+    public CommonResult<Boolean> disable(@RequestParam("ids") String ids) {
+        fairService.disable(StrUtils.splitToLong(ids));
+        return success(true);
+    }
 
     @GetMapping("/get-white-enterprise")
     @Operation(summary = "获得招聘会白名单企业")
     public CommonResult<PageResult<FairWhiteRespVO>> page(@Valid FairWhitePageReqVO reqVO) {
-        reqVO.setJobFairId(1L);
         PageResult<FairWhiteDO> fairWhiteList = fairService.page(reqVO);
         PageResult<FairWhiteRespVO> resp = BeanUtils.toBean(fairWhiteList, FairWhiteRespVO.class);
         for (FairWhiteRespVO fairWhiteRespVO : resp.getList()) {
@@ -109,37 +122,37 @@ public class FairController {
 
     @PutMapping("/add-white-list")
     @Operation(summary = "添加企业白名单")
-    public CommonResult<Boolean> addWhiteList(@RequestParam("enterpriseIds") String enterpriseIds) {
-        fairService.addWhiteList(1L, StrUtils.splitToLong(enterpriseIds));
+    public CommonResult<Boolean> addWhiteList(@Valid @RequestBody FairWhiteReqVO reqVO) {
+        fairService.addWhiteList(reqVO.getJobFairId(), StrUtils.splitToLong(reqVO.getEnterpriseIds()));
         return success(true);
     }
 
     @PutMapping("/remove-white-list")
     @Operation(summary = "移除企业白名单")
-    public CommonResult<Boolean> removeWhiteList(@RequestParam("enterpriseIds") String enterpriseIds) {
-        fairService.removeWhiteList(1L, StrUtils.splitToLong(enterpriseIds));
+    public CommonResult<Boolean> removeWhiteList(@Valid @RequestBody FairWhiteReqVO reqVO) {
+        fairService.removeWhiteList(reqVO.getJobFairId(), StrUtils.splitToLong(reqVO.getEnterpriseIds()));
         return success(true);
     }
 
     @PutMapping("/add-white-list2")
     @Operation(summary = "添加企业白名单2")
-    public CommonResult<Boolean> addWhiteList2(@RequestParam("enterpriseName") String enterpriseName) {
-        fairService.addWhiteList2(1L, Collections.singletonList(enterpriseName));
+    public CommonResult<Boolean> addWhiteList2(@Valid @RequestBody FairWhiteReqVO reqVO) {
+        fairService.addWhiteList2(reqVO.getJobFairId(), Collections.singletonList(reqVO.getEnterpriseName()));
         return success(true);
     }
 
     @PutMapping("/remove-white-list2")
     @Operation(summary = "移除企业白名单2")
-    public CommonResult<Boolean> removeWhiteList2(@RequestParam("enterpriseName") String enterpriseName) {
-        fairService.removeWhiteList2(1L, Collections.singletonList(enterpriseName));
+    public CommonResult<Boolean> removeWhiteList2(@Valid @RequestBody FairWhiteReqVO reqVO) {
+        fairService.removeWhiteList2(reqVO.getJobFairId(), Collections.singletonList(reqVO.getEnterpriseName()));
         return success(true);
     }
 
     @GetMapping("/detail/export-excel")
     @Operation(summary = "导出参加双选会职位 Excel")
     @ApiAccessLog(operateType = EXPORT)
-    public void exportJobFairDetail(HttpServletResponse response) throws IOException {
-        List<JobFairDetailRespVO> list = fairService.getJobFairDetailList(1L);
+    public void exportJobFairDetail(@RequestParam("jobFairId") Long jobFairId, HttpServletResponse response) throws IOException {
+        List<JobFairDetailRespVO> list = fairService.getJobFairDetailList(jobFairId);
         // 导出 Excel
         ExcelUtils.write(response, "参加双选会职位.xls", "发布职位", JobFairDetailRespVO.class,
                 BeanUtils.toBean(list, JobFairDetailRespVO.class));

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/sync/SyncController.java

@@ -39,4 +39,11 @@ public class SyncController {
         oldService.run();
         return success(true);
     }
+    @PostMapping("/old/sync/job-cv/deliver/date")
+    @Operation(summary = "同步就平台用户投递简历时间")
+    public CommonResult<Boolean> syncJobCvDeliverDate() {
+        oldService.syncJobCvDeliverDate();
+        return success(true);
+    }
+
 }

+ 5 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/resume/AppOnlineResumeController.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.controller.app.common.resume;
 
 import com.citu.framework.common.pojo.CommonResult;
-import com.citu.module.menduner.system.controller.base.resume.resumesdk.TemResumeResVo;
+import com.citu.module.menduner.system.controller.base.person.info.PersonDetailExtendRespVO;
 import com.citu.module.menduner.system.service.resume.OnlineResumeService;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -22,7 +22,7 @@ import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "用户端 - 在线简历")
 @RestController
-@RequestMapping("/menduner/system")
+@RequestMapping("/menduner/system/online/resume")
 @Validated
 public class AppOnlineResumeController {
 
@@ -38,9 +38,9 @@ public class AppOnlineResumeController {
      * @eo.method get
      * @eo.request-type formdata
      */
-    @GetMapping("/online/resume/parser")
-    public CommonResult<TemResumeResVo> resumeParser(@RequestParam("fileUrl") String fileUrl) {
-        return success(onlineResumeService.resumeParser(fileUrl));
+    @GetMapping("/parser2")
+    public CommonResult<PersonDetailExtendRespVO> resumeParser(@RequestParam("fileUrl") String fileUrl) {
+        return success(onlineResumeService.parserByPerson(fileUrl));
     }
 
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java

@@ -80,5 +80,8 @@ public class AppRecruitJobSaveReqVO {
     @Schema(description = "职位状态")
     private String status;
 
+    @Schema(description = "是否招聘会保存职位")
+    private boolean fair = false;
+
 
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.controller.base.enterprise.bind;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -21,6 +22,12 @@ public class EnterpriseUserBindSimpleRespVO {
     @Schema(description = "企业简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
     private String enterpriseAnotherName;
 
+    @Schema(description = "企业vip标识")
+    private String vipFlag;
+
+    @Schema(description = "企业vip过期时间")
+    private LocalDateTime vipExpireDate;
+
     @Schema(description = "岗位名称", example = "23317")
     private String postName;
 

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/FairWhiteReqVO.java

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 招聘会白名单 Request VO")
+@Data
+public class FairWhiteReqVO {
+
+    @Schema(description = "招聘会id", example = "1")
+    private Long jobFairId;
+
+    @Schema(description = "企业ids字符串", example = "1")
+    private String enterpriseIds;
+
+    @Schema(description = "企业名称", example = "1")
+    private String enterpriseName;
+}

+ 6 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairPageReqVO.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.controller.base.fair;
 
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -9,6 +10,7 @@ import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
@@ -27,6 +29,9 @@ public class JobFairPageReqVO extends PageParam {
     @Schema(description = "口号")
     private String slogan;
 
+    @Schema(description = "状态(0正常 1停用)")
+    private String status;
+
     @Schema(description = "开始时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] startTime;
@@ -36,7 +41,7 @@ public class JobFairPageReqVO extends PageParam {
     private LocalDateTime[] endTime;
 
     @Schema(description = "什么等级的vip可以参与")
-    private String vipRequire;
+    private List<String> vipRequire;
 
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

+ 6 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairRespVO.java

@@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Schema(description = "管理后台 - 招聘会 Response VO")
 @Data
@@ -77,9 +78,13 @@ public class JobFairRespVO {
     @ExcelProperty("结束时间")
     private LocalDateTime endTime;
 
+    @Schema(description = "状态(0正常 1停用)")
+    @ExcelProperty("状态(0正常 1停用)")
+    private String status;
+
     @Schema(description = "什么等级的vip可以参与")
     @ExcelProperty("什么等级的vip可以参与")
-    private String vipRequire;
+    private List<String> vipRequire;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")

+ 9 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairSaveReqVO.java

@@ -2,11 +2,12 @@ package com.citu.module.menduner.system.controller.base.fair;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import javax.validation.constraints.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Schema(description = "管理后台 - 招聘会新增/修改 Request VO")
 @Data
@@ -64,7 +65,10 @@ public class JobFairSaveReqVO {
     @NotNull(message = "结束时间不能为空")
     private LocalDateTime endTime;
 
+    @Schema(description = "状态(0正常 1停用)")
+    private String status;
+
     @Schema(description = "什么等级的vip可以参与")
-    private String vipRequire;
+    private List<String> vipRequire;
 
 }

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairDO.java

@@ -17,7 +17,7 @@ import java.util.List;
  *
  * @author Rayson
  */
-@TableName(value = "mde_fair",autoResultMap = true)
+@TableName(value = "mde_fair", autoResultMap = true)
 @KeySequence("mde_fair_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -92,6 +92,10 @@ public class FairDO extends TenantBaseDO {
      * 结束时间
      */
     private LocalDateTime endTime;
+    /**
+     * 状态 0开启 1关闭
+     */
+    private String status;
     /**
      * 什么等级的vip可以参与
      */

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.dal.mysql.enterprise;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
@@ -201,6 +202,9 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
     }
 
 
+    /**
+     * 获取不是vip企业的列表
+     **/
     default List<EnterpriseDO> getNoVipEnterpriseList(){
         return selectList(new LambdaQueryWrapperX<EnterpriseDO>()
                 .isNull(EnterpriseDO::getVipFlag)
@@ -208,5 +212,19 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         );
     }
 
+    /**
+     * 判断企业是否为vip
+     * 如果是,则返回true
+     * VipFlag如果大于0并且vipExpireDate小于当前时间,则返回true
+     **/
+    default boolean checkVip(Long id) {
+        // 判断企业是否为vip,
+        return selectCount(new LambdaQueryWrapper<EnterpriseDO>()
+                .eq(EnterpriseDO::getId, id)
+                .gt(EnterpriseDO::getVipFlag, 0)
+                .gt(EnterpriseDO::getVipExpireDate, LocalDateTime.now())
+        ) > 0;
+    }
+
 
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/talent/TalentMapInfoMapper.java

@@ -47,12 +47,12 @@ public interface TalentMapInfoMapper extends BaseMapperX<TalentMapInfoDO> {
     }
 
     default TalentMapInfoDO selectByNameAndPhone(String name, String phone) {
-        if(!StringUtils.hasText(name)|| !StringUtils.hasText(phone)) {
+        if(!StringUtils.hasText(name)) {
             return null;
         }
         return selectOne(new LambdaQueryWrapperX<TalentMapInfoDO>()
                 .eq(TalentMapInfoDO::getName, name)
-                .eq(TalentMapInfoDO::getPhone, phone));
+                .eqIfPresent(TalentMapInfoDO::getPhone, phone));
     }
 
 }

+ 25 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/MdeOldSyncService.java

@@ -241,6 +241,31 @@ public class MdeOldSyncService {
 //        syncHotel();
     }
 
+    /**
+     * 同步就平台用户投递简历时间
+     **/
+    @Async
+    @TenantIgnore
+    public void syncJobCvDeliverDate(){
+        List<OldPositionCvRelDO> cvRelDOList = oldPositionCvRelDOMapper.selectList(new LambdaQueryWrapperX<OldPositionCvRelDO>()
+                .eq(OldPositionCvRelDO::getDelFlag, 0)
+        );
+        cvRelDOList.forEach(e -> {
+            if (!StringUtils.hasText(e.getCvUrl()) || !StringUtils.hasText(e.getPublisher())) {
+                return;
+            }
+            JobCvRelDO cvDO = jobCvRelMapper.selectOne(JobCvRelDO::getId, e.getIntvId());
+            if(null == cvDO) {
+                return;
+            }
+            cvDO.setCreateTime(e.getDeliverDate().atStartOfDay());
+            setCommon(cvDO);
+            jobCvRelMapper.updateById(cvDO);
+        });
+
+    }
+
+
     public void syncArea() {
         List<OldSysArea> oldSysAreaList = oldSysAreaMapper.selectList(new LambdaQueryWrapperX<OldSysArea>()
                 .eq(OldSysArea::getDelFlag, 0)

+ 2 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java

@@ -354,6 +354,8 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
             resp.setEnterpriseName(enterprise.getName());
             resp.setEnterpriseAnotherName(enterprise.getAnotherName());
             resp.setLogoUrl(enterprise.getLogoUrl());
+            resp.setVipFlag(enterprise.getVipFlag());
+            resp.setVipExpireDate(enterprise.getVipExpireDate());
         }
         return resp;
     }

+ 14 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java

@@ -11,6 +11,7 @@ import com.citu.module.menduner.system.controller.base.fair.JobFairPageReqVO;
 import com.citu.module.menduner.system.controller.base.fair.JobFairSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
+import org.springframework.security.access.prepost.PreAuthorize;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -77,6 +78,15 @@ public interface FairService {
      **/
     void quitJobFair(joinJobFairReqVO reqVO);
 
+    /**
+     * 开启
+     **/
+    void enable(List<Long> ids);
+
+    /**
+     * 关闭
+     **/
+    void disable(List<Long> ids);
 
     /**
      * 火苗儿职位分页查询
@@ -86,19 +96,17 @@ public interface FairService {
     /** 根据招聘会id和企业id获取参加招聘会的职位,返回id集合 **/
     List<Long> getJobIdListByJobFairIdAndEnterpriseId(Long jobFairId, Long enterpriseId);
 
-
-
     /** 添加白名单 **/
-    void addWhiteList(Long fairId,List<Long> enterpriseIds);
+    void addWhiteList(Long jobFairId,List<Long> enterpriseIds);
 
     /** 移除白名单 **/
-    void removeWhiteList(Long fairId,List<Long> enterpriseIds);
+    void removeWhiteList(Long jobFairId,List<Long> enterpriseIds);
 
     /** 添加白名单 **/
-    void addWhiteList2(Long fairId,List<String> enterpriseNames);
+    void addWhiteList2(Long jobFairId,List<String> enterpriseNames);
 
     /** 移除白名单 **/
-    void removeWhiteList2(Long fairId,List<String> enterpriseNames);
+    void removeWhiteList2(Long jobFairId,List<String> enterpriseNames);
 
     /** 获取白名单企业,返回企业id **/
     PageResult<FairWhiteDO> page(FairWhitePageReqVO reqVO);

+ 71 - 31
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java

@@ -32,6 +32,7 @@ import com.citu.module.menduner.system.dal.mysql.fair.FairWhiteMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.major.MajorMapper;
 import com.citu.module.menduner.system.dal.mysql.position.PositionMapper;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.fair.JobFairStatusEnum;
 import com.citu.module.menduner.system.enums.job.JobTypeEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
@@ -137,7 +138,10 @@ public class FairServiceImpl implements FairService {
     public void checkJobFairExpired(FairDO fairDO) {
         LocalDateTime now = LocalDateTime.now();
         // 检查是否在时间范围内
-        if (now.isBefore(fairDO.getStartTime()) || now.isAfter(fairDO.getEndTime())) {
+        if (now.isBefore(fairDO.getStartTime())) {
+            throw exception(JOB_FAIR_NOT_START);
+        }
+        if (now.isAfter(fairDO.getEndTime())) {
             throw exception(JOB_FAIR_TIME_OVER);
         }
     }
@@ -146,7 +150,9 @@ public class FairServiceImpl implements FairService {
     public List<FairDO> list() {
         LocalDate date = LocalDate.now();
         return fairMapper.selectList(new LambdaQueryWrapperX<FairDO>()
+                .eq(FairDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
                 .ge(FairDO::getEndTime, date.atStartOfDay())
+                .orderByDesc(FairDO::getEndTime)
         );
     }
 
@@ -163,6 +169,51 @@ public class FairServiceImpl implements FairService {
 
     }
 
+    @Override
+    @DSTransactional
+    public void quitJobFair(joinJobFairReqVO reqVO) {
+        checkFairWhite(reqVO.getJobFairId());
+        FairDetailDO detailDO = fairDetailMapper
+                .selectOne(
+                        FairDetailDO::getJobFairId, reqVO.getJobFairId(),
+                        FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
+                        FairDetailDO::getJobId, reqVO.getJobId());
+        if (null == detailDO) {
+            // 不在招聘会里面
+            return;
+        }
+        detailDO.setStatus(JobFairStatusEnum.REMOVE.getStatus());
+        fairDetailMapper.updateById(detailDO);
+    }
+
+    @Override
+    @DSTransactional
+    public void enable(List<Long> ids) {
+        for (Long id : ids) {
+            FairDO fairDO = getJobFair(id);
+            if (MendunerStatusEnum.ENABLE.getStatus().equals(fairDO.getStatus())) {
+                // 已经是开启状态
+                return;
+            }
+            fairDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
+            fairMapper.updateById(fairDO);
+        }
+    }
+
+    @Override
+    @DSTransactional
+    public void disable(List<Long> ids) {
+        for (Long id : ids) {
+            FairDO fairDO = getJobFair(id);
+            if (MendunerStatusEnum.DISABLE.getStatus().equals(fairDO.getStatus())) {
+                // 已经是关闭状态
+                return;
+            }
+            fairDO.setStatus(MendunerStatusEnum.DISABLE.getStatus());
+            fairMapper.updateById(fairDO);
+        }
+    }
+
     @Override
     @DSTransactional
     public void syncJob(Long jobFairId) {
@@ -171,19 +222,23 @@ public class FairServiceImpl implements FairService {
         List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedMapper.selectListByEnterpriseIdAndType
                 (enterpriseDO.getId(), List.of(JobTypeEnum.FULL_TIME.getType(), JobTypeEnum.INTERNSHIP.getType()));
         jobAdvertisedList.forEach(job -> {
-            insertFairJob(jobFairId, job.getId(),true);
+            insertFairJob(jobFairId, job.getId(), true);
         });
     }
 
     @Override
+    @DSTransactional
     public void joinJobFair(joinJobFairReqVO reqVO) {
         checkFairWhite(reqVO.getJobFairId());
-        insertFairJob(reqVO.getJobFairId(), reqVO.getJobId(),false);
+        insertFairJob(reqVO.getJobFairId(), reqVO.getJobId(), false);
     }
 
+    @DSTransactional
     public void insertFairJob(Long jobFairId, Long jobId, boolean sync) {
         FairDetailDO detailDO = fairDetailMapper
-                .selectOne(FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
+                .selectOne(
+                        FairDetailDO::getJobFairId, jobFairId,
+                        FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
                         FairDetailDO::getJobId, jobId);
         if (sync) {
             // 同步数据,存在数据则不同步,同步过不在同步
@@ -200,7 +255,7 @@ public class FairServiceImpl implements FairService {
             // 效验是否符合会员要求
             // 不符合抛出异常提示
         }
-        if(null == detailDO) {
+        if (null == detailDO) {
             // 新增数据
             FairDetailDO detail = FairDetailDO.builder()
                     .jobFairId(fairDO.getId())
@@ -209,28 +264,13 @@ public class FairServiceImpl implements FairService {
                     .status(JobFairStatusEnum.NORMAL.getStatus())
                     .build();
             fairDetailMapper.insert(detail);
-        }else {
+        } else {
             // 修改为正常状态
             detailDO.setStatus(JobFairStatusEnum.NORMAL.getStatus());
             fairDetailMapper.updateById(detailDO);
         }
     }
 
-    @Override
-    @DSTransactional
-    public void quitJobFair(joinJobFairReqVO reqVO) {
-        checkFairWhite(reqVO.getJobFairId());
-        FairDetailDO detailDO = fairDetailMapper
-                .selectOne(FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
-                        FairDetailDO::getJobId, reqVO.getJobId());
-        if (null == detailDO) {
-            // 不在招聘会里面
-            return;
-        }
-        detailDO.setStatus(JobFairStatusEnum.REMOVE.getStatus());
-        fairDetailMapper.updateById(detailDO);
-    }
-
     @Override
     public PageResult<AppFlameJobRespVO> getFlameJobPage(AppFlameJobPageReqVO reqVO) {
         IPage<AppFlameJobRespVO> pageResult = fairDetailMapper.search(MyBatisUtils.buildPage(reqVO), reqVO);
@@ -286,14 +326,14 @@ public class FairServiceImpl implements FairService {
 
     @Override
     @DSTransactional
-    public void addWhiteList(Long fairId, List<Long> enterpriseIds) {
+    public void addWhiteList(Long jobFairId, List<Long> enterpriseIds) {
         for (Long enterpriseId : enterpriseIds) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(fairId, enterpriseId);
+            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseId);
             if (null != fairWhiteDO) {
                 return;
             }
             fairWhiteMapper.insert(FairWhiteDO.builder()
-                    .jobFairId(fairId)
+                    .jobFairId(jobFairId)
                     .enterpriseId(enterpriseId)
                     .build());
         }
@@ -301,9 +341,9 @@ public class FairServiceImpl implements FairService {
 
     @Override
     @DSTransactional
-    public void removeWhiteList(Long fairId, List<Long> enterpriseIds) {
+    public void removeWhiteList(Long jobFairId, List<Long> enterpriseIds) {
         for (Long enterpriseId : enterpriseIds) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(fairId, enterpriseId);
+            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseId);
             if (null == fairWhiteDO) {
                 return;
             }
@@ -314,14 +354,14 @@ public class FairServiceImpl implements FairService {
 
     @Override
     @DSTransactional
-    public void addWhiteList2(Long fairId, List<String> enterpriseNames) {
+    public void addWhiteList2(Long jobFairId, List<String> enterpriseNames) {
         for (String name : enterpriseNames) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(fairId, name);
+            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(jobFairId, name);
             if (null != fairWhiteDO) {
                 return;
             }
             fairWhiteMapper.insert(FairWhiteDO.builder()
-                    .jobFairId(fairId)
+                    .jobFairId(jobFairId)
                     .name(name)
                     .build());
         }
@@ -329,9 +369,9 @@ public class FairServiceImpl implements FairService {
 
     @Override
     @DSTransactional
-    public void removeWhiteList2(Long fairId, List<String> enterpriseNames) {
+    public void removeWhiteList2(Long jobFairId, List<String> enterpriseNames) {
         for (String name : enterpriseNames) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(fairId, name);
+            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(jobFairId, name);
             if (null == fairWhiteDO) {
                 return;
             }

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

@@ -29,6 +29,7 @@ import com.citu.module.menduner.system.controller.base.job.*;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedExtendDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedExtendMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
@@ -79,6 +80,8 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Resource
     private JobAdvertisedExtendMapper extendMapper;
     @Resource
+    private EnterpriseMapper enterpriseMapper;
+    @Resource
     private ESProducer esProducer;
     @Resource
     private GraphProducer producer;
@@ -98,7 +101,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         jobAdvertised.setHire(true);
         jobAdvertised.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
         jobAdvertised.setUserId(DEFAULT_USER_ID);
-        return save(jobAdvertised, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID);
+        return save(jobAdvertised, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID,false);
     }
 
     @Override
@@ -112,7 +115,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         updateObj.setHire(jobAdvertised.getHire());
         updateObj.setTop(jobAdvertised.getTop());
         updateObj.setStatus(jobAdvertised.getStatus());
-        save(updateObj, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID);
+        save(updateObj, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID,false);
     }
 
     @Override
@@ -376,7 +379,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         JobAdvertisedDO job = JobAdvertisedConvert.INSTANCE.convert3(reqVO);
         Long userId = LoginUserContext.getUserId();
         Long enterpriseId = LoginUserContext.getEnterpriseId();
-        return save(job, enterpriseId, userId);
+        return save(job, enterpriseId, userId,reqVO.isFair());
     }
 
     /**
@@ -388,7 +391,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
      * @return 保存或更新后的职位ID
      * @throws RuntimeException 如果职位名称重复或其他验证失败
      */
-    public Long save(JobAdvertisedDO job, Long enterpriseId, Long userId) {
+    public Long save(JobAdvertisedDO job, Long enterpriseId, Long userId, boolean fair) {
         // 检查职位名称是否重复
         if (mapper.existByName(enterpriseId, userId, job.getId(), job.getName())) {
             throw exception(MDE_JOB_ADVERTISED_NAME_DUPLICATE, job.getName());
@@ -396,11 +399,10 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
         if (null == job.getId()) {
             // 新增职位
-            processNewJob(job, enterpriseId, userId);
-
+            processNewJob(job, enterpriseId, userId, fair);
         } else {
             // 修改职位
-            processExistingJob(job, enterpriseId, userId);
+            processExistingJob(job, enterpriseId, userId,fair);
         }
 
         return job.getId();
@@ -413,11 +415,14 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
      * @param enterpriseId 企业ID
      * @param userId       用户ID
      */
-    private void processNewJob(JobAdvertisedDO job, Long enterpriseId, Long userId) {
-        // 不是众聘职位 和 不是待开启的职位才需要权益
-        boolean triggerVip = !job.getHire() && !JobStatusEnum.WAIT_ENABLE.getStatus().equals(job.getStatus());
-        // 扣除额度
-        vipEntitlementCheckAspect.deductQuota(VipEntitlementCheck.OPERATE_PUBLISH_JOB, triggerVip);
+    private void processNewJob(JobAdvertisedDO job, Long enterpriseId, Long userId, boolean fair) {
+        // 招聘会不做权益和额度扣除
+        if (!fair) {
+            // 不是众聘职位 和 不是待开启的职位才需要权益
+            boolean triggerVip = !job.getHire() && !JobStatusEnum.WAIT_ENABLE.getStatus().equals(job.getStatus());
+            // 扣除额度
+            vipEntitlementCheckAspect.deductQuota(VipEntitlementCheck.OPERATE_PUBLISH_JOB, triggerVip);
+        }
 
         if (job.getHire() || JobStatusEnum.WAIT_ENABLE.getStatus().equals(job.getStatus())) {
             // 众聘职位||待开启,还需要给钱才能开启
@@ -444,7 +449,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
      * @param enterpriseId 企业ID
      * @param userId       用户ID
      */
-    private void processExistingJob(JobAdvertisedDO job, Long enterpriseId, Long userId) {
+    private void processExistingJob(JobAdvertisedDO job, Long enterpriseId, Long userId, boolean fair) {
         JobAdvertisedDO existingJob = get(job.getId());
 
         // 验证修改
@@ -455,10 +460,14 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 }
             }
         }
-        // 如果发布职位的job.createTime超过了24小时则不可编辑,respVO.setEdit(false);
-        if (JobStatusEnum.ENABLE.getStatus().equals(existingJob.getStatus())
-                && ChronoUnit.HOURS.between(existingJob.getCreateTime(), LocalDateTime.now()) > 24) {
-            throw exception(MDE_JOB_ADVERTISED_TIME_ERROR_24);
+        // 招聘会不做权益和额度扣除
+        if (!fair) {
+            // 如果发布职位的job.createTime超过了24小时则不可编辑,respVO.setEdit(false);
+            boolean isVip = enterpriseMapper.checkVip(job.getEnterpriseId());
+            if (!isVip && JobStatusEnum.ENABLE.getStatus().equals(existingJob.getStatus())
+                    && ChronoUnit.HOURS.between(existingJob.getCreateTime(), LocalDateTime.now()) > 24) {
+                throw exception(MDE_JOB_ADVERTISED_TIME_ERROR_24);
+            }
         }
         // 如果普通职位切换成众聘职位
         if (job.getHire() && !existingJob.getHire()) {
@@ -739,9 +748,9 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Override
     public Map<String, Object[]> getPositionTypeNumTop(RecruitAnalysisPageReqVO reqVO, Integer topNum) {
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
-        List<CommonRespVO> respList= mapper.getPositionTypeNumTop(reqVO, topNum, timeRange[0], timeRange[1]);
+        List<CommonRespVO> respList = mapper.getPositionTypeNumTop(reqVO, topNum, timeRange[0], timeRange[1]);
         List<CommonRespVO> sortedResult = respList.stream()
-                .sorted(Comparator.comparing(c->Integer.valueOf(c.getValue().toString())))
+                .sorted(Comparator.comparing(c -> Integer.valueOf(c.getValue().toString())))
                 .collect(Collectors.toList());
         return packBarCount(sortedResult.stream()
                 .filter(c -> null != c.getKey())

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

@@ -317,8 +317,10 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
             if (null != job.getExpireTime()) {
                 respVO.setExpireDay(ChronoUnit.DAYS.between(LocalDateTime.now(), respVO.getExpireTime()));
             }
-            // 如果发布职位的job.createTime超过了24小时则不可编辑,respVO.setEdit(false);
-            if (JobStatusEnum.ENABLE.getStatus().equals(job.getStatus())
+
+            boolean isVip = enterpriseMapper.checkVip(job.getEnterpriseId());
+            // 如果不是企业vip并且发布职位的job.createTime超过了24小时则不可编辑,respVO.setEdit(false);
+            if (!isVip && JobStatusEnum.ENABLE.getStatus().equals(job.getStatus())
                     && ChronoUnit.HOURS.between(job.getCreateTime(), LocalDateTime.now()) > 24) {
                 respVO.setEdit(false);
             } else {

+ 17 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/talent/TalentMapEduExpServiceImpl.java

@@ -3,18 +3,21 @@ package com.citu.module.menduner.system.service.talent;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.module.menduner.system.controller.base.talent.edu.TalentMapEduExpPageReqVO;
 import com.citu.module.menduner.system.controller.base.talent.edu.TalentMapEduExpSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapEduExpDO;
 import com.citu.module.menduner.system.dal.mysql.talent.TalentMapEduExpMapper;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-
 import java.util.List;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_EDUCATION_SYSTEM_TYPE;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_EDUCATION_TYPE;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TALENT_MAP_EDU_EXP_NOT_EXISTS;
 
 /**
@@ -33,6 +36,7 @@ public class TalentMapEduExpServiceImpl implements TalentMapEduExpService {
     public Long createTalentMapEduExp(TalentMapEduExpSaveReqVO createReqVO) {
         // 插入
         TalentMapEduExpDO talentMapEduExp = BeanUtils.toBean(createReqVO, TalentMapEduExpDO.class);
+        fillData(talentMapEduExp);
         talentMapEduExpMapper.insert(talentMapEduExp);
         // 返回
         return talentMapEduExp.getId();
@@ -44,6 +48,7 @@ public class TalentMapEduExpServiceImpl implements TalentMapEduExpService {
         validateTalentMapEduExpExists(updateReqVO.getId());
         // 更新
         TalentMapEduExpDO updateObj = BeanUtils.toBean(updateReqVO, TalentMapEduExpDO.class);
+        fillData(updateObj);
         talentMapEduExpMapper.updateById(updateObj);
     }
 
@@ -80,4 +85,15 @@ public class TalentMapEduExpServiceImpl implements TalentMapEduExpService {
     public void deleteByPersonId(Long personId) {
         talentMapEduExpMapper.delete(TalentMapEduExpDO::getPersonId, personId);
     }
+
+    private void fillData(TalentMapEduExpDO talentMapEduExp) {
+        if (StringUtils.hasText(talentMapEduExp.getEducationType())) {
+            // 学制类型
+            talentMapEduExp.setEducationTypeStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE, talentMapEduExp.getEducationType()));
+        }
+        if (StringUtils.hasText(talentMapEduExp.getEducationSystemType())) {
+            // 学制类型
+            talentMapEduExp.setEducationSystemTypeStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_SYSTEM_TYPE, talentMapEduExp.getEducationSystemType()));
+        }
+    }
 }

+ 74 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/talent/TalentMapInfoServiceImpl.java

@@ -2,9 +2,11 @@ package com.citu.module.menduner.system.service.talent;
 
 
 import cn.hutool.core.codec.Base64Decoder;
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.module.infra.api.file.FileApi;
 import com.citu.module.menduner.system.controller.base.talent.TalentMapDetailRespVO;
 import com.citu.module.menduner.system.controller.base.talent.TalentMapSaveReqVO;
@@ -17,20 +19,26 @@ import com.citu.module.menduner.system.controller.base.talent.train.TalentMapTra
 import com.citu.module.menduner.system.controller.base.talent.train.TalentMapTrainExpSaveReqVO;
 import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpRespVO;
 import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
 import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapEduExpDO;
 import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapTrainExpDO;
 import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapWorkExpDO;
 import com.citu.module.menduner.system.dal.mysql.talent.TalentMapInfoMapper;
+import com.citu.module.menduner.system.service.area.AreaService;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TALENT_MAP_INFO_ALREADY_EXISTS;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TALENT_MAP_INFO_NOT_EXISTS;
 
@@ -55,6 +63,9 @@ public class TalentMapInfoServiceImpl implements TalentMapInfoService {
     @Resource
     private TalentMapTrainExpService talentMapTrainExpService;
 
+    @Resource
+    private AreaService areaService;
+
     @Resource
     private FileApi fileApi;
 
@@ -62,6 +73,7 @@ public class TalentMapInfoServiceImpl implements TalentMapInfoService {
     public Long createTalentMapInfo(TalentMapInfoSaveReqVO createReqVO) {
         // 插入
         TalentMapInfoDO talentMapInfo = BeanUtils.toBean(createReqVO, TalentMapInfoDO.class);
+        fillData(talentMapInfo);
         talentMapInfoMapper.insert(talentMapInfo);
         // 返回
         return talentMapInfo.getId();
@@ -73,6 +85,7 @@ public class TalentMapInfoServiceImpl implements TalentMapInfoService {
         validateTalentMapInfoExists(updateReqVO.getId());
         // 更新
         TalentMapInfoDO updateObj = BeanUtils.toBean(updateReqVO, TalentMapInfoDO.class);
+        fillData(updateObj);
         talentMapInfoMapper.updateById(updateObj);
     }
 
@@ -180,6 +193,7 @@ public class TalentMapInfoServiceImpl implements TalentMapInfoService {
         }
         if (null == talentMapInfo.getId()) {
             // 新增
+            fillData(talentMapInfo);
             talentMapInfoMapper.insert(talentMapInfo);
         }
 
@@ -210,4 +224,64 @@ public class TalentMapInfoServiceImpl implements TalentMapInfoService {
 
 
     }
+
+
+    /**
+     * 填充数据
+     *
+     * @param talentMapInfo 填充对象
+     */
+    private void fillData(TalentMapInfoDO talentMapInfo){
+        if(StringUtils.hasText(talentMapInfo.getSex())) {
+            // 性别
+            talentMapInfo.setSexStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_SEX,talentMapInfo.getSex()));
+        }
+        if(StringUtils.hasText(talentMapInfo.getEduType())) {
+            // 学历
+            talentMapInfo.setEduTypeStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE,talentMapInfo.getEduType()));
+        }
+        if(StringUtils.hasText(talentMapInfo.getExpType())) {
+            // 工作经验
+            talentMapInfo.setExpTypeStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_EXP_TYPE,talentMapInfo.getExpType()));
+        }
+        if(StringUtils.hasText(talentMapInfo.getMaritalStatus())) {
+            // 婚姻状况
+            talentMapInfo.setMaritalStatusStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_MARITAL_STATUS,talentMapInfo.getMaritalStatus()));
+        }
+        if(StringUtils.hasText(talentMapInfo.getJobType())) {
+            // 求职类型
+            talentMapInfo.setJobTypeStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_TYPE,talentMapInfo.getJobType()));
+        }
+        if(StringUtils.hasText(talentMapInfo.getJobStatus())) {
+            // 工作状态
+            talentMapInfo.setJobStatusStr(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_STATUS,talentMapInfo.getJobStatus()));
+        }
+        if(null!=talentMapInfo.getAreaId()) {
+            // 工作状态
+            AreaDO area = areaService.getArea(talentMapInfo.getAreaId());
+            if(null!= area) {
+                talentMapInfo.setAreaStr(area.getName());
+            }
+        }
+        if(null!=talentMapInfo.getRegId()) {
+            // 注册地
+            AreaDO area = areaService.getArea(talentMapInfo.getRegId());
+            if(null!= area) {
+                talentMapInfo.setRegStr(area.getName());
+            }
+        }
+        if(null!= talentMapInfo.getInterestedAreaIdList()) {
+            // 意向城市
+            List<String> areaStrList=new LinkedList<>();
+            for (String id : talentMapInfo.getInterestedAreaIdList()) {
+                AreaDO area = areaService.getArea(Long.valueOf(id));
+                if(null!= area) {
+                    areaStrList.add(area.getName());
+                }
+            }
+            if(CollectionUtil.isNotEmpty(areaStrList)) {
+                talentMapInfo.setInterestedAreaStrList(areaStrList);
+            }
+        }
+    }
 }

+ 1 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_GB.properties

@@ -414,6 +414,7 @@
 1_100_056_003=The name of the job fair cannot be empty
 1_100_056_004=The job fair time has passed, recruitment is temporarily suspended
 1_100_056_005=You do not have permission to attend this job fair
+1_100_056_006=The job fair has not started yet
 # ========== 招聘职位扩展 1_100_057_000 ==========
 1_100_057_001=Recruitment position ID cannot be empty
 # ========== 页面内容 1_100_058_000 ==========

+ 1 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties

@@ -414,6 +414,7 @@
 1_100_056_003=The name of the job fair cannot be empty
 1_100_056_004=The job fair time has passed, recruitment is temporarily suspended
 1_100_056_005=You do not have permission to attend this job fair
+1_100_056_006=The job fair has not started yet
 # ========== 招聘职位扩展 1_100_057_000 ==========
 1_100_057_001=Recruitment position ID cannot be empty
 # ========== 页面内容 1_100_058_000 ==========

+ 1 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

@@ -414,6 +414,7 @@
 1_100_056_003=招聘会名称不能为空
 1_100_056_004=招聘会时间已过,暂停招聘
 1_100_056_005=您没有权限参加该招聘会
+1_100_056_006=招聘会时间还未开始
 # ========== 招聘职位扩展 1_100_057_000 ==========
 1_100_057_001=招聘职位id不能为空
 # ========== 页面内容 1_100_058_000 ==========