Przeglądaj źródła

1、统一投递简历模块

rayson 1 rok temu
rodzic
commit
b1dbdf93f9
45 zmienionych plików z 477 dodań i 1062 usunięć
  1. 1 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/JobCvRelStatusEnum.java
  2. 0 23
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/hire/HireJobCvRelStatusEnum.java
  3. 0 94
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/hire/HireJobCvRelController.java
  4. 0 61
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/hire/AppHireJobCvRelController.java
  5. 27 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/AppJobCvRelController.java
  6. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelQueryReqVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelReqVO.java
  8. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelRespVO.java
  9. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobCvRelReqVO.java
  10. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/AppAdminEnterpriseController.java
  11. 27 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseTreeRespVO.java
  12. 0 82
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/hire/AppAdminHireJobCvRelController.java
  13. 30 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java
  14. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/hire/AppAdminHireJobCvRelPageReqVO.java
  15. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/hire/AppAdminHireJobCvRelRespVO.java
  16. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminEnterprisePostSimpleRespVO.java
  17. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserPageReqVO.java
  18. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserRespVO.java
  19. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java
  20. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/post/EnterprisePostSimpleRespVO.java
  21. 0 51
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/hire/HireJobCvRelPageReqVO.java
  22. 0 54
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/hire/HireJobCvRelSaveReqVO.java
  23. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/HireJobCvRelRespVO.java
  24. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelPageReqVO.java
  25. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelRespVO.java
  26. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelSaveReqVO.java
  27. 5 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java
  28. 0 67
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/hire/HireJobCvRelDO.java
  29. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobCvRelDO.java
  30. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  31. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  32. 0 123
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/hire/HireJobCvRelMapper.java
  33. 68 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java
  34. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/redis/RedisKeyConstants.java
  35. 0 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/datapermission/config/DataPermissionConfiguration.java
  36. 8 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  37. 51 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  38. 6 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  39. 0 111
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobCvRelService.java
  40. 0 183
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobCvRelServiceImpl.java
  41. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationService.java
  42. 18 16
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationServiceImpl.java
  43. 25 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java
  44. 65 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java
  45. 0 160
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/hire/HireJobCvRelServiceImplTest.java

+ 1 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/JobCvRelStatusEnum.java

@@ -14,6 +14,7 @@ public enum JobCvRelStatusEnum {
     INVITE("2", "已邀约"),
     OFFER("3", "已发offer"),
     ENTRY("4", "已入职"),
+    SETTLEMENT("5", "已结算"),
     ELIMINATE("99", "不合适");
 
     private final String status;

+ 0 - 23
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/hire/HireJobCvRelStatusEnum.java

@@ -1,23 +0,0 @@
-package com.citu.module.menduner.system.enums.hire;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 众聘简历投递状态(0 已报名 | 1 已查看 | 2 已邀约 | 3 已发offer | 4 已入职 | 5 已结算 | 99 不合适 已淘汰)
- **/
-@Getter
-@AllArgsConstructor
-public enum HireJobCvRelStatusEnum {
-    NEW("0", "已报名"),
-    LOOK("1", "已查看"),
-    INVITE("2", "已邀约"),
-    OFFER("3", "已发offer"),
-    ENTRY("4", "已入职"),
-    SETTLEMENT("5", "已结算"),
-    ELIMINATE("99", "不合适");
-
-    private final String status;
-
-    private final String name;
-}

+ 0 - 94
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/hire/HireJobCvRelController.java

@@ -1,94 +0,0 @@
-package com.citu.module.menduner.system.controller.admin.hire;
-
-
-import com.citu.framework.apilog.core.annotation.ApiAccessLog;
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.framework.common.pojo.PageParam;
-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.controller.base.hire.HireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
-import com.citu.module.menduner.system.service.hire.HireJobCvRelService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "管理后台 - 众聘-简历投递")
-@RestController
-@RequestMapping("/menduner/system/hire-job-cv-rel")
-@Validated
-public class HireJobCvRelController {
-
-    @Resource
-    private HireJobCvRelService hireJobCvRelService;
-
-    @PostMapping("/create")
-    @Operation(summary = "创建众聘-简历投递")
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:create')")
-    public CommonResult<Long> createHireJobCvRel(@Valid @RequestBody HireJobCvRelSaveReqVO createReqVO) {
-        return success(hireJobCvRelService.createHireJobCvRel(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新众聘-简历投递")
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:update')")
-    public CommonResult<Boolean> updateHireJobCvRel(@Valid @RequestBody HireJobCvRelSaveReqVO updateReqVO) {
-        hireJobCvRelService.updateHireJobCvRel(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除众聘-简历投递")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:delete')")
-    public CommonResult<Boolean> deleteHireJobCvRel(@RequestParam("id") Long id) {
-        hireJobCvRelService.deleteHireJobCvRel(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得众聘-简历投递")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:query')")
-    public CommonResult<HireJobCvRelRespVO> getHireJobCvRel(@RequestParam("id") Long id) {
-        HireJobCvRelDO hireJobCvRel = hireJobCvRelService.getHireJobCvRel(id);
-        return success(BeanUtils.toBean(hireJobCvRel, HireJobCvRelRespVO.class));
-    }
-
-    @GetMapping("/page")
-    @Operation(summary = "获得众聘-简历投递分页")
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:query')")
-    public CommonResult<PageResult<HireJobCvRelRespVO>> getHireJobCvRelPage(@Valid HireJobCvRelPageReqVO pageReqVO) {
-        PageResult<HireJobCvRelDO> pageResult = hireJobCvRelService.getHireJobCvRelPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, HireJobCvRelRespVO.class));
-    }
-
-    @GetMapping("/export-excel")
-    @Operation(summary = "导出众聘-简历投递 Excel")
-    @PreAuthorize("@ss.hasPermission('menduner:system:hire-job-cv-rel:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportHireJobCvRelExcel(@Valid HireJobCvRelPageReqVO pageReqVO,
-                                        HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<HireJobCvRelDO> list = hireJobCvRelService.getHireJobCvRelPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "众聘-简历投递.xls", "数据", HireJobCvRelRespVO.class,
-                BeanUtils.toBean(list, HireJobCvRelRespVO.class));
-    }
-
-}

+ 0 - 61
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/hire/AppHireJobCvRelController.java

@@ -1,61 +0,0 @@
-package com.citu.module.menduner.system.controller.app.hire;
-
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelQueryReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvRelReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.base.CommonRespVO;
-import com.citu.module.menduner.system.service.hire.HireJobCvRelService;
-import com.citu.module.menduner.system.service.hire.HireJobIntegrationService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-
-import java.util.List;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "求职端 - 众聘-简历投递")
-@RestController
-@RequestMapping("/menduner/system/hire-job-cv-rel")
-@Validated
-public class AppHireJobCvRelController {
-
-    @Resource
-    private HireJobCvRelService service;
-
-    @PreAuthenticated
-    @GetMapping("/page")
-    @Operation(summary = "获取推荐邀请投递的职位信息")
-    public CommonResult<PageResult<AppHireJobCvRelRespVO>> page
-            (@Valid AppHireJobCvRelQueryReqVO pageReqVO) {
-        return success(service.page(pageReqVO));
-    }
-
-
-    @PreAuthenticated
-    @GetMapping("/get/commend/count")
-    @Operation(summary = "获取推荐职位投递状态数量")
-    public CommonResult<List<CommonRespVO>> getRecommendCount() {
-        return success(service.getRecommendCount());
-    }
-
-    @PostMapping("/send")
-    @Operation(summary = "投递简历")
-    public CommonResult<Boolean> send(@Valid @RequestBody AppHireJobCvRelReqVO reqVO) {
-        service.send(reqVO);
-        return success(true);
-    }
-
-
-}

+ 27 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/AppJobCvRelController.java

@@ -4,9 +4,12 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedHomeRespVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelQueryReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -17,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 
+import java.util.List;
+
 import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "求职端 - 招聘职位简历投递")
@@ -38,6 +43,27 @@ public class AppJobCvRelController {
         jobCvRelService.send(reqVO);
         return success(true);
     }
