|
@@ -105,8 +105,21 @@ public class CmsVipOrderServiceImpl implements CmsVipOrderService {
|
|
|
int offsetMonths = orderDon.getNum();
|
|
int offsetMonths = orderDon.getNum();
|
|
|
Date expiryTime = vipUser.getExpiryTime();
|
|
Date expiryTime = vipUser.getExpiryTime();
|
|
|
DateTime subExpiryTime = DateUtil.offsetMonth(expiryTime, -offsetMonths);
|
|
DateTime subExpiryTime = DateUtil.offsetMonth(expiryTime, -offsetMonths);
|
|
|
- vipUser.setExpiryTime(subExpiryTime);
|
|
|
|
|
|
|
+ //主订单退款
|
|
|
|
|
+ if (orderDon.getOrderType() == 1) {
|
|
|
|
|
+ Date remainExpiryTime = subExpiryTime;
|
|
|
|
|
+ Integer extendsDays = orderDon.getExtendsDays();
|
|
|
|
|
+ DateTime now = DateTime.now();
|
|
|
|
|
+ if (remainExpiryTime.compareTo(now) > 0 && extendsDays > 0) {
|
|
|
|
|
+ Long remainDays = DateUtil.betweenDay(remainExpiryTime, now, false) + 1;
|
|
|
|
|
+ BigDecimal daySingle = orderDon.getDeductMoney().divide(BigDecimal.valueOf(orderDon.getNum() * 30), 0, RoundingMode.UP);
|
|
|
|
|
+ BigDecimal addBalance = daySingle.multiply(BigDecimal.valueOf(remainDays));
|
|
|
|
|
+ userBenefitsService.addUserBalance(orderDon.getUserId(), addBalance, UserBalanceSourceRecord.Source.vip_refund, null, orderDon.getId(), orderDon.getPayTitle() + UserBalanceSourceRecord.Source.vip_refund.getDesc(), true);
|
|
|
|
|
+ subExpiryTime = now;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
//若会员过期清除镜像user
|
|
//若会员过期清除镜像user
|
|
|
|
|
+ vipUser.setExpiryTime(subExpiryTime);
|
|
|
clearVipMirrorUser(vipUser.getUserId(), subExpiryTime);
|
|
clearVipMirrorUser(vipUser.getUserId(), subExpiryTime);
|
|
|
vipUserMapper.updateById(vipUser);
|
|
vipUserMapper.updateById(vipUser);
|
|
|
}
|
|
}
|