From 8c3dc4b9120425d4e44405649996d9f477dbf9cc Mon Sep 17 00:00:00 2001 From: La123123 <617330105@qq.com> Date: Tue, 12 May 2026 16:11:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../im/service/impl/ImAgentServiceImpl.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java index 61afb2e..844e4dd 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java @@ -16,6 +16,8 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.im.constant.ImConstant; +import org.dromara.im.domain.ImUser; +import org.dromara.im.mapper.ImUserMapper; import org.dromara.im.mq.ImRedisMQTemplate; import org.springframework.stereotype.Service; import org.dromara.im.domain.bo.ImAgentBo; @@ -44,6 +46,8 @@ public class ImAgentServiceImpl implements IImAgentService { private final ImAgentMapper baseMapper; + private final ImUserMapper userMapper; + /** * 查询代理关联 * @@ -286,8 +290,22 @@ public class ImAgentServiceImpl implements IImAgentService { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(ImAgent::getId, agent.getId()); - wrapper.set(ImAgent::getDefaultKefuId, customerId); - baseMapper.update(new ImAgent(), wrapper); + + if (customerId == null) { + wrapper.setSql("default_kefu_id = NULL"); + } else { + //校验客服是否是该代理下的 + String token = this.getTokenByUserId(); + LambdaQueryWrapper exist = new LambdaQueryWrapper<>(); + exist.eq(ImUser::getUniqueToken, token); + exist.eq(ImUser::getId, customerId); + ImUser existUser = userMapper.selectOne(exist); + if(ObjectUtil.isEmpty(existUser)){ + throw new RuntimeException("异常数据"); + } + wrapper.set(ImAgent::getDefaultKefuId, customerId); + } + baseMapper.update(wrapper); }