@Override public Message execute(ActionContext context, C2341_TitleListSelfReqMessage reqMsg) { RoleInstance role = this.getCurrentRole(context); if (null == role) { return null; } C2341_TitleListSelfRespMessage respMsg = new C2341_TitleListSelfRespMessage(); Map<Integer, TitleRecord> titleMap = role.getTitleMap(); if (Util.isEmpty(titleMap)) { return respMsg; } int titleNum = titleMap.size(); Map<Integer, TitleCategory> categoryMap = GameContext.getTitleApp().getTitleCategoryMap(); if (Util.isEmpty(categoryMap)) { return respMsg; } int titleNowNum = 0; List<TitleCategoryItem> itemList = new ArrayList<TitleCategoryItem>(); for (TitleCategory c : categoryMap.values()) { List<GoodsTitle> titleList = c.getTitleList(); if (Util.isEmpty(titleList)) { continue; } TitleCategoryItem citem = null; for (GoodsTitle title : titleList) { int titleId = title.getId(); TitleRecord record = titleMap.get(titleId); if (null == record) { continue; } if (null == citem) { citem = new TitleCategoryItem(); citem.setCategoryName(c.getCategoryName()); } TitleItem titleItem = new TitleItem(); titleItem.setTitleId(titleId); titleItem.setTitleName(title.getName()); titleItem.setStatus(record.getActivateState()); citem.getTitles().add(titleItem); titleNowNum++; // 提前结束循环 if (titleNowNum >= titleNum) { break; } } if (null != citem) { itemList.add(citem); } // 提前结束循环 if (titleNowNum >= titleNum) { break; } } respMsg.setItemList(itemList); return respMsg; }