ソースを参照

获取商户设备列表-开放平台

tanbin 11 ヶ月 前
コミット
ba31134f2d

+ 22 - 1
device-api-service/src/main/java/com/xy/open/DeviceOpenApiService.java

@@ -1,6 +1,7 @@
 package com.xy.open;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -10,12 +11,14 @@ import com.xy.annotation.Open;
 import com.xy.bean.OpenContext;
 import com.xy.bean.ServiceContext;
 import com.xy.dto.CommandMqtt;
+import com.xy.dto.DeviceSysinfoDto;
 import com.xy.dto.OpenPlatformConfigDto;
 import com.xy.entity.DeviceInfo;
 import com.xy.exception.ServiceException;
 import com.xy.open.dto.DeviceOpenApiDTO;
 import com.xy.open.vo.DeviceOpenApiVO;
 import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.service.DeviceSysinfoServiceImpl;
 import com.xy.service.MqttService;
 import com.xy.service.OpenPlatformConfigService;
 import com.xy.utils.PageBean;
@@ -31,6 +34,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.xy.utils.PlusBeans.toIPage;
 import static com.xy.utils.PlusBeans.toPageBean;
@@ -49,6 +54,7 @@ public class DeviceOpenApiService {
     private final DeviceInfoServiceImpl deviceInfoService;
     private final OpenPlatformConfigService openPlatformConfigService;
     private final MqttService mqttService;
+    private final DeviceSysinfoServiceImpl deviceSysinfoService;
 
 
     @ApiOperation(value = "获取商户设备列表", notes = "获取商户设备列表")
@@ -66,7 +72,22 @@ public class DeviceOpenApiService {
                 .in(DeviceInfo::getMercCode, dto.getMercCodes()
                 );
         IPage<DeviceInfo> iPage = deviceInfoService.page(toIPage(pageBean), lqw);
-        return toPageBean(DeviceOpenApiVO.DeviceList.class, iPage);
+        PageBean<DeviceOpenApiVO.DeviceList> pageData = toPageBean(DeviceOpenApiVO.DeviceList.class, iPage);
+        List<DeviceOpenApiVO.DeviceList> records = pageData.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            List<Long> deviceIds = records.stream().map(DeviceOpenApiVO.DeviceList::getDeviceId).collect(Collectors.toList());
+            List<DeviceSysinfoDto.Vo> sysInfoVos = R.feignCheckData(deviceSysinfoService.list(new DeviceSysinfoDto.SelectList().setDeviceIds(deviceIds)));
+            Map<Long, DeviceSysinfoDto.Vo> deviceSysInfoMap = sysInfoVos.stream().collect(Collectors.toMap(DeviceSysinfoDto.Vo::getDeviceId, v -> v));
+            for (DeviceOpenApiVO.DeviceList record : records) {
+                Long deviceId = record.getDeviceId();
+                DeviceSysinfoDto.Vo sys = deviceSysInfoMap.get(deviceId);
+                if (sys != null) {
+                    record.setDeviceModel(StrUtil.isEmpty(sys.getDeviceModel()) ? "" : sys.getDeviceModel());
+                }
+            }
+            pageBean.setRecords(records);
+        }
+        return pageData;
     }
 
     @ApiOperation(value = "设备操作", notes = "设备操作(开打印机门锁:openPrinterLock)")

+ 3 - 0
device-api-service/src/main/java/com/xy/open/vo/DeviceOpenApiVO.java

@@ -42,6 +42,9 @@ public class DeviceOpenApiVO {
         @ApiModelProperty(value = "纬度")
         private String lat;
 
+        @ApiModelProperty(value = "设备型号")
+        private String deviceModel;
+
         @ApiModelProperty(value = "激活状态->1: 已激活 2: 未激活")
         private Integer activeState;