管理员分享不需要连表

master
lld 2026-04-06 03:55:23 +08:00
parent a0c45ea434
commit 80aa6d7922
2 changed files with 23 additions and 13 deletions

View File

@ -116,8 +116,8 @@ public class SysAgriInfoServiceImpl extends ServiceImpl<SysAgriInfoMapper, SysAg
public List<SysAgriInfo> findAgriByUser(SysAgriInfo sysAgriInfo) {
if (!SecurityUtils.isAdmin()) {
sysAgriInfo.setUserId(SecurityUtils.getUserId());
sysAgriInfo.setStatus(null);
}
sysAgriInfo.setStatus(SecurityUtils.isAdmin()?null:sysAgriInfo.getStatus());
return baseMapper.findAgriByUser(sysAgriInfo);
}
@ -125,8 +125,8 @@ public class SysAgriInfoServiceImpl extends ServiceImpl<SysAgriInfoMapper, SysAg
public List<AgriInfoView> findAgriInfoByUser(SysAgriInfo sysAgriInfo) {
if (!SecurityUtils.isAdmin()) {
sysAgriInfo.setUserId(SecurityUtils.getUserId());
sysAgriInfo.setStatus(null);
}
sysAgriInfo.setStatus(SecurityUtils.isAdmin()?null:sysAgriInfo.getStatus());
return baseMapper.findAgriInfoByUser(sysAgriInfo);
}
@ -305,7 +305,11 @@ public class SysAgriInfoServiceImpl extends ServiceImpl<SysAgriInfoMapper, SysAg
@Override
public Map<String, Object> selectShareInfoByUser(SysAgriInfo agriInfo) {
Long userId = SecurityUtils.getUserId();
if (SecurityUtils.isAdmin()) {
// 一次查询获取所有设备(我是成员 或 我是邀请人)
return ImmutableMap.of("mySharedDevices", baseMapper.selectShareList(agriInfo),
"toMeDevices", Collections.emptyList());
}
agriInfo.setUserId(userId);
List<SysAgriInfo> allDevices = baseMapper.selectShareList(agriInfo);

View File

@ -201,8 +201,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="findAgriInfoByUser" parameterType="SysAgriInfo" resultType="com.agri.system.domain.vo.AgriInfoView">
<include refid="agriInfoVo"/>
<where>
is_deleted = 0 and `user_agri`.status=1
<if test="userId != null"> and user_agri.user_id = #{userId}</if>
is_deleted = 0
<if test="userId != null"> and user_agri.user_id = #{userId} and `user_agri`.status=1</if>
<if test="imei != null and imei != ''"> and agri.imei = #{imei}</if>
<if test="workMode != null and workMode != ''"> and agri.work_mode = #{workMode}</if>
<if test="agriName != null and agriName != ''"> and agri.agri_name like concat('%', #{agriName}, '%')</if>
@ -247,22 +247,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
agri.alarm_status as device_status,
agri.install_time,
agri.location,
<if test="userId != null">
user_agri.status,
user_agri.invite_by,
user_agri.user_id,
</if>
(
SELECT COUNT(*)
FROM sys_user_agri sua2
WHERE sua2.agri_id = agri.imei
AND sua2.invite_by= #{inviteBy}
AND sua2.user_id != #{userId}
AND sua2.user_id != sua2.invite_by
) as shared_count
FROM sys_agri_info agri
<if test="userId != null">
LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei
</if>
<where>
agri.is_deleted = 0
<if test="userId != null">
AND user_agri.status = #{status}
AND (user_agri.user_id = #{userId} OR user_agri.invite_by = #{inviteBy})
</if>
</where>
</select>