zj
2025-06-25 7f45e436fe6d33784356f660ac328f72c00733fb
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
package project.monitor.internal;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
import kernel.web.ApplicationUtil;
import project.Constants;
import project.monitor.AutoMonitorAutoTransferFromConfigService;
import project.monitor.model.AutoMonitorAutoTransferFromConfig;
import project.party.PartyService;
import project.party.model.Party;
import project.party.model.UserRecom;
import project.party.recom.UserRecomService;
 
public class AutoMonitorAutoTransferFromConfigServiceImpl implements AutoMonitorAutoTransferFromConfigService {
 
    private PartyService partyService;
    
    private UserRecomService userRecomService;
    
    private volatile Map<String, AutoMonitorAutoTransferFromConfig> cache = new ConcurrentHashMap<String, AutoMonitorAutoTransferFromConfig>();
 
    public void init() {
        List<AutoMonitorAutoTransferFromConfig> all = getAll();
        for (AutoMonitorAutoTransferFromConfig entity : all) {
            cache.put(entity.getPartyId(), entity);
        }
    }
 
    @Override
    public List<AutoMonitorAutoTransferFromConfig> getAll() {
        return ApplicationUtil.executeSelect(AutoMonitorAutoTransferFromConfig.class);
    }
 
    public List<AutoMonitorAutoTransferFromConfig> cacheAll() {
        return new ArrayList<AutoMonitorAutoTransferFromConfig>(cache.values());
    }
 
    public Map<String, AutoMonitorAutoTransferFromConfig> cacheAllMap() {
        return new HashMap<String, AutoMonitorAutoTransferFromConfig>(cache);
    }
 
    @Override
    public void save(AutoMonitorAutoTransferFromConfig entity) {
        ApplicationUtil.executeInsert(entity);
        cache.put(entity.getPartyId(), entity);
        
    }
 
    @Override
    public void update(AutoMonitorAutoTransferFromConfig entity) {
        ApplicationUtil.executeUpdate(entity);
        cache.put(entity.getPartyId(), entity);
    }
 
    public void delete(AutoMonitorAutoTransferFromConfig entity) {
        ApplicationUtil.executeDelete(entity);
        cache.remove(entity.getPartyId());
    }
 
    @Override
    public AutoMonitorAutoTransferFromConfig findById(String id) {
        return ApplicationUtil.executeGet(id,AutoMonitorAutoTransferFromConfig.class);
    }
 
    public AutoMonitorAutoTransferFromConfig findByPartyId(String partyId) {
        List<AutoMonitorAutoTransferFromConfig> list=ApplicationUtil.executeSelect(AutoMonitorAutoTransferFromConfig.class,"WHERE PARTY_ID=?",new Object[] {partyId});
        return list.size()<=0?null:list.get(0);
    }
 
    /**
     * 取到 ETH 增加时是否自动归集的配置
     * 
     * @param partyId
     * @return
     */
    @Override
    public AutoMonitorAutoTransferFromConfig getConfig(String partyId) {
        List<UserRecom> parents = userRecomService.getParents(partyId.toString());
        List<AutoMonitorAutoTransferFromConfig> configs = this.cacheAll();
 
        /**
         * 该用户直接配置
         */
        for (int i = 0; i < configs.size(); i++) {
            AutoMonitorAutoTransferFromConfig config = configs.get(i);
            if (partyId.equals(config.getPartyId())) {
                /*
                 * 找到返回
                 */
                return config;
            }
        }
 
        /**
         * 取到代理
         */
        for (int i = 0; i < parents.size(); i++) {
            Party party = partyService.cachePartyBy(parents.get(i).getReco_id(), true);
            if (!Constants.SECURITY_ROLE_AGENT.equals(party.getRolename()) && !Constants.SECURITY_ROLE_AGENTLOW.equals(party.getRolename())) {
                /**
                 * 非代理
                 */
                continue;
            }
 
            for (int j = 0; j < configs.size(); j++) {
                AutoMonitorAutoTransferFromConfig config = configs.get(j);
                if (party.getId().toString().equals(config.getPartyId())) {
                    return config;
                }
            }
 
        }
 
        /**
         * 全局配置
         *
         */
        for (int i = 0; i < configs.size(); i++) {
            AutoMonitorAutoTransferFromConfig config = configs.get(i);
            if (config.getPartyId() == null || "".equals(config.getPartyId().toString())) {
                return config;
            }
        }
        return null;
    }
 
    public void setPartyService(PartyService partyService) {
        this.partyService = partyService;
    }
 
    public void setUserRecomService(UserRecomService userRecomService) {
        this.userRecomService = userRecomService;
    }
}