|
|
@@ -105,202 +105,7 @@ public class MCmsAction extends net.mingsoft.cms.action.BaseAction {
|
|
|
private String htmlDir;
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 动态列表页
|
|
|
- */
|
|
|
- @GetMapping("/index.do")
|
|
|
- @ResponseBody
|
|
|
- public String index(HttpServletRequest req, HttpServletResponse resp) {
|
|
|
- Map map = BasicUtil.assemblyRequestMap();
|
|
|
- map.forEach((k, v) -> {
|
|
|
- map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1"));
|
|
|
- });
|
|
|
- map.put(ParserUtil.URL, BasicUtil.getUrl());
|
|
|
- //动态解析
|
|
|
- map.put(ParserUtil.IS_DO, true);
|
|
|
- //设置动态请求的模块路径
|
|
|
- map.put(ParserUtil.MODEL_NAME, "mcms");
|
|
|
- map.put(ParserUtil.HTML,htmlDir);
|
|
|
- //解析后的内容
|
|
|
- String content = "";
|
|
|
- try {
|
|
|
- //根据模板路径,参数生成
|
|
|
- content = ParserUtil.rendering(ParserUtil.INDEX + ParserUtil.HTM_SUFFIX, map);
|
|
|
- } catch (TemplateNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (MalformedTemplateNameException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (ParseException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return content;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 动态列表页
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @param resp
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- @GetMapping("/list.do")
|
|
|
- public String list(HttpServletRequest req, HttpServletResponse resp) {
|
|
|
- Map map = BasicUtil.assemblyRequestMap();
|
|
|
- map.forEach((k, v) -> {
|
|
|
- map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1"));
|
|
|
- });
|
|
|
- //获取栏目编号
|
|
|
- String typeId = BasicUtil.getString(ParserUtil.TYPE_ID);
|
|
|
- int size = BasicUtil.getInt("size", 10);
|
|
|
- ContentBean contentBean = new ContentBean();
|
|
|
- contentBean.setCategoryId(typeId);
|
|
|
- //获取文章总数
|
|
|
- List<CategoryBean> columnArticles = contentBiz.queryIdsByCategoryIdForParser(contentBean);
|
|
|
- //判断栏目下是否有文章
|
|
|
- if (columnArticles.size() == 0) {
|
|
|
- return "";
|
|
|
- }
|
|
|
- //设置分页类
|
|
|
- PageBean page = new PageBean();
|
|
|
- page.setPageNo(BasicUtil.getPageNo());
|
|
|
- int total = PageUtil.totalPage(columnArticles.size(), size);
|
|
|
- map.put(ParserUtil.COLUMN, columnArticles.get(0));
|
|
|
- //获取总数
|
|
|
- page.setTotal(total);
|
|
|
-
|
|
|
- //设置栏目编号
|
|
|
- map.put(ParserUtil.TYPE_ID, typeId);
|
|
|
-
|
|
|
- map.put(ParserUtil.URL, BasicUtil.getUrl());
|
|
|
- map.put(ParserUtil.PAGE, page);
|
|
|
- //动态解析
|
|
|
- map.put(ParserUtil.IS_DO, true);
|
|
|
- //设置动态请求的模块路径
|
|
|
- map.put(ParserUtil.MODEL_NAME, "mcms");
|
|
|
- map.put(ParserUtil.HTML, htmlDir);
|
|
|
- //解析后的内容
|
|
|
- String content = "";
|
|
|
- try {
|
|
|
- //根据模板路径,参数生成
|
|
|
- content = ParserUtil.rendering(columnArticles.get(0).getCategoryListUrl(), map);
|
|
|
- } catch (TemplateNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (MalformedTemplateNameException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (ParseException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return content;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 动态详情页
|
|
|
- */
|
|
|
- @GetMapping("/view.do")
|
|
|
- @ResponseBody
|
|
|
- public String view(String orderby, String order, HttpServletRequest req, HttpServletResponse resp) {
|
|
|
- //参数文章编号
|
|
|
- ContentEntity article = contentBiz.getById(BasicUtil.getString(ParserUtil.ID));
|
|
|
- if (ObjectUtil.isNull(article)) {
|
|
|
- throw new BusinessException(this.getResString("err.empty", this.getResString("id")));
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(order)) {
|
|
|
- //防注入
|
|
|
- if (!order.toLowerCase().equals("asc") && !order.toLowerCase().equals("desc")) {
|
|
|
- throw new BusinessException(this.getResString("err.error", this.getResString("order")));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- orderby = orderby.replaceAll("('|\"|\\\\)", "\\\\$1");
|
|
|
- PageBean page = new PageBean();
|
|
|
- //用于详情上下页获取当前文章列表对应的分类,根据文章查询只能获取自身分类
|
|
|
- String typeId = BasicUtil.getString(ParserUtil.TYPE_ID, article.getCategoryId());
|
|
|
- //根据文章编号查询栏目详情模版
|
|
|
- CategoryEntity column = categoryBiz.getById(typeId);
|
|
|
- //解析后的内容
|
|
|
- String content = "";
|
|
|
- Map map = BasicUtil.assemblyRequestMap();
|
|
|
- map.forEach((k, v) -> {
|
|
|
- //sql注入过滤
|
|
|
- map.put(k, v.toString().replaceAll("('|\"|\\\\)", "\\\\$1"));
|
|
|
- });
|
|
|
- //动态解析
|
|
|
- map.put(ParserUtil.IS_DO, true);
|
|
|
- //设置栏目编号
|
|
|
- map.put(ParserUtil.TYPE_ID, typeId);
|
|
|
- //设置动态请求的模块路径
|
|
|
- map.put(ParserUtil.MODEL_NAME, "mcms");
|
|
|
- map.put(ParserUtil.URL, BasicUtil.getUrl());
|
|
|
- map.put(ParserUtil.PAGE, page);
|
|
|
- map.put(ParserUtil.ID, article.getId());
|
|
|
- map.put(ParserUtil.HTML,htmlDir);
|
|
|
-
|
|
|
- ContentBean contentBean = new ContentBean();
|
|
|
- contentBean.setCategoryId(String.valueOf(typeId));
|
|
|
- contentBean.setOrderBy(orderby);
|
|
|
- contentBean.setOrder(order);
|
|
|
- List<CategoryBean> articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean);
|
|
|
- Map<Object, Object> contentModelMap = new HashMap<Object, Object>();
|
|
|
- ModelEntity contentModel = null;
|
|
|
- for (int artId = 0; artId < articleIdList.size(); ) {
|
|
|
- //如果不是当前文章则跳过
|
|
|
- if (articleIdList.get(artId).getArticleId().equals(article.getId())) {
|
|
|
- artId++;
|
|
|
- continue;
|
|
|
- }
|
|
|
- // 文章的栏目路径
|
|
|
- String categoryParentId = articleIdList.get(artId).getId();
|
|
|
- if (StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentIds())) {
|
|
|
- categoryParentId += ',' + articleIdList.get(artId).getCategoryParentIds();
|
|
|
- }
|
|
|
- // 文章的栏目模型编号
|
|
|
- Integer columnContentModelId = articleIdList.get(artId).getMdiyModelId();
|
|
|
- Map<String, Object> parserParams = new HashMap<String, Object>();
|
|
|
- parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId));
|
|
|
- // 判断当前栏目是否有自定义模型
|
|
|
- if (columnContentModelId != null && columnContentModelId > 0) {
|
|
|
- // 通过当前栏目的模型编号获取,自定义模型表名
|
|
|
- if (contentModelMap.containsKey(columnContentModelId)) {
|
|
|
- parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName());
|
|
|
- } else {
|
|
|
- // 通过栏目模型编号获取自定义模型实体
|
|
|
- contentModel = (ModelEntity) modelBiz.getEntity(columnContentModelId);
|
|
|
- // 将自定义模型编号设置为key值
|
|
|
- contentModelMap.put(columnContentModelId, contentModel.getModelTableName());
|
|
|
- parserParams.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName());
|
|
|
- }
|
|
|
- }
|
|
|
- // 第一篇文章没有上一篇
|
|
|
- if (artId > 0) {
|
|
|
- CategoryBean preCaBean = articleIdList.get(artId - 1);
|
|
|
- page.setPreId(preCaBean.getArticleId());
|
|
|
- }
|
|
|
- // 最后一篇文章没有下一篇
|
|
|
- if (artId + 1 < articleIdList.size()) {
|
|
|
- CategoryBean nextCaBean = articleIdList.get(artId + 1);
|
|
|
- page.setNextId(nextCaBean.getArticleId());
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- try {
|
|
|
- //根据模板路径,参数生成
|
|
|
- content = ParserUtil.rendering(column.getCategoryUrl(), map);
|
|
|
- } catch (TemplateNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (MalformedTemplateNameException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (ParseException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return content;
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 实现前端页面的文章搜索
|