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 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); } } } }