Commit d287b53b by fanjiaxin

分佣配置加入状态

parent 6ccfba22
Pipeline #71699 passed with stages
in 1 minute 17 seconds
......@@ -17,6 +17,7 @@ import com.ctrip.framework.apollo.spring.annotation.ApolloConfigChangeListener;
import com.ctrip.framework.apollo.spring.annotation.EnableAutoUpdateApolloConfig;
import com.ctrip.framework.apollo.spring.annotation.ValueMapping;
import com.netease.yanxuan.wx.store.sharer.biz.meta.enums.CommissionChangeOptTypeEnum;
import com.netease.yanxuan.wx.store.sharer.biz.meta.enums.CommissionConfigStateEnum;
import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.CommissionSharerBO;
import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.CommissionSharerProductBO;
import com.netease.yanxuan.wx.store.sharer.dal.mapper.SharerInfoMapper;
......@@ -143,7 +144,7 @@ public class DrmSharerConfig {
private void setSharerDefaultCommissionInfo(ConfigChange change, SharerInfo sharerInfo) {
// 如果存在推客配置分佣,不处理
BigDecimal sharerCommissionRatio = getSharerCommissionRatio(sharerInfo.getOpenId());
if(null != sharerCommissionRatio){
if (null != sharerCommissionRatio) {
return;
}
// 分佣比例为小数, 微信接口参数应当分佣比例*倍数 为整数
......@@ -289,6 +290,14 @@ public class DrmSharerConfig {
if (null == newCommissionSharerList) {
newCommissionSharerList = Collections.emptyList();
}
// 过滤禁用
oldCommissionSharerList = oldCommissionSharerList.stream()
.filter(item -> CommissionConfigStateEnum.ENABLED.getCode().equals(item.getState()))
.collect(Collectors.toList());
newCommissionSharerList = newCommissionSharerList.stream()
.filter(item -> CommissionConfigStateEnum.ENABLED.getCode().equals(item.getState()))
.collect(Collectors.toList());
// 将 newCommissionSharerList 转换为 Map,以减少流操作的开销
Map<String, CommissionSharerProductBO> newCommissionSharerMap = newCommissionSharerList.stream()
.collect(Collectors.toMap(this::getSharerProductCommissionMapKey, Function.identity()));
......@@ -356,7 +365,7 @@ public class DrmSharerConfig {
private BigDecimal getSharerOrDefaultCommissionRatio(String openId) {
// 返回推客分佣
BigDecimal sharerCommissionRatio = getSharerCommissionRatio(openId);
if(null != sharerCommissionRatio){
if (null != sharerCommissionRatio) {
return sharerCommissionRatio;
}
// 返回默认分佣金
......
package com.netease.yanxuan.wx.store.sharer.biz.meta.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @Description 分佣配置状态
* @Author fanjiaxin
* @Date 2025/3/3 13:58
*/
@Getter
@RequiredArgsConstructor
public enum CommissionConfigStateEnum {
ENABLED("1", "启用"),
DISABLED("0", "禁用");
private final String code;
private final String desc;
}
\ No newline at end of file
......@@ -21,5 +21,5 @@ public class CommissionSharerBO implements Serializable {
/**
* 分佣比例
*/
private BigDecimal CommissionRatio;
private BigDecimal commissionRatio;
}
......@@ -25,5 +25,9 @@ public class CommissionSharerProductBO implements Serializable {
/**
* 分佣比例
*/
private BigDecimal CommissionRatio;
private BigDecimal commissionRatio;
/**
* 状态,1启用,0禁用
*/
private String state;
}
......@@ -94,13 +94,13 @@ public class ProductServiceImpl implements IProductService {
}
// 推客分佣比例
BigDecimal commissionRatio = drmSharerConfig.getDefaultCommissionRatio();
log.info("默认商品佣金比例:{}", commissionRatio);
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("微信返回商品佣金比例:{}", 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);
......@@ -120,7 +120,8 @@ public class ProductServiceImpl implements IProductService {
if (null != price && null != commissionRatio && null != serviceRatio) {
commission = price.multiply(serviceRatio).multiply(commissionRatio)
.setScale(2, RoundingMode.HALF_UP);
log.info("计算佣金,价格:{},服务费率:{},推客分佣比例:{},佣金:{}", price, serviceRatio, commissionRatio, commission);
log.info("商品:{},计算佣金,价格:{},服务费率:{},推客分佣比例:{},佣金:{}",
item.getProduct_id(), price, serviceRatio, commissionRatio, commission);
}
listVO.setCommission(commission);
listVO.setShopAppid(item.getShop_appid());
......
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