Browse Source

//offline

release_toaliyun_real
xiaohu 1 year ago
parent
commit
7800431d4e
1 changed files with 60 additions and 32 deletions
  1. +60
    -32
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java

+ 60
- 32
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java View File

@@ -251,6 +251,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
&& grantAwardsItem.getLimitPrice().compareTo(cashBackPrice) < 0 ){
cashBackPrice = grantAwardsItem.getLimitPrice();
}
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());

cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
}

@@ -310,6 +312,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
//计算返现金额
BigDecimal cashBackPrice = orderMoneySum
.multiply(grantAwardsItem.getCashBackRatio().divide(new BigDecimal(100)));
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());

cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
}

@@ -323,6 +327,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
//计算返现金额
BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum()
.multiply(grantAwardsSecondItem.getCashBackRatio().divide(new BigDecimal(100)));
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());

cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
}
}
@@ -330,14 +336,6 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
if(cashBackPriceTotal.compareTo(activityItem.getMaxAmount()) >= 0){
cashBackPriceTotal = activityItem.getMaxAmount();
}
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){
cashBackPriceTotal = cashBackPriceTotal.setScale(2, RoundingMode.HALF_UP);
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) {
cashBackPriceTotal = cashBackPriceTotal.setScale(0, RoundingMode.HALF_UP);
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){
cashBackPriceTotal = cashBackPriceTotal.divide(new BigDecimal(10))
.setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10));
}

WxOfflineActivityGrantCashBack activityGrantCashBack = new WxOfflineActivityGrantCashBack();
activityGrantCashBack.setActivityId(activity.getId());
@@ -790,6 +788,10 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
&& grantAwardsItem.getLimitPrice().compareTo(cashBackPrice) < 0 ){
cashBackPrice = grantAwardsItem.getLimitPrice();
}
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());
if(cashBackPrice.compareTo(BigDecimal.ZERO) == 0){
continue;
}

grantAwardsItem.setPrice(cashBackPrice);
handlerGrantItem(grantGrantItem,activity,activityItem,grantAwardsItem);
@@ -825,11 +827,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
//计算返现金额
BigDecimal cashBackPrice = orderMoneySum
.multiply(grantAwardsItem.getCashBackRatio().divide(new BigDecimal(100)));
grantAwardsItem.setPrice(cashBackPrice);
handlerGrantItem(grantGrantItem,activity,activityItem,grantAwardsItem);
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());
if(cashBackPrice.compareTo(BigDecimal.ZERO) > 0){
grantAwardsItem.setPrice(cashBackPrice);
handlerGrantItem(grantGrantItem,activity,activityItem,grantAwardsItem);

activityGrantItemList.add(grantGrantItem);
cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
activityGrantItemList.add(grantGrantItem);
cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
}
}
}

@@ -843,11 +848,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
//计算返现金额
BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum()
.multiply(awardsSecondItem.getCashBackRatio().divide(new BigDecimal(100)));
awardsSecondItem.setPrice(cashBackPrice);
handlerGrantItem(grantGrantItem,activity,activityItem,awardsSecondItem);
cashBackPrice = awardsRulePrice(cashBackPrice,activityItem.getAwardsItemRule());
if(cashBackPrice.compareTo(BigDecimal.ZERO) > 0){
awardsSecondItem.setPrice(cashBackPrice);
handlerGrantItem(grantGrantItem,activity,activityItem,awardsSecondItem);

activityGrantItemList.add(grantGrantItem);
cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
activityGrantItemList.add(grantGrantItem);
cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice);
}
}
}

@@ -856,22 +864,26 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
prop = activityItem.getMaxAmount().divide(cashBackPriceTotal,4,RoundingMode.HALF_UP);
cashBackPriceTotal = activityItem.getMaxAmount();
}
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){
cashBackPriceTotal = cashBackPriceTotal.setScale(2, RoundingMode.HALF_UP);
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) {
cashBackPriceTotal = cashBackPriceTotal.setScale(0, RoundingMode.HALF_UP);
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){
cashBackPriceTotal = cashBackPriceTotal.divide(new BigDecimal(10))
.setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10));
}
for (WxOfflineActivityGrantItem grantItem:activityGrantItemList){
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){
grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).setScale(2, RoundingMode.HALF_UP));
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) {
grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).setScale(0, RoundingMode.HALF_UP));
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){
grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).divide(new BigDecimal(10))
.setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)));
// if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){
// cashBackPriceTotal = cashBackPriceTotal.setScale(2, RoundingMode.HALF_UP);
// } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) {
// cashBackPriceTotal = cashBackPriceTotal.setScale(0, RoundingMode.HALF_UP);
// }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){
// cashBackPriceTotal = cashBackPriceTotal.divide(new BigDecimal(10))
// .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10));
// }
if(prop.compareTo(BigDecimal.ONE) < 0){
for (WxOfflineActivityGrantItem grantItem:activityGrantItemList){
grantItem.setAwardPrice(awardsRulePrice(grantItem.getAwardPrice().multiply(prop),activityItem.getAwardsItemRule()));
// awardsRulePrice(grantItem.getAwardPrice().multiply(prop),activityItem.getAwardsItemRule());
// if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){
// grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).setScale(2, RoundingMode.HALF_UP));
// } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) {
// grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).setScale(0, RoundingMode.HALF_UP));
// }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){
// grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).divide(new BigDecimal(10))
// .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)));
// }
}
}

@@ -1539,6 +1551,22 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
return headList;
}




private BigDecimal awardsRulePrice(BigDecimal awardsPrice,Integer awardsRule){
BigDecimal awardsRulePrice = BigDecimal.ZERO;
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(awardsRule)){
awardsRulePrice = awardsPrice.setScale(2, RoundingMode.HALF_UP);
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(awardsRule)) {
awardsRulePrice = awardsPrice.setScale(0, RoundingMode.HALF_UP);
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(awardsRule)){
awardsRulePrice = awardsPrice.divide(new BigDecimal(10))
.setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10));
}
return awardsRulePrice;
}

}




Loading…
Cancel
Save