perf(payment): 优化支付宝提现流程并缓存佣金比例
parent
ef36122845
commit
43f11e5db2
|
@ -215,7 +215,7 @@ public class AliPayController extends BaseController {
|
||||||
return R.fail(HttpStatus.SHOW_ERROR_MSG,"提现金额最小为0.1");
|
return R.fail(HttpStatus.SHOW_ERROR_MSG,"提现金额最小为0.1");
|
||||||
}
|
}
|
||||||
|
|
||||||
return aliPayService.fetch(amount.toString());
|
return aliPayService.fetch(amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
package com.mcwl.common.enums;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author:ChenYan
|
|
||||||
* @Project:McWl
|
|
||||||
* @Package:com.mcwl.pay.domain
|
|
||||||
* @Filename:PaymentStatus
|
|
||||||
* @Description TODO
|
|
||||||
* @Date:2025/1/3 17:24
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public enum CommissionRationEnum {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 佣金配给邀请者用户
|
|
||||||
*/
|
|
||||||
COMMISSION_RATION_INVITER_USER("CommissionRationInviterUser"),
|
|
||||||
/**
|
|
||||||
* 佣金配给商家用户
|
|
||||||
*/
|
|
||||||
COMMISSION_RATION_MERCHANT("CommissionRationMerchant");
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
}
|
|
|
@ -2,11 +2,13 @@ package com.mcwl.myInvitation.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.mcwl.common.core.redis.RedisCache;
|
||||||
import com.mcwl.myInvitation.domain.CommissionRatio;
|
import com.mcwl.myInvitation.domain.CommissionRatio;
|
||||||
import com.mcwl.myInvitation.domain.vo.CommissionRatioVo;
|
import com.mcwl.myInvitation.domain.vo.CommissionRatioVo;
|
||||||
import com.mcwl.myInvitation.mapper.CommissionRatioMapper;
|
import com.mcwl.myInvitation.mapper.CommissionRatioMapper;
|
||||||
import com.mcwl.myInvitation.service.CommissionRatioService;
|
import com.mcwl.myInvitation.service.CommissionRatioService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -20,6 +22,8 @@ import java.util.Objects;
|
||||||
public class CommissionRatioServiceImpl extends ServiceImpl<CommissionRatioMapper, CommissionRatio> implements CommissionRatioService {
|
public class CommissionRatioServiceImpl extends ServiceImpl<CommissionRatioMapper, CommissionRatio> implements CommissionRatioService {
|
||||||
|
|
||||||
|
|
||||||
|
private final RedisCache redisCache;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<CommissionRatioVo> ratioList() {
|
public List<CommissionRatioVo> ratioList() {
|
||||||
List<CommissionRatio> list = baseMapper.selectList(null);
|
List<CommissionRatio> list = baseMapper.selectList(null);
|
||||||
|
@ -41,7 +45,10 @@ public class CommissionRatioServiceImpl extends ServiceImpl<CommissionRatioMappe
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
commissionRatio.setRatio(ratio);
|
commissionRatio.setRatio(ratio);
|
||||||
baseMapper.insert(commissionRatio);
|
baseMapper.updateById(commissionRatio);
|
||||||
|
|
||||||
|
redisCache.deleteObject("CommissionRationInviterUser");
|
||||||
|
redisCache.deleteObject("CommissionRationMerchant");
|
||||||
|
|
||||||
return this.getCommissionRatioVo(commissionRatio);
|
return this.getCommissionRatioVo(commissionRatio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,13 +127,13 @@ public class AliPayServiceImpl implements AliPayService {
|
||||||
Long productId = orderTradeDto.getProductId();
|
Long productId = orderTradeDto.getProductId();
|
||||||
|
|
||||||
if (!Optional.ofNullable(productId).isPresent()) {
|
if (!Optional.ofNullable(productId).isPresent()) {
|
||||||
throw new ServiceException("memberLevelId不能为空");
|
throw new ServiceException("memberLevelId不能为空", HttpStatus.SHOW_ERROR_MSG);
|
||||||
}
|
}
|
||||||
|
|
||||||
MemberLevel memberLevel = memberLevelService.getById(productId);
|
MemberLevel memberLevel = memberLevelService.getById(productId);
|
||||||
|
|
||||||
if (!Optional.ofNullable(memberLevel).isPresent()) {
|
if (!Optional.ofNullable(memberLevel).isPresent()) {
|
||||||
throw new ServiceException("memberLevel不存在");
|
throw new ServiceException("memberLevel不存在", HttpStatus.SHOW_ERROR_MSG);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置orderTrade信息
|
// 设置orderTrade信息
|
||||||
|
@ -349,10 +349,10 @@ public class AliPayServiceImpl implements AliPayService {
|
||||||
|
|
||||||
String content = String.format("账户余额不足:用户%s提现%s", sysUser.getNickName(), amount);
|
String content = String.format("账户余额不足:用户%s提现%s", sysUser.getNickName(), amount);
|
||||||
MailUtil.send(tos, "魔创未来", content, false);
|
MailUtil.send(tos, "魔创未来", content, false);
|
||||||
throw new ServiceException("网络连接出错,请稍后再试");
|
throw new ServiceException("网络连接出错,请稍后再试", HttpStatus.SHOW_ERROR_MSG);
|
||||||
}
|
}
|
||||||
System.out.println("用户" + SecurityUtils.getLoginUser().getUser().getNickName() + "提现失败:" + response.getSubMsg());
|
System.out.println("用户" + SecurityUtils.getLoginUser().getUser().getNickName() + "提现失败:" + response.getSubMsg());
|
||||||
throw new ServiceException("提现失败");
|
throw new ServiceException("提现失败", HttpStatus.SHOW_ERROR_MSG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -51,6 +51,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
@ -114,6 +115,19 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
|
||||||
.expireAfterAccess(3, TimeUnit.MINUTES)
|
.expireAfterAccess(3, TimeUnit.MINUTES)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void init() {
|
||||||
|
CommissionRatio commissionRatio1 = commissionRatioService.lambdaQuery()
|
||||||
|
.eq(CommissionRatio::getType, 0)
|
||||||
|
.one();
|
||||||
|
CommissionRatio commissionRatio2 = commissionRatioService.lambdaQuery()
|
||||||
|
.eq(CommissionRatio::getType, 1)
|
||||||
|
.one();
|
||||||
|
redisCache.setCacheObject(CommissionRationEnum.COMMISSION_RATION_INVITER_USER.getName(), commissionRatio1);
|
||||||
|
redisCache.setCacheObject(CommissionRationEnum.COMMISSION_RATION_MERCHANT.getName(), commissionRatio2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void productHandler(ProductRes productRes) {
|
public void productHandler(ProductRes productRes) {
|
||||||
|
@ -676,6 +690,7 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
|
||||||
.eq(CommissionRatio::getType, 1)
|
.eq(CommissionRatio::getType, 1)
|
||||||
.one();
|
.one();
|
||||||
CommissionRationMerchant = commissionRatio.getRatio().toString();
|
CommissionRationMerchant = commissionRatio.getRatio().toString();
|
||||||
|
redisCache.setCacheObject(CommissionRationEnum.COMMISSION_RATION_MERCHANT.getName(), CommissionRationMerchant);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 佣金配给邀请者用户比例
|
// 佣金配给邀请者用户比例
|
||||||
|
@ -685,6 +700,7 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
|
||||||
.eq(CommissionRatio::getType, 0)
|
.eq(CommissionRatio::getType, 0)
|
||||||
.one();
|
.one();
|
||||||
commissionRationInviterUser = commissionRatio.getRatio().toString();
|
commissionRationInviterUser = commissionRatio.getRatio().toString();
|
||||||
|
redisCache.setCacheObject(CommissionRationEnum.COMMISSION_RATION_INVITER_USER.getName(), commissionRationInviterUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
Double rationMerchant = redisCache.getCacheObject(CommissionRationMerchant);
|
Double rationMerchant = redisCache.getCacheObject(CommissionRationMerchant);
|
||||||
|
|
Loading…
Reference in New Issue