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