|
@@ -543,83 +543,43 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
}
|
|
}
|
|
newOrderService.update(newOrder);
|
|
newOrderService.update(newOrder);
|
|
//判断是否选择退回余额
|
|
//判断是否选择退回余额
|
|
- //returnway=1,退线下余额>0或退线上余额>0 是定金订单???
|
|
|
|
- Double refundBalance = null == returnedPurchase.getRefundBalanceFee() ? 0 : returnedPurchase.getRefundBalanceFee();
|
|
|
|
- Double refundOnlineBalance = null == returnedPurchase.getRefundOnlineBalanceFee() ? 0 : returnedPurchase.getRefundOnlineBalanceFee();
|
|
|
|
- if ((returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundBalanceFee() > 0d) || null!=newOrder.getRechargeGoods() || returnedPurchase.getRefundOnlineBalanceFee() > 0) {
|
|
|
|
|
|
+ if ((returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundBalanceFee() > 0d) || newOrder.getRechargeGoods() != null) {
|
|
Double userMoney = user.getUserMoney();
|
|
Double userMoney = user.getUserMoney();
|
|
Double ableUserMoney = user.getAbleUserMoney();
|
|
Double ableUserMoney = user.getAbleUserMoney();
|
|
- //退账户线下余额
|
|
|
|
Double refundBalanceFee = returnedPurchase.getRefundBalanceFee();
|
|
Double refundBalanceFee = returnedPurchase.getRefundBalanceFee();
|
|
- //退账户线上余额
|
|
|
|
- Double refundOnlineBalanceFee = returnedPurchase.getRefundOnlineBalanceFee();
|
|
|
|
Double refundFee = returnedPurchase.getRefundFee();
|
|
Double refundFee = returnedPurchase.getRefundFee();
|
|
- Double onlineMoney = user.getOnlineMoney();
|
|
|
|
if (userMoney == null) userMoney = 0d;
|
|
if (userMoney == null) userMoney = 0d;
|
|
if (ableUserMoney == null) ableUserMoney = 0d;
|
|
if (ableUserMoney == null) ableUserMoney = 0d;
|
|
if (refundBalanceFee == null) refundBalanceFee = 0d;
|
|
if (refundBalanceFee == null) refundBalanceFee = 0d;
|
|
- onlineMoney = onlineMoney == null ? 0 : onlineMoney;
|
|
|
|
- refundOnlineBalanceFee = refundOnlineBalanceFee == null ? 0 : refundOnlineBalanceFee;
|
|
|
|
user.setUserID(newOrder.getUserID());
|
|
user.setUserID(newOrder.getUserID());
|
|
|
|
|
|
|
|
+ //添加余额收支记录
|
|
CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
- cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
|
|
|
|
- cmUserBalanceRecord.setAddDate(new Date());
|
|
|
|
cmUserBalanceRecord.setUserId(newOrder.getUserID());
|
|
cmUserBalanceRecord.setUserId(newOrder.getUserID());
|
|
- cmUserBalanceRecord.setDelFlag("0");
|
|
|
|
|
|
+ cmUserBalanceRecord.setType("1");
|
|
|
|
+ cmUserBalanceRecord.setBalanceType("3");
|
|
|
|
+ cmUserBalanceRecord.setAddDate(new Date());
|
|
|
|
+ //设置余额支付
|
|
|
|
+ cmUserBalanceRecord.setAmount(String.valueOf(returnedPurchase.getRefundBalanceFee()));
|
|
|
|
+ cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
|
|
cmUserBalanceRecord.setReturnedId(Integer.parseInt(returnedPurchase.getId()));
|
|
cmUserBalanceRecord.setReturnedId(Integer.parseInt(returnedPurchase.getId()));
|
|
- //充值订金或者充值余额>0
|
|
|
|
- //线上退回/线下退回扣减余额
|
|
|
|
|
|
+ cmUserBalanceRecord.setDelFlag("0");
|
|
|
|
+
|
|
if (newOrder.getRechargeGoods() != null) {
|
|
if (newOrder.getRechargeGoods() != null) {
|
|
- String payType = cmReturnedPurchaseDao.findPayType(newOrder.getOrderID());
|
|
|
|
- //1线上2线下
|
|
|
|
- if ("1".equals(payType)) {
|
|
|
|
- user.setUserMoney(onlineMoney - refundFee);
|
|
|
|
-// user.setAbleUserMoney(ableUserMoney - refundFee);
|
|
|
|
- cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
|
|
|
|
- cmUserBalanceRecord.setType("2");
|
|
|
|
- if (newOrder.getRechargeGoods() == 1) {
|
|
|
|
- cmUserBalanceRecord.setBalanceType("18");
|
|
|
|
- } else if (newOrder.getRechargeGoods() == 2) {
|
|
|
|
- cmUserBalanceRecord.setBalanceType("19");
|
|
|
|
- }
|
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
|
- cmUserDao.updateMoney(user);
|
|
|
|
- } else {
|
|
|
|
- user.setUserMoney(userMoney - refundFee);
|
|
|
|
-// user.setAbleUserMoney(ableUserMoney - refundFee);
|
|
|
|
- cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
|
|
|
|
- cmUserBalanceRecord.setType("2");
|
|
|
|
- if (newOrder.getRechargeGoods() == 1) {
|
|
|
|
- cmUserBalanceRecord.setBalanceType("8");
|
|
|
|
- } else if (newOrder.getRechargeGoods() == 2) {
|
|
|
|
- cmUserBalanceRecord.setBalanceType("9");
|
|
|
|
- }
|
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
|
- cmUserDao.updateMoney(user);
|
|
|
|
|
|
+ user.setUserMoney(userMoney - refundFee);
|
|
|
|
+ cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
|
|
|
|
+ cmUserBalanceRecord.setType("2");
|
|
|
|
+ if (newOrder.getRechargeGoods() == 1) {
|
|
|
|
+ cmUserBalanceRecord.setBalanceType("8");
|
|
|
|
+ } else if (newOrder.getRechargeGoods() == 2) {
|
|
|
|
+ cmUserBalanceRecord.setBalanceType("9");
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- cmUserBalanceRecord.setType("1");
|
|
|
|
user.setUserMoney(userMoney + refundBalanceFee);
|
|
user.setUserMoney(userMoney + refundBalanceFee);
|
|
- user.setOnlineMoney(onlineMoney + refundOnlineBalanceFee);
|
|
|
|
- user.setAbleUserMoney(ableUserMoney + refundBalanceFee + refundOnlineBalanceFee);
|
|
|
|
- if (refundBalanceFee > 0) {
|
|
|
|
- //添加线下余额收支记录
|
|
|
|
- cmUserBalanceRecord.setBalanceType("3");
|
|
|
|
- //设置余额支付
|
|
|
|
- cmUserBalanceRecord.setAmount(refundBalanceFee.toString());
|
|
|
|
-
|
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
|
- }
|
|
|
|
- if (refundOnlineBalanceFee > 0) {
|
|
|
|
- //添加线上余额收支记录
|
|
|
|
- cmUserBalanceRecord.setBalanceType("13");
|
|
|
|
- //设置余额支付
|
|
|
|
- cmUserBalanceRecord.setAmount(refundOnlineBalanceFee.toString());
|
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
|
- }
|
|
|
|
- cmUserDao.updateMoney(user);
|
|
|
|
|
|
+ user.setAbleUserMoney(ableUserMoney + refundBalanceFee);
|
|
}
|
|
}
|
|
|
|
+ cmUserDao.updateMoney(user);
|
|
|
|
+ cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
}
|
|
}
|
|
//修改子订单信息
|
|
//修改子订单信息
|
|
updateShopOrderAmount(newOrder.getOrderID());
|
|
updateShopOrderAmount(newOrder.getOrderID());
|
|
@@ -828,73 +788,6 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
|
|
throw new Exception("第三方退款失败!");
|
|
throw new Exception("第三方退款失败!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //cdr表payway为3余额支付,查是否有线上余额支付
|
|
|
|
- if ("3".equals(orderRelation.getPayWay())) {
|
|
|
|
- //查当前单线上余额支付总金额
|
|
|
|
- Double onlineMoneyPay = cmReceiptOrderRelationDao.findOnlineMoneyPay(orderId);
|
|
|
|
- if (null != onlineMoneyPay && onlineMoneyPay >= 0.01) {
|
|
|
|
- //根据userid查产生线上余额的唯一请求单号,发起退款请求
|
|
|
|
- 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;
|
|
|
|
- String payType=cmReceiptOrderRelationDao.findPayTypeByOrderRequestNo(s);
|
|
|
|
- //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);
|
|
|
|
- //线上余额退完,user表减余额,cubr表统计余额减少
|
|
|
|
- CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
|
|
|
|
- cmUserBalanceRecord.setBalanceType("19");
|
|
|
|
- cmUserBalanceRecord.setType("2");
|
|
|
|
- cmUserBalanceRecord.setUserId(user.getUserID());
|
|
|
|
- cmUserBalanceRecord.setAddDate(new Date());
|
|
|
|
- cmUserBalanceRecord.setAmount(user.getOnlineMoney().toString());
|
|
|
|
- cmUserBalanceRecord.setOrderId(orderId);
|
|
|
|
- cmUserBalanceRecord.setDelFlag("0");
|
|
|
|
- cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
|
|
|
|
- //user表减余额
|
|
|
|
- double v = MathUtil.sub(user.getAbleUserMoney(), user.getOnlineMoney()).doubleValue();
|
|
|
|
- user.setOnlineMoney(0d);
|
|
|
|
- user.setAbleUserMoney(v);
|
|
|
|
- cmUserDao.updateMoney(user);
|
|
|
|
- }
|
|
|
|
- if(onlineMoneyPay>0){
|
|
|
|
- logger.info("订单不足退线上余额,请检查订单");
|
|
|
|
- throw new Exception("订单不足退线上余额,请检查订单!");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- logger.info("线上余额过小或无线上余额支付退款=========orderId==> " + orderId);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
logger.info("第三方退款成功>>>>>>>orderId>>>" + orderId);
|
|
logger.info("第三方退款成功>>>>>>>orderId>>>" + orderId);
|
|
}
|
|
}
|