From d10ba456d70e0a7c5970c80f79906b79d9ec571e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=89=91=E9=9B=A8?= <2375294554@qq.com> Date: Mon, 31 Mar 2025 15:26:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=E5=AF=B9=E8=AF=9D=E5=88=A0=E9=99=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20--AdminController.java=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E7=9A=84=E6=96=B9=E6=B3=95=E5=90=8D=E5=AD=97?= =?UTF-8?q?=20--AgentService.java=20=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E7=94=A8=E6=88=B7id=E6=99=BA=E8=83=BD=E4=BD=93?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E5=AE=9A=E4=B9=89=20--Agen?= =?UTF-8?q?tServiceImpl.java=20=E5=AE=9E=E7=8E=B0=E4=BA=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=96=B9=E6=B3=95=20--DeviceService.java=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E6=8C=87=E5=AE=9A=E7=94=A8=E6=88=B7id?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=20--DeviceServiceImpl.java=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E4=BA=86=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95=20--SysUserServic?= =?UTF-8?q?e.java=20=E4=BF=AE=E6=94=B9=E5=88=A0=E9=99=A4=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95=E5=90=8D=E5=AD=97=20--SysUserServic?= =?UTF-8?q?eImpl.java=20=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/agent/service/AgentService.java | 6 ++++++ .../agent/service/impl/AgentServiceImpl.java | 10 ++++++++++ .../modules/device/service/DeviceService.java | 8 +++++++- .../device/service/impl/DeviceServiceImpl.java | 8 ++++++++ .../modules/sys/controller/AdminController.java | 2 +- .../modules/sys/service/SysUserService.java | 6 +++++- .../sys/service/impl/SysUserServiceImpl.java | 17 +++++++++++++---- 7 files changed, 50 insertions(+), 7 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java index da958e4c..7d5285e8 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java @@ -22,4 +22,10 @@ public interface AgentService extends BaseService { * 获取智能体详情 */ AgentEntity getAgentById(String id); + + /** + * 删除这个用户的所有 + * @param userId + */ + void deleteAgentByUserId(String userId); } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java index 8e73c003..40579cee 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java @@ -4,16 +4,19 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.transaction.annotation.Transactional; import xiaozhi.common.page.PageData; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.modules.agent.dao.AgentDao; import xiaozhi.modules.agent.entity.AgentEntity; import xiaozhi.modules.agent.service.AgentService; +import xiaozhi.modules.device.entity.DeviceEntity; @Service public class AgentServiceImpl extends BaseServiceImpl implements AgentService { @@ -62,4 +65,11 @@ public class AgentServiceImpl extends BaseServiceImpl imp return super.insert(entity); } + + @Override + public void deleteAgentByUserId(String userId) { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("user_id", userId); + baseDao.delete(wrapper); + } } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java index bc26f649..5f91bb2e 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java @@ -26,7 +26,7 @@ public interface DeviceService { DeviceEntity bindDevice(DeviceBindDTO deviceHeader); /** - * 获取用户设备列表 + * 获取用户指定智能体的设备列表, */ List getUserDevices(Long userId, String agentId); @@ -39,4 +39,10 @@ public interface DeviceService { * 设备激活 */ Boolean deviceActivation(String activationCode); + + /** + * 删除此用户的所有设备 + * @param userId 用户id + */ + void deleteByUserId(Long userId); } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index 4fd63826..685536c6 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import cn.hutool.core.util.RandomUtil; +import org.springframework.transaction.annotation.Transactional; import xiaozhi.common.exception.RenException; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.user.UserDetail; @@ -197,6 +198,13 @@ public class DeviceServiceImpl extends BaseServiceImpl baseDao.delete(wrapper); } + @Override + public void deleteByUserId(Long userId) { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("user_id", userId); + baseDao.delete(wrapper); + } + private DeviceReportRespDTO.ServerTime buildServerTime() { DeviceReportRespDTO.ServerTime serverTime = new DeviceReportRespDTO.ServerTime(); TimeZone tz = TimeZone.getDefault(); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java index ee551400..9e811237 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java @@ -70,7 +70,7 @@ public class AdminController { @Operation(summary = "用户删除") @RequiresPermissions("sys:role:superAdmin") public Result delete(@PathVariable Long id) { - sysUserService.delete(new Long[] { id }); + sysUserService.deleteById( id ); return new Result<>(); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java index 261fbf96..1b9ac9bc 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java @@ -19,7 +19,11 @@ public interface SysUserService extends BaseService { void save(SysUserDTO dto); - void delete(Long[] ids); + /** + * 删除指定用户,且有关联的数据设备和智能体 + * @param ids + */ + void deleteById(Long ids); /** * 验证是否允许修改密码更改 diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java index 71d507c6..f705e5fa 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java @@ -1,6 +1,5 @@ package xiaozhi.modules.sys.service.impl; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -22,6 +21,8 @@ import xiaozhi.common.exception.RenException; import xiaozhi.common.page.PageData; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; +import xiaozhi.modules.agent.service.AgentService; +import xiaozhi.modules.device.service.DeviceService; import xiaozhi.modules.security.password.PasswordUtils; import xiaozhi.modules.sys.dao.SysUserDao; import xiaozhi.modules.sys.dto.AdminPageUserDTO; @@ -40,6 +41,10 @@ import xiaozhi.modules.sys.vo.AdminPageUserVO; public class SysUserServiceImpl extends BaseServiceImpl implements SysUserService { private final SysUserDao sysUserDao; + private final DeviceService deviceService; + + private final AgentService agentService; + @Override public SysUserDTO getByUsername(String username) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -87,10 +92,14 @@ public class SysUserServiceImpl extends BaseServiceImpl