Bladeren bron

1、增加招聘会门票相关逻辑

rayson 4 maanden geleden
bovenliggende
commit
eae26644c8
24 gewijzigde bestanden met toevoegingen van 484 en 13 verwijderingen
  1. 2 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 2 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/TradeOrderTypeMq.java
  3. 2 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/order/TradeOrderTypeEnum.java
  4. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/fair/FairController.java
  5. 18 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairAdmissionReqVO.java
  6. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairRespVO.java
  7. 0 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairSaveReqVO.java
  8. 34 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionPageReqVO.java
  9. 44 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionRespVO.java
  10. 33 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionSaveReqVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/order/AppTradeOrderCreateReqVO.java
  12. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/order/AppTradeOrderGetReqVO.java
  13. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/order/TradeOrderCreateReqVO.java
  14. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/order/TradeOrderPageReqVO.java
  15. 50 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairAdmissionDO.java
  16. 11 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairDO.java
  17. 36 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairAdmissionMapper.java
  18. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java
  19. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/EnterpriseUserMemberConsumer.java
  20. 72 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/FairAdmissionConsumer.java
  21. 63 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairAdmissionService.java
  22. 76 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairAdmissionServiceImpl.java
  23. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java
  24. 12 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java

+ 2 - 1
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -612,7 +612,7 @@ public interface ErrorCodeConstants {
     ErrorCode JOB_FAIR_NO_PERMISSION = new ErrorCode(1_100_056_005, "您没有权限参加该招聘会");
 
     ErrorCode JOB_FAIR_NOT_START = new ErrorCode(1_100_056_006, "招聘会时间还未开始");
-
+    ErrorCode JOB_FAIR_ADMISSION_NOT_EXISTS = new ErrorCode(1_100_056_007, "招聘会门票权益不存在");
     // ========== 招聘职位扩展 1_100_057_000 ==========
     ErrorCode JOB_EXTEND_JOB_ID_NOT_NULL = new ErrorCode(1_100_057_001, "招聘职位id不能为空");
 
@@ -649,4 +649,5 @@ public interface ErrorCodeConstants {
 
     // ========== 学生实习记录 1_100_066_000 ==========
     ErrorCode STUDENT_PRACTICE_RECORD_NOT_EXISTS = new ErrorCode(1_100_066_001, "学生实习记录不存在");
+
 }

+ 2 - 1
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/TradeOrderTypeMq.java

@@ -35,5 +35,6 @@ public class TradeOrderTypeMq {
     /** 企业会员套餐订单 **/
     public static final String ENTERPRISE_MEMBER_ORDER_TOPIC = "ENTERPRISE_USER_MEMBER_ORDER_TOPIC";
 
-
+    /** 企业招聘会门票订单 **/
+    public static final String JOB_FAIR_TICKET_ORDER_TOPIC = "JOB_FAIR_TICKET_ORDER_TOPIC";
 }

+ 2 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/order/TradeOrderTypeEnum.java

@@ -19,6 +19,8 @@ public enum TradeOrderTypeEnum {
     // 用户会员套餐
     USER_MEMBER("3", "会员套餐", TradeOrderTypeMq.USER_MEMBER_ORDER_TOPIC),
     ENTERPRISE_USER_MEMBER("4", "企业会员套餐", TradeOrderTypeMq.ENTERPRISE_MEMBER_ORDER_TOPIC),
+    // 招聘会门票
+    JOB_FAIR_TICKET("5", "招聘会门票", TradeOrderTypeMq.JOB_FAIR_TICKET_ORDER_TOPIC),
     ;
 
     /**

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

@@ -148,5 +148,11 @@ public class FairController {
         return success(fairService.getJobFairDetailPage(reqVO));
     }
 
+    @PostMapping("/update/admission")
+    @Operation(summary = "招聘会门票设置")
+    public CommonResult<Boolean> updateAdmission(@Valid @RequestBody JobFairAdmissionReqVO reqVO) {
+        fairService.updateAdmission(reqVO);
+        return success(true);
+    }
 
 }

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

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 招聘会门票新增/修改 Request VO")
+@Data
+public class JobFairAdmissionReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27706")
+    private Long id;
+
+    @Schema(description = "门票价格")
+    private Long admissionPrice;
+
+    @Schema(description = "购买门票赠送的允许发布职位数量")
+    private Integer allowedJobNum;
+}

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

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.base.fair;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairTagContent;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -110,6 +112,14 @@ public class JobFairRespVO {
     @ExcelProperty("什么等级的vip可以参与")
     private List<String> vipRequire;
 
+    @Schema(description = "门票价格")
+    @ExcelProperty("门票价格")
+    private Long admissionPrice;
+
+    @Schema(description = "购买门票赠送的允许发布职位数量")
+    @ExcelProperty("购买门票赠送的允许发布职位数量")
+    private Integer allowedJobNum;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

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

@@ -1,7 +1,6 @@
 package com.citu.module.menduner.system.controller.base.fair;
 
 
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairTagContent;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 34 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionPageReqVO.java

@@ -0,0 +1,34 @@
+package com.citu.module.menduner.system.controller.base.fair.admission;
+
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 招聘会门票权益分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class FairAdmissionPageReqVO extends PageParam {
+
+    @Schema(description = "招聘会id", example = "6236")
+    private Long jobFairId;
+
+    @Schema(description = "企业id", example = "17350")
+    private Long enterpriseId;
+
+    @Schema(description = "用户id", example = "7780")
+    private Long userId;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 44 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionRespVO.java

@@ -0,0 +1,44 @@
+package com.citu.module.menduner.system.controller.base.fair.admission;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 招聘会门票权益 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class FairAdmissionRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20496")
+    @ExcelProperty("id")
+    private Long id;
+
+    @Schema(description = "招聘会id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6236")
+    @ExcelProperty("招聘会id")
+    private Long jobFairId;
+
+    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17350")
+    @ExcelProperty("企业id")
+    private Long enterpriseId;
+
+    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7780")
+    @ExcelProperty("用户id")
+    private Long userId;
+
+    @Schema(description = "现在允许发布的职位数量", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("现在允许发布的职位数量")
+    private Integer num;
+
+    @Schema(description = "原本允许发布的职位数量", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("原本允许发布的职位数量")
+    private Integer originNum;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 33 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/admission/FairAdmissionSaveReqVO.java

@@ -0,0 +1,33 @@
+package com.citu.module.menduner.system.controller.base.fair.admission;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 招聘会门票权益新增/修改 Request VO")
+@Data
+public class FairAdmissionSaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20496")
+    private Long id;
+
+    @Schema(description = "招聘会id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6236")
+    private Long jobFairId;
+
+    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17350")
+    private Long enterpriseId;
+
+    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7780")
+    private Long userId;
+
+    @Schema(description = "现在允许发布的职位数量", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "现在允许发布的职位数量不能为空")
+    private Integer num;
+
+    @Schema(description = "原本允许发布的职位数量", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "原本允许发布的职位数量不能为空")
+    private Integer originNum;
+
+}

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

@@ -24,7 +24,7 @@ public class AppTradeOrderCreateReqVO {
     private Long price;
 
     @NotBlank(message = "{1_100_046_015}")
-    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户会员-14天|4用户会员-30天|5用户会员-30天|6用户会员-90天|7用户会员-365天",
+    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户套餐|4企业套餐|5招聘会门票",
             requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private String type;
 

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

@@ -13,6 +13,6 @@ public class AppTradeOrderGetReqVO {
     @NotNull(message = "商品编号不能为空")
     private Long spuId;
 
-    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户套餐|4企业套餐", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户套餐|4企业套餐|5招聘会门票", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private String type;
 }

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

@@ -21,7 +21,7 @@ public class TradeOrderCreateReqVO {
     @NotNull(message = "{1_099_000_006}")
     private Long userId;
 
-    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户会员-14天|4用户会员-30天|5用户会员-30天|6用户会员-90天|7用户会员-365天",
+    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户套餐|4企业套餐|5招聘会门票",
             requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private String type;
 

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

@@ -30,7 +30,7 @@ public class TradeOrderPageReqVO extends PageParam {
     @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Long userId;
 
-    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @Schema(description = "订单类型 0平台订单|1求职端订单|2招聘端订单|3用户套餐|4企业套餐|5招聘会门票", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private String type;
 
     @Schema(description = "订单来源")

+ 50 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairAdmissionDO.java

@@ -0,0 +1,50 @@
+package com.citu.module.menduner.system.dal.dataobject.fair;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.citu.framework.tenant.core.db.TenantBaseDO;
+import lombok.*;
+
+/**
+ * 招聘会门票权益 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_fair_admission")
+@KeySequence("mde_fair_admission_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class FairAdmissionDO extends TenantBaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 招聘会id
+     */
+    private Long jobFairId;
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 现在允许发布的职位数量
+     */
+    private Integer num;
+    /**
+     * 原本允许发布的职位数量
+     */
+    private Integer originNum;
+
+}

+ 11 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/fair/FairDO.java

@@ -115,7 +115,7 @@ public class FairDO extends TenantBaseDO {
     /**
      * 求职者简历允许投递数量
      */
-    @TableField( updateStrategy = FieldStrategy.ALWAYS)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private Integer cvRelNum;
     /**
      * 状态 0开启 1关闭
@@ -127,4 +127,14 @@ public class FairDO extends TenantBaseDO {
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> vipRequire;
 
+    /**
+     * 门票价格
+     */
+    private Long admissionPrice;
+
+    /**
+     * 购买门票赠送的允许发布职位数量
+     */
+    private Integer allowedJobNum;
+
 }

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

@@ -0,0 +1,36 @@
+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.admission.FairAdmissionPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairAdmissionDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 招聘会门票权益 Mapper
+ *
+ * @author Rayson
+ */
+@Mapper
+public interface FairAdmissionMapper extends BaseMapperX<FairAdmissionDO> {
+
+    default PageResult<FairAdmissionDO> selectPage(FairAdmissionPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<FairAdmissionDO>()
+                .eqIfPresent(FairAdmissionDO::getJobFairId, reqVO.getJobFairId())
+                .eqIfPresent(FairAdmissionDO::getEnterpriseId, reqVO.getEnterpriseId())
+                .eqIfPresent(FairAdmissionDO::getUserId, reqVO.getUserId())
+                .betweenIfPresent(FairAdmissionDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(FairAdmissionDO::getId));
+    }
+
+
+    default FairAdmissionDO selectByJobFairId(Long jobFairId) {
+        return selectOne(FairAdmissionDO::getJobFairId, jobFairId);
+    }
+
+    default FairAdmissionDO selectByEnterpriseIdAndJobFairId(Long enterpriseId,Long jobFairId) {
+        return selectOne(FairAdmissionDO::getEnterpriseId, enterpriseId,FairAdmissionDO::getJobFairId,jobFairId);
+    }
+}

+ 4 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java

@@ -114,7 +114,7 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
             query.in(EnterpriseDO::getIndustryId, reqVO.getIndustryId());
         }
         query.groupBy(FairDetailDO::getEnterpriseId);
