Sun Xin 6 роки тому
батько
коміт
450f27ebc1

+ 13 - 10
src/main/java/net/mingsoft/cms/action/web/MCmsAction.java

@@ -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 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.constant.ModelCode;
 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 freemarker.core.ParseException;
-import freemarker.template.MalformedTemplateNameException;
-import freemarker.template.TemplateNotFoundException;
-import net.mingsoft.basic.util.BasicUtil;
 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);
 		//设置列表当前页

+ 20 - 23
src/main/java/net/mingsoft/cms/action/web/SearchAction.java

@@ -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 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.BaseEntity;
 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 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.util.BasicUtil;
-import net.mingsoft.basic.util.StringUtil;
 import net.mingsoft.mdiy.util.ParserUtil;
 
 /**
@@ -179,7 +177,7 @@ public class SearchAction extends BaseAction {
 				}
 			}
 			map.put(ParserUtil.COLUMN, column);
-			//设置栏目编号
+//			设置栏目编号
 			map.put(ParserUtil.TYPE_ID, typeId);
 		}
 		
@@ -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);

+ 3 - 5
src/main/java/net/mingsoft/cms/dao/IArticleDao.xml

@@ -47,16 +47,14 @@
 	<!-- 获取表字段 结束 -->
 	<!-- 通过视图查询返回结果集 开始 -->
 	<resultMap type="net.mingsoft.cms.bean.ColumnArticleIdBean" id="resultMapBean">
-		<result column="ARTICLE_BASICID" property="articleId" />
-		<result column="column_listurl" property="columnListUrl"/><!-- 最终栏目列表地址 -->	
+		<result column="ARTICLE_BASICID" property="articleId" />	
 		<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

+ 30 - 27
src/main/java/net/mingsoft/cms/util/CmsParserUtil.java

@@ -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;
@@ -75,10 +76,9 @@ public class CmsParserUtil extends ParserUtil {
 				BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getColumnListUrl(), Const.UTF8);
 		// pc端模板
 		Template template = cfg.getTemplate(File.separator + column.getColumnListUrl(), Const.UTF8);
-		
+
 		// 文章的栏目模型编号
 		int columnContentModelId = column.getColumnContentModelId();
-		
 		StringWriter writer = new StringWriter();
 		try {
 			// 为了分页添加column,判断栏目是否为父栏目
@@ -89,7 +89,6 @@ public class CmsParserUtil extends ParserUtil {
 			int pageSize = TagParser.getPageSize(content);
 			//获取总数
 			int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize);
-		
 			
 			String columnListPath;
 			String mobilePath;
@@ -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++;
 		}
 	}
 }