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