Просмотр исходного кода

中台-日志改造-第3步-优化可视化界面

limeng 2 лет назад
Родитель
Сommit
657e08b35c

+ 9 - 2
mybusiness/src/main/java/com/sooka/system/service/impl/TUInterfaceinfoServiceImpl.java

@@ -5,7 +5,7 @@ import java.util.List;
 import com.sooka.common.core.text.Convert;
 import com.sooka.common.utils.DateUtils;
 import com.sooka.common.utils.uuid.UUID;
-import org.apache.ibatis.annotations.Param;
+import com.util.NumberUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.sooka.system.mapper.TUInterfaceinfoMapper;
@@ -46,7 +46,14 @@ public class TUInterfaceinfoServiceImpl implements ITUInterfaceinfoService
     @Override
     public List<TUInterfaceinfo> selectTUInterfaceinfoList(TUInterfaceinfo tUInterfaceinfo)
     {
-        return tUInterfaceinfoMapper.selectTUInterfaceinfoList(tUInterfaceinfo);
+        List<TUInterfaceinfo> list = tUInterfaceinfoMapper.selectTUInterfaceinfoList(tUInterfaceinfo);
+        list.forEach((i) -> i.setCount(sum(i.getCallsuccnum(),i.getCallfailnum())));
+        return list;
+    }
+
+    private String sum(Long a, Long b){
+        Long count = a + b;
+        return NumberUtils.amountConversion(Integer.parseInt(count.toString()));
     }
 
     /**

+ 58 - 0
mybusiness/src/main/java/com/util/NumberUtils.java

@@ -0,0 +1,58 @@
+package com.util;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Administrator
+ */
+public class NumberUtils {
+
+    private static final String THOUSAND_UNIT = "k";
+    private static final String MILLION_UNIT = "w";
+    private static final String BILLION_UNIT = "e";
+    private static final BigDecimal ONE_HUNDRED_THOUSAND = new BigDecimal(100000);
+    private static final BigDecimal ONE_HUNDRED_MILLION = new BigDecimal(100000000);
+    private static final BigDecimal TEN_THOUSAND = new BigDecimal(10000);
+    private static final BigDecimal THOUSAND = new BigDecimal(1000);
+
+    /**
+     * 将数字转换成以万为单位或者以亿为单位,因为在前端数字太大显示有问题
+     * @param str
+     * @return
+     */
+    public static String amountConversion(int str){
+        BigDecimal amount = new BigDecimal(str);
+        if (amount.abs().compareTo(THOUSAND) < 0) {
+            //如果小于1千
+            return amount.stripTrailingZeros().toPlainString();
+        }
+        if (amount.abs().compareTo(TEN_THOUSAND) < 0) {
+            //如果小于1万
+            return amount.divide(THOUSAND, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + THOUSAND_UNIT;
+        }
+        if (amount.abs().compareTo(ONE_HUNDRED_MILLION) < 0) {
+            //小于1亿
+            return amount.divide(TEN_THOUSAND, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + MILLION_UNIT;
+        }
+        return amount.divide(ONE_HUNDRED_MILLION, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + BILLION_UNIT;
+    }
+
+//    public static void main(String[] args) {
+//        System.out.println(amountConversion(153));
+//        System.out.println(amountConversion(7791));
+//        System.out.println(amountConversion(54314));
+//        System.out.println(amountConversion(291764245));
+//    }
+
+    /**
+     * 将数字转换成以亿为单位
+     * @param amount
+     * @return
+     */
+    public static Double amountConversionBillion(BigDecimal amount){
+        if (amount == null) {
+            return null;
+        }
+        return amount.divide(ONE_HUNDRED_MILLION, 2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().doubleValue();
+    }
+}

+ 2 - 2
mybusiness/src/main/resources/templates/visualization/tk_iframe.html

@@ -29,8 +29,8 @@
             <ul class="jk_list line">
                 <li class="list_div" th:each="info:${interfaceList}">
                     <i><img th:src="@{/visualization/images/thqzj_tk4.png}"/></i>
-                    <span>[[${#strings.abbreviate(info.interfaceName,15)}]]</span>
-                    <u style="float: right;color: rgb(40 177 243);text-decoration: none;font-size: 16px;">3.5k</u>
+                    <span>[[${#strings.abbreviate(info.interfaceName,16)}]]</span>
+                    <u style="float: right;color: rgb(40 177 243);text-decoration: none;font-size: 16px;">[[${info.count}]]</u>
                 </li>
             </ul>
         </div>