package project.data.task; import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.exception.BusinessException; import kernel.util.Arith; import kernel.util.ThreadUtils; import project.data.DataService; import project.data.model.Realtime; import project.user.UserDataService; import project.wallet.Wallet; import project.wallet.WalletExtend; import project.wallet.WalletService; /** * 用户每日统计钱包持有金额 * */ public class UserDataHoldingMoneyJob { private static final Logger logger = LoggerFactory.getLogger(UserDataHoldingMoneyJob.class); private WalletService walletService; private UserDataService userDataService; private DataService dataService; public void taskJob() { try { Map party_amount = new HashMap(); /** * usdt资产 */ List wallets = walletService.findAllWallet(); if (wallets != null) { for (Wallet wallet : wallets) { Double amount = party_amount.get(wallet.getPartyId().toString()); if (amount == null) { amount = 0D; } if (amount != 0 || wallet.getMoney() != 0) { party_amount.put(wallet.getPartyId().toString(), Arith.add(amount, wallet.getMoney())); } } } /** * 各类币种资产 */ List walletExtends = walletService.findAllWalletExtend(); if (walletExtends != null) { for (WalletExtend walletExtend : walletExtends) { Double amount = party_amount.get(walletExtend.getPartyId().toString()); if (amount == null) { amount = 0D; } if (amount != 0 || walletExtend.getAmount() != 0) { List realtime_list = this.dataService.realtime(walletExtend.getWallettype()); Realtime realtime = null; if (realtime_list.size() > 0) { realtime = realtime_list.get(0); } else { throw new BusinessException("系统错误,请稍后重试"); } party_amount.put(walletExtend.getPartyId().toString(), Arith.add(amount, Arith.mul(realtime.getClose(), walletExtend.getAmount()))); } } } for(String partyId:party_amount.keySet()) { userDataService.saveHodingMoneyHandle(partyId, party_amount.get(partyId)==null?0d:party_amount.get(partyId)); } } catch (Throwable e) { logger.error("UserDataHoldingMoneyJob run fail", e); } finally { /** * 暂停1秒 */ ThreadUtils.sleep(1000); } } public void setWalletService(WalletService walletService) { this.walletService = walletService; } public void setUserDataService(UserDataService userDataService) { this.userDataService = userDataService; } public void setDataService(DataService dataService) { this.dataService = dataService; } }