liujc 1 år sedan
förälder
incheckning
c639182c65

+ 1 - 1
mec-application/src/main/java/com/ym/mec/web/controller/ImGroupController.java

@@ -289,7 +289,7 @@ public class ImGroupController extends BaseController {
 			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "String")})
 	public Object quitGroup(String imGroupId, String userId) {
 		List<Integer> userIds = Arrays.stream(userId.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
-		return succeed(imGroupMemberService.quit(imGroupId,userIds));
+		return succeed(imGroupMemberService.quit(imGroupId,userIds,false));
 	}
 
     @ApiOperation(" 移交群主")

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

@@ -64,6 +64,15 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 */
 	boolean quit(String imGroupId, List<Integer> userIdList);
 
+
+    /**
+     * 用户批量退出群组
+     * @param imGroupId 群组编号
+     * @param userIdList 学生编号
+     * @return
+     */
+    boolean quit(String imGroupId, List<Integer> userIdList,Boolean quit);
+
 	/**
 	 * 修改角色类型
 	 * @param imGroupId 群组编号

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

@@ -75,6 +75,13 @@ public interface ImGroupCoreService {
      */
     void groupQuit(List<GroupMemberWrapper.ImGroupMember> imGroupMembers, String groupId) throws Exception;
 
+
+    /**
+     * 批量退群
+     *
+     */
+    void groupQuit(List<GroupMemberWrapper.ImGroupMember> imGroupMembers, String groupId,Boolean quit) throws Exception;
+
     /**
      * 用户主动退出群聊
      * @param userId 用户信息

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/im/impl/ImGroupCoreServiceImpl.java

@@ -333,12 +333,21 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
         imPluginContext.getPluginService().groupQuit(imGroup.getId(), getImGroupMembers(groupMembers));
     }
 
+
     /**
      * 批量退群
      *
      */
     @Override
     public void groupQuit(List<GroupMemberWrapper.ImGroupMember> imGroupMembers, String groupId) throws Exception {
+        groupQuit(imGroupMembers, groupId, true);
+    }
+        /**
+         * 批量退群
+         *
+         */
+    @Override
+    public void groupQuit(List<GroupMemberWrapper.ImGroupMember> imGroupMembers, String groupId,Boolean quit) throws Exception {
 
 
         // 判定登录用户是否为群主
@@ -373,7 +382,9 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
                 .eq(ImGroupPlus::getId, imGroup.getId())
                 .set(ImGroupPlus::getMemberNum, count)
                 .update();
-        imPluginContext.getPluginService().groupQuit(imGroup.getId(), imGroupMembers);
+        if (quit) {
+            imPluginContext.getPluginService().groupQuit(imGroup.getId(), imGroupMembers);
+        }
 
     }
 

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -389,9 +389,16 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		return true;
 	}
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean quit(String imGroupId, List<Integer> userIdList) {
+
+        return quit(imGroupId, userIdList, true);
+    }
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean quit(String imGroupId, List<Integer> userIdList) {
+	public boolean quit(String imGroupId, List<Integer> userIdList,Boolean quit) {
 
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {
@@ -434,7 +441,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		} else {
 			try {
 				// 腾讯云IM用户退群
-				imGroupCoreService.groupQuit(imGroupMembers, groupId);
+				imGroupCoreService.groupQuit(imGroupMembers, groupId,quit);
 			} catch (Exception e) {
 				log.error("腾讯云IM用户退群失败", e);
 			}