|
@@ -255,8 +255,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return orderMapper.listUnRefundOrderAndOrderItems(orderStatus, lessThanUpdateTime);
|
|
return orderMapper.listUnRefundOrderAndOrderItems(orderStatus, lessThanUpdateTime);
|
|
|
}
|
|
}
|
|
|
@Override
|
|
@Override
|
|
|
- public List<Order> cancelOrders(Integer orderStatus, DateTime lessThanUpdateTime) {
|
|
|
|
|
- return orderMapper.cancelOrders(orderStatus, lessThanUpdateTime);
|
|
|
|
|
|
|
+ public List<Order> selectCancelOrders(Integer orderStatus, DateTime lessThanUpdateTime) {
|
|
|
|
|
+ return orderMapper.selectCancelOrders(orderStatus, lessThanUpdateTime);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -991,21 +991,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
po.setRefundMoney((int) Arith.mul(order.getActualTotal(), 100));
|
|
po.setRefundMoney((int) Arith.mul(order.getActualTotal(), 100));
|
|
|
String s = wxProviderService.refundOrder(po);
|
|
String s = wxProviderService.refundOrder(po);
|
|
|
System.out.println("微信退款结果:" + s);
|
|
System.out.println("微信退款结果:" + s);
|
|
|
- refundActual = BigDecimal.valueOf(Arith.add(order.getActualTotal(), order.getFreightAmount()));
|
|
|
|
|
|
|
+ refundActual = BigDecimal.valueOf(order.getActualTotal());
|
|
|
//优先退未过期的积分,退积分
|
|
//优先退未过期的积分,退积分
|
|
|
- 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 = (refundScore + order.getOffsetPoints());
|
|
|
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()));
|
|
@@ -1013,14 +1011,22 @@ 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.ZERO.add(BigDecimal.valueOf(l)));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (pointsRecord.getExpiryStatus()==2){
|
|
|
|
|
+ refundExpiredScore += pointsRecord.getVariablePoints().longValue();
|
|
|
|
|
+ }
|
|
|
|
|
+ refundScore = (refundScore + pointsRecord.getVariablePoints().intValue());
|
|
|
} 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());
|
|
|
pointsRecordMapper.insert(npr);
|
|
pointsRecordMapper.insert(npr);
|
|
|
}
|
|
}
|
|
|
- refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
|
|
|
|
+// refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
} else {//仅微信支付
|
|
} else {//仅微信支付
|
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|
|
@@ -1032,18 +1038,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()));
|
|
@@ -1051,15 +1055,22 @@ 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();
|
|
|
|
|
+ }
|
|
|
|
|
+ refundScore = (refundScore + pointsRecord.getVariablePoints().intValue());
|
|
|
} 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()));
|
|
|
|
|
pointsRecordMapper.insert(npr);
|
|
pointsRecordMapper.insert(npr);
|
|
|
}
|
|
}
|
|
|
- refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
|
|
|
|
+// refundExpiredScore = order.getOffsetPoints() - refundScore;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case 2://2:单个物品退款
|
|
case 2://2:单个物品退款
|
|
@@ -1072,8 +1083,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
for (OrderRefund refund : orderRefundList) {
|
|
for (OrderRefund refund : orderRefundList) {
|
|
|
refundOffsetPoints += refund.getOffsetPoints();
|
|
refundOffsetPoints += refund.getOffsetPoints();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
// pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
// pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
// .eq(PointsRecord::getOrderNumber, order.getOrderNumber())
|
|
// .eq(PointsRecord::getOrderNumber, order.getOrderNumber())
|
|
|
// .eq(PointsRecord::getPointsType, 2)
|
|
// .eq(PointsRecord::getPointsType, 2)
|
|
@@ -1167,21 +1176,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 {
|