Bläddra i källkod

去除职位有效期 职位名称不允许重复 招聘会模式优化 增加企业职位搜索

DESKTOP-VAEGFGM\zqc 1 månad sedan
förälder
incheckning
b04a89aa47
23 ändrade filer med 427 tillägg och 39 borttagningar
  1. 6 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/fair/AppFairController.java
  2. 7 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java
  3. 29 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java
  4. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobExportRespVO.java
  5. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobPageReqVO.java
  6. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobRespVO.java
  7. 3 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java
  8. 125 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/JobAdvertisedFairDTO.java
  9. 19 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/AppJobFairPageReqVO.java
  10. 3 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedImportExcelVO.java
  11. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java
  12. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/PersonQueryReqVO.java
  13. 25 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/userperson/UserPersonPageReqVO.java
  14. 51 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseBrandDO.java
  15. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairMapper.java
  16. 17 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  17. 25 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java
  18. 37 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java
  19. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java
  20. 3 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java
  21. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  22. 20 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  23. 15 12
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

+ 6 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/fair/AppFairController.java

@@ -4,6 +4,7 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.system.controller.base.fair.*;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.service.fair.FairService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -32,8 +33,11 @@ public class AppFairController {
 
     @GetMapping("/list")
     @Operation(summary = "获得招聘会列表")
-    public CommonResult<List<JobFairRespVO>> list() {
-        return success(BeanUtils.toBean(fairService.list(), JobFairRespVO.class));
+    public CommonResult<PageResult<JobFairRespVO>> list(@Valid AppJobFairPageReqVO reqVO) {
+        PageResult<FairDO> pageResult = fairService.list(reqVO);
+        PageResult<JobFairRespVO> resp = BeanUtils.toBean(pageResult, JobFairRespVO.class);
+//        resp.getList().forEach(this::setTagSort);
+        return success(resp);
     }
     @GetMapping("/get")
     @Operation(summary = "获得招聘会")

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

@@ -9,9 +9,11 @@ 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.AppRecruitJobRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.joinJobFairReqVO;
+import com.citu.module.menduner.system.controller.base.fair.AppJobFairPageReqVO;
 import com.citu.module.menduner.system.controller.base.fair.JobFairNotJoinedJobPageReqVO;
 import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
 import com.citu.module.menduner.system.controller.base.fair.white.FairWhiteRespVO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
@@ -63,8 +65,11 @@ public class AppRecruitFairController {
     @PreAuthenticated
     @GetMapping("/list")
     @Operation(summary = "获得招聘会列表")
-    public CommonResult<List<JobFairRespVO>> list() {
-        return success(BeanUtils.toBean(fairService.list(), JobFairRespVO.class));
+    public CommonResult<PageResult<JobFairRespVO>> list(@Valid AppJobFairPageReqVO reqVO) {
+        PageResult<FairDO> pageResult = fairService.list(reqVO);
+        PageResult<JobFairRespVO> resp = BeanUtils.toBean(pageResult, JobFairRespVO.class);
+//        resp.getList().forEach(this::setTagSort);
+        return success(resp);
     }
 
     @PreAuthenticated

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

@@ -89,14 +89,14 @@ public class AppRecruitJobAdvertisedController {
                         .expType(ExpTypeEnum.THREE_TO_FIVE_YEARS.getType()).eduType(EducationTypeEnum.COLLEGE.getType())
                         .payFrom(BigDecimal.valueOf(10000)).payTo(BigDecimal.valueOf(15000))
                         .payUnit(PayTypeEnum.MONTH_WAGE.getType()).content("岗位职责内容").requirement("岗位要求")
-                        .expireTime(LocalDateTimeUtils.addTime(Duration.ofDays(7))).area("广州市").address("天河区")
+                        .area("广州市").address("天河区")
                         .status(JobStatusEnum.ENABLE.getStatus()).build(),
 
                 JobAdvertisedImportExcelVO.builder().name("企业副总裁").position("副总裁").type(JobTypeEnum.TEMPORARY.getType())
                         .expType(ExpTypeEnum.MORE_THAN_TWENTY_YEARS.getType()).eduType(EducationTypeEnum.DOCTOR.getType())
                         .payFrom(BigDecimal.valueOf(10000)).payTo(BigDecimal.valueOf(15000))
                         .payUnit(PayTypeEnum.DAY_WAGE.getType()).content("岗位职责内容").requirement("岗位要求")
-                        .expireTime(null).area("北京市").address("海定区")
+                        .area("北京市").address("海定区")
                         .status(JobStatusEnum.DISABLE.getStatus()).build()
         );
         // 输出
@@ -132,7 +132,7 @@ public class AppRecruitJobAdvertisedController {
     public CommonResult<List<AppRecruitJobRespVO>> getList
             (@RequestParam(value = "status", required = false) String status,
              @RequestParam(value = "exTime", defaultValue = "0") Short exTime,
-             @RequestParam(value = "exTime", defaultValue = "jobName") String  jobName) {
+             @RequestParam(value = "jobName", defaultValue = "") String  jobName) {
         // jobName 为精确检索 用于 给 前端进行判断是否存在这个岗位
         return success(jobAdvertisedService.getList(status,exTime,jobName));
     }
@@ -146,6 +146,28 @@ public class AppRecruitJobAdvertisedController {
         return success(jobAdvertisedService.save(pageReqVO));
     }
 
+
+    @PreAuthenticated
+    @PostMapping("/publish/job/enable")
+    @ApiSignature(timeout = 30)
+    @Operation(summary = "会员发布支付")
+    public CommonResult<Boolean> publishJobEnable(@RequestParam("ids") String ids) {
+        jobAdvertisedService.publishJobEnable(StrUtils.splitToLong(ids));
+        return success(true);
+    }
+
+
+    @PreAuthenticated
+    @PostMapping("/del")
+    @ApiSignature(timeout = 30)
+    @Operation(summary = "删除职位")
+    public CommonResult<Boolean> del(@RequestParam("ids") String ids) {
+        jobAdvertisedService.del(StrUtils.splitToLong(ids));
+        return success(true);
+    }
+
+
+
     @PreAuthenticated
     @PostMapping("/enable")
     @ApiSignature(timeout = 30)
@@ -164,6 +186,10 @@ public class AppRecruitJobAdvertisedController {
         return success(true);
     }
 
+
+
+
+
     @PreAuthenticated
     @PostMapping("/refresh")
     @ApiSignature(timeout = 30)

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

@@ -82,9 +82,9 @@ public class AppRecruitJobExportRespVO {
     @ExcelProperty("职位要求")
     private String requirement;
 
-    @Schema(description = "过期时间")
-    @ExcelProperty("过期时间")
-    private LocalDateTime expireTime;
+//    @Schema(description = "过期时间")
+//    @ExcelProperty("过期时间")
+//    private LocalDateTime expireTime;
 
     @Schema(description = "是否置顶")
     @ExcelProperty("是否置顶")

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

@@ -60,4 +60,6 @@ public class AppRecruitJobPageReqVO extends PageParam {
     private Long jobFairId;
 
 
+
+
 }

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

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.controller.app.recruit.job.vo;
 
 
+import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -24,4 +25,11 @@ public class AppRecruitJobRespVO extends AppRecruitJobSimpleRespVO {
 
     @Schema(description = "目前加入哪些招聘会")
     private List<Long> jobFairIds;
+
+    private String  jobFairName;
+
+
+    private Long  jobFairId;
+
+
 }

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

@@ -27,6 +27,7 @@ public class AppRecruitJobSaveReqVO {
 //    @NotNull(message = "{1_100_004_003}")
     private Long areaId;
 
+
     @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
     @NotEmpty(message = "{1_100_025_003}")
     private String name;
@@ -65,8 +66,8 @@ public class AppRecruitJobSaveReqVO {
     @Schema(description = "职位要求")
     private String requirement;
 
-    @Schema(description = "过期时间")
-    private LocalDateTime expireTime;
+//    @Schema(description = "过期时间")
+//    private LocalDateTime expireTime;
 
     @Schema(description = "工作地址")
     private String address;

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

@@ -0,0 +1,125 @@
+package com.citu.module.menduner.system.controller.app.recruit.job.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.citu.module.menduner.system.enums.job.JobStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobTypeEnum;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+public class JobAdvertisedFairDTO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 职位来源(0职位管理|1众聘职位|2招聘会)
+     */
+    private String source;
+    /**
+     * 来源方关联id
+     */
+    private Long bizId;
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 发布用户id
+     */
+    private Long userId;
+    /**
+     * 工作地区
+     */
+    private Long areaId;
+    /**
+     * 职位名称
+     */
+    private String name;
+    /**
+     * 职位类型id
+     */
+    private Long positionId;
+    /**
+     * 招聘类型
+     * <p>
+     * 枚举 {@link JobTypeEnum 对应的类}
+     */
+    private String type;
+    /**
+     * 工作经验
+     */
+    private String expType;
+    /**
+     * 学历要求
+     */
+    private String eduType;
+    /**
+     * 薪酬from
+     */
+    private BigDecimal payFrom;
+    /**
+     * 薪酬to
+     */
+    private BigDecimal payTo;
+    /**
+     * 薪酬单位
+     */
+    private String payUnit;
+    /**
+     * 职位标签
+     */
+    private List<String> tagList;
+    /**
+     * 职位内容
+     */
+    private String content;
+    /**
+     * 职位要求
+     */
+    private String requirement;
+    /**
+     * 过期时间
+     */
+    private LocalDateTime expireTime;
+    /**
+     * 是否置顶
+     */
+    private Boolean top;
+    /**
+     * 工作地址
+     */
+    private String address;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 维度
+     */
+    private String latitude;
+    /**
+     * 是否雇佣 (众聘)
+     */
+    private Boolean hire;
+    /**
+     * 雇佣金额
+     */
+    private Long hirePrice;
+    /**
+     * 刷新时间
+     */
+    private LocalDateTime refreshTime;
+    /**
+     * 职位状态
+     * <p>
+     * 枚举 {@link JobStatusEnum 对应的类}
+     */
+    private String status;
+}

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

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+
+public class AppJobFairPageReqVO extends PageParam {
+
+
+    @Schema(description = "状态(0正常 1停用)")
+    private String status;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

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

@@ -4,7 +4,6 @@ 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 com.citu.framework.excel.core.convert.LocalDateTimeStringConverter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -79,9 +78,9 @@ public class JobAdvertisedImportExcelVO {
     @ExcelProperty("职位要求")
     private String requirement;
 
-    @Schema(description = "过期时间")
-    @ExcelProperty(value = "过期时间(长期有效不用填)")
-    private LocalDateTime expireTime;
+//    @Schema(description = "过期时间")
+//    @ExcelProperty(value = "过期时间(长期有效不用填)")
+//    private LocalDateTime expireTime;
 
     @Schema(description = "工作地址")
     @ExcelProperty("工作地址")

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

@@ -75,6 +75,11 @@ public class JobAdvertisedSimpleRespVO {
     @Schema(description = "区域")
     private AreaWebRespVO area;
 
+    @Schema(description = "企业id")
+    private Long enterpriseId;
+
+
+
 
 
 }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/PersonQueryReqVO.java

@@ -28,4 +28,12 @@ public class PersonQueryReqVO extends PageParam {
 
     @Schema(description = "学历", example = "2")
     private String eduType;
+
+    @Schema(description = "工作城市")
+    private List<Long> workAreaIds;
+
+    @Schema(description = "酒店品牌")
+    private String brand;
+
+
 }

+ 25 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/userperson/UserPersonPageReqVO.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
@@ -23,4 +24,28 @@ public class UserPersonPageReqVO extends PersonInfoPageReqVO {
     @Schema(description = "vip过期时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] vipExpireDate;
+
+    @Schema(description = "内容关键字")
+    private String content;
+
+    @Schema(description = "职位类型id")
+    private List<Long> positionIds;
+
+    @Schema(description = "地区id")
+    private List<Long> areaIds;
+
+    @Schema(description = "工作经验", example = "1")
+    private String expType;
+
+    @Schema(description = "学历", example = "2")
+    private String eduType;
+
+    @Schema(description = "工作城市")
+    private List<Long> workAreaIds;
+
+    @Schema(description = "酒店品牌")
+    private String brand;
+
+
+
 }

+ 51 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseBrandDO.java

@@ -0,0 +1,51 @@
+package com.citu.module.menduner.system.dal.dataobject.enterprise;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.citu.framework.tenant.core.db.TenantBaseDO;
+import lombok.*;
+
+
+import java.time.LocalDateTime;
+
+@TableName("mde_enterprise_brand")
+@KeySequence("mde_enterprise_brand") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnterpriseBrandDO  extends TenantBaseDO {
+
+
+
+
+
+        private Long id;
+
+        private String enterpriseEnName;
+
+        private String enterpriseCnName;
+
+        private String brandEnName;
+
+        private String brandCnName;
+
+        private String creator;
+
+        private LocalDateTime createTime;
+
+        private String updater;
+
+        private LocalDateTime updateTime;
+
+        private Boolean deleted;
+
+        private Long tenantId;
+
+
+
+
+
+}

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairMapper.java

@@ -4,6 +4,7 @@ package com.citu.module.menduner.system.dal.mysql.fair;
 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.module.menduner.system.controller.base.fair.AppJobFairPageReqVO;
 import com.citu.module.menduner.system.controller.base.fair.JobFairPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
@@ -34,6 +35,15 @@ public interface FairMapper extends BaseMapperX<FairDO> {
                 .orderByDesc(FairDO::getId));
     }
 
+    default PageResult<FairDO> selectAppPage(AppJobFairPageReqVO reqVO,LocalDate date) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<FairDO>()
+                .eq(null!=reqVO.getStatus(),FairDO::getStatus,reqVO.getStatus())
+                .ge(MendunerStatusEnum.ENABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
+                .le(MendunerStatusEnum.DISABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
+                .orderByDesc(FairDO::getEndTime)
+        );
+    }
+
 
     default List<FairDO> selectListByEnterpriseId(Long enterpriseId) {
         MPJLambdaWrapper<FairDO> wrapper = new MPJLambdaWrapper<>();

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

@@ -28,6 +28,7 @@ import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailResp
 import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairDetailDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
@@ -288,8 +289,11 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     /**
      * 根据查询条件、企业id、用户id 分页查询职位信息
      **/
-    default PageResult<JobAdvertisedDO> selectPage(AppRecruitJobPageReqVO reqVO, Long enterpriseId, Long userId) {
+    default PageResult<AppRecruitJobRespVO> selectPage(AppRecruitJobPageReqVO reqVO, Long enterpriseId, Long userId) {
+
+
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<JobAdvertisedDO>()
+//                .selectAssociation(JobAdvertisedDO::)
                 .eqIfPresent(JobAdvertisedDO::getAreaId, reqVO.getAreaId())
                 .likeIfPresent(JobAdvertisedDO::getName, reqVO.getName())
                 .eqIfPresent(JobAdvertisedDO::getPositionId, reqVO.getPositionId())
@@ -302,11 +306,19 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
                 .eqIfPresent(JobAdvertisedDO::getUserId, userId)
                 .betweenIfPresent(JobAdvertisedDO::getCreateTime, reqVO.getCreateTime());
 
+        query.selectAll(JobAdvertisedDO.class);
+        query.selectAs(FairDetailDO::getJobFairId,  AppRecruitJobRespVO::getJobFairId);
+        query.selectAs(FairDO::getTitle, AppRecruitJobRespVO::getJobFairName);
         query.notIn(CollUtil.isNotEmpty(reqVO.getFilterNotJobIds()),JobAdvertisedDO::getId, reqVO.getFilterNotJobIds());
         query.leftJoin(FairDetailDO.class, FairDetailDO::getJobId, JobAdvertisedDO::getId);
-        if(null==reqVO.getJobFairId()){
+        query.leftJoin(FairDO.class,  FairDO::getId,FairDetailDO::getJobFairId);
+
+
+        if(Long.valueOf(0L).equals(reqVO.getJobFairId())){
             query.isNull(FairDetailDO::getJobId);
-        }else{
+        }
+
+        if(null!=reqVO.getJobFairId() &&  !Long.valueOf(0L).equals(reqVO.getJobFairId())){
             query.eq(FairDetailDO::getJobFairId, reqVO.getJobFairId());
         }
         if (reqVO.isHasExpiredData()) {
@@ -316,7 +328,8 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
             notExpireTime(query);
         }
         query.orderByDesc(JobAdvertisedDO::getTop, JobAdvertisedDO::getUpdateTime);
-        return selectPage(reqVO, query);
+
+        return  selectJoinPage(reqVO,AppRecruitJobRespVO.class,query);
     }
 
     /**

+ 25 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java

@@ -15,6 +15,7 @@ import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.PersonRecommendQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBrandDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
@@ -196,17 +197,35 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
         JoinHelper.filterBlockedUsersForEnterprise(query, PersonInfoDO::getUserId, enterpriseId);
         // 求职意向
         query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
+//        query.leftJoin(WorkExpDO.class, WorkExpDO::getUserId, PersonInfoDO::getUserId);
+//        query.leftJoin(EnterpriseBrandDO.class, on->
+//            on.eq(EnterpriseBrandDO::getEnterpriseCnName,WorkExpDO::getEnterpriseName)
+//                    .or(qw->qw.eq(EnterpriseBrandDO::getEnterpriseEnName,WorkExpDO::getEnterpriseName))
+//         );
+//        query.leftJoin(WorkExpDO.class, WorkExpDO::getUserId, PersonInfoDO::getUserId);
+
+//        query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, WorkExpDO::getUserId);
 
         // 并且条件
         query.inIfPresent(PersonInfoDO::getAreaId, reqVO.getAreaIds());
         query.eqIfPresent(PersonInfoDO::getEduType, reqVO.getEduType());
         query.eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
         query.eqIfPresent(PersonInfoDO::getType, reqVO.getType());
+        query.and(StringUtils.isNotBlank(reqVO.getBrand()),
+                qw->qw.
+                        apply("enterprise_name in (  select   enterprise_name  from mde_enterprise_brand ,mde_work_exp " +
+                                " where " +
+                                " (mde_work_exp.enterprise_name =  mde_enterprise_brand.enterprise_en_name  or  mde_work_exp.enterprise_name =  mde_enterprise_brand.enterprise_cn_name) and " +
+                                "mde_enterprise_brand.brand = {0}",reqVO.getBrand()) );
 
         query.and(CollUtil.isNotEmpty(reqVO.getPositionIds()) || CollUtil.isNotEmpty(reqVO.getAreaIds()) ,qw->qw.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
                 .or(CollUtil.isNotEmpty(reqVO.getPositionIds()))
                 .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobInterestedDO::getWorkAreaId, reqVO.getAreaIds()))
         ;
+        query.in(null!=reqVO.getWorkAreaIds()&& !reqVO.getWorkAreaIds().isEmpty(),JobInterestedDO::getWorkAreaId, reqVO.getWorkAreaIds());
+
+
+
         // 2504414 反馈BUG后修改前代码
 //        query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
 //                .or()
@@ -225,6 +244,12 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
         query.and(StringUtils.isNotEmpty(reqVO.getContent()),
                 qw->qw.like(PersonInfoDO::getName, reqVO.getContent())
                         .or()
+//                        .like(EnterpriseBrandDO::getBrandCnName,reqVO.getContent())
+//                        .or()
+//                        .like(EnterpriseBrandDO::getBrandEnName,reqVO.getContent())
+//                        .or()
+                        .like(WorkExpDO::getEnterpriseName,reqVO.getContent())
+                        .or()
                         .like(PersonInfoDO::getTagList, reqVO.getContent())
                         .or()
                         .like(PersonInfoDO::getAdvantage, reqVO.getContent())

+ 37 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.dal.mysql.user;
 
+import cn.hutool.core.collection.CollUtil;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -16,10 +17,12 @@ import com.citu.module.menduner.system.controller.base.userperson.UserPersonResp
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
+import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.logger.LoginLogDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.util.RecruitAnalysisUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;
@@ -56,6 +59,7 @@ public interface MdeUserMapper extends BaseMapperX<MdeUserDO> {
         query.selectAssociation(MdeUserDO.class, UserPersonRespVO::getUser);
         query.selectAssociation(PersonInfoDO.class, UserPersonRespVO::getPerson);
         query.leftJoin(PersonInfoDO.class, on -> on.eq(PersonInfoDO::getUserId, MdeUserDO::getId));
+        query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
 
         query.likeRightIfExists(PersonInfoDO::getName, reqVO.getName())
                 .likeRightIfExists(PersonInfoDO::getForeignName, reqVO.getForeignName());
@@ -72,12 +76,45 @@ public interface MdeUserMapper extends BaseMapperX<MdeUserDO> {
                 .eqIfExists(PersonInfoDO::getEduType, reqVO.getEduType())
                 .eqIfExists(PersonInfoDO::getExpType, reqVO.getExpType());
 
+
         query.eqIfExists(MdeUserDO::getVipFlag, reqVO.getVipFlag());
         query.eqIfExists(MdeUserDO::getStatus, reqVO.getStatus());
         query.likeRightIfExists(MdeUserDO::getId, reqVO.getUserId());
         query.betweenIfPresent2(MdeUserDO::getVipExpireDate, reqVO.getVipExpireDate());
         query.betweenIfPresent2(MdeUserDO::getCreateTime, reqVO.getCreateTime());
 
+
+        // 并且条件
+        query.in(null!=reqVO.getAreaIds() && !reqVO.getAreaIds().isEmpty(),PersonInfoDO::getAreaId, reqVO.getAreaIds());
+        query.eq(StringUtils.isNotEmpty(reqVO.getEduType()),PersonInfoDO::getEduType, reqVO.getEduType());
+        query.eq(StringUtils.isNotEmpty(reqVO.getExpType()),PersonInfoDO::getExpType, reqVO.getExpType());
+        query.eq(StringUtils.isNotEmpty(reqVO.getType()),PersonInfoDO::getType, reqVO.getType());
+        query.and(CollUtil.isNotEmpty(reqVO.getPositionIds()) || CollUtil.isNotEmpty(reqVO.getAreaIds()) , qw->qw.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
+                .or(CollUtil.isNotEmpty(reqVO.getPositionIds()))
+                .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobInterestedDO::getWorkAreaId, reqVO.getAreaIds()))
+
+        ;
+
+        query.and(StringUtils.isNotBlank(reqVO.getBrand()),
+                qw->qw.
+                        apply("enterprise_name in (  select   enterprise_name  from mde_enterprise_brand ,mde_work_exp " +
+                                " where " +
+                                " (mde_work_exp.enterprise_name =  mde_enterprise_brand.enterprise_en_name  or  mde_work_exp.enterprise_name =  mde_enterprise_brand.enterprise_cn_name) and " +
+                                "mde_enterprise_brand.brand = {0}",reqVO.getBrand()) );
+
+        query.in(null!=reqVO.getWorkAreaIds()&& !reqVO.getWorkAreaIds().isEmpty(),JobInterestedDO::getWorkAreaId, reqVO.getWorkAreaIds());
+
+        query.and(StringUtils.isNotEmpty(reqVO.getContent()),
+                qw->qw.like(PersonInfoDO::getName, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getTagList, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getAdvantage, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getForeignName, reqVO.getContent())
+        );
+
+
         query.orderByDesc(PersonInfoDO::getUpdateTime);
         return selectJoinPage(reqVO, UserPersonRespVO.class, query);
     }

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

@@ -69,7 +69,7 @@ public interface FairService {
     /**
      * 获取在时间段内的招聘会列表
      **/
-    List<FairDO> list();
+    PageResult<FairDO> list(AppJobFairPageReqVO reqVO);
 
     /**
      * 获取在时间段内的招聘会列表

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

@@ -201,13 +201,10 @@ public class FairServiceImpl implements FairService {
     }
 
     @Override
-    public List<FairDO> list() {
+    public PageResult<FairDO> list(AppJobFairPageReqVO reqVO) {
         LocalDate date = LocalDate.now();
-        return fairMapper.selectList(new LambdaQueryWrapperX<FairDO>()
-                .eq(FairDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
-                .ge(FairDO::getEndTime, date.atStartOfDay())
-                .orderByDesc(FairDO::getEndTime)
-        );
+        PageResult<FairDO> fairDOPageResult = fairMapper.selectAppPage(reqVO, date);
+        return fairDOPageResult;
     }
 
     @Override

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

@@ -174,6 +174,11 @@ public interface JobAdvertisedService {
      **/
     void enable(List<Long> ids);
 
+    void publishJobEnable(List<Long> longs);
+
+    void del(List<Long> longs);
+
+
     /**
      * 开启职位并修改过期时间
      **/

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

@@ -413,6 +413,26 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         }
     }
 
+    @Override
+    public void publishJobEnable(List<Long> ids) {
+        for (Long id : ids) {
+            JobAdvertisedDO job = get(id);
+            if (JobStatusEnum.ENABLE.getStatus().equals(job.getStatus())) {
+                // 已经是开启状态
+                throw exception(MDE_JOB_ADVERTISED_STATUS_ENABLE_ERROR);
+            }
+            boolean exec = job.getCreateTime().isAfter(LocalDateTime.of(2024, 11, 1, 0, 0));
+            vipEntitlementCheckAspect.deductQuota(VipEntitlementCheck.OPERATE_PUBLISH_JOB, exec);
+            enable(job);
+        }
+    }
+
+    public void del(List<Long> ids){
+        for (Long id : ids) {
+            mapper.deleteById(id);
+        }
+    }
+
     void enable(JobAdvertisedDO job) {
         job.setStatus(JobStatusEnum.ENABLE.getStatus());
         job.setUpdateTime(LocalDateTime.now());

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

@@ -334,7 +334,7 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
 
     @Override
     public PageResult<AppRecruitJobRespVO> page(AppRecruitJobPageReqVO reqVO) {
-        PageResult<JobAdvertisedDO> pageResult = jobAdvertisedMapper.selectPage(reqVO,
+        PageResult<AppRecruitJobRespVO> pageResult = jobAdvertisedMapper.selectPage(reqVO,
                 LoginUserContext.getEnterpriseId(), LoginUserContext.getUserId());
         if (CollUtil.isEmpty(pageResult.getList())) {
             return PageResult.empty();
@@ -343,36 +343,39 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
 
         // 获取招聘职位id集合
         List<Long> jobIdList
-                = pageResult.getList().stream().map(JobAdvertisedDO::getId).collect(Collectors.toList());
+                = pageResult.getList().stream().map(AppRecruitJobRespVO::getId).collect(Collectors.toList());
 
         // 查询简历
         List<JobCvRelDO> jobCvRelDOList = jobCvRelMapper.selectByJobIdListAndFilterUnfit(jobIdList);
 
-        pageResult.getList().forEach(job -> {
-            AppRecruitJobRespVO respVO = JobAdvertisedConvert.INSTANCE.convert4(job);
+        pageResult.getList().forEach(respVO -> {
+//            AppRecruitJobRespVO respVO = JobAdvertisedConvert.INSTANCE.convert4(job);
             Long count = jobCvRelDOList.stream()
-                    .filter(jobCvRelDO -> jobCvRelDO.getJobId().equals(job.getId())).count();
+                    .filter(jobCvRelDO -> jobCvRelDO.getJobId().equals(respVO.getId())).count();
             respVO.setCount(count);
             // 计算多少天后到期
-            if (null != job.getExpireTime()) {
+            if (null != respVO.getExpireTime()) {
                 respVO.setExpireDay(ChronoUnit.DAYS.between(LocalDateTime.now(), respVO.getExpireTime()));
             }
 
-            boolean isVip = enterpriseMapper.checkVip(job.getEnterpriseId());
+            boolean isVip = enterpriseMapper.checkVip(respVO.getEnterpriseId());
             // 如果不是企业vip并且发布职位的job.createTime超过了24小时则不可编辑,respVO.setEdit(false);
-            if (!isVip && JobStatusEnum.ENABLE.getStatus().equals(job.getStatus())
-                    && ChronoUnit.HOURS.between(job.getCreateTime(), LocalDateTime.now()) > 24) {
+            if (!isVip && JobStatusEnum.ENABLE.getStatus().equals(respVO.getStatus())
+                    && ChronoUnit.HOURS.between(respVO.getCreateTime(), LocalDateTime.now()) > 24) {
                 respVO.setEdit(false);
             } else {
                 respVO.setEdit(true);
             }
 
-            if (null != job.getAreaId()) {
-                respVO.setArea(areaService.getById(job.getAreaId()));
+            if (null != respVO.getAreaId()) {
+                respVO.setArea(areaService.getById(respVO.getAreaId()));
             }
 
             // 查询当前职位加入哪些招聘会
-            respVO.setJobFairIds(fairDetailMapper.selectJobFairIdsByJobId(job.getId()));
+            respVO.setJobFairIds(fairDetailMapper.selectJobFairIdsByJobId(respVO.getId()));
+//            fairDetailMapper.select
+
+//            fairDetailMapper.selectById()
 
             list.add(respVO);