浏览代码

群聊列表

liujc 2 年之前
父节点
当前提交
e4cf44cbdf

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -54,4 +55,6 @@ public interface ImGroupDao extends BaseDAO<String, ImGroup> {
      * @param i
      */
     void addMemberNum(@Param("imGroupIds") List<String> imGroupIds, @Param("num") int i);
+
+    List<ImGroup> getByUserId(@Param("param") ImGroupWrapper.ImQuery query);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java

@@ -4,6 +4,7 @@ import java.util.Collection;
 import java.util.List;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.NameDto;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImUserFriend;
@@ -50,4 +51,6 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
      * @param userId 用户id
      */
     void deleteByUserIdAndFriendId(Long userId);
+
+    List<ImUserFriendDto> getFriendListByUserId(@Param("param") ImGroupWrapper.ImQuery query);
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/ImGroupWrapper.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.ym.mec.biz.dal.entity.ImGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+public class ImGroupWrapper {
+
+    @Data
+    public static class ImQuery {
+
+        @ApiModelProperty("群名称/用户名")
+        private String keyword;
+
+        @ApiModelProperty("群类型  ")
+        private ImGroup.GroupTypeEnum groupType;
+
+        @ApiModelProperty("乐团ID")
+        private String musicGroupId;
+
+        @ApiModelProperty("角色 SCHOOLMASTER:校长 ORCHESTRA_LEADER:乐团领队 SCHOOL_LEADER:分管领导 TEACHER:负责老师 STUDENT:学生")
+        private String roleType;
+
+        @ApiModelProperty("当前用户ID")
+        private Integer userId;
+    }
+
+
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolActivityDetailWrapper.java

@@ -83,7 +83,7 @@ public class SchoolActivityDetailWrapper {
 
         @ApiModelProperty(value = "乐团ID",required = true)
         @NotNull(message = "乐团ID不能为空")
-        private Long musicGroupId;
+        private String musicGroupId;
 
         @ApiModelProperty("乐团名称")
         private String musicGroupName;

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -121,4 +122,12 @@ public interface ImGroupService extends BaseService<String, ImGroup> {
      * @param user 用户信息
      */
     void addImGroup(List<String> musicGroupIds, SysUser user);
+
+    /**
+     * 查询群组
+     *
+     * @param query 查询条件
+     * @return 群组列表
+     */
+    List<ImGroup> queryByUserId(ImGroupWrapper.ImQuery query);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImUserFriendService.java

@@ -7,6 +7,7 @@ import java.util.Set;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImUserFriend;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.common.service.BaseService;
 
 public interface ImUserFriendService extends BaseService<Long, ImUserFriend> {
@@ -83,4 +84,10 @@ public interface ImUserFriendService extends BaseService<Long, ImUserFriend> {
 	void refreshGroupImUserFriend(String musicGroupId,GroupType groupType);
 
     List<ImUserFriendDto> queryFriendListByUserIdV2(Integer userId, String search, String musicGroupId, Integer subjectId, Boolean vipFlag);
+
+    /**
+     * 根据条件查询指定用户的好友列表
+     *
+     */
+    List<ImUserFriendDto> queryFriendListByUserId(ImGroupWrapper.ImQuery query);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -456,7 +456,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
     /**
      * 获取乐团信息
      */
-    Map<Long,MusicGroup> getMapByIds(List<Long> musicGroupIds);
+    Map<Long,MusicGroup> getMapByIds(List<String> musicGroupIds);
 
     /**
      * 获取乐团信息

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -15,6 +15,7 @@ import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.biz.service.SysConfigService;
@@ -443,4 +444,20 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
         }
     }
+
+    /**
+     * 查询群组
+     *
+     * @param query 查询条件
+     * @return 群组列表
+     */
+    @Override
+    public List<ImGroup> queryByUserId(ImGroupWrapper.ImQuery query) {
+        if (query.getGroupType() != null && StringUtils.isNotBlank(query.getMusicGroupId())) {
+            if (query.getGroupType().equals(ImGroup.GroupTypeEnum.SCHOOL)) {
+                return new ArrayList<>();
+            }
+        }
+        return imGroupDao.getByUserId(query);
+    }
 }

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -11,8 +11,10 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ClassGroupStudentInfoDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -203,6 +205,21 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
     }
 
+
+    /**
+     * 根据条件查询指定用户的好友列表
+     */
+    @Override
+    public List<ImUserFriendDto> queryFriendListByUserId(ImGroupWrapper.ImQuery query) {
+        if (StringUtils.isNotBlank(query.getRoleType()) && StringUtils.isNotBlank(query.getMusicGroupId())) {
+            if (!query.getRoleType().equals("STUDENT")) {
+                return new ArrayList<>();
+            }
+        }
+        return imUserFriendDao.getFriendListByUserId(query);
+
+    }
+
     public List<ImUserFriend> saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
 		List<ImUserFriend> imUserFriends = new ArrayList<>();
 		Set<Integer> educationIds = new HashSet<>();

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -3959,7 +3959,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
      * 获取乐团信息
      */
     @Override
-    public Map<Long, MusicGroup> getMapByIds(List<Long> musicGroupIds) {
+    public Map<Long, MusicGroup> getMapByIds(List<String> musicGroupIds) {
         if(CollectionUtils.isEmpty(musicGroupIds)){
             return new HashMap<>();
         }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolActivityDetailServiceImpl.java

@@ -120,7 +120,7 @@ public class SchoolActivityDetailServiceImpl extends ServiceImpl<SchoolActivityD
 
         // 设置乐团名
         // 乐团ID集合
-        List<Long> musicGroupIds = schoolActivityDetails.stream()
+        List<String> musicGroupIds = schoolActivityDetails.stream()
                 .map(SchoolActivityDetailWrapper.SchoolActivityDetail::getMusicGroupId)
                 .collect(Collectors.toList());
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolStaffServiceImpl.java

@@ -161,7 +161,7 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
         }
 
         // 合作单位状态判断
-        if (!cooperation.getIsEnable()) {
+        if (Boolean.FALSE.equals(cooperation.getIsEnable())) {
             // 删除缓存锁
             redissonClient.getBucket(submitLockKey).delete();
 

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -256,4 +256,22 @@
             #{item}
         </foreach>
     </update>
+
+	<select id="getByUserId" resultMap="ImGroup">
+        SELECT ig.* FROM im_group_member igm
+        LEFT JOIN im_group ig ON igm.im_group_id_ = ig.id_
+        where 1 =1
+        <if test="param.userId != null">
+            AND igm.user_id_ = #{param.userId}
+        </if>
+        <if test="param.keyword != null and param.keyword != ''">
+            AND (ig.name_ like concat('%',#{param.keyword},'%') or ig.tags_ like concat('%',#{param.keyword},'%'))
+        </if>
+        <if test="param.musicGroupId != null and param.musicGroupId != ''">
+            and ig.id_ = #{param.musicGroupId}
+        </if>
+        <if test="param.groupType != null">
+            and ig.group_type_ = #{param.groupType.code}
+        </if>
+    </select>
 </mapper>

+ 28 - 0
mec-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -162,4 +162,32 @@
 	<delete id="deleteByUserIdAndFriendId">
         DELETE FROM im_user_friend WHERE user_id_ = #{userId} or friend_id_ = #{userId}
     </delete>
+
+	<select id="getFriendListByUserId" resultMap="ImUserFriendDto">
+        SELECT distinct iuf.*, ifnull(u.real_name_,username_) as real_name_,u.avatar_,u.phone_,u.user_type_
+
+        <if test="param.musicGroupId != null and param.musicGroupId != '' or param.roleType != null and param.roleType == 'STUDENT'">
+        ,st.member_rank_setting_id_,s.name_ subject_name_,st.subject_id_list_ subject_id_
+        </if>
+        FROM im_user_friend iuf
+        LEFT JOIN sys_user u ON iuf.friend_id_ = u.id_
+        <if test="param.musicGroupId != null and param.musicGroupId != '' or param.roleType != null and param.roleType == 'STUDENT'">
+            LEFT JOIN student st ON st.user_id_ = u.id_
+            left join class_group_student_mapper cgs on cgs.user_id_ = st.user_id_
+            LEFT JOIN `subject` s ON s.id_ = st.subject_id_list_
+        </if>
+        <if test="param.roleType != null and param.roleType != ''">
+            <if test="param.roleType != 'STUDENT'">
+              JOIN school_staff st ON st.user_id_ = u.id_ and st.user_type_ = #{param.roleType}
+            </if>
+        </if>
+        WHERE iuf.user_id_ = #{param.userId}
+        <if test="param.keyword != null and param.keyword != ''">
+            and (u.real_name_ like concat('%',#{param.keyword},'%') or iuf.friend_nickname_ like concat('%',#{param.keyword},'%'))
+        </if>
+
+        <if test="param.musicGroupId != null and param.musicGroupId != ''">
+            and cgs.music_group_id_ = #{param.musicGroupId}
+        </if>
+    </select>
 </mapper>

+ 16 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ImGroupController.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.page.ImGroupQueryInfo;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -183,4 +184,19 @@ public class ImGroupController extends BaseController {
 	public HttpResponseResult<List<NameDto>> queryDetail(@RequestBody List<NameDto> nameDto) {
 		return succeed(imGroupService.queryDetail(nameDto));
 	}
+
+
+    @ApiOperation("查询好友列表")
+    @PostMapping(value = "/schoolQueryFriendList")
+    public HttpResponseResult<List<ImUserFriendDto>> schoolQueryFriendList(@RequestBody ImGroupWrapper.ImQuery query) {
+        return succeed(imUserFriendService.queryFriendListByUserId(query));
+    }
+
+
+    @ApiOperation("查询群列表")
+    @GetMapping(value = "/schoolQueryGroupList")
+    public HttpResponseResult<List<ImGroup>> schoolQueryGroupList(@RequestBody ImGroupWrapper.ImQuery query) {
+        return succeed(imGroupService.queryByUserId(query));
+    }
+
 }