diff --git a/src/main/java/com/tailbet/controller/OpsController.java b/src/main/java/com/tailbet/controller/OpsController.java index cd4f5c1..75de635 100644 --- a/src/main/java/com/tailbet/controller/OpsController.java +++ b/src/main/java/com/tailbet/controller/OpsController.java @@ -81,7 +81,19 @@ public class OpsController { } /** - * 群主设置管理员 + * 踢出群成员 + *
+ * 操作人需为该群群主或管理员;同时从本地数据库和 OpenIM 移除成员。 + *
+ */ + @PostMapping("/group/kick") + public R
* 操作人需为该群群主;同时本地与 OpenIM 角色都会更新(OpenIM roleLevel=60=管理员),
* OpenIM 同步失败会抛异常回滚本地事务,保证本地与 IM 角色一致。
diff --git a/src/main/java/com/tailbet/service/impl/GroupServiceImpl.java b/src/main/java/com/tailbet/service/impl/GroupServiceImpl.java
index c21587a..adc7258 100644
--- a/src/main/java/com/tailbet/service/impl/GroupServiceImpl.java
+++ b/src/main/java/com/tailbet/service/impl/GroupServiceImpl.java
@@ -219,8 +219,11 @@ public class GroupServiceImpl implements IGroupService {
@Transactional
public void kickUser(Long groupId, Long targetUserId, Long operatorId) {
Group group = groupMapper.selectById(groupId);
+ if (group == null) {
+ throw new RuntimeException("群组不存在");
+ }
- // 检查权限
+ // 检查操作人权限
GroupMember operator = groupMemberMapper.selectOne(new LambdaQueryWrapper