Selaa lähdekoodia

Revert "线上/下余额退款"

This reverts commit 56c2cf992b86a4f813d9791a458c06e6813a733e.
zhijiezhao 3 vuotta sitten
vanhempi
commit
8d4da4a0c2

+ 12 - 10
src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java

@@ -481,18 +481,20 @@ public class CmRefundsProductController extends BaseController {
             if ("2".equals(cmReturnedPurchase.getReturnedWay())) {
                 Double balancePayFee = newOrder.getBalancePayFee();
                 Double onlineMoney = cmDiscernReceiptDao.findOnlineMoney(newOrder.getOrderID().toString());
-//线上退款是全退,暂不考虑已退
-                //                Double refundOnlineMoney = cmDiscernReceiptDao.findRefundOnlineMoney(newOrder.getOrderID().toString());
-//                refundOnlineMoney = null == refundOnlineMoney ? 0 : refundOnlineMoney;
+                Double refundOnlineMoney = cmDiscernReceiptDao.findRefundOnlineMoney(newOrder.getOrderID().toString());
+                refundOnlineMoney = null == refundOnlineMoney ? 0 : refundOnlineMoney;
                 onlineMoney = null == onlineMoney ? 0 : onlineMoney;
-//                //线上线下余额-退款
-//                onlineMoney -= refundOnlineMoney;
-                //线上余额算正常金额退,线上退回=总金额-(余额抵扣-线上)
-                double refundOnlineFee = refundFee - MathUtil.sub(newOrder.getBalancePayFee(),onlineMoney).doubleValue();
-                //总余额减掉退回的线上退回去
-                balancePayFee = MathUtil.sub(balancePayFee, onlineMoney).doubleValue();
+                //线上线下余额-退款
+                onlineMoney -= refundOnlineMoney;
+                double refundOnlineFee = refundFee - newOrder.getBalancePayFee();
+                if (onlineMoney > 0) {
+                    //线上余额算正常金额退
+                    refundOnlineFee = MathUtil.add(refundOnlineFee, onlineMoney).doubleValue();
+                    //总余额减掉退回的线上退回去
+                    balancePayFee = MathUtil.sub(balancePayFee, onlineMoney).doubleValue();
+                }
                 cmReturnedPurchase.setRefundOnlineFee(refundOnlineFee);
-                cmReturnedPurchase.setRefundBalanceFee(balancePayFee);
+                cmReturnedPurchase.setRefundBalanceFee(newOrder.getBalancePayFee());
             } else if ("1".equals(cmReturnedPurchase.getReturnedWay()) && cmReturnedPurchase.getRefundBalanceFee() == 0d) {
                 //可以线上退款的时候选择退余额进这里
                 //退线下余额

+ 12 - 8
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -544,18 +544,22 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
             newOrderService.update(newOrder);
             //判断是否选择退回余额
             //returnway=1,退线下余额>0或退线上余额>0  是定金订单???
-            //退账户线下余额
-            Double refundBalanceFee = null == returnedPurchase.getRefundBalanceFee() ? 0 : returnedPurchase.getRefundBalanceFee();
-            //退账户线上余额
-            Double refundOnlineBalanceFee = null == returnedPurchase.getRefundOnlineBalanceFee() ? 0 : returnedPurchase.getRefundOnlineBalanceFee();
-            if ((returnedPurchase.getReturnedWay().equals("1") && refundBalanceFee > 0d) || null != newOrder.getRechargeGoods() || refundOnlineBalanceFee > 0) {
+            Double refundBalance = null == returnedPurchase.getRefundBalanceFee() ? 0 : returnedPurchase.getRefundBalanceFee();
+            Double refundOnlineBalance = null == returnedPurchase.getRefundOnlineBalanceFee() ? 0 : returnedPurchase.getRefundOnlineBalanceFee();
+            if ((returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundBalanceFee() > 0d) || null != newOrder.getRechargeGoods() || returnedPurchase.getRefundOnlineBalanceFee() > 0) {
                 Double userMoney = user.getUserMoney();
                 Double ableUserMoney = user.getAbleUserMoney();
+                //退账户线下余额
+                Double refundBalanceFee = returnedPurchase.getRefundBalanceFee();
+                //退账户线上余额
+                Double refundOnlineBalanceFee = returnedPurchase.getRefundOnlineBalanceFee();
                 Double refundFee = returnedPurchase.getRefundFee();
                 Double onlineMoney = user.getOnlineMoney();
                 userMoney = userMoney == null ? 0 : userMoney;
                 ableUserMoney = ableUserMoney == null ? 0 : ableUserMoney;
+                refundBalanceFee = refundBalanceFee == null ? 0 : refundBalanceFee;
                 onlineMoney = onlineMoney == null ? 0 : onlineMoney;
+                refundOnlineBalanceFee = refundOnlineBalanceFee == null ? 0 : refundOnlineBalanceFee;
                 user.setUserID(newOrder.getUserID());
 
                 CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
@@ -730,7 +734,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
         }
     }
 
-    public void updateShopOrderAmount(Integer orderId) {
+    private void updateShopOrderAmount(Integer orderId) {
         //修改子订单付供应商金额
         List<NewShopOrder> shopOrders = newShopOrderDao.findListByOrderID(orderId);
         shopOrders.removeIf(s -> 998 == s.getShopID());
@@ -764,7 +768,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
      *
      * @param orderId
      */
-    public void theOnlineRefund(Integer orderId) throws Exception {
+    private void theOnlineRefund(Integer orderId) throws Exception {
         //商户标识
         String merAccount = "aa9aee6a148843a6a9e4ea117df4454b";
         //私钥,商户密钥
@@ -915,7 +919,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                         }
                         if (onlineMoneyPay > 0) {
                             logger.info("订单不足退线上余额,请检查订单");
-                            throw new RuntimeException ("订单不足退线上余额,请检查订单!");
+                            throw new Exception("订单不足退线上余额,请检查订单!");
                         }
                     } else {
                         logger.info("线上余额过小或无线上余额支付退款=========orderId==> " + orderId);

+ 26 - 14
src/main/java/com/caimei/modules/order/web/NewOrderController.java

@@ -548,7 +548,7 @@ public class NewOrderController extends BaseController {
     @RequestMapping("confirmOrder")
     public String confirmOrder(Integer orderID, Model model, RedirectAttributes redirectAttributes) {
         NewOrder order = newOrderService.get(orderID + "");
-        if (StringUtils.isNotEmpty(order.getStatus()) && Integer.parseInt(order.getStatus()) > 0) {
+        if (StringUtils.isNotEmpty(order.getStatus()) && Integer.parseInt(order.getStatus())>0){
             addMessage(redirectAttributes, "订单状态异常,请刷新后重试!");
             return "redirect:" + Global.getAdminPath() + "/order/detail/?id=" + orderID;
         }
@@ -578,7 +578,7 @@ public class NewOrderController extends BaseController {
                 Integer svipPriceFlag = op.getSvipPriceFlag();
                 Integer ladderPriceFlag = op.getLadderPriceFlag();
                 //活动商品和阶梯商品和超级会员价不写入价格库
-                if (StringUtil.equals("0", isActProduct) && 0 == svipPriceFlag && 0 == ladderPriceFlag) {
+                if (StringUtil.equals("0", isActProduct) && 0 == svipPriceFlag && 0==ladderPriceFlag) {
                     String buyAgainFlag = op.getBuyAgainFlag();
                     //对于可以复购的商品添加买家商品价格,提供再次购买商品使用(如果不存在没有改买家商品价格则不能购买该商品)
                     if (StringUtils.isNotEmpty(buyAgainFlag) && StringUtils.equals("1", buyAgainFlag)) {
@@ -707,11 +707,20 @@ public class NewOrderController extends BaseController {
             Double userUseMoney = 0d;
             //可用余额
             Double ableUserMoney = u.getAbleUserMoney();
-            if (onlineMoney > order.getBalancePayFee()) {
-                onlineUseMoney = order.getBalancePayFee();
-            } else {
-                userUseMoney = order.getBalancePayFee() - onlineMoney;
-                onlineUseMoney = onlineMoney;
+            if(ableUserMoney>order.getBalancePayFee()){
+                if (onlineMoney > order.getBalancePayFee()) {
+                    onlineUseMoney = order.getBalancePayFee();
+                } else {
+                    userUseMoney = order.getBalancePayFee() - onlineMoney;
+                    onlineUseMoney = onlineMoney;
+                }
+            }else{
+                if (onlineMoney >ableUserMoney){
+                    onlineUseMoney=ableUserMoney;
+                }else{
+                    userUseMoney=ableUserMoney-onlineMoney;
+                    onlineUseMoney=onlineMoney;
+                }
             }
             ableUserMoney = MathUtil.sub(ableUserMoney, MathUtil.add(onlineUseMoney, userUseMoney)).doubleValue();
             onlineMoney = MathUtil.sub(onlineMoney, onlineUseMoney).doubleValue();
@@ -740,6 +749,7 @@ public class NewOrderController extends BaseController {
     }
 
 
+
     /**
      * 确认收货
      *
@@ -756,6 +766,8 @@ public class NewOrderController extends BaseController {
     }
 
 
+
+
     /**
      * 去子订单orderProduct页面
      *
@@ -1267,14 +1279,14 @@ public class NewOrderController extends BaseController {
         //线上/下余额赋值
         Double userMoney = cmDiscernReceiptDao.findUserMoney(order.getId());
         Double onlineMoney = cmDiscernReceiptDao.findOnlineMoney(order.getId());
-        if (null == userMoney) {
+        if(null==userMoney){
             order.setUserMoney(0d);
-        } else {
+        }else{
             order.setUserMoney(userMoney);
         }
-        if (null == onlineMoney) {
+        if(null == onlineMoney){
             order.setOnlineMoney(0d);
-        } else {
+        }else{
             order.setOnlineMoney(onlineMoney);
         }
         model.addAttribute("order", order);
@@ -1315,7 +1327,7 @@ public class NewOrderController extends BaseController {
         }
         //订单已收金额
         Double brokerage = cmUtilsDao.selectPayTotalFees(order.getOrderID());
-        model.addAttribute("brokerage", brokerage);
+        model.addAttribute("brokerage",brokerage);
         Double receiptAmount = cmDiscernReceiptService.findOrderReceipt(order.getOrderID());
         model.addAttribute("returnValue", returnValue);
         model.addAttribute("receiptAmount", receiptAmount == null ? 0 : receiptAmount);
@@ -1437,17 +1449,17 @@ public class NewOrderController extends BaseController {
 
     /**
      * 置为已收款已付款
-     *
      * @param orderId
      * @return
      */
     @RequestMapping("toChangePay")
-    public String changePay(Integer orderId) {
+    public String changePay(Integer orderId){
         newOrderService.changePay(orderId);
         return "redirect:" + Global.getAdminPath() + "/order/orderList";
     }
 
 
+
     @RequestMapping(value = "saveClause")
     public String saveClause(NewOrder order, RedirectAttributes redirectAttributes, HttpServletRequest request) {
         String clauseContent = request.getParameter("clauseContent");