Просмотр исходного кода

//OfflineActivity

release_toaliyun_real
xiaohu 1 год назад
Родитель
Сommit
bef4926371
3 измененных файлов: 37 добавлений и 25 удалений
  1. +4
    -11
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  2. +25
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  3. +8
    -9
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml

+ 4
- 11
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java Просмотреть файл

@@ -77,13 +77,6 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
@TableField(value = "grant_id")
private Long grantId;


/**
* 发放订单总金额
*/
@TableField(value = "grant_money")
private Integer grantMoney;

/**
* 发放总价值
*/
@@ -93,14 +86,14 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
/**
* 商管承担总金额
*/
@TableField(value = "mall_share_price")
private Integer mallSharePrice;
@TableField(value = "mall_share_rate")
private BigDecimal mallShareRate;

/**
* 商户承担总金额
*/
@TableField(value = "merchant_share_price")
private Integer merchantSharePrice;
@TableField(value = "merchant_share_rate")
private BigDecimal merchantShareRate;

/**
* 订单占比


+ 25
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java Просмотреть файл

@@ -49,6 +49,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
continue;
}
for (WxOfflineActivityGrantItem wxOfflineActivityGrantItem : activityItem.getActivityGrantItemList()) {
List<WxOfflineActivityGrantSettlement> itemSettlementList = new ArrayList<>();
for (WxOfflineActivityRecord record : recordDescList){
WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement();
settlement.setId(idWorker.nextId());
@@ -63,14 +64,33 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
settlement.setActivityItemId(wxOfflineActivityGrantItem.getActivityItemId());
settlement.setAwardItamId(wxOfflineActivityGrantItem.getAwardItamId());
settlement.setGrantId(wxOfflineActivityGrantItem.getGrantId());
settlement.setGrantMoney(wxOfflineActivityGrantAward.getOrderMoneySum());
settlement.setGrantPrice(wxOfflineActivityGrantItem.getAwardPrice());
settlement.setMallSharePrice(wxOfflineActivityGrantItem.getMallSharePrice());
settlement.setMerchantSharePrice(wxOfflineActivityGrantItem.getMerchantSharePrice());
//todo
settlement.setMallShareRate(wxOfflineActivityGrantItem.getMallShareRate());
settlement.setMerchantShareRate(wxOfflineActivityGrantItem.getMerchantShareRate());
settlement.setOrderRatio(record.getOrderRatio());

settlementList.add(settlement);
settlement.setCreateDate(now);
settlement.setUpdateDate(now);
itemSettlementList.add(settlement);
}
//计算订单分担金额,(占比最少的订单用减法,尽量减少误差)
int itemSize = itemSettlementList.size() - 1;
Integer lastGrantPrice = wxOfflineActivityGrantItem.getAwardPrice();
for (int i = 0; i < itemSize; i++) {
WxOfflineActivityGrantSettlement settlement = itemSettlementList.get(i);
int realGrantPrice = new BigDecimal(wxOfflineActivityGrantItem.getAwardPrice()).multiply(settlement.getOrderRatio()).setScale(0, RoundingMode.HALF_UP).intValue();
settlement.setRealGrantPrice(realGrantPrice);
settlement.setRealMallSharePrice(new BigDecimal(settlement.getRealGrantPrice()).multiply(settlement.getMallShareRate()).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
settlement.setRealMerchantSharePrice(settlement.getRealGrantPrice() - settlement.getRealMallSharePrice());

lastGrantPrice = lastGrantPrice - realGrantPrice;
}
WxOfflineActivityGrantSettlement lastSettlement = itemSettlementList.get(itemSize);
lastSettlement.setRealGrantPrice(lastGrantPrice);
lastSettlement.setRealMallSharePrice(new BigDecimal(lastSettlement.getRealGrantPrice()).multiply(lastSettlement.getMallShareRate()).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
lastSettlement.setRealMerchantSharePrice(lastSettlement.getRealGrantPrice() - lastSettlement.getRealMallSharePrice());

settlementList.addAll(itemSettlementList);
}
}


+ 8
- 9
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml Просмотреть файл

@@ -16,10 +16,9 @@
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/>
<result property="grantId" column="grant_id" jdbcType="BIGINT"/>
<result property="grantMoney" column="grant_money" jdbcType="INTEGER"/>
<result property="grantPrice" column="grant_price" jdbcType="INTEGER"/>
<result property="mallSharePrice" column="mall_share_price" jdbcType="INTEGER"/>
<result property="merchantSharePrice" column="merchant_share_price" jdbcType="INTEGER"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="orderRatio" column="order_ratio" jdbcType="DECIMAL"/>
<result property="realGrantPrice" column="real_grant_price" jdbcType="INTEGER"/>
<result property="realMallSharePrice" column="real_mall_share_price" jdbcType="INTEGER"/>
@@ -32,8 +31,8 @@
id,tenant_id,parent_tenant_id,
record_id,order_no,order_money,
merchant_id,activity_id,activity_item_id,
award_itam_id,grant_id,grant_money,grant_price,
mall_share_price,merchant_share_price,order_ratio,
award_itam_id,grant_id,grant_price,
mall_share_rate,merchant_share_rate,order_ratio,
real_grant_price,real_mall_share_price,real_merchant_share_price,
create_date,update_date
</sql>
@@ -43,8 +42,8 @@
(id,tenant_id,parent_tenant_id,
record_id,order_no,order_money,
merchant_id,activity_id,activity_item_id,
award_itam_id,grant_id,grant_money,grant_price,
mall_share_price,merchant_share_price,order_ratio,
award_itam_id,grant_id,grant_price,
mall_share_rate,merchant_share_rate,order_ratio,
real_grant_price,real_mall_share_price,real_merchant_share_price,
create_date,update_date)
values
@@ -52,8 +51,8 @@
(#{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.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT},
#{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantMoney,jdbcType=INTEGER},#{item.grantPrice,jdbcType=INTEGER},
#{item.mallSharePrice,jdbcType=INTEGER},#{item.merchantSharePrice,jdbcType=INTEGER},#{item.orderRatio,jdbcType=DECIMAL},
#{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantPrice,jdbcType=INTEGER},
#{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.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach>


Загрузка…
Отмена
Сохранить