@Override public void onLoad(HumanEntity humanEntity) { // 先把数据库中的读取进来 for (HumanCostNotify.Builder builder : humanEntity.getBuilder().getCostNotifyBuilderList()) { CostNotifyData costNotifyData = builder.getCostNotifyData(); int costNotifyType = costNotifyData.getCostNotifyType(); CostNotifyInfo costNotifyInfo = new CostNotifyInfo(); if (costNotifyInfo != null) { costNotifyInfo.setCostNotifyType(costNotifyType); costNotifyInfo.setOpen(costNotifyData.getOpen()); if (costNotifyType > CostNotifyType.values().length) { HumanCostNotifyEntity entity = this._converter.convert(costNotifyInfo); GameServerAssist.getDataService().delete(entity); continue; } _costNotifyInfoMap.put(costNotifyType, costNotifyInfo); } } for (CostNotifyType costNotifyType : CostNotifyType.values()) { CostNotifyTemplate costNotifyTemplate = GameServerAssist.getTemplateService() .get(costNotifyType.getIndex(), CostNotifyTemplate.class); if (costNotifyTemplate != null) { CostNotifyInfo costNotifyInfo = _costNotifyInfoMap.get(costNotifyType.getIndex()); if (costNotifyInfo == null) { costNotifyInfo = new CostNotifyInfo(); costNotifyInfo.setCostNotifyType(costNotifyType.getIndex()); costNotifyInfo.setOpen(true); costNotifyInfo.setName(costNotifyTemplate.getName()); costNotifyInfo.setDesc(costNotifyTemplate.getDesc()); _costNotifyInfoMap.put(costNotifyInfo.getCostNotifyType(), costNotifyInfo); updateCostNotifyInfo(costNotifyInfo.getCostNotifyType(), costNotifyInfo); } else { costNotifyInfo.setName(costNotifyTemplate.getName()); costNotifyInfo.setDesc(costNotifyTemplate.getDesc()); } } } }
/** * 更新某个消费通知的设置 * * @param costNotifyType * @param costNotifyInfo */ public void updateCostNotifyInfo(Integer costNotifyType, CostNotifyInfo costNotifyInfo) { _costNotifyInfoMap.put(costNotifyType, costNotifyInfo); _costNotifyInfoCaches.addUpdate(CostNotifyType.indexOf(costNotifyType), costNotifyInfo); }