List of usage examples for com.fasterxml.jackson.databind.node ObjectNode putPOJO
public ObjectNode putPOJO(String paramString, Object paramObject)
From source file:system.controllers.SuggestionApp.java
@Transactional(readOnly = true) public static Result list() { int start = NumberUtils.toInt(request().getQueryString("start"), 0); int pageSize = NumberUtils.toInt(request().getQueryString("limit"), 20); String searchText = StringUtils.defaultIfBlank(request().getQueryString("searchText"), ""); searchText = "%" + searchText + "%"; String sort = request().getQueryString("sort"); String sortProperty = " s.createTime desc"; if (StringUtils.isNotBlank(sort)) { try {/*from ww w . j av a 2s . com*/ JsonNode sortJsonArray = Json.parse(sort); if (sortJsonArray.isArray() && null != sortJsonArray.get(0)) { JsonNode sortJsonNode = sortJsonArray.get(0); if (sortJsonNode.hasNonNull("property") && sortJsonNode.hasNonNull("direction")) { sortProperty = " s.createTime "; boolean isDesc = "DESC".equals(sortJsonNode.get("direction").asText()); if (isDesc) { sortProperty += " desc"; } } } } catch (RuntimeException e) { play.Logger.error("failed to parse JSON. JSON: " + sort); } } ObjectNode result = Json.newObject(); int total = Suggestion.getSuggestionsCount(searchText); result.put("total", total); if (total == 0) { result.putPOJO("data", null); return ok(result); } List<Suggestion> suggestions = Suggestion.getSuggestions(start, pageSize, sortProperty, searchText); List<ObjectNode> data = null; if (suggestions != null) { data = new ArrayList<ObjectNode>(suggestions.size()); for (Suggestion suggestion : suggestions) { ObjectNode node = Json.newObject(); node.put("id", suggestion.id); node.put("userName", suggestion.userName); node.put("phone", suggestion.phone); node.put("email", suggestion.email); node.put("qq", suggestion.qq); node.put("content", suggestion.content); node.put("createTime", DateUtils.format(suggestion.createTime)); node.put("href", suggestion.href); //Set<AttachOfSuggestion> attachSet = suggestion.attach; List<AttachOfSuggestion> attachList = new AttachOfSuggestion().queryByAttachId(suggestion.id); Set<AttachOfSuggestion> attachSet = new HashSet<AttachOfSuggestion>(attachList); List<ObjectNode> nodes = new ArrayList<ObjectNode>(attachSet == null ? 0 : attachSet.size()); if (CollectionUtils.isNotEmpty(attachSet)) { for (Attach item : attachSet) { ObjectNode attachON = Json.newObject(); attachON.put("attachFileName", StringUtils.isEmpty(item.fileName) ? "-" : item.fileName); attachON.put("attachPath", item.path); nodes.add(attachON); } } node.putPOJO("attachInfos", nodes); data.add(node); } } result.putPOJO("data", data); return ok(result); }