|
@@ -606,11 +606,12 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
|
|
|
|
//判断是否有线上退款
|
|
//判断是否有线上退款
|
|
if (returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundOnlineFee() > 0) {
|
|
if (returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundOnlineFee() > 0) {
|
|
- List<Integer> shopOrderIds = cmReturnedPurchaseDao.findReturnedShopOrder(returnedPurchase.getOrderID());
|
|
|
|
|
|
+ List<Integer> shopOrderIds = cmReturnedPurchaseDao.getReturnShopOrder(returnedPurchase.getId());
|
|
if (null == shopOrderIds || 0 == shopOrderIds.size()) {
|
|
if (null == shopOrderIds || 0 == shopOrderIds.size()) {
|
|
throw new Exception("退款子订单信息错误!");
|
|
throw new Exception("退款子订单信息错误!");
|
|
}
|
|
}
|
|
- theOnlineRefund(shopOrderIds);
|
|
|
|
|
|
+ Double refundOnlineFee = returnedPurchase.getRefundOnlineFee();
|
|
|
|
+ theOnlineRefund(shopOrderIds,refundOnlineFee);
|
|
}
|
|
}
|
|
|
|
|
|
//二手订单交易全退,标记未售
|
|
//二手订单交易全退,标记未售
|
|
@@ -752,7 +753,7 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
*
|
|
*
|
|
* @param shopOrderIds
|
|
* @param shopOrderIds
|
|
*/
|
|
*/
|
|
- public void theOnlineRefund(List<Integer> shopOrderIds) {
|
|
|
|
|
|
+ public void theOnlineRefund(List<Integer> shopOrderIds,Double refundOnlineFee) {
|
|
List<CmReceiptOrderRelation> relationList = cmReceiptOrderRelationDao.findByShopOrderIds(shopOrderIds);
|
|
List<CmReceiptOrderRelation> relationList = cmReceiptOrderRelationDao.findByShopOrderIds(shopOrderIds);
|
|
// AtomicDouble allRefund = new AtomicDouble(0);
|
|
// AtomicDouble allRefund = new AtomicDouble(0);
|
|
// relationList.forEach(r -> allRefund.getAndSet(Double.parseDouble(r.getAssociateAmount())));
|
|
// relationList.forEach(r -> allRefund.getAndSet(Double.parseDouble(r.getAssociateAmount())));
|
|
@@ -760,13 +761,32 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
for (CmReceiptOrderRelation orderRelation : relationList) {
|
|
for (CmReceiptOrderRelation orderRelation : relationList) {
|
|
//cdr表payway为1纯线上收款
|
|
//cdr表payway为1纯线上收款
|
|
if ("1".equals(orderRelation.getPayWay())) {
|
|
if ("1".equals(orderRelation.getPayWay())) {
|
|
|
|
+ String value="";
|
|
|
|
+ refundOnlineFee=MathUtil.sub(refundOnlineFee,Double.parseDouble(orderRelation.getAssociateAmount())).doubleValue();
|
|
|
|
+ if(refundOnlineFee>0){
|
|
|
|
+ //要退的钱大于本次交易金额
|
|
|
|
+ value=orderRelation.getAssociateAmount();
|
|
|
|
+ }
|
|
|
|
+ if(refundOnlineFee<0){
|
|
|
|
+ value=refundOnlineFee.toString();
|
|
|
|
+ }
|
|
//不同产品区分
|
|
//不同产品区分
|
|
if ("12".equals(orderRelation.getPayType()) || "17".equals(orderRelation.getPayType())) {
|
|
if ("12".equals(orderRelation.getPayType()) || "17".equals(orderRelation.getPayType())) {
|
|
|
|
+ //已分帐应该先转回佣金
|
|
|
|
+
|
|
|
|
+ //手续费转给供应商
|
|
|
|
+
|
|
//网银
|
|
//网银
|
|
- unionRefund(orderRelation.getOrderRequestNo(), orderRelation.getAssociateAmount(), orderRelation.getShopOrderId());
|
|
|
|
|
|
+ unionRefund(orderRelation.getOrderRequestNo(), value, orderRelation.getShopOrderId());
|
|
} else {
|
|
} else {
|
|
|
|
+ // 已分帐应该先转回佣金
|
|
|
|
+
|
|
//扫码
|
|
//扫码
|
|
- onlinePay(orderRelation.getOrderRequestNo(), orderRelation.getAssociateAmount(), orderRelation.getShopOrderId());
|
|
|
|
|
|
+ onlinePay(orderRelation.getOrderRequestNo(),value, orderRelation.getShopOrderId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(0==refundOnlineFee){
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -806,6 +826,11 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
|
|
String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
|
|
if (checkSign.equals(responseSign)) {
|
|
if (checkSign.equals(responseSign)) {
|
|
if ("0001".equals(orderResponseVo.getRt2_retCode())) {
|
|
if ("0001".equals(orderResponseVo.getRt2_retCode())) {
|
|
|
|
+ CmRefundRecord cmRefundRecord = new CmRefundRecord();
|
|
|
|
+ cmRefundRecord.setRefundAmount(Double.parseDouble(money));
|
|
|
|
+ cmRefundRecord.setOrderRequestNo(orderRequestNo);
|
|
|
|
+ cmRefundRecord.setShopOrderId(shopOrderId);
|
|
|
|
+ cmReturnedPurchaseDao.insertCmRefundRecord(cmRefundRecord);
|
|
logger.info("第三方退款成功>>>>>>>shopOrderId>>>" + shopOrderId);
|
|
logger.info("第三方退款成功>>>>>>>shopOrderId>>>" + shopOrderId);
|
|
} else {
|
|
} else {
|
|
logger.error("退款失败========================" + orderResponseVo.getRt5_orderId() + "-" + orderResponseVo.getRt3_retMsg());
|
|
logger.error("退款失败========================" + orderResponseVo.getRt5_orderId() + "-" + orderResponseVo.getRt3_retMsg());
|
|
@@ -858,6 +883,11 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
logger.error("验签失败========================" + on.getRt3_retMsg());
|
|
logger.error("验签失败========================" + on.getRt3_retMsg());
|
|
throw new Exception("第三方退款失败!");
|
|
throw new Exception("第三方退款失败!");
|
|
} else {
|
|
} else {
|
|
|
|
+ CmRefundRecord cmRefundRecord = new CmRefundRecord();
|
|
|
|
+ cmRefundRecord.setRefundAmount(Double.parseDouble(money));
|
|
|
|
+ cmRefundRecord.setOrderRequestNo(orderRequestNo);
|
|
|
|
+ cmRefundRecord.setShopOrderId(shopOrderId);
|
|
|
|
+ cmReturnedPurchaseDao.insertCmRefundRecord(cmRefundRecord);
|
|
logger.info("第三方退款成功");
|
|
logger.info("第三方退款成功");
|
|
}
|
|
}
|
|
}
|
|
}
|