Procházet zdrojové kódy

Revert "线上/下余额退款"

This reverts commit 09e194b223cfa5796bb0e5ccf0f8431d5a68fd85.
zhijiezhao před 3 roky
rodič
revize
b58f63e772

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

@@ -1,6 +1,5 @@
 package com.caimei.modules.order.dao;
 
-import com.caimei.modules.order.entity.CmOnlineRefundVo;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.caimei.modules.order.entity.CmReceiptOrderRelation;
@@ -42,5 +41,5 @@ public interface CmReceiptOrderRelationDao extends CrudDao<CmReceiptOrderRelatio
 
     Double findMoney(String mbOrderId);
 
-    void insertOnlineRefund(CmOnlineRefundVo cmOnlineRefundVo);
+    String findPayTypeByOrderRequestNo(String mbOrderId);
 }

+ 0 - 61
src/main/java/com/caimei/modules/order/entity/CmOnlineRefundVo.java

@@ -1,61 +0,0 @@
-package com.caimei.modules.order.entity;
-
-import com.thinkgem.jeesite.common.persistence.DataEntity;
-
-public class CmOnlineRefundVo extends DataEntity<CmOnlineRefundVo> {
-    private static final long serialVersionUID = 1L;
-    private Integer userId;
-    private String mborderId;
-    private String orderRequestNo;
-    private String orderId;
-    private String amount;
-    private String refundType;//退款方式 1线上支付原路退回 ,2线上余额退现金
-
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    public String getMborderId() {
-        return mborderId;
-    }
-
-    public void setMborderId(String mborderId) {
-        this.mborderId = mborderId;
-    }
-
-    public String getOrderRequestNo() {
-        return orderRequestNo;
-    }
-
-    public void setOrderRequestNo(String orderRequestNo) {
-        this.orderRequestNo = orderRequestNo;
-    }
-
-    public String getOrderId() {
-        return orderId;
-    }
-
-    public void setOrderId(String orderId) {
-        this.orderId = orderId;
-    }
-
-    public String getAmount() {
-        return amount;
-    }
-
-    public void setAmount(String amount) {
-        this.amount = amount;
-    }
-
-    public String getRefundType() {
-        return refundType;
-    }
-
-    public void setRefundType(String refundType) {
-        this.refundType = refundType;
-    }
-}

+ 6 - 52
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -797,7 +797,6 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
         }
         List<CmReceiptOrderRelation> relationList = cmReceiptOrderRelationDao.findByOrderID(orderId.toString());
         if (null != relationList && relationList.size() > 0) {
-            Integer userId = cmReceiptOrderRelationDao.findUserId(orderId);
             for (CmReceiptOrderRelation orderRelation : relationList) {
                 JSONObject json = new JSONObject();
                 json.put("merAccount", merAccount);
@@ -827,16 +826,6 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                         String msg = result.getString("msg");
                         logger.info("第三方退款失败>>>>>>>msg:" + msg);
                         throw new Exception("第三方退款失败!");
-                    }else{
-                        //存cm_online_refund
-                        CmOnlineRefundVo cmOnlineRefundVo = new CmOnlineRefundVo();
-                        cmOnlineRefundVo.setUserId(userId);
-                        cmOnlineRefundVo.setOrderId(orderId.toString());
-                        cmOnlineRefundVo.setAmount(orderRelation.getAssociateAmount().toString());
-                        cmOnlineRefundVo.setRefundType("1");
-                        cmOnlineRefundVo.setMborderId(orderRelation.getMbOrderId());
-                        cmOnlineRefundVo.setOrderRequestNo(merchantRefundNo);
-                        cmReceiptOrderRelationDao.insertOnlineRefund(cmOnlineRefundVo);
                     }
                 }
                 //cdr表payway为3余额支付,查是否有线上余额支付
