Esempio n. 1
0
 /**
  * 从数据库或缓存读取全部的装备
  *
  * @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;
 }
Esempio n. 2
0
  /**
   * 更新装备
   *
   * @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);
  }