diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java index af96ea769..0f962cf43 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java @@ -3,6 +3,8 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -128,10 +130,10 @@ public class WxOfflineActivity extends TenantEntity { * 发放总额 */ @TableField(exist = false) - private Integer grantPrice; + private BigDecimal grantPrice; /** * 商户结算总额 */ @TableField(exist = false) - private Integer merchantSettlmentPrice; + private BigDecimal merchantSettlmentPrice; } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java index 8807d8fbf..f2511929b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java @@ -48,13 +48,13 @@ public class WxOfflineActivityAwardsItem extends TenantEntity { * 限制最小金额 */ @TableField(value = "min_amount") - private Integer minAmount; + private BigDecimal minAmount; /** * 限制最大金额 */ @TableField(value = "max_amount") - private Integer maxAmount; + private BigDecimal maxAmount; /** * 返现比例(与奖项价值2选1) @@ -66,7 +66,7 @@ public class WxOfflineActivityAwardsItem extends TenantEntity { * 奖项价值 */ @TableField(value = "price") - private Integer price; + private BigDecimal price; /** * 分担规则(0-商管 1-商户 2-分担) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java index 465909c78..967af5db7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -42,7 +43,7 @@ public class WxOfflineActivityGrantAward extends TenantEntity{ * 订单总金额 */ @TableField(value = "order_money_sum") - private Integer orderMoneySum; + private BigDecimal orderMoneySum; /** * 订单数量 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java index a227f1703..3b5f84b3d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java @@ -86,13 +86,13 @@ public class WxOfflineActivityGrantItem extends TenantEntity { * 奖项限制最小金额 */ @TableField(value = "award_min_amount") - private Integer awardMinAmount; + private BigDecimal awardMinAmount; /** * 奖项限制最大金额 */ @TableField(value = "award_max_amount") - private Integer awardMaxAmount; + private BigDecimal awardMaxAmount; /** * 奖项计算规则 @@ -110,7 +110,7 @@ public class WxOfflineActivityGrantItem extends TenantEntity { * 奖项价值 */ @TableField(value = "award_price") - private Integer awardPrice; + private BigDecimal awardPrice; /** * 奖项数量 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java index fd2b8f1be..71430bf2a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java @@ -47,14 +47,9 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { /** * 订单金额 */ - @TableField(value = "order_money") - private Integer orderMoney; @Excel(name = "订单金额(元)", width = 20, orderNum = "3") - @TableField(exist = false) - private String orderMoneyStr; - public String getOrderMoneyStr() { - return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr; - } + @TableField(value = "order_money") + private BigDecimal orderMoney; /** * 商户id @@ -94,7 +89,7 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { * 发放总价值 */ @TableField(value = "grant_price") - private Integer grantPrice; + private BigDecimal grantPrice; /** * 商管承担z占比 @@ -117,36 +112,23 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { /** * 实际发放总价值 */ - @TableField(value = "real_grant_price") - private Integer realGrantPrice; - @TableField(exist = false) @Excel(name = "发放价值(元)", width = 20, orderNum = "4") - private String realGrantPriceStr; - public String getRealGrantPriceStr() { - return realGrantPrice != null ? new BigDecimal(realGrantPrice).divide(new BigDecimal(100)).toPlainString(): realGrantPriceStr; - } + @TableField(value = "real_grant_price") + private BigDecimal realGrantPrice; /** * 实际商管承担总金额 */ - @TableField(value = "real_mall_share_price") - private Integer realMallSharePrice; @Excel(name = "商管承担金额(元)", width = 20, orderNum = "5") - private String realMallSharePriceStr; - public String getRealMallSharePriceStr() { - return realMallSharePrice != null ? new BigDecimal(realMallSharePrice).divide(new BigDecimal(100)).toPlainString(): realMallSharePriceStr; - } + @TableField(value = "real_mall_share_price") + private BigDecimal realMallSharePrice; /** * 实际商户承担总金额 */ - @TableField(value = "real_merchant_share_price") - private Integer realMerchantSharePrice; @Excel(name = "商户承担金额(元)", width = 20, orderNum = "6") - private String realMerchantSharePriceStr; - public String getRealMerchantSharePriceStr() { - return realMerchantSharePrice != null ? new BigDecimal(realMerchantSharePrice).divide(new BigDecimal(100)).toPlainString(): realMerchantSharePriceStr; - } + @TableField(value = "real_merchant_share_price") + private BigDecimal realMerchantSharePrice; /** * 创建时间 @@ -165,4 +147,5 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { */ @TableField(value = "update_date") private Date updateDate; + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java index edfc671be..16c1978d2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java @@ -3,6 +3,8 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -48,13 +50,13 @@ public class WxOfflineActivityItem extends TenantEntity { * 参与金额 */ @TableField(value = "limit_money") - private Integer limitMoney; + private BigDecimal limitMoney; /** * 奖项价值(用来计算奖券数量) */ @TableField(value = "awards_item_price") - private Integer awardsItemPrice; + private BigDecimal awardsItemPrice; /** * 奖项数量限制(为0时无限制) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java index f5c708989..a782fd0a0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java @@ -43,14 +43,9 @@ public class WxOfflineActivityRecord extends TenantEntity { /** * 订单金额 */ - @TableField(value = "order_money") - private Integer orderMoney; @Excel(name = "订单金额(元)", width = 20, orderNum = "7") - @TableField(exist = false) - private String orderMoneyStr; - public String getOrderMoneyStr() { - return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr; - } + @TableField(value = "order_money") + private BigDecimal orderMoney; /** * 客户姓名 diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java index 8c8c69376..5f1c313a9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java @@ -3,6 +3,7 @@ package com.iformall.domain.vo; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; @Data public class OfflineActivityRecordStatistics implements Serializable { @@ -11,5 +12,5 @@ public class OfflineActivityRecordStatistics implements Serializable { private Integer auditStatus; private Integer count; - private Integer sumMoney; + private BigDecimal sumMoney; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java index e6d3dae17..7f6f80cdc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java @@ -4,6 +4,7 @@ import com.iformall.domain.po.base.TenantEntity; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; @Data @@ -14,8 +15,8 @@ public class OfflineActivitySettlement extends TenantEntity { private String merchantName; private Integer recordCount; - private Integer sumOrderMoney; - private Integer sumGrantPrice; - private Integer sumMallPrice; - private Integer sumMerchantPrice; + private BigDecimal sumOrderMoney; + private BigDecimal sumGrantPrice; + private BigDecimal sumMallPrice; + private BigDecimal sumMerchantPrice; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java index 7ed851435..8f892a920 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java @@ -3,15 +3,16 @@ package com.iformall.domain.vo; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; @Data public class OfflineActivitySettlementStatistics implements Serializable { private static final long serialVersionUID = 1L; - private Integer sumGrantPrice; + private BigDecimal sumGrantPrice; private Integer recordCount; private Integer merchantCount; - private Integer sumMallPrice; - private Integer sumMerchantPrice; + private BigDecimal sumMallPrice; + private BigDecimal sumMerchantPrice; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java index b228e181d..66e7b9597 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java @@ -42,17 +42,17 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ awaItem.setCashBackRatio(BigDecimal.ZERO); awaItem.setGrade(-1); - awaItem.setMinAmount(0); - awaItem.setMaxAmount(-1); + awaItem.setMinAmount(null); + awaItem.setMaxAmount(null); } else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { awaItem.setCashBackRatio(BigDecimal.ZERO); } else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { awaItem.setGrade(-1); - awaItem.setMinAmount(0); - awaItem.setMaxAmount(-1); - awaItem.setPrice(0); + awaItem.setMinAmount(null); + awaItem.setMaxAmount(null); + awaItem.setPrice(BigDecimal.ZERO); } if(awaItem.getCreateDate() == null){ awaItem.setCreateDate(activityItem.getUpdateDate()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java index 9b064c531..f893048b2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -85,7 +85,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity handlerRecordQuery(wxOfflineActivityRecord); WxOfflineActivityRecord limitOne = wxOfflineActivityRecordMapper.selectLimitOne(wxOfflineActivityRecord); Map result = new HashMap<>(); - Integer audting = 0, audi_success = 0, audt_fail = 0,sum_success = 0, sum_fail = 0; + Integer audting = 0, audi_success = 0, audt_fail = 0; + BigDecimal sum_success = BigDecimal.ZERO, sum_fail = BigDecimal.ZERO; if (limitOne == null) { result.put("cus_name","查无此人"); result.put("cus_phone",wxOfflineActivityRecord.getCusPhone()); @@ -184,15 +185,15 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity for(WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()){ if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ - if(wxOfflineActivityGrantAward.getOrderMoneySum() < activityItem.getLimitMoney()){ + if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){ activityItem.setIsMeet(false); continue; } activityItem.setIsMeet(true); //奖项限制数量 int limitCount = 0; - if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice() > 0){ - limitCount = wxOfflineActivityGrantAward.getOrderMoneySum() / activityItem.getAwardsItemPrice(); + if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){ + limitCount = wxOfflineActivityGrantAward.getOrderMoneySum().divide(activityItem.getAwardsItemPrice(),0,BigDecimal.ROUND_HALF_DOWN).intValue(); } if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 && activityItem.getAwardsItemLimit() < limitCount){ @@ -201,11 +202,11 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity activityItem.setRealAwardsItemLimit(limitCount); } else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){ - List sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparingInt(WxOfflineActivityAwardsItem::getMinAmount)).collect(Collectors.toList()); + List sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(Collectors.toList()); WxOfflineActivityAwardsItem grantAwardsItem = null; for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){ - if(wxOfflineActivityGrantAward.getOrderMoneySum() > awardsItem.getMinAmount() - && wxOfflineActivityGrantAward.getOrderMoneySum() < awardsItem.getMaxAmount()){ + if((awardsItem.getMinAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) >= 0) + && (awardsItem.getMaxAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMaxAmount()) <= 0)){ grantAwardsItem = awardsItem; } } @@ -281,7 +282,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity throw new MallinkException(Result.ERROR, "请检查活动订单用户是否为同一人"); } - Integer orderMoneySum = 0; + BigDecimal orderMoneySum = BigDecimal.ZERO; List lotteryNumList = new ArrayList<>(); List anniversaryLotteryNumList = new ArrayList<>(); for (WxOfflineActivityRecord record : wxOfflineActivityRecords) { @@ -295,7 +296,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity throw new MallinkException(Result.ERROR, "请检查订单是否已参与活动"); } - orderMoneySum += record.getOrderMoney(); + orderMoneySum = orderMoneySum.add(record.getOrderMoney()); if(record.getLotteryNumList() != null && !record.getLotteryNumList().isEmpty()){ lotteryNumList.addAll(record.getLotteryNumList()); } @@ -348,13 +349,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ - if(wxOfflineActivityGrantAward.getOrderMoneySum() < activityItem.getLimitMoney()){ + if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){ throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"金额不满足"); } //奖项限制数量 int limitCount = 0; - if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice() > 0){ - limitCount = wxOfflineActivityGrantAward.getOrderMoneySum() / activityItem.getAwardsItemPrice(); + if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){ + limitCount = wxOfflineActivityGrantAward.getOrderMoneySum().divide(activityItem.getAwardsItemPrice(),0,BigDecimal.ROUND_HALF_DOWN).intValue(); } if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 && activityItem.getAwardsItemLimit() < limitCount){ @@ -390,8 +391,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity if(awardsItem == null){ throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数"); } - if(wxOfflineActivityGrantAward.getOrderMoneySum() > awardsItem.getMaxAmount() - || wxOfflineActivityGrantAward.getOrderMoneySum() < awardsItem.getMinAmount()){ + if((awardsItem.getMinAmount() != null && wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) < 0) + || (awardsItem.getMaxAmount() != null && wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMaxAmount()) > 0)){ throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数(金额不在范围类)"); } @@ -434,7 +435,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity grantGrantItem.setAwardMaxAmount(awardsItem.getMaxAmount()); grantGrantItem.setAwardsItemRule(activityItem.getAwardsItemRule()); grantGrantItem.setCashBackRatio(awardsItem.getCashBackRatio()); - grantGrantItem.setAwardPrice(awardsItem.getPrice()*grantGrantItem.getAwardCount()); + grantGrantItem.setAwardPrice(awardsItem.getPrice().multiply(new BigDecimal(grantGrantItem.getAwardCount())).setScale(2, BigDecimal.ROUND_HALF_UP)); grantGrantItem.setMoneyRule(awardsItem.getMoneyRule()); grantGrantItem.setMallShareRate(awardsItem.getMallShareRate()); grantGrantItem.setMerchantShareRate(awardsItem.getMerchantShareRate()); @@ -593,10 +594,10 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity } }else if(EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())){ if(granActivityItemList != null && !granActivityItemList.isEmpty()){ - activityGrantObject.put("r"+String.valueOf(activityItem.getId()),granActivityItemList.get(0).getCashBackRatio()); + activityGrantObject.put("r"+String.valueOf(activityItem.getId()),granActivityItemList.get(0).getCashBackRatio().toString()+"%"); activityGrantObject.put("p"+String.valueOf(activityItem.getId()),granActivityItemList.get(0).getAwardPrice()); }else{ - activityGrantObject.put("r"+String.valueOf(activityItem.getId()),0); + activityGrantObject.put("r"+String.valueOf(activityItem.getId()),"%"); activityGrantObject.put("p"+String.valueOf(activityItem.getId()),0); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java index 7b889b2dc..a114806a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java @@ -45,16 +45,16 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG grantGrantItem.setCreateDate(now); grantGrantItem.setUpdateDate(now); if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){ - BigDecimal awardPrice = new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()) + BigDecimal awardPrice = wxOfflineActivityGrantAward.getOrderMoneySum() .multiply(grantGrantItem.getCashBackRatio().divide(new BigDecimal(100))); if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){ - grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP).intValue()); + grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP)); } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(grantGrantItem.getAwardsItemRule())) { - int awardPriceYuan = awardPrice.divide(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); - grantGrantItem.setAwardPrice(awardPriceYuan*100); + BigDecimal awardPriceYuan = awardPrice.divide(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP); + grantGrantItem.setAwardPrice(awardPriceYuan.multiply(new BigDecimal(100))); }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(grantGrantItem.getAwardsItemRule())){ - int awardPriceTen = awardPrice.divide(new BigDecimal(1000)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); - grantGrantItem.setAwardPrice(awardPriceTen*1000); + BigDecimal awardPriceTen = awardPrice.divide(new BigDecimal(1000)).setScale(0, BigDecimal.ROUND_HALF_UP); + grantGrantItem.setAwardPrice(awardPriceTen.multiply(new BigDecimal(1000))); } } rantItemList.add(grantGrantItem); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java index 1af3ff51a..1bf5835e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -56,13 +56,13 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct final IdWorker idWorker = IdWorker.get(); Date now = new Date(); //获取订单占比(占比最少的订单用减法,尽量减少误差) - List recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparingInt(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); + List recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); int size = recordDescList.size() - 1; BigDecimal lastRatio = new BigDecimal(100); for(int i=0; i 0){ + BigDecimal count = yes.subtract(yesYes); + percentage = count.divide(yesYes,2,BigDecimal.ROUND_HALF_UP).toString(); + } + return percentage; + } + private String getPercentage(Integer yes, Integer yesYes){ NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java index 745c37d9e..574f51ed8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.mapper.WxOfflineActivityItemMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Collections; import java.util.List; @@ -49,12 +50,12 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode()); } else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { - activityItem.setLimitMoney(0); - activityItem.setAwardsItemPrice(0); + activityItem.setLimitMoney(BigDecimal.ZERO); + activityItem.setAwardsItemPrice(BigDecimal.ZERO); activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode()); } else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { - activityItem.setAwardsItemPrice(0); + activityItem.setAwardsItemPrice(BigDecimal.ZERO); activityItem.setAwardsItemCount(0); } if(activityItem.getCreateDate() == null){ diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml index ec009646b..89779a391 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml @@ -11,10 +11,10 @@ - - + + - + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml index 10b6f60ba..9298cb5a6 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml @@ -9,7 +9,7 @@ - + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml index 093a95723..c8bf083d2 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml @@ -17,11 +17,11 @@ - - + + - + @@ -99,8 +99,8 @@ #{item.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR}, #{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER}, #{item.awardItamId,jdbcType=BIGINT},#{item.awardName,jdbcType=VARCHAR},#{item.awardGrade,jdbcType=INTEGER}, - #{item.awardMinAmount,jdbcType=INTEGER},#{item.awardMaxAmount,jdbcType=INTEGER},#{item.awardsItemRule,jdbcType=INTEGER},#{item.cashBackRatio,jdbcType=DECIMAL}, - #{item.awardPrice,jdbcType=INTEGER},#{item.awardCount,jdbcType=INTEGER},#{item.moneyRule,jdbcType=INTEGER}, + #{item.awardMinAmount,jdbcType=DECIMAL},#{item.awardMaxAmount,jdbcType=DECIMAL},#{item.awardsItemRule,jdbcType=INTEGER},#{item.cashBackRatio,jdbcType=DECIMAL}, + #{item.awardPrice,jdbcType=DECIMAL},#{item.awardCount,jdbcType=INTEGER},#{item.moneyRule,jdbcType=INTEGER}, #{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL}, #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml index 521b81499..5ad579722 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml @@ -10,19 +10,19 @@ - + - + - - - + + + @@ -113,11 +113,11 @@ values (#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, - #{item.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=INTEGER}, + #{item.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=DECIMAL}, #{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT}, - #{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantPrice,jdbcType=INTEGER}, + #{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantPrice,jdbcType=DECIMAL}, #{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL},#{item.orderRatio,jdbcType=DECIMAL}, - #{item.realGrantPrice,jdbcType=INTEGER},#{item.realMallSharePrice,jdbcType=INTEGER},#{item.realMerchantSharePrice,jdbcType=INTEGER}, + #{item.realGrantPrice,jdbcType=DECIMAL},#{item.realMallSharePrice,jdbcType=DECIMAL},#{item.realMerchantSharePrice,jdbcType=DECIMAL}, #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml index 68f37591e..24d7fae53 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml @@ -11,8 +11,8 @@ - - + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml index e236c38ff..cc83f9efa 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml @@ -9,7 +9,7 @@ - +