Compare commits

...

2 Commits

Author SHA1 Message Date
曹磊 614bd1bf3f 秒杀四舍五入 2024-08-12 21:46:47 +08:00
曹磊 acbfa87dbe 秒杀优惠减免 2024-08-12 21:33:12 +08:00
1 changed files with 26 additions and 20 deletions

View File

@ -271,7 +271,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(0, BigDecimal.ROUND_HALF_UP);
canVipMoney = canVipMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
@ -406,7 +406,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_HALF_UP);
canVipMoney = canVipMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
@ -713,7 +713,6 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
BigDecimal sum = massagePackage.getPrice().multiply(new BigDecimal(ordersPackage.getNum()));
sum = sum.setScale(0,BigDecimal.ROUND_HALF_UP);
if(massagePackage.getIsCanCoupon() == 1){
canCouponMoney = canCouponMoney.add(sum);
}
@ -782,14 +781,18 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
}
}
userPackageOrder.setVipRate(vipRate);
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
if(vipRate.compareTo(new BigDecimal(100))==0){
userPackageOrder.setVipReductionMoney(BigDecimal.ZERO);//会员减免金额
}else {
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
}
userPackageOrder.setPayMoney(totalMoney);
userPackageOrder.setCreateTime(DateUtils.format(new Date()));
userPackageOrder.setStatus(0);
@ -996,7 +999,6 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
BigDecimal sum = massagePackage.getPrice().multiply(new BigDecimal(ordersPackage.getNum()));
sum = sum.setScale(0,BigDecimal.ROUND_HALF_UP);
if(massagePackage.getIsCanCoupon() == 1){
canCouponMoney = canCouponMoney.add(sum);
}
@ -1064,14 +1066,18 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
}
}
userPackageOrder.setVipRate(vipRate);
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
if(vipRate.compareTo(new BigDecimal(100))==0){
userPackageOrder.setVipReductionMoney(BigDecimal.ZERO);//会员减免金额
}else {
BigDecimal vipMoney = canVipMoney;
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
canVipMoney = canVipMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
}
userPackageOrder.setPayMoney(totalMoney);
userPackageOrder.setCreateTime(DateUtils.format(new Date()));
userPackageOrder.setStatus(0);