Pārlūkot izejas kodu

查寻老师的群成员列表

zouxuan 3 gadi atpakaļ
vecāks
revīzija
60762f9d8b

+ 6 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java

@@ -1,11 +1,12 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 即时通讯群组(ImGroup)表数据库访问层
@@ -15,6 +16,9 @@ import java.util.Map;
  */
 public interface ImGroupDao extends BaseMapper<ImGroup> {
 
-    List<ImGroup> findAll(Map<String, Object> params);
+    List<ImGroup> findAll(@Param("imGroupDto") ImGroupSearchDto imGroupSearchDto);
+
+    //获取指定用户的群聊列表
+    List<ImGroupResultDto> queryTeacherFun(@Param("imGroupDto") ImGroupSearchDto imGroupSearchDto);
 }
 

+ 19 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -2,9 +2,10 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 即时通讯群组(ImGroup)表服务接口
@@ -49,6 +50,22 @@ public interface ImGroupService extends IService<ImGroup> {
     */
     void syncGroupMemberNum(String groupId) throws Exception;
 
-    List<ImGroup> queryAll(Map<String, Object> params);
+    /**
+    * @description: 获取群列表
+     * @param imGroupSearchDto
+    * @return java.util.List<com.yonge.cooleshow.biz.dal.entity.ImGroup>
+    * @author zx
+    * @date 2022/4/27 10:23
+    */
+    List<ImGroup> queryAll(ImGroupSearchDto imGroupSearchDto);
+
+    /**
+    * @description: 获取指定用户创建的群聊
+     * @param imGroupSearchDto
+    * @return java.util.List<com.yonge.cooleshow.biz.dal.entity.ImGroupResultDto>
+    * @author zx
+    * @date 2022/4/27 10:56
+    */
+    List<ImGroupResultDto> queryTeacherFun(ImGroupSearchDto imGroupSearchDto);
 }
 

+ 11 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -1,24 +1,21 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
 import com.yonge.cooleshow.biz.dal.dao.*;
-import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
-import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
-import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.cooleshow.common.page.PageInfo;
 import io.rong.models.Result;
 import io.rong.models.group.GroupMember;
 import io.rong.models.group.GroupModel;
@@ -30,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 即时通讯群组(ImGroup)表服务实现类
@@ -175,8 +171,15 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     }
 
     @Override
-    public List<ImGroup> queryAll(Map<String, Object> params) {
-        return baseMapper.findAll(params);
+    public List<ImGroup> queryAll(ImGroupSearchDto imGroupSearchDto) {
+        return baseMapper.findAll(imGroupSearchDto);
+    }
+
+    @Override
+    public List<ImGroupResultDto> queryTeacherFun(ImGroupSearchDto imGroupSearchDto) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        imGroupSearchDto.setUserId(sysUser.getId());
+        return baseMapper.queryTeacherFun(imGroupSearchDto);
     }
 }
 

+ 32 - 5
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -38,14 +38,41 @@
         SELECT ig.* FROM im_group ig
         LEFT JOIN im_group_member igm ON igm.group_id_ = ig.id_
         <where>
-            <if test="userId != null">
-                AND igm.user_id_ = #{userId}
+            <if test="imGroupDto.type != null and imGroupDto.type != ''">
+                AND ig.type_ = #{imGroupDto.type}
             </if>
-            <if test="search != null and search != ''">
-                AND (ig.id_ = #{search} OR
-                ig.name_ LIKE CONCAT('%',#{search},'%') OR ig.introduce_ LIKE CONCAT('%',#{search},'%'))
+            <if test="imGroupDto.createUserId != null">
+                AND ig.create_by_ = #{imGroupDto.createUserId}
+            </if>
+            <if test="imGroupDto.userId != null">
+                AND igm.user_id_ = #{imGroupDto.userId}
+            </if>
+            <if test="imGroupDto.search != null and imGroupDto.search != ''">
+                AND (ig.id_ = #{imGroupDto.search} OR
+                ig.name_ LIKE CONCAT('%',#{imGroupDto.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{imGroupDto.search},'%'))
             </if>
         </where>
         ORDER BY id_ DESC
     </select>
+    <resultMap id="ImGroupResultDto" type="com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto" extends="BaseResultMap">
+        <result property="existFlag" column="existFlag"/>
+        <result property="hasWaitAuditFlag" column="hasWaitAuditFlag"/>
+    </resultMap>
+    <select id="queryTeacherFun" resultMap="ImGroupResultDto">
+        SELECT ig.*,
+               CASE WHEN igm.id_ IS NULL THEN 0 ELSE 1 END existFlag,
+               CASE WHEN igma.id_ IS NULL THEN 0 ELSE 1 END hasWaitAuditFlag
+        FROM im_group ig
+                 LEFT JOIN im_group_member igm ON ig.id_ = igm.group_id_ AND igm.user_id_ = #{imGroupDto.userId}
+                 LEFT JOIN im_group_member_audit igma ON igma.group_id_ = ig.id_ AND igma.audit_status_ = 'AUDITING'
+        WHERE ig.create_by_ = #{imGroupDto.createUserId}
+        <if test="imGroupDto.type != null and imGroupDto.type != ''">
+            AND ig.type_ = #{imGroupDto.type}
+        </if>
+        <if test="imGroupDto.search != null and imGroupDto.search != ''">
+            AND (ig.id_ = #{imGroupDto.search} OR
+            ig.name_ LIKE CONCAT('%',#{imGroupDto.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{imGroupDto.search},'%'))
+        </if>
+        GROUP BY ig.id_
+    </select>
 </mapper>

+ 13 - 7
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.teacher.controller;
 
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
+import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -15,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.List;
-import java.util.Map;
+import java.util.Objects;
 
 /**
  * 即时通讯群组(ImGroup)表控制层
@@ -58,15 +60,19 @@ public class ImGroupController extends BaseController {
         return succeed(imGroupService.getById(groupId));
     }
 
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "search", dataType = "String", value = "根据群名称、编号、简介模糊查询"),
-    })
     @ApiOperation("群列表")
     @PostMapping(value = "/queryAll")
-    public HttpResponseResult<List<ImGroup>> queryAll(@RequestBody Map<String,Object> params) throws Exception {
+    public HttpResponseResult<List<ImGroup>> queryAll(@Valid @RequestBody ImGroupSearchDto imGroupSearchDto, BindingResult bindingResult) throws Exception {
+        ValidationKit.ignoreFields(bindingResult,"createUserId");
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        params.put("userId",sysUser.getId());
-        return succeed(imGroupService.queryAll(params));
+        imGroupSearchDto.setUserId(sysUser.getId());
+        return succeed(imGroupService.queryAll(imGroupSearchDto));
+    }
+
+    @ApiOperation("获取老师的群列表")
+    @PostMapping(value = "/queryTeacherGroup")
+    public HttpResponseResult<List<ImGroupResultDto>> queryTeacherGroup(@RequestBody ImGroupSearchDto imGroupSearchDto) throws Exception {
+        return succeed(imGroupService.queryTeacherFun(imGroupSearchDto));
     }
 
     @ApiOperation("修改群信息")