diff --git a/agri-system/src/main/java/com/agri/system/controller/SysAgriInfoController.java b/agri-system/src/main/java/com/agri/system/controller/SysAgriInfoController.java index 8ed66b0..0928d10 100644 --- a/agri-system/src/main/java/com/agri/system/controller/SysAgriInfoController.java +++ b/agri-system/src/main/java/com/agri/system/controller/SysAgriInfoController.java @@ -10,6 +10,7 @@ import com.agri.common.utils.poi.ExcelUtil; import com.agri.system.domain.SysAgriInfo; import com.agri.system.domain.SysUserAgri; import com.agri.system.domain.vo.AgriInfoView; +import com.agri.system.domain.vo.AgriShareInfoVO; import com.agri.system.service.ISysAgriInfoService; import com.agri.system.service.ISysUserAgriService; import org.apache.commons.lang3.StringUtils; @@ -168,4 +169,14 @@ public class SysAgriInfoController extends BaseController return update? success():error(); } + + /** + * 查询设备分享信息(可分享列表 + 分享给我的设备列表) + */ + @PreAuthorize("@ss.hasPermi('assets:agri:list')") + @GetMapping("/selectShareInfo") + public AjaxResult selectShareInfo() { + AgriShareInfoVO result = sysAgriInfoService.selectShareInfoByUser(); + return success(result); + } } diff --git a/agri-system/src/main/java/com/agri/system/mapper/SysAgriInfoMapper.java b/agri-system/src/main/java/com/agri/system/mapper/SysAgriInfoMapper.java index be18ec5..e7c12d7 100644 --- a/agri-system/src/main/java/com/agri/system/mapper/SysAgriInfoMapper.java +++ b/agri-system/src/main/java/com/agri/system/mapper/SysAgriInfoMapper.java @@ -73,4 +73,11 @@ public interface SysAgriInfoMapper extends BaseMapper { public List findAgriInfoByUser(SysAgriInfo sysAgriInfo); List findAgriOfAutoInfo(); + + /** + * 查询设备分享列表(我的分享 + 分享给我的),带shared_count + * @param sysAgriInfo 查询条件 + * @return 设备分享列表 + */ + List selectShareList(SysAgriInfo sysAgriInfo); } diff --git a/agri-system/src/main/java/com/agri/system/service/ISysAgriInfoService.java b/agri-system/src/main/java/com/agri/system/service/ISysAgriInfoService.java index 776cbe8..05ad0d9 100644 --- a/agri-system/src/main/java/com/agri/system/service/ISysAgriInfoService.java +++ b/agri-system/src/main/java/com/agri/system/service/ISysAgriInfoService.java @@ -3,6 +3,7 @@ package com.agri.system.service; import com.agri.system.domain.SysAgriInfo; import com.agri.system.domain.vo.AgriAutoInfoVo; import com.agri.system.domain.vo.AgriInfoView; +import com.agri.system.domain.vo.AgriShareInfoVO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -74,4 +75,10 @@ public interface ISysAgriInfoService extends IService { List queryImeiByUserId(Long userId); + + /** + * 查询设备分享信息(可分享列表 + 分享给我的设备列表) + * @return 设备分享信息 + */ + AgriShareInfoVO selectShareInfoByUser(); } diff --git a/agri-system/src/main/java/com/agri/system/service/impl/SysAgriInfoServiceImpl.java b/agri-system/src/main/java/com/agri/system/service/impl/SysAgriInfoServiceImpl.java index 3d75f6e..5c8a2c9 100644 --- a/agri-system/src/main/java/com/agri/system/service/impl/SysAgriInfoServiceImpl.java +++ b/agri-system/src/main/java/com/agri/system/service/impl/SysAgriInfoServiceImpl.java @@ -8,6 +8,7 @@ import com.agri.system.domain.SysAgriInfo; import com.agri.system.domain.SysUserAgri; import com.agri.system.domain.vo.AgriAutoInfoVo; import com.agri.system.domain.vo.AgriInfoView; +import com.agri.system.domain.vo.AgriShareInfoVO; import com.agri.system.mapper.SysAgriInfoMapper; import com.agri.system.service.ISysAgriInfoService; import com.agri.system.service.ISysUserAgriService; @@ -295,4 +296,36 @@ public class SysAgriInfoServiceImpl extends ServiceImpl allDevices = baseMapper.selectShareList(query); + + // 根据 inviteBy 字段拆分 + // 我的分享:invite_by = userId(我是邀请人/owner) + List mySharedDevices = allDevices.stream() + .filter(device -> userId.equals(device.getInviteBy())) + .collect(Collectors.toList()); + + // 分享给我的:invite_by != userId 且 invite_by != null(别人邀请我) + List toMeDevices = allDevices.stream() + .filter(device -> device.getInviteBy() != null + && !userId.equals(device.getInviteBy())) + .collect(Collectors.toList()); + + result.setMySharedDevices(mySharedDevices); + result.setToMeDevices(toMeDevices); + + return result; + } } diff --git a/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml b/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml index 8467d4e..10a9033 100644 --- a/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml +++ b/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml @@ -237,4 +237,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and agri.work_mode = 1 + + +