5 次代碼提交 a0ef0801ab ... 8c07347bfc

作者 SHA1 備註 提交日期
  zouxuan 8c07347bfc 支持拉黑,屏蔽群成员私聊 10 月之前
  zouxuan 53b8f61b0c 支持拉黑,屏蔽群成员私聊 10 月之前
  zouxuan 1ff7866ed2 支持拉黑,屏蔽群成员私聊 10 月之前
  zouxuan cbcf7fb937 支持拉黑,屏蔽群成员私聊 10 月之前
  zouxuan 78c6c27e4d 支持拉黑,屏蔽群成员私聊 10 月之前
共有 15 個文件被更改,包括 107 次插入431 次删除
  1. 9 27
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java
  2. 21 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java
  3. 5 30
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java
  4. 6 15
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  5. 21 5
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java
  6. 6 21
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java
  7. 3 110
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java
  8. 6 99
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java
  9. 4 99
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImUserFriend.java
  10. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  11. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java
  12. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  13. 5 19
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java
  14. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/im/ImUserWrapper.java
  15. 3 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

+ 9 - 27
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -1,14 +1,10 @@
 package com.yonge.cooleshow.student.controller;
 
 
-import com.alibaba.fastjson.JSON;
-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.entity.ImGroupMember;
-import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.MK;
@@ -27,15 +23,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
 import javax.validation.Valid;
 import java.util.List;
 import java.util.Objects;
@@ -53,13 +42,10 @@ public class ImGroupController extends BaseController {
     /**
      * 服务对象
      */
-    @Resource
+    @Autowired
     private ImGroupService imGroupService;
-    @Resource
-    private SysUserService sysUserService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
-
+    private SysUserService sysUserService;
     @Autowired
     private ImUserFriendService imUserFriendService;
 
@@ -69,26 +55,22 @@ public class ImGroupController extends BaseController {
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
     public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-
-        // 获取用户ID
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null  || sysUser.getId() == null) {
-            return failed("用户信息获取失败");
-        }
-
-        ImGroup group = imGroupService.findGroupInfoById(groupId, sysUser.getId());
+        Long userId = sysUserService.getUserId();
+        ImGroup group = imGroupService.findGroupInfoById(groupId, userId);
         // ImGroup group = imGroupService.getById(groupId);
         if (group == null) {
             return failed(HttpStatus.NO_CONTENT, "群组不存在");
         }
         ImGroupMember admin = imGroupMemberService.lambdaQuery()
                 .eq(ImGroupMember::getGroupId, group.getId())
-                .eq(ImGroupMember::getUserId, sysUserService.getUser().getId())
+                .eq(ImGroupMember::getUserId, userId)
+                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
                 .last("limit 1").one();
         if (admin == null) {
             // 该用户不在该群,无权限查看,处理用户退出群后,查看历史消息校验
             return failed(HttpStatus.NO_CONTENT, "群组不存在");
         }
+        group.setAllowPrivateChatFlag(admin.getAllowPrivateChatFlag());
         return succeed(group);
     }
 

+ 21 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java

@@ -3,8 +3,10 @@ package com.yonge.cooleshow.student.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -15,10 +17,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
@@ -39,6 +38,8 @@ public class ImGroupMemberController extends BaseController {
      */
     @Autowired
     private ImGroupMemberService imGroupMemberService;
+    @Autowired
+    private SysUserService sysUserService;
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "groupId", dataType = "Long", value = "群编号",required = true),
@@ -89,5 +90,21 @@ public class ImGroupMemberController extends BaseController {
                 .eq(ImGroupMember::getGroupId,params.get("groupId")).orderByDesc(ImGroupMember::getId));*/
         return succeed(groupMembers);
     }
+
+    @ApiOperation("是否允许私聊")
+    @GetMapping(value = "/allowPrivateChat")
+    public HttpResponseResult<Boolean> allowPrivateChat(String groupId, Boolean allowPrivateChatFlag) {
+        if (Objects.isNull(groupId) || Objects.isNull(allowPrivateChatFlag)) {
+            throw new BizException("参数校验失败");
+        }
+        imGroupMemberService.lambdaUpdate()
+                .eq(ImGroupMember::getGroupId, groupId)
+                .eq(ImGroupMember::getUserId, sysUserService.getUserId())
+                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
+                .set(ImGroupMember::getAllowPrivateChatFlag, allowPrivateChatFlag)
+                .update();
+        return succeed();
+    }
+
 }
 

+ 5 - 30
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java

@@ -1,13 +1,8 @@
 package com.yonge.cooleshow.student.controller;
 
 
-import com.alibaba.fastjson.JSON;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
-import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
@@ -15,20 +10,11 @@ import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImUserWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -47,29 +33,18 @@ public class ImUserFriendController extends BaseController {
     @Autowired
     private ImUserFriendService imUserFriendService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
-
+    private SysUserService sysUserService;
     @Autowired
     private ImGroupService imGroupService;
 
-    @Autowired
-    private SysUserMapper sysUserMapper;
-
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "根据用户编号、昵称模糊查询")
     })
     @ApiOperation("获取通讯录成员列表")
     @PostMapping(value = "/queryAll")
-    public HttpResponseResult<List<ImUserWrapper.ImUserFriend>> queryAll(@RequestBody Map<String,Object> params) throws Exception {
-
-        // 用户ID
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (Objects.isNull(sysUser)) {
-            return failed("请登录");
-        }
-
+    public HttpResponseResult<List<ImUserWrapper.ImUserFriend>> queryAll(@RequestBody ImUserWrapper.ImUserFriendQuery friendQuery) throws Exception {
         // 学生好友列表
-        List<ImUserWrapper.ImUserFriend> userFriends = imUserFriendService.findUserAllImFriendInfo(ClientEnum.STUDENT, sysUser.getId(), params);
+        List<ImUserWrapper.ImUserFriend> userFriends = imUserFriendService.findUserAllImFriendInfo(ClientEnum.STUDENT, sysUserService.getUserId(), friendQuery);
 
         /*Object search = params.get("search");
         List<ImUserFriend> userFriends = imUserFriendService.getBaseMapper().selectList(Wrappers.<ImUserFriend>query().lambda()

+ 6 - 15
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -1,13 +1,11 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.alibaba.fastjson.JSON;
 import com.microsvc.toolkit.common.response.template.R;
 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.entity.ImGroupMember;
-import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.MK;
@@ -27,20 +25,11 @@ import io.swagger.annotations.ApiParam;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
 import javax.validation.Valid;
-import java.io.IOException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
@@ -59,9 +48,9 @@ public class ImGroupController extends BaseController {
     /**
      * 服务对象
      */
-    @Resource
+    @Autowired
     private ImGroupService imGroupService;
-    @Resource
+    @Autowired
     private SysUserService sysUserService;
 
     @Autowired
@@ -151,12 +140,14 @@ public class ImGroupController extends BaseController {
         }
         ImGroupMember admin = imGroupMemberService.lambdaQuery()
                 .eq(ImGroupMember::getGroupId, group.getId())
+                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.TEACHER)
                 .eq(ImGroupMember::getUserId, sysUserService.getUser().getId())
                 .last("limit 1").one();
         if (admin == null) {
             // 该用户不在该群,无权限查看,处理用户退出群后,查看历史消息校验
             return failed(HttpStatus.NO_CONTENT, "群组不存在");
         }
+        group.setAllowPrivateChatFlag(admin.getAllowPrivateChatFlag());
         return succeed(group);
     }
 

+ 21 - 5
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java

@@ -7,8 +7,10 @@ import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper;
@@ -22,12 +24,8 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
@@ -53,6 +51,9 @@ public class ImGroupMemberController extends BaseController {
     @Autowired
     private ImGroupCoreService imGroupCoreService;
 
+    @Autowired
+    private SysUserService sysUserService;
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "groupId", dataType = "String", value = "群编号",required = true),
             @ApiImplicitParam(name = "userId", dataType = "Long", value = "用户编号",required = true),
@@ -145,5 +146,20 @@ public class ImGroupMemberController extends BaseController {
 
         return R.defaultR();
     }
+
+    @ApiOperation("是否允许私聊")
+    @GetMapping(value = "/allowPrivateChat")
+    public HttpResponseResult<Boolean> allowPrivateChat(String groupId, Boolean allowPrivateChatFlag) {
+        if (Objects.isNull(groupId) || Objects.isNull(allowPrivateChatFlag)) {
+            throw new BizException("参数校验失败");
+        }
+        imGroupMemberService.lambdaUpdate()
+                .eq(ImGroupMember::getGroupId, groupId)
+                .eq(ImGroupMember::getUserId, sysUserService.getUserId())
+                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.TEACHER)
+                .set(ImGroupMember::getAllowPrivateChatFlag, allowPrivateChatFlag)
+                .update();
+        return succeed();
+    }
 }
 

