Ver código fonte

1、增加职位浏览量统计接口

rayson 10 meses atrás
pai
commit
be93ca55b1

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/analysis/AnalysisController.java

@@ -112,4 +112,10 @@ public class AnalysisController {
         return success(jobAdvertisedService.getBrowseNum(reqVO));
     }
 
+    @GetMapping("/get/job/browse/num")
+    @Operation(summary = "获取发布职位浏览量总数")
+    public CommonResult<Long> getBrowseNumCount(@Valid RecruitAnalysisReqVO reqVO) {
+        return success(jobAdvertisedService.getBrowseNumCount(reqVO));
+    }
+
 }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/analysis/AppRecruitAnalysisController.java

@@ -118,6 +118,14 @@ public class AppRecruitAnalysisController {
         return success(jobAdvertisedService.getBrowseNum(reqVO));
     }
 
+    @GetMapping("/get/job/browse/num")
+    @Operation(summary = "获取发布职位浏览量总数")
+    @PreAuthenticated
+    public CommonResult<Long> getBrowseNumCount(@Valid RecruitAnalysisReqVO reqVO) {
+        setCommonCondition(reqVO);
+        return success(jobAdvertisedService.getBrowseNumCount(reqVO));
+    }
+
     private void setCommonCondition(RecruitAnalysisReqVO reqVO) {
         reqVO.setEnterpriseId(LoginUserContext.getEnterpriseId());
         reqVO.setUserId(Collections.singletonList(LoginUserContext.getUserId()));

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

@@ -19,7 +19,6 @@ import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalys
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
 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.visits.MdeVisitsDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
@@ -28,6 +27,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 招聘职位 Mapper
@@ -193,14 +193,14 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
             RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(JobAdvertisedDO.class);
-        query.selectSum(MdeVisitsDO::getCount,RecruitJobAnalysisRespVO::getNum);
+        query.selectSum(MdeVisitsDO::getCount, RecruitJobAnalysisRespVO::getNum);
 
         query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
         query.inIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId());
         query.eqIfPresent(JobAdvertisedDO::getId, reqVO.getJobId());
 
-        query.innerJoin(MdeVisitsDO.class, on->
-                on.eq(MdeVisitsDO::getBizId,JobAdvertisedDO::getId)
+        query.innerJoin(MdeVisitsDO.class, on ->
+                on.eq(MdeVisitsDO::getBizId, JobAdvertisedDO::getId)
                         .eq(MdeVisitsDO::getType, MdeVisitsEnum.POSITION_PUBLISH_CLICK.getType())
         );
 
@@ -209,7 +209,37 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.groupBy(JobAdvertisedDO::getId);
         query.orderByDesc(MdeVisitsDO::getUpdateTime);
 
-        return selectJoinPage(reqVO,RecruitJobAnalysisRespVO.class, query);
+        return selectJoinPage(reqVO, RecruitJobAnalysisRespVO.class, query);
+    }
+
+    /**
+     * 职位浏览量总数
+     *
+     * @param reqVO     公共条件
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     **/
+    default Long getBrowseNumCount(RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
+        MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
+
+        query.selectSum(MdeVisitsDO::getCount, "num");
+
+        query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
+        query.inIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId());
+        query.eqIfPresent(JobAdvertisedDO::getId, reqVO.getJobId());
+
+        query.innerJoin(MdeVisitsDO.class, on ->
+                on.eq(MdeVisitsDO::getBizId, JobAdvertisedDO::getId)
+                        .eq(MdeVisitsDO::getType, MdeVisitsEnum.POSITION_PUBLISH_CLICK.getType())
+        );
+
+        query.between(MdeVisitsDO::getUpdateTime, startTime, endTime);
+
+        Map<String,Object> result= selectJoinMap(query);
+        if(null == result) {
+            return 0L;
+        }
+        return Long.valueOf(result.get("num").toString());
     }
 
 }

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

@@ -160,6 +160,8 @@ public interface JobAdvertisedService {
      **/
     List<AppRecruitJobSimpleRespVO> getList();
 
+    // ========== 统计分析 ==========
+
     /**
      * 置顶职位
      **/
@@ -167,4 +169,7 @@ public interface JobAdvertisedService {
 
     /** 获取发布职位浏览量统计分析明细 */
     PageResult<RecruitJobAnalysisRespVO> getBrowseNum(RecruitAnalysisReqVO reqVO);
+
+    /** 获取发布职位浏览量总数 */
+    Long getBrowseNumCount(RecruitAnalysisReqVO reqVO);
 }

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

@@ -485,4 +485,10 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
         return jobAdvertisedMapper.getAnalysisDetail(reqVO,timeRange[0], timeRange[1]);
     }
+
+    @Override
+    public Long getBrowseNumCount(RecruitAnalysisReqVO reqVO) {
+        LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
+        return jobAdvertisedMapper.getBrowseNumCount(reqVO,timeRange[0], timeRange[1]);
+    }
 }