+    @PostMapping("/hire/recommend/send")
+    @Operation(summary = "众聘推荐投递简历")
+    public CommonResult<Boolean> send(@Valid @RequestBody AppHireJobCvRelReqVO reqVO) {
+        jobCvRelService.send(reqVO);
+        return success(true);
+    }
+
+    @PreAuthenticated
+    @GetMapping("/page")
+    @Operation(summary = "获取推荐邀请投递的职位信息")
+    public CommonResult<PageResult<AppHireJobCvRelRespVO>> page
+            (@Valid AppHireJobCvRelQueryReqVO pageReqVO) {
+        return success(jobCvRelService.page(pageReqVO));
+    }
+
+    @PreAuthenticated
+    @GetMapping("/get/commend/count")
+    @Operation(summary = "获取推荐职位投递状态数量")
+    public CommonResult<List<CommonRespVO>> getRecommendCount() {
+        return success(jobCvRelService.getRecommendCount());
+    }
 
     @GetMapping("/send/check")
     @PreAuthenticated
@@ -46,7 +72,6 @@ public class AppJobCvRelController {
         return success(jobCvRelService.checkSend(jobId));
     }
 
-
     @GetMapping("/get/job/cv/page")
     @PreAuthenticated
     @Operation(summary = "获取投递的职位分页")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/hire/vo/AppHireJobCvRelQueryReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelQueryReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.app.hire.vo;
+package com.citu.module.menduner.system.controller.app.job.hire;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/hire/vo/AppHireJobCvRelReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.app.hire.vo;
+package com.citu.module.menduner.system.controller.app.job.hire;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/hire/vo/AppHireJobCvRelRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/hire/AppHireJobCvRelRespVO.java

@@ -1,7 +1,7 @@
-package com.citu.module.menduner.system.controller.app.hire.vo;
+package com.citu.module.menduner.system.controller.app.job.hire;
 
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.job.HireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;

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

@@ -14,6 +14,9 @@ public class AppJobCvRelReqVO {
     @NotNull(message = "{1_100_035_004}")
     private Long jobId;
 
+    @Schema(description = "投递类型(0 平台投递 | 1 赏金投递)", example = "0")
+    private String type;
+
     @Schema(description = "简历附件标题", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "{1_100_035_003}")
     private String title;

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/AppAdminEnterpriseController.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.controller.appadmin.enterprise;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import com.citu.module.menduner.system.service.enterprise.business.EnterpriseBusinessService;
@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.List;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 
@@ -30,6 +32,13 @@ public class AppAdminEnterpriseController {
     private EnterpriseBusinessService enterpriseBusinessService;
 
 
+    @PreAuthenticated
+    @GetMapping("/get/tree")
+    @Operation(summary = "获取企业树形")
+    public CommonResult<AppAdminEnterpriseTreeRespVO> getTree() {
+        return success(enterpriseService.getTree(LoginUserContext.getEnterpriseId()));
+    }
+
     @PreAuthenticated
     @PostMapping("/logo/update")
     @Operation(summary = "修改企业logo")

+ 27 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseTreeRespVO.java

@@ -0,0 +1,27 @@
+package com.citu.module.menduner.system.controller.appadmin.enterprise.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "menduner - 企业树 Response VO")
+@Data
+public class AppAdminEnterpriseTreeRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20137")
+    private Long id;
+
+    @Schema(description = "上级id", example = "1")
+    private Long parentId;
+
+    @Schema(description = "企业全称", example = "广州xx科技")
+    private String name;
+
+    @Schema(description = "企业别称", example = "xx科技")
+    private String anotherName;
+
+    @Schema(description = "子节点", example = "{}")
+    private List<AppAdminEnterpriseTreeRespVO> children;
+
+}

+ 0 - 82
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/hire/AppAdminHireJobCvRelController.java

@@ -1,82 +0,0 @@
-package com.citu.module.menduner.system.controller.appadmin.hire;
-
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.common.util.string.StrUtils;
-import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
-import com.citu.module.menduner.system.service.hire.HireJobCvRelService;
-import com.citu.module.menduner.system.service.hire.HireJobIntegrationService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-
-import java.util.List;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "招聘端 - 众聘-简历投递")
-@RestController
-@RequestMapping("/menduner/system/hire-job-cv-rel")
-@Validated
-public class AppAdminHireJobCvRelController {
-
-    @Resource
-    private HireJobCvRelService service;
-
-    @Resource
-    private HireJobIntegrationService integrationService;
-
-
-    @PreAuthenticated
-    @GetMapping("/page")
-    @Operation(summary = "获得投递职位分页")
-    public CommonResult<PageResult<AppAdminHireJobCvRelRespVO>> page
-            (@Valid AppAdminHireJobCvRelPageReqVO pageReqVO) {
-        return success(integrationService.page(pageReqVO));
-    }
-
-    @PreAuthenticated
-    @GetMapping("/recommend/list")
-    @Operation(summary = "获取推荐人的用户列表")
-    public CommonResult<List<AppAdminPersonSimpleRespVO>> getRecommendUser() {
-        return success(integrationService.getRecommendUser());
-    }
-
-    @PreAuthenticated
-    @PostMapping("/look")
-    @Operation(summary = "查看简历附件")
-    public CommonResult<Boolean> look(@RequestParam("id") Long id) {
-        return success(service.look(id));
-    }
-
-    @PreAuthenticated
-    @PostMapping("/eliminate")
-    @Operation(summary = "淘汰,不合适")
-    public CommonResult<Boolean> eliminate(@RequestParam("ids") String ids) {
-        return success(service.eliminate(StrUtils.splitToLong(ids)));
-    }
-
-    @PreAuthenticated
-    @PostMapping("/entry")
-    @Operation(summary = "入职")
-    public CommonResult<Boolean> entry(@RequestParam("ids") String ids) {
-        return success(service.entry(StrUtils.splitToLong(ids)));
-    }
-
-    @PreAuthenticated
-    @PostMapping("/settlement")
-    @Operation(summary = "结算")
-    public CommonResult<Boolean> settlement(@RequestParam("id") Long id) {
-        return success(integrationService.settlement(id));
-    }
-
-
-}

+ 30 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java

@@ -4,9 +4,13 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonDetailRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
+import com.citu.module.menduner.system.service.job.HireJobIntegrationService;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import com.citu.module.menduner.system.service.person.PersonIntegrationService;
@@ -18,6 +22,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 
+import java.util.List;
+
 import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "招聘端 - 人才简历")
@@ -32,6 +38,9 @@ public class AppAdminPersonCvController {
     @Resource
     private PersonIntegrationService personIntegrationService;
 
+    @Resource
+    private HireJobIntegrationService hireJobIntegrationService;
+
     @Resource
     private JobCvRelService jobCvRelService;
 
@@ -43,6 +52,21 @@ public class AppAdminPersonCvController {
         return success(jobIntegrationService.page(pageReqVO));
     }
 
+    @PreAuthenticated
+    @GetMapping("/hire/page")
+    @Operation(summary = "获得赏金投递职位分页")
+    public CommonResult<PageResult<AppAdminHireJobCvRelRespVO>> page
+            (@Valid AppAdminHireJobCvRelPageReqVO pageReqVO) {
+        return success(hireJobIntegrationService.page(pageReqVO));
+    }
+
+    @PreAuthenticated
+    @GetMapping("/hire/recommend/list")
+    @Operation(summary = "获取赏金职位推荐人的用户列表")
+    public CommonResult<List<AppAdminPersonSimpleRespVO>> getRecommendUser() {
+        return success(hireJobIntegrationService.getRecommendUser());
+    }
+
     @PreAuthenticated
     @GetMapping("/detail")
     @Operation(summary = "获取人才在线简历详情")
@@ -50,7 +74,6 @@ public class AppAdminPersonCvController {
         return success(personIntegrationService.detail(userId));
     }
 
-
     @PreAuthenticated
     @PostMapping("/look")
     @Operation(summary = "查看简历附件")
@@ -72,5 +95,10 @@ public class AppAdminPersonCvController {
         return success(jobCvRelService.entry(StrUtils.splitToLong(ids)));
     }
 
-
+    @PreAuthenticated
+    @PostMapping("/settlement")
+    @Operation(summary = "赏金职位结算")
+    public CommonResult<Boolean> settlement(@RequestParam("id") Long id) {
+        return success(hireJobIntegrationService.settlement(id));
+    }
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/hire/vo/AppAdminHireJobCvRelPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/hire/AppAdminHireJobCvRelPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.appadmin.hire.vo;
+package com.citu.module.menduner.system.controller.appadmin.person.hire;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/hire/vo/AppAdminHireJobCvRelRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/hire/AppAdminHireJobCvRelRespVO.java

@@ -1,8 +1,8 @@
-package com.citu.module.menduner.system.controller.appadmin.hire.vo;
+package com.citu.module.menduner.system.controller.appadmin.person.hire;
 
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.job.HireJobCvRelRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminEnterprisePostSimpleRespVO.java

@@ -0,0 +1,10 @@
+package com.citu.module.menduner.system.controller.appadmin.user.vo;
+
+import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "企业岗位简易信息 Response VO")
+@Data
+public class AppAdminEnterprisePostSimpleRespVO extends EnterprisePostSimpleRespVO {
+}

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserPageReqVO.java

