Przeglądaj źródła

修改余额统计

DESKTOP-NE65RNK\Citrus_limon 1 rok temu
rodzic
commit
5ac7bbf713
1 zmienionych plików z 34 dodań i 19 usunięć
  1. 34 19
      src/views/statistic/balance_user/index.vue

+ 34 - 19
src/views/statistic/balance_user/index.vue

@@ -95,32 +95,47 @@ const getUserBalanceData = () => {
 };
 getUserBalanceData();
 
+const handleEarningsData = (data: any) => {
+  let transferBalance = new Decimal(0);
+  let earningsList = data.map((item: any, index: any) => {
+    if (index == 0) return 0;
+    if (item.label !== 0) transferBalance = transferBalance.add(item.changeU);
+    return new Decimal(item.afterU || 0).minus(data[0].afterU).minus(transferBalance).toNumber();
+  });
+  return earningsList;
+};
+const handleEarningsRateData = (data: any) => {
+  let transferBalance = data[0].afterU;
+  let transferEarningsRate: any = 0;
+  let lastEarningsRate: any = 0;
+  let earningsList = data.map((item: any, index: any) => {
+    if (index == 0) return 0;
+    if (item.label !== 0) {
+      transferBalance = item.afterU;
+      transferEarningsRate = lastEarningsRate;
+      return transferEarningsRate
+    };
+    let earningsRate = new Decimal(item.afterU || 0).minus(transferBalance).div(transferBalance).mul(100).add(transferEarningsRate).toNumber();
+    lastEarningsRate = earningsRate
+    return earningsRate;
+  });
+  return earningsList;
+};
+const handleTotalBalanceData = (data: any) => {
+  return data.map((item: any) => item.afterU);
+};
+
 const handleBalanceData = (data: any) => {
   return new Promise((resolve: any) => {
     // 过滤无效数据
     balanceData.value = { ...data, userList: data.userList.filter((item: any) => item.balance.length > 0) };
     balanceData.value.userList.map((item: any) => {
-      let earningList: any = [];
-      let earningRateList: any = [];
-      let lastBalance = 0;
-      let transferBalance = 0;
-      item.balance.map((items: any) => {
-        const isTransfer = new Decimal(items || 0)
-          .minus(lastBalance || 0)
-          .mod(50)
-          .toNumber();
-        if (!isTransfer && items != lastBalance) transferBalance += items - lastBalance;
-        lastBalance = items;
-        let totalBalance = item.balance[0] + transferBalance;
-        let earning = new Decimal(items || 0).minus(totalBalance || 0);
-        let earningRate = earning.div(totalBalance || 1).mul(100);
-        earningList.push(earning.toNumber());
-        earningRateList.push(earningRate.toNumber());
-      });
-
+      let earningList: any = handleEarningsData(item.balance);
+      let earningRateList: any = handleEarningsRateData(item.balance);
+      let totalList: any = handleTotalBalanceData(item.balance);
       earningsData.value.push({ name: item.name, type: "line", stack: item.name, data: earningList });
       earningsRateData.value.push({ name: item.name, type: "line", stack: item.name, data: earningRateList });
-      totalBalanceData.value.push({ name: item.name, type: "line", stack: item.name, data: item.balance });
+      totalBalanceData.value.push({ name: item.name, type: "line", stack: item.name, data: totalList });
     });
     resolve(true);
   });