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; ...@@ -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.EnableAutoUpdateApolloConfig;
import com.ctrip.framework.apollo.spring.annotation.ValueMapping; 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.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.CommissionSharerBO;
import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.CommissionSharerProductBO; import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.CommissionSharerProductBO;
import com.netease.yanxuan.wx.store.sharer.dal.mapper.SharerInfoMapper; import com.netease.yanxuan.wx.store.sharer.dal.mapper.SharerInfoMapper;
...@@ -143,7 +144,7 @@ public class DrmSharerConfig { ...@@ -143,7 +144,7 @@ public class DrmSharerConfig {
private void setSharerDefaultCommissionInfo(ConfigChange change, SharerInfo sharerInfo) { private void setSharerDefaultCommissionInfo(ConfigChange change, SharerInfo sharerInfo) {
// 如果存在推客配置分佣,不处理 // 如果存在推客配置分佣,不处理
BigDecimal sharerCommissionRatio = getSharerCommissionRatio(sharerInfo.getOpenId()); BigDecimal sharerCommissionRatio = getSharerCommissionRatio(sharerInfo.getOpenId());
if(null != sharerCommissionRatio){ if (null != sharerCommissionRatio) {
return; return;
} }
// 分佣比例为小数, 微信接口参数应当分佣比例*倍数 为整数 // 分佣比例为小数, 微信接口参数应当分佣比例*倍数 为整数
...@@ -289,6 +290,14 @@ public class DrmSharerConfig { ...@@ -289,6 +290,14 @@ public class DrmSharerConfig {
if (null == newCommissionSharerList) { if (null == newCommissionSharerList) {
newCommissionSharerList = Collections.emptyList(); 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,以减少流操作的开销 // 将 newCommissionSharerList 转换为 Map,以减少流操作的开销
Map<String, CommissionSharerProductBO> newCommissionSharerMap = newCommissionSharerList.stream() Map<String, CommissionSharerProductBO> newCommissionSharerMap = newCommissionSharerList.stream()
.collect(Collectors.toMap(this::getSharerProductCommissionMapKey, Function.identity())); .collect(Collectors.toMap(this::getSharerProductCommissionMapKey, Function.identity()));
...@@ -356,7 +365,7 @@ public class DrmSharerConfig { ...@@ -356,7 +365,7 @@ public class DrmSharerConfig {
private BigDecimal getSharerOrDefaultCommissionRatio(String openId) { private BigDecimal getSharerOrDefaultCommissionRatio(String openId) {
// 返回推客分佣 // 返回推客分佣
BigDecimal sharerCommissionRatio = getSharerCommissionRatio(openId); BigDecimal sharerCommissionRatio = getSharerCommissionRatio(openId);
if(null != sharerCommissionRatio){ if (null != sharerCommissionRatio) {
return 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 { ...@@ -21,5 +21,5 @@ public class CommissionSharerBO implements Serializable {
/** /**
* 分佣比例 * 分佣比例
*/ */
private BigDecimal CommissionRatio; private BigDecimal commissionRatio;
} }
...@@ -25,5 +25,9 @@ public class CommissionSharerProductBO implements Serializable { ...@@ -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 { ...@@ -94,13 +94,13 @@ public class ProductServiceImpl implements IProductService {
} }
// 推客分佣比例 // 推客分佣比例
BigDecimal commissionRatio = drmSharerConfig.getDefaultCommissionRatio(); BigDecimal commissionRatio = drmSharerConfig.getDefaultCommissionRatio();
log.info("默认商品佣金比例:{}", commissionRatio); log.info("商品:{},默认佣金比例:{}", item.getProduct_id(), commissionRatio);
if (null != loginUserInfo && StringUtils.isNotBlank(loginUserInfo.getOpenId())) { if (null != loginUserInfo && StringUtils.isNotBlank(loginUserInfo.getOpenId())) {
WeChatSharerListVO sharerListVO = weChatShopSharerListRequest.handle(loginUserInfo.getOpenId(), "", 1); WeChatSharerListVO sharerListVO = weChatShopSharerListRequest.handle(loginUserInfo.getOpenId(), "", 1);
if (null != sharerListVO && !CollectionUtils.isEmpty(sharerListVO.getSharer_info_list())) { if (null != sharerListVO && !CollectionUtils.isEmpty(sharerListVO.getSharer_info_list())) {
WeChatSharerInfoVO sharerInfoVO = sharerListVO.getSharer_info_list().get(0); WeChatSharerInfoVO sharerInfoVO = sharerListVO.getSharer_info_list().get(0);
if (null != sharerInfoVO && null != sharerInfoVO.getCommission_ratio()) { 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); BigDecimal wechatMultiplier = new BigDecimal(WeChatApi.WECHAT_COMMISSION_RATIO_MULTIPLIER);
commissionRatio = sharerInfoVO.getCommission_ratio().divide(wechatMultiplier); commissionRatio = sharerInfoVO.getCommission_ratio().divide(wechatMultiplier);
...@@ -120,7 +120,8 @@ public class ProductServiceImpl implements IProductService { ...@@ -120,7 +120,8 @@ public class ProductServiceImpl implements IProductService {
if (null != price && null != commissionRatio && null != serviceRatio) { if (null != price && null != commissionRatio && null != serviceRatio) {
commission = price.multiply(serviceRatio).multiply(commissionRatio) commission = price.multiply(serviceRatio).multiply(commissionRatio)
.setScale(2, RoundingMode.HALF_UP); .setScale(2, RoundingMode.HALF_UP);
log.info("计算佣金,价格:{},服务费率:{},推客分佣比例:{},佣金:{}", price, serviceRatio, commissionRatio, commission); log.info("商品:{},计算佣金,价格:{},服务费率:{},推客分佣比例:{},佣金:{}",
item.getProduct_id(), price, serviceRatio, commissionRatio, commission);
} }
listVO.setCommission(commission); listVO.setCommission(commission);
listVO.setShopAppid(item.getShop_appid()); 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