@@ -8,6 +8,9 @@ import lombok.Data;
 @Data
 public class AppAdminUserPageReqVO extends PageParam {
 
+    @Schema(description = "下级企业id", example = "23317")
+    private Long enterpriseId;
+
     @Schema(description = "岗位id", example = "23317")
     private Long postId;
 

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserRespVO.java

@@ -28,4 +28,8 @@ public class AppAdminUserRespVO extends EnterpriseUserBindSimpleRespVO {
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "岗位信息")
+    private AppAdminEnterprisePostSimpleRespVO post;
+
+
 }

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

@@ -18,6 +18,9 @@ public class EnterpriseUserBindSimpleRespVO {
     @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
     private String enterpriseName;
 
+    @Schema(description = "企业简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
+    private String enterpriseAnotherName;
+
     @Schema(description = "名称", example = "x女士")
     private String name;
 

+ 23 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/post/EnterprisePostSimpleRespVO.java

@@ -0,0 +1,23 @@
+package com.citu.module.menduner.system.controller.base.enterprise.post;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "企业岗位简易信息 Response VO")
+@Data
+public class EnterprisePostSimpleRespVO {
+
+    @Schema(description = "岗位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13815")
+    private Long id;
+
+    @Schema(description = "岗位缩写")
+    private String code;
+
+    @Schema(description = "岗位中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameCn;
+
+    @Schema(description = "岗位英文", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameEn;
+
+
+}

+ 0 - 51
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/hire/HireJobCvRelPageReqVO.java

@@ -1,51 +0,0 @@
-package com.citu.module.menduner.system.controller.base.hire;
-
-import com.citu.framework.common.pojo.PageParam;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-
-import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@Schema(description = "管理后台 - 众聘-简历投递分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class HireJobCvRelPageReqVO extends PageParam {
-
-    @Schema(description = "企业id", example = "10683")
-    private Long enterpriseId;
-
-    @Schema(description = "发布的职位id", example = "30783")
-    private Long jobId;
-
-    @Schema(description = "发布职位的用户id", example = "17002")
-    private Long publishUserId;
-
-    @Schema(description = "推荐人", example = "21239")
-    private Long recommendUserId;
-
-    @Schema(description = "投递用户id", example = "32103")
-    private Long userId;
-
-    @Schema(description = "投递人名称", example = "芋艿")
-    private String name;
-
-    @Schema(description = "投递人联系电话")
-    private String phone;
-
-    @Schema(description = "简历附件地址", example = "https://www.iocoder.cn")
-    private String url;
-
-    @Schema(description = "投递的简历状态", example = "1")
-    private String status;
-
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
-
-}

+ 0 - 54
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/hire/HireJobCvRelSaveReqVO.java

@@ -1,54 +0,0 @@
-package com.citu.module.menduner.system.controller.base.hire;
-
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Schema(description = "管理后台 - 众聘-简历投递新增/修改 Request VO")
-@Data
-public class HireJobCvRelSaveReqVO {
-
-    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25578")
-    private Long id;
-
-    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10683")
-    @NotNull(message = "{1_099_000_007}")
-    private Long enterpriseId;
-
-    @Schema(description = "发布的职位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30783")
-    @NotNull(message = "{1_100_036_002}")
-    private Long jobId;
-
-    @Schema(description = "发布职位的用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17002")
-    @NotNull(message = "{1_100_036_003}")
-    private Long publishUserId;
-
-    @Schema(description = "推荐人", requiredMode = Schema.RequiredMode.REQUIRED, example = "21239")
-    @NotNull(message = "{1_100_036_004}")
-    private Long recommendUserId;
-
-    @Schema(description = "投递用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32103")
-    @NotNull(message = "{1_100_036_005}")
-    private Long userId;
-
-    @NotBlank(message = "{1_100_036_006}")
-    @Schema(description = "投递人名称", example = "芋艿")
-    private String name;
-
-    @NotBlank(message = "{1_100_036_007}")
-    @Schema(description = "投递人联系电话")
-    private String phone;
-
-    @Schema(description = "简历附件地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
-    @NotBlank(message = "{1_100_036_008}")
-    private String url;
-
-    @Schema(description = "投递的简历状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotEmpty(message = "{1_099_000_001}")
-    private String status;
-
-}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/hire/HireJobCvRelRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/HireJobCvRelRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.hire;
+package com.citu.module.menduner.system.controller.base.job;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;

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

@@ -26,9 +26,15 @@ public class JobCvRelPageReqVO extends PageParam {
     @Schema(description = "发布职位的用户id", example = "6227")
     private Long publishUserId;
 
+    @Schema(description = "推荐人", example = "21239")
+    private Long recommendUserId;
+
     @Schema(description = "投递用户id", example = "7769")
     private Long userId;
 
+    @Schema(description = "投递类型(0 平台投递 | 1 赏金投递)", example = "0")
+    private String type;
+
     @Schema(description = "投递的简历状态", example = "2")
     private String status;
 

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

@@ -28,10 +28,26 @@ public class JobCvRelRespVO {
     @ExcelProperty("发布职位的用户id")
     private Long publishUserId;
 
+    @Schema(description = "推荐用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21239")
+    @ExcelProperty("推荐用户id")
+    private Long recommendUserId;
+
     @Schema(description = "投递用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7769")
     @ExcelProperty("投递用户id")
     private Long userId;
 
+    @Schema(description = "投递人名称", example = "芋艿")
+    @ExcelProperty("投递人名称")
+    private String name;
+
+    @Schema(description = "投递人联系电话")
+    @ExcelProperty("投递人联系电话")
+    private String phone;
+
+    @Schema(description = "投递类型(0 平台投递 | 1 赏金投递)", example = "0")
+    @ExcelProperty("投递类型(0 平台投递 | 1 赏金投递)")
+    private String type;
+
     @Schema(description = "简历附件标题", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("简历附件标题")
     private String title;

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

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.controller.base.job;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
@@ -25,10 +26,25 @@ public class JobCvRelSaveReqVO {
     @NotNull(message = "{1_099_000_006}")
     private Long publishUserId;
 
+    @Schema(description = "推荐人", requiredMode = Schema.RequiredMode.REQUIRED, example = "21239")
+    @NotNull(message = "{1_100_036_004}")
+    private Long recommendUserId;
+
     @Schema(description = "投递用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7769")
     @NotNull(message = "{1_099_000_006}")
     private Long userId;
 
+    @Schema(description = "投递类型(0 平台投递 | 1 赏金投递)", example = "0")
+    private String type;
+
+    @NotBlank(message = "{1_100_036_006}")
+    @Schema(description = "投递人名称", example = "芋艿")
+    private String name;
+
+    @NotBlank(message = "{1_100_036_007}")
+    @Schema(description = "投递人联系电话")
+    private String phone;
+
     @Schema(description = "简历附件标题", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "{1_100_035_007}")
     private String title;

+ 5 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java

@@ -5,10 +5,7 @@ import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnt
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.register.AppEnterpriseRegisterReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.register.AppEnterpriseRegisterRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseBusinessRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseBusinessSaveReqVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseSaveReqVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseAccountRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
@@ -58,6 +55,9 @@ public interface EnterpriseConvert {
 
     AppAdminEnterpriseBusinessRespVO convert15(EnterpriseBusinessDO bean);
 
-
     AppAdminEnterpriseAccountRespVO convert16(EnterpriseAccountDO bean);
+
+    AppAdminEnterpriseTreeRespVO convert17(EnterpriseDO bean);
+
+    List<AppAdminEnterpriseTreeRespVO> convertList3(List<EnterpriseDO> list);
 }

+ 0 - 67
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/hire/HireJobCvRelDO.java

@@ -1,67 +0,0 @@
-package com.citu.module.menduner.system.dal.dataobject.hire;
-
-
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.citu.framework.mybatis.core.dataobject.BaseDO;
-import lombok.*;
-
-/**
- * 众聘-简历投递 DO
- *
- * @author Rayson
- */
-@TableName("mde_hire_job_cv_rel")
-@KeySequence("mde_hire_job_cv_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class HireJobCvRelDO extends BaseDO {
-
-    /**
-     * id
-     */
-    @TableId
-    private Long id;
-    /**
-     * 企业id
-     */
-    private Long enterpriseId;
-    /**
-     * 发布的职位id
-     */
-    private Long jobId;
-    /**
-     * 发布职位的用户id
-     */
-    private Long publishUserId;
-    /**
-     * 推荐人
-     */
-    private Long recommendUserId;
-    /**
-     * 投递用户id
-     */
-    private Long userId;
-    /**
-     * 投递人名称
-     */
-    private String name;
-    /**
-     * 投递人联系电话
-     */
-    private String phone;
-    /**
-     * 简历附件地址
-     */
-    private String url;
-    /**
-     * 投递的简历状态
-     */
-    private String status;
-
-}

+ 16 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobCvRelDO.java

@@ -38,6 +38,10 @@ public class JobCvRelDO extends BaseDO {
      * 发布职位的用户id
      */
     private Long publishUserId;
+    /**
+     * 推荐用户id
+     */
+    private Long recommendUserId;
     /**
      * 投递用户id
      */
@@ -50,6 +54,18 @@ public class JobCvRelDO extends BaseDO {
      * 简历附件地址
      */
     private String url;
+    /**
+     * 投递人名称
+     */
+    private String name;
+    /**
+     * 投递人联系电话
+     */
+    private String phone;
+    /**
+     * 投递类型(0 平台投递 | 1 赏金投递)
+     */
+    private String type;
     /**
      * 投递的简历状态
      */

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

@@ -12,6 +12,7 @@ import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseL
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterprisePageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusinessDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.util.StringUtils;
 
@@ -83,4 +84,12 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
     List<CommonRespVO> searchByName(String name);
 
 
+    default EnterpriseDO selectListById(Long id) {
+        return selectOne(new LambdaQueryWrapperX<EnterpriseDO>()
+                .eq(EnterpriseDO::getId, id)
+                .eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
+                .orderByDesc(EnterpriseDO::getUpdateTime));
+    }
+
+
 }

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

@@ -5,10 +5,12 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterprisePostSimpleRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
@@ -72,10 +74,16 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     default PageResult<AppAdminUserRespVO> selectPage(AppAdminUserPageReqVO reqVO, Long enterpriseId) {
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
+        wrapper.selectAssociation(EnterprisePostDO.class,AppAdminUserRespVO::getPost);
+
         wrapper.selectAs(EnterpriseDO::getId, AppAdminUserRespVO::getEnterpriseId);
         wrapper.selectAs(EnterpriseDO::getName, AppAdminUserRespVO::getEnterpriseName);
+        wrapper.selectAs(EnterpriseDO::getAnotherName, AppAdminUserRespVO::getEnterpriseAnotherName);
         wrapper.selectAs(EnterpriseDO::getLogoUrl, AppAdminUserRespVO::getLogoUrl);
+
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
+        wrapper.innerJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
+
         wrapper.eq(EnterpriseDO::getId, enterpriseId);
         wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
         wrapper.likeIfPresent(EnterpriseUserBindDO::getName, reqVO.getName());
@@ -84,6 +92,7 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         wrapper.eqIfPresent(EnterpriseUserBindDO::getSex, reqVO.getSex());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getPostId, reqVO.getPostId());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getStatus, reqVO.getStatus());
+
         wrapper.orderByDesc(EnterpriseUserBindDO::getUserType, EnterpriseUserBindDO::getUpdateTime);
         return selectJoinPage(reqVO, AppAdminUserRespVO.class, wrapper);
     }

+ 0 - 123
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/hire/HireJobCvRelMapper.java

@@ -1,123 +0,0 @@
-package com.citu.module.menduner.system.dal.mysql.hire;
-
-import com.citu.framework.common.pojo.PageParam;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.mybatis.core.mapper.BaseMapperX;
-import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelQueryReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
-import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-/**
- * 众聘-简历投递 Mapper
- *
- * @author Rayson
- */
-@Mapper
-public interface HireJobCvRelMapper extends BaseMapperX<HireJobCvRelDO> {
-
-    default PageResult<HireJobCvRelDO> selectPage(HireJobCvRelPageReqVO reqVO) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<HireJobCvRelDO>()
-                .eqIfPresent(HireJobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId())
-                .eqIfPresent(HireJobCvRelDO::getJobId, reqVO.getJobId())
-                .eqIfPresent(HireJobCvRelDO::getPublishUserId, reqVO.getPublishUserId())
-                .eqIfPresent(HireJobCvRelDO::getRecommendUserId, reqVO.getRecommendUserId())
-                .eqIfPresent(HireJobCvRelDO::getUserId, reqVO.getUserId())
-                .likeIfPresent(HireJobCvRelDO::getName, reqVO.getName())
-                .eqIfPresent(HireJobCvRelDO::getPhone, reqVO.getPhone())
-                .eqIfPresent(HireJobCvRelDO::getUrl, reqVO.getUrl())
-                .eqIfPresent(HireJobCvRelDO::getStatus, reqVO.getStatus())
-                .betweenIfPresent(HireJobCvRelDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(HireJobCvRelDO::getId));
-    }
-
-    default PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
-        // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
-        MPJLambdaWrapperX<HireJobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
-        wrapper.selectAsClass(HireJobCvRelDO.class, AppAdminHireJobCvRelRespVO.class);
-        wrapper.selectAssociation(JobAdvertisedDO.class, AppAdminJobCvRelRespVO::getJob);
-        wrapper.selectAssociation("person", PersonInfoDO.class, AppAdminHireJobCvRelRespVO::getPerson);
-        wrapper.selectAssociation("recommend", PersonInfoDO.class, AppAdminHireJobCvRelRespVO::getRecommendPerson);
-
-        // 投递的职位 inner 招聘职位
-        wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, HireJobCvRelDO::getJobId);
-        // 招聘职位的条件
-        wrapper.eqIfExists(HireJobCvRelDO::getJobId, reqVO.getJobId());
-        wrapper.eqIfExists(HireJobCvRelDO::getStatus, reqVO.getStatus());
-
-        // 投递的职位 inner 人才信息 (投递人)
-        wrapper.innerJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, HireJobCvRelDO::getUserId);
-        // 人才相关的条件
-        wrapper.likeIfExists("person.name", reqVO.getName());
-
-        // 投递的职位 inner 人才信息 (推荐人)
-        wrapper.innerJoin(PersonInfoDO.class,"recommend", PersonInfoDO::getUserId, HireJobCvRelDO::getRecommendUserId);
-        // 人才相关的条件
-        wrapper.likeIfExists("recommend.name", reqVO.getName());
-
-        wrapper.orderByDesc(HireJobCvRelDO::getUpdateTime);
-        return selectJoinPage(reqVO, AppAdminHireJobCvRelRespVO.class, wrapper);
-    }
-
-    default PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO, Long userId) {
-        // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
-        MPJLambdaWrapperX<HireJobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
-        wrapper.selectAsClass(HireJobCvRelDO.class, AppHireJobCvRelRespVO.class);
-        wrapper.selectAssociation(JobAdvertisedDO.class, AppHireJobCvRelRespVO::getJob);
-        wrapper.selectAssociation(PersonInfoDO.class, AppHireJobCvRelRespVO::getRecommendPerson);
-        wrapper.selectAssociation(EnterpriseDO.class, AppHireJobCvRelRespVO::getEnterprise);
-        // 投递的职位 inner 招聘职位
-        wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, HireJobCvRelDO::getJobId);
-        // 投递的职位 inner 企业信息
-        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
-        // 投递的职位 inner 人才信息 (推荐人)
-        wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, HireJobCvRelDO::getRecommendUserId);
-
-        wrapper.eq(HireJobCvRelDO::getRecommendUserId, userId);
-        wrapper.eq(HireJobCvRelDO::getStatus, reqVO.getStatus());
-
-        wrapper.orderByDesc(HireJobCvRelDO::getUpdateTime);
-        return selectJoinPage(reqVO, AppHireJobCvRelRespVO.class, wrapper);
-    }
-
-    /**
-     * 获取投递简历中的推荐人列表
-     **/
-    default List<AppAdminPersonSimpleRespVO> getRecommendUser() {
-        MPJLambdaWrapperX<HireJobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
-        wrapper.selectAsClass(HireJobCvRelDO.class, AppAdminHireJobCvRelRespVO.class);
-        wrapper.selectAssociation(PersonInfoDO.class, AppAdminHireJobCvRelRespVO::getRecommendPerson);
-        // 投递的职位 inner 人才信息 (推荐人)
-        wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, HireJobCvRelDO::getRecommendUserId);
-        wrapper.orderByDesc(HireJobCvRelDO::getUpdateTime);
-        return selectJoinList(AppAdminPersonSimpleRespVO.class, wrapper);
-    }
-
-
-    default List<HireJobCvRelDO> selectByRecommendUserId(Long userId) {
-        return selectList(HireJobCvRelDO::getRecommendUserId, userId);
-    }
-
-    // 根据用户ID和职位id判断15天内是否有数据,如果有返回true
-    default Boolean checkDataWithin15Day(Long userId, Long jobId) {
-        return selectCount(new LambdaQueryWrapperX<HireJobCvRelDO>()
-                .eq(HireJobCvRelDO::getUserId, userId)
-                .eq(HireJobCvRelDO::getJobId, jobId)
-                .ge(HireJobCvRelDO::getCreateTime, LocalDateTime.now().minusDays(15))) > 0;
-    }
-
-}

