Переглянути джерело

1、升级fastjson
2、优化企业搜索返回
3、优化热门企业返回
4、增加企业-职位层接口

rayson 9 місяців тому
батько
коміт
baec467bc3
19 змінених файлів з 303 додано та 140 видалено
  1. 1 1
      citu-dependencies/pom.xml
  2. 7 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterpriseController.java
  3. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/AppEnterpriseSearchPageReqVO.java
  4. 7 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/AppJobAdvertisedController.java
  5. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppEnterpriseJobRespVO.java
  6. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java
  7. 95 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedImportExcelVO.java
  8. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java
  9. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java
  10. 6 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  11. 10 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  12. 0 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  13. 0 19
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  14. 39 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprisejob/EnterpriseJobService.java
  15. 122 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprisejob/EnterpriseJobServiceImpl.java
  16. 0 20
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  17. 1 64
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  18. 0 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  19. 1 1
      menduner/menduner-system-biz/src/main/resources/application.yaml

+ 1 - 1
citu-dependencies/pom.xml

@@ -61,7 +61,7 @@
         <easyexcel.verion>3.3.4</easyexcel.verion>
         <velocity.version>2.3</velocity.version>
         <screw.version>1.0.5</screw.version>
-        <fastjson.version>1.2.83</fastjson.version>
+        <fastjson.version>2.0.53</fastjson.version>
         <guava.version>33.2.1-jre</guava.version>
         <transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
         <commons-net.version>3.11.1</commons-net.version>

+ 7 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterpriseController.java

