添加分页类

This commit is contained in:
Sun Xin 2019-03-12 13:00:55 +08:00
parent 31f44a51d6
commit 450f27ebc1
4 changed files with 75 additions and 74 deletions

View File

@ -36,20 +36,20 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.hutool.core.util.ObjectUtil;
import net.mingsoft.basic.biz.IColumnBiz;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.cms.bean.ColumnArticleIdBean;
import net.mingsoft.cms.biz.IArticleBiz;
import net.mingsoft.cms.constant.ModelCode;
import net.mingsoft.cms.entity.ArticleEntity;
import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.biz.IPageBiz;
import net.mingsoft.mdiy.entity.PageEntity;
import cn.hutool.core.util.PageUtil;
import freemarker.core.ParseException;
import freemarker.template.MalformedTemplateNameException;
import freemarker.template.TemplateNotFoundException;
import net.mingsoft.basic.biz.IColumnBiz;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.cms.bean.ColumnArticleIdBean;
import net.mingsoft.cms.biz.IArticleBiz;
import net.mingsoft.cms.entity.ArticleEntity;
import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.bean.PageBean;
import net.mingsoft.mdiy.biz.IPageBiz;
import net.mingsoft.mdiy.entity.PageEntity;
import net.mingsoft.mdiy.util.ParserUtil;
/**
@ -157,17 +157,20 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction {
Map map = BasicUtil.assemblyRequestMap();
//获取栏目编号
int typeId = BasicUtil.getInt(ParserUtil.TYPE_ID,0);
int size = BasicUtil.getInt(ParserUtil.SIZE,10);
//获取文章总数
List<ColumnArticleIdBean> columnArticles = articleBiz.queryIdsByCategoryIdForParser(typeId, null, null);
//判断栏目下是否有文章
if(columnArticles.size()==0){
this.outJson(resp, null,false,getResString("err.empty", this.getResString("typeid")));
return;
this.outJson(resp, false);
}
//设置分页类
PageBean page = new PageBean();
int total = PageUtil.totalPage(columnArticles.size(), size);
map.put(ParserUtil.COLUMN, columnArticles.get(0));
//获取总数
map.put(ParserUtil.TOTAL, columnArticles.size());
map.put(ParserUtil.RCOUNT, BasicUtil.getInt(ParserUtil.SIZE,10));
page.setTotal(total);
//设置栏目编号
map.put(ParserUtil.TYPE_ID, typeId);
//设置列表当前页

View File

@ -40,30 +40,28 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import net.mingsoft.basic.action.BaseAction;
import net.mingsoft.basic.biz.ICategoryBiz;
import net.mingsoft.basic.biz.IColumnBiz;
import net.mingsoft.basic.biz.IModelBiz;
import net.mingsoft.basic.entity.BaseEntity;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.cms.biz.IArticleBiz;
import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.biz.IContentModelBiz;
import net.mingsoft.mdiy.biz.IContentModelFieldBiz;
import net.mingsoft.mdiy.biz.ISearchBiz;
import net.mingsoft.mdiy.entity.ContentModelEntity;
import net.mingsoft.mdiy.entity.ContentModelFieldEntity;
import net.mingsoft.mdiy.entity.SearchEntity;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrSpliter;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import freemarker.core.ParseException;
import freemarker.template.MalformedTemplateNameException;
import freemarker.template.TemplateNotFoundException;
import net.mingsoft.base.constant.Const;
import net.mingsoft.basic.action.BaseAction;
import net.mingsoft.basic.biz.ICategoryBiz;
import net.mingsoft.basic.biz.IColumnBiz;
import net.mingsoft.basic.biz.IModelBiz;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.StringUtil;
import net.mingsoft.cms.biz.IArticleBiz;
import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.bean.PageBean;
import net.mingsoft.mdiy.biz.IContentModelBiz;
import net.mingsoft.mdiy.biz.IContentModelFieldBiz;
import net.mingsoft.mdiy.biz.ISearchBiz;
import net.mingsoft.mdiy.entity.ContentModelEntity;
import net.mingsoft.mdiy.entity.ContentModelFieldEntity;
import net.mingsoft.mdiy.entity.SearchEntity;
import net.mingsoft.mdiy.util.ParserUtil;
/**
@ -225,17 +223,17 @@ public class SearchAction extends BaseAction {
Map whereMap = this.searchMap(articleFieldName, diyFieldName, fieldList);
// 获取符合条件的文章总数
int count = articleBiz.getSearchCount(contentModel, whereMap, BasicUtil.getAppId(), null);
//设置分页类
PageBean page = new PageBean();
int size = BasicUtil.getInt(ParserUtil.SIZE,10);
int total = PageUtil.totalPage(count, size);
//获取总数
map.put(ParserUtil.TOTAL, total);
page.setTotal(total);
//设置页面显示数量
map.put(ParserUtil.RCOUNT, size);
map.put(ParserUtil.SIZE, size);
page.setSize(size);
//设置列表当前页
int pageNo = BasicUtil.getInt(ParserUtil.PAGE_NO,1);
map.put(ParserUtil.PAGE_NO, pageNo);
page.setPageNo(pageNo);
int next ,pre;
if(StringUtil.isBlank(pageNo) || pageNo==1){
//如果总页数等于1下一页就是第一页不等于就有第二页
@ -257,15 +255,14 @@ public class SearchAction extends BaseAction {
String lastUrl = url + pageNoStr + total;
//上一页
String preUrl = url + pageNoStr + pre;
map.put(ParserUtil.INDEX_URL, indexUrl);
map.put(ParserUtil.NEXT_URL, nextUrl);
map.put(ParserUtil.PRE_URL, preUrl);
map.put(ParserUtil.LAST_URL, lastUrl);
page.setIndexUrl(indexUrl);
page.setNextUrl(nextUrl);
page.setPreUrl(preUrl);
page.setLastUrl(lastUrl);
map.put(ParserUtil.URL, BasicUtil.getUrl());
Map<Object, Object> searchMap = new HashMap<>();
searchMap.put(BASIC_TITLE, BasicUtil.getString(BASIC_TITLE));
searchMap.put(ParserUtil.PAGE_NO, BasicUtil.getInt(ParserUtil.PAGE_NO,1));
searchMap.put(ParserUtil.PAGE_NO, pageNo);
map.put(SEARCH, searchMap);
//动态解析
map.put(ParserUtil.IS_DO,false);

View File

@ -48,15 +48,13 @@
<!-- 通过视图查询返回结果集 开始 -->
<resultMap type="net.mingsoft.cms.bean.ColumnArticleIdBean" id="resultMapBean">
<result column="ARTICLE_BASICID" property="articleId" />
<result column="column_listurl" property="columnListUrl"/><!-- 最终栏目列表地址 -->
<result column="column_path" property="columnPath"/>
<result column="column_url" property="columnUrl" />
<result column="category_title" property="categoryTitle" />
<result column="column_category_id" property="categoryId"/><!-- 与Category类别类绑定ID -->
<result column="category_parent_id" property="categoryParentId" /><!-- 关联表category的父类型编号 -->
<result column="category_id" property="categoryId" />
<result column="COLUMN_CM_ID" property="columnContentModelId" />
<result column="COLUMN_TYPE" property="columnType" />
<result column="category_parent_id" property="categoryParentId" /><!--关联表category的字典对应编号 -->
</resultMap>
<!-- 通过视图查询返回结果集 结束 -->
<!-- 通过视图查询返回结果集 开始 -->
@ -320,7 +318,7 @@
<!-- 根据站点编号、开始、结束时间和栏目编号查询文章编号集合 -->
<select id="queryIdsByCategoryIdForParser" resultMap="resultMapBean" >
select
ARTICLE_BASICID,cl.*,c.*
ARTICLE_BASICID,cl.*,c.category_parent_id
FROM cms_article a LEFT JOIN basic b ON a.ARTICLE_BASICID = b.BASIC_ID
LEFT JOIN basic_column cl ON b.BASIC_CATEGORYID = cl.COLUMN_CATEGORY_ID
JOIN category c ON c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID

View File

@ -22,6 +22,7 @@ import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.SpringUtil;
import net.mingsoft.cms.bean.ColumnArticleIdBean;
import net.mingsoft.cms.constant.e.ColumnTypeEnum;
import net.mingsoft.mdiy.bean.PageBean;
import net.mingsoft.mdiy.biz.IContentModelBiz;
import net.mingsoft.mdiy.entity.ContentModelEntity;
import net.mingsoft.mdiy.parser.TagParser;
@ -78,7 +79,6 @@ public class CmsParserUtil extends ParserUtil {
// 文章的栏目模型编号
int columnContentModelId = column.getColumnContentModelId();
StringWriter writer = new StringWriter();
try {
// 为了分页添加column,判断栏目是否为父栏目
@ -90,7 +90,6 @@ public class CmsParserUtil extends ParserUtil {
//获取总数
int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize);
String columnListPath;
String mobilePath;
ContentModelEntity contentModel = null;
@ -102,11 +101,11 @@ public class CmsParserUtil extends ParserUtil {
int pageNo = 1;
// 遍历分页
for (int i = 0; i < totalPageSize; i++) {
PageBean page = new PageBean();
Map parserParams = new HashMap();
parserParams.put(COLUMN, column);
parserParams.put(TOTAL, totalPageSize);
parserParams.put(RCOUNT, pageSize);
parserParams.put(TYPE_ID, column.getCategoryId());
page.setTotal(totalPageSize);
//parserParams.put(TYPE_ID, column.getCategoryId());
parserParams.put(IS_DO, false);
parserParams.put(HTML, HTML);
if (contentModel!=null) {
@ -133,7 +132,8 @@ public class CmsParserUtil extends ParserUtil {
}
// 设置分页的起始位置
parserParams.put(PAGE_NO, pageNo);
page.setPageNo(pageNo);
parserParams.put(ParserUtil.PAGE, page);
TagParser tag = new TagParser(content,parserParams);
FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8);
@ -176,24 +176,26 @@ public class CmsParserUtil extends ParserUtil {
// 记录已经生成了文章编号
List<Integer> generateIds = new ArrayList<>();
// 生成文档
for (int ai = 0; ai < articleIdList.size();) {
for (int artId = 0; artId < articleIdList.size();) {
//设置分页类
PageBean page = new PageBean();
// 文章编号
int articleId = articleIdList.get(ai).getArticleId();
int articleId = articleIdList.get(artId).getArticleId();
// 文章的栏目路径
String articleColumnPath = articleIdList.get(ai).getColumnPath();
String articleColumnPath = articleIdList.get(artId).getColumnPath();
// 文章的模板路径
String columnUrl = articleIdList.get(ai).getColumnUrl();
String columnUrl = articleIdList.get(artId).getColumnUrl();
// 文章的栏目模型编号
int columnContentModelId = articleIdList.get(ai).getColumnContentModelId();
int columnContentModelId = articleIdList.get(artId).getColumnContentModelId();
// 文章是否已经生成了生成了就跳过
if (generateIds.contains(articleId)) {
ai++;
artId++;
continue;
}
// 判断文件是否存在若不存在弹出返回信息
if (!FileUtil.exist(ParserUtil.buildTempletPath(columnUrl))) {
ai++;
artId++;
continue;
}
//
@ -201,10 +203,11 @@ public class CmsParserUtil extends ParserUtil {
// 组合文章路径如:html/站点id/栏目id/文章id.html
writePath = ParserUtil.buildHtmlPath(articleColumnPath + File.separator + articleId);
//如果是封面就生成index.html
if(articleIdList.get(ai).getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {
if(articleIdList.get(artId).getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {
writePath = ParserUtil.buildHtmlPath(articleColumnPath + File.separator + ParserUtil.INDEX);
}
Map<String, Object> parserParams = new HashMap<String, Object>();
parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId));
// 判断当前栏目是否有自定义模型
if (columnContentModelId > 0) {
// 通过当前栏目的模型编号获取自定义模型表名
@ -222,43 +225,43 @@ public class CmsParserUtil extends ParserUtil {
parserParams.put(ID, articleId);
// 第一篇文章没有上一篇
if (ai > 0) {
ColumnArticleIdBean preCaBean = articleIdList.get(ai - 1);
if (artId > 0) {
ColumnArticleIdBean preCaBean = articleIdList.get(artId - 1);
//判断当前文档是否与上一页文章在同一栏目下并且不能使用父栏目字符串因为父栏目中没有所属栏目编号
if(articleColumnPath.contains(preCaBean.getCategoryId()+"")){
parserParams.put(PRE_ID, preCaBean.getArticleId());
page.setPreId(preCaBean.getArticleId());
}
}
// 最后一篇文章没有下一篇
if (ai + 1 < articleIdList.size()) {
ColumnArticleIdBean nextCaBean = articleIdList.get(ai + 1);
if (artId + 1 < articleIdList.size()) {
ColumnArticleIdBean nextCaBean = articleIdList.get(artId + 1);
//判断当前文档是否与下一页文章在同一栏目下并且不能使用父栏目字符串因为父栏目中没有所属栏目编号
if(articleColumnPath.contains(nextCaBean.getCategoryId()+"")){
parserParams.put(NEXT_ID, nextCaBean.getArticleId());
page.setNextId(nextCaBean.getArticleId());
}
}
parserParams.put(IS_DO, false);
String content = CmsParserUtil.generate(articleIdList.get(ai).getColumnUrl(), parserParams, false);
parserParams.put(ParserUtil.PAGE, page);
String content = CmsParserUtil.generate(articleIdList.get(artId).getColumnUrl(), parserParams, false);
FileUtil.writeString(content, writePath, Const.UTF8);
// 手机端
if (ParserUtil.hasMobileFile(columnUrl)) {
writePath = ParserUtil.buildMobileHtmlPath(articleColumnPath + File.separator + articleId);
//如果是封面就生成index.html
if(articleIdList.get(ai).getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {
if(articleIdList.get(artId).getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {
writePath = ParserUtil.buildMobileHtmlPath(articleColumnPath + File.separator + ParserUtil.INDEX);
}
// 判断文件是否存在若不存在弹出返回信息
if (!FileUtil.exist(ParserUtil.buildTempletPath(MOBILE + File.separator + columnUrl))) {
ai++;
artId++;
continue;
}
parserParams.put(MOBILE, BasicUtil.getApp().getAppMobileStyle());
content = CmsParserUtil.generate(articleIdList.get(ai).getColumnUrl(), parserParams, true);
content = CmsParserUtil.generate(articleIdList.get(artId).getColumnUrl(), parserParams, true);
FileUtil.writeString(content, writePath, Const.UTF8);
}
ai++;
artId++;
}
}
}