Browse Source

Merge branch 'dev_v1.3.5_20220927'

Eric 2 years ago
parent
commit
5b4743fe56

+ 2 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -61,7 +62,7 @@ public class ImGroupController extends BaseController {
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
     public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId,sysUserService.getUserId());
+        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT);
         return succeed();
     }
 }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberDao.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import io.rong.models.group.GroupMember;
 import org.apache.ibatis.annotations.Param;
 
@@ -48,6 +49,6 @@ public interface ImGroupMemberDao extends BaseMapper<ImGroupMember> {
     ImGroupMember findByUserIdAndGroupId(@Param("userId") Long userId, @Param("groupId") String groupId);
 
     //删除群成员
-    int delByGroupIdAndUserId(@Param("groupId") String groupId, @Param("userId") Long userId);
+    int delByGroupIdAndUserId(@Param("groupId") String groupId, @Param("userId") Long userId, @Param("roleType") ImGroupMemberRoleType roleType);
 }
 

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

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 
 import java.util.List;
 
@@ -70,7 +71,7 @@ public interface ImGroupService extends IService<ImGroup> {
     ImGroup getByCourseGroupId(Long courseGroupId);
 
     //退群
-    void quit(String groupId,Long userId) throws Exception;
+    void quit(String groupId, Long userId, ClientEnum clientType) throws Exception;
 
     /**
      * 用户群组信息

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

@@ -221,18 +221,14 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void quit(String groupId, Long userId) throws Exception {
-        if(imGroupMemberService.getDao().delByGroupIdAndUserId(groupId, userId) < 1){
-            throw new BizException("操作失败:用户不在此群组");
-        }
-        //修改群成员数
-        baseMapper.updateMemberNum(groupId);
+    public void quit(String groupId, Long userId, ClientEnum clientType) throws Exception {
 
+        ImGroupMemberRoleType roleType = ImGroupMemberRoleType.valueOf(clientType.name());
         // 查询群成员用户身份
         ImGroupMember groupMember = imGroupMemberService.lambdaQuery()
                 .eq(ImGroupMember::getGroupId, groupId)
                 .eq(ImGroupMember::getUserId, userId)
-                .eq(ImGroupMember::getIsAdmin, false)
+                .eq(ImGroupMember::getRoleType, roleType)
                 .one();
 
         String imUserId = String.valueOf(userId);
@@ -242,6 +238,12 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
             imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
         }
 
+        if(imGroupMemberService.getDao().delByGroupIdAndUserId(groupId, userId, roleType) < 1){
+            throw new BizException("操作失败:用户不在此群组");
+        }
+        //修改群成员数
+        baseMapper.updateMemberNum(groupId);
+
         GroupModel groupModel = new GroupModel(groupId,0);
         GroupMember[] groupMembers = new GroupMember[]{new GroupMember(imUserId,groupId,null)};
         groupModel.setMembers(groupMembers);

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

@@ -189,11 +189,11 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
             if (ClientEnum.TEACHER == clientType) {
 
                 imUserFriendService.lambdaUpdate()
-                        .eq(ImUserFriend::getUserId, teacherId)
-                        .eq(ImUserFriend::getClientType, ClientEnum.TEACHER)
-                        .eq(ImUserFriend::getFriendId, userId)
-                        .eq(ImUserFriend::getFriendType, ClientEnum.STUDENT)
-                        .set(ImUserFriend::getFriendType, ClientEnum.TEACHER);
+                        .eq(ImUserFriend::getUserId, userId)
+                        .eq(ImUserFriend::getClientType, ClientEnum.STUDENT)
+                        .eq(ImUserFriend::getFriendId, teacherId)
+                        .eq(ImUserFriend::getFriendType, ClientEnum.TEACHER)
+                        .set(ImUserFriend::getClientType, ClientEnum.TEACHER);
             }
         }
 

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

@@ -33,7 +33,7 @@
         DELETE FROM im_group_member WHERE group_id_ = #{groupId}
     </delete>
     <delete id="delByGroupIdAndUserId">
-        DELETE FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId}
+        DELETE FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId} AND role_type_ = #{roleType}
     </delete>
     <select id="findOne" resultMap="BaseResultMap">
         SELECT <include refid="Base_Column_List"/> FROM im_group_member

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

@@ -6,6 +6,7 @@ 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.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
@@ -95,7 +96,7 @@ public class ImGroupController extends BaseController {
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
     public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId,sysUserService.getUserId());
+        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT);
         return succeed();
     }
 }

+ 2 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -4,6 +4,7 @@ package com.yonge.cooleshow.teacher.controller;
 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.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
@@ -59,7 +60,7 @@ public class ImGroupController extends BaseController {
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
     public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId,sysUserService.getUserId());
+        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.TEACHER);
         return succeed();
     }
 

+ 1 - 1
service.md

@@ -8,7 +8,7 @@
 - [ ] websocket-server
 - [ ] audio-analysis
 - [ ] bbs-server
-- [x] classroom-server
+- [ ] classroom-server
 - [ ] cms-server
 - [ ] mall-admin
 - [ ] mall-server