update src/main/java/net/mingsoft/cms/action/web/MCmsAction.java.

master
铭飞 4 years ago committed by Gitee
parent c2029de190
commit 38816bf61b
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
  1. 195
      src/main/java/net/mingsoft/cms/action/web/MCmsAction.java

@ -105,201 +105,6 @@ 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;
}
/**

Loading…
Cancel
Save