+ 68 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java

@@ -4,9 +4,15 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelQueryReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
@@ -36,7 +42,6 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
     }
 
 
-
     default PageResult<AppAdminJobCvRelRespVO> selectPage(AppAdminJobCvRelPageReqVO reqVO) {
         // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
         MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
@@ -63,6 +68,55 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         return selectJoinPage(reqVO, AppAdminJobCvRelRespVO.class, wrapper);
     }
 
+    default PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO, Long userId) {
+        // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
+        MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAsClass(JobCvRelDO.class, AppHireJobCvRelRespVO.class);
+        wrapper.selectAssociation(JobAdvertisedDO.class, AppHireJobCvRelRespVO::getJob);
+        wrapper.selectAssociation(PersonInfoDO.class, AppHireJobCvRelRespVO::getRecommendPerson);
+        wrapper.selectAssociation(EnterpriseDO.class, AppHireJobCvRelRespVO::getEnterprise);
+        // 投递的职位 inner 招聘职位
+        wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, JobCvRelDO::getJobId);
+        // 投递的职位 inner 企业信息
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
+        // 投递的职位 inner 人才信息 (推荐人)
+        wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getRecommendUserId);
+
+        wrapper.eq(JobCvRelDO::getRecommendUserId, userId);
+        wrapper.eq(JobCvRelDO::getStatus, reqVO.getStatus());
+
+        wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
+        return selectJoinPage(reqVO, AppHireJobCvRelRespVO.class, wrapper);
+    }
+
+    default PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
+        // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
+        MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAsClass(JobCvRelDO.class, AppAdminHireJobCvRelRespVO.class);
+        wrapper.selectAssociation(JobAdvertisedDO.class, AppAdminJobCvRelRespVO::getJob);
+        wrapper.selectAssociation("person", PersonInfoDO.class, AppAdminHireJobCvRelRespVO::getPerson);
+        wrapper.selectAssociation("recommend", PersonInfoDO.class, AppAdminHireJobCvRelRespVO::getRecommendPerson);
+
+        // 投递的职位 inner 招聘职位
+        wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, JobCvRelDO::getJobId);
+        // 招聘职位的条件
+        wrapper.eqIfExists(JobCvRelDO::getJobId, reqVO.getJobId());
+        wrapper.eqIfExists(JobCvRelDO::getStatus, reqVO.getStatus());
+
+        // 投递的职位 inner 人才信息 (投递人)
+        wrapper.innerJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
+        // 人才相关的条件
+        wrapper.likeIfExists("person.name", reqVO.getName());
+
+        // 投递的职位 inner 人才信息 (推荐人)
+        wrapper.innerJoin(PersonInfoDO.class, "recommend", PersonInfoDO::getUserId, JobCvRelDO::getRecommendUserId);
+        // 人才相关的条件
+        wrapper.likeIfExists("recommend.name", reqVO.getName());
+
+        wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
+        return selectJoinPage(reqVO, AppAdminHireJobCvRelRespVO.class, wrapper);
+    }
+
 
     // 根据用户ID和职位id判断15天内是否有数据,如果有返回true
     default Boolean checkDataWithin15Day(Long userId, Long jobId) {
@@ -79,5 +133,18 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         );
     }
 
