zouxuan 3 years ago
parent
commit
2ae53a6d7b
26 changed files with 354 additions and 122 deletions
  1. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java
  2. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java
  3. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberDao.java
  4. 0 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImUserFriendDao.java
  5. 30 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImGroupMemberAuditDto.java
  6. 10 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java
  7. 6 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupNotice.java
  8. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImUserFriend.java
  9. 28 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/ImGroupMemberAuditQueryInfo.java
  10. 6 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberAuditService.java
  11. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberService.java
  12. 14 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  13. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java
  14. 50 22
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberAuditServiceImpl.java
  15. 12 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberServiceImpl.java
  16. 37 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  17. 0 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java
  18. 13 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml
  19. 35 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml
  20. 24 5
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml
  21. 4 5
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml
  22. 4 7
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml
  23. 1 1
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberAuditController.java
  24. 15 17
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  25. 6 13
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java
  26. 22 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java

@@ -1,10 +1,13 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 即时通讯群组(ImGroup)表数据库访问层
@@ -18,5 +21,6 @@ public interface ImGroupDao extends BaseMapper<ImGroup> {
 
     ImGroup getLock(@Param("groupId") Long groupId);
 
+    IPage<ImGroup> queryPage(Page<ImGroup> pageInfo, @Param("params") Map<String, Object> params);
 }
 

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java

@@ -1,10 +1,14 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
+import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * (ImGroupMemberAudit)表数据库访问层
@@ -16,5 +20,8 @@ public interface ImGroupMemberAuditDao extends BaseMapper<ImGroupMemberAudit> {
 
     int insertBatch(@Param("entities") List<ImGroupMemberAudit> entities);
 
+    ImGroupMemberAudit findOne(Map<String, Object> params);
+
+    <T> IPage<T> queryPage(Page<T> pageInfo, @Param("params") ImGroupMemberAuditQueryInfo queryInfo);
 }
 

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberDao.java

@@ -2,9 +2,11 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import io.rong.models.group.GroupMember;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -18,5 +20,16 @@ public interface ImGroupMemberDao extends BaseMapper<ImGroupMember> {
     int insertBatch(@Param("entities") List<ImGroupMember> entities);
 
     void delByGroupId(@Param("groupId") Long groupId);
+
+    ImGroupMember findOne(Map<String, Object> params);
+
+    /**
+    * @description: 获取所有的群成员列表
+     * @param groupId
+    * @return java.util.List<io.rong.models.group.GroupMember>
+    * @author zx
+    * @date 2022/3/23 15:17
+    */
+    List<GroupMember> queryGroupMember(@Param("groupId") Long groupId);
 }
 

+ 0 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImUserFriendDao.java

@@ -1,14 +1,10 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
-import com.yonge.cooleshow.common.page.QueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 用户通讯录表(ImUserFriend)表数据库访问层
@@ -20,6 +16,5 @@ public interface ImUserFriendDao extends BaseMapper<ImUserFriend> {
 
     int insertBatch(@Param("entities") List<ImUserFriend> entities);
 
-    <T> IPage<T> queryPage(Page<T> page, @Param("param") QueryInfo queryInfo);
 }
 

+ 30 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImGroupMemberAuditDto.java

@@ -0,0 +1,30 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ImGroupMemberAuditDto extends ImGroupMemberAudit {
+    @ApiModelProperty(value = "用户昵称")
+    private String username;
+
+    @ApiModelProperty(value = "用户头像")
+    private String avatar;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+}
+

+ 10 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java

@@ -1,16 +1,15 @@
 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.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 群成员表(ImGroupMember)表实体类