-
+        query.orderByDesc(EnterpriseDO::getVipFlag);
         return selectJoinPage(reqVO, JobFairEnterpriseRespVO.class, query);
     }
 
@@ -139,6 +139,9 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
         if (null != reqVO.getPositionId()) {
             query.in(JobAdvertisedDO::getPositionId, reqVO.getPositionId());
         }
+        query.orderByDesc(EnterpriseDO::getVipFlag);
+        query.orderByDesc(FairDetailDO::getUpdateTime);
+
         return selectJoinPage(reqVO, JobFairJobInfoRespVO.class, query);
     }
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/EnterpriseUserMemberConsumer.java

@@ -64,7 +64,7 @@ public class EnterpriseUserMemberConsumer implements RocketMQListener<Long> {
                 .hireJob(packageDO.getHireJob() || entitlement.getHireJob())
                 .build()
         );
-        stopWatch.prettyPrint();
+        log.info(stopWatch.prettyPrint());
     }
 
 }

+ 72 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/FairAdmissionConsumer.java

@@ -0,0 +1,72 @@
+package com.citu.module.menduner.system.mq.consumer;
+
+import com.citu.module.menduner.system.dal.dataobject.fair.FairAdmissionDO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
+import com.citu.module.menduner.system.dal.dataobject.order.TradeOrderDO;
+import com.citu.module.menduner.system.dal.mysql.fair.FairAdmissionMapper;
+import com.citu.module.menduner.system.dal.mysql.fair.FairMapper;
+import com.citu.module.menduner.system.enums.TradeOrderTypeMq;
+import com.citu.module.menduner.system.service.fair.FairService;
+import com.citu.module.menduner.system.service.order.TradeOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StopWatch;
+
+import javax.annotation.Resource;
+
+/**
+ * 企业用户购买招聘会门票完成支付 消费
+ **/
+@Slf4j
+@Component
+@RocketMQMessageListener(
+        topic = TradeOrderTypeMq.JOB_FAIR_TICKET_ORDER_TOPIC,
+        consumerGroup = TradeOrderTypeMq.JOB_FAIR_TICKET_ORDER_TOPIC + "_CONSUMER"
+)
+public class FairAdmissionConsumer implements RocketMQListener<Long> {
+
+    @Resource
+    private TradeOrderService tradeOrderService;
+
+    @Resource
+    private FairService fairService;
+
+    @Resource
+    private FairAdmissionMapper fairAdmissionMapper;
+
+    @Override
+    public void onMessage(Long orderId) {
+        StopWatch stopWatch = new StopWatch("购买招聘会门票[" + orderId + "]");
+        stopWatch.start();
+        TradeOrderDO order = tradeOrderService.getOrder(orderId);
+        if (null == order) {
+            log.error("找不到订单信息[{}]", orderId);
+            return;
+        }
+        FairDO fair = fairService.getJobFair(order.getSpuId());
+        if (null == fair) {
+            log.error("找不到招聘会信息[{}]", order.getSpuId());
+            return;
+        }
+        FairAdmissionDO fairAdmission =
+                fairAdmissionMapper.selectByEnterpriseIdAndJobFairId(order.getEnterpriseId(), fair.getId());
+        if(null == fairAdmission) {
+            // 保存
+            fairAdmissionMapper.insert(FairAdmissionDO.builder()
+                    .userId(order.getUserId())
+                    .enterpriseId(order.getEnterpriseId())
+                    .jobFairId(fair.getId())
+                    .originNum(fair.getAllowedJobNum())
+                    .num(fair.getAllowedJobNum())
+                    .build()
+            );
+        }else {
+            fairAdmission.setOriginNum(fairAdmission.getOriginNum() + fair.getAllowedJobNum());
+            fairAdmission.setNum(fairAdmission.getNum() + fair.getAllowedJobNum());
+            fairAdmissionMapper.updateById(fairAdmission);
+        }
+        log.info(stopWatch.prettyPrint());
+    }
+}

