fix:设备地图相关接口迁移

V0.5.x
tangfudong 2023-06-29 18:35:29 +08:00
parent 6e5de54e6e
commit cec5a72856
9 changed files with 83 additions and 62 deletions

View File

@ -134,5 +134,5 @@ public interface IDeviceInfoData extends IOwnedData<DeviceInfo, String> {
*
* @return
*/
List<Map<String, Object>> findByProductNodeType(String uid);
List<DeviceInfo> findByProductNodeType(String uid);
}

View File

@ -10,12 +10,12 @@
package cc.iotkit.data.service;
import cc.iotkit.common.api.PageRequest;
import cc.iotkit.common.api.Paging;
import cc.iotkit.common.constant.Constants;
import cc.iotkit.common.utils.JsonUtils;
import cc.iotkit.data.manager.IDeviceInfoData;
import cc.iotkit.data.cache.DeviceInfoCacheEvict;
import cc.iotkit.data.cache.DeviceInfoCachePut;
import cc.iotkit.common.api.Paging;
import cc.iotkit.data.manager.IDeviceInfoData;
import cc.iotkit.model.device.DeviceInfo;
import cc.iotkit.model.stats.DataItem;
import org.apache.commons.lang3.StringUtils;
@ -131,7 +131,7 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi
}
@Override
public List<Map<String, Object>> findByProductNodeType(String uid) {
public List<DeviceInfo> findByProductNodeType(String uid) {
return deviceInfoData.findByProductNodeType(uid);
}

View File

@ -10,8 +10,8 @@
package cc.iotkit.data.service;
import cc.iotkit.common.api.PageRequest;
import cc.iotkit.data.manager.IDeviceInfoData;
import cc.iotkit.common.api.Paging;
import cc.iotkit.data.manager.IDeviceInfoData;
import cc.iotkit.model.device.DeviceInfo;
import cc.iotkit.model.stats.DataItem;
import org.springframework.beans.factory.annotation.Autowired;
@ -172,7 +172,7 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData {
}
@Override
public List<Map<String, Object>> findByProductNodeType(String uid) {
public List<DeviceInfo> findByProductNodeType(String uid) {
return deviceInfoData.findByProductNodeType(uid);
}

View File

@ -14,8 +14,9 @@ import cc.iotkit.model.device.DeviceInfo;
import cc.iotkit.model.product.Category;
import cc.iotkit.model.product.Product;
import cc.iotkit.model.stats.DataItem;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.data.domain.Page;
@ -28,28 +29,34 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static cc.iotkit.data.model.QTbDeviceInfo.tbDeviceInfo;
import static cc.iotkit.data.model.QTbProduct.tbProduct;
@Primary
@Service
@RequiredArgsConstructor
public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceInfo, String> {
@Autowired
private DeviceInfoRepository deviceInfoRepository;
@Autowired
private DeviceSubUserRepository deviceSubUserRepository;
@Autowired
private DeviceGroupMappingRepository deviceGroupMappingRepository;
@Autowired
private DeviceGroupRepository deviceGroupRepository;
@Autowired
private DeviceTagRepository deviceTagRepository;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private final DeviceInfoRepository deviceInfoRepository;
private final DeviceSubUserRepository deviceSubUserRepository;
private final DeviceGroupMappingRepository deviceGroupMappingRepository;
private final DeviceGroupRepository deviceGroupRepository;
private final DeviceTagRepository deviceTagRepository;
private final JdbcTemplate jdbcTemplate;
@Qualifier("productDataCache")
private IProductData productData;
@Autowired
private final IProductData productData;
@Qualifier("categoryDataCache")
private ICategoryData categoryData;
private final ICategoryData categoryData;
private final JPAQueryFactory jpaQueryFactory;
@Override
public JpaRepository getBaseRepository() {
@ -190,15 +197,10 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
}
@Override
public List<Map<String, Object>> findByProductNodeType(String uid) {
String sql = "SELECT\n" +
"a.id,\n" +
"a.device_name\n" +
"FROM device_info a JOIN product p ON p.node_type=0 AND a.product_key=p.id";
if (StringUtils.isNotBlank(uid)) {
sql += " WHERE a.uid='" + uid + "'";
}
return jdbcTemplate.queryForList(sql);
public List<DeviceInfo> findByProductNodeType(String uid) {
List<TbDeviceInfo> devices=jpaQueryFactory.select(tbDeviceInfo).from(tbDeviceInfo)
.join(tbProduct).on(tbProduct.nodeType.eq(0).and(tbDeviceInfo.productKey.eq(tbProduct.productKey))).fetch();
return MapstructUtils.convert(devices,DeviceInfo.class);
}
@Override

View File

@ -10,13 +10,8 @@
package cc.iotkit.manager.controller;
import cc.iotkit.common.api.PageRequest;
import cc.iotkit.common.api.Paging;
import cc.iotkit.common.api.Request;
import cc.iotkit.common.constant.Constants;
import cc.iotkit.common.enums.ErrCode;
import cc.iotkit.common.exception.BizException;
import cc.iotkit.common.satoken.utils.AuthUtil;
import cc.iotkit.common.utils.ReflectUtil;
import cc.iotkit.common.utils.UniqueIdUtil;
import cc.iotkit.manager.dto.bo.device.*;
import cc.iotkit.manager.dto.bo.deviceconfig.DeviceConfigAddBo;
import cc.iotkit.manager.dto.bo.devicegroup.DeviceAddGroupBo;
@ -25,26 +20,29 @@ import cc.iotkit.manager.dto.bo.thingmodel.ThingModelMessageBo;
import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo;
import cc.iotkit.manager.service.*;
import cc.iotkit.manager.service.DeviceService;
import cc.iotkit.manager.service.IDeviceService;
import cc.iotkit.manager.service.IProductService;
import cc.iotkit.model.InvokeResult;
import cc.iotkit.common.api.Paging;
import cc.iotkit.model.device.DeviceConfig;
import cc.iotkit.model.device.DeviceGroup;
import cc.iotkit.model.device.DeviceInfo;
import cc.iotkit.model.device.message.DeviceProperty;
import cc.iotkit.model.device.message.ThingModelMessage;
import io.swagger.annotations.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.async.DeferredResult;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Api(tags = {"设备"})
@Slf4j
@ -99,9 +97,9 @@ public class DeviceController {
return deviceServiceImpl.selectChildrenPageList(deviceId);
}
@ApiOperation("获取网关")
@PostMapping("/parentDevices")
public List<Map<String, Object>> getParentDevices() {
@ApiOperation("获取网关设备")
@PostMapping("/getParentDevices")
public List<ParentDeviceVo> getParentDevices() {
return deviceServiceImpl.getParentDevices();
}

View File

@ -1,28 +1,22 @@
package cc.iotkit.manager.dto.vo.deviceinfo;
import cc.iotkit.model.device.DeviceInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMapping;
import io.github.linpeilie.annotations.ReverseAutoMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
@ApiModel(value = "DeviceInfoVo")
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DeviceInfo.class)
public class DeviceInfoVo implements Serializable {
private static final long serialVersionUID = -1L;

View File

@ -0,0 +1,21 @@
package cc.iotkit.manager.dto.vo.deviceinfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Authortfd
* @Date2023/6/29 14:30
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ParentDeviceVo {
private String id;
private String deviceName;
}

View File

@ -11,6 +11,7 @@ import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo;
import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
import cc.iotkit.model.device.DeviceConfig;
import cc.iotkit.model.device.DeviceGroup;
import cc.iotkit.model.device.DeviceInfo;
@ -19,7 +20,6 @@ import cc.iotkit.model.device.message.ThingModelMessage;
import org.springframework.web.context.request.async.DeferredResult;
import java.util.List;
import java.util.Map;
/**
* @Author: jay
@ -34,7 +34,7 @@ public interface IDeviceService {
List<DeviceInfoVo> selectChildrenPageList(String deviceId);
List<Map<String, Object>> getParentDevices();
List<ParentDeviceVo> getParentDevices();
DeviceInfo getDetail(String deviceId);

View File

@ -24,6 +24,7 @@ import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo;
import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
import cc.iotkit.manager.service.DataOwnerService;
import cc.iotkit.manager.service.DeferredDataConsumer;
import cc.iotkit.manager.service.DeviceService;
@ -44,7 +45,7 @@ import org.springframework.stereotype.Service;
import org.springframework.web.context.request.async.DeferredResult;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author: jay
@ -157,12 +158,17 @@ public class DeviceServiceImpl implements IDeviceService {
}
@Override
public List<Map<String, Object>> getParentDevices() {
public List<ParentDeviceVo> getParentDevices() {
String uid = "";
List<ParentDeviceVo> pdv = null;
if (!AuthUtil.isAdmin()) {
uid = AuthUtil.getUserId();
}
return deviceInfoData.findByProductNodeType(uid);
List<DeviceInfo> ret=deviceInfoData.findByProductNodeType(uid);
if(ret.size()>0){
pdv=ret.stream().map(r->ParentDeviceVo.builder().id(r.getId()).deviceName(r.getDeviceName()).build()).collect(Collectors.toList());
}
return pdv;
}
@Override