zhijiezhao 3 лет назад
Родитель
Сommit
56c2cf992b

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

@@ -481,20 +481,18 @@ 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 - newOrder.getBalancePayFee();
-                if (onlineMoney > 0) {
-                    //线上余额算正常金额退
-                    refundOnlineFee = MathUtil.add(refundOnlineFee, onlineMoney).doubleValue();
-                    //总余额减掉退回的线上退回去
-                    balancePayFee = MathUtil.sub(balancePayFee, onlineMoney).doubleValue();
-                }
+//                //线上线下余额-退款
+//                onlineMoney -= refundOnlineMoney;
+                //线上余额算正常金额退,线上退回=总金额-(余额抵扣-线上)
+                double refundOnlineFee = refundFee - MathUtil.sub(newOrder.getBalancePayFee(),onlineMoney).doubleValue();
+                //总余额减掉退回的线上退回去
+                balancePayFee = MathUtil.sub(balancePayFee, onlineMoney).doubleValue();
                 cmReturnedPurchase.setRefundOnlineFee(refundOnlineFee);
-                cmReturnedPurchase.setRefundBalanceFee(newOrder.getBalancePayFee());
+                cmReturnedPurchase.setRefundBalanceFee(balancePayFee);
             } else if ("1".equals(cmReturnedPurchase.getReturnedWay()) && cmReturnedPurchase.getRefundBalanceFee() == 0d) {
                 //可以线上退款的时候选择退余额进这里
                 //退线下余额

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

@@ -544,22 +544,18 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
             newOrderService.update(newOrder);
             //判断是否选择退回余额
             //returnway=1,退线下余额>0或退线上余额>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 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 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();
@@ -734,7 +730,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
         }
     }
 
-    private void updateShopOrderAmount(Integer orderId) {
+    public void updateShopOrderAmount(Integer orderId) {
         //修改子订单付供应商金额
         List<NewShopOrder> shopOrders = newShopOrderDao.findListByOrderID(orderId);
         shopOrders.removeIf(s -> 998 == s.getShopID());
@@ -768,7 +764,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
      *
      * @param orderId
      */
-    private void theOnlineRefund(Integer orderId) throws Exception {
+    public void theOnlineRefund(Integer orderId) throws Exception {
         //商户标识
         String merAccount = "aa9aee6a148843a6a9e4ea117df4454b";
         //私钥,商户密钥
@@ -918,7 +914,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                         }
                         if (onlineMoneyPay > 0) {
                             logger.info("订单不足退线上余额,请检查订单");
-                            throw new Exception("订单不足退线上余额,请检查订单!");
+                            throw new RuntimeException ("订单不足退线上余额,请检查订单!");
                         }
                     } else {
                         logger.info("线上余额过小或无线上余额支付退款=========orderId==> " + orderId);

+ 14 - 26
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,20 +707,11 @@ public class NewOrderController extends BaseController {
             Double userUseMoney = 0d;
             //可用余额
             Double ableUserMoney = u.getAbleUserMoney();
-            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;
-                }
+            if (onlineMoney > order.getBalancePayFee()) {
+                onlineUseMoney = order.getBalancePayFee();
+            } else {
+                userUseMoney = order.getBalancePayFee() - onlineMoney;
+                onlineUseMoney = onlineMoney;
             }
             ableUserMoney = MathUtil.sub(ableUserMoney, MathUtil.add(onlineUseMoney, userUseMoney)).doubleValue();
             onlineMoney = MathUtil.sub(onlineMoney, onlineUseMoney).doubleValue();
@@ -749,7 +740,6 @@ public class NewOrderController extends BaseController {
     }
 
 
-
     /**
      * 确认收货
      *
@@ -766,8 +756,6 @@ public class NewOrderController extends BaseController {
     }
 
 
-
-
     /**
      * 去子订单orderProduct页面
      *
@@ -1279,14 +1267,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);
@@ -1327,7 +1315,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);
@@ -1449,17 +1437,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");