Преглед изворни кода

第三方接口访问日志

wujiefeng пре 1 година
родитељ
комит
d2003aa680

+ 5 - 4
FullCardClient/src/main/java/com/zhongshu/card/client/model/pay/RealTimeOverviewModel.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.client.model.pay;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -12,10 +13,10 @@ public class RealTimeOverviewModel {
     private List<String> point;
 
     @Schema(description = "昨日收入")
-    private List<Long> yesterdayList;
+    private List<BigDecimal> yesterdayList;
 
     @Schema(description = "今日收入")
-    private List<Long> todayList;
+    private List<BigDecimal> todayList;
 
     @Schema(description = "昨天收入总和")
     private Long yesterdayAmount = 0L;
@@ -24,7 +25,7 @@ public class RealTimeOverviewModel {
     private Long todayAmount = 0L;
 
     @Schema(description = "收入变化率")
-    private Long amountChangeRate;
+    private BigDecimal amountChangeRate;
 
     @Schema(description = "昨日订单")
     private List<Long> yesterdayOrderList;
@@ -39,7 +40,7 @@ public class RealTimeOverviewModel {
     private Long todayOrder = 0L;
 
     @Schema(description = "订单数量变化率")
-    private Long orderChangeRate;
+    private BigDecimal orderChangeRate;
 
     private BalanceOverviewModel balanceOverview;
 }

+ 22 - 7
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/OrgOverviewService.java

@@ -27,6 +27,8 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -180,7 +182,7 @@ public class OrgOverviewService extends SuperService {
                 DateUtils.getCurrentDayEndTime().getTime(),
                 Map.of("ledgerEntry", LedgerEntry.Credit));
 
-        yesterdayOrderList = buildRealTimeAmountList(yesterdayOrderList, yesterdayGroupByOrderNumber, currentIntegralPoint);
+        yesterdayOrderList = buildRealTimeAmountList(yesterdayOrderList, yesterdayGroupByOrderNumber, yesterdayIntegralPoint);
         todayOrderList = buildRealTimeAmountList(todayOrderList, todayGroupByOrderNumber, currentIntegralPoint);
         Long todayOrder = todayOrderList.stream().mapToLong(it -> {
             return it;
@@ -195,8 +197,17 @@ public class OrgOverviewService extends SuperService {
         realTimeOverviewModel.setPoint(retIntegralPoint);
         realTimeOverviewModel.setTodayAmount(todayAmount);
         realTimeOverviewModel.setYesterdayAmount(yesterdayAmount);
-        realTimeOverviewModel.setTodayList(todayList);
-        realTimeOverviewModel.setYesterdayList(yesterdayList);
+        List<BigDecimal> todayListBigDecimal = todayList.stream().map(it->{
+            BigDecimal bigDecimal = new BigDecimal(it);
+            return bigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
+        }).toList();
+        realTimeOverviewModel.setTodayList(todayListBigDecimal);
+        List<BigDecimal> yesterdayListBigDecimal = yesterdayList.stream().map(it->{
+            BigDecimal bigDecimal = new BigDecimal(it);
+            return bigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
+        }).toList();
+        realTimeOverviewModel.setYesterdayList(yesterdayListBigDecimal);
+
         realTimeOverviewModel.setAmountChangeRate(changeRate(todayAmount, yesterdayAmount));
         //订单数据
         realTimeOverviewModel.setYesterdayOrderList(yesterdayOrderList);
@@ -323,12 +334,16 @@ public class OrgOverviewService extends SuperService {
     }
 
 
-    private Long changeRate(Long todayAmount, Long yesterdayAmount) {
-        Long amountChangeRate = null;
+    private BigDecimal changeRate(Long todayAmount, Long yesterdayAmount) {
+        BigDecimal amountChangeRate = BigDecimal.ZERO;
         if (yesterdayAmount != 0L){
-            amountChangeRate = (todayAmount - yesterdayAmount) / yesterdayAmount;
+            BigDecimal today = new BigDecimal(todayAmount);
+            BigDecimal yesterday = new BigDecimal(yesterdayAmount);
+            BigDecimal subtract = today.subtract(yesterday);
+            BigDecimal divide = subtract.divide(yesterday, 2, BigDecimal.ROUND_HALF_UP);
+            amountChangeRate = divide.movePointRight(2);
         }else {
-            amountChangeRate = todayAmount;
+            amountChangeRate = new BigDecimal(todayAmount);
         }
         return amountChangeRate;
     }