From d0ba0324430a0010ecf47e5cc0e4df609d586cfd Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 19 六月 2024 11:31:00 +0800
Subject: [PATCH] 会议学生端查询

---
 src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java                  |    5 ++
 src/main/java/com/ycl/jxkg/controller/student/MeetController.java |    2 
 src/main/java/com/ycl/jxkg/service/MeetService.java               |    2 +
 src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java            |    2 +
 src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java          |    8 ++++
 src/main/resources/mapper/MeetMapper.xml                          |   18 ++++++---
 src/main/java/com/ycl/jxkg/controller/admin/MeetController.java   |    1 
 src/main/java/com/ycl/jxkg/domain/form/MeetForm.java              |   12 +++--
 src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java      |   42 ++++++++++++++++++---
 src/main/java/com/ycl/jxkg/domain/entity/Meet.java                |    4 +-
 src/main/resources/mapper/ClassesUserMapper.xml                   |    5 ++
 11 files changed, 80 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java b/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
index a8bf54c..04bc5f7 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
@@ -72,4 +72,5 @@
     public Result list() {
         return meetService.all();
     }
+
 }
diff --git a/src/main/java/com/ycl/jxkg/controller/student/MeetController.java b/src/main/java/com/ycl/jxkg/controller/student/MeetController.java
index 9445374..fc55f09 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/MeetController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/MeetController.java
@@ -33,7 +33,7 @@
     @GetMapping("/page")
     @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
     public Result page(MeetQuery query) {
-        return meetService.page(query);
+        return meetService.studentPage(query);
     }
 
     @GetMapping("/{id}")
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/Meet.java b/src/main/java/com/ycl/jxkg/domain/entity/Meet.java
index 6bb8085..bde6ee1 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/Meet.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/Meet.java
@@ -27,9 +27,9 @@
     /** 浼氳灏侀潰 */
     private String meetCover;
 
-    @TableField("student_ids")
+    @TableField("classed_id")
     /** 瀛︾敓id */
-    private String studentIds;
+    private Integer classesId;
 
     @TableField("create_user")
     /** 鍒涘缓浜� */
diff --git a/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java b/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
index 95c1c59..ff451ce 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
@@ -1,11 +1,13 @@
 package com.ycl.jxkg.domain.form;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.jxkg.group.Update;
 import com.ycl.jxkg.group.Add;
 import com.ycl.jxkg.domain.base.AbsForm;
 import com.ycl.jxkg.domain.entity.Meet;
 import org.springframework.beans.BeanUtils;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import org.springframework.lang.NonNull;
 import io.swagger.annotations.ApiModel;
@@ -29,24 +31,24 @@
     @ApiModelProperty("浼氳鍚�")
     private String meetName;
 
