InsuranceConsumer.java
3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package cn.fw.valhalla.component;
import cn.fw.angel.sdk.result.InsuOrderMqDTO;
import cn.fw.valhalla.common.utils.DateUtil;
import cn.fw.valhalla.domain.db.OriginalData;
import cn.fw.valhalla.domain.db.customer.Customer;
import cn.fw.valhalla.sdk.enums.DataTypeEnum;
import cn.fw.valhalla.service.data.CustomerService;
import cn.fw.valhalla.service.data.OriginalDataService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Objects;
/**
* @author : kurisu
* @className : InsuranceConsumer
* @description : 购买保险mq
* @date: 2021-06-15 10:08
*/
@Slf4j
@Component
@RocketMQMessageListener(topic = "insurance_purchase_result", consumerGroup = "${spring.application.name}" + "-insurance_purchase_result")
public class InsuranceConsumer implements RocketMQListener<InsuOrderMqDTO> {
private final OriginalDataService originalDataService;
private final CustomerService customerService;
@Autowired
public InsuranceConsumer(final OriginalDataService originalDataService,
final CustomerService customerService) {
this.originalDataService = originalDataService;
this.customerService = customerService;
}
@Override
public void onMessage(InsuOrderMqDTO t) {
log.info("监听保险上传记录mq: InsuOrderMqDTO=[{}]", JSONObject.toJSONString(t));
Customer customer = customerService.queryByFrameNo(t.getVin(), t.getGroupId());
if (Objects.isNull(customer)) {
log.error("处理保险MQ失败: 档案不存在");
return;
}
dealData(t, customer);
}
private void dealData(InsuOrderMqDTO t, Customer customer) {
OriginalData originalData = originalDataService.getOne(Wrappers.<OriginalData>lambdaQuery()
.eq(OriginalData::getType, DataTypeEnum.BI)
.eq(OriginalData::getDetailId, t.getOrderNo())
);
if (Objects.nonNull(originalData)) {
return;
}
originalData = new OriginalData();
if (1 == t.getInsuranceType() || 2 == t.getInsuranceType()) {
Date startTime = t.getStartTime();
String detaId = t.getOrderNo();
Timestamp insExpireTime = DateUtil.getExpiredYear(startTime, 1);
customer.setInsuranceExpires(insExpireTime);
customerService.updateById(customer);
originalData.setType(DataTypeEnum.BI);
originalData.setCustomerId(customer.getId());
originalData.setPlateNo(customer.getPlateNo());
originalData.setUserId(t.getUploaderId());
originalData.setGenerateTime(insExpireTime);
originalData.setDetailId(detaId);
originalData.setSolved(Boolean.FALSE);
originalData.setShopId(t.getShopId());
originalData.setGroupId(t.getGroupId());
originalData.setCreateTime(new Date());
originalData.setUpdateTime(new Date());
originalDataService.save(originalData);
}
}
}