Browse Source

群主转让、群注销

zouxuan 1 year ago
parent
commit
146dfe835d

+ 10 - 8
mec-application/src/main/java/com/ym/mec/student/controller/ImGroupController.java

@@ -20,15 +20,10 @@ import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("${app-config.url.student:}/imGroup")
 @Api(tags = "IM群服务")
@@ -243,4 +238,11 @@ public class ImGroupController extends BaseController {
     public Object imRegister(Integer userId) throws Exception {
         return succeed(imGroupCoreService.register(userId.toString(),"","测试",null));
     }
+
+	@ApiOperation("主动退群")
+	@PostMapping(value = "/quitGroup/v2")
+	public Object quitGroupV2(String imGroupId, String userId) {
+		List<Integer> userIds = Arrays.stream(userId.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+		return succeed(imGroupMemberService.quit(imGroupId,userIds,false));
+	}
 }

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

@@ -307,6 +307,6 @@ public class ImGroupController extends BaseController {
 	@PostMapping(value = "/quitGroup/v2")
 	public Object quitGroupV2(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));
 	}
 }

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

@@ -377,4 +377,11 @@ public class ImGroupController extends BaseController {
         return succeed();
     }
 
+	@ApiOperation("主动退群")
+	@PostMapping(value = "/quitGroup/v2")
+	public Object quitGroupV2(String imGroupId, String userId) {
+		List<Integer> userIds = Arrays.stream(userId.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+		return succeed(imGroupMemberService.quit(imGroupId,userIds,false));
+	}
+
 }

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
 import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;
@@ -64,7 +65,9 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 */
 	boolean quit(String imGroupId, List<Integer> userIdList);
 
-	/**
+    boolean quit(String imGroupId, List<Integer> userIdList, Boolean quit);
+
+    /**
 	 * 修改角色类型
 	 * @param imGroupId 群组编号
 	 * @param userId 用户编号

+ 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 用户信息

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

@@ -351,6 +351,14 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
      */
     @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 {
 
 
         // 判定登录用户是否为群主
@@ -385,7 +393,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);
+        }
 
     }
 

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -525,6 +525,12 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 	@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,Boolean quit) {
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {
 			return true;
@@ -566,7 +572,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);
 			}