xiaoyong931011
2021-12-17 7da58964755c5c97fb1bd1f31a11827ff698fa2b
src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
@@ -1,5 +1,9 @@
package cc.mrbird.febs.pay.service.impl;
import cc.mrbird.febs.blockchain.entity.MemberCoinAddressEntity;
import cc.mrbird.febs.blockchain.enumerates.CoinTypeEnum;
import cc.mrbird.febs.blockchain.mapper.MemberCoinAddressDao;
import cc.mrbird.febs.blockchain.service.Trc20Service;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
@@ -7,6 +11,7 @@
import cc.mrbird.febs.pay.model.AliPayPassbackModel;
import cc.mrbird.febs.pay.properties.AliPayProperties;
import cc.mrbird.febs.pay.service.IPayService;
import cc.mrbird.febs.rabbit.producer.UsdtUpdateProducer;
import cc.mrbird.febs.video.dto.VipBuyDto;
import cc.mrbird.febs.video.entity.DataDictionaryCustom;
import cc.mrbird.febs.video.entity.VideoMemberEntity;
@@ -42,12 +47,14 @@
    private AliPayProperties aliPayProperties;
    @Resource
    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Resource
    private VideoVipOrderInfoMapper videoVipOrderInfoMapper;
    @Resource
    private VideoMemberMapper videoMemberMapper;
    @Resource
    private MemberCoinAddressDao memberCoinAddressDao;
    @Resource
    private UsdtUpdateProducer usdtUpdateProducer;
    @Value("${spring.profiles.active}")
    private String active;
@@ -118,4 +125,29 @@
        orderInfo.setPayTraderNo(params.get("trade_no"));
        videoVipOrderInfoMapper.updateById(orderInfo);
    }
    @Override
    public String findUsdtAddress() {
        VideoMemberEntity loginUser = LoginUserUtil.getLoginUser();
        MemberCoinAddressEntity coinAddress = this.memberCoinAddressDao.selectAddressByMemberIdAndSymbol(loginUser.getId(), CoinTypeEnum.USDT.name());
        if (coinAddress == null) {
            Map<String, String> usdtMap = Trc20Service.createAddress();
            String address = usdtMap.get("address");
            String key = usdtMap.get("privateKey");
            // 发送新增的地址到监听集合
            usdtUpdateProducer.sendAddressMsg(address+","+"TRC20");
            coinAddress = new MemberCoinAddressEntity();
            coinAddress.setAddress(address);
            coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
            coinAddress.setMemberId(loginUser.getId());
            coinAddress.setPrivateKey(key);
            coinAddress.setSymbol(CoinTypeEnum.USDT.name());
            this.memberCoinAddressDao.insert(coinAddress);
            return address;
        }
        return coinAddress.getAddress();
    }
}