-    @NotBlank(message = "浼氳灏侀潰涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("浼氳灏侀潰")
     private String meetCover;
 
-    @NotBlank(message = "瀛︾敓id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
-    @ApiModelProperty("瀛︾敓id")
-    private List<Integer> studentIds;
+    @NotNull(message = "鐝骇id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐝骇id")
+    private Integer classesId;
 
-    @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
     @ApiModelProperty("鍒涘缓浜�")
     private Integer createUser;
 
     @NotNull(message = "寮�濮嬫椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
     @ApiModelProperty("寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     @NotNull(message = "缁撴潫鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     @NotNull(message = "鐘舵�� 0/1/2 鏈紑濮�/杩涜涓�/宸茬粨鏉熶笉鑳戒负绌�", groups = {Add.class, Update.class})
diff --git a/src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java b/src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java
index 140677e..53ebb51 100644
--- a/src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java
+++ b/src/main/java/com/ycl/jxkg/domain/query/MeetQuery.java
@@ -18,5 +18,7 @@
 @Data
 @ApiModel(value = "Meet鏌ヨ", description = "浼氳琛ㄦ煡璇�")
 public class MeetQuery extends AbsQuery {
+    private List<Integer> classesIds;
+    private Integer teacherId;
 }
 
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java b/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
index a6a3c59..657f4d6 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
@@ -1,5 +1,6 @@
 package com.ycl.jxkg.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.jxkg.domain.base.AbsVo;
 import com.ycl.jxkg.domain.entity.Meet;
 
@@ -27,15 +28,17 @@
     private String meetCover;
 
     /** 瀛︾敓id */
-    private List<Integer> studentIds;
+    private Integer classesId;
 
     /** 鍒涘缓浜� */
     private Integer createUser;
 
     /** 寮�濮嬫椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     /** 缁撴潫鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     /** 鐘舵�� 0/1/2 鏈紑濮�/杩涜涓�/宸茬粨鏉� */
diff --git a/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
index 9922c55..ec6adfd 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -41,4 +41,12 @@
      * @return
      */
     List<StudentExamInfoVO> getClassesUserList(@Param("classesId") Integer classesId);
+
+    /**
+     * 鏍规嵁瀛︾敓鑾峰彇鐝骇
+     *
+     * @param userId
+     * @return
+     */
+    List<Integer> getClassesByUserId(@Param("userId") Integer userId);
 }
diff --git a/src/main/java/com/ycl/jxkg/service/MeetService.java b/src/main/java/com/ycl/jxkg/service/MeetService.java
index e1791fd..82d4bbc 100644
--- a/src/main/java/com/ycl/jxkg/service/MeetService.java
+++ b/src/main/java/com/ycl/jxkg/service/MeetService.java
@@ -62,4 +62,6 @@
      * @return
      */
     Result all();
+
+    Result studentPage(MeetQuery query);
 }
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 137c43d..50ba3f3 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.jxkg.context.WebContext;
 import com.ycl.jxkg.domain.entity.Meet;
+import com.ycl.jxkg.mapper.ClassesUserMapper;
 import com.ycl.jxkg.mapper.MeetMapper;
 import com.ycl.jxkg.service.MeetService;
 import com.ycl.jxkg.base.Result;
@@ -12,11 +13,14 @@
 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.PageUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -35,7 +39,9 @@
     private final MeetMapper meetMapper;
 
     @Autowired
-    protected WebContext webContext;
+    private WebContext webContext;
+    @Autowired
+    private ClassesUserMapper classesUserMapper;
     /**
      * 娣诲姞
      * @param form
@@ -44,7 +50,6 @@
     @Override
     public Result add(MeetForm form) {
         Meet entity = MeetForm.getEntityByForm(form, null);
-        entity.setStudentIds(JSONArray.toJSONString(form.getStudentIds()));
         entity.setCreateUser(webContext.getCurrentUser().getId());
         baseMapper.insert(entity);
         return Result.ok("娣诲姞鎴愬姛");
@@ -62,7 +67,6 @@
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         BeanUtils.copyProperties(form, entity);
-        entity.setStudentIds(JSONArray.toJSONString(form.getStudentIds()));
         baseMapper.updateById(entity);
         return Result.ok("淇敼鎴愬姛");
     }
@@ -90,13 +94,14 @@
     }
 
     /**
-     * 鍒嗛〉鏌ヨ
+     * 鏁欏笀鍒嗛〉鏌ヨ
      * @param query
      * @return
      */
     @Override
     public Result page(MeetQuery query) {
-
+        Integer id = webContext.getCurrentUser().getId();
+        query.setTeacherId(id);
         IPage<Meet> page = PageUtil.getPage(query, Meet.class);
         baseMapper.getPage(page, query);
         List<Meet> records = page.getRecords();
@@ -104,7 +109,32 @@
         for (Meet record : records) {
             MeetVO meetVO = new MeetVO();
             BeanUtils.copyProperties(record,meetVO);
-            meetVO.setStudentIds(JSONArray.parseArray(record.getStudentIds(),Integer.class));
+            vos.add(meetVO);
+        }
+        return Result.ok().data(vos).total(page.getTotal());
+    }
+
+    /**
+     * 瀛︾敓鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result studentPage(MeetQuery query) {
+        Integer userId = webContext.getCurrentUser().getId();
+        //鏌ュ嚭瀛︾敓鎵�鍦ㄧ彮绾�
+        List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
+        if(CollectionUtils.isEmpty(classes)){
+            return Result.ok("鎮ㄦ殏鏈姞鍏ョ彮绾�");
+        }
+        query.setClassesIds(classes);
+        IPage<Meet> page = PageUtil.getPage(query, Meet.class);
+        baseMapper.getPage(page, query);
+        List<Meet> records = page.getRecords();
+        List<MeetVO> vos = new ArrayList<>();
+        for (Meet record : records) {
+            MeetVO meetVO = new MeetVO();
+            BeanUtils.copyProperties(record,meetVO);
             vos.add(meetVO);
         }
         return Result.ok().data(vos).total(page.getTotal());
diff --git a/src/main/resources/mapper/ClassesUserMapper.xml b/src/main/resources/mapper/ClassesUserMapper.xml
index 23d914e..3d1df1e 100644
--- a/src/main/resources/mapper/ClassesUserMapper.xml
+++ b/src/main/resources/mapper/ClassesUserMapper.xml
@@ -70,4 +70,9 @@
             TCU.deleted = 0
     </select>
 
+    <select id="getClassesByUserId" resultType="java.lang.Integer">
+        select classes_id
+        from t_classes_user
+        where user_id = #{userId} and deleted = 0
+    </select>
 </mapper>
diff --git a/src/main/resources/mapper/MeetMapper.xml b/src/main/resources/mapper/MeetMapper.xml
index ef9c874..aeef8be 100644
--- a/src/main/resources/mapper/MeetMapper.xml
+++ b/src/main/resources/mapper/MeetMapper.xml
@@ -6,7 +6,7 @@
     <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.Meet">
         <result column="meet_name" property="meetName" />
         <result column="meet_cover" property="meetCover" />
-        <result column="student_ids" property="studentIds" />
+        <result column="classes_id" property="classesId" />
         <result column="create_user" property="createUser" />
         <result column="start_time" property="startTime" />
         <result column="end_time" property="endTime" />
@@ -18,7 +18,7 @@
         SELECT
             TM.meet_name,
             TM.meet_cover,
-            TM.student_ids,
+            TM.classes_id,
             TM.create_user,
             TM.start_time,
             TM.end_time,
@@ -35,7 +35,7 @@
         SELECT
             TM.meet_name,
             TM.meet_cover,
-            TM.student_ids,
+            TM.classes_id,
             TM.create_user,
             TM.start_time,
             TM.end_time,
@@ -44,9 +44,15 @@
         FROM
             t_meet TM
         <where>
-            TM.deleted = 0
-            <if test="studentId!=null">
-                and
+            TM.deleted = 0 and TC.deleted = 0
+            <if test="query.classesIds !=null">
+                and classes_id in
+                <foreach collection="query.classesIds" item="classesId" open="(" close=")" separator=",">
+                    #{classesId}
+                </foreach>
+            </if>
+            <if test="query.teacherId!=null">
+                and create_user = #{query.teacherId}
             </if>
         </where>
     </select>

--
Gitblit v1.8.0