瀏覽代碼

fix:“优化汇聚查询退款更新订单状态接口“

soobin 1 年之前
父節點
當前提交
6f0dd17d81
共有 1 個文件被更改,包括 24 次插入59 次删除
  1. 24 59
      src/main/java/com/szwl/controller/TOrderController.java

+ 24 - 59
src/main/java/com/szwl/controller/TOrderController.java

@@ -3765,48 +3765,6 @@ public class TOrderController {
                 }
             }
 
-            // 判断退款金额是否小于订单余额
-//            if(r4_refundAmount.compareTo(price)==-1){
-//                // refundAmount: 已退款金额
-//                BigDecimal refundAmount = order.getRefundAmount();
-//                if(refundAmount!=null){
-//                    // 如果已退款金额不为空,则加上退款金额
-//                    order.setRefundAmount(refundAmount.add(r4_refundAmount));
-//                }else {
-//                    // 已退款金额
-//                    order.setRefundAmount(r4_refundAmount);
-//                }
-//                // 订单设置为支付状态
-//                order.setStatus(1);
-//                // 改变订单的金额,原先金额减去退款金额
-////                order.setPrice(price.subtract(r4_refundAmount));
-//                // 重置分销
-//                if(order.getAltInfo()!=null) {
-//                    TProportion proportion = R.getDataIfSuccess(szwlFeign.getProportion(String.valueOf(order.getEquipmentId())));
-//                    JSONArray altInfo = getAltInfo(proportion, price.subtract(r4_refundAmount));
-//                    order.setAltInfo(altInfo.toString());
-//                }
-//            }
-            // 判断退款金额是否等于订单余额
-//            if(r4_refundAmount.compareTo(price)==0){
-//                BigDecimal refundAmount = order.getRefundAmount();
-////                order.setProductNumber(0);
-//                if(refundAmount!=null){
-//                    order.setRefundAmount(refundAmount.add(r4_refundAmount));
-//                    // 全部退完款重新加回已退款的金额
-////                    order.setPrice(order.getPrice().add(refundAmount));
-//                }else {
-//                    // 退款金额
-//                    order.setRefundAmount(r4_refundAmount);
-//                }
-//                order.setStatus(3);
-//                if(order.getAltInfo()!=null) {
-//                    TProportion proportion = R.getDataIfSuccess(szwlFeign.getProportion(String.valueOf(order.getEquipmentId())));
-//                    JSONArray altInfo = getAltInfo(proportion, order.getRefundAmount());
-//                    order.setAltInfo(altInfo.toString());
-//                }
-//            }
-
             // 支付平台产生的退款流水号
             String r5_RefundTrxNo = request.getParameter("r5_RefundTrxNo");
             order.setRefundTrxNo(r5_RefundTrxNo);
@@ -4720,13 +4678,15 @@ public class TOrderController {
      * @param refundTrxNo 退款流水号
      * @return
      */
-        @RequestMapping(value = "/queryRefund", method = RequestMethod.GET)
+    @RequestMapping(value = "/queryRefund", method = RequestMethod.GET)
     @ResponseBody
     public Object queryRefund(String sn, String refundTrxNo) {
 
         JSONObject resultJson = orderService.queryRefund(refundTrxNo);
         String refundStatus = resultJson.getString("ra_Status");
+        BigDecimal r3RefundAmount = new BigDecimal(resultJson.getString("r3_RefundAmount"));
         System.out.println("退款状态:" + refundStatus);
+        System.out.println("退款金额:" + r3RefundAmount);
 
         LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
         query.eq(TOrder::getSn,sn);
@@ -4772,25 +4732,30 @@ public class TOrderController {
             BigDecimal price = order.getPrice();
             BigDecimal refundAmount = order.getRefundAmount();
             TProportion proportion = R.getDataIfSuccess(szwlFeign.getProportion(String.valueOf(order.getEquipmentId())));
-            if(order.getRefundAmount() != null) {
-                BigDecimal newRefundAmount =  refundAmount.add(r4_refundAmount);
-                order.setRefundAmount(refundAmount.add(r4_refundAmount));
-                // 如果小于订单金额
-                if(newRefundAmount.compareTo(price) < 0) {
-                    JSONArray altInfo = getAltInfo(proportion, price.subtract(newRefundAmount));
-                    order.setAltInfo(altInfo.toString());
-                } else {
-                    JSONArray altInfo = getAltInfo(proportion, price);
-                    order.setAltInfo(altInfo.toString());
-                }
+            if (r3RefundAmount.compareTo(price) == 0) {
+                JSONArray altInfo = getAltInfo(proportion, price);
+                order.setAltInfo(altInfo.toString());
+                order.setRefundAmount(r3RefundAmount);
             } else {
-                order.setRefundAmount(r4_refundAmount);
-                if(r4_refundAmount.compareTo(price) < 0) {
-                    JSONArray altInfo = getAltInfo(proportion, price.subtract(r4_refundAmount));
-                    order.setAltInfo(altInfo.toString());
+                if(refundAmount != null) {
+                    BigDecimal newRefundAmount =  refundAmount.add(r4_refundAmount);
+                    // 如果小于订单金额
+                    if(newRefundAmount.compareTo(price) < 0) {
+                        JSONArray altInfo = getAltInfo(proportion, price.subtract(newRefundAmount));
+                        order.setAltInfo(altInfo.toString());
+                    } else {
+                        JSONArray altInfo = getAltInfo(proportion, price);
+                        order.setAltInfo(altInfo.toString());
+                    }
+                } else {
+                    order.setRefundAmount(r4_refundAmount);
+                    if(r4_refundAmount.compareTo(price) < 0) {
+                        JSONArray altInfo = getAltInfo(proportion, price.subtract(r4_refundAmount));
+                        order.setAltInfo(altInfo.toString());
+                    }
                 }
             }
-            
+
             try {
                 esTOrderService.updateDataById(order);
             }catch (Exception e) {