diff --git a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/aspect/DeviceDebugLogAspect.java b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/aspect/DeviceDebugLogAspect.java index 5c79dcf5..457f8278 100644 --- a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/aspect/DeviceDebugLogAspect.java +++ b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/aspect/DeviceDebugLogAspect.java @@ -13,6 +13,10 @@ import com.fastbee.common.utils.DateUtils; import com.fastbee.common.utils.StringUtils; import com.fastbee.common.utils.dtu.ATCommandParserUtils; import com.fastbee.common.utils.gateway.mq.TopicsUtils; +import com.fastbee.http.map.ILocationService; +import com.fastbee.http.map.LocationServiceFactory; +import com.fastbee.http.model.AddressInfo; +import com.fastbee.http.model.Coordinate; import com.fastbee.iot.domain.Device; import com.fastbee.iot.domain.Product; import com.fastbee.iot.domain.ProductAuthorize; @@ -75,6 +79,9 @@ public class DeviceDebugLogAspect { @Resource private DeviceMapper deviceMapper; + @Resource + private LocationServiceFactory locationServiceFactory; + /** * 拦截数据解析方法 */ @@ -331,6 +338,14 @@ public class DeviceDebugLogAspect { if (lbsArray.length == 2) { updateDevice.setLongitude(lbsArray[0]); updateDevice.setLatitude(lbsArray[1]); + // 工厂模式获取定位服务 + long startTime = System.currentTimeMillis(); + ILocationService service = locationServiceFactory.getLocationService(); + Coordinate platformCoordinate = service.convertPlatformCoordinateFromWgs84(new Coordinate(lbsArray[0], lbsArray[1])); + AddressInfo addressInfo = service.getAddressByCoordinate(platformCoordinate); + String networkAddress = StringUtils.isEmpty(addressInfo.getBuilding()) ? addressInfo.getFormattedAddress() : addressInfo.getBuilding(); + updateDevice.setNetworkAddress(networkAddress); + log.debug("设备:{},刷新地址:{},耗时:{}", serialNumber, networkAddress, System.currentTimeMillis() - startTime); } } updateDevice.setDeviceId(device.getDeviceId());