浏览代码

订单结算bugfix

zhijiezhao 2 年之前
父节点
当前提交
a1629d0be7

+ 16 - 9
src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java

@@ -278,6 +278,8 @@ public class CmRefundsProductController extends BaseController {
             if (null != cmReturnedPurchase.getOnlineShopOrderId()) {
                 //1未结算2部分结算3已结算
                 status = cmReturnedPurchaseDao.findShopOrderSettleStatus(cmReturnedPurchase.getOnlineShopOrderId());
+                cmReturnedPurchase.setRefundFee(newOrder.getNewShopOrders().get(0).getReceiptAmount());
+                cmReturnedPurchase.setRefundOnlineFee(cmReturnedPurchase.getFreeRefundFee());
             }
             Integer count = cmReturnedPurchaseDao.findRefundType(cmReturnedPurchase.getOrderID());
             if (count > 0) {
@@ -429,12 +431,14 @@ public class CmRefundsProductController extends BaseController {
 
             //线上退款
             if ("2".equals(cmReturnedPurchase.getReturnedWay())) {
-                double refundOnlineFee = refundFee - newOrder.getBalancePayFee();
-                cmReturnedPurchase.setRefundOnlineFee(refundOnlineFee);
-                cmReturnedPurchase.setRefundBalanceFee(newOrder.getBalancePayFee());
+                Double paid = cmReturnedPurchaseDao.findShopOrderPaid(shopOrderId);
+                cmReturnedPurchase.setRefundFee(paid);
+                cmReturnedPurchase.setRefundOnlineFee(paid);
                 if (2 == cmReturnedPurchase.getRefundType()) {
                     //查找线上订单已支付金额,申请退款金额不能大于此金额
-                    Double onlinePay = cmReturnedPurchaseDao.findOnlinePay(shopOrderId);
+                    Double onlinePay = null == cmReturnedPurchaseDao.findOnlinePay(shopOrderId) ? 0d : cmReturnedPurchaseDao.findOnlinePay(shopOrderId);
+                    cmReturnedPurchase.setRefundFee(cmReturnedPurchase.getFreeRefundFee());
+                    cmReturnedPurchase.setRefundOnlineFee(cmReturnedPurchase.getFreeRefundFee());
                     if (cmReturnedPurchase.getFreeRefundFee() > onlinePay) {
                         model.addAttribute("errorMsg", "退款金额不能大于已付金额");
                         cmReturnedPurchase.setOnlineShopOrderId(shopOrderId);
@@ -456,7 +460,7 @@ public class CmRefundsProductController extends BaseController {
             }
 
             //判断退款金额和打款金额是否一致
-            if (1 == cmReturnedPurchase.getRefundType()) {
+            if (1 == cmReturnedPurchase.getRefundType() && !"2".equals(cmReturnedPurchase.getReturnedWay())) {
                 double v = totalRefundFee - refundFee;
                 if (v > 0.1 || v < -0.1) {
                     model.addAttribute("errorMsg", "各退款方式的金额之和不等于退款总金额,请重新计算后再提交申请");
@@ -472,7 +476,9 @@ public class CmRefundsProductController extends BaseController {
                 }
             }
 
-            cmReturnedPurchase.setRefundFee(refundFee);
+            if (!"2".equals(cmReturnedPurchase.getReturnedWay())) {
+                cmReturnedPurchase.setRefundFee(refundFee);
+            }
             String saveInfo = cmReturnedPurchaseService.save(cmReturnedPurchase, freightNum, request, response, model);
             if (StringUtils.isNotEmpty(saveInfo)) {
                 model.addAttribute("errorMsg", saveInfo);
@@ -752,7 +758,7 @@ public class CmRefundsProductController extends BaseController {
                 List<CmPayShopRecord> payShopRecordList = newShopOrderService.getPayedRecords(shopOrderID.toString());
                 pr.addAll(payShopRecordList);
             }
-            model.addAttribute("pr",pr);
+            model.addAttribute("pr", pr);
             model.addAttribute("cmReturnedPurchaseList", dataList);
             model.addAttribute("order", newOrder);
             model.addAttribute("receipt", listRelation);
@@ -777,8 +783,8 @@ public class CmRefundsProductController extends BaseController {
                     refundFee += bean.getRefundFee();
                 }
             }
-            List<SettleRecord> settleRecord=newOrderService.findSettleRecord(cmReturnedPurchase.getOrderID());
-            model.addAttribute("settleRecord",settleRecord);
+            List<SettleRecord> settleRecord = newOrderService.findSettleRecord(cmReturnedPurchase.getOrderID());
+            model.addAttribute("settleRecord", settleRecord);
             model.addAttribute("order", newOrder);
             model.addAttribute("receipt", listRelation);
             model.addAttribute("refundFee", refundFee);
@@ -789,6 +795,7 @@ public class CmRefundsProductController extends BaseController {
         }
         return "modules/bulkpurchase/settlementRecord";
     }
+
     /**
      * @return
      * @Author ye.qin

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/CmReturnedPurchaseDao.java

@@ -49,4 +49,6 @@ public interface CmReturnedPurchaseDao extends CrudDao<CmReturnedPurchase> {
     String findShopOrderSettleStatus(Integer onlineShopOrderId);
 
     Integer findRefundType(Integer orderID);
+
+    Double findShopOrderPaid(Integer shopOrderID);
 }

+ 0 - 56
src/main/java/com/caimei/modules/order/entity/CmReturnedPurchase.java

@@ -506,60 +506,4 @@ public class CmReturnedPurchase extends DataEntity<CmReturnedPurchase> {
     public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
-
-    @Override
-    public String toString() {
-        return "CmReturnedPurchase{" +
-                "returnedNo='" + returnedNo + '\'' +
-                ", orderID=" + orderID +
-                ", organizeID=" + organizeID +
-                ", orderNo='" + orderNo + '\'' +
-                ", userName='" + userName + '\'' +
-                ", userID=" + userID +
-                ", status='" + status + '\'' +
-                ", returnedWay='" + returnedWay + '\'' +
-                ", payType='" + payType + '\'' +
-                ", operatingOrderStatus='" + operatingOrderStatus + '\'' +
-                ", returnedPurchaseFee=" + returnedPurchaseFee +
-                ", refundFee=" + refundFee +
-                ", freeRefundFee=" + freeRefundFee +
-                ", image1='" + image1 + '\'' +
-                ", image2='" + image2 + '\'' +
-                ", image3='" + image3 + '\'' +
-                ", image4='" + image4 + '\'' +
-                ", image5='" + image5 + '\'' +
-                ", reviewImage1='" + reviewImage1 + '\'' +
-                ", reviewImage2='" + reviewImage2 + '\'' +
-                ", reviewImage3='" + reviewImage3 + '\'' +
-                ", reviewImage4='" + reviewImage4 + '\'' +
-                ", reviewImage5='" + reviewImage5 + '\'' +
-                ", reviewRemarks='" + reviewRemarks + '\'' +
-                ", returnTime='" + returnTime + '\'' +
-                ", confirmReturnTime='" + confirmReturnTime + '\'' +
-                ", beginReturnTime=" + beginReturnTime +
-                ", endReturnTime=" + endReturnTime +
-                ", beginConfirmReturnTime=" + beginConfirmReturnTime +
-                ", endConfirmReturnTime=" + endConfirmReturnTime +
-                ", cmReturnedPurchaseProductList=" + cmReturnedPurchaseProductList +
-                ", shopOrderReturnedList=" + shopOrderReturnedList +
-                ", productList=" + productList +
-                ", bankAccountName='" + bankAccountName + '\'' +
-                ", bankAccountNo='" + bankAccountNo + '\'' +
-                ", openBank='" + openBank + '\'' +
-                ", bankAccountType='" + bankAccountType + '\'' +
-                ", refundBalanceFee=" + refundBalanceFee +
-                ", refundOnlineFee=" + refundOnlineFee +
-                ", refundOfflineFee=" + refundOfflineFee +
-                ", applicationUserID=" + applicationUserID +
-                ", reviewUserID=" + reviewUserID +
-                ", applicationUserName='" + applicationUserName + '\'' +
-                ", reviewUserName='" + reviewUserName + '\'' +
-                ", name='" + name + '\'' +
-                ", orderType=" + orderType +
-                ", refundType=" + refundType +
-                ", beginTime='" + beginTime + '\'' +
-                ", endTime='" + endTime + '\'' +
-                ", onlineShopOrderId=" + onlineShopOrderId +
-                '}';
-    }
 }

+ 1 - 5
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -177,10 +177,6 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
         if (num <= 0) {
             return "请填写退货/取消数量";
         }
-        if (2 == cmReturnedPurchase.getRefundType()) {
-            cmReturnedPurchase.setRefundFee(cmReturnedPurchase.getFreeRefundFee());
-            cmReturnedPurchase.setReturnedPurchaseFee(cmReturnedPurchase.getFreeRefundFee());
-        }
         String id = cmReturnedPurchase.getId();//存在Id则是重申或者再次申请
         if (StringUtils.isEmpty(id)) {
             //正常插入数据流程---新申请
@@ -234,7 +230,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                 }
             }
         }
-        if (1 == cmReturnedPurchase.getRefundType()) {
+        if (1 == cmReturnedPurchase.getRefundType() && !"2".equals(cmReturnedPurchase.getReturnedWay())) {
             if (newOrder.getPromotionFullReduction() != null) {
                 //减去促销满减金额
                 returnedPurchaseFee = returnedPurchaseFee - newOrder.getPromotionFullReduction();

+ 6 - 0
src/main/resources/mappings/modules/order/CmReturnedPurchaseMapper.xml

@@ -461,4 +461,10 @@
 		  AND delflag = 0
 		  AND refundtype=2
 	</select>
+	<select id="findShopOrderPaid" resultType="java.lang.Double">
+		SELECT SUM(associateAmount)
+		FROM cm_receipt_order_relation
+		WHERE shopOrderId=#{shopOrderID}
+		AND delflag=0
+	</select>
 </mapper>

+ 2 - 2
src/main/webapp/WEB-INF/views/modules/bulkpurchase/applyRefoundForm.jsp

@@ -120,8 +120,8 @@
                     }else if (${returnOnline}){
                         var obj = document.getElementsByClassName("check-item-review");
                         var checked0 = obj[0].checked;
-                        var checked1 = obj[1].checked;
-                        if(!checked1 && !checked0){
+                        // var checked1 = obj[1].checked;
+                        if(!checked0){
                             alertx("请选择退款方式");
                             return;
                         }