@@ -6,10 +6,12 @@ import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.auth
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseSearchPageReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import com.citu.module.menduner.system.service.enterprise.auth.EnterpriseAuthService;
+import com.citu.module.menduner.system.service.enterprisejob.EnterpriseJobService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +37,9 @@ public class AppEnterpriseController {
     @Resource
     private EnterpriseAuthService enterpriseAuthService;
 
+    @Resource
+    private EnterpriseJobService enterpriseJobService;
+
     @PostMapping("/click")
     @Operation(summary = "点击访问企业埋点")
     public CommonResult<Boolean> click(@RequestBody @Valid AppEnterpriseClickReqVO reqVO) {
@@ -57,8 +62,8 @@ public class AppEnterpriseController {
 
     @GetMapping("/search")
     @Operation(summary = "搜索企业")
-    public CommonResult<PageResult<EnterpriseBaseSimpleRespVO>> search(@Valid AppEnterpriseSearchPageReqVO reqVO) {
-        return success(enterpriseService.search(reqVO));
+    public CommonResult<PageResult<AppEnterpriseJobRespVO>> search(@Valid AppEnterpriseSearchPageReqVO reqVO) {
+        return success(enterpriseJobService.search(reqVO));
     }
 
     @GetMapping("/search/by/name")

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

@@ -29,6 +29,9 @@ public class AppEnterpriseSearchPageReqVO extends PageParam {
     @Schema(description = "人员规模(0-20人,20-99人,100-499人,500-999人,1000-9999人,9999人以上)", example = "1")
     private String scale;
 
-    @Schema(description = "融资阶段(未融资,天使轮,A轮,B轮,C轮,D轮以上,已上市,不需要融资)",  example = "1")
+    @Schema(description = "融资阶段(未融资,天使轮,A轮,B轮,C轮,D轮以上,已上市,不需要融资)", example = "1")
     private String financingStatus;
+
+    @Schema(description = "获取职位数量,默认显示一个最新职位", example = "1")
+    private int jobNum = 1;
 }

+ 7 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/AppJobAdvertisedController.java

@@ -7,6 +7,7 @@ import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
 import com.citu.module.menduner.system.mq.producer.MdeVisitsProducer;
+import com.citu.module.menduner.system.service.enterprisejob.EnterpriseJobService;
 import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -40,6 +41,9 @@ public class AppJobAdvertisedController {
     @Resource
     private MdeVisitsProducer visitsProducer;
 
+    @Resource
+    private EnterpriseJobService enterpriseJobService;
+
     @GetMapping("/get/recommended")
     @Operation(summary = "获取推荐招聘职位分页")
     public CommonResult<PageResult<AppJobAdvertisedHomeRespVO>> getRecommendedPage(@Valid PageParam pageParam) {
@@ -63,8 +67,8 @@ public class AppJobAdvertisedController {
 
     @GetMapping("/get/hot/enterprise")
     @Operation(summary = "获取热门企业的职位分页")
-    public CommonResult<PageResult<AppEnterpriseJobHomeRespVO>> getHotEnterpriseJobPage(@Valid PageParam pageParam) {
-        PageResult<AppEnterpriseJobHomeRespVO> result = jobAdvertisedService.getHotEnterpriseJobPage(pageParam);
+    public CommonResult<PageResult<AppEnterpriseJobRespVO>> getHotEnterpriseJobPage(@Valid PageParam pageParam) {
+        PageResult<AppEnterpriseJobRespVO> result = enterpriseJobService.getHotEnterpriseJobPage(pageParam);
         return success(result);
     }
 
@@ -79,7 +83,7 @@ public class AppJobAdvertisedController {
     @GetMapping("/get/detail")
     @Operation(summary = "获取招聘职位详情")
     public CommonResult<AppJobAdvertisedDetailRespVO> detail(@RequestParam("id") Long id) {
-        AppJobAdvertisedDetailRespVO respVO = jobAdvertisedService.detail(id);
+        AppJobAdvertisedDetailRespVO respVO = enterpriseJobService.detail(id);
         if (null != respVO) {
             visitsProducer.send(MdeVisitsEnum.POSITION_PUBLISH_CLICK, id);
         }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppEnterpriseJobHomeRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppEnterpriseJobRespVO.java

@@ -14,10 +14,10 @@ import java.util.List;
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
-public class AppEnterpriseJobHomeRespVO  {
+public class AppEnterpriseJobRespVO {
 
     @Schema(description = "企业信息", example = "{}")
-    EnterpriseBaseSimpleRespVO enterprise;
+    private EnterpriseBaseSimpleRespVO enterprise;
 
     @Schema(description = "企业发布职位", example = "{}")
     private List<AppJobAdvertisedSimpleRespVO> jobList;

+ 4 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java

@@ -11,6 +11,7 @@ import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.*;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+import com.citu.module.menduner.system.service.enterprisejob.EnterpriseJobService;
 import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -37,6 +38,8 @@ public class AppRecruitJobAdvertisedController {
     private JobAdvertisedService jobAdvertisedService;
     @Resource
     private JobIntegrationService jobIntegrationService;
+    @Resource
+    private EnterpriseJobService enterpriseJobService;
 
 
     @PreAuthenticated
@@ -62,7 +65,7 @@ public class AppRecruitJobAdvertisedController {
     @GetMapping("/detail")
     @Operation(summary = "获得招聘职位详情")
     public CommonResult<AppRecruitJobDetailRespVO> detail(@RequestParam("id") Long id) {
-        return success(JobAdvertisedConvert.INSTANCE.convert5(jobAdvertisedService.detail(id)));
+        return success(JobAdvertisedConvert.INSTANCE.convert5(enterpriseJobService.detail(id)));
     }
 
     @PreAuthenticated

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

@@ -0,0 +1,95 @@
+package com.citu.module.menduner.system.controller.base.job;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.framework.excel.core.annotations.DictFormat;
+import com.citu.framework.excel.core.annotations.ExcelColumnSelect;
+import com.citu.framework.excel.core.convert.DictConvert;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_PAY_UNIT;
+
+/**
+ * 职位 Excel 导入 VO
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = false)
+public class JobAdvertisedImportExcelVO {
+
+    @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    @ExcelProperty("职位名称")
+    private String name;
+
+    @Schema(description = "职位类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "31707")
+    @ExcelProperty("职位类型")
+    private String position;
+
+    @Schema(description = "招聘类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty(value = "招聘类型", converter = DictConvert.class)
+    @DictFormat(MENDUNER_JOB_TYPE)
+    @ExcelColumnSelect(dictType = MENDUNER_JOB_TYPE)
+    private String type;
+
+    @Schema(description = "工作经验", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty(value = "工作经验", converter = DictConvert.class)
+    @DictFormat(MENDUNER_EXP_TYPE)
+    @ExcelColumnSelect(dictType = MENDUNER_EXP_TYPE)
+    private String expType;
+
+    @Schema(description = "学历要求", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty(value = "学历要求", converter = DictConvert.class)
+    @DictFormat(MENDUNER_EDUCATION_TYPE)
+    @ExcelColumnSelect(dictType = MENDUNER_EDUCATION_TYPE)
+    private String eduType;
+
+    @Schema(description = "薪酬from")
+    @ExcelProperty("薪酬from")
+    private BigDecimal payFrom;
+
+    @Schema(description = "薪酬to")
+    @ExcelProperty("薪酬to")
+    private BigDecimal payTo;
+
+    @Schema(description = "薪酬单位")
+    @ExcelProperty(value = "薪酬单位", converter = DictConvert.class)
+    @DictFormat(MENDUNER_PAY_UNIT)
+    @ExcelColumnSelect(dictType = MENDUNER_PAY_UNIT)
+    private String payUnit;
+
+    @Schema(description = "职位内容")
+    @ExcelProperty("职位内容")
+    private String content;
+
+    @Schema(description = "职位要求")
+    @ExcelProperty("职位要求")
+    private String requirement;
+
+    @Schema(description = "过期时间")
+    @ExcelProperty("过期时间")
+    private LocalDateTime expireTime;
+
+    @Schema(description = "是否置顶")
+    @ExcelProperty("是否置顶")
+    private Boolean top;
+
+    @Schema(description = "工作地址")
+    @ExcelProperty("工作地址")
+    private String address;
+
+    @Schema(description = "职位状态", example = "2")
+    @ExcelProperty(value = "职位状态", converter = DictConvert.class)
+    @DictFormat(MENDUNER_JOB_STATUS)
+    @ExcelColumnSelect(dictType = MENDUNER_JOB_STATUS)
+    private String status;
+}

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

@@ -113,7 +113,7 @@ public class JobAdvertisedRespVO {
 
     @Schema(description = "职位状态", example = "2")
     @ExcelProperty(value = "职位状态", converter = DictConvert.class)
-    @DictFormat(MENDUNER_STATUS)
+    @DictFormat(MENDUNER_JOB_STATUS)
     private String status;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java

@@ -86,17 +86,17 @@ public class EnterpriseDO extends TenantBaseDO {
     /**
      * 企业福利
      */
-    @TableField(typeHandler = JacksonTypeHandler.class,updateStrategy = FieldStrategy.ALWAYS)
+    @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> welfareList;
     /**
      * 企业相册
      */
-    @TableField(typeHandler = JacksonTypeHandler.class,updateStrategy = FieldStrategy.ALWAYS)
+    @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> albumList;
     /**
      * 企业标签
      */
-    @TableField(typeHandler = JacksonTypeHandler.class,updateStrategy = FieldStrategy.ALWAYS)
+    @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> tagList;
     /**
      * 上班时间

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

@@ -7,6 +7,7 @@ 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.jobhunt.enterprise.vo.AppEnterpriseSearchPageReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseDetailRespVO;
@@ -106,9 +107,9 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
     /**
      * 根据查询条件搜索企业信息,返回简易的企业信息
      **/
-    default PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
+    default PageResult<AppEnterpriseJobRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
-        query.selectAll(EnterpriseDO.class);
+        query.selectAssociation(EnterpriseDO.class, AppEnterpriseJobRespVO::getEnterprise);
         query.leftJoin(EnterpriseBusinessDO.class, EnterpriseBusinessDO::getEnterpriseId, EnterpriseDO::getId);
         if (StringUtils.hasText(reqVO.getName())) {
             query.and(wrapper -> wrapper
@@ -130,10 +131,12 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         query.eqIfPresent(EnterpriseDO::getScale, reqVO.getScale());
         query.eqIfPresent(EnterpriseDO::getFinancingStatus, reqVO.getFinancingStatus());
 
+        query.orderByDesc(EnterpriseDO::getVipFlag, EnterpriseDO::getVipExpireDate);
+
         // EnterpriseAddressDO 对应的是企业的多个地址,可能出现重复问题
         query.groupBy(EnterpriseDO::getId);
 
-        return selectJoinPage(reqVO, EnterpriseBaseSimpleRespVO.class, query);
+        return selectJoinPage(reqVO, AppEnterpriseJobRespVO.class, query);
     }
 
     /**

+ 10 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -8,7 +8,7 @@ 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.jobhunt.job.vo.AppEnterpriseJobHomeRespVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedRespVO;
@@ -185,9 +185,9 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
      * @param pageParam 分页
      * @return PageResult<AppEnterpriseSimpleRespVO>
      **/
-    default PageResult<AppEnterpriseJobHomeRespVO> getHotEnterpriseJobPage(PageParam pageParam) {
+    default PageResult<AppEnterpriseJobRespVO> getHotEnterpriseJobPage(PageParam pageParam) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
-        query.selectAssociation(EnterpriseDO.class, AppEnterpriseJobHomeRespVO::getEnterprise);
+        query.selectAssociation(EnterpriseDO.class, AppEnterpriseJobRespVO::getEnterprise);
         query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
         query.eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
@@ -197,7 +197,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.gt(EnterpriseDO::getVipExpireDate, LocalDateTime.now());
         query.orderByDesc(JobAdvertisedDO::getUpdateTime);
         query.groupBy(JobAdvertisedDO::getEnterpriseId);
-        return selectJoinPage(pageParam, AppEnterpriseJobHomeRespVO.class, query);
+        return selectJoinPage(pageParam, AppEnterpriseJobRespVO.class, query);
 
     }
 
@@ -237,11 +237,15 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     /**
      * 根据企业id集合查询企业数据
      **/
-    default List<JobAdvertisedDO> selectByEnterpriseIdList(List<Long> ids) {
+    default List<JobAdvertisedDO> selectByEnterpriseId(Long id, Integer num) {
         LambdaQueryWrapper<JobAdvertisedDO> query = new LambdaQueryWrapperX<JobAdvertisedDO>();
-        query.in(JobAdvertisedDO::getEnterpriseId, ids);
+        query.in(JobAdvertisedDO::getEnterpriseId, id);
         query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         notExpireTime(query);
+        query.orderByDesc(JobAdvertisedDO::getUpdateTime);
+        if (null != num) {
+            query.last("limit " + num);
+        }
         return selectList(query);
     }
 

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

@@ -139,13 +139,6 @@ public interface EnterpriseService {
      **/
     AppEnterpriseDetailRespVO getEnterpriseDetail(Long id);
 
-    /**
-     * 根据查询条件分页搜索
-     *
-     * @param reqVO 查询条件
-     * @return 分页简易企业对象
-     **/
-    PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO);
 
     /**
      * 根据企业id获取简易的企业信息

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

@@ -67,9 +67,6 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     @Resource
     private EnterpriseAddressMapper enterpriseAddressMapper;
 
-    @Resource
-    private AreaService areaService;
-
     @Resource
     private ESProducer esProducer;
 
@@ -242,22 +239,6 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         return respVO;
     }
 
-    @Override
-    public PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
-        if (null != reqVO.getAreaIds()) {
-            // 取最后一个元素
-            Set<Long> areaIds = areaService.
-                    getChildrenIds(reqVO.getAreaIds().get(reqVO.getAreaIds().size() - 1));
-            if (!areaIds.isEmpty()) {
-                List<Long> areaIdList = new ArrayList<>(areaIds);
-                // 包括自己
-                areaIdList.add(reqVO.getAreaIds().get(0));
-                reqVO.setAreaIds(areaIdList);
-            }
-        }
-        return enterpriseMapper.search(reqVO);
-    }
-
     @Override
     public EnterpriseBaseSimpleRespVO getEnterpriseSimple(Long id) {
         EnterpriseDO enterprise = enterpriseMapper.selectById(id);

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

@@ -0,0 +1,39 @@
+package com.citu.module.menduner.system.service.enterprisejob;
+
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseSearchPageReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
+
+/**
+ * 企业-职位 Service 接口
+ **/
+public interface EnterpriseJobService {
+
+    /**
+     * 获取热门企业的职位分页
+     *
+     * @param pageParam 分页
+     * @return 招聘职位分页
+     **/
+    PageResult<AppEnterpriseJobRespVO> getHotEnterpriseJobPage(PageParam pageParam);
+
+
+    /**
+     * 获取职位详情
+     *
+     * @param id 职位id
+     * @return 招聘职位详情
+     **/
+    AppJobAdvertisedDetailRespVO detail(Long id);
+
+
+    /**
+     * 根据查询条件分页搜索
+     *
+     * @param reqVO 查询条件
+     * @return 分页简易企业对象
+     **/
+    PageResult<AppEnterpriseJobRespVO> search(AppEnterpriseSearchPageReqVO reqVO);
+}

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

@@ -0,0 +1,122 @@
+package com.citu.module.menduner.system.service.enterprisejob;
+
+import cn.hutool.core.collection.CollUtil;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseSearchPageReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import com.citu.module.menduner.system.convert.EnterpriseConvert;
+import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
+import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
+import com.citu.module.menduner.system.service.area.AreaService;
+import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
+import lombok.extern.slf4j.Slf4j;
+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.Set;
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_JOB_ADVERTISED_NOT_EXISTS;
+
+/**
+ * 企业-职位 Service 接口实现类
+ **/
+@Slf4j
+@Service
+@Validated
+public class EnterpriseJobServiceImpl implements EnterpriseJobService {
+
+    @Resource
+    private JobAdvertisedMapper jobAdvertisedMapper;
+
+    @Resource
+    private EnterpriseMapper enterpriseMapper;
+
+    @Resource
+    private EnterpriseUserBindService userBindService;
+
+    @Resource
+    private AreaService areaService;
+
+    @Override
+    public PageResult<AppEnterpriseJobRespVO> getHotEnterpriseJobPage(PageParam pageParam) {
+        PageResult<AppEnterpriseJobRespVO> result =
+                jobAdvertisedMapper.getHotEnterpriseJobPage(pageParam);
+        if (result.getList().isEmpty()) {
+            return result;
+        }
+        result.getList().forEach(resp -> {
+            // 查询职位
+            List<JobAdvertisedDO> jobList = jobAdvertisedMapper
+                    .selectByEnterpriseId(resp.getEnterprise().getId(), 2);
+
+            if (CollUtil.isNotEmpty(jobList)) {
+                resp.setJobList(JobAdvertisedConvert.INSTANCE.convertListSimple(jobList));
+            }
+        });
+        return result;
+    }
+
+    @Override
+    public AppJobAdvertisedDetailRespVO detail(Long id) {
+        JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
+        if (null == job) {
+            throw exception(MDE_JOB_ADVERTISED_NOT_EXISTS);
+        }
+        // 转换
+        AppJobAdvertisedDetailRespVO respVO = JobAdvertisedConvert.INSTANCE.convert(job);
+        // 设置招聘职位数量
+        respVO.setJobAdvertisedNum(jobAdvertisedMapper.countByEnterpriseId(job.getEnterpriseId()));
+
+        // 查询企业信息
+        EnterpriseBaseSimpleRespVO enterprise =
+                EnterpriseConvert.INSTANCE.convert(enterpriseMapper.selectById(job.getEnterpriseId()));
+        respVO.setEnterprise(enterprise);
+
+        // 查询联系人信息
+        EnterpriseUserContactRespVO contactRespVO = userBindService.
+                getContact(enterprise.getId(), respVO.getUserId());
+        respVO.setContact(contactRespVO);
+        return respVO;
+    }
+
+    @Override
+    public PageResult<AppEnterpriseJobRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
+        if (null != reqVO.getAreaIds()) {
+            // 取最后一个元素
+            Set<Long> areaIds = areaService.
+                    getChildrenIds(reqVO.getAreaIds().get(reqVO.getAreaIds().size() - 1));
+            if (!areaIds.isEmpty()) {
+                List<Long> areaIdList = new ArrayList<>(areaIds);
+                // 包括自己
+                areaIdList.add(reqVO.getAreaIds().get(0));
+                reqVO.setAreaIds(areaIdList);
+            }
+        }
+        PageResult<AppEnterpriseJobRespVO> result = enterpriseMapper.search(reqVO);
+        if (result.getList().isEmpty()) {
+            return result;
+        }
+
+        result.getList().forEach(resp -> {
+            // 查询职位
+            List<JobAdvertisedDO> jobList = jobAdvertisedMapper
+                    .selectByEnterpriseId(resp.getEnterprise().getId(), reqVO.getJobNum());
+
+            if (CollUtil.isNotEmpty(jobList)) {
+                resp.setJobList(JobAdvertisedConvert.INSTANCE.convertListSimple(jobList));
+            }
+        });
+        return result;
+    }
+
+}

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

@@ -3,8 +3,6 @@ package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobHomeRespVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
@@ -12,7 +10,6 @@ import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJ
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
@@ -101,23 +98,6 @@ public interface JobAdvertisedService {
      **/
     PageResult<AppJobAdvertisedHomeRespVO> getHirePage(PageParam pageParam);
 
-    /**
-     * 获取热门企业的职位分页
-     *
-     * @param pageParam 分页
-     * @return 招聘职位分页
-     **/
-    PageResult<AppEnterpriseJobHomeRespVO> getHotEnterpriseJobPage(PageParam pageParam);
-
-
-    /**
-     * 获取职位详情
-     *
-     * @param id 职位id
-     * @return 招聘职位详情
-     **/
-    AppJobAdvertisedDetailRespVO detail(Long id);
-
     /**
      * 获取相识职位信息
      *

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

@@ -13,8 +13,6 @@ import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphQueryPageDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
-import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobHomeRespVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
@@ -22,8 +20,6 @@ import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJ
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
-import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
@@ -31,13 +27,10 @@ import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqV
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
-import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.GraphProducer;
-import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
-import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -70,12 +63,6 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Resource
     private JobAdvertisedMapper mapper;
 
-    @Resource
-    private EnterpriseService enterpriseService;
-
-    @Resource
-    private EnterpriseUserBindService userBindService;
-
     @Resource
     private ESProducer esProducer;
 
@@ -255,56 +242,6 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         return mapper.selectPage(pageReqVO);
     }
 
-    @Override
-    public PageResult<AppEnterpriseJobHomeRespVO> getHotEnterpriseJobPage(PageParam pageParam) {
-        PageResult<AppEnterpriseJobHomeRespVO> result =
-                mapper.getHotEnterpriseJobPage(pageParam);
-        if (result.getList().isEmpty()) {
-            return result;
-        }
-        // 企业 id 集合
-        List<Long> idList = result.getList().stream().map(c -> c.getEnterprise().getId())
-                .collect(Collectors.toList());
-
-        // 一次性获取相关企业的数据
-        Map<Long, List<JobAdvertisedDO>> jobMap = mapper
-                .selectByEnterpriseIdList(idList)
-                .stream()
-                .collect(Collectors.groupingBy(JobAdvertisedDO::getEnterpriseId));
-
-        result.getList().forEach(resp -> {
-            resp.setJobList(
-                    // 填充
-                    JobAdvertisedConvert.INSTANCE.convertListSimple(
-                            jobMap.get(resp.getEnterprise().getId())
-                    )
-            );
-        });
-        return result;
-    }
-
-    @Override
-    public AppJobAdvertisedDetailRespVO detail(Long id) {
-        JobAdvertisedDO job = mapper.selectById(id);
-        if (null == job) {
-            throw exception(MDE_JOB_ADVERTISED_NOT_EXISTS);
-        }
-        // 转换
-        AppJobAdvertisedDetailRespVO respVO = JobAdvertisedConvert.INSTANCE.convert(job);
-        // 设置招聘职位数量
-        respVO.setJobAdvertisedNum(mapper.countByEnterpriseId(job.getEnterpriseId()));
-
-        // 查询企业信息
-        EnterpriseBaseSimpleRespVO enterprise = enterpriseService.
-                getEnterpriseSimple(job.getEnterpriseId());
-        respVO.setEnterprise(enterprise);
-
-        // 查询联系人信息
-        EnterpriseUserContactRespVO contactRespVO = userBindService.
-                getContact(enterprise.getId(), respVO.getUserId());
-        respVO.setContact(contactRespVO);
-        return respVO;
-    }
 
     @Override
     public List<CommonRespVO> getJobPositionCountByEnterpriseId(Long enterpriseId) {
@@ -354,7 +291,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 JobAdvertisedReqVO.builder().status(JobStatusEnum.ENABLE.getStatus()).build()
         );
         List<JobAdvertisedRespVO> respList = JobAdvertisedConvert.INSTANCE.convertList7(list);
-        if(CollUtil.isNotEmpty(respList)) {
+        if (CollUtil.isNotEmpty(respList)) {
             graphApi.receiveData(GraphQueryPageDTO.builder().type(SyncConstants.JOB).build()).getCheckedData();
         }
         for (JobAdvertisedRespVO resp : respList) {

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

@@ -68,12 +68,6 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     @Resource
     private EnterpriseUserBindService userBindService;
 
-    @Resource
-    private PersonJobFavoriteService personJobFavoriteService;
-
-    @Resource
-    private PersonEnterpriseSubscribeService personEnterpriseSubscribeService;
-
     @Resource
     private InterviewInviteService interviewInviteService;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/resources/application.yaml

@@ -72,7 +72,7 @@ mybatis-plus:
       #      id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解
       logic-delete-value: 1 # 逻辑已删除值(默认为 1)
       logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
-    banner: true # 关闭控制台的 Banner 打印
+    banner: false # 关闭控制台的 Banner 打印
   type-aliases-package: ${citu.info.base-package}.dal.dataobject
   encryptor:
     password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成