@@ -24,9 +23,9 @@ public class ImGroupMember implements Serializable {
     @ApiModelProperty(value = "主键;")
     private Long id;
 
-    @TableField("im_group_id_")
+    @TableField("group_id_")
     @ApiModelProperty(value = "群编号;")
-    private Long imGroupId;
+    private Long groupId;
 
     @TableField("user_id_")
     @ApiModelProperty(value = "用户编号;")
@@ -55,8 +54,8 @@ public class ImGroupMember implements Serializable {
     public ImGroupMember() {
     }
 
-    public ImGroupMember(Long imGroupId, Long userId, String nickname, Boolean isAdmin, ImGroupMemberRoleType roleType) {
-        this.imGroupId = imGroupId;
+    public ImGroupMember(Long groupId, Long userId, String nickname, Boolean isAdmin, ImGroupMemberRoleType roleType) {
+        this.groupId = groupId;
         this.userId = userId;
         this.nickname = nickname;
         this.isAdmin = isAdmin;
@@ -91,12 +90,12 @@ public class ImGroupMember implements Serializable {
         this.id = id;
     }
 
-    public Long getImGroupId() {
-        return imGroupId;
+    public Long getGroupId() {
+        return groupId;
     }
 
-    public void setImGroupId(Long imGroupId) {
-        this.imGroupId = imGroupId;
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
     }
 
     public Long getUserId() {

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

@@ -23,9 +23,9 @@ public class ImGroupNotice implements Serializable {
     @ApiModelProperty(value = "主键;")
     private Long id;
 
-    @TableField("im_group_id_")
+    @TableField("groupId")
     @ApiModelProperty(value = "群编号;")
-    private Long imGroupId;
+    private Long groupId;
 
     @TableField("title_")
     @ApiModelProperty(value = "标题")
@@ -68,12 +68,12 @@ public class ImGroupNotice implements Serializable {
         this.id = id;
     }
 
-    public Long getImGroupId() {
-        return imGroupId;
+    public Long getGroupId() {
+        return groupId;
     }
 
-    public void setImGroupId(Long imGroupId) {
-        this.imGroupId = imGroupId;
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
     }
 
     public String getTitle() {

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImUserFriend.java

@@ -31,6 +31,10 @@ public class ImUserFriend implements Serializable {
     @ApiModelProperty(value = "好友编号")
     private Long friendId;
 
+    @TableField("friend_avatar_")
+    @ApiModelProperty(value = "好友头像")
+    private String friendAvatar;
+
     @TableField("friend_nickname_")
     @ApiModelProperty(value = "好友昵称")
     private String friendNickname;
@@ -47,6 +51,13 @@ public class ImUserFriend implements Serializable {
     @ApiModelProperty(value = "修改时间;")
     private Date updateTime;
 
+    public String getFriendAvatar() {
+        return friendAvatar;
+    }
+
+    public void setFriendAvatar(String friendAvatar) {
+        this.friendAvatar = friendAvatar;
+    }
 
     public Long getId() {
         return id;

+ 28 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/ImGroupMemberAuditQueryInfo.java

@@ -1,20 +1,44 @@
 package com.yonge.cooleshow.biz.dal.queryInfo;
 
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotNull;
+
 public class ImGroupMemberAuditQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "审核状态")
-    private AuditStatusEnum auditStatus = AuditStatusEnum.AUDITING;
+    private String auditStatus = AuditStatusEnum.AUDITING.getCode();
+
+    @ApiModelProperty(value = "用户编号")
+    private Long userId;
+
+    @NotNull(message = "群编号不可为空")
+    @ApiModelProperty(value = "群编号")
+    private Long groupId;
+
+    public Long getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
 
-    public AuditStatusEnum getAuditStatus() {
+    public String getAuditStatus() {
         return auditStatus;
     }
 
-    public void setAuditStatus(AuditStatusEnum auditStatus) {
+    public void setAuditStatus(String auditStatus) {
         this.auditStatus = auditStatus;
     }
 }

+ 6 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberAuditService.java

@@ -1,9 +1,12 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
+import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
+import com.yonge.cooleshow.common.page.PageInfo;
 
 /**
  * (ImGroupMemberAudit)表服务接口
@@ -22,7 +25,7 @@ public interface ImGroupMemberAuditService extends IService<ImGroupMemberAudit>
     * @author zx
     * @date 2022/3/22 17:34
     */
-    void apply(ImGroupMemberAudit imGroupMemberAudit);
+    void apply(ImGroupMemberAudit imGroupMemberAudit) throws Exception;
 
     /**
     * @description: 入群审核
@@ -33,5 +36,7 @@ public interface ImGroupMemberAuditService extends IService<ImGroupMemberAudit>
     * @date 2022/3/22 19:58
     */
     void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception;
+
+    PageInfo<ImGroupMemberAudit> queryPage(ImGroupMemberAuditQueryInfo queryInfo);
 }
 

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberService.java

@@ -3,7 +3,6 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 

+ 14 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.common.page.PageInfo;
+
+import java.util.Map;
 
 /**
  * 即时通讯群组(ImGroup)表服务接口
@@ -16,7 +19,7 @@ public interface ImGroupService extends IService<ImGroup> {
     ImGroupDao getDao();
 
     /**
-    * @description: 创建群聊
+    * @description: 用户主动创建群聊
      * @param imGroup
     * @author zx
     * @date 2022/3/22 11:17
@@ -24,6 +27,14 @@ public interface ImGroupService extends IService<ImGroup> {
     void create(ImGroupDto imGroup) throws Exception;
 
     /**
+    * @description: 成课后自动创建群聊,建议放在最后执行
+     * @param imGroup
+    * @author zx
+    * @date 2022/3/22 11:17
+    */
+    void autoCreate(Long courseGroupId) throws Exception;
+
+    /**
     * @description: 关闭群聊、解散
      * @param groupId
     * @author zx
@@ -38,5 +49,7 @@ public interface ImGroupService extends IService<ImGroup> {
     * @date 2022/3/22 11:17
     */
     void syncGroupMemberNum(Long groupId) throws Exception;
+
+    PageInfo<ImGroup> queryPage(Map<String, Object> params);
 }
 

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

@@ -6,6 +6,8 @@ import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.page.QueryInfo;
 
+import java.util.Map;
+
 /**
  * 用户通讯录表(ImUserFriend)表服务接口
  *
@@ -16,6 +18,5 @@ public interface ImUserFriendService extends IService<ImUserFriend> {
 
     ImUserFriendDao getDao();
 
-    PageInfo<ImUserFriend> queryPage(QueryInfo queryInfo);
 }
 

+ 50 - 22
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberAuditServiceImpl.java

@@ -1,30 +1,29 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+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.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
-import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
-import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
-import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.common.exception.BizException;
-import org.springframework.stereotype.Service;
-
+import com.yonge.cooleshow.common.page.PageInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -52,29 +51,55 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void apply(ImGroupMemberAudit imGroupMemberAudit) {
+    public void apply(ImGroupMemberAudit imGroupMemberAudit) throws Exception {
         Long groupId = imGroupMemberAudit.getGroupId();
         ImGroup imGroup = imGroupService.getById(groupId);
         if(Objects.isNull(imGroup)){
             throw new BizException("群组信息不存在");
         }
-        if(imGroup.getAutoPassFlag()){
-            imGroupMemberAudit.setAuditStatus(AuditStatusEnum.OPEN);
-        }else {
-            imGroupMemberAudit.setAuditStatus(AuditStatusEnum.AUDITING);
+        //是否在群
+        Map<String,Object> groupMemberParams = new HashMap<>(2);
+        groupMemberParams.put("groupId",groupId);
+        groupMemberParams.put("userId",imGroupMemberAudit.getUserId());
+        if(Objects.nonNull(imGroupMemberService.getDao().findOne(groupMemberParams))){
+            throw new BizException("您已经在群聊中,请勿重复添加");
         }
+        //是否有待审核的申请
+        Map<String,Object> auditParams = new HashMap<>(3);
+        auditParams.put("groupId",groupId);
+        auditParams.put("userId",imGroupMemberAudit.getUserId());
+        auditParams.put("auditStatus",AuditStatusEnum.AUDITING.getCode());
+        if(Objects.nonNull(baseMapper.findOne(auditParams))){
+            throw new BizException("您有待审核的申请,请勿重复提交");
+        }
+        Date date = new Date();
+        //是否自动通过审核
+        imGroupMemberAudit.setAuditStatus(imGroup.getAutoPassFlag()?AuditStatusEnum.OPEN:AuditStatusEnum.AUDITING);
+        imGroupMemberAudit.setUpdateTime(date);
+        imGroupMemberAudit.setCreateTime(date);
         baseMapper.insert(imGroupMemberAudit);
+        if(imGroup.getAutoPassFlag()){
+            //加群
+            imGroupMemberService.addGroupMember(imGroup.getId(),
+                    imGroupMemberAudit.getUserId(),false,
+                    imGroupMemberAudit.getRoleType());
+            //同步群成员数量
+            imGroupService.syncGroupMemberNum(imGroup.getId());
+        }
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception {
+        if(auditStatus == AuditStatusEnum.AUDITING ){
+            throw new BizException("操作失败:审核状态异常");
+        }
         ImGroupMemberAudit imGroupMemberAudit = baseMapper.selectById(auditId);
         if(Objects.isNull(imGroupMemberAudit)){
             throw new BizException("审核信息不存在");
         }
         if(imGroupMemberAudit.getAuditStatus() != AuditStatusEnum.AUDITING){
-            throw new BizException("您已审核,请勿重复提交");
+            throw new BizException("该入群申请已审核,请勿重复提交");
         }
         ImGroup imGroup = imGroupService.getById(imGroupMemberAudit.getGroupId());
         if(Objects.isNull(imGroup)){
@@ -84,21 +109,24 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
         if(!sysUser.getId().equals(imGroup.getCreateBy())){
             throw new BizException("操作失败:您没有审核权限");
         }
-        if(auditStatus == AuditStatusEnum.REJECT){
-
-        }else if(auditStatus == AuditStatusEnum.OPEN){
+        imGroupMemberAudit.setAuditStatus(auditStatus);
+        imGroupMemberAudit.setUpdateTime(new Date());
+        baseMapper.updateById(imGroupMemberAudit);
+        if(auditStatus == AuditStatusEnum.OPEN){
             //加群
             imGroupMemberService.addGroupMember(imGroup.getId(),
                     imGroupMemberAudit.getUserId(),false,
                     imGroupMemberAudit.getRoleType());
             //同步群成员数量
             imGroupService.syncGroupMemberNum(imGroup.getId());
-        }else {
-            throw new BizException("操作失败:审核状态异常");
         }
-        imGroupMemberAudit.setAuditStatus(auditStatus);
-        imGroupMemberAudit.setUpdateTime(new Date());
-        baseMapper.updateById(imGroupMemberAudit);
+    }
+
+    @Override
+    public PageInfo<ImGroupMemberAudit> queryPage(ImGroupMemberAuditQueryInfo queryInfo) {
+        Page<ImGroupMemberAudit> pageInfo = PageUtil.getPage(queryInfo.getPage(), queryInfo.getRows());
+        pageInfo.setDesc("id_");
+        return PageUtil.pageInfo(baseMapper.queryPage(pageInfo,queryInfo));
     }
 }
 

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

@@ -2,9 +2,11 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
+import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
+import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.common.exception.BizException;
@@ -34,6 +36,8 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
 
     @Resource
     private TeacherDao teacherDao;
+    @Resource
+    private ImGroupDao imGroupDao;
 
     @Override
     public ImGroupMemberDao getDao() {
@@ -52,22 +56,24 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
+        //记录群成员
+        List<ImGroupMember> imGroupMembers = new ArrayList<>();
+        BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
+        String username = roleType== ImGroupMember.ImGroupMemberRoleType.TEACHER?basicUserInfo.getRealName():basicUserInfo.getUsername();
+        imGroupMembers.add(new ImGroupMember(imGroupId,userId,username,isAdmin,roleType));
+        this.baseMapper.insertBatch(imGroupMembers);
         //加入融云群
         GroupMember groupMember = new GroupMember(userId.toString(),imGroupId.toString(),null);
         GroupMember[] groupMembers = new GroupMember[]{groupMember};
         GroupModel groupModel = new GroupModel(imGroupId.toString(), 0);
         groupModel.setMembers(groupMembers);
+        ImGroup imGroup = imGroupDao.selectById(imGroupId);
+        groupModel.setName(imGroup.getName());
         Result result = RongCloudConfig.rongCloud.group.join(groupModel);
         if(!result.code.equals(200)){
             log.error("加入群组失败:{}",result.errorMessage);
             throw new BizException("加入群组失败:请联系管理员");
         }
-        //记录群成员
-        List<ImGroupMember> imGroupMembers = new ArrayList<>();
-        BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
-        String username = roleType== ImGroupMember.ImGroupMemberRoleType.TEACHER?basicUserInfo.getRealName():basicUserInfo.getUsername();
-        imGroupMembers.add(new ImGroupMember(imGroupId,userId,username,isAdmin,roleType));
-        this.baseMapper.insertBatch(imGroupMembers);
     }
 
     @Override

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

@@ -2,7 +2,10 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupDto;
@@ -10,7 +13,9 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+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;
@@ -36,6 +41,8 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Resource
     private ImGroupMemberService imGroupMemberService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
 
     @Override
     public ImGroupDao getDao() {
@@ -60,10 +67,17 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroup.setUpdateTime(now);
         this.baseMapper.insert(imGroup);
         Long imGroupId = imGroup.getId();
-        //创建融云群
-        this.rtcCreate(groupMemberIdList,imGroupId,imGroup.getName());
-        //创建成功,添加群成员
+        //添加群成员
         imGroupMemberService.addGroupMember(imGroupId,imGroup.getCreateBy(),true,ImGroupMember.ImGroupMemberRoleType.TEACHER);
+        //最后创建融云群
+        this.rtcCreate(groupMemberIdList,imGroupId,imGroup.getName());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void autoCreate(Long courseGroupId) throws Exception {
+        //获取群成员列表
+
     }
 
     //创建融云群
@@ -91,17 +105,25 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         if(Objects.isNull(imGroup)){
             throw new BizException("操作失败:群组不存在");
         }
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(!sysUser.getId().equals(imGroup.getCreateBy())){
+            throw new BizException("操作失败:您没有操作权限");
+        }
+        //获取所有群成员
+        List<GroupMember> groupMembers = imGroupMemberService.getDao().queryGroupMember(groupId);
+        //销毁成功,删除群
+        this.baseMapper.deleteById(groupId);
+        //删除群成员
+        imGroupMemberService.delByGroupId(groupId);
         //解散融云群
         GroupModel groupModel = new GroupModel(groupId.toString(),0);
+        GroupMember[] groupMembersArr = groupMembers.toArray(new GroupMember[groupMembers.size()]);
+        groupModel.setMembers(groupMembersArr);
         Result result = RongCloudConfig.rongCloud.group.dismiss(groupModel);
         if(!result.code.equals(200)){
             log.error("解散群聊失败:{}",result.errorMessage);
             throw new BizException("解散群聊失败,请联系管理员");
         }
-        //销毁成功,删除群
-        this.baseMapper.deleteById(groupId);
-        //删除群成员
-        imGroupMemberService.delByGroupId(groupId);
     }
 
     @Override
@@ -109,9 +131,16 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     public void syncGroupMemberNum(Long groupId) throws Exception {
         ImGroup imGroup = baseMapper.selectById(groupId);
         Integer memberNum = imGroupMemberService.getBaseMapper().
-                selectCount(new QueryWrapper<ImGroupMember>().eq("im_group_id_",groupId));
+                selectCount(new QueryWrapper<ImGroupMember>().eq("group_id_",groupId));
         imGroup.setMemberNum(memberNum);
         baseMapper.updateById(imGroup);
     }
+
+    @Override
+    public PageInfo<ImGroup> queryPage(Map<String, Object> params) {
+        Page<ImGroup> pageInfo = PageUtil.getPageInfo(params);
+        pageInfo.setDesc("id_");
+        return PageUtil.pageInfo(baseMapper.queryPage(pageInfo,params));
+    }
 }
 

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

@@ -34,11 +34,5 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
         return this.baseMapper;
     }
 
-    @Override
-    public PageInfo<ImUserFriend> queryPage(QueryInfo queryInfo) {
-        Page<ImUserFriend> pageInfo = PageUtil.getPage(queryInfo.getPage(),queryInfo.getRows());
-        return PageUtil.pageInfo(baseMapper.queryPage(pageInfo,queryInfo));
-    }
-
 }
 

+ 13 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -37,6 +37,19 @@
     <select id="getLock" resultMap="BaseResultMap">
         SELECT * FROM im_group WHERE id_ = #{groupId} LIMIT 1 FOR UPDATE
     </select>
+    <select id="queryPage" resultMap="BaseResultMap">
+        SELECT ig.* FROM im_group ig
+        LEFT JOIN im_group_member igm ON igm.group_id_ = ig.id_
+        <where>
+            <if test="params.userId != null">
+                AND igm.user_id_ = #{params.userId}
+            </if>
+            <if test="params.search != null and param.search != ''">
+                AND (ig.id_ = #{params.search} OR
+                ig.name_ LIKE CONCAT('%',#{params.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{params.search},'%'))
+            </if>
+        </where>
+    </select>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroup">

+ 35 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml

@@ -11,6 +11,10 @@
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
     </resultMap>
+    <resultMap id="ImGroupMemberAuditDto" type="com.yonge.cooleshow.biz.dal.dto.ImGroupMemberAuditDto" extends="BaseResultMap">
+        <result property="username" column="username_"/>
+        <result property="avatar" column="avatar_"/>
+    </resultMap>
 
     <sql id="Base_Column_List">
         id_
@@ -27,5 +31,36 @@
             #{entity.auditStatus,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler}, NOW(), NOW())
         </foreach>
     </insert>
+    <select id="findOne" resultMap="BaseResultMap">
+        SELECT <include refid="Base_Column_List"/> FROM im_group_member_audit
+        <where>
+            <if test="groupId != null">
+                AND group_id_ = #{groupId}
+            </if>
+            <if test="userId != null">
+                AND user_id_ = #{userId}
+            </if>
+            <if test="auditStatus != null and auditStatus != ''">
+                AND audit_status_ = #{auditStatus}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+    <select id="queryPage" resultMap="ImGroupMemberAuditDto">
+        SELECT gma.*,su.avatar_,CASE WHEN gma.role_type_ = 'STUDENT' THEN su.username_ ELSE su.real_name_ END username_
+        FROM im_group_member_audit gma
+        LEFT JOIN sys_user su ON su.id_ = gma.user_id_
+        <where>
+            <if test="params.auditStatus != null and params.auditStatus != ''">
+                AND gma.audit_status_ = #{params.auditStatus}
+            </if>
+            <if test="params.groupId != null">
+                AND gma.group_id_ = #{params.groupId}
+            </if>
+            <if test="params.userId != null">
+                AND gma.user_id_ = #{params.userId}
+            </if>
+        </where>
+    </select>
 
 </mapper>

+ 24 - 5
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao">
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
         <id column="id_" jdbcType="INTEGER" property="id"/>
-        <result column="im_group_id_" jdbcType="INTEGER" property="imGroupId"/>
+        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
         <result column="user_id_" jdbcType="INTEGER" property="userId"/>
         <result column="nickname_" jdbcType="VARCHAR" property="nickname"/>
         <result column="is_admin_" jdbcType="VARCHAR" property="isAdmin"/>
@@ -13,16 +13,16 @@
     </resultMap>
 
     <sql id="Base_Column_List">
-        id_ , im_group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_
+        id_ , group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
-        insert into im_group_member(im_group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_,
+        insert into im_group_member(group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_,
         update_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.imGroupId}, #{entity.userId}, #{entity.nickname}, #{entity.isAdmin}, #{entity.roleType},NOW(), NOW())
+            (#{entity.groupId}, #{entity.userId}, #{entity.nickname}, #{entity.isAdmin}, #{entity.roleType},NOW(), NOW())
         </foreach>
         ON DUPLICATE KEY UPDATE
         user_id_ = VALUES(user_id_),
@@ -30,6 +30,25 @@
         role_type_ = VALUES(role_type_)
     </insert>
     <delete id="delByGroupId">
-        DELETE FROM im_group_member WHERE im_group_id_ = #{groupId}
+        DELETE FROM im_group_member WHERE group_id_ = #{groupId}
     </delete>
+    <select id="findOne" resultMap="BaseResultMap">
+        SELECT <include refid="Base_Column_List"/> FROM im_group_member
+        <where>
+            <if test="groupId != null">
+                AND group_id_ = #{groupId}
+            </if>
+            <if test="userId != null">
+                AND user_id_ = #{userId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+    <resultMap id="GroupMember" type="io.rong.models.group.GroupMember">
+        <result property="id" column="user_id_"/>
+        <result property="groupId" column="group_id_"/>
+    </resultMap>
+    <select id="queryGroupMember" resultMap="GroupMember">
+        SELECT user_id_,group_id_ FROM im_group_member WHERE group_id_ = #{groupId}
+    </select>
 </mapper>

+ 4 - 5
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupNoticeDao">
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupNotice">
         <id column="id_" jdbcType="INTEGER" property="id"/>
-        <result column="im_group_id_" jdbcType="INTEGER" property="imGroupId"/>
+        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
         <result column="title_" jdbcType="VARCHAR" property="title"/>
         <result column="content_" jdbcType="VARCHAR" property="content"/>
         <result column="is_top_" jdbcType="VARCHAR" property="isTop"/>
@@ -15,17 +15,16 @@
     </resultMap>
 
     <sql id="Base_Column_List">
-        id_
-        , im_group_id_, title_, content_, is_top_, is_sent_to_new_member_, del_flag_, operator_id_, create_time_, update_time_
+        id_, group_id_, title_, content_, is_top_, is_sent_to_new_member_, del_flag_, operator_id_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroupNotice">
-        insert into im_group_notice(im_group_id_, title_, content_, is_top_, is_sent_to_new_member_, del_flag_,
+        insert into im_group_notice(group_id_, title_, content_, is_top_, is_sent_to_new_member_, del_flag_,
         operator_id_, create_time_, update_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.imGroupId}, #{entity.title}, #{entity.content}, #{entity.isTop}, #{entity.isSentToNewMember},
+            (#{entity.groupId}, #{entity.title}, #{entity.content}, #{entity.isTop}, #{entity.isSentToNewMember},
             #{entity.delFlag}, #{entity.operatorId}, #{entity.createTime}, #{entity.updateTime})
         </foreach>
     </insert>

+ 4 - 7
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -6,6 +6,7 @@
         <result column="user_id_" jdbcType="INTEGER" property="userId"/>
         <result column="friend_id_" jdbcType="INTEGER" property="friendId"/>
         <result column="friend_nickname_" jdbcType="VARCHAR" property="friendNickname"/>
+        <result column="friend_avatar_" jdbcType="VARCHAR" property="friendAvatar"/>
         <result column="memo_" jdbcType="VARCHAR" property="memo"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
@@ -13,20 +14,16 @@
 
     <sql id="Base_Column_List">
         id_
-        , user_id_, friend_id_, friend_nickname_, memo_, create_time_, update_time_
+        , user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImUserFriend">
-        INSERT INTO im_user_friend(user_id_, friend_id_, friend_nickname_, memo_, create_time_, update_time_)
+        INSERT INTO im_user_friend(user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_, create_time_, update_time_)
         VALUES
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.userId}, #{entity.friendId}, #{entity.friendNickname}, #{entity.memo}, #{entity.createTime},
+            (#{entity.userId}, #{entity.friendId}, #{entity.friendNickname}, #{entity.friendAvatar}, #{entity.memo}, #{entity.createTime},
             #{entity.updateTime})
         </foreach>
     </insert>
-    <select id="queryPage">
-
-    </select>
-
 </mapper>

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberAuditController.java

@@ -36,7 +36,7 @@ public class ImGroupMemberAuditController extends BaseController {
 
     @ApiOperation("申请入群")
     @PostMapping(value = "/apply")
-    public HttpResponseResult apply(@Valid @RequestBody ImGroupMemberAudit imGroupMemberAudit){
+    public HttpResponseResult apply(@Valid @RequestBody ImGroupMemberAudit imGroupMemberAudit) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         imGroupMemberAudit.setRoleType(ImGroupMember.ImGroupMemberRoleType.STUDENT);
         imGroupMemberAudit.setUserId(sysUser.getId());

+ 15 - 17
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -8,20 +8,16 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.exception.BizException;
+import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.validator.ValidationKit;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
-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 javax.validation.Valid;
 import java.util.HashSet;
-import java.util.Objects;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -56,25 +52,27 @@ public class ImGroupController extends BaseController {
     }
 
     @ApiOperation("解散群聊")
-    @PostMapping(value = "/dismiss")
-    public HttpResponseResult dismiss(@RequestBody Long groupId) throws Exception {
+    @PostMapping(value = "/dismiss/{groupId}")
+    public HttpResponseResult dismiss(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
         imGroupService.dismiss(groupId);
         return succeed();
     }
 
     @ApiOperation("获取群详情")
-    @PostMapping(value = "/getDetail")
-    public HttpResponseResult<ImGroup> getDetail(@RequestBody Long groupId) throws Exception {
-        if(Objects.isNull(groupId)){
-            throw new BizException("参数校验失败");
-        }
+    @PostMapping(value = "/getDetail/{groupId}")
+    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
         return succeed(imGroupService.getById(groupId));
     }
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "根据群名称、编号、简介模糊查询"),
+    })
     @ApiOperation("分页查询")
     @PostMapping(value = "/queryPage")
-    public HttpResponseResult<Boolean> queryPage(@Valid @RequestBody ImGroup imGroup) throws Exception {
-        return succeed(imGroupService.updateById(imGroup));
+    public HttpResponseResult<PageInfo<ImGroup>> queryPage(@RequestBody Map<String,Object> params) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        params.put("userId",sysUser.getId());
+        return succeed(imGroupService.queryPage(params));
     }
 
     @ApiOperation("修改群信息")

+ 6 - 13
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java

@@ -1,9 +1,6 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
@@ -11,10 +8,10 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
-import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
+import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -54,22 +51,18 @@ public class ImGroupMemberAuditController extends BaseController {
 
     @ApiOperation("申请入群审核")
     @PostMapping(value = "/applyAudit")
-    public HttpResponseResult applyAudit(@RequestBody Long auditId, AuditStatusEnum auditStatus) throws Exception {
-        if(Objects.isNull(auditId) || Objects.isNull(auditStatus)){
+    public HttpResponseResult applyAudit(@RequestBody ImGroupMemberAudit audit) throws Exception {
+        if(Objects.isNull(audit.getId()) || Objects.isNull(audit.getAuditStatus())){
             throw new BizException("参数校验失败");
         }
-        imGroupMemberAuditService.applyAudit(auditId,auditStatus);
+        imGroupMemberAuditService.applyAudit(audit.getId(),audit.getAuditStatus());
         return succeed();
     }
 
     @ApiOperation("申请入群列表")
     @PostMapping(value = "/queryPage")
-    public HttpResponseResult<IPage<ImGroupMemberAudit>> queryPage(@Valid @RequestBody ImGroupMemberAuditQueryInfo queryInfo) throws Exception {
-        Page<ImGroupMemberAudit> pageInfo = PageUtil.getPage(queryInfo.getPage(),queryInfo.getRows());
-        IPage<ImGroupMemberAudit> page = imGroupMemberAuditService.page(pageInfo,
-                Wrappers.<ImGroupMemberAudit>query().lambda()
-                        .eq(ImGroupMemberAudit::getGroupId, queryInfo.getAuditStatus()));
-        return succeed(page);
+    public HttpResponseResult<PageInfo<ImGroupMemberAudit>> queryPage(@Valid @RequestBody ImGroupMemberAuditQueryInfo queryInfo){
+        return succeed(imGroupMemberAuditService.queryPage(queryInfo));
     }
 
 }

+ 22 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -1,13 +1,21 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -15,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.Map;
 
 /**
  * 用户通讯录表(ImUserFriend)表控制层
@@ -31,11 +40,22 @@ public class ImUserFriendController extends BaseController {
      */
     @Resource
     private ImUserFriendService imUserFriendService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "根据用户编号、昵称模糊查询")
+    })
     @ApiOperation("分页查询")
     @PostMapping(value = "/queryPage")
-    public HttpResponseResult<PageInfo<ImUserFriend>> queryPage(@RequestBody QueryInfo queryInfo) throws Exception {
-        return succeed(imUserFriendService.queryPage(queryInfo));
+    public HttpResponseResult<PageInfo<ImUserFriend>> queryPage(@RequestBody Map<String,Object> params) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Page<ImUserFriend> pageInfo = PageUtil.getPageInfo(params);
+        IPage<ImUserFriend> iPage = imUserFriendService.getBaseMapper().selectPage(pageInfo, Wrappers.<ImUserFriend>query().lambda()
+                .or(e->e.eq(ImUserFriend::getFriendId, params.get("search"))
+                        .like(ImUserFriend::getFriendNickname, params.get("search")))
+                .eq(ImUserFriend::getUserId,sysUser.getId()));
+        return succeed(PageUtil.pageInfo(iPage));
     }
 }