Example usage for com.fasterxml.jackson.databind.node ObjectNode putPOJO

List of usage examples for com.fasterxml.jackson.databind.node ObjectNode putPOJO

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.node ObjectNode putPOJO.

Prototype

public ObjectNode putPOJO(String paramString, Object paramObject) 

Source Link

Usage

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);
}