Pārlūkot izejas kodu

优化多次冗余正常状态记录功能,连续正常状态上报记录只保留最早一次记录信息。

bruce 2 gadi atpakaļ
vecāks
revīzija
37d2b6b7ac

+ 9 - 3
imcs-bt-be/imcs-authority-server/src/main/java/com/github/zuihou/api/AndroidApi.java

@@ -43,6 +43,7 @@ import com.github.zuihou.utils.WxPayUtil;
 import com.wechat.pay.contrib.apache.httpclient.auth.Verifier;
 import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.codec.binary.StringUtils;
 import org.codehaus.jackson.JsonNode;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.beans.factory.annotation.Value;
@@ -521,12 +522,17 @@ public class AndroidApi
         HashMap<String, String> saveMap = new HashMap<>();
         saveMap.put("status", status.getStatus().toString());
         saveMap.put("errMsg", status.getMessage());
+        String origStatus = (String) redisTemplate.opsForHash().get("equStatus" + status.getEquId(), "status");
         redisTemplate.opsForHash().putAll("equStatus" + status.getEquId(), saveMap);
-        redisTemplate.expire("equStatus" + status.getEquId(), 4, TimeUnit.SECONDS);
+        // redisTemplate.expire("equStatus" + status.getEquId(), 4, TimeUnit.SECONDS);
 
         // 3 持久化至DB
-        status.setCreateUser(Long.valueOf("-1"));
-        equStatusMapper.insert(status);
+        if (1 != status.getStatus() || !StringUtils.equals(origStatus, "1"))
+        {
+            // 非正常状态 || 最后一次非正常状态(忽略正常场景下冗余的多条正常状态记录)
+            status.setCreateUser(Long.valueOf("-1"));
+            equStatusMapper.insert(status);
+        }
 
         return R.success(true, "成功");
     }