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 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() ); } }