VirtualWithdrawal.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.ydtech.modules.ttqf.xxx;
  2. import cn.hutool.extra.spring.SpringUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.ydtech.modules.admin.constants.SwitchConfig;
  5. import com.ydtech.modules.admin.model.po.SysUserBankCard;
  6. import com.ydtech.modules.admin.service.SysSwitchConfigService;
  7. import com.ydtech.modules.admin.service.SysUserBankCardService;
  8. import com.ydtech.modules.ttqf.dao.PartTtqfRecordMapper;
  9. import com.ydtech.modules.ttqf.entity.PartTtqfRecord;
  10. import com.ydtech.modules.ttqf.entity.vo.UserWithdrawal;
  11. import com.ydtech.modules.ttqf.service.TtqfService;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.scheduling.annotation.Async;
  14. import org.springframework.stereotype.Component;
  15. import java.math.BigDecimal;
  16. @Component
  17. public class VirtualWithdrawal {
  18. @Autowired
  19. private SysSwitchConfigService sysSwitchConfigService;
  20. @Autowired
  21. private SysUserBankCardService sysUserBankCardService;
  22. @Autowired
  23. private TtqfService ttqfService;
  24. @Async
  25. // 虚拟提现 virtualWithdrawal
  26. public void virtualWithdrawal(String userId, BigDecimal amount,String bankCard) {
  27. if (sysSwitchConfigService.isEnabled(SwitchConfig.VIRTUAL_WITHDRAWAL.getCode())){
  28. LambdaQueryWrapper<SysUserBankCard> queryWrapper = new LambdaQueryWrapper<>(SysUserBankCard.class);
  29. queryWrapper.eq(SysUserBankCard::getUserId, userId);
  30. queryWrapper.eq(SysUserBankCard::getIsDefault, 1);
  31. SysUserBankCard one = sysUserBankCardService.getOne(queryWrapper);
  32. virtualWithdrawal( userId, amount, one.getBankNumber());
  33. }
  34. SpringUtil.getBean(InitializeInternalWithdrawalId.class).initialize();
  35. PartTtqfRecord record = new PartTtqfRecord();
  36. record.setUserId(userId);
  37. record.setBankCard(bankCard);
  38. record.setFeeAmount(BigDecimal.ZERO);
  39. record.setAmount(amount);
  40. SpringUtil.getBean(PartTtqfRecordMapper.class).insert(record);
  41. //调取 ttqf 平台提现到虚拟账户
  42. String id = SpringUtil.getBean(RoundRobinService.class).getNextWithLua();
  43. UserWithdrawal withdrawal = new UserWithdrawal();
  44. withdrawal.setUserId(id);
  45. withdrawal.setAmount(amount);
  46. withdrawal.setBankNumber(bankCard);
  47. ttqfService.userCashOut(withdrawal);
  48. }
  49. }