From 182c1cde1f4507d12eb4b6b1a4ffd24a2be6c93b Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 10 七月 2024 11:48:40 +0800
Subject: [PATCH] 初始化缓存

---
 src/main/java/com/ycl/jxkg/rabbitmq/consumer/Consumer.java |   44 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/rabbitmq/consumer/Consumer.java b/src/main/java/com/ycl/jxkg/rabbitmq/consumer/Consumer.java
index d99cb71..600c842 100644
--- a/src/main/java/com/ycl/jxkg/rabbitmq/consumer/Consumer.java
+++ b/src/main/java/com/ycl/jxkg/rabbitmq/consumer/Consumer.java
@@ -1,23 +1,51 @@
 package com.ycl.jxkg.rabbitmq.consumer;
 
+import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.ycl.jxkg.domain.entity.Exam;
+import com.ycl.jxkg.domain.entity.Meet;
+import com.ycl.jxkg.enums.general.ExamStatusEnum;
+import com.ycl.jxkg.mapper.ExamMapper;
+import com.ycl.jxkg.mapper.MeetMapper;
+import com.ycl.jxkg.rabbitmq.msg.ExamStatusMsg;
+import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg;
+import lombok.RequiredArgsConstructor;
+import org.springframework.amqp.core.Message;
 import org.springframework.amqp.rabbit.annotation.*;
 import org.springframework.stereotype.Component;
+
+import java.util.Objects;
 
 /**
  * @author锛歺p
  * @date锛�2024/6/28 11:51
  */
 @Component
+@RequiredArgsConstructor
 public class Consumer {
 
+    private final ExamMapper examMapper;
+    private final MeetMapper meetMapper;
     /**
      * 鑰冭瘯鐘舵�佹洿鏂扮殑娑堣垂鑰�
      *
      * @param message
      */
     @RabbitListener(queues = "examDlxQueue")
-    public void examStatusAdjustConsumer(String message){
-        System.out.println(message);
+    public void examStatusAdjustConsumer(Message message){
+        ExamStatusMsg examStatusMsg = JSON.parseObject(message.getBody(), ExamStatusMsg.class);
+        Exam exam = examMapper.selectById(examStatusMsg.getExamId());
+        if (Objects.nonNull(exam) && examStatusMsg.getVersion().equals(exam.getUpdateVersion())) {
+            // 涓嶄娇鐢╱pdateById杩欑鏂瑰紡锛岄伩鍏嶄箰瑙傞攣鍔犱竴銆�
+            // 鍥犱负鑰冭瘯鐨勭姸鎬佷慨鏀逛竴鍏遍渶瑕佸彂閫佷袱鏉℃秷鎭�備笉鑳藉洜涓虹涓�鏉℃秷鎭敼浜嗕箣鍚庯紝绗簩鏉℃秷鎭洜涓轰箰瑙傞攣鍔犱竴浜嗚�屾棤娉曚慨鏀�
+            new LambdaUpdateChainWrapper<>(examMapper)
+                    .eq(Exam::getId, exam.getId())
+                    .eq(Exam::getStatus, ExamStatusEnum.ING.equals(examStatusMsg.getTargetStatus()) ?  // 瑕佹敼涓鸿繘琛屼腑閭d箞鍘熸湰搴旇鏄湭寮�濮嬨�傜粨鏉熷垯闇�瑕佹槸杩涜涓�
+                            ExamStatusEnum.NOT_START :
+                            ExamStatusEnum.FINISHED.equals(examStatusMsg.getTargetStatus()) ? ExamStatusEnum.ING : null)
+                    .set(Exam::getStatus, examStatusMsg.getTargetStatus())
+                    .update();
+        }
     }
 
 
@@ -27,7 +55,15 @@
      * @param message
      */
     @RabbitListener(queues = "meetDlxQueue")
-    public void meetConsumer(String message){
-        System.out.println(message);
+    public void meetConsumer(Message message){
+        MeetStatusMsg meetStatusMsg = JSON.parseObject(message.getBody(), MeetStatusMsg.class);
+        Meet meet = meetMapper.selectById(meetStatusMsg.getMeetId());
+        if (Objects.nonNull(meet) && meetStatusMsg.getVersion().equals(meet.getUpdateVersion())) {
+            // 涓嶄娇鐢╱pdateById杩欑鏂瑰紡锛岄伩鍏嶄箰瑙傞攣鍔犱竴銆�
+            new LambdaUpdateChainWrapper<>(meetMapper)
+                    .eq(Meet::getId, meet.getId())
+                    .set(Meet::getStatus, meetStatusMsg.getMeetStatus())
+                    .update();
+        }
     }
 }

--
Gitblit v1.8.0