diff --git a/common-lib/src/main/java/com/mortals/xhx/common/pdu/DeviceReq.java b/common-lib/src/main/java/com/mortals/xhx/common/pdu/DeviceReq.java index 3fe1feb8533aab5932ae39975d5dabeaef3abd50..9ea49d305acd41767ba9800d541087b3ffe2bf21 100644 --- a/common-lib/src/main/java/com/mortals/xhx/common/pdu/DeviceReq.java +++ b/common-lib/src/main/java/com/mortals/xhx/common/pdu/DeviceReq.java @@ -176,7 +176,7 @@ public class DeviceReq implements Serializable { System.out.println(NumberUtil.div(1920, 1080, 2)); System.out.println(NumberUtil.div(1080, 1920, 2)); - System.out.println(NumberUtil.div(800, 1280, 2)); + System.out.println(NumberUtil.div(400, 1280, 2)); System.out.println(NumberUtil.div(1024, 600, 2)); diff --git a/device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java b/device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java index a58f4a688e7c689ed385d347f8d1b61823353cff..664d5ebb42f87f873a4226118bfea82cd77e2816 100644 --- a/device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java +++ b/device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java @@ -6,6 +6,7 @@ import cn.hutool.core.lang.Validator; import cn.hutool.core.net.URLDecoder; import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import cn.hutool.extra.servlet.ServletUtil; @@ -215,6 +216,7 @@ public class DeviceApiController { //鍒ゆ柇褰撳墠璁惧鏄惁璁剧疆浜嗗垎杈ㄧ巼 濡傛灉璁剧疆浜� 鏌ヨ褰撳墠璁惧鐨勮祫婧愯矾寰勬槸鍚﹀瓨鍦� 濡傛灉瀛樺湪 String resolution = deviceEntity.getResolution(); if (!ObjectUtils.isEmpty(resolution)) { + //瀛樺湪鍒嗚鲸鐜� DeviceModuleDistributeQuery query = new DeviceModuleDistributeQuery(); query.setProductId(productEntity.getId()); query.setSiteId(deviceEntity.getSiteId()); @@ -222,6 +224,7 @@ public class DeviceApiController { query.setDistribute(DistributeEnum.鏄�.getValue()); DeviceModuleDistributeEntity distribute = deviceModuleDistributeService.selectOne(query); if (!ObjectUtils.isEmpty(distribute)) { + //褰撳墠鍒嗚鲸鐜囪祫婧愬瓨鍦� String homeUrl = String.format("/homeDeviceUrl/%s/%s/%s", distribute.getSiteId(), distribute.getProductCode(), distribute.getImageResolutionValue()); //鏍规嵁閮ㄧ讲鐨勮祫婧� 鐢熸垚homeurl String domain = GlobalSysInfo.getParamValue(PARAM_SERVER_HTTP_URL, "http://192.168.0.98:11078"); @@ -237,6 +240,7 @@ public class DeviceApiController { serverInfo.setEventUrl(productEntity.getEventUrl()); } } else { + //褰撳墠鍒嗚鲸鐜囪祫婧愰儴瀛樺湪锛屽鏋滃瓨鍦ㄩ珮瀹斤紝鍒欑敤楂樺姣旀煡璇㈢敓鎴愮浉杩慼omeurl buildHomeUrlBySite(deviceEntity, productEntity, serverInfo, serverName, serverPort); } } else { @@ -456,33 +460,18 @@ public class DeviceApiController { DeviceEntity deviceEntity = deviceService.getExtCache(req.getDeviceCode()); - - -/* if (!ObjectUtils.isEmpty(width) && !ObjectUtils.isEmpty(height)) { - //鏍规嵁鍒嗚鲸鐜� 鑷€傚簲璁剧疆鍒嗚鲸鐜� - double div = NumberUtil.div(width, height, 2); - if (div >= 1.7 && div <= 1.8) { - deviceEntity.setResolutionValue(ImageReEnum.RE_1920X1080.getDesc()); - //System.out.println("1.7 < div < 1.8"); - } else if (div >= 0.4 && div <= 0.7) { - deviceEntity.setResolutionValue(ImageReEnum.RE_1080X1920.getDesc()); - //System.out.println("1.7 < div < 1.8"); - } else if (div >= 0.9 && div <= 1.1) { - deviceEntity.setResolutionValue(ImageReEnum.RE_1280X1280.getDesc()); - //System.out.println("div >= 0.9 && div <= 1.1"); - } - }*/ - if (ObjectUtils.isEmpty(deviceEntity)) { //鍒濆鍖栨柊澧炲熀纭€璁惧锛屽悗缁湪绾垮畬鍠勪俊鎭悗鍐嶈娉ㄥ唽娣诲姞 deviceEntity = new DeviceEntity(); deviceEntity.initAttrValue(); + checkAndUpdateImageRe(width, height, productEntity, deviceEntity); saveDevice(req, platformEntity, productEntity, deviceEntity); deviceEntity.setCreateTime(new Date()); deviceEntity.setCreateUserId(1L); deviceService.save(deviceEntity, null); } else { //鏇存柊 + checkAndUpdateImageRe(width, height, productEntity, deviceEntity); updateDevice(req, platformEntity, productEntity, deviceEntity); deviceEntity.setUpdateTime(new Date()); deviceEntity.setUpdateUserId(1L); @@ -491,10 +480,7 @@ public class DeviceApiController { if (deviceEntity.getDeviceStatus() == DeviceStatusEnum.鏈縺娲�.getValue()) { throw new AppException(DEVICE_UNACTIVE, DEVICE_UNACTIVE_CONTENT); } - if (!ObjectUtils.isEmpty(deviceEntity) && !ObjectUtils.isEmpty(width) && !ObjectUtils.isEmpty(height)) { - deviceEntity.setWidth(width); - deviceEntity.setHeight(height); - } + DeviceQueueAuthInfo authInfo = new DeviceQueueAuthInfo(); URL url = getServerUrl(); authInfo.setHost(url.getHost()); @@ -584,6 +570,49 @@ public class DeviceApiController { return JSON.toJSONString(rsp); } + private void checkAndUpdateImageRe(Double width, Double height, ProductEntity productEntity, DeviceEntity deviceEntity) { + if (!ObjectUtils.isEmpty(width) + && !ObjectUtils.isEmpty(height) + && ObjectUtils.isEmpty(deviceEntity.getResolution())) { + deviceEntity.setWidth(width); + deviceEntity.setHeight(height); + deviceEntity.setResolution(width + "x" + height); + deviceEntity.setResolutionValue(width + "x" + height); + + //鏌ヨ鏄惁瀛樺湪璧勬簮锛屽鏋滀笉瀛樺湪 鍒欐坊鍔犱负鐩镐技璧勬簮 + DeviceModuleDistributeQuery query = new DeviceModuleDistributeQuery(); + query.setSiteId(deviceEntity.getSiteId()); + query.setProductId(productEntity.getId()); + query.setDistribute(DistributeEnum.鏄�.getValue()); + query.setImageResolution(deviceEntity.getResolution()); + query.setOrderColList(Arrays.asList(new OrderCol("version", OrderCol.DESCENDING))); + DeviceModuleDistributeEntity deviceModuleDistributeEntity = deviceModuleDistributeService.selectOne(query); + if (ObjectUtils.isEmpty(deviceModuleDistributeEntity)) { + //娌℃湁璧勬簮 鏍规嵁瀹藉拰楂樺瓨鍦� 鎵句竴涓浉杩戠殑璧勬簮銆� + if (!ObjectUtils.isEmpty(width) && !ObjectUtils.isEmpty(height)) { + //鏍规嵁鍒嗚鲸鐜� 鑷€傚簲璁剧疆鍒嗚鲸鐜� + double div = NumberUtil.div(width, height, 2); + if (div >= 1.3 && div <= 5.0) { + deviceEntity.setResolutionValue(ImageReEnum.RE_1920X1080.getDesc()); + deviceEntity.setResolution(ImageReEnum.RE_1920X1080.getDesc()); + log.info("1.3 < div < 5.0"); + //System.out.println("1.7 < div < 1.8"); + } else if (div >= 0.1 && div <= 0.79) { + deviceEntity.setResolutionValue(ImageReEnum.RE_1080X1920.getDesc()); + deviceEntity.setResolution(ImageReEnum.RE_1080X1920.getDesc()); + log.info("0.1 < div < 0.79"); + //System.out.println("1.7 < div < 1.8"); + } else if (div >= 0.8 && div <= 1.29) { + deviceEntity.setResolutionValue(ImageReEnum.RE_1280X1280.getDesc()); + deviceEntity.setResolution(ImageReEnum.RE_1280X1280.getDesc()); + log.info("div >= 0.9 && div <= 1.1"); + //System.out.println("div >= 0.9 && div <= 1.1"); + } + } + } + } + } + /** * 妫€鏌ヨ澶囨渶鏂扮増鏈俊鎭� @@ -1142,6 +1171,7 @@ public class DeviceApiController { String scheme = serverInfo.getScheme(); String homeUrl = ""; //鏍规嵁绔欑偣涓庤祫婧愰儴缃叉潵鐢熸垚homeurl + DeviceModuleDistributeQuery query = new DeviceModuleDistributeQuery(); query.setSiteId(deviceEntity.getSiteId()); query.setProductId(productEntity.getId()); @@ -1151,13 +1181,9 @@ public class DeviceApiController { DeviceModuleDistributeEntity deviceModuleDistributeEntity = deviceModuleDistributeService.selectOne(query); if (ObjectUtils.isEmpty(deviceModuleDistributeEntity)) { //鍒ゆ柇濡傛灉瀹藉拰楂樺瓨鍦� 鎵句竴涓浉杩戠殑璧勬簮銆� - - - } else { //homeDeviceUrl/1/pdj/1920x1080 homeUrl = String.format("/homeDeviceUrl/%s/%s/%s", deviceModuleDistributeEntity.getSiteId(), deviceModuleDistributeEntity.getProductCode(), deviceModuleDistributeEntity.getImageResolutionValue()); - //鏍规嵁閮ㄧ讲鐨勮祫婧� 鐢熸垚homeurl String domain = GlobalSysInfo.getParamValue(PARAM_SERVER_HTTP_URL, "http://192.168.0.98:11078"); if (!ObjectUtils.isEmpty(serverName) && Validator.isIpv4(serverName)) { @@ -1200,7 +1226,6 @@ public class DeviceApiController { String decodeStr = URLDecoder.decode(str, Charset.defaultCharset()); productVersionInfo.setDownloadUrl(decodeStr); } - log.info("downurl:" + productVersionInfo.getDownloadUrl()); } @@ -1415,7 +1440,6 @@ public class DeviceApiController { updateDevice(req, platformEntity, productEntity, deviceEntity); deviceEntity.setUpdateTime(new Date()); deviceEntity.setUpdateUserId(1L); - //cacheService.lpush(RedisKey.KEY_DEVICE_UPDATE_QUEUE, deviceEntity); deviceService.update(deviceEntity, null); }