Commit d0ec777a by fanjiaxin

分佣配置加入状态

parent d287b53b
Pipeline #71702 passed with stages
in 1 minute 3 seconds
......@@ -92,21 +92,6 @@ public class ProductServiceImpl implements IProductService {
price = priceOpt.get().divide(new BigDecimal("100"));
listVO.setPrice(price.setScale(2, RoundingMode.HALF_UP));
}
// 推客分佣比例
BigDecimal commissionRatio = drmSharerConfig.getDefaultCommissionRatio();
log.info("商品:{},默认佣金比例:{}", item.getProduct_id(), commissionRatio);
if (null != loginUserInfo && StringUtils.isNotBlank(loginUserInfo.getOpenId())) {
WeChatSharerListVO sharerListVO = weChatShopSharerListRequest.handle(loginUserInfo.getOpenId(), "", 1);
if (null != sharerListVO && !CollectionUtils.isEmpty(sharerListVO.getSharer_info_list())) {
WeChatSharerInfoVO sharerInfoVO = sharerListVO.getSharer_info_list().get(0);
if (null != sharerInfoVO && null != sharerInfoVO.getCommission_ratio()) {
log.info("商品:{},微信佣金比例:{}", item.getProduct_id(), sharerInfoVO.getCommission_ratio());
// 微信分佣比例倍数
BigDecimal wechatMultiplier = new BigDecimal(WeChatApi.WECHAT_COMMISSION_RATIO_MULTIPLIER);
commissionRatio = sharerInfoVO.getCommission_ratio().divide(wechatMultiplier);
}
}
}
WeChatPromoteProductDetailVO.WeChatPromoteProductVO.WeChatPromoteProductCommissionInfoVO commissionInfo
= product.getCommission_info();
// 服务费率
......@@ -117,6 +102,8 @@ public class ProductServiceImpl implements IProductService {
}
// 佣金=商品价格*服务费率*推客分佣比例,四舍五入保留小数点后两位
BigDecimal commission = BigDecimal.ZERO;
// 推客分佣比例
BigDecimal commissionRatio = getSharerCommissionRatio(loginUserInfo, item.getProduct_id());
if (null != price && null != commissionRatio && null != serviceRatio) {
commission = price.multiply(serviceRatio).multiply(commissionRatio)
.setScale(2, RoundingMode.HALF_UP);
......@@ -190,4 +177,45 @@ public class ProductServiceImpl implements IProductService {
}
return detailVO;
}
/**
* 获取推客分佣比例
*/
private BigDecimal getSharerCommissionRatio(LoginUserInfo loginUserInfo, String productId) {
// 默认佣金比例
BigDecimal commissionRatio = drmSharerConfig.getDefaultCommissionRatio();
log.info("商品:{},默认佣金比例:{}", productId, commissionRatio);
if (null != loginUserInfo) {
// 微信配置分佣比例
BigDecimal weChatCommissionRatio = null;
// 微信分佣比例倍数
BigDecimal wechatMultiplier = new BigDecimal(WeChatApi.WECHAT_COMMISSION_RATIO_MULTIPLIER);
// 获取商品纬度分佣比例
if (StringUtils.isNotBlank(loginUserInfo.getSharerAppId())) {
WeChatGetSharerProductCommissionVO sharerProductCommissionVO =
weChatShopGetSharerProductCommissionRequest.handle(loginUserInfo.getSharerAppId(),
Long.valueOf(productId));
if (sharerProductCommissionVO.getIs_set()) {
weChatCommissionRatio = new BigDecimal(sharerProductCommissionVO.getCommission_ratio());
log.info("商品:{},微信商品纬度佣金比例:{}", productId, weChatCommissionRatio);
}
}
// 获取推客纬度分佣比例
if (null == weChatCommissionRatio && StringUtils.isNotBlank(loginUserInfo.getOpenId())) {
WeChatSharerListVO sharerListVO = weChatShopSharerListRequest.handle(loginUserInfo.getOpenId(), "", 1);
if (null != sharerListVO && !CollectionUtils.isEmpty(sharerListVO.getSharer_info_list())) {
WeChatSharerInfoVO sharerInfoVO = sharerListVO.getSharer_info_list().get(0);
if (null != sharerInfoVO && null != sharerInfoVO.getCommission_ratio()) {
weChatCommissionRatio = sharerInfoVO.getCommission_ratio();
log.info("商品:{},微信推客纬度佣金比例:{}", productId, weChatCommissionRatio);
}
}
}
if (null != weChatCommissionRatio) {
commissionRatio = weChatCommissionRatio.divide(wechatMultiplier)
.setScale(2, RoundingMode.HALF_UP);
}
}
return commissionRatio;
}
}
......@@ -13,7 +13,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service;
/**
* @Description 微信凭证请求
* @Description 获取机构绑定的推客信息
* @Author fanjiaxin
* @Date 2025/3/11 17:33
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment