|
@@ -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());
|
|
|
+ }
|
|
|
+}
|