package cn.lili.event.impl;
|
|
|
import cn.lili.event.MemberWithdrawalEvent;
|
import cn.lili.modules.wallet.entity.dto.MemberWalletUpdateDTO;
|
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
|
import cn.lili.modules.wallet.entity.enums.DepositServiceTypeEnum;
|
import cn.lili.modules.wallet.entity.enums.WithdrawStatusEnum;
|
import cn.lili.modules.wallet.service.MemberWalletService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* 会员钱包创建
|
*
|
* @author Chopper
|
* @since 2020-07-03 11:20
|
*/
|
@Service
|
public class MemberWalletExecute implements MemberWithdrawalEvent {
|
|
@Autowired
|
private MemberWalletService memberWalletService;
|
|
@Override
|
public void memberWithdrawal(MemberWithdrawalMessage memberWithdrawalMessage) {
|
switch (WithdrawStatusEnum.valueOf(memberWithdrawalMessage.getStatus())) {
|
case VIA_AUDITING:
|
memberWalletService.withdrawal(memberWithdrawalMessage.getMemberWithdrawApplyId());
|
break;
|
case SUCCESS:
|
//提现成功扣减冻结金额
|
memberWalletService.reduceFrozen(
|
new MemberWalletUpdateDTO(memberWithdrawalMessage.getPrice(), memberWithdrawalMessage.getMemberId(), "提现成功,余额提现",
|
DepositServiceTypeEnum.WALLET_WITHDRAWAL.name()));
|
break;
|
case ERROR:
|
//需要从冻结金额扣减到余额
|
memberWalletService.increaseWithdrawal(new MemberWalletUpdateDTO(memberWithdrawalMessage.getPrice(),
|
memberWithdrawalMessage.getMemberId(), "第三方提现失败,提现金额解冻到余额", DepositServiceTypeEnum.WALLET_WITHDRAWAL.name()));
|
break;
|
case FAIL_AUDITING:
|
//需要从冻结金额扣减到余额
|
memberWalletService.increaseWithdrawal(new MemberWalletUpdateDTO(memberWithdrawalMessage.getPrice(),
|
memberWithdrawalMessage.getMemberId(), "审核拒绝,提现金额解冻到余额", DepositServiceTypeEnum.WALLET_WITHDRAWAL.name()));
|
break;
|
default:
|
break;
|
}
|
}
|
}
|