+ 6 - 21
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -1,35 +1,23 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.alibaba.fastjson.JSON;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
-import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
-import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImUserWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.jetbrains.annotations.NotNull;
+import com.yonge.toolset.base.exception.BizException;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -53,22 +41,19 @@ public class ImUserFriendController extends BaseController {
     @Autowired
     private ImGroupService imGroupService;
 
-    @Autowired
-    private SysUserMapper sysUserMapper;
-
     @SuppressWarnings("unchecked")//因为返回是集合,这里提示你集合内容较多排序可能回耗费性能
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "根据用户编号、昵称模糊查询")
     })
     @ApiOperation("获取通讯录成员列表")
     @PostMapping(value = "/queryAll")
-    public HttpResponseResult<List<ImUserWrapper.ImUserFriend>> queryAll(@RequestBody Map<String, Object> params) {
+    public HttpResponseResult<List<ImUserWrapper.ImUserFriend>> queryAll(@RequestBody ImUserWrapper.ImUserFriendQuery friendQuery) {
 
         // 用户ID
         Long userId = sysUserService.getUserId();
 
         // 学生好友列表
-        List<ImUserWrapper.ImUserFriend> userFriends = imUserFriendService.findUserAllImFriendInfo(ClientEnum.TEACHER, userId, params);
+        List<ImUserWrapper.ImUserFriend> userFriends = imUserFriendService.findUserAllImFriendInfo(ClientEnum.TEACHER, userId, friendQuery);
 
         /*Object search = params.get("search");
         List<ImUserFriend> record = imUserFriendService.list(Wrappers.<ImUserFriend>query().lambda()

+ 3 - 110
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java

@@ -79,116 +79,9 @@ public class ImGroup implements Serializable {
     @ApiModelProperty("群成员人数限制")
     private Integer groupMemberLimit;
 
-    public Long getCourseGroupId() {
-        return courseGroupId;
-    }
+    @TableField(exist = false)
+    @ApiModelProperty(value = "是否允许私聊")
+    private Boolean allowPrivateChatFlag;
 
-    public void setCourseGroupId(Long courseGroupId) {
-        this.courseGroupId = courseGroupId;
-    }
-
-    public Boolean getAutoPassFlag() {
-        return autoPassFlag;
-    }
-
-    public void setAutoPassFlag(Boolean autoPassFlag) {
-        this.autoPassFlag = autoPassFlag;
-    }
-
-    public Long getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(Long createBy) {
-        this.createBy = createBy;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getIntroduce() {
-        return introduce;
-    }
-
-    public void setIntroduce(String introduce) {
-        this.introduce = introduce;
-    }
-
-    public Integer getMemberNum() {
-        return memberNum;
-    }
-
-    public void setMemberNum(Integer memberNum) {
-        this.memberNum = memberNum;
-    }
-
-    public String getMemo() {
-        return memo;
-    }
-
-    public void setMemo(String memo) {
-        this.memo = memo;
-    }
-
-    public String getImg() {
-        return img;
-    }
-
-    public void setImg(String img) {
-        this.img = img;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public ImGroupType getType() {
-        return type;
-    }
-
-    public void setType(ImGroupType type) {
-        this.type = type;
-    }
-
-    public String getConfigJson() {
-        return configJson;
-    }
-
-    public void setConfigJson(String configJson) {
-        this.configJson = configJson;
-    }
-
-    public Integer getGroupMemberLimit() {
-        return groupMemberLimit;
-    }
-
-    public void setGroupMemberLimit(Integer groupMemberLimit) {
-        this.groupMemberLimit = groupMemberLimit;
-    }
 }
 

+ 6 - 99
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java

@@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.im.EImGroupMemberRoleType;
-import com.yonge.toolset.base.enums.BaseEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -19,6 +19,7 @@ import java.util.Date;
  * @author zx
  * @since 2022-03-22 10:45:58
  */
+@Data
 @ApiModel(value = "im_group_member-群成员表")
 public class ImGroupMember implements Serializable {
     @TableId(value = "id_", type = IdType.AUTO)
@@ -69,6 +70,10 @@ public class ImGroupMember implements Serializable {
     @ApiModelProperty(value = "IM用户ID")
     private String imUserId;
 
+    @TableField("allow_private_chat_flag_")
+    @ApiModelProperty(value = "是否允许私聊")
+    private Boolean allowPrivateChatFlag;
+
     public ImGroupMember() {
     }
 
@@ -80,103 +85,5 @@ public class ImGroupMember implements Serializable {
         this.isAdmin = isAdmin;
         this.roleType = roleType;
     }
-
-
-
-    public String getAvatar() {
-        return avatar;
-    }
-
-    public void setAvatar(String avatar) {
-        this.avatar = avatar;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public String getNickname() {
-        return nickname;
-    }
-
-    public void setNickname(String nickname) {
-        this.nickname = nickname;
-    }
-
-    public Boolean getIsAdmin() {
-        return isAdmin;
-    }
-
-    public void setIsAdmin(Boolean isAdmin) {
-        this.isAdmin = isAdmin;
-    }
-
-    public ImGroupMemberRoleType getRoleType() {
-        return roleType;
-    }
-
-    public void setRoleType(ImGroupMemberRoleType roleType) {
-        this.roleType = roleType;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public String getImUserId() {
-        return imUserId;
-    }
-
-    public void setImUserId(String imUserId) {
-        this.imUserId = imUserId;
-    }
-
-    public EImGroupMemberRoleType getGroupRoleType() {
-        return groupRoleType;
-    }
-
-    public void setGroupRoleType(EImGroupMemberRoleType groupRoleType) {
-        this.groupRoleType = groupRoleType;
-    }
-
-    public Boolean getGroupMute() {
-        return groupMute;
-    }
-
-    public void setGroupMute(Boolean groupMute) {
-        this.groupMute = groupMute;
-    }
 }
 

+ 4 - 99
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImUserFriend.java

@@ -1,17 +1,17 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
 
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 用户通讯录表(ImUserFriend)表实体类
@@ -19,6 +19,7 @@ import java.io.Serializable;
  * @author zx
  * @since 2022-03-22 10:46:00
  */
+@Data
 @ApiModel(value = "im_user_friend-用户通讯录表")
 public class ImUserFriend implements Serializable {
     @TableId(value = "id_", type = IdType.AUTO)
@@ -69,106 +70,10 @@ public class ImUserFriend implements Serializable {
     @ApiModelProperty(value = "建立好友时,标记建立身份,TEACHER:以老师身份建立,CUSTOMER:以客服身份建立")
     private EImUserFriendSourceForm sourceForm;
 
-    public String getFriendAvatar() {
-        return friendAvatar;
-    }
-
-    public void setFriendAvatar(String friendAvatar) {
-        this.friendAvatar = friendAvatar;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public Long getFriendId() {
-        return friendId;
-    }
-
-    public void setFriendId(Long friendId) {
-        this.friendId = friendId;
-    }
-
-    public String getFriendNickname() {
-        return friendNickname;
-    }
-
-    public void setFriendNickname(String friendNickname) {
-        this.friendNickname = friendNickname;
-    }
-
-    public String getMemo() {
-        return memo;
-    }
-
-    public void setMemo(String memo) {
-        this.memo = memo;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public String getImFriendId() {
-        return imFriendId;
-    }
-
-    public void setImFriendId(String imFriendId) {
-        this.imFriendId = imFriendId;
-    }
-
-    public ClientEnum getClientType() {
-        return clientType;
-    }
-
-    public void setClientType(ClientEnum clientType) {
-        this.clientType = clientType;
-    }
-
 
     public ImUserFriend clientType(ClientEnum clientType) {
         this.clientType = clientType;
         return this;
     }
-
-    public ClientEnum getFriendType() {
-        return friendType;
-    }
-
-    public void setFriendType(ClientEnum friendType) {
-        this.friendType = friendType;
-    }
-
-    public EImUserFriendSourceForm getSourceForm() {
-        return sourceForm;
-    }
-
-    public void setSourceForm(EImUserFriendSourceForm sourceForm) {
-        this.sourceForm = sourceForm;
-    }
 }
 

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

@@ -224,5 +224,7 @@ public interface ImGroupService extends IService<ImGroup> {
     Boolean muteAll(ImGroupWrapper.Mute mute);
 
     Boolean updateIntroduce( ImGroup imGroup);
+
+    String analysisClientType(String imUserId);
 }
 

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java

@@ -69,7 +69,7 @@ public interface ImUserFriendService extends IService<ImUserFriend> {
      * @param paramMap Map<String, Object>
      * @return List<ImUserWrapper.ImUserFriend>
      */
-    List<ImUserWrapper.ImUserFriend> findUserAllImFriendInfo(ClientEnum clientType, Long userId, Map<String, Object> paramMap);
+    List<ImUserWrapper.ImUserFriend> findUserAllImFriendInfo(ClientEnum clientType, Long userId, ImUserWrapper.ImUserFriendQuery friendQuery);
 
     void delTeacherFriendByTenantId(Long tenantId, Long userId, String clientType);
 
@@ -78,5 +78,6 @@ public interface ImUserFriendService extends IService<ImUserFriend> {
     void refreshCustomer(Long userId, ClientEnum userClientType, List<Long> friendIds, ClientEnum friendClientType);
 
     ImUserFriendVO.ImMessageUser getImMessageUser(String imUserId);
+
 }
 

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

@@ -1473,6 +1473,12 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     }
 
+    @Override
+    public String analysisClientType(String imUserId) {
+        //截取最后一个下划线后的字符串
+        return imUserId.substring(imUserId.lastIndexOf("_") + 1);
+    }
+
     private void groupAvatarUpdate(List<ImGroup> records) {
 
         for (ImGroup imGroup : records) {

+ 5 - 19
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java

@@ -27,11 +27,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
-import com.yonge.cooleshow.biz.dal.service.ImGroupService;
-import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.biz.dal.service.SysConfigService;
-import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
@@ -53,12 +49,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -591,18 +582,13 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
      * @return List<ImUserWrapper.ImUserFriend>
      */
     @Override
-    public List<ImUserWrapper.ImUserFriend> findUserAllImFriendInfo(ClientEnum clientType, Long userId, Map<String,
-            Object> paramMap) {
-
-        // 用户好友匹配条件
-        Object search = paramMap.get("search");
-
+    public List<ImUserWrapper.ImUserFriend> findUserAllImFriendInfo(ClientEnum clientType, Long userId, ImUserWrapper.ImUserFriendQuery friendQuery) {
         // 查询用户好友列表
         List<ImUserFriend> records = lambdaQuery()
                 .eq(ImUserFriend::getUserId, userId)
                 .eq(ImUserFriend::getClientType, clientType)
-                .and(Objects.nonNull(search) && StringUtils.isNotEmpty(search.toString()),
-                        e -> e.eq(ImUserFriend::getFriendId, search).or().like(ImUserFriend::getFriendNickname, search))
+                .and(StringUtils.isNotEmpty(friendQuery.getSearch()),
+                        e -> e.eq(ImUserFriend::getFriendId, friendQuery.getSearch()).or().like(ImUserFriend::getFriendNickname, friendQuery.getSearch()))
                 .orderByDesc(ImUserFriend::getId).list();
 
         List<ImUserWrapper.ImUserFriend> userFriends = JSON.parseArray(JSON.toJSONString(records),

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/im/ImUserWrapper.java

@@ -69,5 +69,13 @@ public class ImUserWrapper {
             return this;
         }
     }
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class ImUserFriendQuery{
+
+        @ApiModelProperty(value = "模糊匹配")
+        private String search;
+    }
 
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -8,6 +8,7 @@
         <result column="nickname_" jdbcType="VARCHAR" property="nickname"/>
         <result column="is_admin_" jdbcType="VARCHAR" property="isAdmin"/>
         <result column="role_type_" jdbcType="VARCHAR" property="roleType"/>
+        <result column="allow_private_chat_flag_" property="allowPrivateChatFlag"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
     </resultMap>
@@ -26,10 +27,11 @@
         , t.update_time_ AS updateTime
         , t.group_role_type_ AS groupRoleType
         , t.group_mute_ AS groupMute
+        , t.allow_private_chat_flag_ AS allowPrivateChatFlag
     </sql>
 
     <sql id="Base_Column_List">
-        id_ , group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_,group_role_type_,group_mute_
+        id_ , group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_,group_role_type_,group_mute_,allow_private_chat_flag_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"