wumei-smart-master/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceServiceImpl.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
@@ -26,6 +27,7 @@
import com.ruoyi.iot.service.IDeviceService;
import com.ruoyi.iot.service.IProductService;
import com.ruoyi.iot.service.IToolService;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.service.ISysUserService;
import org.quartz.SchedulerException;
import org.slf4j.Logger;
@@ -37,6 +39,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
@@ -85,6 +88,9 @@
    @Autowired
    @Lazy
    private EmqxService emqxService;
    @Autowired
    private SysDeptMapper sysDeptMapper;
    /**
     * 查询设备
@@ -389,17 +395,39 @@
     * @return 设备
     */
    @Override
    public List<DeviceShortOutput> selectDeviceShortList(Device device) {
    public List<DeviceShortOutput> selectDeviceShortList(Device device, boolean repairFlag) {
        SysUser user = getLoginUser().getUser();
        List<SysRole> roles = user.getRoles();
        for (int i = 0; i < roles.size(); i++) {
            if (roles.get(i).getRoleKey().equals("tenant")) {
                // 租户查看产品下所有设备
                device.setTenantId(user.getUserId());
                if (repairFlag == true) {
                    device.setInstallFlag(1);
                }
                break;
            } else if (roles.get(i).getRoleKey().equals("general")) {
                // 用户查看自己设备
                device.setUserId(user.getUserId());
                if (repairFlag == true) {
                    device.setInstallFlag(1);
                }
                break;
            } else if (roles.get(i).getRoleKey().equals("tenanthelper")) {
                //联营商合伙人查看设备
                //联营商合伙人需要根据他自己的userid去查询他上级的用户信息,tenantid是租户id和他的一级联营商所拥有的设备
                //根据当前登录的联营商合伙人去查询他的上级部门id是几,再通过他的上级部门id去查询所对应的一级联营商和所对应的tenantid
                //通过用户ID查询用户
                SysUser sysUser = userService.selectUserById(user.getUserId());//拿到所在的部门id
                SysDept sysDept = sysDeptMapper.selectDeptById(sysUser.getDeptId());  //根据部门id去查询信息得到父级的部门id
                SysDept sysDeptParent = sysDeptMapper.selectDeptById(sysDept.getParentId());  //根据父级部门的id去查询信息
//                SysUser sysUserA = new SysUser();  //创建用户对象
//                sysUserA.setDeptId(sysDeptParent.getDeptId());
                SysUser sysUserDept = userService.selectUserByDeptId(sysDeptParent.getDeptId());//根据得到的父级的部门id去sys_user表里面查询他的用户信息
                device.setTenantId(sysUserDept.getUserId());
                if (repairFlag == true) {
                    device.setInstallFlag(1);
                }
                break;
            }
        }