4 Commits 49b82c623f ... 488b13670a

Author SHA1 Message Date
  zouxuan 488b13670a Merge branch 'zx_online_0407_black' of http://git.dayaedu.com/yonge/cooleshow into develop-new 2 months ago
  zouxuan 78c6c27e4d 支持拉黑,屏蔽群成员私聊 2 months ago
  zouxuan a0ef0801ab Merge branch 'zx_online_tenantAlbum_0331' of http://git.dayaedu.com/yonge/cooleshow into online 2 months ago
  刘俊驰 cf77d55a30 文案修改 2 months ago
17 changed files with 149 additions and 399 deletions
  1. 1 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java
  2. 23 6
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java
  3. 28 33
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java
  4. 2 11
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  5. 24 8
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java
  6. 23 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. 7 98
      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. 4 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java
  14. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  15. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/im/ImUserWrapper.java
  16. 3 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml
  17. 2 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

+ 1 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -89,6 +89,7 @@ public class ImGroupController extends BaseController {
             // 该用户不在该群,无权限查看,处理用户退出群后,查看历史消息校验
             return failed(HttpStatus.NO_CONTENT, "群组不存在");
         }
+        group.setAllowPrivateChatFlag(admin.getAllowPrivateChatFlag());
         return succeed(group);
     }
 

+ 23 - 6
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;
@@ -14,12 +16,9 @@ import io.swagger.annotations.ApiImplicitParam;
 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 javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -37,8 +36,10 @@ public class ImGroupMemberController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private ImGroupMemberService imGroupMemberService;
+    @Resource
+    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();
+    }
+
 }
 

+ 28 - 33
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java

@@ -1,13 +1,9 @@
 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 +11,13 @@ 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 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 com.yonge.toolset.base.exception.BizException;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -44,32 +33,21 @@ public class ImUserFriendController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private ImUserFriendService imUserFriendService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     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()
@@ -128,5 +106,22 @@ public class ImUserFriendController extends BaseController {
         return succeed(imMessageUser);
 
     }
+
+    @ApiOperation("拉黑好友")
+    @PostMapping(value = "/blackFriend")
+    public HttpResponseResult<ImUserFriendVO.ImUserFriend> blackFriend(String imUserId,Boolean blackFlag) {
+        if(StringUtils.isEmpty(imUserId)){
+            throw new BizException("参数校验失败");
+        }
+        Long userId = sysUserService.getUserId();
+        String friendId = imGroupService.analysisImUserId(imUserId);
+        imUserFriendService.lambdaUpdate()
+                .eq(ImUserFriend::getUserId, userId)
+                .eq(ImUserFriend::getFriendId, friendId)
+                .eq(ImUserFriend::getClientType, ClientEnum.STUDENT)
+                .set(ImUserFriend::getBlackFlag, blackFlag)
+                .update();
+        return succeed();
+    }
 }
 

+ 2 - 11
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,12 @@ 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 org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.io.IOException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
@@ -157,6 +147,7 @@ public class ImGroupController extends BaseController {
             // 该用户不在该群,无权限查看,处理用户退出群后,查看历史消息校验
             return failed(HttpStatus.NO_CONTENT, "群组不存在");
         }
+        group.setAllowPrivateChatFlag(admin.getAllowPrivateChatFlag());
         return succeed(group);
     }
 

+ 24 - 8
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;
@@ -21,14 +23,10 @@ import io.swagger.annotations.ApiImplicitParams;
 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 javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -47,12 +45,15 @@ public class ImGroupMemberController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private ImGroupMemberService imGroupMemberService;
 
-    @Autowired
+    @Resource
     private ImGroupCoreService imGroupCoreService;
 
+    @Resource
+    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();
+    }
 }
 

+ 23 - 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()
@@ -129,5 +114,22 @@ public class ImUserFriendController extends BaseController {
         return succeed(imMessageUser);
 
     }
+
+    @ApiOperation("拉黑好友")
+    @PostMapping(value = "/blackFriend")
+    public HttpResponseResult<ImUserFriendVO.ImUserFriend> blackFriend(String imUserId,Boolean blackFlag) {
+        if(StringUtils.isEmpty(imUserId)){
+            throw new BizException("参数校验失败");
+        }
+        Long userId = sysUserService.getUserId();
+        String friendId = imGroupService.analysisImUserId(imUserId);
+        imUserFriendService.lambdaUpdate()
+                .eq(ImUserFriend::getUserId, userId)
+                .eq(ImUserFriend::getFriendId, friendId)
+                .eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
+                .set(ImUserFriend::getBlackFlag, blackFlag)
+                .update();
+        return succeed();
+    }
 }
 

+ 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;
-    }
 }
 

+ 7 - 98
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,14 @@ 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;
-    }
+    @TableField("black_flag_")
+    @ApiModelProperty(value = "黑名单标记")
+    private Boolean blackFlag;
 
 
     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

@@ -76,7 +76,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);
 
@@ -85,5 +85,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

@@ -1484,6 +1484,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) {

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

@@ -618,18 +618,14 @@ 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))
+                .eq(ImUserFriend::getBlackFlag, friendQuery.getBlackFlag())
+                .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),

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java

@@ -806,10 +806,10 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
 
         UserTenantAlbumRecord discountCardRecord = this.getById(result.getRecordId());
         if (discountCardRecord == null) {
-            throw new BizException("畅学卡记录不存在");
+            throw new BizException("记录不存在");
         }
         if (discountCardRecord.getEndTime().before(new Date())) {
-            throw new BizException("畅学卡已过期");
+            throw new BizException("记录已过期");
         }
 
 

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

@@ -69,5 +69,16 @@ public class ImUserWrapper {
             return this;
         }
     }
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class ImUserFriendQuery{
+
+        @ApiModelProperty(value = "模糊匹配")
+        private String search;
+
+        @ApiModelProperty(value = "黑名单标记")
+        private Boolean blackFlag = false;
+    }
 
 }

+ 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"

+ 2 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -9,12 +9,13 @@
         <result column="friend_avatar_" jdbcType="VARCHAR" property="friendAvatar"/>
         <result column="memo_" jdbcType="VARCHAR" property="memo"/>
         <result column="source_form_" jdbcType="VARCHAR" property="sourceForm"/>
+        <result column="black_flag_" property="blackFlag"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
     </resultMap>
 
     <sql id="Base_Column_List">
-        id_, user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_, create_time_, update_time_
+        id_, user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_,black_flag_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"