| | |
| | | package com.mzl.flower.service.impl.wallet; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.mzl.flower.constant.Constants; |
| | | import com.mzl.flower.dto.request.wallet.CreateWalletBillRecordDTO; |
| | | import com.mzl.flower.entity.payment.Transfer; |
| | | import com.mzl.flower.entity.payment.TransferDetail; |
| | | import com.mzl.flower.entity.wallet.WalletBillRecordDO; |
| | | import com.mzl.flower.entity.wallet.WalletDO; |
| | | import com.mzl.flower.mapper.payment.TransferDetailMapper; |
| | | import com.mzl.flower.mapper.payment.TransferMapper; |
| | | import com.mzl.flower.mapper.wallet.WalletBillRecordMapper; |
| | | import com.mzl.flower.mapper.wallet.WalletMapper; |
| | | import com.mzl.flower.service.wallet.WalletBillRecordService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.mzl.flower.service.wallet.WalletService; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class WalletBillRecordServiceImpl extends ServiceImpl<WalletBillRecordMapper, WalletBillRecordDO> implements WalletBillRecordService { |
| | | |
| | | @Resource |
| | | private TransferMapper transferMapper; |
| | | |
| | | @Resource |
| | | private TransferDetailMapper transferDetailMapper; |
| | | |
| | | @Resource |
| | | private WalletBillRecordMapper walletBillRecordMapper; |
| | | |
| | | @Resource |
| | | private WalletService walletService; |
| | | |
| | | @Resource |
| | | private WalletMapper walletMapper; |
| | | @Override |
| | | public void create(CreateWalletBillRecordDTO dto) { |
| | | |
| | | |
| | | } |
| | | |
| | | public void updateTransferStatus(String transferId) { |
| | | Transfer t = transferMapper.selectById(transferId); |
| | | if ("FINISHED".equals(t.getStatus())) { |
| | | WalletBillRecordDO walletBillRecordDO = walletBillRecordMapper.selectOne(new QueryWrapper<WalletBillRecordDO>().eq("transfer_id", transferId)); |
| | | if (walletBillRecordDO == null) { |
| | | return; |
| | | } |
| | | String transferDetailId = walletBillRecordDO.getTransferDetailId(); |
| | | TransferDetail td = transferDetailMapper.selectById(transferDetailId); |
| | | if (td == null) { |
| | | log.warn("未找到对应明细"); |
| | | return; |
| | | } |
| | | String dStatus = td.getStatus(); |
| | | if ("SUCCESS".equals(dStatus)) { |
| | | walletBillRecordDO.setTransferState(Constants.SETTLEMENT_STATUS.COMPLETED.name()); |
| | | walletBillRecordDO.update("sys"); |
| | | walletBillRecordMapper.updateById(walletBillRecordDO); |
| | | //更新钱包 |
| | | WalletDO walletDO = walletService.getBySupplierId(walletBillRecordDO.getWalletId()); |
| | | if(!ObjectUtils.isEmpty(walletDO)){ |
| | | //提现中金额:减少提现中金额 |
| | | walletDO.setWithdrawingAmount(walletDO.getWithdrawingAmount().subtract(walletBillRecordDO.getChangeAmount())); |
| | | //已提现金额:增加已提现金额 |
| | | walletDO.setWithdrawnAmount(walletDO.getWithdrawnAmount().add(walletBillRecordDO.getChangeAmount())); |
| | | walletMapper.updateById(walletDO); |
| | | } |
| | | |
| | | } else if ("FAIL".equals(dStatus)) { |
| | | walletBillRecordDO.setTransferState(Constants.SETTLEMENT_STATUS.FAILED.name()); |
| | | walletBillRecordDO.update("sys"); |
| | | walletBillRecordMapper.updateById(walletBillRecordDO); |
| | | WalletDO walletDO = walletService.getBySupplierId(walletBillRecordDO.getWalletId()); |
| | | if(!ObjectUtils.isEmpty(walletDO)){ |
| | | //提现中金额:减少提现中金额 |
| | | walletDO.setWithdrawingAmount(walletDO.getWithdrawingAmount().subtract(walletBillRecordDO.getChangeAmount())); |
| | | //可提现金额:增加可提现金额 |
| | | walletDO.setWithdrawableAmount(walletDO.getWithdrawableAmount().add(walletBillRecordDO.getChangeAmount())); |
| | | walletMapper.updateById(walletDO); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |