From ed42d1638f7f984b4e263a92fab476aaff8d992b Mon Sep 17 00:00:00 2001
From: licc <lichuchuan@jtep.com.cn>
Date: Mon, 22 Mar 2021 14:45:44 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9C=88=E5=BA=A6=E4=BB=BB?=
 =?UTF-8?q?=E5=8A=A1=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../cn/wisenergy/model/app/TradeRecord.java   |  5 ++--
 .../service/app/impl/AccountServiceImpl.java  | 24 +++++++++++++++----
 .../app/impl/MonthTaskServiceImpl.java        | 18 +++++++++++---
 3 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/wisenergy-model/src/main/java/cn/wisenergy/model/app/TradeRecord.java b/wisenergy-model/src/main/java/cn/wisenergy/model/app/TradeRecord.java
index 7e0e71f..4377fa3 100644
--- a/wisenergy-model/src/main/java/cn/wisenergy/model/app/TradeRecord.java
+++ b/wisenergy-model/src/main/java/cn/wisenergy/model/app/TradeRecord.java
@@ -32,9 +32,10 @@ public class TradeRecord implements Serializable {
     private String userId;
 
     /**
-     * 交易记录类型 1:提现 2:订单返佣 3:订单下单 4:月度肥料 5:培育奖 6:工资奖励  7:进步奖
+     * 交易记录类型 1:提现 2:订单返佣 3:订单下单 4:月度肥料 5:培育奖 6:工资奖励  7:进步奖 8:运营中心补贴
      */
-    @ApiModelProperty(name = "tradeType", value = "交易类型 1:提现 2:订单返佣 3:订单下单 4:月度肥料 5:培育奖 6:工资 7:进步奖")
+    @ApiModelProperty(name = "tradeType", value = "交易类型 1:提现 2:订单返佣 3:订单下单 4:月度肥料 5:培育奖 " +
+            "6:工资 7:进步奖 8:运营中心补贴")
     private Integer tradeType;
 
     /**
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AccountServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AccountServiceImpl.java
index ae9a6b9..f8ab190 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AccountServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AccountServiceImpl.java
@@ -62,6 +62,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
     @Autowired
     private MonthManureMapper monthManureMapper;
 
+    @Autowired
+    private LastAccountMapper lastAccountMapper;
+
     private static final String PATTERN = "yyyy-MM";
 
     private static final Integer TWENTY = 20;
@@ -286,7 +289,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
                     BigDecimal earningsMonth = accountInfo.getEarningsMonth().add(BigDecimal.valueOf(income));
                     accountInfo.setEarningsMonth(earningsMonth);
 
-                    //用户总收益 =其他总收益 + earningsMonth
+                    //用户总收益 =其他总收益 + 最大进步奖收益
                     BigDecimal earningsTotal = accountInfo.getEarningsTotal().add(BigDecimal.valueOf(income));
                     accountInfo.setEarningsTotal(earningsTotal);
                     accountInfoList.add(accountInfo);
@@ -319,7 +322,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
 
                 //更新账户信息,添加交易流水记录
                 boolean bool = accountManager.updateAccountAddRecordAddPrize(accountInfoList, tradeRecordList,
-                        addPrizeList,updatePrizeList);
+                        addPrizeList, updatePrizeList);
                 if (!bool) {
                     return R.ok(1, false);
                 }
@@ -414,14 +417,25 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
                         //获取账户信息
                         AccountInfo accountInfo = accountMapper.getByUserId(user.getUserId());
                         BigDecimal bigDecimal = new BigDecimal(income);
-                        BigDecimal performanceMonth = accountInfo.getEarningsMonth().add(bigDecimal);
+
+                        //获取用户本月收益=可提现金额+ 本月肥料收益
+                        BigDecimal performanceMonth = accountInfo.getExtractMoney().add(bigDecimal);
                         accountInfo.setEarningsMonth(performanceMonth);
 
-                        BigDecimal performanceTotal = accountInfo.getEarningsTotal().add(bigDecimal);
+                        //获取用户上月总收益
+                        LastMonthAccount lastMonthAccount = lastAccountMapper.getByUserIdAndTime(user.getUserId(), yearMonthTime);
+                        BigDecimal lastTotalMonth;
+                        if (null == lastMonthAccount || null == lastMonthAccount.getEarningsTotal()) {
+                            lastTotalMonth = new BigDecimal("0.00");
+                        } else {
+                            lastTotalMonth = lastMonthAccount.getEarningsTotal();
+                        }
+
+                        //用户总收益=上月总收益+本月收益
+                        BigDecimal performanceTotal = lastTotalMonth.add(performanceMonth);
                         accountInfo.setEarningsTotal(performanceTotal);
                         accountInfoList.add(accountInfo);
 
-
                         //5、添加交易流水记录
                         TradeRecord tradeRecord = new TradeRecord();
                         tradeRecord.setUserId(user.getUserId());
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/MonthTaskServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/MonthTaskServiceImpl.java
index f0e1d2e..a57142e 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/MonthTaskServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/MonthTaskServiceImpl.java
@@ -449,10 +449,22 @@ public class MonthTaskServiceImpl implements MonthTaskService {
                         //获取账户信息
                         AccountInfo accountInfo = accountMapper.getByUserId(user.getUserId());
                         BigDecimal bigDecimal = new BigDecimal(income).setScale(2, RoundingMode.HALF_UP);
-                        BigDecimal performanceMonth = accountInfo.getEarningsMonth().add(bigDecimal);
-                        accountInfo.setEarningsMonth(performanceMonth.setScale(2, RoundingMode.HALF_UP));
 
-                        BigDecimal performanceTotal = accountInfo.getEarningsTotal().add(bigDecimal);
+                        //获取用户上月月收益=可提现金额+ 上月肥料收益
+                        BigDecimal performanceMonth = accountInfo.getExtractMoney().add(bigDecimal);
+                        accountInfo.setEarningsMonth(performanceMonth);
+
+                        //获取用户上上月总收益
+                        LastMonthAccount lastMonthAccount = lastAccountMapper.getByUserIdAndTime(user.getUserId(), yearMonthTime);
+                        BigDecimal lastTotalMonth;
+                        if (null == lastMonthAccount || null == lastMonthAccount.getEarningsTotal()) {
+                            lastTotalMonth = new BigDecimal("0.00");
+                        } else {
+                            lastTotalMonth = lastMonthAccount.getEarningsTotal();
+                        }
+
+                        //用户总收益=上上月总收益+上月收益
+                        BigDecimal performanceTotal = lastTotalMonth.add(performanceMonth);
                         accountInfo.setEarningsTotal(performanceTotal.setScale(2, RoundingMode.HALF_UP));
                         accountInfoList.add(accountInfo);
 
-- 
2.18.1