From 4a79b4c9bc6f9f1c6c0f2d8b5edf755535ba2ad1 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 24 Aug 2025 03:43:43 +0800
Subject: [PATCH] 1

---
 ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java |   62 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java
index d859cab..c428597 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java
@@ -14,11 +14,14 @@
 import com.netease.nim.server.sdk.im.v2.team.TeamV2UrlContext;
 import com.netease.nim.server.sdk.im.v2.team_member.TeamMemberV2UrlContext;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.im.comm.Result;
 import com.ruoyi.im.config.AddTeamMembersRequest;
 import com.ruoyi.im.config.CreateTeamRequest;
 import com.ruoyi.im.config.AssignmentRequest;
 import com.ruoyi.im.service.NeteaseTeamService;
+import com.ruoyi.imenum.ErrorCodeEnum;
 import com.ruoyi.system.domain.GroupWelcomeConfig;
 import com.ruoyi.system.domain.NeteaseTeam;
 import com.ruoyi.system.mapper.NeteaseTeamMapper;
@@ -29,13 +32,19 @@
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
+import javax.validation.constraints.NotBlank;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class NeteaseTeamServiceImpl extends ServiceImpl<NeteaseTeamMapper, NeteaseTeam> implements NeteaseTeamService {
 
     @Resource
     private final YunxinApiHttpClient yunxinClient;
+
+    @Autowired
+    ImApiServcieImpl imApiServcie;
+
 
     // 使用构造函数注入(推荐)
     @Autowired
@@ -77,8 +86,8 @@
             int code = json.getIntValue("code");
 
             if (code != 200) {
-                log.error("网易云信创建群组失败,响应:");
-                return AjaxResult.error("创建群组失败");
+                log.error("-----------网易云信创建群组失败:"+ ErrorCodeEnum.getByCode(code).getComment()+"----im信息:"+ErrorCodeEnum.getByCode(code).getDesc());
+                return AjaxResult.error("创建群组失败:"+ErrorCodeEnum.getByCode(code).getComment());
             }
 
             // 5. 解析响应获取群组ID
@@ -118,7 +127,7 @@
             // 2. 将Map转换为JSON字符串
             String jsonBody = JSON.toJSONString(paramMap);
 
-            NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getGroupId());
+            NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getId());
             if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
@@ -138,8 +147,8 @@
             int code = json.getIntValue("code");
 
             if (code != 200) {
-                log.error("网易云信修改群组失败,响应:");
-                return AjaxResult.error("修改群组失败");
+                log.error("-----------网易云信修改群组失败:"+ ErrorCodeEnum.getByCode(code).getComment()+"----im信息:"+ErrorCodeEnum.getByCode(code).getDesc());
+                return AjaxResult.error("修改群组失败:"+ErrorCodeEnum.getByCode(code).getComment());
             }
 
             // 5. 解析响应获取群组ID
@@ -266,18 +275,34 @@
             if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
-            GroupWelcomeConfig groupWelcomeConfig = groupWelcomeConfigService.getOne(new LambdaQueryWrapper<>(GroupWelcomeConfig.class)
-                    .eq(GroupWelcomeConfig::getConfigurationName, "IM-BASICS").last(" limit 1"));
+            String operatorId;
+            if(StringUtils.isNotEmpty(request.getOperatorId())){
+                operatorId = request.getOperatorId();
+            }else{
+                operatorId = neteaseTeam.getOwnerAccountId();
+            }
+
+
+            List<String> inviteAccountIds = new ArrayList<>();
+            if(ObjectUtil.isNotEmpty(request.getNumber()) && request.getNumber() > 0){
+                Result result = imApiServcie.batchRegister(request.getNumber());
+                if(result.getCode() != 200){
+                    return AjaxResult.error("生成账号错误!");
+                }
+                List<String> accountList = (List<String>) result.getData();
+                inviteAccountIds = accountList;
+            }else{
+                inviteAccountIds = request.getInviteAccountIds();
+            }
 
             AddTeamMembersRequest build = AddTeamMembersRequest.builder()
-                    .inviteAccountIds(request.getInviteAccountIds())
-                    .operatorId(groupWelcomeConfig.getUserAccid())
+                    .inviteAccountIds(inviteAccountIds)
+                    .operatorId(operatorId)
                     .msg(request.getMsg())
                     .teamId(Long.valueOf(neteaseTeam.getTid()))
                     .teamType(neteaseTeam.getTeamType())
                     .build();
 
-// 方法1:使用 Jackson ObjectMapper
             ObjectMapper objectMapper = new ObjectMapper();
             String jsonBody = objectMapper.writeValueAsString(build);
 
@@ -295,9 +320,10 @@
             int code = json.getIntValue("code");
 
             if (code != 200) {
-                log.error("网易云信拉人入群失败,响应:");
-                return AjaxResult.error("拉人入群失败");
+                log.error("-----------网易云信拉人入群失败:"+ ErrorCodeEnum.getByCode(code).getComment()+"----im信息:"+ErrorCodeEnum.getByCode(code).getDesc());
+                return AjaxResult.error("拉人入群失败:"+ErrorCodeEnum.getByCode(code).getComment());
             }
+
             return AjaxResult.success();
         } catch (YunxinSdkException e) {
             // 云信调用异常时回滚事务
@@ -346,9 +372,11 @@
             int code = json.getIntValue("code");
 
             if (code != 200) {
-                log.error("网易云信转让群主失败,响应:");
-                return AjaxResult.error("转让群主失败");
+                log.error("-----------网易云信转让群主失败:"+ ErrorCodeEnum.getByCode(code).getComment()+"----im信息:"+ErrorCodeEnum.getByCode(code).getDesc());
+                return AjaxResult.error("转让群主失败:"+ErrorCodeEnum.getByCode(code).getComment());
             }
+            neteaseTeam.setOwnerAccountId(request.getNew_owner_account_id());
+            neteaseTeamMapper.updateById(neteaseTeam);
             return AjaxResult.success();
         } catch (YunxinSdkException e) {
             // 云信调用异常时回滚事务
@@ -389,9 +417,11 @@
             int code = json.getIntValue("code");
 
             if (code != 200) {
-                log.error("网易云信解散群失败,响应:");
-                return AjaxResult.error("解散群失败");
+                log.error("-----------网易云信解散群失败:"+ ErrorCodeEnum.getByCode(code).getComment()+"----im信息:"+ErrorCodeEnum.getByCode(code).getDesc());
+                return AjaxResult.error("解散群失败:"+ErrorCodeEnum.getByCode(code).getComment());
             }
+
+
             neteaseTeam.setStatus(1);
             neteaseTeamMapper.updateById(neteaseTeam);
             return AjaxResult.success();

--
Gitblit v1.9.3