|
|
@@ -985,8 +985,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//退钱
|
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|
|
|
- po.setTotal((int) Arith.mul(Arith.add(order.getActualTotal(), order.getFreightAmount()), 100));
|
|
|
- po.setRefundMoney((int) Arith.mul(Arith.add(order.getActualTotal(), order.getFreightAmount()), 100));
|
|
|
+ //混合支付,有积分时运费优先扣积分
|
|
|
+ po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
+ po.setRefundMoney((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
String s = wxProviderService.refundOrder(po);
|
|
|
System.out.println("微信退款结果:" + s);
|
|
|
refundActual = BigDecimal.valueOf(Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
@@ -1038,7 +1039,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
- npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ if (null == l) {
|
|
|
+ l = 0L;
|
|
|
+ }
|
|
|
+ if (null != pointsRecord.getVariablePoints()) {
|
|
|
+ npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ } else {
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
+ }
|
|
|
npr.setCreationDate(new Date());
|
|
|
refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
pointsRecordMapper.insert(npr);
|
|
|
@@ -1084,7 +1092,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
npr.setId(null);
|
|
|
npr.setPointsType(3);
|
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
- npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ if (null == l) {
|
|
|
+ l = 0L;
|
|
|
+ }
|
|
|
+ if (null != pointsRecord.getVariablePoints()) {
|
|
|
+ npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
+ } else {
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
+ }
|
|
|
npr.setCreationDate(new Date());
|
|
|
if (variablePoints < totalRefundScore) {//下单金额全退
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|