/** * 从数据库或缓存读取全部的装备 * * @param uid * @return */ public static List<EquipPo> getAllEquips(long uid) { String key = DataUtil.getKey(DataKey.ALL_EQUIPS, uid); List<EquipPo> equips = RequestContext.get(key); if (equips == null) { equips = tabEquip.get(uid); if (equips == null) { return null; } // 更新缓存 RequestContext.put(key, equips); } return equips; }
/** * 更新装备 * * @param equips * @param po */ public static void updateEquipPo(List<EquipPo> equips, EquipPo po) { assertTrue(equips != null && !equips.isEmpty()); assertTrue(po != null); long uid = po.uid; // 更新到数据库 for (int i = 0; i < equips.size(); ++i) { if (equips.get(i).id == po.id) { equips.set(i, po); break; } } tabEquip.put(uid, equips); // 更新缓存 String key = DataUtil.getKey(DataKey.ALL_EQUIPS, uid); RequestContext.put(key, equips); // 处理变量变更 EquipOb ob = getEquipOb(po); assertTrue(ob != null); ob.exp.set(po.exp); }