From a0ab5e9fe0b56cf71584a355f3e11032439db090 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Wed, 19 Nov 2025 17:17:34 +0800 Subject: [PATCH] =?UTF-8?q?app=E6=B3=A8=E9=94=80=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E8=81=94=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/service/AppLoginService.java | 29 +++++++++++++++++++ .../app/mapper/AppDeviceShareMapper.java | 4 +++ .../app/service/IAppDeviceShareService.java | 2 ++ .../impl/AppDeviceShareServiceImpl.java | 5 ++++ .../mapper/app/AppDeviceShareMapper.xml | 6 ++++ 5 files changed, 46 insertions(+) diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppLoginService.java b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppLoginService.java index 0c86da27..6d038219 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppLoginService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppLoginService.java @@ -4,6 +4,10 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; +import com.fuyuanshen.app.domain.bo.AppDeviceBindRecordBo; +import com.fuyuanshen.app.domain.bo.AppDeviceShareBo; +import com.fuyuanshen.app.domain.vo.AppDeviceBindRecordVo; +import com.fuyuanshen.app.domain.vo.AppDeviceShareVo; import com.fuyuanshen.app.domain.vo.AppRoleVo; import com.fuyuanshen.app.domain.vo.AppUserVo; import com.fuyuanshen.common.core.constant.Constants; @@ -33,6 +37,7 @@ import org.springframework.stereotype.Service; import java.time.Duration; import java.util.*; import java.util.function.Supplier; +import java.util.stream.Collectors; /** * 登录校验方法 @@ -52,6 +57,8 @@ public class AppLoginService { private final ISysTenantService tenantService; private final IAppUserService appUserService; + private final IAppDeviceShareService appDeviceShareService; + private final IAppDeviceBindRecordService appDeviceBindRecordService; /** @@ -188,10 +195,32 @@ public class AppLoginService { public void cancelAccount() { try { AppLoginUser loginUser = AppLoginHelper.getLoginUser(); +// AppLoginUser loginUser = new AppLoginUser(); +// loginUser.setUserId(1988398584423133187L); +// loginUser.setUsername("19022528079"); if (ObjectUtil.isNull(loginUser)) { return; } appUserService.deleteWithValidByIds(Collections.singletonList(loginUser.getUserId()),true); + + AppDeviceBindRecordBo appDeviceBindRecordBo = new AppDeviceBindRecordBo(); + appDeviceBindRecordBo.setBindingUserId(loginUser.getUserId()); + List appDeviceBindRecordVos = appDeviceBindRecordService.queryList(appDeviceBindRecordBo); + if(ObjectUtil.length(appDeviceBindRecordVos)>0){ + + + // 根据设备id批量删除 + List deviceIds = appDeviceBindRecordVos.stream().map(AppDeviceBindRecordVo::getDeviceId).toList(); + appDeviceShareService.deleteByDeviceIds(deviceIds); + + + List ids = appDeviceBindRecordVos.stream() + .map(AppDeviceBindRecordVo::getId) + .collect(Collectors.toList()); + appDeviceBindRecordService.deleteWithValidByIds(ids, true); + log.info("删除绑定关系表数据:ids={}",ids); + } + if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) { // 超级管理员 登出清除动态租户 TenantHelper.clearDynamic(); diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceShareMapper.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceShareMapper.java index 99bc47c0..19819c11 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceShareMapper.java +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceShareMapper.java @@ -9,6 +9,8 @@ import com.fuyuanshen.app.domain.vo.AppDeviceShareVo; import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 设备分享Mapper接口 * @@ -27,4 +29,6 @@ public interface AppDeviceShareMapper extends BaseMapperPlus selectWebDeviceShareList(@Param("bo") AppDeviceShareBo bo, Page page); + + void deleteByDeviceIds(@Param("deviceIds") List deviceIds); } diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceShareService.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceShareService.java index b4fcb4f9..cff36c5c 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceShareService.java +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceShareService.java @@ -67,4 +67,6 @@ public interface IAppDeviceShareService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); TableDataInfo otherDeviceShareList(AppDeviceShareBo bo, PageQuery pageQuery); + + void deleteByDeviceIds(List deviceIds); } diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceShareServiceImpl.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceShareServiceImpl.java index 322268a0..726ef15c 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceShareServiceImpl.java +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceShareServiceImpl.java @@ -166,4 +166,9 @@ public class AppDeviceShareServiceImpl implements IAppDeviceShareService { }); return TableDataInfo.build(result); } + + @Override + public void deleteByDeviceIds(List deviceIds) { + baseMapper.deleteByDeviceIds(deviceIds); + } } diff --git a/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceShareMapper.xml b/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceShareMapper.xml index ce0ffbcf..56de3ddb 100644 --- a/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceShareMapper.xml +++ b/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceShareMapper.xml @@ -3,6 +3,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + delete from app_device_share where device_id in + + #{item} + +