+    default List<JobCvRelDO> selectByRecommendUserId(Long userId) {
+        return selectList(JobCvRelDO::getRecommendUserId, userId);
+    }
+
+
+    /**
+     * 获取投递简历中的推荐人列表
+     **/
+    default List<AppAdminPersonSimpleRespVO> getRecommendUser() {
+
+        return null;
+    }
+
 
 }

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

@@ -96,6 +96,14 @@ public interface RedisKeyConstants {
      */
     String MDE_SKILL_CHILDREN ="mde_skill_children";
 
+    /**
+     * 企业树形
+     * <p>
+     * KEY 格式:mde_enterprise_tree:{id}
+     * VALUE 数据类型:String 子职位编号集合
+     */
+    String MDE_ENTERPRISE_TREE ="mde_enterprise_tree";
+
 
 
 }

+ 0 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/datapermission/config/DataPermissionConfiguration.java

@@ -1,13 +1,10 @@
 package com.citu.module.menduner.system.framework.datapermission.config;
 
 
-import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.module.menduner.system.config.permission.CustomDataPermissionRuleCustomizer;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
-import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 

+ 8 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java

@@ -2,10 +2,7 @@ package com.citu.module.menduner.system.service.enterprise;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseAlbumReqVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseSaveReqVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseWelfareReqVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseListReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterprisePageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseSaveReqVO;
@@ -167,4 +164,11 @@ public interface EnterpriseService {
      * 获取企业基本信息
      **/
     AppAdminEnterpriseRespVO get();
+
+    /**
+     * 获取企业树
+     * @param id 企业编号
+     * @return AppAdminEnterpriseTreeRespVO
+     **/
+    AppAdminEnterpriseTreeRespVO getTree(Long id);
 }

+ 51 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java

@@ -6,14 +6,12 @@ import com.citu.framework.common.pojo.PageParam;
 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.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseAlbumReqVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseRespVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseSaveReqVO;
-import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.AppAdminEnterpriseWelfareReqVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseListReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterprisePageReqVO;
@@ -29,7 +27,6 @@ import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
 import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.MdeVisitsProducer;
-import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.cache.annotation.Cacheable;
@@ -38,6 +35,7 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.util.collection.CollectionUtils.convertSet;
@@ -239,11 +237,58 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     }
 
     private void noticeES(Long id, ESOperateEnum operate) {
-        esProducer.send(operate,id);
+        esProducer.send(operate, id);
     }
 
     @Override
     public AppAdminEnterpriseRespVO get() {
         return EnterpriseConvert.INSTANCE.convert13(selectEnterprise());
     }
+
+    @Override
+    @Cacheable(cacheNames = RedisKeyConstants.MDE_ENTERPRISE_TREE+"#5h", key = "#id",
+            unless = "#result == null")
+    public AppAdminEnterpriseTreeRespVO getTree(Long id) {
+        EnterpriseDO parent = enterpriseMapper.selectListById(id);
+        if (null == parent) {
+            return null;
+        }
+
+        AppAdminEnterpriseTreeRespVO resp = EnterpriseConvert.INSTANCE.convert17(parent);
+        List<AppAdminEnterpriseTreeRespVO> children = new LinkedList<>();
+        // 遍历每一层
+        Collection<Long> parentIds = Collections.singleton(id);
+        for (int i = 0; i < Short.MAX_VALUE; i++) { // 使用 Short.MAX_VALUE 避免 bug 场景下,存在死循环
+            // 查询当前层,所有的子节点
+            List<EnterpriseDO> list = enterpriseMapper.selectListByParentId(parentIds);
+            // 1. 如果没有子节点,则结束遍历
+            if (CollUtil.isEmpty(list)) {
+                break;
+            }
+            // 2. 如果有子节点,继续遍历
+            children.addAll(EnterpriseConvert.INSTANCE.convertList3(list));
+            parentIds = convertSet(list, EnterpriseDO::getId);
+        }
+        resp.setChildren(children);
+        return resp;
+    }
+
+    /**
+     * 递归查询子节点
+     *
+     * @param root 根节点
+     * @param all  所有节点
+     * @return 根节点信息
+     */
+    private List<AppAdminEnterpriseTreeRespVO> getChildren(AppAdminEnterpriseTreeRespVO root,
+                                                           List<AppAdminEnterpriseTreeRespVO> all) {
+        return all.stream()
+                .filter(child -> Objects.equals(child.getParentId(), root.getId()))
+                .map(child -> {
+                    child.setChildren(getChildren(child, all));
+                    return child;
+                })
+                .collect(Collectors.toList());
+    }
+
 }

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

