3
0
Fork 0

## 复购商品区域分红按指定的价格进行处理;

This commit is contained in:
cabbage 2025-06-13 18:18:37 +08:00
parent 0dccb9792f
commit c1c90edab8
3 changed files with 28 additions and 7 deletions

View File

@ -1596,14 +1596,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return null;
}
// 区域收益商品价格 * 0.5% * 商品数量
// 处理区域收益 -- 计算比例为 0.5%
BigDecimal benefitIncome = BigDecimal.ZERO;
// 计算业绩此处作为比例
BigDecimal calAchieve = BigDecimal.ZERO;
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(RetailConstants.SAME_RATIO)).setScale(6, BigDecimal.ROUND_HALF_UP);
calAchieve = calAchieve.add(saOrderWaresExt.getWaresPrice());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
// 注册升级订单 区域收益 = 商品价格 * 0.5% * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
// 商品最终价格
BigDecimal waresPrice = saOrderWaresExt.getWaresPrice();
// 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderWaresExt.getWaresQuantity());
// 单个商品价格
BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR);
benefitIncome = benefitIncome.add(waresOnePrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP).multiply(waresQuantityBig));
}
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
// 复购订单 区域收益 = 复购区域分红 * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
}
}
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);

View File

@ -60,6 +60,7 @@
<result column="PK_WARES" property="pkWares"/>
<result column="WARES_PRICE" property="waresPrice"/>
<result column="WARES_CODE" property="waresCode"/>
<result column="AREA_INCOME" property="areaIncome"/>
</collection>
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
<result column="SI_ITEMS_ID" property="pkId"/>
@ -153,7 +154,8 @@
nvl(st.pk_wares,0) pk_wares,
nvl(st.wares_price,0) wares_price,
nvl(bw.wares_code,'~') wares_code,
nvl(st.wares_quantity,0) wares_quantity
nvl(st.wares_quantity,0) wares_quantity,
nvl(bw.area_income, 0) area_income
from sa_order so
left join sa_order_wares st
on so.pk_id = st.pk_order and st.wares_price > 0

View File

@ -4,6 +4,8 @@ import com.hzs.common.domain.sale.order.SaOrderWares;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@EqualsAndHashCode(callSuper = true)
@Data
public class SaOrderWaresExt extends SaOrderWares {
@ -13,4 +15,9 @@ public class SaOrderWaresExt extends SaOrderWares {
*/
private String waresCode;
/**
* 复购区域分红
*/
private BigDecimal areaIncome;
}