Commit 7b535c89 by fanjiaxin

代码初始化

parent 51c8d319
Pipeline #71429 passed with stages
in 1 minute 7 seconds
...@@ -6,14 +6,381 @@ ...@@ -6,14 +6,381 @@
*/ */
package com.netease.yanxuan.wx.store.sharer.biz.config; package com.netease.yanxuan.wx.store.sharer.biz.config;
import com.alibaba.fastjson.JSON;
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
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.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder;
import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo;
import com.netease.yanxuan.wx.store.sharer.biz.meta.enums.CommissionChangeOptTypeEnum;
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.SharerProductCommissionRecordMapper;
import com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerProductCommissionRecord;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSetSharerCommissionRequest;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSetSharerProductCommissionRequest;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSharerListRequest;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerInfoVO;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerListVO;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 推客配置apo * 推客配置apo
*
* @author 刘运星 (liuyunxing01@corp.netease.com) * @author 刘运星 (liuyunxing01@corp.netease.com)
*/ */
@Slf4j
@Data
@Component
@RequiredArgsConstructor
@EnableAutoUpdateApolloConfig("sharer-config") @EnableAutoUpdateApolloConfig("sharer-config")
public class DrmSharerConfig { public class DrmSharerConfig {
private final SharerProductCommissionRecordMapper sharerProdutcCommissionRecordMapper;
private final WeChatSharerListRequest weChatSharerListRequest;
private final WeChatSetSharerCommissionRequest weChatSetSharerCommissionRequest;
private final WeChatSetSharerProductCommissionRequest weChatSetSharerProductCommissionRequest;
/**
* 默认分佣比例
*/
@Value("${commissionratio.default:10}")
private BigDecimal defaultCommissionRatio;
/**
* 用户分佣比例
*/
@ValueMapping("${commissionratio.sharer:}")
private List<CommissionSharerBO> commissionSharerList;
/**
* 用户商品分佣比例
*/
@ValueMapping("${commissionratio.sharerproduct:}")
private List<CommissionSharerProductBO> commissionSharerProductList;
/**
* 监听
*/
@ApolloConfigChangeListener("sharer-config")
public void onChange(ConfigChangeEvent changeEvent) {
log.info("ProductCommissionConfig:onChange, changeEvent = {}", JSON.toJSONString(changeEvent));
// 默认分佣比例
String defaultCommissionratio = "application.commissionratio.default";
if (changeEvent.isChanged(defaultCommissionratio)) {
ConfigChange change = changeEvent.getChange(defaultCommissionratio);
defaultCommissionratioChange(change);
}
// 用户分佣比例
String sharerCommissionratio = "application.commissionratio.sharer";
if (changeEvent.isChanged(sharerCommissionratio)) {
ConfigChange change = changeEvent.getChange(sharerCommissionratio);
sharerCommissionRatioChange(change);
}
// 用户商品分佣比例
String sharerproductCommissionratio = "application.commissionratio.sharerproduct";
if (changeEvent.isChanged(sharerproductCommissionratio)) {
ConfigChange change = changeEvent.getChange(sharerproductCommissionratio);
sharerProductCommissionRatioChange(change);
}
}
/**
* 默认分佣比例变更
*/
private void defaultCommissionratioChange(ConfigChange change) {
if (StringUtils.isBlank(change.getNewValue()) || change.getNewValue().equals(change.getOldValue())) {
return;
}
// 获取推客绑定的所有用户
String nextKey = null;
int pageSize = 10;
while (true) {
WeChatSharerListVO sharerListVO = weChatSharerListRequest.handle(null, nextKey, pageSize);
if (sharerListVO == null) {
break; // 如果返回值为空,直接终止循环
}
nextKey = sharerListVO.getNext_key();
if (!CollectionUtils.isEmpty(sharerListVO.getSharer_info_list())) {
for (WeChatSharerInfoVO sharerInfoVO : sharerListVO.getSharer_info_list()) {
// 处理每个 sharerInfoVO
setSharerDefaultCommissionInfo(change, sharerInfoVO);
}
}
if (CollectionUtils.isEmpty(sharerListVO.getSharer_info_list()) || sharerListVO.getSharer_info_list().size() < pageSize) {
break; // 如果列表为空或小于 pageSize,终止循环
}
}
}
/**
* 设置推客的的分佣类型和比例信息
*/
private void setSharerDefaultCommissionInfo(ConfigChange change, WeChatSharerInfoVO sharerInfoVO) {
// 分佣比例为小数, 微信接口参数应当分佣比例*1000 为整数
BigDecimal commissionRatio = new BigDecimal(change.getNewValue()).divide(BigDecimal.valueOf(1000));
// 设置推客分佣比例
boolean isSuccess = false;
try {
// 设置推客分佣比例
weChatSetSharerCommissionRequest.handle(sharerInfoVO.getSharer_appid(), commissionRatio.toPlainString());
isSuccess = true;
} catch (Exception e) {
log.error("设置推客的的分佣类型和比例信息失败", e);
} finally {
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null != loginUserInfo) {
Date now = new Date();
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(sharerInfoVO.getSharer_appid());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.DEFAULT_CHANGE.getCode());
record.setOptInfo(change.getOldValue() + "&" + change.getNewValue());
record.setOptTime(now);
record.setOptStatus(isSuccess ? "1" : "2");
record.setExtInfo("");
record.setCreateTime(now);
record.setUpdateTime(now);
sharerProdutcCommissionRecordMapper.insert(record);
} else {
log.error("用户登录状态过期,保存记录失败");
}
}
}
/**
* 用户分佣比例变更
*/
private void sharerCommissionRatioChange(ConfigChange change) {
List<CommissionSharerBO> oldCommissionSharerList = JSON.parseArray(change.getOldValue(), CommissionSharerBO.class);
if (null == oldCommissionSharerList) {
oldCommissionSharerList = new ArrayList<>();
}
List<CommissionSharerBO> newCommissionSharerList = JSON.parseArray(change.getNewValue(), CommissionSharerBO.class);
if (null == newCommissionSharerList) {
newCommissionSharerList = Collections.emptyList();
}
// 将 newCommissionSharerList 转换为 Map,以减少流操作的开销
Map<String, CommissionSharerBO> newCommissionSharerMap = newCommissionSharerList.stream()
.collect(Collectors.toMap(CommissionSharerBO::getOpenId, Function.identity()));
for (CommissionSharerBO oldInfo : oldCommissionSharerList) {
CommissionSharerBO newInfo = newCommissionSharerMap.get(oldInfo.getOpenId());
if (newInfo != null) {
// 修改
if (newInfo.getCommissionRatio().compareTo(oldInfo.getCommissionRatio()) != 0) {
setSharerCommissionInfo(newInfo, oldInfo);
}
} else {
// 删除
deleteSharerCommissionInfo(oldInfo);
}
}
for (CommissionSharerBO newInfo : newCommissionSharerList) {
// 新增
if (oldCommissionSharerList.stream().noneMatch(item -> item.getOpenId().equals(newInfo.getOpenId()))) {
setSharerCommissionInfo(newInfo, null);
}
}
}
/**
* 设置推客的的分佣类型和比例信息
*/
private void setSharerCommissionInfo(CommissionSharerBO newCommissionSharer,
CommissionSharerBO oldCommissionSharer) {
// 分佣比例为小数, 微信接口参数应当分佣比例*1000 为整数
BigDecimal commissionRatio = newCommissionSharer.getCommissionRatio().divide(BigDecimal.valueOf(1000));
// 设置推客分佣比例
boolean isSuccess = false;
try {
// 设置推客分佣比例
weChatSetSharerCommissionRequest.handle(newCommissionSharer.getSharerId(), commissionRatio.toPlainString());
isSuccess = true;
} catch (Exception e) {
log.error("设置推客的的分佣类型和比例信息失败", e);
} finally {
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null != loginUserInfo) {
Date now = new Date();
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(newCommissionSharer.getSharerId());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.SET.getCode());
record.setOptInfo(oldCommissionSharer.getCommissionRatio().toPlainString()
+ "&" + newCommissionSharer.getCommissionRatio().toPlainString());
record.setOptTime(now);
record.setOptStatus(isSuccess ? "1" : "2");
record.setExtInfo("");
record.setCreateTime(now);
record.setUpdateTime(now);
sharerProdutcCommissionRecordMapper.insert(record);
} else {
log.error("用户登录状态过期,保存记录失败");
}
}
}
/**
* 删除推客的的分佣类型和比例信息
*/
private void deleteSharerCommissionInfo(CommissionSharerBO oldCommissionSharer) {
// 分佣比例为小数, 微信接口参数应当分佣比例*1000 为整数
BigDecimal commissionRatio = defaultCommissionRatio.divide(BigDecimal.valueOf(1000));
// 设置推客分佣比例
boolean isSuccess = false;
try {
// 设置推客分佣比例
weChatSetSharerCommissionRequest.handle(oldCommissionSharer.getSharerId(), commissionRatio.toPlainString());
isSuccess = true;
} catch (Exception e) {
log.error("设置推客的的分佣类型和比例信息失败", e);
} finally {
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null != loginUserInfo) {
Date now = new Date();
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(oldCommissionSharer.getSharerId());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.UNSET.getCode());
record.setOptInfo(oldCommissionSharer.getCommissionRatio().toPlainString() + "&" + defaultCommissionRatio.toPlainString());
record.setOptTime(now);
record.setOptStatus(isSuccess ? "1" : "2");
record.setExtInfo("");
record.setCreateTime(now);
record.setUpdateTime(now);
sharerProdutcCommissionRecordMapper.insert(record);
} else {
log.error("用户登录状态过期,保存记录失败");
}
}
}
/**
* 用户商品分佣比例变更
*/
private void sharerProductCommissionRatioChange(ConfigChange change) {
List<CommissionSharerProductBO> oldCommissionSharerList = JSON.parseArray(change.getOldValue(), CommissionSharerProductBO.class);
if (null == oldCommissionSharerList) {
oldCommissionSharerList = new ArrayList<>();
}
List<CommissionSharerProductBO> newCommissionSharerList = JSON.parseArray(change.getNewValue(), CommissionSharerProductBO.class);
if (null == newCommissionSharerList) {
newCommissionSharerList = Collections.emptyList();
}
// 将 newCommissionSharerList 转换为 Map,以减少流操作的开销
Map<String, CommissionSharerProductBO> newCommissionSharerMap = newCommissionSharerList.stream()
.collect(Collectors.toMap(this::getSharerProductCommissionMapKey, Function.identity()));
for (CommissionSharerProductBO oldInfo : oldCommissionSharerList) {
CommissionSharerProductBO newInfo = newCommissionSharerMap.get(getSharerProductCommissionMapKey(oldInfo));
if (newInfo != null) {
// 修改
if (newInfo.getCommissionRatio().compareTo(oldInfo.getCommissionRatio()) != 0) {
setSharerProductCommissionInfo(newInfo, oldInfo);
}
} else {
// 删除
deleteSharerProductCommissionInfo(oldInfo);
}
}
for (CommissionSharerProductBO newInfo : newCommissionSharerList) {
// 新增
if (oldCommissionSharerList.stream().noneMatch(item -> item.getOpenId().equals(newInfo.getOpenId())
&& item.getProductId().equals(newInfo.getProductId()))) {
setSharerProductCommissionInfo(newInfo, null);
}
}
}
private String getSharerProductCommissionMapKey(CommissionSharerProductBO bo) {
return bo.getOpenId() + "&" + bo.getProductId();
}
/**
* 设置推客的的分佣类型和比例信息
*/
private void setSharerProductCommissionInfo(CommissionSharerProductBO newBo,
CommissionSharerProductBO oldBo) {
// 分佣比例为小数, 微信接口参数应当分佣比例*1000 为整数
BigDecimal commissionRatio = newBo.getCommissionRatio().divide(BigDecimal.valueOf(1000));
// 设置推客分佣比例
boolean isSuccess = false;
try {
// 设置推客分佣比例
weChatSetSharerProductCommissionRequest.handle(newBo.getSharerId(), newBo.getProductId(), commissionRatio.toPlainString());
isSuccess = true;
} catch (Exception e) {
log.error("设置推客的的分佣类型和比例信息失败", e);
} finally {
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null != loginUserInfo) {
Date now = new Date();
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(newBo.getSharerId());
record.setProductId(newBo.getProductId().toString());
record.setOptType(CommissionChangeOptTypeEnum.SET.getCode());
record.setOptInfo(oldBo.getCommissionRatio().toPlainString()
+ "&" + newBo.getCommissionRatio().toPlainString());
record.setOptTime(now);
record.setOptStatus(isSuccess ? "1" : "2");
record.setExtInfo("");
record.setCreateTime(now);
record.setUpdateTime(now);
sharerProdutcCommissionRecordMapper.insert(record);
} else {
log.error("用户登录状态过期,保存记录失败");
}
}
}
/**
* 删除推客的的分佣类型和比例信息
*/
private void deleteSharerProductCommissionInfo(CommissionSharerProductBO oldBo) {
// 设置推客分佣比例
boolean isSuccess = false;
try {
// 设置推客分佣比例
weChatSetSharerProductCommissionRequest.handle(oldBo.getSharerId(), oldBo.getProductId(), null);
isSuccess = true;
} catch (Exception e) {
log.error("设置推客的的分佣类型和比例信息失败", e);
} finally {
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null != loginUserInfo) {
Date now = new Date();
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(oldBo.getSharerId());
record.setProductId(oldBo.getProductId().toString());
record.setOptType(CommissionChangeOptTypeEnum.UNSET.getCode());
record.setOptInfo(oldBo.getCommissionRatio().toPlainString() + "&");
record.setOptTime(now);
record.setOptStatus(isSuccess ? "1" : "2");
record.setExtInfo("");
record.setCreateTime(now);
record.setUpdateTime(now);
sharerProdutcCommissionRecordMapper.insert(record);
} else {
log.error("用户登录状态过期,保存记录失败");
}
}
}
} }
\ No newline at end of file
package com.netease.yanxuan.wx.store.sharer.biz.config;
import com.alibaba.fastjson.JSON;
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
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.core.LoginUserContextHolder;
import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo;
import com.netease.yanxuan.wx.store.sharer.biz.meta.enums.CommissionChangeOptTypeEnum;
import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.ProductCommissionSharerBO;
import com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.ProductCommissionSharerProductBO;
import com.netease.yanxuan.wx.store.sharer.dal.mapper.SharerProductCommissionRecordMapper;
import com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerProductCommissionRecord;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description 商品分佣金配置
* @Author fanjiaxin
* @Date 2025/3/10 17:26
*/
@Slf4j
@Data
@Component
@RequiredArgsConstructor
@EnableAutoUpdateApolloConfig
public class ProductCommissionConfig {
private final SharerProductCommissionRecordMapper sharerProdutcCommissionRecordMapper;
/**
* 默认分佣比例
*/
@Value("${application.commissionratio.default:10}")
private BigDecimal defaultCommissionRatio;
/**
* 用户分佣比例
*/
@ValueMapping("${application.commissionratio.sharer:}")
private ProductCommissionSharerBO productCommissionSharerBO;
/**
* 用户商品分佣比例
*/
@ValueMapping("${application.commissionratio.sharerproduct:}")
private ProductCommissionSharerProductBO productCommissionSharerProductBO;
/**
* 监听
*/
@ApolloConfigChangeListener("sv-channel.config")
public void onChange(ConfigChangeEvent changeEvent) {
log.info("ProductCommissionConfig:onChange, changeEvent = {}", JSON.toJSONString(changeEvent));
// 默认分佣比例
String defaultCommissionratio = "application.commissionratio.default";
if (changeEvent.isChanged(defaultCommissionratio)) {
ConfigChange change = changeEvent.getChange(defaultCommissionratio);
defaultCommissionratioChange(change);
}
// 用户分佣比例
String sharerCommissionratio = "application.commissionratio.sharer";
if (changeEvent.isChanged(sharerCommissionratio)) {
ConfigChange change = changeEvent.getChange(sharerCommissionratio);
sharerCommissionratioChange(change);
}
// 用户商品分佣比例
String sharerproductCommissionratio = "application.commissionratio.sharerproduct";
if (changeEvent.isChanged(sharerproductCommissionratio)) {
ConfigChange change = changeEvent.getChange(sharerproductCommissionratio);
sharerproductCommissionratioChange(change);
}
}
/**
* 默认分佣比例变更
*/
private void defaultCommissionratioChange(ConfigChange change){
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null == loginUserInfo) {
log.error("用户登录状态过期");
return;
}
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(loginUserInfo.getSharerAppId());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.DEFAULT_CHANGE.getCode());
record.setOptInfo(change.getOldValue() + "&" + change.getNewValue());
record.setOptTime(new Date());
record.setOptStatus("1");
record.setExtInfo("");
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
sharerProdutcCommissionRecordMapper.insert(record);
}
/**
* 用户分佣比例变更
*/
private void sharerCommissionratioChange(ConfigChange change){
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null == loginUserInfo) {
log.error("用户登录状态过期");
return;
}
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(loginUserInfo.getSharerAppId());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.SET.getCode());
record.setOptInfo(change.getOldValue() + "&" + change.getNewValue());
record.setOptTime(new Date());
record.setOptStatus("1");
record.setExtInfo("");
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
sharerProdutcCommissionRecordMapper.insert(record);
}
/**
* 用户商品分佣比例变更
*/
private void sharerproductCommissionratioChange(ConfigChange change){
LoginUserInfo loginUserInfo = LoginUserContextHolder.get();
if (null == loginUserInfo) {
log.error("用户登录状态过期");
return;
}
SharerProductCommissionRecord record = new SharerProductCommissionRecord();
record.setOpenId(loginUserInfo.getOpenId());
record.setSharerAppid(loginUserInfo.getSharerAppId());
record.setProductId("");
record.setOptType(CommissionChangeOptTypeEnum.SET.getCode());
record.setOptInfo(change.getOldValue() + "&" + change.getNewValue());
record.setOptTime(new Date());
record.setOptStatus("1");
record.setExtInfo("");
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
sharerProdutcCommissionRecordMapper.insert(record);
}
}
\ No newline at end of file
...@@ -11,10 +11,14 @@ import java.math.BigDecimal; ...@@ -11,10 +11,14 @@ import java.math.BigDecimal;
* @Date 2025/3/9 13:44 * @Date 2025/3/9 13:44
*/ */
@Data @Data
public class ProductCommissionSharerBO implements Serializable { public class CommissionSharerBO implements Serializable {
private static final long serialVersionUID = -1482990976577986435L; private static final long serialVersionUID = -1482990976577986435L;
/** /**
* 用户ID
*/
private String openId;
/**
* 推客ID * 推客ID
*/ */
private String sharerId; private String sharerId;
......
...@@ -11,10 +11,14 @@ import java.math.BigDecimal; ...@@ -11,10 +11,14 @@ import java.math.BigDecimal;
* @Date 2025/3/9 13:44 * @Date 2025/3/9 13:44
*/ */
@Data @Data
public class ProductCommissionSharerProductBO implements Serializable { public class CommissionSharerProductBO implements Serializable {
private static final long serialVersionUID = -1482990976577986435L; private static final long serialVersionUID = -1482990976577986435L;
/** /**
* 用户ID
*/
private String openId;
/**
* 推客ID * 推客ID
*/ */
private String sharerId; private String sharerId;
......
...@@ -3,7 +3,7 @@ package com.netease.yanxuan.wx.store.sharer.biz.service.impl; ...@@ -3,7 +3,7 @@ package com.netease.yanxuan.wx.store.sharer.biz.service.impl;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.netease.yanxuan.wx.store.sharer.biz.config.ProductCommissionConfig; import com.netease.yanxuan.wx.store.sharer.biz.config.DrmSharerConfig;
import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder; import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder;
import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserHelper; import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserHelper;
import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo; import com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo;
...@@ -18,6 +18,7 @@ import com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerInfo; ...@@ -18,6 +18,7 @@ import com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerInfo;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSharerListRequest; import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSharerListRequest;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSharerRegisterBindRequest; import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatSharerRegisterBindRequest;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatUserInfoRequest; import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatUserInfoRequest;
import com.netease.yanxuan.wx.store.sharer.integration.meta.enums.CommissionTypeEnum;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerInfoVO; import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerInfoVO;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerListVO; import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerListVO;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerRegisterBindVO; import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatSharerRegisterBindVO;
...@@ -42,7 +43,7 @@ import java.util.Date; ...@@ -42,7 +43,7 @@ import java.util.Date;
public class UserServiceImpl implements IUserService { public class UserServiceImpl implements IUserService {
private final SharerInfoMapper sharerInfoMapper; private final SharerInfoMapper sharerInfoMapper;
private final ProductCommissionConfig productCommissionConfig; private final DrmSharerConfig drmSharerConfig;
private final LoginUserHelper jwtHelper; private final LoginUserHelper jwtHelper;
private final WeChatUserInfoRequest weChatUserRequest; private final WeChatUserInfoRequest weChatUserRequest;
private final WeChatSharerRegisterBindRequest weChatSharerRegisterBindRequest; private final WeChatSharerRegisterBindRequest weChatSharerRegisterBindRequest;
...@@ -63,8 +64,8 @@ public class UserServiceImpl implements IUserService { ...@@ -63,8 +64,8 @@ public class UserServiceImpl implements IUserService {
sharerInfo = new SharerInfo(); sharerInfo = new SharerInfo();
sharerInfo.setOpenId(userInfoVO.getOpenid()); sharerInfo.setOpenId(userInfoVO.getOpenid());
// 默认佣金比例 // 默认佣金比例
sharerInfo.setCommissionRatio(new BigDecimal(10)); sharerInfo.setCommissionRatio(drmSharerConfig.getDefaultCommissionRatio());
sharerInfo.setCommissionType("1"); sharerInfo.setCommissionType(CommissionTypeEnum.PLATFORM.getCode());
sharerInfo.setCreateTime(now); sharerInfo.setCreateTime(now);
sharerInfo.setUpdateTime(now); sharerInfo.setUpdateTime(now);
sharerInfoMapper.insert(sharerInfo); sharerInfoMapper.insert(sharerInfo);
...@@ -97,8 +98,8 @@ public class UserServiceImpl implements IUserService { ...@@ -97,8 +98,8 @@ public class UserServiceImpl implements IUserService {
sharerInfo = new SharerInfo(); sharerInfo = new SharerInfo();
sharerInfo.setOpenId(loginUserInfo.getOpenId()); sharerInfo.setOpenId(loginUserInfo.getOpenId());
// 默认佣金比例 // 默认佣金比例
sharerInfo.setCommissionRatio(new BigDecimal(10)); sharerInfo.setCommissionRatio(drmSharerConfig.getDefaultCommissionRatio());
sharerInfo.setCommissionType("1"); sharerInfo.setCommissionType(CommissionTypeEnum.PLATFORM.getCode());
sharerInfo.setCreateTime(now); sharerInfo.setCreateTime(now);
sharerInfo.setUpdateTime(now); sharerInfo.setUpdateTime(now);
sharerInfoMapper.insert(sharerInfo); sharerInfoMapper.insert(sharerInfo);
...@@ -114,8 +115,8 @@ public class UserServiceImpl implements IUserService { ...@@ -114,8 +115,8 @@ public class UserServiceImpl implements IUserService {
result.setSharerAppId(sharerInfoVO.getSharer_appid()); result.setSharerAppId(sharerInfoVO.getSharer_appid());
sharerInfo.setSharerAppid(sharerInfoVO.getSharer_appid()); sharerInfo.setSharerAppid(sharerInfoVO.getSharer_appid());
sharerInfo.setBindTime(new Date(sharerInfoVO.getBind_time())); sharerInfo.setBindTime(new Date(sharerInfoVO.getBind_time()));
sharerInfo.setCommissionRatio(new BigDecimal(10)); sharerInfo.setCommissionRatio(sharerInfoVO.getCommission_ratio());
sharerInfo.setCommissionType("1"); sharerInfo.setCommissionType(sharerInfoVO.getCommission_type().toString());
sharerInfo.setUpdateTime(now); sharerInfo.setUpdateTime(now);
sharerInfoMapper.updateById(sharerInfo); sharerInfoMapper.updateById(sharerInfo);
} }
...@@ -144,7 +145,7 @@ public class UserServiceImpl implements IUserService { ...@@ -144,7 +145,7 @@ public class UserServiceImpl implements IUserService {
@Override @Override
public UserCommissionRatioVO getCommissionRatioDefault() { public UserCommissionRatioVO getCommissionRatioDefault() {
BigDecimal defaultCommissionRatio = productCommissionConfig.getDefaultCommissionRatio(); BigDecimal defaultCommissionRatio = drmSharerConfig.getDefaultCommissionRatio();
return UserCommissionRatioVO.builder().commissionRatio(defaultCommissionRatio).build(); return UserCommissionRatioVO.builder().commissionRatio(defaultCommissionRatio).build();
} }
......
...@@ -2,6 +2,7 @@ package com.netease.yanxuan.wx.store.sharer.integration.handler; ...@@ -2,6 +2,7 @@ package com.netease.yanxuan.wx.store.sharer.integration.handler;
import com.netease.yanxuan.wx.store.sharer.common.exception.BizException; import com.netease.yanxuan.wx.store.sharer.common.exception.BizException;
import com.netease.yanxuan.wx.store.sharer.common.handler.RestTemplateClient; import com.netease.yanxuan.wx.store.sharer.common.handler.RestTemplateClient;
import com.netease.yanxuan.wx.store.sharer.integration.core.WeChatContextHolder;
import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCoreVO; import com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCoreVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -18,9 +19,11 @@ import org.springframework.stereotype.Service; ...@@ -18,9 +19,11 @@ import org.springframework.stereotype.Service;
@RequiredArgsConstructor @RequiredArgsConstructor
public class WeChatRestTemplateHandler { public class WeChatRestTemplateHandler {
private final RestTemplateClient restTemplateClient; private final RestTemplateClient restTemplateClient;
private final WeChatContextHolder weChatContextHolder;
public <T, R extends WeChatCoreVO> R execute(String url, HttpMethod method, T params, Class<R> resType) { public <T, R extends WeChatCoreVO> R execute(String url, HttpMethod method, T params, Class<R> resType) {
R result = restTemplateClient.execute(url, method, params, resType); String accessToken = weChatContextHolder.getAccessToken();
R result = restTemplateClient.execute(url + "?access_token=" + accessToken, method, params, resType);
if (!"0".equals(result.getErrcode())) { if (!"0".equals(result.getErrcode())) {
throw new BizException("调用微信接口失败," + result.getErrmsg()); throw new BizException("调用微信接口失败," + result.getErrmsg());
} }
......
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