@@ -200,6 +200,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         if (null != enterprise) {
             resp.setEnterpriseId(enterprise.getId());
             resp.setEnterpriseName(enterprise.getName());
+            resp.setEnterpriseAnotherName(enterprise.getAnotherName());
             resp.setLogoUrl(enterprise.getLogoUrl());
         }
         return resp;
@@ -269,7 +270,11 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     public PageResult<AppAdminUserRespVO> selectPage(AppAdminUserPageReqVO reqVO) {
         LoginUser loginUser = checkUserTypeIsAdmin();
-        return enterpriseUserBindMapper.selectPage(reqVO, LoginUserContext.getEnterpriseId(loginUser));
+        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+        if(null != reqVO.getEnterpriseId()) {
+            enterpriseId = reqVO.getEnterpriseId();
+        }
+        return enterpriseUserBindMapper.selectPage(reqVO, enterpriseId);
     }
 
     @Override

+ 0 - 111
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobCvRelService.java

@@ -1,111 +0,0 @@
-package com.citu.module.menduner.system.service.hire;
-
-
-import com.citu.framework.common.pojo.PageParam;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelQueryReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.base.CommonRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
-
-import javax.validation.Valid;
-import java.util.List;
-
-/**
- * 众聘-简历投递 Service 接口
- *
- * @author Rayson
- */
-public interface HireJobCvRelService {
-
-    /**
-     * 创建众聘-简历投递
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createHireJobCvRel(@Valid HireJobCvRelSaveReqVO createReqVO);
-
-    /**
-     * 更新众聘-简历投递
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateHireJobCvRel(@Valid HireJobCvRelSaveReqVO updateReqVO);
-
-    /**
-     * 删除众聘-简历投递
-     *
-     * @param id 编号
-     */
-    void deleteHireJobCvRel(Long id);
-
-    /**
-     * 获得众聘-简历投递
-     *
-     * @param id 编号
-     * @return 众聘-简历投递
-     */
-    HireJobCvRelDO getHireJobCvRel(Long id);
-
-    /**
-     * 获得众聘-简历投递分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 众聘-简历投递分页
-     */
-    PageResult<HireJobCvRelDO> getHireJobCvRelPage(HireJobCvRelPageReqVO pageReqVO);
-
-    // ========== 求职端 ==========
-
-    /**
-     * 获取推荐职位投递状态数量
-     *
-     * @return 推荐职位数量
-     */
-    List<CommonRespVO> getRecommendCount();
-
-    /**
-     * 获取推荐邀请投递的职位信息
-     *
-     * @param reqVO 分页查询
-     * @return 众聘-简历投递分页
-     */
-    PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO);
-    /**
-     * 众聘-简历投递
-     *
-     * @param reqVO 分页查询
-     * @return 众聘-简历投递分页
-     */
-    void send(AppHireJobCvRelReqVO reqVO);
-
-    // ========== 招聘端 ==========
-
-    /**
-     * 查看投递简历
-     *
-     * @param id 投递简历id
-     */
-    boolean look(Long id);
-
-    /**
-     * 淘汰 不合适
-     *
-     * @param ids 投递简历ids
-     */
-    boolean eliminate(List<Long> ids);
-
-    /**
-     * 入职
-     *
-     * @param ids 投递简历ids
-     */
-    boolean entry(List<Long> ids);
-
-
-
-}

+ 0 - 183
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobCvRelServiceImpl.java