+ 63 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairAdmissionService.java

@@ -0,0 +1,63 @@
+package com.citu.module.menduner.system.service.fair;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.base.fair.admission.FairAdmissionPageReqVO;
+import com.citu.module.menduner.system.controller.base.fair.admission.FairAdmissionSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairAdmissionDO;
+
+import javax.validation.Valid;
+
+/**
+ * 招聘会门票权益 Service 接口
+ *
+ * @author Rayson
+ */
+public interface FairAdmissionService {
+
+    /**
+     * 创建招聘会门票权益
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createFairAdmission(@Valid FairAdmissionSaveReqVO createReqVO);
+
+    /**
+     * 更新招聘会门票权益
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateFairAdmission(@Valid FairAdmissionSaveReqVO updateReqVO);
+
+    /**
+     * 删除招聘会门票权益
+     *
+     * @param id 编号
+     */
+    void deleteFairAdmission(Long id);
+
+    /**
+     * 获得招聘会门票权益
+     *
+     * @param id 编号
+     * @return 招聘会门票权益
+     */
+    FairAdmissionDO getFairAdmission(Long id);
+
+    /**
+     * 获得招聘会门票权益分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 招聘会门票权益分页
+     */
+    PageResult<FairAdmissionDO> getFairAdmissionPage(FairAdmissionPageReqVO pageReqVO);
+
+    /**
+     * 获得招聘会门票权益
+     *
+     * @param jobFairId 招聘会id
+     * @return 招聘会门票权益
+     */
+    FairAdmissionDO get(Long jobFairId);
+}

