|  |  | 
 |  |  | 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 | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private ContractOrderDao contractOrderDao; | 
 |  |  |     @Resource | 
 |  |  |     private AgentReturnDao agentReturnDao; | 
 |  |  |     @Resource | 
 |  |  |     private MemberWalletAgentDao memberWalletAgentDao; | 
 |  |  |     @Resource | 
 |  |  |     private MemberAccountMoneyChangeDao memberAccountMoneyChangeDao; | 
 |  |  |  | 
 |  |  |     @Test | 
 |  |  |     /*@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); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | } |