peternameyakj
2025-01-06 4c82733d79b03ee1d5304398b0598d826e6fd0e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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;
    }
 
}