Browse Source

Merge branch 'feature/1020-tencent-im' of http://git.dayaedu.com/yonge/mec into dev

zouxuan 1 year ago
parent
commit
2a9c91a173

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

@@ -295,6 +295,18 @@ public class ImGroupController extends BaseController {
 		return succeed(imGroupMemberService.quit(imGroupId,userIds));
 	}
 
+
+    @ApiOperation("主动退群")
+    @PostMapping(value = "/quitGroup/v2")
+    @AuditLogAnnotation(operateName = "退群",interfaceURL = "imGroup/quitGroup/v2")
+    @ApiImplicitParams({ @ApiImplicitParam(name = "imGroupId", value = "群编号", required = true, dataType = "String"),
+        @ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "String")})
+    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));
+    }
+
+
     @ApiOperation(" 移交群主")
     @AuditLogAnnotation(operateName = "移交群主",interfaceURL = "imGroup/groupChangeOwner")
     @PostMapping(value = "/groupChangeOwner")

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

@@ -60,6 +60,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

@@ -325,12 +325,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 {
 
 
         // 判定登录用户是否为群主
@@ -365,7 +374,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);
+        }
 
     }
 

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

@@ -504,6 +504,13 @@ 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;
@@ -545,7 +552,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);
 			}