@@ -844,8 +833,8 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                     //查当前单线上余额支付总金额
                     Double onlineMoneyPay = cmReceiptOrderRelationDao.findOnlineMoneyPay(orderId);
                     if (null != onlineMoneyPay && onlineMoneyPay >= 0.01) {
-                        logger.info("线上余额退现金==============orderId==>"+orderId);
                         //根据userid查产生线上余额的唯一请求单号,发起退款请求
+                        Integer userId = cmReceiptOrderRelationDao.findUserId(orderId);
                         //用户名下未分帐的线上余额订单mborderid
                         List<String> mborderIds = cmReceiptOrderRelationDao.findMborderId(userId);
                         //用户名下线上退款回线上余额的原mborderid
@@ -854,49 +843,14 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                                 if (onlineMoneyPay > 0) {
                                     //该单线上余额
                                     Double money = cmReceiptOrderRelationDao.findMoney(s);
-                                    //实际退款=待支付总线上余额>该笔退款金额,则退全额,否则退待支付
+                                    //待支付总线上余额>该笔退款金额,则退全额,否则退待支付
                                     Double refundMoney = MathUtil.compare(onlineMoneyPay, money) > 0 ? money : onlineMoneyPay;
-                                    //退款
-                                    // 当前时间戳
-                                    long time = System.currentTimeMillis() / 1000;
-                                    json.put("time", time);
-                                    //商户退款流水号,由商户自行生成,必须唯一  orderid+余额退现+orid
-                                    String merchantRefundNo = orderId + "YETX" + orderRelation.getId();
-                                    json.put("merchantRefundNo", merchantRefundNo);
-                                    //退款金额,单位分,必须大于0
-                                    int refundAmt = (int) (refundMoney * 100);
-                                    json.put("refundAmt", refundAmt);
-                                    //退款原因
-                                    String refundCause = "用户主动退款";
-                                    json.put("refundCause", refundCause);
-                                    //平台交易订单号
-                                    json.put("mbOrderId", s);
-                                    String sign = PayUtils.buildSign(json, merKey);
-                                    json.put("sign", sign);
-                                    String data = PayUtils.buildDataPrivate(json, merKey);
-                                    JSONObject result = PayUtils.httpPost("https://platform.mhxxkj.com/paygateway/mbrefund/orderRefund/v1", merAccount, data);
-                                    String code = result.getString("code");
-                                    if (!"000000".equals(code)) {
-                                        String msg = result.getString("msg");
-                                        logger.info("余额退现失败>>>>>>>msg:" + msg);
-                                        throw new Exception("第三方退款失败!");
-                                    }else{
-                                        //存cm_online_refund
-                                        CmOnlineRefundVo cmOnlineRefundVo = new CmOnlineRefundVo();
-                                        cmOnlineRefundVo.setUserId(userId);
-                                        cmOnlineRefundVo.setOrderId(orderId.toString());
-                                        cmOnlineRefundVo.setAmount(refundMoney.toString());
-                                        cmOnlineRefundVo.setRefundType("2");
-                                        cmOnlineRefundVo.setMborderId(s);
-                                        cmOnlineRefundVo.setOrderRequestNo(merchantRefundNo);
-                                        cmReceiptOrderRelationDao.insertOnlineRefund(cmOnlineRefundVo);
-                                    }
-                                    //应付减已退
+                                    String payType=cmReceiptOrderRelationDao.findPayTypeByOrderRequestNo(s);
+                                    //todo 退款
+
+
                                     onlineMoneyPay = MathUtil.sub(onlineMoneyPay, money).doubleValue();
                                 }
-                                if(onlineMoneyPay<=0){
-                                    break;
-                                }
                             }
                         }
                         if(onlineMoneyPay<=0){

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

@@ -71,10 +71,7 @@
 			#{delFlag}
 		)
 	</insert>
-	<insert id="insertOnlineRefund">
-		insert into cm_online_refund(userId,mborderId,orderRequestNo,orderId,amount,refundType,refundTime,delFlag)
-		values (#{userId},#{mborderId},#{orderRequestNo},#{orderId},#{amount},#{refundType},now(),0)
-	</insert>
+
 	<update id="update">
 		UPDATE cm_receipt_order_relation SET
 			relationType = #{relationType},
@@ -217,7 +214,7 @@
 		SELECT cror.mbOrderId FROM cm_receipt_order_relation cror
 		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)
+		WHERE cubr.balanceType IN (13, 16, 17, 18, 19)
 		  AND cror.splitStatus = 0
 		  AND cubr.type = 1
 		  AND cror.delFlag = 0
@@ -233,11 +230,14 @@
 		where orderID = #{orderId}
 	</select>
     <select id="findMoney" resultType="java.lang.Double">
-		SELECT cror.associateAmount-SUM(IFNULL(cor.amount,0))
-		FROM cm_receipt_order_relation cror
-		LEFT JOIN cm_online_refund cor ON cror.mbOrderId=cor.mbOrderId
-		WHERE cror.mbOrderId = #{mbOrderId}
-		  AND cor.delflag=0
-		  AND cror.delflag=0
+        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>