package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
|
import cc.mrbird.febs.common.enumerates.RunVipMoneyFlowTypeEnum;
|
import cc.mrbird.febs.common.enumerates.YesOrNoEnum;
|
import cc.mrbird.febs.common.utils.MallUtils;
|
import cc.mrbird.febs.mall.entity.MallMember;
|
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
|
import cc.mrbird.febs.mall.service.AsyncService;
|
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
|
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class AsyncServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements AsyncService {
|
|
private final IMallMoneyFlowService mallMoneyFlowService;
|
private final IApiMallMemberWalletService walletService;
|
@Override
|
public void releaseScore(BigDecimal V3, Long memberId) {
|
walletService.addScore(V3,memberId);
|
String orderNo = MallUtils.getOrderNum("HD");
|
mallMoneyFlowService.runVipMoneyFlowAdd(
|
memberId,
|
memberId,
|
orderNo,
|
FlowTypeEnum.SCORE.getValue(),
|
RunVipMoneyFlowTypeEnum.GET_SCORE.getValue(),
|
V3,
|
StrUtil.format(RunVipMoneyFlowTypeEnum.GET_SCORE.getDescription(),V3),
|
YesOrNoEnum.YES.getValue()
|
);
|
|
}
|
|
@Override
|
public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, Long memberId) {
|
//实际节点助力的碳币
|
BigDecimal multiply = amount.multiply(percent).setScale(2,RoundingMode.DOWN);
|
if(BigDecimal.ZERO.compareTo(multiply) >=0){
|
return;
|
}
|
walletService.addCommission(multiply,memberId);
|
String orderNo = MallUtils.getOrderNum("JD");
|
mallMoneyFlowService.runVipMoneyFlowAdd(
|
memberId,
|
memberId,
|
orderNo,
|
FlowTypeEnum.COMMISSION.getValue(),
|
RunVipMoneyFlowTypeEnum.NODE_COMMISSION.getValue(),
|
multiply,
|
StrUtil.format(RunVipMoneyFlowTypeEnum.NODE_COMMISSION.getDescription(),multiply),
|
YesOrNoEnum.YES.getValue()
|
);
|
|
}
|
}
|