From 9304aba1d5299f80db70f65a659807a6ffa1024d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 29 十月 2024 17:19:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 11 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 ccef48e..1474c95 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ycl.jxkg.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,7 +13,9 @@
 import com.ycl.jxkg.domain.entity.StudyRecord;
 import com.ycl.jxkg.domain.form.MeetForm;
 import com.ycl.jxkg.domain.query.MeetQuery;
+import com.ycl.jxkg.domain.vo.ClassesVO;
 import com.ycl.jxkg.domain.vo.MeetVO;
+import com.ycl.jxkg.domain.vo.StudentSimpleVO;
 import com.ycl.jxkg.enums.MeetStatusEnum;
 import com.ycl.jxkg.mapper.ClassesUserMapper;
 import com.ycl.jxkg.mapper.MeetMapper;
@@ -78,13 +81,12 @@
     @Override
     public Result update(MeetForm form) {
         Meet entity = baseMapper.selectById(form.getId());
-
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         BeanUtils.copyProperties(form, entity);
         // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅
         if (baseMapper.updateById(entity) > 0) {
-            this.sendMQ(entity, entity.getUpdateVersion() + 1);
+            this.sendMQ(entity, entity.getUpdateVersion());
         }
         return Result.ok("淇敼鎴愬姛");
     }
@@ -135,15 +137,21 @@
     @Override
     public Result studentPage(MeetQuery query) {
         Integer userId = webContext.getCurrentUser().getId();
-        //鏌ュ嚭瀛︾敓鎵�鍦ㄧ彮绾�
-        List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
-        if(CollectionUtils.isEmpty(classes)){
-            return Result.ok("鎮ㄦ殏鏈姞鍏ョ彮绾�");
+        if (CollectionUtils.isEmpty(query.getClassesIds())) {
+            //鏌ュ嚭瀛︾敓鎵�鍦ㄧ彮绾�
+            List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
+            if(CollectionUtils.isEmpty(classes)){
+                return Result.fail(500, "鎮ㄦ殏鏈姞鍏ョ彮绾�");
+            }
+            query.setClassesIds(classes);
         }
-        query.setClassesIds(classes);
         IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
         baseMapper.getPage(page, query);
-
+        for (MeetVO vo : page.getRecords()) {
+            if (!CollectionUtils.isEmpty(vo.getTeacherNames())) {
+                vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("銆�")));
+            }
+        }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
@@ -152,10 +160,10 @@
         Meet entity = baseMapper.selectById(form.getId());
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
-        BeanUtils.copyProperties(form, entity);
         // 涓嶄娇鐢╱pdateById杩欑鏂瑰紡锛岄伩鍏嶄箰瑙傞攣鍔犱竴銆�
         new LambdaUpdateChainWrapper<>(meetMapper)
                 .eq(Meet::getId, entity.getId())
+                .set(Meet::getStatus,form.getStatus())
                 .update();
         return Result.ok();
     }
@@ -170,15 +178,26 @@
         Meet vo = baseMapper.getById(id);
         Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
         if(vo.getStatus().equals(MeetStatusEnum.Starting.getCode())){
-            //澧炲姞瀛︾敓涓婅璁板綍
             Integer userId = webContext.getCurrentUser().getId();
+            //楠岃瘉鏈夋病鏈夐噸澶嶈繘鍏ワ紙閲嶅杩涘叆浼氬鑷翠笂璇炬鏁板澶氾級
+            QueryWrapper<MeetStudent> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("meet_id",id);
+            queryWrapper.eq("student_id",userId);
+            queryWrapper.eq("version",vo.getUpdateVersion());
+            MeetStudent one = meetStudentMapper.selectOne(queryWrapper);
+            if(one != null){
+                return Result.ok();
+            }
+            //澧炲姞瀛︾敓涓婅璁板綍
             MeetStudent meetStudent = new MeetStudent();
             meetStudent.setMeetId(id);
             meetStudent.setStudentId(userId);
             meetStudent.setCreateTime(new Date());
             meetStudent.setStartTime(vo.getStartTime());
+            meetStudent.setVersion(vo.getUpdateVersion());
+            meetStudent.setMeetName(vo.getMeetName());
             //TODO锛氭殏鏃跺鐞嗭紝鍚庢湡鑰冭檻jitsiApi
-            meetStudent.setDuringTime((vo.getEndTime().getTime()-new Date().getTime())/1000);
+            meetStudent.setDuringTime(0L);
             meetStudentMapper.insert(meetStudent);
             //瀛︾敓瀛︿範妗f鏇存柊
             StudyRecord studyRecord = studyRecordMapper.getByStudentId(userId);
@@ -211,6 +230,19 @@
         return Result.ok().data(vos);
     }
 
+    @Override
+    public Result getStudentList(Integer meetId, String keyword) {
+        List<StudentSimpleVO> studentList = baseMapper.getStudentList(meetId, keyword);
+        return Result.ok().data(studentList);
+    }
+
+    @Override
+    public Result getStudentClasses() {
+        Integer userId = webContext.getCurrentUser().getId();
+        List<ClassesVO> classes = classesUserMapper.getClassesByUserId1(userId);
+        return Result.ok().data(classes);
+    }
+
     /**
      * 鍙戦�乵q娑堟伅
      *

--
Gitblit v1.8.0