|
|
@@ -1093,7 +1093,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// ).orderByDesc(PointsRecord::getExpiryDate));
|
|
|
//TODO (int) Arith.mul(order.getFreightAmount(), 100),加在这里就是每次部分退单都要减掉,有可能会出现退的积分比下单总积分少。少的值恰好为一次运费
|
|
|
int totalRefundScore = 0;//需要退款的金额,部分退款时不需要退运费。
|
|
|
-// int freightAmountScore = -(int) Arith.mul(order.getFreightAmount(), 100);//需要退的总积分,先把运费剔除掉
|
|
|
+ int freightAmountScore = -(int) Arith.mul(order.getFreightAmount(), 100);//需要退的总积分,先把运费剔除掉
|
|
|
double totalRefundActual = 0.0;//需要退的总金额
|
|
|
int shoppingScore= 0;
|
|
|
for (OrderRefundSku refundSkus : orderRefundSkus) {
|
|
|
@@ -1101,7 +1101,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
OrderItem orderItem = orderItemMapper.selectById(refundSkus.getOrderItemId());
|
|
|
Double actualTotal = orderItem.getActualTotal();//付的钱
|
|
|
Integer useScore = orderItem.getUseScore();//使用的总积分
|
|
|
- shoppingScore = useScore ;//商品的总金额积分 商品明细表不会包含运费
|
|
|
+ if (ObjectUtil.isNotEmpty(order.getOffsetPoints())){
|
|
|
+ shoppingScore = order.getOffsetPoints().intValue()+freightAmountScore;//退款商品的总积分
|
|
|
+ }
|
|
|
+
|
|
|
if (useScore > 0) {
|
|
|
//退的积分不一定等于下单的数量
|
|
|
totalRefundScore = (int) (totalRefundScore + Arith.mul(productCount * orderItem.getPrice(), 100));
|
|
|
@@ -1114,6 +1117,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//退积分
|
|
|
if (totalRefundScore > 0) {
|
|
|
refundScore = (long) totalRefundScore;
|
|
|
+ if (shoppingScore>=refundOffsetPoints){
|
|
|
for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
//下单支付的金额
|
|
|
int variablePoints = pointsRecord.getVariablePoints().intValue();//574
|
|
|
@@ -1173,6 +1177,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
//退钱
|
|
|
if (totalRefundActual > 0) {
|