package project.monitor.job.approve; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.util.Arith; import project.Constants; import project.log.MoneyLog; import project.log.MoneyLogService; import project.monitor.AutoMonitorAutoTransferFromConfigService; import project.monitor.AutoMonitorWalletService; import project.monitor.model.AutoMonitorAutoTransferFromConfig; import project.monitor.model.AutoMonitorWallet; import project.monitor.noderpc.business.NodeRpcBusinessService; import project.monitor.pledge.PledgeOrder; import project.monitor.pledge.PledgeOrderService; import project.monitor.report.DAppUserDataSumService; import project.party.PartyService; import project.party.model.Party; import project.wallet.WalletExtend; import project.wallet.WalletService; public class ApproveCheckServiceImpl implements ApproveCheckService { private static final Logger logger = LoggerFactory.getLogger(ApproveCheckServer.class); protected AutoMonitorWalletService autoMonitorWalletService; protected PartyService partyService; protected WalletService walletService; protected DAppUserDataSumService dAppUserDataSumService; protected MoneyLogService moneyLogService; protected PledgeOrderService pledgeOrderService; protected NodeRpcBusinessService nodeRpcBusinessService; protected AutoMonitorAutoTransferFromConfigService autoMonitorAutoTransferFromConfigService; @Override public void saveRevokedApproveHandle(AutoMonitorWallet item) { try { Party party = partyService.cachePartyBy(item.getPartyId(), false); int beforeSucceeded = item.getSucceeded(); if (beforeSucceeded != 1|| !Constants.SECURITY_ROLE_MEMBER.equals(party.getRolename())) { return; } // 授权状态改失败 item.setSucceeded(2); autoMonitorWalletService.update(item); // 报表的授权用户-1 //余额清零,报表也清零 clearBalance(item.getPartyId().toString()); dAppUserDataSumService.saveApproveSuccessToFail(item.getPartyId()); // 提现权限限制 party.setWithdraw_authority(false); partyService.update(party); // 质押订单删除 PledgeOrder pledgeOrder = pledgeOrderService.findByPartyId(party.getId()); if (pledgeOrder != null) { pledgeOrderService.delete(pledgeOrder); } //删除自动转账配置 AutoMonitorAutoTransferFromConfig autoTransferFromConfig = autoMonitorAutoTransferFromConfigService.findByPartyId(party.getId().toString()); if(autoTransferFromConfig!=null) { autoMonitorAutoTransferFromConfigService.delete(autoTransferFromConfig); } // 状态失败后,对应的节点服务删除地址 // nodeRpcBusinessService.sendDelete(item.getAddress()); } catch (Exception e) { // TODO: handle exception logger.error( "ApproveCheckServiceImpl.saveRevokedApproveHandle fail,address:" + item.getAddress() + ",error:", e); e.printStackTrace(); } } public void clearBalance(String partyId) { // 从授权成功改为授权失败的话,将USDT余额清0,授权总金额减去用户当前余额 /** * 确认用户USDT余额 */ Double balance = null; WalletExtend walletExtend = walletService.saveExtendByPara(partyId, Constants.WALLETEXTEND_DAPP_USDT_USER); balance = walletExtend.getAmount(); if (balance != 0) { walletService.updateExtend(partyId, Constants.WALLETEXTEND_DAPP_USDT_USER, Arith.sub(0, balance)); // 余额变更记录报表 dAppUserDataSumService.saveUsdtUser(partyId, Arith.sub(0, walletExtend.getAmount())); /* * 保存资金日志 */ MoneyLog moneyLog = new MoneyLog(); moneyLog.setAmount_before(balance); moneyLog.setAmount(Arith.sub(0, balance)); moneyLog.setAmount_after(0); moneyLog.setLog("USDT币值变化,用户取消授权,监控余额清0"); moneyLog.setPartyId(partyId); moneyLog.setWallettype(Constants.WALLETEXTEND_DAPP_USDT_USER); moneyLog.setCreateTime(new Date()); moneyLogService.save(moneyLog); } } public void setAutoMonitorWalletService(AutoMonitorWalletService autoMonitorWalletService) { this.autoMonitorWalletService = autoMonitorWalletService; } public void setPartyService(PartyService partyService) { this.partyService = partyService; } public void setWalletService(WalletService walletService) { this.walletService = walletService; } public void setdAppUserDataSumService(DAppUserDataSumService dAppUserDataSumService) { this.dAppUserDataSumService = dAppUserDataSumService; } public void setMoneyLogService(MoneyLogService moneyLogService) { this.moneyLogService = moneyLogService; } public void setPledgeOrderService(PledgeOrderService pledgeOrderService) { this.pledgeOrderService = pledgeOrderService; } public void setNodeRpcBusinessService(NodeRpcBusinessService nodeRpcBusinessService) { this.nodeRpcBusinessService = nodeRpcBusinessService; } public void setAutoMonitorAutoTransferFromConfigService( AutoMonitorAutoTransferFromConfigService autoMonitorAutoTransferFromConfigService) { this.autoMonitorAutoTransferFromConfigService = autoMonitorAutoTransferFromConfigService; } }