/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.content.document.web; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import com.ewcms.common.query.Resultable; import com.ewcms.common.query.jpa.QueryFactory; import com.ewcms.content.document.model.Article; import com.ewcms.content.history.fac.HistoryModelFacable; import com.ewcms.content.history.model.HistoryModel; import com.ewcms.content.history.util.ByteToObject; import com.ewcms.web.QueryBaseAction; import com.ewcms.web.util.JSONUtil; import com.ewcms.web.util.Struts2Util; import com.ewcms.web.vo.DataGrid; /** * * @author 吴智俊 */ public class HistoryQueryAction extends QueryBaseAction { private static final long serialVersionUID = 6797696723188141927L; private DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Autowired private HistoryModelFacable historyModelFac; private Integer articleId; private Date startDate; private Date endDate; public Integer getArticleId() { return articleId; } public void setArticleId(Integer articleId) { this.articleId = articleId; } public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } @Override protected Resultable queryResult(QueryFactory queryFactory, String cacheKey, int rows, int page, Order order) { return null; } @Override protected Resultable querySelectionsResult(QueryFactory queryFactory, int rows, int page, String[] selections, Order order) { return null; } @Override public String query() { String className = Article.class.getPackage().getName() + "." + Article.class.getSimpleName(); String idName = "id"; String idValue = getArticleId().toString(); List<HistoryModel> historyModels = historyModelFac.findByHistoryModel(className, idName, idValue, getStartDate(), getEndDate()); List<Map<String,Object>> listValues = new ArrayList<Map<String,Object>>(); int version = historyModels.size(); for(HistoryModel historyModel : historyModels){ Map<String, Object> map = new HashMap<String, Object>(); map.put("historyId", historyModel.getId()); map.put("version", version); Object obj = ByteToObject.conversion(historyModel.getModelObject()); if (obj == null){ map.put("maxPage",0); }else{ Article article = (Article)obj; map.put("maxPage",article.getContents().size()); } map.put("historyTime", historyModel.getCreateDate()); listValues.add(map); version--; } DataGrid data = new DataGrid(listValues.size(), listValues); Struts2Util.renderJson(JSONUtil.toJSON(data,DATE_FORMAT)); return NONE; } }