|
@@ -213,14 +213,8 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
log.info("回调签名" + sign);
|
|
|
String oriMessage = MyBeanUtils.getSigned(res, null);
|
|
|
String oriMessage1 = oriMessage + SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + SPLIT + Constant.XUNI;
|
|
|
- String oriMessage4 = oriMessage + SPLIT + Constant.WANGYIN;
|
|
|
String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
- String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign1);
|
|
|
if (!b) {
|
|
|
return "验签名失败!";
|
|
|
}
|
|
@@ -302,7 +296,7 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
// 更新订单支付状态
|
|
|
payOrderMapper.updateOrderStatus(order);
|
|
|
// 支付记录
|
|
|
- // todo子订单返佣????
|
|
|
+ //todo 子订单返佣????
|
|
|
List<DiscernReceiptVo> shopOrderDiscernReceiptList = orderCommonMapper.getShopOrderDiscernReceipt(shopOrderId);
|
|
|
double shopOrderReceiptAmount = 0d;
|
|
|
if (null != shopOrderDiscernReceiptList && shopOrderDiscernReceiptList.size() > 0) {
|
|
@@ -317,13 +311,7 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
} else {
|
|
|
shopOrder.setReceiptStatus(2);
|
|
|
}
|
|
|
-
|
|
|
- //todo 修改子订单支付链接状态
|
|
|
- OrderPayLinkVo orderPayLink = payOrderMapper.getOrderPayLink(orderId, amount);
|
|
|
- if (null != orderPayLink && ("12".equals(payType) || "17".equals(payType))) {
|
|
|
- orderPayLink.setPayStatus(1);
|
|
|
- payOrderMapper.updateOrderPayLinkStatus(orderPayLink);
|
|
|
- }
|
|
|
+ payOrderMapper.updateShopOrder(shopOrder);
|
|
|
// 保存收款记录
|
|
|
DiscernReceiptPo discernReceipt = new DiscernReceiptPo();
|
|
|
discernReceipt.setPayWay(1);
|
|
@@ -357,52 +345,52 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
baseMapper.insertOrderReceiptRelation(relation);
|
|
|
log.info("【支付异步回调】>>>>>>>>>>>收款项和订单关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",orderId:" + orderId);
|
|
|
|
|
|
+ //当前版本无法线上走充值/订金订单
|
|
|
// 商品数据
|
|
|
- List<OrderProductVo> orderProductList = orderCommonMapper.getOrderProductByOrderId(orderId);
|
|
|
- // todo 当前版本无法线上走订金订单
|
|
|
+// List<OrderProductVo> orderProductList = orderCommonMapper.getOrderProductByOrderId(orderId);
|
|
|
// 判断是否是充值商品
|
|
|
- int rechargeFlag = 0;
|
|
|
- // 缴纳订金订单
|
|
|
- int[] productId1 = {6060, 6061, 6062, 6063, 6064};
|
|
|
- // 充值余额订单
|
|
|
- int[] productId2 = {6065, 6066, 6067, 6068, 6069};
|
|
|
- for (OrderProductVo product : orderProductList) {
|
|
|
- if (ArrayUtils.contains(productId1, product.getProductId())) {
|
|
|
- rechargeFlag = 1;
|
|
|
- break;
|
|
|
- }
|
|
|
- if (ArrayUtils.contains(productId2, product.getProductId())) {
|
|
|
- rechargeFlag = 2;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (rechargeFlag > 0) {
|
|
|
- // 账户余额
|
|
|
- double oldUserMoney = baseMapper.getUserMoney(order.getUserId());
|
|
|
- double userMoney = MathUtil.add(oldUserMoney, amount).doubleValue();
|
|
|
- // 可用余额
|
|
|
- Double oldAvailableMoney = baseMapper.getAbleUserMoney(order.getUserId());
|
|
|
- double availableMoney = MathUtil.add(oldAvailableMoney, amount).doubleValue();
|
|
|
- payOrderMapper.updateMoneyByUserId(userMoney, availableMoney, order.getUserId());
|
|
|
- log.info("【支付异步回调】>>>>>>>>>>>更新用户余额(update[user])userId:" + order.getUserId() + ",orderId:" + orderId);
|
|
|
- //保存余额到余额收支记录
|
|
|
- BalanceRecordPo balanceRecord = new BalanceRecordPo();
|
|
|
- balanceRecord.setUserId(order.getUserId());
|
|
|
- balanceRecord.setType(1);
|
|
|
- if (rechargeFlag == 1) {
|
|
|
- balanceRecord.setBalanceType(6);
|
|
|
- } else {
|
|
|
- balanceRecord.setBalanceType(7);
|
|
|
- }
|
|
|
- balanceRecord.setAddDate(new Date());
|
|
|
- balanceRecord.setAmount(amount);
|
|
|
- balanceRecord.setOrderId(orderId);
|
|
|
- balanceRecord.setRemark("订单商品充值余额");
|
|
|
- balanceRecord.setDelFlag(0);
|
|
|
- // 保存 余额收支记录
|
|
|
- baseMapper.insertBalanceRecord(balanceRecord);
|
|
|
- log.info("【支付异步回调】>>>>>>>>>>>>>>>>>>>>>>>>>>订单商品充值余额(insert[cm_user_balance_record])orderId:" + orderId);
|
|
|
- }
|
|
|
+// int rechargeFlag = 0;
|
|
|
+// // 缴纳订金订单
|
|
|
+// int[] productId1 = {6060, 6061, 6062, 6063, 6064};
|
|
|
+// // 充值余额订单
|
|
|
+// int[] productId2 = {6065, 6066, 6067, 6068, 6069};
|
|
|
+// for (OrderProductVo product : orderProductList) {
|
|
|
+// if (ArrayUtils.contains(productId1, product.getProductId())) {
|
|
|
+// rechargeFlag = 1;
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// if (ArrayUtils.contains(productId2, product.getProductId())) {
|
|
|
+// rechargeFlag = 2;
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (rechargeFlag > 0) {
|
|
|
+// // 账户余额
|
|
|
+// double oldUserMoney = baseMapper.getUserMoney(order.getUserId());
|
|
|
+// double userMoney = MathUtil.add(oldUserMoney, amount).doubleValue();
|
|
|
+// // 可用余额
|
|
|
+// Double oldAvailableMoney = baseMapper.getAbleUserMoney(order.getUserId());
|
|
|
+// double availableMoney = MathUtil.add(oldAvailableMoney, amount).doubleValue();
|
|
|
+// payOrderMapper.updateMoneyByUserId(userMoney, availableMoney, order.getUserId());
|
|
|
+// log.info("【支付异步回调】>>>>>>>>>>>更新用户余额(update[user])userId:" + order.getUserId() + ",orderId:" + orderId);
|
|
|
+// //保存余额到余额收支记录
|
|
|
+// BalanceRecordPo balanceRecord = new BalanceRecordPo();
|
|
|
+// balanceRecord.setUserId(order.getUserId());
|
|
|
+// balanceRecord.setType(1);
|
|
|
+// if (rechargeFlag == 1) {
|
|
|
+// balanceRecord.setBalanceType(6);
|
|
|
+// } else {
|
|
|
+// balanceRecord.setBalanceType(7);
|
|
|
+// }
|
|
|
+// balanceRecord.setAddDate(new Date());
|
|
|
+// balanceRecord.setAmount(amount);
|
|
|
+// balanceRecord.setOrderId(orderId);
|
|
|
+// balanceRecord.setRemark("订单商品充值余额");
|
|
|
+// balanceRecord.setDelFlag(0);
|
|
|
+// // 保存 余额收支记录
|
|
|
+// baseMapper.insertBalanceRecord(balanceRecord);
|
|
|
+// log.info("【支付异步回调】>>>>>>>>>>>>>>>>>>>>>>>>>>订单商品充值余额(insert[cm_user_balance_record])orderId:" + orderId);
|
|
|
+// }
|
|
|
|
|
|
// 线上支付与自主下单送豆(已全部收款),最后一笔线上支付成功后,赠送200采美豆
|
|
|
if (3 == order.getReceiptStatus() && 0 == order.getSecondHandOrderFlag()) {
|
|
@@ -946,11 +934,17 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
Integer orderId = Integer.valueOf(split[0]);
|
|
|
//1位置支付类型
|
|
|
String payType = split[1];
|
|
|
+ //2位置子订单id
|
|
|
+ Integer shopOrderId = Integer.valueOf(split[2]);
|
|
|
// 订单信息
|
|
|
OrderVo order = orderCommonMapper.getOrderByOrderId(orderId);
|
|
|
+ ShopOrderVo shopOrder = orderCommonMapper.getShopOrderByOrderId(shopOrderId);
|
|
|
if (null == order) {
|
|
|
return "订单不存在";
|
|
|
}
|
|
|
+ if (null == shopOrder) {
|
|
|
+ return "子订单不存在";
|
|
|
+ }
|
|
|
// 支付记录
|
|
|
List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(order.getOrderId(), order.getShopOrderIds());
|
|
|
double receiptAmount = 0d;
|
|
@@ -1007,6 +1001,23 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
orderPayLink.setPayStatus(1);
|
|
|
payOrderMapper.updateOrderPayLinkStatus(orderPayLink);
|
|
|
}
|
|
|
+ // 支付记录
|
|
|
+ //todo 子订单返佣????
|
|
|
+ List<DiscernReceiptVo> shopOrderDiscernReceiptList = orderCommonMapper.getShopOrderDiscernReceipt(shopOrderId);
|
|
|
+ double shopOrderReceiptAmount = 0d;
|
|
|
+ if (null != shopOrderDiscernReceiptList && shopOrderDiscernReceiptList.size() > 0) {
|
|
|
+ for (DiscernReceiptVo discernReceipt : shopOrderDiscernReceiptList) {
|
|
|
+ shopOrderReceiptAmount = MathUtil.add(shopOrderReceiptAmount, discernReceipt.getAssociateAmount()).doubleValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ shopOrder.setReceiptAmount(MathUtil.add(shopOrderReceiptAmount, amount).doubleValue());
|
|
|
+ //均摊后needpay:已支付
|
|
|
+ if (MathUtil.compare(shopOrder.getRealPay(), shopOrder.getReceiptAmount()) == 0) {
|
|
|
+ shopOrder.setReceiptStatus(3);
|
|
|
+ } else {
|
|
|
+ shopOrder.setReceiptStatus(2);
|
|
|
+ }
|
|
|
+ payOrderMapper.updateShopOrder(shopOrder);
|
|
|
// 保存收款记录
|
|
|
DiscernReceiptPo discernReceipt = new DiscernReceiptPo();
|
|
|
discernReceipt.setPayWay(1);
|
|
@@ -1035,55 +1046,11 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
relation.setSplitStatus(0);
|
|
|
relation.setRelationType(2);
|
|
|
relation.setDelFlag(0);
|
|
|
+ relation.setShopOrderId(shopOrderId);
|
|
|
// 保存 收款项和订单关系
|
|
|
baseMapper.insertOrderReceiptRelation(relation);
|
|
|
log.info("【支付异步回调】>>>>>>>>>>>收款项和订单关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",orderId:" + orderId);
|
|
|
|
|
|
- // 商品数据
|
|
|
- List<OrderProductVo> orderProductList = orderCommonMapper.getOrderProductByOrderId(orderId);
|
|
|
- // 判断是否是充值商品
|
|
|
- int rechargeFlag = 0;
|
|
|
- // 缴纳订金订单
|
|
|
- int[] productId1 = {6060, 6061, 6062, 6063, 6064};
|
|
|
- // 充值余额订单
|
|
|
- int[] productId2 = {6065, 6066, 6067, 6068, 6069};
|
|
|
- for (OrderProductVo product : orderProductList) {
|
|
|
- if (ArrayUtils.contains(productId1, product.getProductId())) {
|
|
|
- rechargeFlag = 1;
|
|
|
- break;
|
|
|
- }
|
|
|
- if (ArrayUtils.contains(productId2, product.getProductId())) {
|
|
|
- rechargeFlag = 2;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (rechargeFlag > 0) {
|
|
|
- // 账户余额
|
|
|
- double oldUserMoney = baseMapper.getUserMoney(order.getUserId());
|
|
|
- double userMoney = MathUtil.add(oldUserMoney, amount).doubleValue();
|
|
|
- // 可用余额
|
|
|
- Double oldAvailableMoney = baseMapper.getAbleUserMoney(order.getUserId());
|
|
|
- double availableMoney = MathUtil.add(oldAvailableMoney, amount).doubleValue();
|
|
|
- payOrderMapper.updateMoneyByUserId(userMoney, availableMoney, order.getUserId());
|
|
|
- log.info("【支付异步回调】>>>>>>>>>>>更新用户余额(update[user])userId:" + order.getUserId() + ",orderId:" + orderId);
|
|
|
- //保存余额到余额收支记录
|
|
|
- BalanceRecordPo balanceRecord = new BalanceRecordPo();
|
|
|
- balanceRecord.setUserId(order.getUserId());
|
|
|
- balanceRecord.setType(1);
|
|
|
- if (rechargeFlag == 1) {
|
|
|
- balanceRecord.setBalanceType(6);
|
|
|
- } else {
|
|
|
- balanceRecord.setBalanceType(7);
|
|
|
- }
|
|
|
- balanceRecord.setAddDate(new Date());
|
|
|
- balanceRecord.setAmount(amount);
|
|
|
- balanceRecord.setOrderId(orderId);
|
|
|
- balanceRecord.setRemark("订单商品充值余额");
|
|
|
- balanceRecord.setDelFlag(0);
|
|
|
- // 保存 余额收支记录
|
|
|
- baseMapper.insertBalanceRecord(balanceRecord);
|
|
|
- log.info("【支付异步回调】>>>>>>>>>>>>>>>>>>>>>>>>>>订单商品充值余额(insert[cm_user_balance_record])orderId:" + orderId);
|
|
|
- }
|
|
|
// 线上支付与自主下单送豆(已全部收款),最后一笔线上支付成功后,赠送200采美豆
|
|
|
if (3 == order.getReceiptStatus() && 0 == order.getSecondHandOrderFlag()) {
|
|
|
UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
|