|
@@ -56,6 +56,7 @@ import vip.xiaonuo.biz.modular.rechargerecord.service.BizRechargeRecordService;
|
|
|
import vip.xiaonuo.common.util.CommonCryptogramUtil;
|
|
|
import vip.xiaonuo.common.util.CommonWxUtil;
|
|
|
import vip.xiaonuo.common.wx.WxPayConfig;
|
|
|
+import vip.xiaonuo.dev.api.DevConfigApi;
|
|
|
|
|
|
import java.io.*;
|
|
|
import java.math.BigDecimal;
|
|
@@ -91,6 +92,8 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
|
|
|
private BizRecommendRecordService bizRecommendRecordService;
|
|
|
@Resource(name = "loginUserApi")
|
|
|
private SaBaseLoginUserApi loginUserApi;
|
|
|
+ @Resource
|
|
|
+ private DevConfigApi devConfigApi;
|
|
|
|
|
|
|
|
|
|
|
@@ -185,28 +188,10 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
|
|
|
bizRechargeRecord.setCouponNum(bizRechargePlanConfig.getCouponNum());
|
|
|
|
|
|
//计算返点金额
|
|
|
- if (ObjectUtil.isNotEmpty(bizUser.getReferralUser())) {
|
|
|
- //查询推荐人信息
|
|
|
- List<cn.hutool.json.JSONObject> roleList = loginUserApi.getRoleListByUserId(bizUser.getReferralUser());
|
|
|
- List<String> roleCodeList = roleList.stream().map(jsonObject -> jsonObject.getStr("code")).collect(Collectors.toList());
|
|
|
- log.info("推荐人角色编码集合:"+roleCodeList);
|
|
|
- if(ObjectUtil.isNotEmpty(roleCodeList)){
|
|
|
- if(StringUtils.equals(roleCodeList.get(0),"YK8PsRXAdf")){
|
|
|
- //店员角色
|
|
|
- //查询当日推荐人推荐人数
|
|
|
- BigDecimal rebate = bizRechargePlanConfig.getRebateRatio().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal rebateAmount = bizRechargeRecordAddParam.getRechargeAmount().multiply(rebate);
|
|
|
- bizRechargeRecord.setRebateAmount(rebateAmount);
|
|
|
- bizRechargeRecord.setRebateRatio(bizRechargePlanConfig.getRebateRatio());
|
|
|
- }else if(StringUtils.equals(roleCodeList.get(0),"vVA3owyWwx")){
|
|
|
- //用户角色
|
|
|
- BigDecimal rebate = bizRechargePlanConfig.getRebateUserRatio().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal rebateAmount = bizRechargeRecordAddParam.getRechargeAmount().multiply(rebate);
|
|
|
- bizRechargeRecord.setRebateAmount(rebateAmount);
|
|
|
- bizRechargeRecord.setRebateRatio(bizRechargePlanConfig.getRebateUserRatio());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ bizRechargeRecord = getBizRechargeRecord(bizUser,bizRechargeRecord,bizRechargeRecordAddParam);
|
|
|
+ }else{
|
|
|
+ //计算返点金额
|
|
|
+ bizRechargeRecord = getBizRechargeRecord(bizUser,bizRechargeRecord,bizRechargeRecordAddParam);
|
|
|
}
|
|
|
String openId = commonWxUtil.getOpenId(bizRechargeRecordAddParam.getCode(), wxPayConfig.getGetOpenIdUrl(), wxPayConfig.getAppId(), wxPayConfig.getAppSecret());
|
|
|
if (ObjectUtil.isEmpty(openId)) {
|
|
@@ -270,6 +255,32 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
|
|
|
return resultMap;
|
|
|
}
|
|
|
|
|
|
+ public BizRechargeRecord getBizRechargeRecord(BizUser bizUser,BizRechargeRecord bizRechargeRecord,BizRechargeRecordAddParam bizRechargeRecordAddParam){
|
|
|
+ if (ObjectUtil.isNotEmpty(bizUser.getReferralUser())) {
|
|
|
+ //查询推荐人信息
|
|
|
+ List<cn.hutool.json.JSONObject> roleList = loginUserApi.getRoleListByUserId(bizUser.getReferralUser());
|
|
|
+ List<String> roleCodeList = roleList.stream().map(jsonObject -> jsonObject.getStr("code")).collect(Collectors.toList());
|
|
|
+ log.info("推荐人角色编码集合:"+roleCodeList);
|
|
|
+ if(ObjectUtil.isNotEmpty(roleCodeList)){
|
|
|
+ if(StringUtils.equals(roleCodeList.get(0),"YK8PsRXAdf")){
|
|
|
+ //店员角色
|
|
|
+ //查询当日推荐人推荐人数
|
|
|
+ BigDecimal rebate = new BigDecimal(devConfigApi.getValueByKey("SNOWY_REBATE_RATIO")).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal rebateAmount = bizRechargeRecordAddParam.getRechargeAmount().multiply(rebate);
|
|
|
+ bizRechargeRecord.setRebateAmount(rebateAmount);
|
|
|
+ bizRechargeRecord.setRebateRatio(new BigDecimal(devConfigApi.getValueByKey("SNOWY_REBATE_RATIO")));
|
|
|
+ }else if(StringUtils.equals(roleCodeList.get(0),"vVA3owyWwx")){
|
|
|
+ //用户角色
|
|
|
+ BigDecimal rebate = new BigDecimal(devConfigApi.getValueByKey("SNOWY_USER_REBATE_RATIO")).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal rebateAmount = bizRechargeRecordAddParam.getRechargeAmount().multiply(rebate);
|
|
|
+ bizRechargeRecord.setRebateAmount(rebateAmount);
|
|
|
+ bizRechargeRecord.setRebateRatio(new BigDecimal(devConfigApi.getValueByKey("SNOWY_USER_REBATE_RATIO")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return bizRechargeRecord;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Map<String, Object> retryPayment(BizRechargePay bizRechargePay) {
|