|
@@ -1,23 +1,55 @@
|
1
|
1
|
package org.dromara.stream.consumer;
|
2
|
2
|
|
|
3
|
+import cn.hutool.json.JSONObject;
|
|
4
|
+import cn.hutool.json.JSONUtil;
|
|
5
|
+import lombok.AllArgsConstructor;
|
|
6
|
+import lombok.RequiredArgsConstructor;
|
3
|
7
|
import lombok.extern.slf4j.Slf4j;
|
|
8
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
4
|
9
|
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
|
10
|
+import org.dromara.backstage.api.RemoteConsumeService;
|
|
11
|
+import org.dromara.backstage.api.domain.bo.RemoteConsumptionBo;
|
|
12
|
+import org.dromara.common.core.domain.R;
|
|
13
|
+import org.dromara.common.core.enums.CreditTypeEnum;
|
|
14
|
+import org.dromara.stream.domain.bo.ConsumeRecordBo;
|
|
15
|
+import org.dromara.stream.domain.bo.ConsumptionBo;
|
|
16
|
+import org.dromara.stream.domain.bo.KafkaMessage;
|
5
|
17
|
import org.springframework.kafka.annotation.KafkaListener;
|
6
|
18
|
import org.springframework.stereotype.Component;
|
7
|
19
|
|
|
20
|
+import java.math.BigDecimal;
|
|
21
|
+import java.util.Date;
|
|
22
|
+
|
8
|
23
|
/**
|
9
|
24
|
* @author xbhog
|
10
|
25
|
* @date 2024/05/19 18:04
|
11
|
26
|
**/
|
12
|
27
|
@Slf4j
|
13
|
28
|
@Component
|
|
29
|
+@RequiredArgsConstructor
|
14
|
30
|
public class KafkaNormalConsumer {
|
15
|
|
-
|
|
31
|
+ @DubboReference
|
|
32
|
+ private final RemoteConsumeService remoteConsumeService;
|
16
|
33
|
//默认获取最后一条消息
|
17
|
|
- @KafkaListener(topics = "test-topic", groupId = "test-group-id")
|
|
34
|
+ @KafkaListener(topics = "eventBus", groupId = "test-group-id")
|
18
|
35
|
public void timiKafka(ConsumerRecord<String, String> record) {
|
19
|
36
|
Object key = record.key();
|
20
|
37
|
Object value = record.value();
|
|
38
|
+ KafkaMessage<?> kmsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
|
|
39
|
+ JSONObject data = JSONUtil.parseObj(kmsg.getBody());
|
|
40
|
+ RemoteConsumptionBo recordBo = new RemoteConsumptionBo();
|
|
41
|
+ recordBo.setConsumeMoney((BigDecimal) data.get("consumeValue"));
|
|
42
|
+ recordBo.setConsumeDate((Date) data.get("consumeDate"));
|
|
43
|
+ recordBo.setCardNo((Long) data.get("cardNo"));
|
|
44
|
+ recordBo.setFactoryId((Long) data.get("factoryFixId"));
|
|
45
|
+ recordBo.setTermNo((Long) data.get("termNo"));
|
|
46
|
+ recordBo.setTermRecordId((Long) data.get("termRecordID"));
|
|
47
|
+ recordBo.setRealName((String) data.get("xm"));
|
|
48
|
+ recordBo.setUserNumb((String) data.get("userNumb"));
|
|
49
|
+ recordBo.setRecordStatus((Long) data.get("posRecordState"));
|
|
50
|
+ recordBo.setCreditType(CreditTypeEnum.TERM_CONSUME);
|
|
51
|
+ R<Object> result = remoteConsumeService.receiveConsumeOriginalRecord(recordBo);
|
|
52
|
+
|
21
|
53
|
log.info("【消费者】received the message key {},value:{}", key, value);
|
22
|
54
|
}
|
23
|
55
|
|