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 0928d10..7b37d23 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,7 +10,6 @@ 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; @@ -20,6 +19,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * 大棚管理Controller @@ -175,8 +175,8 @@ public class SysAgriInfoController extends BaseController */ @PreAuthorize("@ss.hasPermi('assets:agri:list')") @GetMapping("/selectShareInfo") - public AjaxResult selectShareInfo() { - AgriShareInfoVO result = sysAgriInfoService.selectShareInfoByUser(); + public AjaxResult selectShareInfo(SysAgriInfo agriInfo) { + Map result = sysAgriInfoService.selectShareInfoByUser(agriInfo); return success(result); } } diff --git a/agri-system/src/main/java/com/agri/system/domain/SysAgriInfo.java b/agri-system/src/main/java/com/agri/system/domain/SysAgriInfo.java index d3657cf..ce9e220 100644 --- a/agri-system/src/main/java/com/agri/system/domain/SysAgriInfo.java +++ b/agri-system/src/main/java/com/agri/system/domain/SysAgriInfo.java @@ -127,4 +127,8 @@ public class SysAgriInfo extends BaseEntity @TableField(exist = false) @JsonSerialize(using = ToStringSerializer.class) private Long inviteBy; + + /** 已分享次数(非数据库字段,仅用于查询返回) */ + @TableField(exist = false) + private Integer sharedCount; } 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 e7c12d7..d635b3e 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 @@ -6,6 +6,7 @@ import com.agri.system.domain.vo.AgriInfoView; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; +import java.util.Map; /** * 大棚管理Mapper接口 @@ -79,5 +80,5 @@ public interface SysAgriInfoMapper extends BaseMapper { * @param sysAgriInfo 查询条件 * @return 设备分享列表 */ - List selectShareList(SysAgriInfo sysAgriInfo); + 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 05ad0d9..8bde292 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,7 +3,6 @@ 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; @@ -80,5 +79,5 @@ public interface ISysAgriInfoService extends IService { * 查询设备分享信息(可分享列表 + 分享给我的设备列表) * @return 设备分享信息 */ - AgriShareInfoVO selectShareInfoByUser(); + Map selectShareInfoByUser(SysAgriInfo agriInfo); } 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 5c8a2c9..9203412 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,13 +8,13 @@ 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; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.ImmutableMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -301,31 +301,24 @@ public class SysAgriInfoServiceImpl extends ServiceImpl selectShareInfoByUser(SysAgriInfo agriInfo) { Long userId = SecurityUtils.getUserId(); - AgriShareInfoVO result = new AgriShareInfoVO(); - // 一次查询获取所有设备(我是成员 或 我是邀请人) - SysAgriInfo query = new SysAgriInfo(); - query.setUserId(userId); - query.setStatus(1); - List allDevices = baseMapper.selectShareList(query); + agriInfo.setUserId(userId); + List allDevices = baseMapper.selectShareList(agriInfo); // 根据 inviteBy 字段拆分 // 我的分享:invite_by = userId(我是邀请人/owner) - List mySharedDevices = allDevices.stream() - .filter(device -> userId.equals(device.getInviteBy())) + List mySharedDevices = allDevices.stream() + .filter(device -> userId.equals(device.getUserId())) .collect(Collectors.toList()); // 分享给我的:invite_by != userId 且 invite_by != null(别人邀请我) - List toMeDevices = allDevices.stream() + List toMeDevices = allDevices.stream() .filter(device -> device.getInviteBy() != null - && !userId.equals(device.getInviteBy())) + && !device.getUserId().equals(device.getInviteBy())) .collect(Collectors.toList()); - result.setMySharedDevices(mySharedDevices); - result.setToMeDevices(toMeDevices); - - return result; + return ImmutableMap.of("mySharedDevices", mySharedDevices, "toMeDevices", toMeDevices); } } diff --git a/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml b/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml index 10a9033..ef9b7b3 100644 --- a/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml +++ b/agri-system/src/main/resources/mapper/system/SysAgriInfoMapper.xml @@ -238,7 +238,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT agri.id, agri.imei, @@ -254,9 +254,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT COUNT(*) FROM sys_user_agri sua2 WHERE sua2.agri_id = agri.imei - AND sua2.invite_by = #{userId} + AND sua2.invite_by = #{inviteBy} AND sua2.user_id != #{userId} - AND sua2.status = #{status} ) as shared_count FROM sys_agri_info agri LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei