Quellcode durchsuchen

Revert "线上/下余额退款"

This reverts commit 3289f730cbb7f7d1160e315f783b4c5dda93a7f2.
zhijiezhao vor 3 Jahren
Ursprung
Commit
9a5a15016b

+ 2 - 8
src/main/java/com/caimei/modules/order/dao/CmReceiptOrderRelationDao.java

@@ -34,12 +34,6 @@ public interface CmReceiptOrderRelationDao extends CrudDao<CmReceiptOrderRelatio
     Date findOnlinePayment(Integer orderID);
 
     Double findOnlineMoneyPay(Integer orderId);
-
-    List<String> findMborderId(Integer userId);
-
-    Integer findUserId(Integer orderId);
-
-    Double findMoney(String mbOrderId);
-
-    String findPayTypeByOrderRequestNo(String mbOrderId);
+    //查未分帐的充为线上余额的订金/余额订单
+    List<String> findMborderId(Integer orderId);
 }

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

@@ -834,14 +834,15 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                     Double onlineMoneyPay = cmReceiptOrderRelationDao.findOnlineMoneyPay(orderId);
                     if (null != onlineMoneyPay && onlineMoneyPay >= 0.01) {
                         //根据userid查产生线上余额的唯一请求单号,发起退款请求
-                        Integer userId = cmReceiptOrderRelationDao.findUserId(orderId);
-                        //用户名下未分帐的线上余额订单mborderid
-                        List<String> mborderIds = cmReceiptOrderRelationDao.findMborderId(userId);
-                        //用户名下线上退款回线上余额的原mborderid
-                        if (mborderIds != null && mborderIds.size() > 0) {
-                            for (String s : mborderIds) {
+                        String userId = cmReceiptOrderRelationDao.findUserId(orderId);
+                        //用户名下未分帐的线上充值订金/余额订单唯一订单号
+                        ArrayList<String> orderRequestNos = cmReceiptOrderRelationDao.findMborderId(userId);
+                        //用户名下线上退款回线上余额的原唯一订单号
+                        ArrayList<String> orderRequestNo = cmReceiptOrderRelationDao.findOrderRequestNo(userId);
+                        if (orderRequestNo != null && orderRequestNo.size() > 0) {
+                            for (String s : orderRequestNo) {
                                 if (onlineMoneyPay > 0) {
-                                    //该单线上余
+                                    //该单退还金
                                     Double money = cmReceiptOrderRelationDao.findMoney(s);
                                     //待支付总线上余额>该笔退款金额,则退全额,否则退待支付
                                     Double refundMoney = MathUtil.compare(onlineMoneyPay, money) > 0 ? money : onlineMoneyPay;
@@ -849,12 +850,27 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                                     //todo 退款
 
 
+                                    onlineMoneyPay = MathUtil.sub(onlineMoneyPay, money).doubleValue();
+                                }
+                            }
+                        }
+                        if (orderRequestNos != null && orderRequestNos.size() > 0) {
+                            for (String requestNo : orderRequestNos) {
+                                if (onlineMoneyPay > 0) {
+                                    //该单退还金额
+                                    Double money = cmReceiptOrderRelationDao.findMoney(requestNo);
+                                    //待支付总线上余额>该笔退款金额,则退全额,否则退待支付
+                                    Double refundMoney = MathUtil.compare(onlineMoneyPay, money) > 0 ? money : onlineMoneyPay;
+                                    String payType=cmReceiptOrderRelationDao.findPayTypeByOrderRequestNo(requestNo);
+                                    //todo 退款
+
+
                                     onlineMoneyPay = MathUtil.sub(onlineMoneyPay, money).doubleValue();
                                 }
                             }
                         }
                         if(onlineMoneyPay<=0){
-                            CmUser user = cmUserDao.get(userId.toString());
+                            CmUser user = cmUserDao.get(userId);
                             //线上余额退完,user表减余额,cubr表统计余额减少
                             CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
                             cmUserBalanceRecord.setBalanceType("19");

+ 2 - 20
src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml

@@ -212,32 +212,14 @@
 	</select>
 	<select id="findMborderId" resultType="java.lang.String">
 		SELECT cror.mbOrderId FROM cm_receipt_order_relation cror
-		LEFT JOIN cm_user_balance_record cubr ON cror.orderID = cubr.orderId
+		LEFT JOIN cm_user_balance_record cubr ON cror.orderID=cubr.orderId
 		LEFT JOIN cm_order co ON cror.orderID = co.orderID
-		WHERE cubr.balanceType IN (13, 16, 17, 18, 19)
+		WHERE cubr.balanceType IN (16,17)
 		  AND cror.splitStatus = 0
 		  AND cubr.type = 1
 		  AND cror.delFlag = 0
 		  AND cubr.delFlag = 0
 		  AND co.delFlag = 0
 		  AND co.refundType != 2
-          AND cubr.userId = #{userId}
-        order by cror.associateAmount desc
 	</select>
-	<select id="findUserId" resultType="java.lang.Integer">
-		select userId
-		from cm_order
-		where orderID = #{orderId}
-	</select>
-    <select id="findMoney" resultType="java.lang.Double">
-        select associateAmount
-        from cm_receipt_order_relation
-        where mbOrderId = #{mbOrderId}
-    </select>
-    <select id="findPayTypeByOrderRequestNo" resultType="java.lang.String">
-        SELECT payType
-        FROM cm_discern_receipt cdr
-        LEFT JOIN cm_receipt_order_relation cror ON cror.receiptID = cdr.id
-        WHERE mbOrderId = #{mbOrderId}
-    </select>
 </mapper>