|
|
@@ -0,0 +1,63 @@
|
|
|
+package com.ydtech.modules.ttqf.xxx;
|
|
|
+
|
|
|
+
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.ydtech.modules.admin.constants.SwitchConfig;
|
|
|
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
|
|
|
+import com.ydtech.modules.admin.service.SysSwitchConfigService;
|
|
|
+import com.ydtech.modules.admin.service.SysUserBankCardService;
|
|
|
+import com.ydtech.modules.ttqf.dao.PartTtqfRecordMapper;
|
|
|
+import com.ydtech.modules.ttqf.entity.PartTtqfRecord;
|
|
|
+import com.ydtech.modules.ttqf.entity.vo.UserWithdrawal;
|
|
|
+import com.ydtech.modules.ttqf.service.TtqfService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class VirtualWithdrawal {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysSwitchConfigService sysSwitchConfigService;
|
|
|
+ @Autowired
|
|
|
+ private SysUserBankCardService sysUserBankCardService;
|
|
|
+ @Autowired
|
|
|
+ private TtqfService ttqfService;
|
|
|
+
|
|
|
+ @Async
|
|
|
+ // 虚拟提现 virtualWithdrawal
|
|
|
+ public void virtualWithdrawal(String userId, BigDecimal amount,String bankCard) {
|
|
|
+
|
|
|
+ if (sysSwitchConfigService.isEnabled(SwitchConfig.VIRTUAL_WITHDRAWAL.getCode())){
|
|
|
+ LambdaQueryWrapper<SysUserBankCard> queryWrapper = new LambdaQueryWrapper<>(SysUserBankCard.class);
|
|
|
+ queryWrapper.eq(SysUserBankCard::getUserId, userId);
|
|
|
+ queryWrapper.eq(SysUserBankCard::getIsDefault, 1);
|
|
|
+
|
|
|
+ SysUserBankCard one = sysUserBankCardService.getOne(queryWrapper);
|
|
|
+ virtualWithdrawal( userId, amount, one.getBankNumber());
|
|
|
+ }
|
|
|
+ SpringUtil.getBean(InitializeInternalWithdrawalId.class).initialize();
|
|
|
+
|
|
|
+ PartTtqfRecord record = new PartTtqfRecord();
|
|
|
+ record.setUserId(userId);
|
|
|
+ record.setBankCard(bankCard);
|
|
|
+ record.setFeeAmount(BigDecimal.ZERO);
|
|
|
+ record.setAmount(amount);
|
|
|
+ SpringUtil.getBean(PartTtqfRecordMapper.class).insert(record);
|
|
|
+
|
|
|
+ //调取 ttqf 平台提现到虚拟账户
|
|
|
+ String id = SpringUtil.getBean(RoundRobinService.class).getNextWithLua();
|
|
|
+ UserWithdrawal withdrawal = new UserWithdrawal();
|
|
|
+ withdrawal.setUserId(id);
|
|
|
+ withdrawal.setAmount(amount);
|
|
|
+ withdrawal.setBankNumber(bankCard);
|
|
|
+ ttqfService.userCashOut(withdrawal);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|