package com.xcong.excoin; 
 | 
  
 | 
import cn.hutool.core.collection.CollUtil; 
 | 
import jnr.ffi.annotations.IgnoreError; 
 | 
  
 | 
import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; 
 | 
import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; 
 | 
import com.xcong.excoin.modules.contract.dao.ContractOrderDao; 
 | 
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; 
 | 
import com.xcong.excoin.modules.contract.service.impl.OrderWebsocketServiceImpl; 
 | 
import com.xcong.excoin.modules.member.dao.AgentReturnDao; 
 | 
import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao; 
 | 
import com.xcong.excoin.modules.member.entity.AgentReturnEntity; 
 | 
import com.xcong.excoin.modules.member.entity.MemberWalletAgentEntity; 
 | 
import com.xcong.excoin.utils.SpringContextHolder; 
 | 
import com.xcong.excoin.utils.ThreadPoolUtils; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.junit.jupiter.api.Test; 
 | 
import org.springframework.boot.test.context.SpringBootTest; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import javax.annotation.Resource; 
 | 
import java.math.BigDecimal; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @author wzy 
 | 
 * @date 2020-06-30 
 | 
 **/ 
 | 
@Slf4j 
 | 
@SpringBootTest 
 | 
public class ReturnMoneyTest { 
 | 
  
 | 
    @Resource 
 | 
    private ContractOrderDao contractOrderDao; 
 | 
    @Resource 
 | 
    private AgentReturnDao agentReturnDao; 
 | 
    @Resource 
 | 
    private MemberWalletAgentDao memberWalletAgentDao; 
 | 
    @Resource 
 | 
    private MemberAccountMoneyChangeDao memberAccountMoneyChangeDao; 
 | 
  
 | 
    /*@Test 
 | 
    public void returnTest() { 
 | 
        ContractOrderEntity entity = contractOrderDao.selectById(667L); 
 | 
        OrderWebsocketServiceImpl orderWebsocketService = SpringContextHolder.getBean(OrderWebsocketServiceImpl.class); 
 | 
        orderWebsocketService.calYj(19L, new BigDecimal(4.18004236), entity, AgentReturnEntity.ORDER_TYPE_OPEN); 
 | 
    }*/ 
 | 
  
 | 
  
 | 
    @Test 
 | 
    public void moneyReturnTest() { 
 | 
        List<AgentReturnEntity> list = agentReturnDao.selectAllNeedMoneyReturn(); 
 | 
        log.info("返佣条数:{}", list.size()); 
 | 
        if (CollUtil.isNotEmpty(list)) { 
 | 
            for (AgentReturnEntity agentReturn : list) { 
 | 
                BigDecimal needReturn = agentReturn.getReturnAmount(); 
 | 
                Long refererId = agentReturn.getRefererId(); 
 | 
                MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(refererId, "USDT"); 
 | 
                if (walletAgent == null) { 
 | 
                    continue; 
 | 
                } 
 | 
  
 | 
                log.info("用户ID:{}, 当前余额:{},总金额:{}, 返佣金额:{}", refererId, walletAgent.getAvailableBalance().toPlainString(), walletAgent.getTotalBalance().toPlainString(), needReturn); 
 | 
                walletAgent.setAvailableBalance(walletAgent.getAvailableBalance().add(needReturn)); 
 | 
                walletAgent.setTotalBalance(walletAgent.getTotalBalance().add(needReturn)); 
 | 
  
 | 
  
 | 
                MemberAccountMoneyChange moneyChange = new MemberAccountMoneyChange(); 
 | 
                moneyChange.setAmount(needReturn); 
 | 
                moneyChange.setContent("佣金到账"); 
 | 
                moneyChange.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT); 
 | 
                moneyChange.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); 
 | 
                moneyChange.setMemberId(refererId); 
 | 
                moneyChange.setSymbol("USDT"); 
 | 
  
 | 
//                // 更新代理钱包金额 
 | 
                memberWalletAgentDao.updateById(walletAgent); 
 | 
//                // 更新返佣明细中状态 
 | 
                agentReturnDao.updateAgentReturnStatusByRefererId(AgentReturnEntity.IS_RETURN_Y, refererId); 
 | 
//                // 插入财务流水记录 
 | 
                memberAccountMoneyChangeDao.insert(moneyChange); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |