Browse Source

[Update] 0.2.0 生成图的URL保证唯一性,解决之前URL固定,设备获取图片时图片内容变化,导致设备校验失败问题

Armer song 3 months ago
parent
commit
2bbe8cb6ff

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>com.example</groupId>
     <artifactId>DotMatrix</artifactId>
-    <version>0.1.1</version>
+    <version>0.2.0</version>
     <name>DotMatrix</name>
     <description>DotMatrix</description>
 

+ 14 - 13
src/main/java/com/yeechart/dotMatrix/module/DotMatrix/controller/DotMatrixController.java

@@ -65,18 +65,19 @@ public class DotMatrixController {
         if (StringUtils.isEmpty(req.getTypeCode())) {
             return ResultBean.defeated("非法设备typeCode");
         }
-        String[] typeCodesArr = req.getTypeCode().split(",");
-        List<BitmapDataVo> bitmapDataVoList = new ArrayList<>();
-        for (String typeCode : typeCodesArr) {
-            if (req.getIsDefault() != null && req.getIsDefault()) {
-                if (!typeCode.startsWith("D")) {
-                    return ResultBean.defeated("预览初始图时,点阵图类型编号不正确,必须为D开头");
-                }
-            }
-            BitmapDataVo bitmapDataVo = signageFileUtil.getLastBitmapDataVo(req.getDeId(), typeCode, req.getIsDefault());
-            bitmapDataVoList.add(bitmapDataVo);
-        }
-        return ResultBean.succeed(bitmapDataVoList);
+//        String[] typeCodesArr = req.getTypeCode().split(",");
+//        List<BitmapDataVo> bitmapDataVoList = new ArrayList<>();
+//        for (String typeCode : typeCodesArr) {
+//            if (req.getIsDefault() != null && req.getIsDefault()) {
+//                if (!typeCode.startsWith("D")) {
+//                    return ResultBean.defeated("预览初始图时,点阵图类型编号不正确,必须为D开头");
+//                }
+//            }
+//            BitmapDataVo bitmapDataVo = signageFileUtil.getLastBitmapDataVo(req.getDeId(), typeCode, req.getIsDefault());
+//            bitmapDataVoList.add(bitmapDataVo);
+//        }
+//        return ResultBean.succeed(bitmapDataVoList);
+        return ResultBean.defeated("未实现");
     }
 
     /**
@@ -172,7 +173,7 @@ public class DotMatrixController {
             bitmapDataVo =bitmapDataVoMap.get(typeCode);
 
         }else{
-            bitmapDataVo =  signageFileUtil.getLastBitmapDataVo(DEID, typeCode, isDefault);
+            bitmapDataVo =  signageFileUtil.getLastBitmapDataVo(DEID, typeCode, "未知", isDefault);
         }
 
         if (bitmapDataVo == null) {

+ 14 - 12
src/main/java/com/yeechart/dotMatrix/signage/SignageDrawUtil.java

@@ -233,7 +233,9 @@ public class SignageDrawUtil {
         }
 
 
-        String path = SignageFileUtil.fileName + dId + "/";//路径;
+//        String path = SignageFileUtil.fileName + dId + "/";//路径;
+        String sessionId = System.currentTimeMillis() + "";
+        String path = SignageFileUtil.fileName + dId + "/" + sessionId + "/";//路径;
 
 
         List<String> leftGuideList = new ArrayList<>();
@@ -301,7 +303,7 @@ public class SignageDrawUtil {
 
             BitmapDataVo bitmapDataVo = null;
             if (!isContainsType(typeList, 0)) {
-                bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_GUIDE, ter020201InfoVo.getIsDefault());
+                bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_GUIDE, sessionId, ter020201InfoVo.getIsDefault());
             }
             if (bitmapDataVo == null) {
 
@@ -347,7 +349,7 @@ public class SignageDrawUtil {
                 //未配网
                 //从缓存中获取之前的点阵数据
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_GUIDE + "00", ter020201InfoVo.getIsDefault());
+                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_GUIDE + "00",  sessionId, ter020201InfoVo.getIsDefault());
                 }
 
                 if (bitmapDataVo != null) {
@@ -364,7 +366,7 @@ public class SignageDrawUtil {
                 //已配网
                 //从缓存中获取之前的点阵数据
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_GUIDE + "01", ter020201InfoVo.getIsDefault());
+                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_OFF + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_GUIDE + "01", sessionId, ter020201InfoVo.getIsDefault());
                 }
 
                 if (bitmapDataVo != null) {
@@ -533,7 +535,7 @@ public class SignageDrawUtil {
                 outer:
                 for (int state : stateList) {
                     for (int chart : chartList) {
-                        bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "0" + chart + "0" + state, ter020201InfoVo.getIsDefault());
+                        bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "0" + chart + "0" + state, sessionId, ter020201InfoVo.getIsDefault());
                         if (bitmapDataVo2 != null) {
                             break outer;
                         }
@@ -717,7 +719,7 @@ public class SignageDrawUtil {
             if (bitmapChart1Data == null) {
                 BitmapDataVo bitmapDataVo = null;
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "01" + TypeCodeUtil.CODE_FF, ter020201InfoVo.getIsDefault());//+ "0" + state
+                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "01" + TypeCodeUtil.CODE_FF, sessionId, ter020201InfoVo.getIsDefault());//+ "0" + state
 
                 }
                 if (bitmapDataVo != null) {
@@ -736,7 +738,7 @@ public class SignageDrawUtil {
             if (bitmapChart2Data == null) {
                 BitmapDataVo bitmapDataVo = null;
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "02" + TypeCodeUtil.CODE_FF, ter020201InfoVo.getIsDefault());//+ "0" + state
+                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "02" + TypeCodeUtil.CODE_FF, sessionId, ter020201InfoVo.getIsDefault());//+ "0" + state
                 }
                 if (bitmapDataVo != null) {
 
@@ -754,7 +756,7 @@ public class SignageDrawUtil {
             if (bitmapChart3Data == null) {
                 BitmapDataVo bitmapDataVo = null;
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "03" + TypeCodeUtil.CODE_FF, ter020201InfoVo.getIsDefault());//+ "0" + state
+                    bitmapDataVo = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_LEFT + TypeCodeUtil.CODE_BUSINESS + "03" + TypeCodeUtil.CODE_FF, sessionId, ter020201InfoVo.getIsDefault());//+ "0" + state
                 }
                 if (bitmapDataVo != null) {
 
@@ -1133,11 +1135,11 @@ public class SignageDrawUtil {
 
             //从缓存中读取原点阵数据
             if (!isContainsType(typeList, 0)) {
-                bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "00", ter020201InfoVo.getIsDefault());//右屏 报表之外的数据是相同的 则随便获取其中一个即可
+                bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "00", sessionId, ter020201InfoVo.getIsDefault());//右屏 报表之外的数据是相同的 则随便获取其中一个即可
             }
             if (bitmapDataVo2 == null) {
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "01", ter020201InfoVo.getIsDefault());//右屏 报表之外的数据是相同的 则随便获取其中一个即可
+                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "01", sessionId, ter020201InfoVo.getIsDefault());//右屏 报表之外的数据是相同的 则随便获取其中一个即可
                 }
             }
             if (bitmapDataVo2 == null) {
@@ -1284,7 +1286,7 @@ public class SignageDrawUtil {
                 int[][] canvasBitmapArrays2 = new int[height][width];
 
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "00", ter020201InfoVo.getIsDefault());
+                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "00", sessionId, ter020201InfoVo.getIsDefault());
                 }
 
 
@@ -1337,7 +1339,7 @@ public class SignageDrawUtil {
                 bitmapDataVo2 = null;
                 int[][] canvasBitmapArrays2 = new int[height][width];
                 if (!isContainsType(typeList, 0)) {
-                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "01", ter020201InfoVo.getIsDefault());
+                    bitmapDataVo2 = signageFileUtil.getLastBitmapDataVo(dId, TypeCodeUtil.CODE_ON + TypeCodeUtil.CODE_RIGHT + TypeCodeUtil.CODE_BUSINESS + "01", sessionId, ter020201InfoVo.getIsDefault());
                 }
 
                 if (bitmapDataVo2 == null || isContainsType(typeList, 0, 31)) {

+ 2 - 2
src/main/java/com/yeechart/dotMatrix/signage/SignageFileUtil.java

@@ -54,12 +54,12 @@ public class SignageFileUtil {
      * @param isDefault 是否是默认图
      * @return
      */
-    public  BitmapDataVo getLastBitmapDataVo(String dId, String typeCode, boolean isDefault) {
+    public  BitmapDataVo getLastBitmapDataVo(String dId, String typeCode, String sessionId, boolean isDefault) {
         if (isDefault) {
             typeCode = "D" + typeCode;
         }
 
-        String url = "http://" + ossUpload.getEndpoint() + "/" + fileName + dId + "/" + typeCode;
+        String url = "http://" + ossUpload.getEndpoint() + "/" + fileName + dId + "/" + sessionId + "/" + typeCode;
 
         BitmapDataVo bitmapDataVo = new BitmapDataVo();
         bitmapDataVo.setTypeCode(typeCode);