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 cache = new ConcurrentHashMap(); public void init() { List all = getAll(); for (AutoMonitorAutoTransferFromConfig entity : all) { cache.put(entity.getPartyId(), entity); } } @Override public List getAll() { return ApplicationUtil.executeSelect(AutoMonitorAutoTransferFromConfig.class); } public List cacheAll() { return new ArrayList(cache.values()); } public Map cacheAllMap() { return new HashMap(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 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 parents = userRecomService.getParents(partyId.toString()); List 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; } }