+ 76 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairAdmissionServiceImpl.java

@@ -0,0 +1,76 @@
+package com.citu.module.menduner.system.service.fair;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.module.menduner.system.controller.base.fair.admission.FairAdmissionPageReqVO;
+import com.citu.module.menduner.system.controller.base.fair.admission.FairAdmissionSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairAdmissionDO;
+import com.citu.module.menduner.system.dal.mysql.fair.FairAdmissionMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.JOB_FAIR_ADMISSION_NOT_EXISTS;
+
+/**
+ * 招聘会门票权益 Service 实现类
+ *
+ * @author Rayson
+ */
+@Service
+@Validated
+public class FairAdmissionServiceImpl implements FairAdmissionService {
+
+    @Resource
+    private FairAdmissionMapper fairAdmissionMapper;
+
+    @Override
+    public Long createFairAdmission(FairAdmissionSaveReqVO createReqVO) {
+        // 插入
+        FairAdmissionDO fairAdmission = BeanUtils.toBean(createReqVO, FairAdmissionDO.class);
+        fairAdmissionMapper.insert(fairAdmission);
+        // 返回
+        return fairAdmission.getId();
+    }
+
+    @Override
+    public void updateFairAdmission(FairAdmissionSaveReqVO updateReqVO) {
+        // 校验存在
+        validateFairAdmissionExists(updateReqVO.getId());
+        // 更新
+        FairAdmissionDO updateObj = BeanUtils.toBean(updateReqVO, FairAdmissionDO.class);
+        fairAdmissionMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteFairAdmission(Long id) {
+        // 校验存在
+        validateFairAdmissionExists(id);
+        // 删除
+        fairAdmissionMapper.deleteById(id);
+    }
+
+    private void validateFairAdmissionExists(Long id) {
+        if (fairAdmissionMapper.selectById(id) == null) {
+            throw exception(JOB_FAIR_ADMISSION_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public FairAdmissionDO getFairAdmission(Long id) {
+        return fairAdmissionMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<FairAdmissionDO> getFairAdmissionPage(FairAdmissionPageReqVO pageReqVO) {
+        return fairAdmissionMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public FairAdmissionDO get(Long jobFairId) {
+        return fairAdmissionMapper.selectByJobFairId(jobFairId);
+    }
+}

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

@@ -138,5 +138,8 @@ public interface FairService {
     PageResult<JobFairJobInfoRespVO> getJobFairJobInfoPage(JobFairJobInfoPageReqVO reqVO);
 
 
-
+    /**
+     * 招聘会门票设置
+     **/
+    void updateAdmission(JobFairAdmissionReqVO reqVO);
 }

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

@@ -105,7 +105,7 @@ public class FairServiceImpl implements FairService {
         List<EnterpriseEntitlementDO> entitlementList = entitlementMapper.selectListByJobFairIsTrue();
         List<Long> enterpriseIdList = entitlementList.stream()
                 .map(EnterpriseEntitlementDO::getEnterpriseId).collect(Collectors.toList());
-        if(CollUtil.isNotEmpty(enterpriseIdList)) {
+        if (CollUtil.isNotEmpty(enterpriseIdList)) {
             // 加入白名单
             addWhiteList(jobFair.getId(), enterpriseIdList);
         }
@@ -183,7 +183,7 @@ public class FairServiceImpl implements FairService {
 //                .selectByJobFairIdAndEnterpriseId(jobFairId, LoginUserContext.getEnterpriseId());
         FairWhiteDO white = fairWhiteMapper
                 .selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseDO.getId());
-        if (null ==white) {
+        if (null == white) {
             throw exception(JOB_FAIR_NO_PERMISSION);
         }
 
@@ -417,4 +417,14 @@ public class FairServiceImpl implements FairService {
         });
         return result;
     }
+
+    @Override
+    public void updateAdmission(JobFairAdmissionReqVO reqVO) {
+        FairDO fair = validateJobFairExists(reqVO.getId());
+        fairMapper.update(fair, new LambdaUpdateWrapper<FairDO>()
+                .eq(FairDO::getId, reqVO.getId())
+                .set(FairDO::getAdmissionPrice, reqVO.getAdmissionPrice())
+                .set(FairDO::getAllowedJobNum, reqVO.getAllowedJobNum())
+        );
+    }
 }