分享设备暂时提交
parent
965e6d542c
commit
2141261641
|
|
@ -10,7 +10,6 @@ import com.agri.common.utils.poi.ExcelUtil;
|
||||||
import com.agri.system.domain.SysAgriInfo;
|
import com.agri.system.domain.SysAgriInfo;
|
||||||
import com.agri.system.domain.SysUserAgri;
|
import com.agri.system.domain.SysUserAgri;
|
||||||
import com.agri.system.domain.vo.AgriInfoView;
|
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.ISysAgriInfoService;
|
||||||
import com.agri.system.service.ISysUserAgriService;
|
import com.agri.system.service.ISysUserAgriService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
@ -20,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大棚管理Controller
|
* 大棚管理Controller
|
||||||
|
|
@ -175,8 +175,8 @@ public class SysAgriInfoController extends BaseController
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('assets:agri:list')")
|
@PreAuthorize("@ss.hasPermi('assets:agri:list')")
|
||||||
@GetMapping("/selectShareInfo")
|
@GetMapping("/selectShareInfo")
|
||||||
public AjaxResult selectShareInfo() {
|
public AjaxResult selectShareInfo(SysAgriInfo agriInfo) {
|
||||||
AgriShareInfoVO result = sysAgriInfoService.selectShareInfoByUser();
|
Map<String, Object> result = sysAgriInfoService.selectShareInfoByUser(agriInfo);
|
||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -127,4 +127,8 @@ public class SysAgriInfo extends BaseEntity
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long inviteBy;
|
private Long inviteBy;
|
||||||
|
|
||||||
|
/** 已分享次数(非数据库字段,仅用于查询返回) */
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer sharedCount;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.agri.system.domain.vo.AgriInfoView;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大棚管理Mapper接口
|
* 大棚管理Mapper接口
|
||||||
|
|
@ -79,5 +80,5 @@ public interface SysAgriInfoMapper extends BaseMapper<SysAgriInfo> {
|
||||||
* @param sysAgriInfo 查询条件
|
* @param sysAgriInfo 查询条件
|
||||||
* @return 设备分享列表
|
* @return 设备分享列表
|
||||||
*/
|
*/
|
||||||
List<com.agri.system.domain.vo.AgriShareInfoVO.DeviceShareInfo> selectShareList(SysAgriInfo sysAgriInfo);
|
List<SysAgriInfo> selectShareList(SysAgriInfo sysAgriInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ package com.agri.system.service;
|
||||||
import com.agri.system.domain.SysAgriInfo;
|
import com.agri.system.domain.SysAgriInfo;
|
||||||
import com.agri.system.domain.vo.AgriAutoInfoVo;
|
import com.agri.system.domain.vo.AgriAutoInfoVo;
|
||||||
import com.agri.system.domain.vo.AgriInfoView;
|
import com.agri.system.domain.vo.AgriInfoView;
|
||||||
import com.agri.system.domain.vo.AgriShareInfoVO;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -80,5 +79,5 @@ public interface ISysAgriInfoService extends IService<SysAgriInfo> {
|
||||||
* 查询设备分享信息(可分享列表 + 分享给我的设备列表)
|
* 查询设备分享信息(可分享列表 + 分享给我的设备列表)
|
||||||
* @return 设备分享信息
|
* @return 设备分享信息
|
||||||
*/
|
*/
|
||||||
AgriShareInfoVO selectShareInfoByUser();
|
Map<String, Object> selectShareInfoByUser(SysAgriInfo agriInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,13 @@ import com.agri.system.domain.SysAgriInfo;
|
||||||
import com.agri.system.domain.SysUserAgri;
|
import com.agri.system.domain.SysUserAgri;
|
||||||
import com.agri.system.domain.vo.AgriAutoInfoVo;
|
import com.agri.system.domain.vo.AgriAutoInfoVo;
|
||||||
import com.agri.system.domain.vo.AgriInfoView;
|
import com.agri.system.domain.vo.AgriInfoView;
|
||||||
import com.agri.system.domain.vo.AgriShareInfoVO;
|
|
||||||
import com.agri.system.mapper.SysAgriInfoMapper;
|
import com.agri.system.mapper.SysAgriInfoMapper;
|
||||||
import com.agri.system.service.ISysAgriInfoService;
|
import com.agri.system.service.ISysAgriInfoService;
|
||||||
import com.agri.system.service.ISysUserAgriService;
|
import com.agri.system.service.ISysUserAgriService;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -301,31 +301,24 @@ public class SysAgriInfoServiceImpl extends ServiceImpl<SysAgriInfoMapper, SysAg
|
||||||
* 查询设备分享信息(可分享列表 + 分享给我的设备列表)
|
* 查询设备分享信息(可分享列表 + 分享给我的设备列表)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AgriShareInfoVO selectShareInfoByUser() {
|
public Map<String, Object> selectShareInfoByUser(SysAgriInfo agriInfo) {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SecurityUtils.getUserId();
|
||||||
AgriShareInfoVO result = new AgriShareInfoVO();
|
|
||||||
|
|
||||||
// 一次查询获取所有设备(我是成员 或 我是邀请人)
|
// 一次查询获取所有设备(我是成员 或 我是邀请人)
|
||||||
SysAgriInfo query = new SysAgriInfo();
|
agriInfo.setUserId(userId);
|
||||||
query.setUserId(userId);
|
List<SysAgriInfo> allDevices = baseMapper.selectShareList(agriInfo);
|
||||||
query.setStatus(1);
|
|
||||||
List<AgriShareInfoVO.DeviceShareInfo> allDevices = baseMapper.selectShareList(query);
|
|
||||||
|
|
||||||
// 根据 inviteBy 字段拆分
|
// 根据 inviteBy 字段拆分
|
||||||
// 我的分享:invite_by = userId(我是邀请人/owner)
|
// 我的分享:invite_by = userId(我是邀请人/owner)
|
||||||
List<AgriShareInfoVO.DeviceShareInfo> mySharedDevices = allDevices.stream()
|
List<SysAgriInfo> mySharedDevices = allDevices.stream()
|
||||||
.filter(device -> userId.equals(device.getInviteBy()))
|
.filter(device -> userId.equals(device.getUserId()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 分享给我的:invite_by != userId 且 invite_by != null(别人邀请我)
|
// 分享给我的:invite_by != userId 且 invite_by != null(别人邀请我)
|
||||||
List<AgriShareInfoVO.DeviceShareInfo> toMeDevices = allDevices.stream()
|
List<SysAgriInfo> toMeDevices = allDevices.stream()
|
||||||
.filter(device -> device.getInviteBy() != null
|
.filter(device -> device.getInviteBy() != null
|
||||||
&& !userId.equals(device.getInviteBy()))
|
&& !device.getUserId().equals(device.getInviteBy()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
result.setMySharedDevices(mySharedDevices);
|
return ImmutableMap.of("mySharedDevices", mySharedDevices, "toMeDevices", toMeDevices);
|
||||||
result.setToMeDevices(toMeDevices);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询设备分享列表(我的分享 + 分享给我的),带shared_count -->
|
<!-- 查询设备分享列表(我的分享 + 分享给我的),带shared_count -->
|
||||||
<select id="selectShareList" parameterType="SysAgriInfo" resultType="com.agri.system.domain.vo.AgriShareInfoVO$DeviceShareInfo">
|
<select id="selectShareList" parameterType="SysAgriInfo" resultMap="SysAgriInfoResult">
|
||||||
SELECT
|
SELECT
|
||||||
agri.id,
|
agri.id,
|
||||||
agri.imei,
|
agri.imei,
|
||||||
|
|
@ -254,9 +254,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
SELECT COUNT(*)
|
SELECT COUNT(*)
|
||||||
FROM sys_user_agri sua2
|
FROM sys_user_agri sua2
|
||||||
WHERE sua2.agri_id = agri.imei
|
WHERE sua2.agri_id = agri.imei
|
||||||
AND sua2.invite_by = #{userId}
|
AND sua2.invite_by = #{inviteBy}
|
||||||
AND sua2.user_id != #{userId}
|
AND sua2.user_id != #{userId}
|
||||||
AND sua2.status = #{status}
|
|
||||||
) as shared_count
|
) as shared_count
|
||||||
FROM sys_agri_info agri
|
FROM sys_agri_info agri
|
||||||
LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei
|
LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue