|
@@ -0,0 +1,72 @@
|
|
|
|
|
+package com.ydtech.modules.order.orderThread;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
|
+import com.ydtech.constants.RabbitMqEnum;
|
|
|
|
|
+import com.ydtech.modules.order.entity.po.InsOrderPushMsg;
|
|
|
|
|
+import com.ydtech.modules.order.entity.vo.PushDataVo;
|
|
|
|
|
+import com.ydtech.modules.order.service.InsOrderPushMsgService;
|
|
|
|
|
+import org.springframework.amqp.core.Message;
|
|
|
|
|
+import org.springframework.amqp.core.MessageProperties;
|
|
|
|
|
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
|
|
|
+
|
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.UUID;
|
|
|
|
|
+
|
|
|
|
|
+import static org.springframework.amqp.core.MessageProperties.CONTENT_TYPE_TEXT_PLAIN;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @version
|
|
|
|
|
+ * @author: hxl
|
|
|
|
|
+ * @Date: 2024/11/5 15:50
|
|
|
|
|
+ * @Description: 处理失败订单的的线程池
|
|
|
|
|
+ */
|
|
|
|
|
+public class OrderFailRunnableThread implements Runnable {
|
|
|
|
|
+
|
|
|
|
|
+ private RabbitTemplate rabbitTemplate;
|
|
|
|
|
+
|
|
|
|
|
+ private ArrayList<String> message =new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ private InsOrderPushMsgService insOrderPushMsgService;
|
|
|
|
|
+
|
|
|
|
|
+ public OrderFailRunnableThread(RabbitTemplate rabbitTemplate, ArrayList<String> message, InsOrderPushMsgService insOrderPushMsgService) {
|
|
|
|
|
+ this.rabbitTemplate = rabbitTemplate;
|
|
|
|
|
+ this.message = message;
|
|
|
|
|
+ this.insOrderPushMsgService = insOrderPushMsgService;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public OrderFailRunnableThread() {
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public OrderFailRunnableThread(InsOrderPushMsgService insOrderPushMsgService, ArrayList<String> message) {
|
|
|
|
|
+ this.message = message;
|
|
|
|
|
+ this.insOrderPushMsgService = insOrderPushMsgService;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void run() {
|
|
|
|
|
+ //发送数据
|
|
|
|
|
+ this.message.forEach(item ->{
|
|
|
|
|
+ //修改执行相应业务逻辑
|
|
|
|
|
+ MessageProperties messageProperties = new MessageProperties();
|
|
|
|
|
+ messageProperties.setMessageId(UUID.randomUUID().toString());
|
|
|
|
|
+ messageProperties.setContentType(CONTENT_TYPE_TEXT_PLAIN);
|
|
|
|
|
+ messageProperties.setContentEncoding("UTF-8");
|
|
|
|
|
+ Message message_cj = new Message(item.getBytes(StandardCharsets.UTF_8), messageProperties);
|
|
|
|
|
+ PushDataVo pushDataVo = JSON.parseObject(item, PushDataVo.class);
|
|
|
|
|
+ //推送
|
|
|
|
|
+ InsOrderPushMsg insOrderPushMsg = new InsOrderPushMsg(null, pushDataVo.getInsAreaCompany().getId(), "0", new Date(), pushDataVo.toString());
|
|
|
|
|
+ try{
|
|
|
|
|
+ //更新狀態
|
|
|
|
|
+ insOrderPushMsgService.save(insOrderPushMsg);
|
|
|
|
|
+ this.rabbitTemplate.convertAndSend(RabbitMqEnum.ORDER_EXCHANGE_FLAL.getCode(), RabbitMqEnum.ORDER_ROUTINGKEY_FLAL.getCode(), message_cj);
|
|
|
|
|
+ }catch(Exception e){
|
|
|
|
|
+ e.getStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|