forked from dyf/fys-Multi-tenant
Compare commits
5 Commits
aa69b552aa
...
7c6f3be844
| Author | SHA1 | Date | |
|---|---|---|---|
| 7c6f3be844 | |||
| 00a4394b43 | |||
| 2376a3b42a | |||
| 76c11fff15 | |||
| a0ab5e9fe0 |
@ -4,6 +4,10 @@ import cn.dev33.satoken.exception.NotLoginException;
|
|||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
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.AppRoleVo;
|
||||||
import com.fuyuanshen.app.domain.vo.AppUserVo;
|
import com.fuyuanshen.app.domain.vo.AppUserVo;
|
||||||
import com.fuyuanshen.common.core.constant.Constants;
|
import com.fuyuanshen.common.core.constant.Constants;
|
||||||
@ -33,6 +37,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录校验方法
|
* 登录校验方法
|
||||||
@ -52,6 +57,8 @@ public class AppLoginService {
|
|||||||
|
|
||||||
private final ISysTenantService tenantService;
|
private final ISysTenantService tenantService;
|
||||||
private final IAppUserService appUserService;
|
private final IAppUserService appUserService;
|
||||||
|
private final IAppDeviceShareService appDeviceShareService;
|
||||||
|
private final IAppDeviceBindRecordService appDeviceBindRecordService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -188,10 +195,32 @@ public class AppLoginService {
|
|||||||
public void cancelAccount() {
|
public void cancelAccount() {
|
||||||
try {
|
try {
|
||||||
AppLoginUser loginUser = AppLoginHelper.getLoginUser();
|
AppLoginUser loginUser = AppLoginHelper.getLoginUser();
|
||||||
|
// AppLoginUser loginUser = new AppLoginUser();
|
||||||
|
// loginUser.setUserId(1988398584423133187L);
|
||||||
|
// loginUser.setUsername("19022528079");
|
||||||
if (ObjectUtil.isNull(loginUser)) {
|
if (ObjectUtil.isNull(loginUser)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
appUserService.deleteWithValidByIds(Collections.singletonList(loginUser.getUserId()),true);
|
appUserService.deleteWithValidByIds(Collections.singletonList(loginUser.getUserId()),true);
|
||||||
|
|
||||||
|
AppDeviceBindRecordBo appDeviceBindRecordBo = new AppDeviceBindRecordBo();
|
||||||
|
appDeviceBindRecordBo.setBindingUserId(loginUser.getUserId());
|
||||||
|
List<AppDeviceBindRecordVo> appDeviceBindRecordVos = appDeviceBindRecordService.queryList(appDeviceBindRecordBo);
|
||||||
|
if(ObjectUtil.length(appDeviceBindRecordVos)>0){
|
||||||
|
|
||||||
|
|
||||||
|
// 根据设备id批量删除
|
||||||
|
List<Long> deviceIds = appDeviceBindRecordVos.stream().map(AppDeviceBindRecordVo::getDeviceId).toList();
|
||||||
|
appDeviceShareService.deleteByDeviceIds(deviceIds);
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> ids = appDeviceBindRecordVos.stream()
|
||||||
|
.map(AppDeviceBindRecordVo::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
appDeviceBindRecordService.deleteWithValidByIds(ids, true);
|
||||||
|
log.info("删除绑定关系表数据:ids={}",ids);
|
||||||
|
}
|
||||||
|
|
||||||
if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) {
|
if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) {
|
||||||
// 超级管理员 登出清除动态租户
|
// 超级管理员 登出清除动态租户
|
||||||
TenantHelper.clearDynamic();
|
TenantHelper.clearDynamic();
|
||||||
|
|||||||
@ -9,6 +9,8 @@ import com.fuyuanshen.app.domain.vo.AppDeviceShareVo;
|
|||||||
import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus;
|
import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备分享Mapper接口
|
* 设备分享Mapper接口
|
||||||
*
|
*
|
||||||
@ -27,4 +29,6 @@ public interface AppDeviceShareMapper extends BaseMapperPlus<AppDeviceShare, App
|
|||||||
* @return 设备分享
|
* @return 设备分享
|
||||||
*/
|
*/
|
||||||
Page<AppDeviceShareVo> selectWebDeviceShareList(@Param("bo") AppDeviceShareBo bo, Page<AppDeviceShareVo> page);
|
Page<AppDeviceShareVo> selectWebDeviceShareList(@Param("bo") AppDeviceShareBo bo, Page<AppDeviceShareVo> page);
|
||||||
|
|
||||||
|
void deleteByDeviceIds(@Param("deviceIds") List<Long> deviceIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,4 +67,6 @@ public interface IAppDeviceShareService {
|
|||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
TableDataInfo<AppDeviceShareVo> otherDeviceShareList(AppDeviceShareBo bo, PageQuery pageQuery);
|
TableDataInfo<AppDeviceShareVo> otherDeviceShareList(AppDeviceShareBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
void deleteByDeviceIds(List<Long> deviceIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -166,4 +166,9 @@ public class AppDeviceShareServiceImpl implements IAppDeviceShareService {
|
|||||||
});
|
});
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteByDeviceIds(List<Long> deviceIds) {
|
||||||
|
baseMapper.deleteByDeviceIds(deviceIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,12 @@
|
|||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.fuyuanshen.app.mapper.AppDeviceShareMapper">
|
<mapper namespace="com.fuyuanshen.app.mapper.AppDeviceShareMapper">
|
||||||
|
<delete id="deleteByDeviceIds">
|
||||||
|
delete from app_device_share where device_id in
|
||||||
|
<foreach item="item" collection="deviceIds" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
<select id="otherDeviceShareList" resultType="com.fuyuanshen.app.domain.vo.AppDeviceShareVo">
|
<select id="otherDeviceShareList" resultType="com.fuyuanshen.app.domain.vo.AppDeviceShareVo">
|
||||||
select d.device_name,
|
select d.device_name,
|
||||||
|
|||||||
@ -137,4 +137,13 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
|||||||
List<DeviceUsageFrequencyVo> getDeviceUsageFrequency(@Param("days") int days);
|
List<DeviceUsageFrequencyVo> getDeviceUsageFrequency(@Param("days") int days);
|
||||||
|
|
||||||
List<OnlineStatusVo> queryOnlineStatusList();
|
List<OnlineStatusVo> queryOnlineStatusList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据设备类型ID查询设备数量
|
||||||
|
*
|
||||||
|
* @param deviceTypeId 设备类型ID
|
||||||
|
* @return 设备数量
|
||||||
|
*/
|
||||||
|
int countByDeviceTypeId(@Param("deviceTypeId") Long deviceTypeId);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -192,10 +192,21 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
throw new BadRequestException("设备IMEI已存在!!!");
|
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;
|
DeviceType deviceType = null;
|
||||||
if (deviceForm.getDeviceType() != null) {
|
if (deviceForm.getDeviceType() != null) {
|
||||||
deviceType = deviceTypeMapper.selectById(deviceForm.getDeviceType());
|
deviceType = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId());
|
||||||
} else if (deviceForm.getTypeName() != null) {
|
} else if (deviceForm.getTypeName() != null) {
|
||||||
deviceType = deviceTypeMapper.selectOne(new QueryWrapper<DeviceType>().eq("type_name", deviceForm.getTypeName()));
|
deviceType = deviceTypeMapper.selectOne(new QueryWrapper<DeviceType>().eq("type_name", deviceForm.getTypeName()));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -224,6 +224,16 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
|
|||||||
throw new RuntimeException("设备类型不存在");
|
throw new RuntimeException("设备类型不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (!deviceType.getTypeName().equals(resources.getTypeName())) {
|
||||||
|
int count = deviceMapper.countByDeviceTypeId(deviceType.getId());
|
||||||
|
if (count > 0) {
|
||||||
|
throw new RuntimeException("该设备类型下已有绑定设备,无法修改设备类型名称!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>()
|
// List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>()
|
||||||
// .eq("device_type", deviceTypeGrants.getDeviceTypeId()));
|
// .eq("device_type", deviceTypeGrants.getDeviceTypeId()));
|
||||||
// if (CollectionUtil.isNotEmpty(devices)) {
|
// if (CollectionUtil.isNotEmpty(devices)) {
|
||||||
|
|||||||
@ -497,4 +497,11 @@
|
|||||||
FROM device a left join device_type b on a.device_type = b.id where b.communication_mode in (0, 2) and a.online_status in (1,2)
|
FROM device a left join device_type b on a.device_type = b.id where b.communication_mode in (0, 2) and a.online_status in (1,2)
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 根据设备类型ID查询设备数量 -->
|
||||||
|
<select id="countByDeviceTypeId" resultType="int">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM device
|
||||||
|
WHERE device_type = #{deviceTypeId}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user