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} + + + + + \ No newline at end of file