zhangxin 23 часов назад
Родитель
Сommit
ebe47008a0

+ 14 - 9
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -991,14 +991,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             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()));
+                            refundActual = BigDecimal.valueOf(order.getActualTotal());
                             //优先退未过期的积分,退积分
 //                            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) {
-                                refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
+//                                refundScore =  (refundScore + order.getOffsetPoints());
                                 PointsRecord npr = new PointsRecord();
                                 BeanUtils.copyProperties(pointsRecord, npr);
                                 npr.setId(null);
@@ -1011,14 +1011,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                     l = 0L;
                                 }
                                 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 {
-                                    npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                    npr.setCurrentlyAvailablePoints(BigDecimal.ZERO.add(BigDecimal.valueOf(l)));
                                 }
                                 npr.setCreationDate(new Date());
                                 pointsRecordMapper.insert(npr);
                             }
-                            refundExpiredScore = order.getOffsetPoints() - refundScore;
+//                            refundExpiredScore = order.getOffsetPoints() - refundScore;
                         } else {//仅微信支付
                             RefundInfoPo po = new RefundInfoPo();
                             po.setOutTradeNo(orderSettlement.getPayNo());
@@ -1055,12 +1063,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 if (pointsRecord.getExpiryStatus()==2){
                                     refundExpiredScore += pointsRecord.getVariablePoints().longValue();
                                 }
+                                refundScore =  (refundScore + pointsRecord.getVariablePoints().intValue());
                             } else {
                                 npr.setCurrentlyAvailablePoints(BigDecimal.ZERO.add(BigDecimal.valueOf(l)));
                             }
-
                             npr.setCreationDate(new Date());
-                            refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
                             pointsRecordMapper.insert(npr);
                         }
 //                        refundExpiredScore = order.getOffsetPoints() - refundScore;
@@ -1076,8 +1083,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     for (OrderRefund refund : orderRefundList) {
                         refundOffsetPoints += refund.getOffsetPoints();
                     }
-
-
 //                            pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
 //                            .eq(PointsRecord::getOrderNumber, order.getOrderNumber())
 //                            .eq(PointsRecord::getPointsType, 2)