@@ -1,183 +0,0 @@
-package com.citu.module.menduner.system.service.hire;
-
-
-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.module.menduner.common.util.LoginUserContext;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelQueryReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelReqVO;
-import com.citu.module.menduner.system.controller.app.hire.vo.AppHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.base.CommonRespVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
-import com.citu.module.menduner.system.dal.mysql.hire.HireJobCvRelMapper;
-import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
-import com.citu.module.menduner.system.enums.MendunerStatusEnum;
-import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
-import com.citu.module.menduner.system.enums.hire.HireJobCvRelStatusEnum;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
-
-/**
- * 众聘-简历投递 Service 实现类
- *
- * @author Rayson
- */
-@Service
-@Validated
-public class HireJobCvRelServiceImpl implements HireJobCvRelService {
-
-    @Resource
-    private HireJobCvRelMapper hireJobCvRelMapper;
-
-    @Resource
-    private JobAdvertisedMapper jobAdvertisedMapper;
-
-    @Override
-    public Long createHireJobCvRel(HireJobCvRelSaveReqVO createReqVO) {
-        // 插入
-        HireJobCvRelDO hireJobCvRel = BeanUtils.toBean(createReqVO, HireJobCvRelDO.class);
-        hireJobCvRelMapper.insert(hireJobCvRel);
-        // 返回
-        return hireJobCvRel.getId();
-    }
-
-    @Override
-    public void updateHireJobCvRel(HireJobCvRelSaveReqVO updateReqVO) {
-        // 校验存在
-        validateHireJobCvRelExists(updateReqVO.getId());
-        // 更新
-        HireJobCvRelDO updateObj = BeanUtils.toBean(updateReqVO, HireJobCvRelDO.class);
-        hireJobCvRelMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteHireJobCvRel(Long id) {
-        // 校验存在
-        validateHireJobCvRelExists(id);
-        // 删除
-        hireJobCvRelMapper.deleteById(id);
-    }
-
-    private HireJobCvRelDO validateHireJobCvRelExists(Long id) {
-        HireJobCvRelDO hireJobCvRel = hireJobCvRelMapper.selectById(id);
-        if (null == hireJobCvRel) {
-            throw exception(HIRE_JOB_CV_REL_NOT_EXISTS);
-        }
-        return hireJobCvRel;
-    }
-
-    @Override
-    public HireJobCvRelDO getHireJobCvRel(Long id) {
-        return hireJobCvRelMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<HireJobCvRelDO> getHireJobCvRelPage(HireJobCvRelPageReqVO pageReqVO) {
-        return hireJobCvRelMapper.selectPage(pageReqVO);
-    }
-
-    @Override
-    public List<CommonRespVO> getRecommendCount() {
-        List<CommonRespVO> list = new ArrayList<>();
-        List<HireJobCvRelDO> jobList = hireJobCvRelMapper
-                .selectByRecommendUserId(LoginUserContext.getUserId());
-        // 分组
-        Map<String, Long> groupedMap = jobList.stream()
-                .collect(
-                        Collectors.groupingBy(HireJobCvRelDO::getStatus, Collectors.counting())
-                );
-
-        for (Map.Entry<String, Long> entry : groupedMap.entrySet()) {
-            CommonRespVO respVO = new CommonRespVO();
-            respVO.setKey(entry.getKey());
-            respVO.setValue(entry.getValue().toString());
-            list.add(respVO);
-        }
-        return list;
-    }
-
-    @Override
-    public PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO) {
-        return hireJobCvRelMapper.page(reqVO,LoginUserContext.getUserId());
-    }
-
-    @Override
-    @DSTransactional
-    public void send(AppHireJobCvRelReqVO reqVO) {
-        // 效验职位是否关闭
-        JobAdvertisedDO job = jobAdvertisedMapper.selectById(reqVO.getJobId());
-        if (MendunerStatusEnum.DISABLE.getStatus().equals(job.getStatus())) {
-            throw exception(JOB_CV_REL_JOB_STOP_DELIVERY);
-        }
-
-        Long userId = LoginUserContext.getUserId2();
-        if(null!= userId) {
-            // 登录效验
-            // 效验某段时间是否投递过
-            if (hireJobCvRelMapper.checkDataWithin15Day(userId, reqVO.getJobId())) {
-                throw exception(JOB_CV_REL_EXISTS);
-            }
-        }
-
-        HireJobCvRelDO cvRelDO = BeanUtils.toBean(reqVO, HireJobCvRelDO.class);
-        if(null!= userId) {
-            cvRelDO.setUserId(userId);
-        }
-        // 补充
-        cvRelDO.setPublishUserId(job.getUserId());
-        cvRelDO.setEnterpriseId(job.getEnterpriseId());
-        cvRelDO.setStatus(JobCvRelStatusEnum.NEW.getStatus());
-        // 保存
-        hireJobCvRelMapper.insert(cvRelDO);
-
-
-    }
-
-    @Override
-    @DSTransactional
-    public boolean look(Long id) {
-        HireJobCvRelDO cv = validateHireJobCvRelExists(id);
-        if (HireJobCvRelStatusEnum.LOOK.getStatus().equals(cv.getStatus())) {
-            return true;
-        }
-        cv.setStatus(HireJobCvRelStatusEnum.LOOK.getStatus());
-        return hireJobCvRelMapper.updateById(cv) == 1;
-    }
-
-    @Override
-    @DSTransactional
-    public boolean eliminate(List<Long> ids) {
-        for (Long id : ids) {
-            HireJobCvRelDO cv = validateHireJobCvRelExists(id);
-            cv.setStatus(HireJobCvRelStatusEnum.ELIMINATE.getStatus());
-            hireJobCvRelMapper.updateById(cv);
-        }
-        return true;
-    }
-
-    @Override
-    @DSTransactional
-    public boolean entry(List<Long> ids) {
-        for (Long id : ids) {
-            HireJobCvRelDO cv = validateHireJobCvRelExists(id);
-            cv.setStatus(HireJobCvRelStatusEnum.ENTRY.getStatus());
-            hireJobCvRelMapper.updateById(cv);
-        }
-        return true;
-    }
-}

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobIntegrationService.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationService.java

@@ -1,8 +1,8 @@
-package com.citu.module.menduner.system.service.hire;
+package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
 
 import java.util.List;

+ 18 - 16
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/hire/HireJobIntegrationServiceImpl.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationServiceImpl.java

@@ -1,20 +1,21 @@
-package com.citu.module.menduner.system.service.hire;
+package com.citu.module.menduner.system.service.job;
 
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.hire.vo.AppAdminHireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.hire.HireCommissionRatioDO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
-import com.citu.module.menduner.system.dal.mysql.hire.HireJobCvRelMapper;
+import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
+import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
 import com.citu.module.menduner.system.enums.MathOperationEnum;
 import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
 import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
-import com.citu.module.menduner.system.enums.hire.HireJobCvRelStatusEnum;
+import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
+import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
 import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import lombok.extern.slf4j.Slf4j;
@@ -35,8 +36,9 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_JOB_
 @Validated
 public class HireJobIntegrationServiceImpl implements HireJobIntegrationService {
 
+
     @Resource
-    private HireJobCvRelMapper hireJobCvRelMapper;
+    private JobCvRelMapper jobCvRelMapper;
 
     @Resource
     private JobAdvertisedMapper jobAdvertisedMapper;
@@ -53,7 +55,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
 
     @Override
     public PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
-        PageResult<AppAdminHireJobCvRelRespVO> pageResult = hireJobCvRelMapper.page(reqVO);
+        PageResult<AppAdminHireJobCvRelRespVO> pageResult = jobCvRelMapper.page(reqVO);
         if (CollUtil.isEmpty(pageResult.getList())) {
             return PageResult.empty();
         }
@@ -62,18 +64,18 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
 
     @Override
     public List<AppAdminPersonSimpleRespVO> getRecommendUser() {
-        return hireJobCvRelMapper.getRecommendUser();
+        return jobCvRelMapper.getRecommendUser();
     }
 
     @Override
     @DSTransactional
     public boolean settlement(Long id) {
-        HireJobCvRelDO cv = hireJobCvRelMapper.selectById(id);
+        JobCvRelDO cv = jobCvRelMapper.selectById(id);
         if (null == cv) {
             throw exception(HIRE_JOB_CV_REL_NOT_EXISTS);
         }
-        cv.setStatus(HireJobCvRelStatusEnum.SETTLEMENT.getStatus());
-        hireJobCvRelMapper.updateById(cv);
+        cv.setStatus(JobCvRelStatusEnum.SETTLEMENT.getStatus());
+        jobCvRelMapper.updateById(cv);
 
         // 猎头、 推荐人、投递人
         // 获取比例配置
@@ -103,7 +105,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
      * @param ratio 佣金比例
      * @param cv    投递信息
      **/
-    public void priceSettlement(JobAdvertisedDO job, HireCommissionRatioDO ratio, HireJobCvRelDO cv) {
+    public void priceSettlement(JobAdvertisedDO job, HireCommissionRatioDO ratio, JobCvRelDO cv) {
         BigDecimal hirePrice = job.getHirePrice();
         // 总比例
         BigDecimal totalRate = BigDecimal.valueOf(100);
@@ -141,10 +143,10 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
         // 投递人
         userAccountRecordService.createBalanceRecord(
                 cv.getUserId(),
-                BalanceBizTypeEnum.RECOMMENDED_POSITIONS.getName(),
+                BalanceBizTypeEnum.DELIVERY_PERSON.getName(),
                 MathOperationEnum.ADD,
                 cvPrice,
-                BalanceBizTypeEnum.RECOMMENDED_POSITIONS,
+                BalanceBizTypeEnum.DELIVERY_PERSON,
                 String.valueOf(job.getId())
         );
     }
@@ -156,7 +158,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
      * @param ratio 佣金比例
      * @param cv    投递信息
      **/
-    public void pointSettlement(JobAdvertisedDO job, HireCommissionRatioDO ratio, HireJobCvRelDO cv) {
+    public void pointSettlement(JobAdvertisedDO job, HireCommissionRatioDO ratio, JobCvRelDO cv) {
         Integer hirePoint = job.getHirePoint();
         int totalRate = 100; // 总比例
 

+ 25 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java

@@ -1,7 +1,11 @@
 package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelQueryReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
@@ -62,7 +66,12 @@ public interface JobCvRelService {
      * @param reqVO
      */
     void send(AppJobCvRelReqVO reqVO);
-
+    /**
+     * 众聘-推荐人简历投递
+     *
+     * @param reqVO 条件
+     */
+    void send(AppHireJobCvRelReqVO reqVO);
     /**
      * 效验是否投递了该职位
      *
@@ -70,6 +79,21 @@ public interface JobCvRelService {
      */
     boolean checkSend(Long jobId);
 
+    /**
+     * 获取推荐职位投递状态数量
+     *
+     * @return 推荐职位数量
+     */
+    List<CommonRespVO> getRecommendCount();
+
+    /**
+     * 获取推荐邀请投递的职位信息
+     *
+     * @param reqVO 分页查询
+     * @return 众聘-简历投递分页
+     */
+    PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO);
+
     // ========== 招聘端 ==========
     /**
      * 查看投递简历

+ 65 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java

@@ -3,7 +3,12 @@ package com.citu.module.menduner.system.service.job;
 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.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelQueryReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvRelReqVO;
+import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
@@ -12,12 +17,14 @@ import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
-import com.citu.module.menduner.common.util.LoginUserContext;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@@ -105,6 +112,38 @@ public class JobCvRelServiceImpl implements JobCvRelService {
         jobCvRelMapper.insert(jobCvRel);
     }
 
+    @Override
+    @DSTransactional
+    public void send(AppHireJobCvRelReqVO reqVO) {
+        // 效验职位是否关闭
+        JobAdvertisedDO job = jobAdvertisedMapper.selectById(reqVO.getJobId());
+        if (MendunerStatusEnum.DISABLE.getStatus().equals(job.getStatus())) {
+            throw exception(JOB_CV_REL_JOB_STOP_DELIVERY);
+        }
+
+        Long userId = LoginUserContext.getUserId2();
+        if (null != userId) {
+            // 登录效验
+            // 效验某段时间是否投递过
+            if (jobCvRelMapper.checkDataWithin15Day(userId, reqVO.getJobId())) {
+                throw exception(JOB_CV_REL_EXISTS);
+            }
+        }
+
+        JobCvRelDO cvRelDO = BeanUtils.toBean(reqVO, JobCvRelDO.class);
+        if (null != userId) {
+            // 会出现不填用户id的情况
+            cvRelDO.setUserId(userId);
+        }
+        // 补充
+        cvRelDO.setType("1");
+        cvRelDO.setPublishUserId(job.getUserId());
+        cvRelDO.setEnterpriseId(job.getEnterpriseId());
+        cvRelDO.setStatus(JobCvRelStatusEnum.NEW.getStatus());
+        // 保存
+        jobCvRelMapper.insert(cvRelDO);
+    }
+
     @Override
     public boolean checkSend(Long jobId) {
         Long userId = getLoginUserId();
@@ -116,6 +155,31 @@ public class JobCvRelServiceImpl implements JobCvRelService {
         return jobCvRelMapper.checkDataWithin15Day(userId, jobId);
     }
 
+    @Override
+    public List<CommonRespVO> getRecommendCount() {
+        List<CommonRespVO> list = new ArrayList<>();
+        List<JobCvRelDO> jobList = jobCvRelMapper
+                .selectByRecommendUserId(LoginUserContext.getUserId());
+        // 分组
+        Map<String, Long> groupedMap = jobList.stream()
+                .collect(
+                        Collectors.groupingBy(JobCvRelDO::getStatus, Collectors.counting())
+                );
+
+        for (Map.Entry<String, Long> entry : groupedMap.entrySet()) {
+            CommonRespVO respVO = new CommonRespVO();
+            respVO.setKey(entry.getKey());
+            respVO.setValue(entry.getValue().toString());
+            list.add(respVO);
+        }
+        return list;
+    }
+
+    @Override
+    public PageResult<AppHireJobCvRelRespVO> page(AppHireJobCvRelQueryReqVO reqVO) {
+        return jobCvRelMapper.page(reqVO,LoginUserContext.getUserId());
+    }
+
     @Override
     @DSTransactional
     public boolean look(Long id) {

+ 0 - 160
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/hire/HireJobCvRelServiceImplTest.java

@@ -1,160 +0,0 @@
-package com.citu.module.menduner.system.service.hire;
-
-
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.test.core.ut.BaseDbUnitTest;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.hire.HireJobCvRelSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.hire.HireJobCvRelDO;
-import com.citu.module.menduner.system.dal.mysql.hire.HireJobCvRelMapper;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.annotation.Import;
-
-import javax.annotation.Resource;
-
-import static com.citu.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
-import static com.citu.framework.common.util.object.ObjectUtils.cloneIgnoreId;
-import static com.citu.framework.test.core.util.AssertUtils.assertPojoEquals;
-import static com.citu.framework.test.core.util.AssertUtils.assertServiceException;
-import static com.citu.framework.test.core.util.RandomUtils.randomLongId;
-import static com.citu.framework.test.core.util.RandomUtils.randomPojo;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_JOB_CV_REL_NOT_EXISTS;
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * {@link HireJobCvRelServiceImpl} 的单元测试类
- *
- * @author Rayson
- */
-@Import(HireJobCvRelServiceImpl.class)
-public class HireJobCvRelServiceImplTest extends BaseDbUnitTest {
-
-    @Resource
-    private HireJobCvRelServiceImpl hireJobCvRelService;
-
-    @Resource
-    private HireJobCvRelMapper hireJobCvRelMapper;
-
-    @Test
-    public void testCreateHireJobCvRel_success() {
-        // 准备参数
-        HireJobCvRelSaveReqVO createReqVO = randomPojo(HireJobCvRelSaveReqVO.class).setId(null);
-
-        // 调用
-        Long hireJobCvRelId = hireJobCvRelService.createHireJobCvRel(createReqVO);
-        // 断言
-        assertNotNull(hireJobCvRelId);
-        // 校验记录的属性是否正确
-        HireJobCvRelDO hireJobCvRel = hireJobCvRelMapper.selectById(hireJobCvRelId);
-        assertPojoEquals(createReqVO, hireJobCvRel, "id");
-    }
-
-    @Test
-    public void testUpdateHireJobCvRel_success() {
-        // mock 数据
-        HireJobCvRelDO dbHireJobCvRel = randomPojo(HireJobCvRelDO.class);
-        hireJobCvRelMapper.insert(dbHireJobCvRel);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        HireJobCvRelSaveReqVO updateReqVO = randomPojo(HireJobCvRelSaveReqVO.class, o -> {
-            o.setId(dbHireJobCvRel.getId()); // 设置更新的 ID
-        });
-
-        // 调用
-        hireJobCvRelService.updateHireJobCvRel(updateReqVO);
-        // 校验是否更新正确
-        HireJobCvRelDO hireJobCvRel = hireJobCvRelMapper.selectById(updateReqVO.getId()); // 获取最新的
-        assertPojoEquals(updateReqVO, hireJobCvRel);
-    }
-
-    @Test
-    public void testUpdateHireJobCvRel_notExists() {
-        // 准备参数
-        HireJobCvRelSaveReqVO updateReqVO = randomPojo(HireJobCvRelSaveReqVO.class);
-
-        // 调用, 并断言异常
-        assertServiceException(() -> hireJobCvRelService.updateHireJobCvRel(updateReqVO), HIRE_JOB_CV_REL_NOT_EXISTS);
-    }
-
-    @Test
-    public void testDeleteHireJobCvRel_success() {
-        // mock 数据
-        HireJobCvRelDO dbHireJobCvRel = randomPojo(HireJobCvRelDO.class);
-        hireJobCvRelMapper.insert(dbHireJobCvRel);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        Long id = dbHireJobCvRel.getId();
-
-        // 调用
-        hireJobCvRelService.deleteHireJobCvRel(id);
-        // 校验数据不存在了
-        assertNull(hireJobCvRelMapper.selectById(id));
-    }
-
-    @Test
-    public void testDeleteHireJobCvRel_notExists() {
-        // 准备参数
-        Long id = randomLongId();
-
-        // 调用, 并断言异常
-        assertServiceException(() -> hireJobCvRelService.deleteHireJobCvRel(id), HIRE_JOB_CV_REL_NOT_EXISTS);
-    }
-
-    @Test
-    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
-    public void testGetHireJobCvRelPage() {
-        // mock 数据
-        HireJobCvRelDO dbHireJobCvRel = randomPojo(HireJobCvRelDO.class, o -> { // 等会查询到
-            o.setEnterpriseId(null);
-            o.setJobId(null);
-            o.setPublishUserId(null);
-            o.setRecommendUserId(null);
-            o.setUserId(null);
-            o.setName(null);
-            o.setPhone(null);
-            o.setUrl(null);
-            o.setStatus(null);
-            o.setCreateTime(null);
-        });
-        hireJobCvRelMapper.insert(dbHireJobCvRel);
-        // 测试 enterpriseId 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setEnterpriseId(null)));
-        // 测试 jobId 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setJobId(null)));
-        // 测试 publishUserId 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setPublishUserId(null)));
-        // 测试 recommendUserId 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setRecommendUserId(null)));
-        // 测试 userId 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setUserId(null)));
-        // 测试 name 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setName(null)));
-        // 测试 phone 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setPhone(null)));
-        // 测试 url 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setUrl(null)));
-        // 测试 status 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setStatus(null)));
-        // 测试 createTime 不匹配
-        hireJobCvRelMapper.insert(cloneIgnoreId(dbHireJobCvRel, o -> o.setCreateTime(null)));
-        // 准备参数
-        HireJobCvRelPageReqVO reqVO = new HireJobCvRelPageReqVO();
-        reqVO.setEnterpriseId(null);
-        reqVO.setJobId(null);
-        reqVO.setPublishUserId(null);
-        reqVO.setRecommendUserId(null);
-        reqVO.setUserId(null);
-        reqVO.setName(null);
-        reqVO.setPhone(null);
-        reqVO.setUrl(null);
-        reqVO.setStatus(null);
-        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-
-        // 调用
-        PageResult<HireJobCvRelDO> pageResult = hireJobCvRelService.getHireJobCvRelPage(reqVO);
-        // 断言
-        assertEquals(1, pageResult.getTotal());
-        assertEquals(1, pageResult.getList().size());
-        assertPojoEquals(dbHireJobCvRel, pageResult.getList().get(0));
-    }
-
-}