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 1/3] =?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} + + + + + \ No newline at end of file From 00a4394b430d8cfa4d0d553d024804b914496526 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Thu, 20 Nov 2025 16:15:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceServiceImpl.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java index 6e9551c1..78a83f51 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java @@ -192,10 +192,21 @@ public class DeviceServiceImpl extends ServiceImpl impleme throw new BadRequestException("设备IMEI已存在!!!"); } + DeviceTypeGrants typeGrants = new DeviceTypeGrants(); + + if (deviceForm.getDeviceType() != null) { + DeviceTypeQueryCriteria queryCriteria = new DeviceTypeQueryCriteria(); + queryCriteria.setDeviceTypeId(deviceForm.getDeviceType()); + typeGrants = deviceTypeGrantsMapper.selectById(queryCriteria.getDeviceTypeId()); + if (typeGrants == null) { + throw new Exception("设备类型不存在!!!"); + } + } + // 检查设备类型是否存在,如果不存在则创建 DeviceType deviceType = null; if (deviceForm.getDeviceType() != null) { - deviceType = deviceTypeMapper.selectById(deviceForm.getDeviceType()); + deviceType = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId()); } else if (deviceForm.getTypeName() != null) { deviceType = deviceTypeMapper.selectOne(new QueryWrapper().eq("type_name", deviceForm.getTypeName())); } @@ -278,7 +289,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme // 保存图片并获取URL if (deviceForm.getFile() != null) { String fileHash = fileHashUtil.hash(deviceForm.getFile()); - SysOssVo upload = ossService.updateHash(deviceForm.getFile(),fileHash); + SysOssVo upload = ossService.updateHash(deviceForm.getFile(), fileHash); // 设置图片路径 deviceForm.setDevicePic(upload.getUrl()); } @@ -353,7 +364,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme // 处理上传的图片 if (deviceForm.getFile() != null) { String fileHash = fileHashUtil.hash(deviceForm.getFile()); - SysOssVo oss = ossService.updateHash(deviceForm.getFile(),fileHash); + SysOssVo oss = ossService.updateHash(deviceForm.getFile(), fileHash); // 强制将HTTP替换为HTTPS if (oss.getUrl() != null && oss.getUrl().startsWith("http://")) { oss.setUrl(oss.getUrl().replaceFirst("^http://", "https://"));