Quellcode durchsuchen

1、增加优化火苗儿相关接口

rayson vor 8 Monaten
Ursprung
Commit
4ccc522d92

+ 10 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/flame/AppFlameJobPageReqVO.java

@@ -20,7 +20,7 @@ public class AppFlameJobPageReqVO extends PageParam {
 
     // ========== 职位条件 =========
 
-    @Schema(description = "职位id", example = "1")
+    @Schema(description = "职位类型id", example = "1")
     private Long positionId;
 
     @Schema(description = "地区id", example = "1")
@@ -35,7 +35,16 @@ public class AppFlameJobPageReqVO extends PageParam {
     @Schema(description = "实习天数", example = "1")
     private Integer internshipDay;
 
+    @Schema(description = "职位是否热门", example = "1")
+    private Integer hot;
+
+    @Schema(description = "专业id", example = "1")
+    private Long majorId;
+
     // ========== 公司条件 ==========
+    @Schema(description = "企业id")
+    private Long enterpriseId;
+
     @Schema(description = "人员规模")
     private String scale;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppMdeUserController.java

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.app.jobhunt.user;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.*;
@@ -53,6 +55,7 @@ public class AppMdeUserController {
     @GetMapping("/get/account")
     @Operation(summary = "获得用户账户信息")
     @PreAuthenticated
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<AppUserAccountRespVO> getAccount() {
         UserAccountDO accountDO = userAccountService.get();
         return success(UserConvert.INSTANCE.convert(accountDO));

+ 22 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitJobFairController.java

@@ -1,11 +1,16 @@
 package com.citu.module.menduner.system.controller.app.recruit.fair;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobDetailRespVO;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.joinJobFairReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRenewalReqVO;
 import com.citu.module.menduner.system.controller.base.job.fair.JobFairRespVO;
+import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import com.citu.module.menduner.system.service.job.fair.JobFairService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -31,6 +36,9 @@ public class AppRecruitJobFairController {
     @Resource
     private JobIntegrationService jobIntegrationService;
 
+    @Resource
+    private JobAdvertisedService jobAdvertisedService;
+
     @PreAuthenticated
     @GetMapping("/list")
     @Operation(summary = "获得招聘会列表")
@@ -48,10 +56,22 @@ public class AppRecruitJobFairController {
 
     @PreAuthenticated
     @PostMapping("/quit")
-    @Operation(summary = "企业将职位加入招聘会")
+    @Operation(summary = "企业将职位移除招聘会")
     public CommonResult<Boolean> quitJobFair(@RequestBody @Valid joinJobFairReqVO reqVO) {
         jobIntegrationService.quitJobFair(reqVO);
         return success(true);
     }
 
+    @PreAuthenticated
+    @GetMapping("/get/by/job-fair")
+    @Operation(summary = "根据招聘会id获取加入的职位信息")
+    public CommonResult<List<AppRecruitJobSimpleRespVO>> getByJobFairId(@RequestParam("id") Long id) {
+        List<Long> jobIdList = jobIntegrationService
+                .getJobIdListByJobFairIdAndEnterpriseId(id, LoginUserContext.getEnterpriseId());
+        if (ObjectUtil.isEmpty(jobIdList)) {
+            return success(null);
+        }
+        return success(jobAdvertisedService.getByIdsList(jobIdList));
+    }
+
 }

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

@@ -284,13 +284,14 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
      * @param enterpriseId 企业id
      * @param userId       用户id
      **/
-    default List<AppRecruitJobSimpleRespVO> list(Long enterpriseId, Long userId) {
+    default List<AppRecruitJobSimpleRespVO> list(Long enterpriseId, Long userId,List<Long> ids) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(JobAdvertisedDO.class);
         query.eq(JobAdvertisedDO::getEnterpriseId, enterpriseId);
         query.eq(JobAdvertisedDO::getUserId, userId);
         notExpireTime(query);
         query.eq(JobAdvertisedDO::getStatus, JobStatusEnum.ENABLE.getStatus());
+        query.inIfPresent(JobAdvertisedDO::getId, ids);
         query.orderByDesc(JobAdvertisedDO::getUpdateTime);
         return selectJoinList(AppRecruitJobSimpleRespVO.class, query);
     }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobFairDetailMapper.java

@@ -10,6 +10,8 @@ import com.citu.module.menduner.system.dal.dataobject.job.JobFairDetailDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 招聘会详情 Mapper
  *
@@ -21,4 +23,9 @@ public interface JobFairDetailMapper extends BaseMapperX<JobFairDetailDO> {
 
     IPage<AppFlameJobRespVO> search(Page<?> page, @Param("reqVO") AppFlameJobPageReqVO reqVO);
 
+
+    default List<JobFairDetailDO> selectByJobFairIdAndEnterpriseIdList(Long jobFairId, Long enterpriseId) {
+        return selectList(JobFairDetailDO::getJobFairId, jobFairId, JobFairDetailDO::getEnterpriseId, enterpriseId);
+    }
+
 }

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

@@ -166,6 +166,13 @@ public interface JobAdvertisedService {
      **/
     List<AppRecruitJobSimpleRespVO> getList();
 
+    /**
+     * 获取根据id集合获取对应发布的职位
+     *
+     * @return 简易职位信息的集合
+     **/
+    List<AppRecruitJobSimpleRespVO> getByIdsList(List<Long> ids);
+
     /**
      * 置顶职位
      **/

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

@@ -530,7 +530,17 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     public List<AppRecruitJobSimpleRespVO> getList() {
         return mapper.list(
                 LoginUserContext.getEnterpriseId(),
-                LoginUserContext.getUserId()
+                LoginUserContext.getUserId(),
+                null
+        );
+    }
+
+    @Override
+    public List<AppRecruitJobSimpleRespVO> getByIdsList(List<Long> ids) {
+        return mapper.list(
+                LoginUserContext.getEnterpriseId(),
+                LoginUserContext.getUserId(),
+                ids
         );
     }
 

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

@@ -117,4 +117,7 @@ public interface JobIntegrationService {
      * 火苗儿职位分页查询
      **/
     PageResult<AppFlameJobRespVO> getFlameJobPage(AppFlameJobPageReqVO reqVO);
+
+    /** 根据招聘会id和企业id获取参加招聘会的职位,返回id集合 **/
+    List<Long> getJobIdListByJobFairIdAndEnterpriseId(Long jobFairId, Long enterpriseId);
 }

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

@@ -454,4 +454,12 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         }
         return result;
     }
+
+    @Override
+    public List<Long> getJobIdListByJobFairIdAndEnterpriseId(Long jobFairId, Long enterpriseId) {
+        return jobFairDetailMapper.selectByJobFairIdAndEnterpriseIdList(jobFairId,  enterpriseId)
+                .stream()
+                .map(JobFairDetailDO::getJobId)
+                .collect(Collectors.toList());
+    }
 }

+ 11 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/UserAccountServiceImpl.java

@@ -50,16 +50,18 @@ public class UserAccountServiceImpl implements UserAccountService {
     @Override
     @DSTransactional
     public UserAccountDO createUserAccountIfAbsent(Long userId) {
-        UserAccountDO accountDO = userAccountMapper.selectByUserId(userId);
-        if (null != accountDO) {
-            return accountDO;
+        synchronized (userId) {
+            UserAccountDO accountDO = userAccountMapper.selectByUserId(userId);
+            if (null != accountDO) {
+                return accountDO;
+            }
+            UserAccountDO entity = UserAccountDO.builder()
+                    .userId(userId)
+                    .point(0)
+                    .build();
+            userAccountMapper.insert(entity);
+            return entity;
         }
-        UserAccountDO entity = UserAccountDO.builder()
-                .userId(userId)
-                .point(0)
-                .build();
-        userAccountMapper.insert(entity);
-        return entity;
     }
 
     @Override

+ 10 - 2
menduner/menduner-system-biz/src/main/resources/mapper/job/JobFairDetailMapper.xml

@@ -50,6 +50,11 @@
            (f.deleted=0 and f.end_time > now()) and d.deleted = 0 and a.deleted = 0 and e.deleted = 0
            and a.status = 0
            and (a.expire_time > now() or a.expire_time is null)
+
+           <if test="reqVO.enterpriseId != null">
+               and e.id = #{enterpriseId}
+               and f.enterprise_id = #{enterpriseId}
+           </if>
            <if test="reqVO.jobFairId != null">
                and f.id = #{jobFairId}
            </if>
@@ -68,8 +73,11 @@
            <if test="reqVO.eduType != null">
                and a.edu_type = #{eduType}
            </if>
-           <if test="reqVO.internshipDay != null">
-               and a.internship_day = #{internshipDay}
+           <if test="reqVO.hot != null">
+               and x.hot = #{hot}
+           </if>
+           <if test="reqVO.majorId != null">
+               and x.major_id = #{majorId}
            </if>
 
        </where>