From 5b924f97d699e4d7c0175fb09125c964e29d6416 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 30 Oct 2022 10:57:29 +0800
Subject: [PATCH] 20221021

---
 src/main/resources/mapper/dapp/IgtOnHookPlanOrderItemDao.xml                    |   13 +++++++++++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java |   18 ++++++++----------
 src/main/java/cc/mrbird/febs/dapp/mapper/IgtOnHookPlanOrderItemDao.java         |    2 ++
 3 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/IgtOnHookPlanOrderItemDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/IgtOnHookPlanOrderItemDao.java
index 6930c39..aa147f0 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/IgtOnHookPlanOrderItemDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/IgtOnHookPlanOrderItemDao.java
@@ -32,4 +32,6 @@
     IgtOnHookPlanOrderItem selectByCreateTimeAndIsgoaAndOrderId(@Param("endTime")Date endTime, @Param("isGoal")int i, @Param("orderId")Long orderId);
 
     IgtOnHookPlanOrderItem selectOneByIgtIdAndMemberId(@Param("orderId") Long orderId, @Param("memberId")Long memberId);
+
+    BigDecimal selectTotalAmountByIDAndOrderId(@Param("start")Long id, @Param("end")Long id1, @Param("orderId")Long orderId);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
index b05e763..3cb9ffa 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -391,23 +391,21 @@
                                 if(2 == igtOnHookPlanOrderItem.getIsGoal()){
                                     //返还两次中奖之间的本金
                                     Date endTime = igtOnHookPlanOrderItem.getCreateTime();
-                                    Date startTime = null;
+                                    BigDecimal totalAmount = BigDecimal.ZERO;
                                     //返回上次中奖的记录
                                     IgtOnHookPlanOrderItem igtOld = igtOnHookPlanOrderItemDao.selectByCreateTimeAndIsgoaAndOrderId(endTime,2,igtOnHookPlanOrder.getId());
                                     if(ObjectUtil.isNotEmpty(igtOld)){
-                                        startTime = igtOld.getCreateTime();
+                                        totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByIDAndOrderId(igtOld.getId(),
+                                                igtOnHookPlanOrderItem.getId(),igtOnHookPlanOrderItem.getOrderId());
+                                    }else{
+                                        totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByIDAndOrderId(igtOld.getId(),
+                                                null,igtOnHookPlanOrderItem.getOrderId());
                                     }
-                                    BigDecimal totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByCreateTimeAndOrderId(startTime,endTime,igtOnHookPlanOrderItem.getOrderId());
-                                    int i = (totalAmount.add(igtOnHookPlanOrder.getAvaAmount())).compareTo(igtOnHookPlanOrder.getPlanAmount());
                                     //如果中奖,增加挂机主表的挂机总收益,返还两次中奖之间的本金
                                     igtOnHookPlanOrderDao.AddProfitById(igtOnHookPlanOrder.getId()
                                             ,igtOnHookPlanOrderItem.getProfit());
-                                    if(i >= 0){
-                                        igtOnHookPlanOrder.setAvaAmount(igtOnHookPlanOrder.getPlanAmount());
-                                    }else{
-                                        igtOnHookPlanOrder.setAvaAmount(totalAmount);
-                                    }
-                                    igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder);
+                                    igtOnHookPlanOrderDao.addAvaAmountById(igtOnHookPlanOrder.getId()
+                                            ,totalAmount);
                                 }else{
                                     //如果不中奖,减少挂机剩余金额即减少本金
                                     Integer updateCount = igtOnHookPlanOrderDao.updateAvaAmountById(igtOnHookPlanOrder.getId()
diff --git a/src/main/resources/mapper/dapp/IgtOnHookPlanOrderItemDao.xml b/src/main/resources/mapper/dapp/IgtOnHookPlanOrderItemDao.xml
index 48371de..6d95d97 100644
--- a/src/main/resources/mapper/dapp/IgtOnHookPlanOrderItemDao.xml
+++ b/src/main/resources/mapper/dapp/IgtOnHookPlanOrderItemDao.xml
@@ -104,5 +104,18 @@
             limit 1
     </select>
 
+    <select id="selectTotalAmountByIDAndOrderId" resultType="java.math.BigDecimal">
+        SELECT
+        ifnull(sum(a.amount),0)
+        FROM igt_on_hook_plan_order_item a
+        <where>
+            a.order_id = #{orderId}
+            and a.id &lt; #{end}
+            <if test="start != null">
+                and a.id > #{start}
+            </if>
+        </where>
+    </select>
+
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1