KKSU
2025-03-18 664184af3e070dee665ee736caffa0297804975f
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
@@ -22,6 +22,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
@@ -42,6 +43,7 @@
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void withdrawal(WithdrawalDto withdrawalDto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        MallMember mallMember = mallMemberService.getById(memberId);
@@ -59,9 +61,8 @@
        if (dic != null) {
            cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class);
        }
        DataDictionaryCustom withdrawalCnt = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MEMBER_WITHDRAWAL_CNT.getType(), DataDictionaryEnum.MEMBER_WITHDRAWAL_CNT.getCode());
        if (withdrawalDto.getAmount().compareTo(cashOutSettingVo.getMinCashOut()) < 0) {
            throw new FebsException("最小提现金额为"+withdrawalCnt.getValue()+"元");
            throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut()+"元");
        }
        String openId = mallMember.getOpenId();
@@ -79,13 +80,16 @@
        }
        walletService.reduce(withdrawalDto.getAmount(), memberId, "balance");
        String withdrawalNo = "TX."+MallUtils.getOrderNum();
//        String withdrawalNo = "TX_"+MallUtils.getOrderNum();
        MallMemberWithdraw withdraw = new MallMemberWithdraw();
        withdraw.setWithdrawNo(withdrawalNo);
//        withdraw.setWithdrawNo(withdrawalNo);
        withdraw.setMemberId(memberId);
        withdraw.setAmount(withdrawalDto.getAmount());
        withdraw.setStatus(1);
        this.baseMapper.insert(withdraw);
        String withdrawalNo = "TX_"+withdraw.getId().toString();
        withdraw.setWithdrawNo(withdrawalNo);
        this.baseMapper.updateById(withdraw);
        mallMemberService.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), withdrawalNo, null, null, null, 1, FlowTypeEnum.BALANCE.getValue());
    }