From ae58bdb65b5c0f052801a291a7b48916bc2d5730 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 04 七月 2024 13:57:09 +0800
Subject: [PATCH] 会议mq代码(待测试)

---
 src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java |   67 ++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
index 77687d9..147057f 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -1,30 +1,31 @@
 package com.ycl.jxkg.service.impl;
 
-import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.base.SystemCode;
 import com.ycl.jxkg.context.WebContext;
 import com.ycl.jxkg.domain.entity.Meet;
+import com.ycl.jxkg.domain.form.MeetForm;
+import com.ycl.jxkg.domain.query.MeetQuery;
+import com.ycl.jxkg.domain.vo.MeetVO;
 import com.ycl.jxkg.enums.MeetStatusEnum;
 import com.ycl.jxkg.mapper.ClassesUserMapper;
 import com.ycl.jxkg.mapper.MeetMapper;
+import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg;
+import com.ycl.jxkg.rabbitmq.product.Producer;
 import com.ycl.jxkg.service.MeetService;
-import com.ycl.jxkg.base.Result;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.jxkg.domain.form.MeetForm;
-import com.ycl.jxkg.domain.vo.MeetVO;
-import com.ycl.jxkg.domain.query.MeetQuery;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.stereotype.Service;
-import lombok.RequiredArgsConstructor;
+import com.ycl.jxkg.utils.DateTimeUtil;
 import com.ycl.jxkg.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -44,6 +45,7 @@
     private WebContext webContext;
     @Autowired
     private ClassesUserMapper classesUserMapper;
+    private final Producer producer;
     /**
      * 娣诲姞
      * @param form
@@ -54,7 +56,11 @@
         Meet entity = MeetForm.getEntityByForm(form, null);
         entity.setStatus(MeetStatusEnum.Wait.getCode());
         entity.setCreateUser(webContext.getCurrentUser().getId());
-        baseMapper.insert(entity);
+        // 璁剧疆涔愯閿佺増鏈�
+        entity.setUpdateVersion(0);
+        if (baseMapper.insert(entity) > 0) {
+            this.sendMQ(entity, 0);
+        }
         return Result.ok("娣诲姞鎴愬姛");
     }
 
@@ -70,7 +76,10 @@
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         BeanUtils.copyProperties(form, entity);
-        baseMapper.updateById(entity);
+        // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅
+        if (baseMapper.updateById(entity) > 0) {
+            this.sendMQ(entity, entity.getUpdateVersion() + 1);
+        }
         return Result.ok("淇敼鎴愬姛");
     }
 
@@ -132,6 +141,19 @@
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
+    @Override
+    public Result start(MeetForm form) {
+        Meet entity = baseMapper.selectById(form.getId());
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        // 涓嶄娇鐢╱pdateById杩欑鏂瑰紡锛岄伩鍏嶄箰瑙傞攣鍔犱竴銆�
+        new LambdaUpdateChainWrapper<>(meetMapper)
+                .eq(Meet::getId, entity.getId())
+                .update();
+        return Result.ok();
+    }
+
     /**
      * 鏍规嵁id鏌ユ壘
      * @param id
@@ -160,4 +182,19 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    /**
+     * 鍙戦�乵q娑堟伅
+     *
+     * @param entity 鑰冭瘯瀹炰綋绫�
+     * @param version 涔愯閿佺増鏈�
+     */
+    public void sendMQ(Meet entity, Integer version) {
+        MeetStatusMsg finishedMsg = new MeetStatusMsg();
+        finishedMsg.setVersion(version);
+        finishedMsg.setMeetId(entity.getId());
+        finishedMsg.setMeetStatus(MeetStatusEnum.End.getCode());
+        producer.meetMsg(entity.getId(), JSON.toJSONString(finishedMsg), DateTimeUtil.getTwoTimeDiffMS(entity.getEndTime(), new Date()));
+    }
+
 }

--
Gitblit v1.8.0