|
@@ -989,19 +989,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
System.out.println("微信退款结果:" + s);
|
|
System.out.println("微信退款结果:" + s);
|
|
|
refundActual = BigDecimal.valueOf(Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
refundActual = BigDecimal.valueOf(Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
//优先退未过期的积分,退积分
|
|
//优先退未过期的积分,退积分
|
|
|
- List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
|
|
- .eq(PointsRecord::getOrderNumber, order.getOrderNumber()).eq(PointsRecord::getPointsType, 2)
|
|
|
|
|
- .and(wrapper -> wrapper
|
|
|
|
|
- .gt(PointsRecord::getExpiryDate, LocalDateTime.now())
|
|
|
|
|
- .or()
|
|
|
|
|
- .isNull(PointsRecord::getExpiryDate)
|
|
|
|
|
- ).orderByDesc(PointsRecord::getExpiryDate));
|
|
|
|
|
|
|
+// List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
|
|
+// .eq(PointsRecord::getOrderNumber, order.getOrderNumber()).eq(PointsRecord::getPointsType, 2)
|
|
|
|
|
+// .orderByDesc(PointsRecord::getExpiryDate));
|
|
|
|
|
+ List<PointsRecord> pointsRecords = pointsRecordMapper.findByOrderNumber(order.getOrderNumber(), 2);
|
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
PointsRecord npr = new PointsRecord();
|
|
PointsRecord npr = new PointsRecord();
|
|
|
BeanUtils.copyProperties(pointsRecord, npr);
|
|
BeanUtils.copyProperties(pointsRecord, npr);
|
|
|
npr.setId(null);
|
|
npr.setId(null);
|
|
|
npr.setPointsType(3);
|
|
npr.setPointsType(3);
|
|
|
|
|
+ npr.setPointsAudit(1);
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
@@ -1028,18 +1026,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
//退,积分【优先退未过期的积分】
|
|
//退,积分【优先退未过期的积分】
|
|
|
- List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
|
|
- .eq(PointsRecord::getOrderNumber, order.getOrderNumber()).eq(PointsRecord::getPointsType, 2)
|
|
|
|
|
- .and(wrapper -> wrapper
|
|
|
|
|
- .gt(PointsRecord::getExpiryDate, LocalDateTime.now())
|
|
|
|
|
- .or()
|
|
|
|
|
- .isNull(PointsRecord::getExpiryDate)
|
|
|
|
|
- ).orderByDesc(PointsRecord::getExpiryDate));
|
|
|
|
|
|
|
+// List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
|
|
+// .eq(PointsRecord::getOrderNumber, order.getOrderNumber()).eq(PointsRecord::getPointsType, 2)
|
|
|
|
|
+// .orderByDesc(PointsRecord::getExpiryDate));
|
|
|
|
|
+ List<PointsRecord> pointsRecords = pointsRecordMapper.findByOrderNumber(order.getOrderNumber(), 2);
|
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
PointsRecord npr = new PointsRecord();
|
|
PointsRecord npr = new PointsRecord();
|
|
|
BeanUtils.copyProperties(pointsRecord, npr);
|
|
BeanUtils.copyProperties(pointsRecord, npr);
|
|
|
npr.setId(null);
|
|
npr.setId(null);
|
|
|
npr.setPointsType(3);
|
|
npr.setPointsType(3);
|
|
|
|
|
+ npr.setPointsAudit(1);
|
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
npr.setPoints(pointsRecord.getVariablePoints());
|
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
npr.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
@@ -1047,15 +1043,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
l = 0L;
|
|
l = 0L;
|
|
|
}
|
|
}
|
|
|
if (null != pointsRecord.getVariablePoints()) {
|
|
if (null != pointsRecord.getVariablePoints()) {
|
|
|
- npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
|
|
|
|
+ if (pointsRecord.getExpiryStatus()==1){
|
|
|
|
|
+ npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
|
|
|
|
|
+ }else {
|
|
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (pointsRecord.getExpiryStatus()==2){
|
|
|
|
|
+ refundExpiredScore += pointsRecord.getVariablePoints().longValue();
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
|
|
|
|
|
|
|
+ npr.setCurrentlyAvailablePoints(BigDecimal.ZERO.add(BigDecimal.valueOf(l)));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
npr.setCreationDate(new Date());
|
|
npr.setCreationDate(new Date());
|
|
|
refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
pointsRecordMapper.insert(npr);
|
|
pointsRecordMapper.insert(npr);
|
|
|
}
|
|
}
|
|
|
- refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
|
|
|
|
+// refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case 2://2:单个物品退款
|
|
case 2://2:单个物品退款
|
|
@@ -1163,21 +1167,34 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
}
|
|
|
//退钱
|
|
//退钱
|
|
|
if (totalRefundActual > 0) {
|
|
if (totalRefundActual > 0) {
|
|
|
|
|
+ int refundMoney=0;//需要退款的金额
|
|
|
|
|
+ if (totalRefundScore>0){
|
|
|
|
|
+ if (totalRefundActual>=totalRefundScore){
|
|
|
|
|
+ refundMoney = totalRefundScore;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ System.out.println("退款金额大于支付金额");
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if (totalRefundScore==0){
|
|
|
|
|
+ refundMoney =(int) Arith.mul(totalRefundActual, 100);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ System.out.println("单笔退款未知状态");
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
|
|
OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
|
|
|
.eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
|
|
.eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
|
|
|
.eq(OrderSettlement::getPayType, 1));
|
|
.eq(OrderSettlement::getPayType, 1));
|
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|
|
|
- po.setTotal((int) Arith.mul(Arith.add(order.getTotal(), order.getFreightAmount()), 100));
|
|
|
|
|
- po.setRefundMoney((int) Arith.mul(totalRefundActual, 100));
|
|
|
|
|
- String s = wxProviderService.refundOrder(po);
|
|
|
|
|
- System.out.println("微信退款结果:" + s);
|
|
|
|
|
- refundActual = BigDecimal.valueOf(totalRefundActual);
|
|
|
|
|
|
|
+ po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
|
|
+ po.setRefundMoney(refundMoney);
|
|
|
|
|
+ if (refundMoney!=0){
|
|
|
|
|
+ String s = wxProviderService.refundOrder(po);
|
|
|
|
|
+ System.out.println("微信退款结果:" + s);
|
|
|
|
|
+ }
|
|
|
|
|
+ refundActual = BigDecimal.valueOf(refundMoney);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
if (1 == orderRefund.getRefundType()) {
|
|
if (1 == orderRefund.getRefundType()) {
|
|
|
order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
order.setHbOrderStatus(OrderStatus.CLOSE.value());
|
|
|
}else {
|
|
}else {
|