فهرست منبع

只退积分时需要更新过期积分和抵扣积分

zhangxin 1 روز پیش
والد
کامیت
233dd448d1
1فایلهای تغییر یافته به همراه22 افزوده شده و 10 حذف شده
  1. 22 10
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

+ 22 - 10
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -1112,34 +1112,46 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             if (null == l) {
                                 l = 0L;
                             }
-                            if (pointsRecord.getExpiryStatus()==1){//当过期状态等于1时才进行变更可用金额 否则不变更
-                                if (null != pointsRecord.getVariablePoints()) {
-                                    npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
-                                } else {
-                                    npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
-                                }
-                            } else {
-                                npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
-                            }
-
                             npr.setCreationDate(new Date());
                             //574>188
                             if (variablePoints < totalRefundScore) {//下单金额全退
                                 npr.setPoints(pointsRecord.getVariablePoints());
                                 npr.setVariablePoints(BigDecimal.valueOf(0));
                                 npr.setPointsAudit(1);
+                                if (pointsRecord.getExpiryStatus()==1){//当过期状态等于1时才进行变更可用金额 否则不变更
+                                    if (null != pointsRecord.getVariablePoints()) {
+                                        npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
+                                    } else {
+                                        npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                    }
+                                } else {
+                                    npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                }
                                 totalRefundScore -= variablePoints;
                             } else {//574>188,应退188
                                 npr.setPoints(BigDecimal.valueOf(totalRefundScore));
                                 npr.setVariablePoints(BigDecimal.valueOf(0));
                                 npr.setPointsAudit(2);
                                 totalRefundScore=0;
+                                if (pointsRecord.getExpiryStatus()==1){//当过期状态等于1时才进行变更可用金额 否则不变更
+                                    BigDecimal bigDecimal = BigDecimal.valueOf(totalRefundScore);
+                                    npr.setCurrentlyAvailablePoints(bigDecimal.add(BigDecimal.valueOf(l)));
+                                } else {
+                                    npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                }
                             }
+
                             if (pointsRecord.getExpiryStatus()==2){
                                 refundExpiredScore += totalRefundScore;
                             }
                             pointsRecordMapper.insert(npr);
                             if (totalRefundScore==0 && shoppingScore>=refundOffsetPoints) {
+                                orderRefund.setRefundAmount(refundActual.doubleValue());
+                                orderRefund.setOffsetPoints(refundScore);
+                                orderRefund.setHandler(Boolean.TRUE);
+                                orderRefund.setRefundExpiredScore(refundExpiredScore);
+                                log.info("仅退积分-退款单修改状态和积分{}",orderRefund);
+                                orderRefundMapper.updateById(orderRefund);
                                 return;
                             }
                         }