From a441a1665bc8dd78b70cc842ad9777ff0ec6daee Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sat, 23 Aug 2025 02:11:45 +0800
Subject: [PATCH] 1

---
 ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 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 2fb1eb6..d859cab 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
@@ -4,7 +4,9 @@
 import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.netease.nim.server.sdk.core.YunxinApiHttpClient;
 import com.netease.nim.server.sdk.core.YunxinApiResponse;
 import com.netease.nim.server.sdk.core.exception.YunxinSdkException;
@@ -17,8 +19,10 @@
 import com.ruoyi.im.config.CreateTeamRequest;
 import com.ruoyi.im.config.AssignmentRequest;
 import com.ruoyi.im.service.NeteaseTeamService;
+import com.ruoyi.system.domain.GroupWelcomeConfig;
 import com.ruoyi.system.domain.NeteaseTeam;
 import com.ruoyi.system.mapper.NeteaseTeamMapper;
+import com.ruoyi.system.service.GroupWelcomeConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,7 +43,8 @@
         this.yunxinClient = yunxinClient;
     }
 
-
+    @Autowired
+    GroupWelcomeConfigService groupWelcomeConfigService;
 
     @Resource
     private NeteaseTeamMapper neteaseTeamMapper;
@@ -114,7 +119,7 @@
             String jsonBody = JSON.toJSONString(paramMap);
 
             NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getGroupId());
-            if(ObjectUtil.isNotEmpty(neteaseTeam)){
+            if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
 
@@ -258,18 +263,23 @@
         try {
 
             NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getGroupId());
-            if(ObjectUtil.isNotEmpty(neteaseTeam)){
+            if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
+            GroupWelcomeConfig groupWelcomeConfig = groupWelcomeConfigService.getOne(new LambdaQueryWrapper<>(GroupWelcomeConfig.class)
+                    .eq(GroupWelcomeConfig::getConfigurationName, "IM-BASICS").last(" limit 1"));
 
             AddTeamMembersRequest build = AddTeamMembersRequest.builder()
                     .inviteAccountIds(request.getInviteAccountIds())
-                    .operatorId(request.getOperatorId())
+                    .operatorId(groupWelcomeConfig.getUserAccid())
                     .msg(request.getMsg())
-                    .teamId(Long.getLong(neteaseTeam.getTid()))
+                    .teamId(Long.valueOf(neteaseTeam.getTid()))
                     .teamType(neteaseTeam.getTeamType())
                     .build();
-            String jsonBody = JSONUtils.toJSONString(build);
+
+// 方法1:使用 Jackson ObjectMapper
+            ObjectMapper objectMapper = new ObjectMapper();
+            String jsonBody = objectMapper.writeValueAsString(build);
 
             YunxinApiResponse response = yunxinClient.executeV2Api(
                     HttpMethod.POST,
@@ -307,16 +317,18 @@
         try {
 
             NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getGroupId());
-            if(ObjectUtil.isNotEmpty(neteaseTeam)){
+            if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
 
             AssignmentRequest build = AssignmentRequest.builder()
-                    .teamId(Long.getLong(neteaseTeam.getTid()))
+                    .teamId(Long.valueOf(neteaseTeam.getTid()))
                     .team_type(neteaseTeam.getTeamType())
-                    .leave(2)
+                    .new_owner_account_id(request.getNew_owner_account_id())
+                    .leave(request.getLeave())
                     .build();
-            String requestBody = JSONUtils.toJSONString(build);
+            ObjectMapper objectMapper = new ObjectMapper();
+            String requestBody = objectMapper.writeValueAsString(build);
 
             String path = TeamV2UrlContext.TRANSFER_OWNER.replace("{team_id}",neteaseTeam.getTid().toString());
 
@@ -352,10 +364,10 @@
     }
 
     @Override
-    public AjaxResult dismiss(Long id) {
+    public AjaxResult dismiss(Integer id) {
         try {
             NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(id);
-            if(ObjectUtil.isNotEmpty(neteaseTeam)){
+            if(ObjectUtil.isEmpty(neteaseTeam)){
                 return AjaxResult.error("群不存在!");
             }
             Map<String, String> queryParams = new HashMap<>();
@@ -380,6 +392,8 @@
                 log.error("网易云信解散群失败,响应:");
                 return AjaxResult.error("解散群失败");
             }
+            neteaseTeam.setStatus(1);
+            neteaseTeamMapper.updateById(neteaseTeam);
             return AjaxResult.success();
         } catch (YunxinSdkException e) {
             // 云信调用异常时回滚事务

--
Gitblit v1.9.3