parent
1d7e5413d6
commit
ffe26f9348
9 changed files with 0 additions and 2946 deletions
@ -1,631 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.action; |
|
||||||
|
|
||||||
import java.io.File; |
|
||||||
import java.sql.Timestamp; |
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.Date; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.beans.factory.annotation.Value; |
|
||||||
import org.springframework.stereotype.Controller; |
|
||||||
import org.springframework.ui.ModelMap; |
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute; |
|
||||||
import org.springframework.web.bind.annotation.PathVariable; |
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray; |
|
||||||
|
|
||||||
import net.mingsoft.base.entity.BaseEntity; |
|
||||||
import net.mingsoft.base.filter.DateValueFilter; |
|
||||||
import net.mingsoft.base.filter.DoubleValueFilter; |
|
||||||
import net.mingsoft.basic.action.BaseAction; |
|
||||||
import net.mingsoft.basic.bean.EUListBean; |
|
||||||
import net.mingsoft.basic.biz.IColumnBiz; |
|
||||||
import net.mingsoft.basic.entity.ColumnEntity; |
|
||||||
import net.mingsoft.basic.util.ArrysUtil; |
|
||||||
import net.mingsoft.basic.util.BasicUtil; |
|
||||||
import net.mingsoft.basic.util.FileUtil; |
|
||||||
import net.mingsoft.basic.util.StringUtil; |
|
||||||
import net.mingsoft.cms.biz.IArticleBiz; |
|
||||||
import net.mingsoft.cms.constant.ModelCode; |
|
||||||
import net.mingsoft.cms.constant.e.ColumnTypeEnum; |
|
||||||
import net.mingsoft.cms.entity.ArticleEntity; |
|
||||||
import net.mingsoft.mdiy.biz.IContentModelBiz; |
|
||||||
import net.mingsoft.mdiy.biz.IContentModelFieldBiz; |
|
||||||
import net.mingsoft.mdiy.entity.ContentModelEntity; |
|
||||||
import net.mingsoft.mdiy.entity.ContentModelFieldEntity; |
|
||||||
import net.mingsoft.mdiy.util.DictUtil; |
|
||||||
import net.mingsoft.mdiy.util.ParserUtil; |
|
||||||
|
|
||||||
/** |
|
||||||
* @ClassName: ArticleAction |
|
||||||
* @Description:TODO 文章管理 |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:51:39 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
@Controller |
|
||||||
@RequestMapping("/${ms.manager.path}/cms/article") |
|
||||||
public class ArticleAction extends BaseAction { |
|
||||||
|
|
||||||
/** |
|
||||||
* 上传路径 |
|
||||||
*/ |
|
||||||
@Value("${ms.upload.path}") |
|
||||||
private String uploadFloderPath; |
|
||||||
|
|
||||||
/** |
|
||||||
* 业务层的注入 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IColumnBiz columnBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章管理业务处理层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IArticleBiz articleBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 字段管理业务层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentModelFieldBiz fieldBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 内容管理业务层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentModelBiz contentBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 判断是否为checkbox类型 |
|
||||||
*/ |
|
||||||
private static final int checkBox = 11; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 加载页面显示所有文章信息 |
|
||||||
* |
|
||||||
* @param request |
|
||||||
* @return 返回文章页面显示地址 |
|
||||||
*/ |
|
||||||
@SuppressWarnings("static-access") |
|
||||||
@RequestMapping("/index") |
|
||||||
public String index(HttpServletRequest request, ModelMap mode, HttpServletResponse response) { |
|
||||||
// 获取站点id
|
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
List<ColumnEntity> list = columnBiz.queryAll(appId, this.getModelCodeId(request, ModelCode.CMS_COLUMN)); |
|
||||||
request.setAttribute("listColumn", JSONArray.toJSONString(list)); |
|
||||||
// 返回路径
|
|
||||||
return "/cms/article/index"; // 这里表示显示/manager/cms/article/article_list.ftl
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 返回一个文章列表框架和一些基础数据 |
|
||||||
* @param article |
|
||||||
* @param request |
|
||||||
* @param mode |
|
||||||
* @param response |
|
||||||
* @param categoryId |
|
||||||
* @return 返回一个文章列表界面 |
|
||||||
*/ |
|
||||||
@RequestMapping("/{categoryId}/main") |
|
||||||
public String main(@ModelAttribute ArticleEntity article, HttpServletRequest request, ModelMap mode, |
|
||||||
HttpServletResponse response, @PathVariable int categoryId) { |
|
||||||
String articleType = request.getParameter("articleType"); |
|
||||||
String isParent = BasicUtil.getString("isParent", "false"); |
|
||||||
mode.addAttribute("isParent", isParent); |
|
||||||
//使用糊涂工具排序使全部属性排在第一个
|
|
||||||
mode.addAttribute("articleTypeList", DictUtil.list("文章属性")); |
|
||||||
mode.addAttribute("articleType", articleType); |
|
||||||
mode.addAttribute("categoryId", categoryId); |
|
||||||
//返回文章页面显示地址
|
|
||||||
return "/cms/article/article_main"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 加载页面显示所有文章信息 |
|
||||||
* |
|
||||||
* @param request |
|
||||||
* @return 返回文章页面显示数据 |
|
||||||
*/ |
|
||||||
@RequestMapping("/{categoryId}/list") |
|
||||||
public void list(@ModelAttribute ArticleEntity article, HttpServletRequest request, ModelMap mode, |
|
||||||
HttpServletResponse response, @PathVariable int categoryId) { |
|
||||||
int[] basicCategoryIds = null; |
|
||||||
String articleType = article.getArticleType(); |
|
||||||
if(StringUtils.isEmpty(articleType)){ |
|
||||||
articleType = BasicUtil.getString("articleTypeStr"); |
|
||||||
} |
|
||||||
if(!StringUtils.isEmpty(articleType) && articleType.equals("a")){ |
|
||||||
articleType = null; |
|
||||||
} |
|
||||||
if(categoryId > 0){ |
|
||||||
basicCategoryIds = columnBiz.queryChildrenCategoryIds(categoryId, BasicUtil.getAppId(), |
|
||||||
BasicUtil.getModelCodeId(ModelCode.CMS_COLUMN)); |
|
||||||
} |
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
BasicUtil.startPage(); |
|
||||||
article.setBasicDisplay(-1); |
|
||||||
//查询文章列表
|
|
||||||
List<ArticleEntity> articleList = articleBiz.query(appId, basicCategoryIds, articleType, null, null, true, null, null, article); |
|
||||||
EUListBean _list = new EUListBean(articleList, (int) BasicUtil.endPage(articleList).getTotal()); |
|
||||||
//将数据以json数据的形式返回
|
|
||||||
this.outJson(response, net.mingsoft.base.util.JSONArray.toJSONString(_list, new DoubleValueFilter(),new DateValueFilter("yyyy-MM-dd"))); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 添加文章页面 |
|
||||||
* |
|
||||||
* @return 保存文章的页面地址 |
|
||||||
*/ |
|
||||||
@SuppressWarnings("static-access") |
|
||||||
@RequestMapping("/add") |
|
||||||
public String add(ModelMap mode, HttpServletRequest request) { |
|
||||||
int categoryId = BasicUtil.getInt("categoryId", 0); |
|
||||||
String categoryTitle = request.getParameter("categoryTitle"); |
|
||||||
// 文章属性
|
|
||||||
mode.addAttribute("articleType", DictUtil.list("文章属性")); |
|
||||||
// 站点ID
|
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
List<ColumnEntity> list = columnBiz.queryAll(appId, this.getModelCodeId(request, ModelCode.CMS_COLUMN)); |
|
||||||
mode.addAttribute("appId", appId); |
|
||||||
mode.addAttribute("listColumn", JSONArray.toJSONString(list)); |
|
||||||
boolean isEditCategory = false; // 新增,不是单篇
|
|
||||||
int columnType=1;//新增,不是单篇
|
|
||||||
if(categoryId != 0){ |
|
||||||
// 获取栏目id
|
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(categoryId); |
|
||||||
columnType = column.getColumnType(); |
|
||||||
// 判断栏目是否为"",如果是"",就重新赋值
|
|
||||||
if (StringUtils.isBlank(categoryTitle)) { |
|
||||||
categoryTitle = column.getCategoryTitle(); |
|
||||||
} |
|
||||||
// 判断栏目是否是单篇
|
|
||||||
if (column != null && column.getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) { |
|
||||||
isEditCategory = true; // 是单页
|
|
||||||
columnType = column.getColumnType();; |
|
||||||
} |
|
||||||
} |
|
||||||
mode.addAttribute("categoryTitle", categoryTitle); |
|
||||||
mode.addAttribute("isEditCategory", isEditCategory); // 新增状态
|
|
||||||
mode.addAttribute("columnType", columnType); |
|
||||||
mode.addAttribute("categoryId", categoryId); |
|
||||||
mode.addAttribute("articleImagesUrl", uploadFloderPath+net.mingsoft.base.constant.Const.SEPARATOR |
|
||||||
+BasicUtil.getAppId()+net.mingsoft.base.constant.Const.SEPARATOR); |
|
||||||
// 添加一个空的article实体
|
|
||||||
ArticleEntity article = new ArticleEntity(); |
|
||||||
mode.addAttribute("article", article); |
|
||||||
mode.addAttribute("action", "save"); |
|
||||||
// 返回路径
|
|
||||||
return "/cms/article/article_form"; // 这里表示显示/manager/cms/article/article_save.ftl
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取表单信息进行保存 |
|
||||||
* |
|
||||||
* @param article |
|
||||||
* 文章对象 |
|
||||||
*/ |
|
||||||
@RequestMapping("/save") |
|
||||||
@RequiresPermissions("article:save") |
|
||||||
public void save(@ModelAttribute ArticleEntity article, HttpServletRequest request, HttpServletResponse response) { |
|
||||||
// 获取站点id
|
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
// 验证文章,文章自由排序,栏目id
|
|
||||||
if (!validateForm(article, response)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
article.setBasicUpdateTime(new Timestamp(System.currentTimeMillis())); |
|
||||||
// 文章类型
|
|
||||||
String langtyp[] = request.getParameterValues("articleType"); |
|
||||||
if (langtyp != null) { |
|
||||||
StringBuffer sb = new StringBuffer(); |
|
||||||
for (int j = 0; j < langtyp.length; j++) { |
|
||||||
sb.append(langtyp[j] + ","); |
|
||||||
} |
|
||||||
} |
|
||||||
String checkboxType = BasicUtil.getString("checkboxType"); |
|
||||||
//如果选择一个属性不做排序操作
|
|
||||||
if(!StringUtils.isEmpty(checkboxType) && checkboxType.length()>2){ |
|
||||||
// 文章类型排序
|
|
||||||
article.setArticleType(ArrysUtil.sort(checkboxType, ",")+","); |
|
||||||
}else{ |
|
||||||
article.setArticleType(checkboxType); |
|
||||||
} |
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(article.getBasicCategoryId()); |
|
||||||
article.setColumn(column); |
|
||||||
|
|
||||||
// 添加文章所属的站点id
|
|
||||||
article.setArticleWebId(appId); |
|
||||||
// 绑定模块编号
|
|
||||||
article.setBasicModelId(BasicUtil.getInt("modelId")); |
|
||||||
// 保存文章实体
|
|
||||||
|
|
||||||
articleBiz.saveBasic(article); |
|
||||||
if (column.getColumnType() == ColumnTypeEnum.COLUMN_TYPE_LIST.toInt()) {// 列表
|
|
||||||
article.setArticleUrl(column.getColumnPath() + File.separator + article.getBasicId() + ParserUtil.HTML_SUFFIX); |
|
||||||
} else if (column.getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {// 单篇
|
|
||||||
article.setArticleUrl(column.getColumnPath() + File.separator + ParserUtil.INDEX+ParserUtil.HTML_SUFFIX); |
|
||||||
} |
|
||||||
articleBiz.updateBasic(article); |
|
||||||
|
|
||||||
// 判断栏目是否存在新增字段
|
|
||||||
if (column.getColumnContentModelId() != 0) { |
|
||||||
// 保存所有的字段信息
|
|
||||||
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId()); |
|
||||||
// 获取内容模型实体
|
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentBiz |
|
||||||
.getEntity(column.getColumnContentModelId()); |
|
||||||
if (contentModel != null) { |
|
||||||
// 保存新增字段的信息
|
|
||||||
Map<String, Object> param = this.checkField(listField, request, article.getBasicId()); |
|
||||||
fieldBiz.insertBySQL(contentModel.getCmTableName(), param); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
if (article.getColumn().getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, "" + article.getColumn().getCategoryId(), article.getBasicId()); |
|
||||||
} else { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, article.getColumn().getCategoryId()+"", ""); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 验证表单 |
|
||||||
* |
|
||||||
* @param article |
|
||||||
* @param response |
|
||||||
* @return 返回Boolean类型 true:通过,false:有错 |
|
||||||
*/ |
|
||||||
public boolean validateForm(ArticleEntity article, HttpServletResponse response) { |
|
||||||
// 对表单数据进行再次验证
|
|
||||||
// 验证文章标题是否为空
|
|
||||||
if (StringUtils.isBlank(article.getBasicTitle())) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.empty", this.getResString("basicTitle"))); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章所属是否为0
|
|
||||||
if (article.getBasicCategoryId() == 0) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.empty", this.getResString("basicCategoryId"))); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章标题长度,若超过定义长度则截取
|
|
||||||
if (!StringUtil.checkLength(article.getBasicTitle(), 1, 300)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.length", this.getResString("basicTitle"), "1", "300")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章来源长度,若超过定义长度则截取
|
|
||||||
if (!StringUtils.isBlank(article.getArticleSource()) |
|
||||||
&& !StringUtil.checkLength(article.getArticleSource(), 1, 300)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.length", this.getResString("articleSource"), "1", "300")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章作者长度,若超过定义长度则截取
|
|
||||||
if (!StringUtils.isBlank(article.getArticleAuthor()) |
|
||||||
&& !StringUtil.checkLength(article.getArticleAuthor(), 1, 12)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.length", this.getResString("articleAuthor"), "1", "12")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章描述长度,若超过定义长度则截取
|
|
||||||
if (!StringUtils.isBlank(article.getBasicDescription()) |
|
||||||
&& !StringUtil.checkLength(article.getBasicDescription(), 1, 400)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.length", this.getResString("basicDescription"), "1", "400")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
// 验证文章关键字长度,若超过定义长度则截取
|
|
||||||
if (!StringUtils.isBlank(article.getArticleKeyword()) |
|
||||||
&& !StringUtil.checkLength(article.getArticleKeyword(), 1, 155)) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, |
|
||||||
getResString("err.length", this.getResString("articleKeyword"), "1", "155")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 更新文章 |
|
||||||
* |
|
||||||
* @param basicId |
|
||||||
* 文章id |
|
||||||
* @param article |
|
||||||
* 文章实体 |
|
||||||
* @param request |
|
||||||
* @param response |
|
||||||
*/ |
|
||||||
@RequestMapping("/{basicId}/update") |
|
||||||
@RequiresPermissions("article:update") |
|
||||||
public void update(@PathVariable int basicId, @ModelAttribute ArticleEntity article, HttpServletRequest request, |
|
||||||
HttpServletResponse response) { |
|
||||||
// 获取站点id
|
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
article.setBasicUpdateTime(new Timestamp(System.currentTimeMillis())); |
|
||||||
// 文章类型
|
|
||||||
String checkboxType = BasicUtil.getString("checkboxType"); |
|
||||||
//如果选择一个属性不做排序操作
|
|
||||||
if(!StringUtils.isEmpty(checkboxType) && checkboxType.length()>2){ |
|
||||||
// 文章类型排序
|
|
||||||
article.setArticleType(ArrysUtil.sort(checkboxType, ",")+","); |
|
||||||
}else{ |
|
||||||
article.setArticleType(checkboxType); |
|
||||||
} |
|
||||||
// 获取更改前的文章实体
|
|
||||||
ArticleEntity oldArticle = (ArticleEntity) articleBiz.getEntity(basicId); |
|
||||||
// 获取栏目实体
|
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(article.getBasicCategoryId()); |
|
||||||
if (oldArticle != null) { |
|
||||||
// 获取更改前的文章所属栏目实体
|
|
||||||
ColumnEntity oldColumn = (ColumnEntity) columnBiz.getEntity(oldArticle.getBasicCategoryId()); |
|
||||||
|
|
||||||
// 通过表单类型id判断是否更改了表单类型,如果更改则先删除记录
|
|
||||||
if (oldColumn.getColumnContentModelId() != column.getColumnContentModelId()) { |
|
||||||
// 获取旧的内容模型id
|
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentBiz |
|
||||||
.getEntity(oldColumn.getColumnContentModelId()); |
|
||||||
// 删除旧的内容模型中保存的值
|
|
||||||
Map<String, Integer> wheres = new HashMap<String, Integer>(); |
|
||||||
wheres.put("basicId", article.getBasicId()); |
|
||||||
if (contentModel != null) { |
|
||||||
fieldBiz.deleteBySQL(contentModel.getCmTableName(), wheres); |
|
||||||
} |
|
||||||
// 判断栏目是否存在新增字段
|
|
||||||
if (column.getColumnContentModelId() != 0) { |
|
||||||
// 保存所有的字段信息
|
|
||||||
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId()); |
|
||||||
ContentModelEntity newContentModel = (ContentModelEntity) contentBiz |
|
||||||
.getEntity(column.getColumnContentModelId()); |
|
||||||
if (newContentModel != null) { |
|
||||||
Map<String, Object> param = this.checkField(listField, request, article.getBasicId()); |
|
||||||
fieldBiz.insertBySQL(newContentModel.getCmTableName(), param); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
//判断是否修改了所属栏目
|
|
||||||
if(oldArticle.getBasicCategoryId()!=article.getBasicCategoryId()){ |
|
||||||
//拼接栏目路径和文章编号及文件后缀
|
|
||||||
article.setArticleUrl(column.getColumnPath() + File.separator + article.getBasicId() + ParserUtil.HTML_SUFFIX); |
|
||||||
} |
|
||||||
// 添加文章所属的站点id
|
|
||||||
article.setArticleWebId(appId); |
|
||||||
// 设置文章所属的栏目实体
|
|
||||||
article.setColumn(column); |
|
||||||
|
|
||||||
article.setBasicUpdateTime(new Date()); |
|
||||||
|
|
||||||
String articleType = request.getParameter("articleTypeJson"); |
|
||||||
articleBiz.updateBasic(article); |
|
||||||
|
|
||||||
// 判断该文章是否存在新增字段
|
|
||||||
if (column.getColumnContentModelId() != 0) { |
|
||||||
// 保存所有的字段信息
|
|
||||||
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId()); |
|
||||||
// // update中的where条件
|
|
||||||
Map<String, Integer> where = new HashMap<String, Integer>(); |
|
||||||
// 压入默认的basicId字段
|
|
||||||
where.put("basicId", article.getBasicId()); |
|
||||||
// 遍历字段的信息
|
|
||||||
Map<String, Object> param = this.checkField(listField, request, article.getBasicId()); |
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentBiz |
|
||||||
.getEntity(column.getColumnContentModelId()); |
|
||||||
if (contentModel != null) { |
|
||||||
// 遍历所有的字段实体,得到字段名列表信息
|
|
||||||
List<String> listFieldName = new ArrayList<String>(); |
|
||||||
listFieldName.add("basicId"); |
|
||||||
// 查询新增字段的信息
|
|
||||||
List fieldLists = fieldBiz.queryBySQL(contentModel.getCmTableName(), listFieldName, where); |
|
||||||
|
|
||||||
// 判断新增字段表中是否存在该文章,不存在则保存,否则更新
|
|
||||||
if (fieldLists == null || fieldLists.size() == 0) { |
|
||||||
fieldBiz.insertBySQL(contentModel.getCmTableName(), param); |
|
||||||
} else { |
|
||||||
fieldBiz.updateBySQL(contentModel.getCmTableName(), param, where); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
switch (column.getColumnType()) { |
|
||||||
case ColumnEntity.COLUMN_TYPE_COVER: |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, column.getCategoryId() + "", ""); |
|
||||||
break; |
|
||||||
case ColumnEntity.COLUMN_TYPE_LIST: |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, column.getCategoryId() + "", |
|
||||||
this.redirectBack(request, false)); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 显示更新内容 |
|
||||||
* |
|
||||||
* @param request |
|
||||||
* @return 修改文章的页面地址 |
|
||||||
*/ |
|
||||||
@RequestMapping("/{id}/edit") |
|
||||||
public String edit(@PathVariable int id, ModelMap model, HttpServletRequest request) { |
|
||||||
|
|
||||||
// 如果_categoryId大于0表示是编辑封面栏目,应该先查询分类下面的唯一一篇文章
|
|
||||||
String categoryTitle = request.getParameter("categoryTitle"); |
|
||||||
// 板块id
|
|
||||||
int categoryId = BasicUtil.getInt("categoryId", 0); |
|
||||||
ArticleEntity articleEntity = null; |
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
model.addAttribute("appId", appId); |
|
||||||
model.addAttribute("articleImagesUrl", "/upload/"+BasicUtil.getAppId()+"/"); |
|
||||||
model.addAttribute("action", "update"); |
|
||||||
|
|
||||||
if (categoryId > 0) { // 分类获取文章
|
|
||||||
articleEntity = articleBiz.getByCategoryId(categoryId); |
|
||||||
ColumnEntity column = articleEntity.getColumn(); |
|
||||||
int columnType = column.getColumnType(); |
|
||||||
model.addAttribute("article", articleEntity); |
|
||||||
// 文章属性
|
|
||||||
model.addAttribute("articleType", DictUtil.list("文章属性")); |
|
||||||
model.addAttribute("categoryTitle", categoryTitle); |
|
||||||
model.addAttribute("categoryId", categoryId);// 编辑封面
|
|
||||||
model.addAttribute("isEditCategory", true);// 编辑封面
|
|
||||||
model.addAttribute("columnType", columnType); |
|
||||||
return "/cms/article/article_form"; |
|
||||||
} else if (id > 0) { // 文章id获取
|
|
||||||
// 允许编辑文章时更改分类
|
|
||||||
List<ColumnEntity> list = columnBiz.queryAll(appId, this.getModelCodeId(request, ModelCode.CMS_COLUMN)); |
|
||||||
@SuppressWarnings("static-access") |
|
||||||
String listJsonString = JSONArray.toJSONString(list); |
|
||||||
request.setAttribute("listColumn", listJsonString); |
|
||||||
// 文章属性
|
|
||||||
model.addAttribute("articleType", DictUtil.list("文章属性")); |
|
||||||
|
|
||||||
articleEntity = (ArticleEntity) articleBiz.getEntity(id); |
|
||||||
model.addAttribute("article", articleEntity); |
|
||||||
// 判断是否是封面类型的栏目,如果是封面类型的栏目有些信息需要屏蔽,例如分类
|
|
||||||
ColumnEntity column = articleEntity.getColumn(); |
|
||||||
int columnType = column.getColumnType(); |
|
||||||
if (column.getColumnType() == ColumnEntity.ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) { |
|
||||||
model.addAttribute("categoryTitle", categoryTitle); |
|
||||||
model.addAttribute("categoryId", column.getCategoryId());// 编辑封面
|
|
||||||
model.addAttribute("isEditCategory", true);// 编辑封面
|
|
||||||
} else { |
|
||||||
model.addAttribute("categoryTitle", articleEntity.getColumn().getCategoryTitle()); |
|
||||||
model.addAttribute("isEditCategory", false);// 编辑文章
|
|
||||||
} |
|
||||||
model.addAttribute("columnType", columnType); |
|
||||||
model.addAttribute("categoryId", column.getCategoryId());// 编辑封面
|
|
||||||
model.addAttribute("websiteId", BasicUtil.getAppId()); |
|
||||||
return "/cms/article/article_form"; |
|
||||||
} else {// 非法
|
|
||||||
// return "/cms/article/article_form");
|
|
||||||
return this.redirectBack(request, true); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除文章 |
|
||||||
* |
|
||||||
* @param request |
|
||||||
* @param response |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete") |
|
||||||
@RequiresPermissions("article:del") |
|
||||||
public void delete(@RequestBody List<ArticleEntity> articles, HttpServletRequest request, HttpServletResponse response) { |
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
int[] ids = new int[articles.size()]; |
|
||||||
//循环获取id数据
|
|
||||||
for(int i=0;i<articles.size();i++){ |
|
||||||
ids[i] = articles.get(i).getArticleID(); |
|
||||||
} |
|
||||||
|
|
||||||
if (ids.length == 0 || ids == null) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, "", this.redirectBack(request, false)); |
|
||||||
return; |
|
||||||
} |
|
||||||
// 删除多个帖子
|
|
||||||
articleBiz.deleteBasic(ids); |
|
||||||
FileUtil.del(articles); |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, "", this.redirectBack(request, false)); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 遍历出所有文章新增字段的信息 |
|
||||||
* |
|
||||||
* @param listField |
|
||||||
* :字段列表 |
|
||||||
* @param request |
|
||||||
* @param articleId |
|
||||||
* 文章id |
|
||||||
* @return 字段信息 |
|
||||||
*/ |
|
||||||
private Map checkField(List<ContentModelFieldEntity> listField, HttpServletRequest request, int articleId) { |
|
||||||
Map<String, Object> mapParams = new HashMap(); |
|
||||||
// 压入默认的basicId字段
|
|
||||||
mapParams.put("basicId", articleId); |
|
||||||
// 遍历字段名
|
|
||||||
for (int i = 0; i < listField.size(); i++) { |
|
||||||
ContentModelFieldEntity field = (ContentModelFieldEntity) listField.get(i); |
|
||||||
String fieldName = field.getFieldFieldName(); |
|
||||||
// 判断字段类型是否为checkbox类型
|
|
||||||
if (field.getFieldType() == checkBox) { |
|
||||||
String langtyp[] = request.getParameterValues(field.getFieldFieldName()); |
|
||||||
if (langtyp != null) { |
|
||||||
StringBuffer sb = new StringBuffer(); |
|
||||||
for (int j = 0; j < langtyp.length; j++) { |
|
||||||
sb.append(langtyp[j] + ","); |
|
||||||
} |
|
||||||
mapParams.put(field.getFieldFieldName(), sb.toString()); |
|
||||||
} else { |
|
||||||
mapParams.put(field.getFieldFieldName(), langtyp); |
|
||||||
} |
|
||||||
} else { |
|
||||||
if (StringUtils.isBlank(request.getParameter(field.getFieldFieldName()))) { |
|
||||||
mapParams.put(field.getFieldFieldName(), null); |
|
||||||
} else { |
|
||||||
mapParams.put(field.getFieldFieldName(), request.getParameter(field.getFieldFieldName())); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
return mapParams; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询单页栏目是否绑定了文章 |
|
||||||
* |
|
||||||
* @param article |
|
||||||
* 文章对象 |
|
||||||
*/ |
|
||||||
@RequestMapping("/{id}/queryColumnArticle") |
|
||||||
public void queryColumnArticle(@PathVariable int id, HttpServletResponse response) { |
|
||||||
List articls = articleBiz.queryListByColumnId(id); |
|
||||||
if (articls == null || articls.size() == 0) { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, true, null); |
|
||||||
} else { |
|
||||||
this.outJson(response, ModelCode.CMS_ARTICLE, false, null); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
@ -1,317 +0,0 @@ |
|||||||
package net.mingsoft.cms.action; |
|
||||||
|
|
||||||
|
|
||||||
import java.io.File; |
|
||||||
import java.sql.Timestamp; |
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
|
|
||||||
import net.mingsoft.basic.util.ArrysUtil; |
|
||||||
import net.mingsoft.mdiy.util.DictUtil; |
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Controller; |
|
||||||
import org.springframework.ui.ModelMap; |
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute; |
|
||||||
import org.springframework.web.bind.annotation.PathVariable; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.ResponseBody; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray; |
|
||||||
|
|
||||||
import net.mingsoft.basic.action.BaseAction; |
|
||||||
import net.mingsoft.basic.bean.EUListBean; |
|
||||||
import net.mingsoft.basic.biz.ICategoryBiz; |
|
||||||
import net.mingsoft.basic.biz.IColumnBiz; |
|
||||||
import net.mingsoft.basic.biz.IModelBiz; |
|
||||||
import net.mingsoft.basic.constant.Const; |
|
||||||
import net.mingsoft.basic.constant.ModelCode; |
|
||||||
import net.mingsoft.basic.constant.e.SessionConstEnum; |
|
||||||
import net.mingsoft.basic.entity.ColumnEntity; |
|
||||||
import net.mingsoft.basic.entity.ManagerEntity; |
|
||||||
import net.mingsoft.basic.util.BasicUtil; |
|
||||||
import net.mingsoft.basic.util.FileUtil; |
|
||||||
import net.mingsoft.basic.util.StringUtil; |
|
||||||
import net.mingsoft.mdiy.util.ParserUtil; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 铭飞MS平台,通用栏目分类,为了区分文章栏目与其他栏目的权限,该类是从basic模块复制过来 |
|
||||||
* @author 铭飞开发团队 |
|
||||||
* @version |
|
||||||
* 版本号:100-000-000<br/> |
|
||||||
* 创建日期:2017年8月9日<br/> |
|
||||||
* 历史修订:<br/> |
|
||||||
*/ |
|
||||||
@Controller("articleColumnAction") |
|
||||||
@RequestMapping("/${ms.manager.path}/cms/column") |
|
||||||
public class ColumnAction extends BaseAction{ |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目业务层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IColumnBiz columnBiz; |
|
||||||
@Autowired |
|
||||||
private ICategoryBiz categoryBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 模块业务层注入 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IModelBiz modelBiz; |
|
||||||
/** |
|
||||||
* 返回主界面index |
|
||||||
*/ |
|
||||||
@RequestMapping("/index") |
|
||||||
@RequiresPermissions("cms:column:view") |
|
||||||
public String index(HttpServletResponse response,HttpServletRequest request,ModelMap model){ |
|
||||||
model.addAttribute("model", "cms"); |
|
||||||
return "/basic/column/index"; |
|
||||||
} |
|
||||||
/** |
|
||||||
* 栏目添加跳转页面 |
|
||||||
* |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
public String add(HttpServletRequest request,ModelMap model) { |
|
||||||
// 站点ID
|
|
||||||
int appId =BasicUtil.getAppId(); |
|
||||||
List<ColumnEntity> list = columnBiz.queryAll(appId, BasicUtil.getModelCodeId(net.mingsoft.cms.constant.ModelCode.CMS_COLUMN.toString())); |
|
||||||
ColumnEntity columnSuper = new ColumnEntity(); |
|
||||||
// 栏目属性
|
|
||||||
model.addAttribute("columnFlag", DictUtil.list("栏目属性")); |
|
||||||
model.addAttribute("appId",appId); |
|
||||||
model.addAttribute("columnSuper", columnSuper); |
|
||||||
model.addAttribute("column",new ColumnEntity()); |
|
||||||
model.addAttribute("listColumn", JSONArray.toJSONString(list)); |
|
||||||
model.addAttribute("model", "cms"); |
|
||||||
model.addAttribute("websiteId", appId); |
|
||||||
|
|
||||||
return "/basic/column/form"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 后台验证填写的栏目信息是否合法 |
|
||||||
* @param column 栏目信息 |
|
||||||
* @param response |
|
||||||
* @return false:不合法 true:合法 |
|
||||||
*/ |
|
||||||
private boolean checkForm(ColumnEntity column, HttpServletResponse response){ |
|
||||||
//栏目标题空值验证
|
|
||||||
if(StringUtils.isBlank(column.getCategoryTitle())){ |
|
||||||
this.outJson( response, ModelCode.COLUMN, false, getResString("err.empty", this.getResString("categoryTitle"))); |
|
||||||
return false; |
|
||||||
} |
|
||||||
//栏目标题长度验证
|
|
||||||
if(!StringUtil.checkLength(column.getCategoryTitle(), 1, 31)){ |
|
||||||
this.outJson( response, ModelCode.COLUMN, false, getResString("err.length", this.getResString("categoryTitle"), "1", "30")); |
|
||||||
return false; |
|
||||||
} |
|
||||||
//栏目属性空值验证
|
|
||||||
if(StringUtils.isBlank(column.getColumnType()+"")){ |
|
||||||
this.outJson( response, ModelCode.COLUMN, false, getResString("err.empty", this.getResString("columnType"))); |
|
||||||
return false; |
|
||||||
} |
|
||||||
|
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 组织栏目链接地址 |
|
||||||
* @param request |
|
||||||
* @param column 栏目实体 |
|
||||||
*/ |
|
||||||
private void columnPath(HttpServletRequest request,ColumnEntity column){ |
|
||||||
StringBuffer columnPath = new StringBuffer(); |
|
||||||
String file = BasicUtil.getRealPath("")+ParserUtil.HTML+File.separator+ column.getAppId(); |
|
||||||
String delFile = ""; |
|
||||||
//修改栏目路径时,删除已存在的文件夹
|
|
||||||
column = (ColumnEntity) columnBiz.getEntity(column.getCategoryId()); |
|
||||||
delFile = file + column.getColumnPath(); |
|
||||||
if(!StringUtils.isBlank(delFile)){ |
|
||||||
File delFileName = new File(delFile); |
|
||||||
delFileName.delete(); |
|
||||||
} |
|
||||||
//若为顶级栏目,则路径为:/+栏目ID
|
|
||||||
if(column.getCategoryCategoryId() == 0){ |
|
||||||
column.setColumnPath(File.separator+column.getCategoryId()); |
|
||||||
file = file + File.separator + column.getCategoryId(); |
|
||||||
} else { |
|
||||||
List<ColumnEntity> list = columnBiz.queryParentColumnByColumnId(column.getCategoryId()); |
|
||||||
if(list != null){ |
|
||||||
StringBuffer temp = new StringBuffer(); |
|
||||||
for(int i = list.size()-1; i>=0; i--){ |
|
||||||
ColumnEntity entity = list.get(i); |
|
||||||
columnPath.append(File.separator).append(entity.getCategoryId()); |
|
||||||
temp.append(File.separator).append(entity.getCategoryId()); |
|
||||||
} |
|
||||||
column.setColumnPath(columnPath.append(File.separator).append(column.getCategoryId()).toString()); |
|
||||||
file = file + temp.toString() + File.separator + column.getCategoryId(); |
|
||||||
} |
|
||||||
} |
|
||||||
columnBiz.updateEntity(column); |
|
||||||
//生成文件夹
|
|
||||||
File fileName = new File(file); |
|
||||||
fileName.mkdir(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* @param column 栏目表实体 |
|
||||||
* <i>column参数包含字段信息参考:</i><br/> |
|
||||||
* columnCategoryid:多个columnCategoryid直接用逗号隔开,例如columnCategoryid=1,2,3,4 |
|
||||||
* 批量删除栏目表 |
|
||||||
* <dt><span class="strong">返回</span></dt><br/> |
|
||||||
* <dd>{code:"错误编码",<br/> |
|
||||||
* result:"true|false",<br/> |
|
||||||
* resultMsg:"错误信息"<br/> |
|
||||||
* }</dd> |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete") |
|
||||||
@ResponseBody |
|
||||||
public void delete(HttpServletResponse response, HttpServletRequest request) { |
|
||||||
int[] ids = BasicUtil.getInts("ids", ","); |
|
||||||
ColumnEntity column =new ColumnEntity(); |
|
||||||
for(int i=0;i<ids.length;i++){ |
|
||||||
column = (ColumnEntity) columnBiz.getEntity(ids[i]); |
|
||||||
columnBiz.deleteCategory(ids[i]); |
|
||||||
FileUtil.del(column); |
|
||||||
}; |
|
||||||
this.outJson(response, true); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目更新页面跳转 |
|
||||||
* @param columnId 栏目ID |
|
||||||
* @param request |
|
||||||
* @param model |
|
||||||
* @return 编辑栏目页 |
|
||||||
*/ |
|
||||||
@RequestMapping("/{columnId}/edit") |
|
||||||
public String edit(@PathVariable int columnId, HttpServletRequest request,ModelMap model) { |
|
||||||
// 获取管理实体
|
|
||||||
ManagerEntity managerSession = (ManagerEntity) BasicUtil.getSession( SessionConstEnum.MANAGER_SESSION); |
|
||||||
// 站点ID
|
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
List<ColumnEntity> list = new ArrayList<ColumnEntity>(); |
|
||||||
// 判断管理员权限,查询其管理的栏目集合
|
|
||||||
list = columnBiz.queryAll(appId, BasicUtil.getModelCodeId(net.mingsoft.cms.constant.ModelCode.CMS_COLUMN.toString())); |
|
||||||
//查询当前栏目实体
|
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(columnId); |
|
||||||
// 栏目属性
|
|
||||||
model.addAttribute("columnFlag", DictUtil.list("栏目属性")); |
|
||||||
model.addAttribute("appId",appId); |
|
||||||
model.addAttribute("column", column); |
|
||||||
model.addAttribute("columnc", column.getCategoryId()); |
|
||||||
ColumnEntity columnSuper = new ColumnEntity(); |
|
||||||
// 获取父栏目对象
|
|
||||||
if (column.getCategoryCategoryId() != Const.COLUMN_TOP_CATEGORY_ID) { |
|
||||||
columnSuper = (ColumnEntity) columnBiz.getEntity(column.getCategoryCategoryId()); |
|
||||||
} |
|
||||||
model.addAttribute("columnSuper", columnSuper); |
|
||||||
model.addAttribute("listColumn", JSONArray.toJSONString(list)); |
|
||||||
model.addAttribute("model", "cms"); |
|
||||||
model.addAttribute("websiteId", appId); |
|
||||||
return "/basic/column/form"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目首页面列表显示 |
|
||||||
*/ |
|
||||||
@SuppressWarnings("deprecation") |
|
||||||
@RequestMapping("/list") |
|
||||||
public void list(@ModelAttribute ColumnEntity column,HttpServletResponse response, HttpServletRequest request,ModelMap model) { |
|
||||||
|
|
||||||
// 站点ID有session获取
|
|
||||||
int websiteId = BasicUtil.getAppId(); |
|
||||||
// 需要打开的栏目节点树的栏目ID
|
|
||||||
List list = columnBiz.queryAll(websiteId, BasicUtil.getModelCodeId(net.mingsoft.cms.constant.ModelCode.CMS_COLUMN.toString())); |
|
||||||
EUListBean _list = new EUListBean(list, list.size()); |
|
||||||
this.outJson(response, net.mingsoft.base.util.JSONArray.toJSONString(_list)); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目添加 |
|
||||||
* |
|
||||||
* @param column |
|
||||||
* 栏目对象 |
|
||||||
* @return 返回页面跳转 |
|
||||||
*/ |
|
||||||
@RequestMapping("/save") |
|
||||||
public void save(@ModelAttribute ColumnEntity column,HttpServletRequest request,HttpServletResponse response) { |
|
||||||
if(!checkForm(column,response)){ |
|
||||||
return; |
|
||||||
} |
|
||||||
column.setCategoryAppId( BasicUtil.getAppId()); |
|
||||||
column.setAppId(BasicUtil.getAppId()); |
|
||||||
column.setCategoryManagerId(getManagerBySession(request).getManagerId()); |
|
||||||
column.setCategoryDateTime(new Timestamp(System.currentTimeMillis())); |
|
||||||
column.setCategoryModelId(BasicUtil.getModelCodeId(net.mingsoft.cms.constant.ModelCode.CMS_COLUMN.toString())); |
|
||||||
String checkboxType = BasicUtil.getString("checkboxType"); |
|
||||||
//如果选择一个属性不做排序操作
|
|
||||||
if(!StringUtils.isEmpty(checkboxType) && checkboxType.length()>2){ |
|
||||||
column.setColumnFlag(ArrysUtil.sort(checkboxType, ",")+","); |
|
||||||
}else{ |
|
||||||
column.setColumnFlag(checkboxType); |
|
||||||
} |
|
||||||
if(column.getColumnType()==ColumnEntity.ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()){ |
|
||||||
column.setColumnListUrl(null); |
|
||||||
} |
|
||||||
columnBiz.saveCategory(column); |
|
||||||
this.columnPath(request,column); |
|
||||||
this.outJson(response, ModelCode.COLUMN, true,null,JSONArray.toJSONString(column.getCategoryId())); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 更新栏目 |
|
||||||
* @param column 栏目实体 |
|
||||||
* @param request |
|
||||||
* @param response |
|
||||||
*/ |
|
||||||
@RequestMapping("/update") |
|
||||||
@ResponseBody |
|
||||||
public void update(@ModelAttribute ColumnEntity column,HttpServletRequest request,HttpServletResponse response) { |
|
||||||
//获取站点ID
|
|
||||||
int websiteId = BasicUtil.getAppId(); |
|
||||||
//检测栏目信息是否合法
|
|
||||||
if(!checkForm(column,response)){ |
|
||||||
return; |
|
||||||
} |
|
||||||
//若栏目管理属性为单页,则栏目的列表模板地址设为Null
|
|
||||||
if(column.getColumnType()==ColumnEntity.ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()){ |
|
||||||
column.setColumnListUrl(null); |
|
||||||
} |
|
||||||
column.setCategoryManagerId(getManagerBySession(request).getManagerId()); |
|
||||||
column.setAppId(websiteId); |
|
||||||
String checkboxType = BasicUtil.getString("checkboxType"); |
|
||||||
//如果选择一个属性不做排序操作
|
|
||||||
if(!StringUtils.isEmpty(checkboxType) && checkboxType.length()>2){ |
|
||||||
column.setColumnFlag(ArrysUtil.sort(checkboxType, ",")+","); |
|
||||||
}else{ |
|
||||||
column.setColumnFlag(checkboxType); |
|
||||||
} |
|
||||||
columnBiz.updateCategory(column); |
|
||||||
this.columnPath(request,column); |
|
||||||
//查询当前栏目是否有子栏目,
|
|
||||||
List<ColumnEntity> childList = columnBiz.queryChild(column.getCategoryId(), websiteId,BasicUtil.getModelCodeId(net.mingsoft.cms.constant.ModelCode.CMS_COLUMN.toString()),null); |
|
||||||
if(childList != null && childList.size()>0){ |
|
||||||
//改变子栏目的顶级栏目ID为当前栏目的父级栏目ID
|
|
||||||
for(int i=0;i<childList.size();i++){ |
|
||||||
childList.get(i).setCategoryCategoryId(column.getCategoryId()); |
|
||||||
childList.get(i).setCategoryManagerId(getManagerBySession(request).getManagerId()); |
|
||||||
childList.get(i).setAppId(websiteId); |
|
||||||
columnBiz.updateCategory(childList.get(i)); |
|
||||||
//组织子栏目链接地址
|
|
||||||
this.columnPath(request, childList.get(i)); |
|
||||||
} |
|
||||||
} |
|
||||||
this.outJson(response, ModelCode.COLUMN, true,null,JSONArray.toJSONString(column.getCategoryId())); |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,233 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.action.web; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Controller; |
|
||||||
import org.springframework.web.bind.annotation.GetMapping; |
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute; |
|
||||||
import org.springframework.web.bind.annotation.PathVariable; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.RequestMethod; |
|
||||||
import org.springframework.web.bind.annotation.ResponseBody; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray; |
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation; |
|
||||||
import net.mingsoft.base.filter.DateValueFilter; |
|
||||||
import net.mingsoft.basic.action.BaseAction; |
|
||||||
import net.mingsoft.basic.bean.ListBean; |
|
||||||
import net.mingsoft.basic.biz.IColumnBiz; |
|
||||||
import net.mingsoft.basic.entity.ColumnEntity; |
|
||||||
import net.mingsoft.basic.util.BasicUtil; |
|
||||||
import net.mingsoft.cms.biz.IArticleBiz; |
|
||||||
import net.mingsoft.cms.entity.ArticleEntity; |
|
||||||
import net.mingsoft.mdiy.biz.IContentModelBiz; |
|
||||||
import net.mingsoft.mdiy.biz.IContentModelFieldBiz; |
|
||||||
import net.mingsoft.mdiy.entity.ContentModelEntity; |
|
||||||
import springfox.documentation.annotations.ApiIgnore; |
|
||||||
|
|
||||||
/** |
|
||||||
* |
|
||||||
* @ClassName: ArticleAction |
|
||||||
* @Description:TODO 前段文章控制,如果标签不能满足可以使用这个控制来满足用户的查询文章需求,主要是通过ajax返回json数据格式 |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:52:44 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
@Controller("jsonApiArticle") |
|
||||||
@RequestMapping("/mcms/article") |
|
||||||
public class ArticleAction extends BaseAction { |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章管理业务处理层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IArticleBiz articleBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目管理业务处理层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IColumnBiz columnBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 内容模型管理业务处理层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentModelBiz contentModelBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 自定义字段管理业务处理层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentModelFieldBiz fieldBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章信息 |
|
||||||
* |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
* <dt><span class="strong">返回</span></dt><br/> |
|
||||||
* {"basicCategoryId":分类编号,basicTitle |
|
||||||
* :"标题",basicDescription:"描述",basicThumbnails:"缩略图", |
|
||||||
* basicDateTime:"发布时间",basicUpdateTime:"更新时间","basicHit":点击数, |
|
||||||
* "basicId":编号 articleContent:"文章内容","basicSort":排序,[自定义模型字段]} |
|
||||||
*/ |
|
||||||
@GetMapping("/{basicId}/detail") |
|
||||||
@ResponseBody |
|
||||||
public void detail(@PathVariable int basicId, HttpServletRequest request, HttpServletResponse response) { |
|
||||||
ArticleEntity article = articleBiz.getById(basicId); |
|
||||||
if (article == null) { |
|
||||||
this.outJson(response, ""); |
|
||||||
return; |
|
||||||
} |
|
||||||
// 获取文章栏目id获取栏目实体
|
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(article.getBasicCategoryId()); |
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentModelBiz |
|
||||||
.getEntity(column.getColumnContentModelId()); |
|
||||||
|
|
||||||
// 判断内容模型的值
|
|
||||||
if (contentModel != null) { |
|
||||||
Map where = new HashMap(); |
|
||||||
// 压入basicId字段的值
|
|
||||||
where.put("basicId", basicId); |
|
||||||
// 遍历所有的字段实体,得到字段名列表信息
|
|
||||||
List<String> listFieldName = new ArrayList<String>(); |
|
||||||
listFieldName.add("basicId"); |
|
||||||
// 查询新增字段的信息
|
|
||||||
List fieldLists = fieldBiz.queryBySQL(contentModel.getCmTableName(), listFieldName, where); |
|
||||||
if (fieldLists.size() > 0) { |
|
||||||
Map map = (Map) fieldLists.get(0); |
|
||||||
article.setExtendsFields(map); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
this.outJson(response, JSONObject.toJSONStringWithDateFormat(article, "yyyy-MM-dd hh:mm:ss")); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 文章列表信息 |
|
||||||
* |
|
||||||
* @param pageSize |
|
||||||
* 一页显示数量 |
|
||||||
* @param pageNum |
|
||||||
* 当前页码 |
|
||||||
* @param basicCategoryId |
|
||||||
* 分类编号 |
|
||||||
* <dt><span class="strong">返回</span></dt><br/> |
|
||||||
* {"list":"[{ |
|
||||||
* "basicTitle":"标题", |
|
||||||
* "basicDescription":"描述", |
|
||||||
* "basicThumbnails":"缩略图", |
|
||||||
* "basicDateTime":"发布时间", |
|
||||||
* "basicUpdateTime":"更新时间", |
|
||||||
* "basicHit":点击数, |
|
||||||
* "basicId":编号, |
|
||||||
* "articleContent":文章内容, |
|
||||||
* "articleAuthor":文章作者 |
|
||||||
* "articleType":文章属性, |
|
||||||
* "articleSource":文章的来源, |
|
||||||
* "articleUrl":文章跳转链接地址, |
|
||||||
* "articleKeyword":文章关键字, |
|
||||||
* "articleCategoryId":文章所属的分类Id, |
|
||||||
* "articleTypeLinkURL":文章分类url地址,主要是用户生成html使用, |
|
||||||
* "order":"排序方式", |
|
||||||
* "orderBy":"排序字段 |
|
||||||
* }], |
|
||||||
* "page":{"endRow": 2, 当前页面最后一个元素在数据库中的行号 |
|
||||||
* "firstPage": 1, 第一页页码 |
|
||||||
* "hasNextPage": true存在下一页false不存在, |
|
||||||
* "hasPreviousPage": true存在上一页false不存在, |
|
||||||
* "isFirstPage": true是第一页false不是第一页, |
|
||||||
* "isLastPage": true是最后一页false不是最后一页, |
|
||||||
* "lastPage": 最后一页的页码, |
|
||||||
* "navigatePages": 导航数量,实现 1...5.6.7....10效果, |
|
||||||
* "navigatepageNums": []导航页码集合, |
|
||||||
* "nextPage": 下一页, |
|
||||||
* "pageNum": 当前页码, |
|
||||||
* "pageSize": 一页显示数量, |
|
||||||
* "pages": 总页数, |
|
||||||
* "prePage": 上一页, |
|
||||||
* "size": 总记录, |
|
||||||
* "startRow":当前页面第一个元素在数据库中的行号, |
|
||||||
* "total":总记录数量 |
|
||||||
* } |
|
||||||
*/ |
|
||||||
@RequestMapping(value = "/list",method= RequestMethod.GET) |
|
||||||
@ApiOperation(value="文章列表信息") |
|
||||||
@ResponseBody |
|
||||||
public void list(@ModelAttribute @ApiIgnore ArticleEntity article, HttpServletRequest request, HttpServletResponse response) { |
|
||||||
int appId = BasicUtil.getAppId(); |
|
||||||
int[] ids = null; |
|
||||||
if (article.getBasicCategoryId()>0) { |
|
||||||
ids = new int[]{article.getBasicCategoryId()}; |
|
||||||
} |
|
||||||
//默认为desc排序
|
|
||||||
boolean isOrder = true; |
|
||||||
if(!StringUtils.isBlank(article.getOrder())){ |
|
||||||
String basicOrder = article.getOrder(); |
|
||||||
if(basicOrder.equalsIgnoreCase("asc")){ |
|
||||||
isOrder = false; |
|
||||||
} |
|
||||||
} |
|
||||||
BasicUtil.startPage(); |
|
||||||
List<ArticleEntity> list = articleBiz.query(appId, ids, null, null, article.getOrderBy(), isOrder, null, null, article); |
|
||||||
|
|
||||||
for(ArticleEntity _article : list){ |
|
||||||
// 获取文章栏目id获取栏目实体
|
|
||||||
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(_article.getBasicCategoryId()); |
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentModelBiz |
|
||||||
.getEntity(column.getColumnContentModelId()); |
|
||||||
|
|
||||||
// 判断内容模型的值
|
|
||||||
if (contentModel != null) { |
|
||||||
Map where = new HashMap(); |
|
||||||
// 压入basicId字段的值
|
|
||||||
where.put("basicId", _article.getBasicId()); |
|
||||||
// 遍历所有的字段实体,得到字段名列表信息
|
|
||||||
List<String> listFieldName = new ArrayList<String>(); |
|
||||||
listFieldName.add("basicId"); |
|
||||||
// 查询新增字段的信息
|
|
||||||
List fieldLists = fieldBiz.queryBySQL(contentModel.getCmTableName(), listFieldName, where); |
|
||||||
if (fieldLists.size() > 0) { |
|
||||||
Map map = (Map) fieldLists.get(0); |
|
||||||
_article.setExtendsFields(map); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
this.outJson(response, JSONArray.toJSONString(new ListBean(list, BasicUtil.endPage(list)),new DateValueFilter("yyyy-MM-dd HH:mm:ss"))); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,266 +0,0 @@ |
|||||||
package net.mingsoft.cms.action.web; |
|
||||||
|
|
||||||
import io.swagger.annotations.Api; |
|
||||||
import io.swagger.annotations.ApiImplicitParam; |
|
||||||
import io.swagger.annotations.ApiImplicitParams; |
|
||||||
import io.swagger.annotations.ApiOperation; |
|
||||||
import net.mingsoft.base.entity.BaseEntity; |
|
||||||
import net.mingsoft.base.entity.ResultData; |
|
||||||
import net.mingsoft.basic.bean.EUListBean; |
|
||||||
import net.mingsoft.basic.util.BasicUtil; |
|
||||||
import net.mingsoft.basic.util.StringUtil; |
|
||||||
import net.mingsoft.cms.biz.IContentBiz; |
|
||||||
import net.mingsoft.cms.entity.ContentEntity; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Controller; |
|
||||||
import org.springframework.ui.ModelMap; |
|
||||||
import org.springframework.validation.BindingResult; |
|
||||||
import org.springframework.web.bind.annotation.GetMapping; |
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute; |
|
||||||
import org.springframework.web.bind.annotation.PathVariable; |
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.ResponseBody; |
|
||||||
import springfox.documentation.annotations.ApiIgnore; |
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.List; |
|
||||||
/** |
|
||||||
* 文章管理控制层 |
|
||||||
* @author 铭飞开发团队 |
|
||||||
* 创建日期:2019-11-28 15:12:32<br/> |
|
||||||
* 历史修订:<br/> |
|
||||||
*/ |
|
||||||
@Api(value = "文章接口") |
|
||||||
@Controller("WebcmsContentAction") |
|
||||||
@RequestMapping("/cms/content") |
|
||||||
public class ContentAction extends net.mingsoft.cms.action.BaseAction{ |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 注入文章业务层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentBiz contentBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 返回主界面index |
|
||||||
*/ |
|
||||||
@GetMapping("/index") |
|
||||||
public String index(HttpServletResponse response,HttpServletRequest request){ |
|
||||||
return "/cms/content/index"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询文章列表 |
|
||||||
* @param content 文章实体 |
|
||||||
*/ |
|
||||||
@ApiOperation(value = "查询文章列表接口") |
|
||||||
@ApiImplicitParams({ |
|
||||||
@ApiImplicitParam(name = "contentTitle", value = "文章标题", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentCategoryId", value = "所属栏目", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentType", value = "文章类型", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDisplay", value = "是否显示", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentAuthor", value = "文章作者", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSource", value = "文章来源", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDatetime", value = "发布时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSort", value = "自定义顺序", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentImg", value = "文章缩略图", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDescription", value = "描述", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentKeyword", value = "关键字", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDetails", value = "文章内容", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentUrl", value = "文章跳转链接地址", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "appid", value = "文章管理的应用id", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createBy", value = "创建人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createDate", value = "创建时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateBy", value = "修改人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateDate", value = "修改时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "del", value = "删除标记", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required =false,paramType="query"), |
|
||||||
}) |
|
||||||
@RequestMapping("/list") |
|
||||||
@ResponseBody |
|
||||||
public ResultData list(@ModelAttribute @ApiIgnore ContentEntity content,HttpServletResponse response, HttpServletRequest request,@ApiIgnore ModelMap model,BindingResult result) { |
|
||||||
BasicUtil.startPage(); |
|
||||||
List contentList = contentBiz.query(content); |
|
||||||
return ResultData.build().success(new EUListBean(contentList,(int)BasicUtil.endPage(contentList).getTotal())); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 返回编辑界面content_form |
|
||||||
*/ |
|
||||||
@GetMapping("/form") |
|
||||||
public String form(@ModelAttribute ContentEntity content,HttpServletResponse response,HttpServletRequest request,ModelMap model){ |
|
||||||
if(content.getId()!=null){ |
|
||||||
BaseEntity contentEntity = contentBiz.getEntity(Integer.parseInt(content.getId())); |
|
||||||
model.addAttribute("contentEntity",contentEntity); |
|
||||||
} |
|
||||||
return "/cms/content/form"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章 |
|
||||||
* @param content 文章实体 |
|
||||||
*/ |
|
||||||
@ApiOperation(value = "获取文章列表接口") |
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required =true,paramType="query") |
|
||||||
@GetMapping("/get") |
|
||||||
@ResponseBody |
|
||||||
public ResultData get(@ModelAttribute @ApiIgnore ContentEntity content,HttpServletResponse response, HttpServletRequest request,@ApiIgnore ModelMap model){ |
|
||||||
if(content.getId()==null) { |
|
||||||
return ResultData.build().error(); |
|
||||||
} |
|
||||||
ContentEntity _content = (ContentEntity)contentBiz.getEntity(Integer.parseInt(content.getId())); |
|
||||||
return ResultData.build().success(_content); |
|
||||||
} |
|
||||||
|
|
||||||
@ApiOperation(value = "保存文章列表接口") |
|
||||||
@ApiImplicitParams({ |
|
||||||
@ApiImplicitParam(name = "contentTitle", value = "文章标题", required =true,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentCategoryId", value = "所属栏目", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentType", value = "文章类型", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDisplay", value = "是否显示", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentAuthor", value = "文章作者", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSource", value = "文章来源", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDatetime", value = "发布时间", required =true,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSort", value = "自定义顺序", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentImg", value = "文章缩略图", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDescription", value = "描述", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentKeyword", value = "关键字", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDetails", value = "文章内容", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentUrl", value = "文章跳转链接地址", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "appid", value = "文章管理的应用id", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createBy", value = "创建人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createDate", value = "创建时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateBy", value = "修改人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateDate", value = "修改时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "del", value = "删除标记", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required =false,paramType="query"), |
|
||||||
}) |
|
||||||
|
|
||||||
/** |
|
||||||
* 保存文章 |
|
||||||
* @param content 文章实体 |
|
||||||
*/ |
|
||||||
@PostMapping("/save") |
|
||||||
@ResponseBody |
|
||||||
public ResultData save(@ModelAttribute @ApiIgnore ContentEntity content, HttpServletResponse response, HttpServletRequest request) { |
|
||||||
//验证文章标题的值是否合法
|
|
||||||
if(StringUtil.isBlank(content.getContentTitle())){ |
|
||||||
return ResultData.build().error(getResString("err.empty", this.getResString("content.title"))); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentTitle()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.title"), "0", "200")); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentAuthor()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.author"), "0", "200")); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentSource()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.source"), "0", "200")); |
|
||||||
} |
|
||||||
//验证发布时间的值是否合法
|
|
||||||
if(StringUtil.isBlank(content.getContentDatetime())){ |
|
||||||
return ResultData.build().error(getResString("err.empty", this.getResString("content.datetime"))); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentUrl()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.url"), "0", "200")); |
|
||||||
} |
|
||||||
contentBiz.saveEntity(content); |
|
||||||
return ResultData.build().success(content); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* @param contents 文章实体 |
|
||||||
*/ |
|
||||||
@ApiOperation(value = "批量删除文章列表接口") |
|
||||||
@PostMapping("/delete") |
|
||||||
@ResponseBody |
|
||||||
public ResultData delete(@RequestBody List<ContentEntity> contents,HttpServletResponse response, HttpServletRequest request) { |
|
||||||
int[] ids = new int[contents.size()]; |
|
||||||
for(int i = 0;i<contents.size();i++){ |
|
||||||
ids[i] =Integer.parseInt(contents.get(i).getId()) ; |
|
||||||
} |
|
||||||
contentBiz.delete(ids); |
|
||||||
return ResultData.build().success(); |
|
||||||
} |
|
||||||
/** |
|
||||||
* 更新文章列表 |
|
||||||
* @param content 文章实体 |
|
||||||
*/ |
|
||||||
@ApiOperation(value = "更新文章列表接口") |
|
||||||
@ApiImplicitParams({ |
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required =true,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentTitle", value = "文章标题", required =true,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentCategoryId", value = "所属栏目", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentType", value = "文章类型", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDisplay", value = "是否显示", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentAuthor", value = "文章作者", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSource", value = "文章来源", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDatetime", value = "发布时间", required =true,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentSort", value = "自定义顺序", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentImg", value = "文章缩略图", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDescription", value = "描述", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentKeyword", value = "关键字", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentDetails", value = "文章内容", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "contentUrl", value = "文章跳转链接地址", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "appid", value = "文章管理的应用id", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createBy", value = "创建人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "createDate", value = "创建时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateBy", value = "修改人", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "updateDate", value = "修改时间", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "del", value = "删除标记", required =false,paramType="query"), |
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required =false,paramType="query"), |
|
||||||
}) |
|
||||||
@PostMapping("/update") |
|
||||||
@ResponseBody |
|
||||||
public ResultData update(@ModelAttribute @ApiIgnore ContentEntity content, HttpServletResponse response, |
|
||||||
HttpServletRequest request) { |
|
||||||
//验证文章标题的值是否合法
|
|
||||||
if(StringUtil.isBlank(content.getContentTitle())){ |
|
||||||
return ResultData.build().error(getResString("err.empty", this.getResString("content.title"))); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentTitle()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.title"), "0", "200")); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentAuthor()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.author"), "0", "200")); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentSource()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.source"), "0", "200")); |
|
||||||
} |
|
||||||
//验证发布时间的值是否合法
|
|
||||||
if(StringUtil.isBlank(content.getContentDatetime())){ |
|
||||||
return ResultData.build().error(getResString("err.empty", this.getResString("content.datetime"))); |
|
||||||
} |
|
||||||
if(!StringUtil.checkLength(content.getContentUrl()+"", 0, 200)){ |
|
||||||
return ResultData.build().error(getResString("err.length", this.getResString("content.url"), "0", "200")); |
|
||||||
} |
|
||||||
contentBiz.updateEntity(content); |
|
||||||
return ResultData.build().success(content); |
|
||||||
} |
|
||||||
|
|
||||||
@ApiOperation(value = "查看文章点击数") |
|
||||||
@ApiImplicitParam(name = "contentId", value = "文章编号", required = true,paramType="path") |
|
||||||
@GetMapping(value = "/{contentId}/hit") |
|
||||||
@ResponseBody |
|
||||||
public void hit(@PathVariable @ApiIgnore int contentId, HttpServletRequest request, HttpServletResponse response){ |
|
||||||
if(contentId<=0){ |
|
||||||
this.outString(response, "document.write(0)"); |
|
||||||
return; |
|
||||||
} |
|
||||||
ContentEntity content = (ContentEntity)contentBiz.getEntity(contentId); |
|
||||||
if(content == null){ |
|
||||||
this.outString(response, "document.write(0)"); |
|
||||||
return; |
|
||||||
} |
|
||||||
if(content.getAppId() == null || content.getAppId() != BasicUtil.getAppId()){ |
|
||||||
this.outString(response, "document.write(0)"); |
|
||||||
return; |
|
||||||
} |
|
||||||
this.outString(response, "document.write(" + content.getContentHit() + ")"); |
|
||||||
return; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,191 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.biz; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
import net.mingsoft.basic.biz.IBasicBiz; |
|
||||||
import net.mingsoft.cms.bean.ColumnArticleIdBean; |
|
||||||
import net.mingsoft.cms.entity.ArticleEntity; |
|
||||||
import net.mingsoft.mdiy.entity.ContentModelEntity; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* |
|
||||||
* @ClassName: IArticleBiz |
|
||||||
* @Description:TODO(文章管理业务处理层 || 继承IBasicBiz业务处理层) |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:53:32 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
public interface IArticleBiz extends IBasicBiz { |
|
||||||
|
|
||||||
/** |
|
||||||
* @para webId 网站编号 |
|
||||||
* @param basicCategoryId |
|
||||||
* 栏目编号 |
|
||||||
* @param flag |
|
||||||
* 文章属性 |
|
||||||
* @param noFlag |
|
||||||
* 文章不存在的属性 |
|
||||||
* @param article |
|
||||||
* 文件实体 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
int count(int webId, int[] basicCategoryId, String flag, String noFlag, ArticleEntity article); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 通过分类id获取文章内容 |
|
||||||
* |
|
||||||
* @param categoryId |
|
||||||
* 分类编号 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getByCategoryId(int categoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 通过视图表来查询文章总数 |
|
||||||
* |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
*/ |
|
||||||
public ArticleEntity getById(int basicId); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 查找basicId下一篇文章 |
|
||||||
* |
|
||||||
* @param appId |
|
||||||
* 应用编号 |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getNext(int appId, int basicId, Integer categoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 查找basicId上一篇文章 |
|
||||||
* |
|
||||||
* @param appId |
|
||||||
* 应用编号 |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getPrevious(int appId, int basicId, Integer categoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 高级查询接口,主要提供给有自定义模型的栏目,返回總數 |
|
||||||
* |
|
||||||
* @param contentModel |
|
||||||
* 自定义模型 |
|
||||||
* @param whereMap |
|
||||||
* 條件 |
|
||||||
* @param appId |
|
||||||
* appId 應用編號 |
|
||||||
* @param ids |
|
||||||
* 子类id |
|
||||||
* @return 记录数量 |
|
||||||
* @see IArticleBiz.count |
|
||||||
*/ |
|
||||||
public int getSearchCount(ContentModelEntity contentModel, Map whereMap, int appId, String ids); |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章查询 |
|
||||||
* |
|
||||||
* @para webId 网站编号 |
|
||||||
* @param basicCategoryIds |
|
||||||
* 栏目编号集合 |
|
||||||
* @param flag |
|
||||||
* 文章属性 |
|
||||||
* @param noFlag |
|
||||||
* 文章不存在的属性 |
|
||||||
* @param orderBy |
|
||||||
* 排序字段 |
|
||||||
* @param order |
|
||||||
* true 升序 false 降序 排序方式 |
|
||||||
* @param beginTime 开始时间 |
|
||||||
* @param endTime 结束时间 |
|
||||||
* @param article |
|
||||||
* 文章实体,便于扩展查询 |
|
||||||
* @return 文章集合 |
|
||||||
*/ |
|
||||||
List<ArticleEntity> query(int webId, int[] basicCategoryIds, String flag, String noFlag, String orderBy, |
|
||||||
boolean order, String beginTime,String endTime, ArticleEntity article); |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询文章编号集合 |
|
||||||
* @param categoryId 栏目编号 |
|
||||||
* @param beginTime 开始时间 |
|
||||||
* @param endTime 结束时间 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public List<ColumnArticleIdBean> queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime); |
|
||||||
/** |
|
||||||
* 查询文章编号集合 |
|
||||||
* @param categoryId 栏目编号 |
|
||||||
* @param beginTime 开始时间 |
|
||||||
* @param endTime 结束时间 |
|
||||||
* @param orderBy 排序字段 |
|
||||||
* @param order 排序方式 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public List<ColumnArticleIdBean> queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime,String orderBy,String order); |
|
||||||
/** |
|
||||||
* 根据页面栏目的id获取与其绑定的文章实体 |
|
||||||
* |
|
||||||
* @param basicCategoryId |
|
||||||
* @return 文章实体 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
public List<ArticleEntity> queryListByColumnId(int basicCategoryId); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 高级查询接口,主要提供给有自定义模型的栏目, |
|
||||||
* |
|
||||||
* @param conntentModel |
|
||||||
* 自定义模型 |
|
||||||
* @param whereMap |
|
||||||
* 條件 |
|
||||||
* @param page |
|
||||||
* 分頁 |
|
||||||
* @param appId |
|
||||||
* 應用編號 |
|
||||||
* @param ids |
|
||||||
* 子类id |
|
||||||
* @return 记录集合 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
public List<ArticleEntity> queryListForSearch(ContentModelEntity conntentModel, Map whereMap, |
|
||||||
int appId, List ids, Map orders); |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,222 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.biz.impl; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import net.mingsoft.base.dao.IBaseDao; |
|
||||||
import net.mingsoft.basic.biz.ICategoryBiz; |
|
||||||
import net.mingsoft.basic.biz.IColumnBiz; |
|
||||||
import net.mingsoft.basic.biz.IModelBiz; |
|
||||||
import net.mingsoft.basic.biz.impl.BasicBizImpl; |
|
||||||
import net.mingsoft.basic.util.BasicUtil; |
|
||||||
import net.mingsoft.cms.bean.ColumnArticleIdBean; |
|
||||||
import net.mingsoft.cms.biz.IArticleBiz; |
|
||||||
import net.mingsoft.cms.dao.IArticleDao; |
|
||||||
import net.mingsoft.cms.entity.ArticleEntity; |
|
||||||
import net.mingsoft.mdiy.biz.IContentModelBiz; |
|
||||||
import net.mingsoft.mdiy.entity.ContentModelEntity; |
|
||||||
|
|
||||||
/** |
|
||||||
* |
|
||||||
* @ClassName: ArticleBizImpl |
|
||||||
* @Description:TODO(文章管理业务层实现类 || 继承BasicBizImpl || 实现IArticleBiz) |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:53:53 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
@Service("ArticleBizImpl") |
|
||||||
public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 文章持久化处理 |
|
||||||
*/ |
|
||||||
private IArticleDao articleDao; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 栏目业务处理 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private ICategoryBiz categoryBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 自定类型义业务处理 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IColumnBiz columnBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 自定义模型 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IContentModelBiz contentModelBiz; |
|
||||||
|
|
||||||
/** |
|
||||||
* 模块管理业务层 |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
private IModelBiz modelBiz; |
|
||||||
|
|
||||||
@Override |
|
||||||
@Deprecated |
|
||||||
public int count(int webId, int[] basicCategoryId, String flag, String noFlag,ArticleEntity article) { |
|
||||||
return articleDao.count(webId, basicCategoryId, flag, noFlag,article); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 获取Article的持久化层 |
|
||||||
* |
|
||||||
* @return 返回持Article的久化对象 |
|
||||||
*/ |
|
||||||
public IArticleDao getArticleDao() { |
|
||||||
return articleDao; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getByCategoryId(int categoryId) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
List list = articleDao.getByCategoryId(categoryId); |
|
||||||
if (list != null && list.size() > 0) { |
|
||||||
return (ArticleEntity) list.get(0); |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ArticleEntity getById(int basicId) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
ArticleEntity article = (ArticleEntity) articleDao.getEntity(basicId); |
|
||||||
String contentModelTableName = null; |
|
||||||
int ccmi = article.getColumn().getColumnContentModelId(); // 内容模型编号
|
|
||||||
if (ccmi > 0) { |
|
||||||
ContentModelEntity contentModel = (ContentModelEntity) contentModelBiz.getEntity(ccmi); |
|
||||||
contentModelTableName = contentModel.getCmTableName(); |
|
||||||
} |
|
||||||
List temp = articleDao.getById(basicId, contentModelTableName); |
|
||||||
if (temp != null && temp.size() > 0) { |
|
||||||
return (ArticleEntity) temp.get(0); |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 获取IBaseDao的持久化层 |
|
||||||
* |
|
||||||
* @return 返回持articleDao的久化对象 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
protected IBaseDao getDao() { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return articleDao; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getNext(int appId, int basicId,Integer categoryId) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return articleDao.getNextOrPrevious(appId, basicId, true,categoryId); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
@Deprecated |
|
||||||
public ArticleEntity getPrevious(int appId, int basicId,Integer categoryId) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return articleDao.getNextOrPrevious(appId, basicId, false,categoryId); |
|
||||||
} |
|
||||||
@Override |
|
||||||
public int getSearchCount(ContentModelEntity contentModel,Map wherMap, int websiteId,String ids) { |
|
||||||
if (contentModel!=null) { |
|
||||||
return articleDao.getSearchCount(contentModel.getCmTableName(),wherMap, websiteId,ids); |
|
||||||
} |
|
||||||
return articleDao.getSearchCount(null,wherMap, websiteId,ids); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<ArticleEntity> query(int webId, int[] basicCategoryIds, String flag, String noFlag, String orderBy, |
|
||||||
boolean order,String beginTime,String endTime, ArticleEntity article) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
if(article == null) { |
|
||||||
article = new ArticleEntity(); |
|
||||||
} |
|
||||||
return articleDao.query(webId, basicCategoryIds, flag, noFlag, orderBy, order, beginTime, endTime, article); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 根据页面栏目的id获取与其绑定的文章实体 |
|
||||||
* |
|
||||||
* @param basicCategoryId |
|
||||||
* @return 文章实体 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
@Deprecated |
|
||||||
public List<ArticleEntity> queryListByColumnId(int basicCategoryId) { |
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return articleDao.queryListByColumnId(basicCategoryId); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Deprecated |
|
||||||
public List<ArticleEntity> queryListForSearch(ContentModelEntity conntentModel, Map whereMap, int websiteId,List ids,Map orders) { |
|
||||||
List<ArticleEntity> articleList = new ArrayList<ArticleEntity>(); |
|
||||||
String tableName = null; |
|
||||||
if (conntentModel!=null) { |
|
||||||
tableName = conntentModel.getCmTableName(); |
|
||||||
} |
|
||||||
// 查找所有符合条件的文章实体
|
|
||||||
articleList = articleDao.queryListForSearch(tableName, whereMap, websiteId,ids,orders); |
|
||||||
return articleList; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置Article的持久化层 |
|
||||||
* |
|
||||||
* @param articleDao |
|
||||||
*/ |
|
||||||
@Autowired |
|
||||||
public void setArticleDao(IArticleDao articleDao) { |
|
||||||
this.articleDao = articleDao; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public List<ColumnArticleIdBean> queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime) { |
|
||||||
return this.articleDao.queryIdsByCategoryIdForParser(categoryId,BasicUtil.getAppId(), beginTime, endTime,null,null); |
|
||||||
} |
|
||||||
@Override |
|
||||||
public List<ColumnArticleIdBean> queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime,String orderBy,String order) { |
|
||||||
return this.articleDao.queryIdsByCategoryIdForParser(categoryId,BasicUtil.getAppId(), beginTime, endTime,orderBy,order); |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,169 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.dao; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Param; |
|
||||||
|
|
||||||
import net.mingsoft.cms.bean.ColumnArticleIdBean; |
|
||||||
import net.mingsoft.cms.entity.ArticleEntity; |
|
||||||
|
|
||||||
import net.mingsoft.base.dao.IBaseDao; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* |
|
||||||
* @ClassName: IArticleDao |
|
||||||
* @Description:TODO(文章管理持久化层 || 继承IBaseDao持久化层) |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:55:33 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
public interface IArticleDao extends IBaseDao { |
|
||||||
|
|
||||||
/** |
|
||||||
* @para webId 网站编号 |
|
||||||
* @param basicCategoryIds |
|
||||||
* 栏目编号集合 |
|
||||||
* @param flag |
|
||||||
* 文章属性 |
|
||||||
* @param noFlag |
|
||||||
* 文章不存在的属性 |
|
||||||
* @param article |
|
||||||
* 文章实体,便于扩展查询 |
|
||||||
* @return 文章总数 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
int count(@Param("webId") int webId, @Param("basicCategoryIds") int[] basicCategoryIds, @Param("flag") String flag, |
|
||||||
@Param("noFlag") String noFlag, @Param("article") ArticleEntity article); |
|
||||||
|
|
||||||
/** |
|
||||||
* 通过分类id获取文章内容 |
|
||||||
* |
|
||||||
* @param categoryId |
|
||||||
* 分类编号 |
|
||||||
* @return 文章集合 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
List getByCategoryId(@Param("categoryId") int categoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 通过视图表来查询文章总数 |
|
||||||
* |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
* @param contentModelTableName |
|
||||||
* 对应模块表名称 |
|
||||||
*/ |
|
||||||
List getById(@Param("basicId") int basicId, @Param("contentModelTableName") String contentModelTableName); |
|
||||||
|
|
||||||
/** |
|
||||||
* 查找basicId上一篇文章 |
|
||||||
* |
|
||||||
* @param appId |
|
||||||
* 应用编号 |
|
||||||
* @param basicId |
|
||||||
* 文章编号 |
|
||||||
* @param flag |
|
||||||
* true:上一条 false:下一条 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
ArticleEntity getNextOrPrevious(@Param("appId") int appId, @Param("basicId") int basicId, |
|
||||||
@Param("flag") boolean flag, @Param("categoryId") Integer categoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 根据查询文章实体总数 |
|
||||||
* |
|
||||||
* @param tableName |
|
||||||
* :自定义生成的表名 |
|
||||||
* @param map |
|
||||||
* key:字段名 value:List 字段的各种判断值 list[0]:是否为自定义字段 list[1]:是否为整形 |
|
||||||
* list[2]:是否是等值查询 list[3]:字段的值 |
|
||||||
* @return 文章实体总数 |
|
||||||
*/ |
|
||||||
int getSearchCount(@Param("tableName") String tableName, @Param("map") Map<String, List> map, |
|
||||||
@Param("websiteId") int websiteId, @Param("ids") String ids); |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章查询 |
|
||||||
* |
|
||||||
* @para webId 网站编号 |
|
||||||
* @param basicCategoryIds |
|
||||||
* 栏目编号集合 |
|
||||||
* @param flag |
|
||||||
* 文章属性 |
|
||||||
* @param noFlag |
|
||||||
* 文章不存在的属性 |
|
||||||
* @param orderBy |
|
||||||
* 排序字段 |
|
||||||
* @param order |
|
||||||
* true 升序 false 降序 排序方式 |
|
||||||
* @param article |
|
||||||
* 文章实体,便于扩展查询 |
|
||||||
* @param beginTime 开始时间 |
|
||||||
* @param endTime 结束时间 |
|
||||||
* @return 文章集合 |
|
||||||
*/ |
|
||||||
List<ArticleEntity> query(@Param("webId") int webId, @Param("basicCategoryIds") int[] basicCategoryIds, |
|
||||||
@Param("flag") String flag, @Param("noFlag") String noFlag, @Param("orderBy") String orderBy, |
|
||||||
@Param("order") boolean order, @Param("beginTime") String beginTime,@Param("endTime") String endTime, |
|
||||||
@Param("article") ArticleEntity article); |
|
||||||
|
|
||||||
/** |
|
||||||
* 根据页面栏目的id获取与其绑定的文章实体 |
|
||||||
* |
|
||||||
* @param basicCategoryId |
|
||||||
* @return 文章实体 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
List<ArticleEntity> queryListByColumnId(@Param("basicCategoryId") int basicCategoryId); |
|
||||||
|
|
||||||
/** |
|
||||||
* 根据查询文章实体 |
|
||||||
* |
|
||||||
* @param tableName |
|
||||||
* :自定义生成的表名 |
|
||||||
* @param map |
|
||||||
* 获取查询条件的Map key:字段名 value:List 字段的各种判断值 list[0]:是否为自定义字段 |
|
||||||
* list[1]:是否为整形 list[2]:是否是等值查询 list[3]:字段的值 |
|
||||||
* @return 文章实体 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
List<ArticleEntity> queryListForSearch(@Param("tableName") String tableName, @Param("map") Map<String, List> map, |
|
||||||
@Param("websiteId") int websiteId, @Param("ids") List ids, |
|
||||||
@Param("sortMap") Map sortMap); |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询文章编号集合 |
|
||||||
* @param categoryId 栏目编号 |
|
||||||
* @param appId 站点编号 |
|
||||||
* @param beginTime 开始时间 |
|
||||||
* @param endTime 结束时间 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public List<ColumnArticleIdBean> queryIdsByCategoryIdForParser(@Param("categoryId")int categoryId,@Param("appId")int appId , @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("orderBy")String orderBy,@Param("order")String order); |
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
@ -1,624 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
|
||||||
<!-- 文章管理持久化层配置文件 --> |
|
||||||
<mapper namespace="net.mingsoft.cms.dao.IArticleDao"> |
|
||||||
<!-- 表栏目名 开始 --> |
|
||||||
<sql id="column_list"> |
|
||||||
a.ARTICLE_BASICID,a.ARTICLE_CONTENT,a.ARTICLE_AUTHOR,a.ARTICLE_TYPE,a.ARTICLE_SOURCE,a.ARTICLE_URL,a.ARTICLE_KEYWORD,a.ARTICLE_FREEORDER,a.ARTICLE_WEBID, |
|
||||||
b.BASIC_ID,b.BASIC_TITLE,b.BASIC_DESCRIPTION,b.BASIC_THUMBNAILS,b.BASIC_HIT,b.BASIC_DISPLAY,b.BASIC_DATETIME,b.BASIC_UPDATETIME,b.BASIC_PEOPLEID,b.BASIC_CATEGORYID,b.BASIC_SORT |
|
||||||
</sql> |
|
||||||
<!-- 表栏目名 结束 --> |
|
||||||
|
|
||||||
|
|
||||||
<!-- 获取表字段 开始 --> |
|
||||||
<resultMap type="net.mingsoft.cms.entity.ArticleEntity" id="resultMap"> |
|
||||||
<id column="ARTICLE_BASICID" property="articleID" /> <!-- 与cms_article表绑定id --> |
|
||||||
<result column="ARTICLE_CONTENT" property="articleContent" /> <!-- 文章内容 --> |
|
||||||
<result column="ARTICLE_AUTHOR" property="articleAuthor" /> <!-- 文章作者 --> |
|
||||||
<result column="ARTICLE_TYPE" property="articleType" /> <!-- 文章属性 --> |
|
||||||
<result column="ARTICLE_SOURCE" property="articleSource" /> <!-- 文章来源 --> |
|
||||||
<result column="ARTICLE_URL" property="articleUrl" /> <!-- 文章跳转链接地址 --> |
|
||||||
<result column="ARTICLE_KEYWORD" property="articleKeyword" /> <!-- 文章关键字 --> |
|
||||||
<result column="ARTICLE_FREEORDER" property="articleFreeOrder" /><!-- |
|
||||||
文章自定义显示顺序 --> |
|
||||||
<result column="ARTICLE_WEBID" property="articleWebId" /> <!-- 站点id --> |
|
||||||
<result column="BASIC_ID" property="basicId" /> <!-- 与表basic绑定 自增长ID --> |
|
||||||
<result column="BASIC_TITLE" property="basicTitle" /> <!-- 文章标题 --> |
|
||||||
<result column="BASIC_DESCRIPTION" property="basicDescription" /><!-- |
|
||||||
文章描述 --> |
|
||||||
<result column="BASIC_THUMBNAILS" property="basicThumbnails" /> <!-- 文章缩略图 --> |
|
||||||
<result column="BASIC_HIT" property="basicHit" /> <!-- 文章点击次数 --> |
|
||||||
<result column="BASIC_DATETIME" property="basicDateTime" /> <!-- 文章发布时间 --> |
|
||||||
<result column="BASIC_UPDATETIME" property="basicUpdateTime" /> <!-- 文章更新时间 --> |
|
||||||
<result column="BASIC_PEOPLEID" property="basicPeopleId" /> <!-- 文章发布者id --> |
|
||||||
<result column="BASIC_CATEGORYID" property="basicCategoryId" /> <!-- 文章所属主栏目id --> |
|
||||||
<result column="BASIC_SORT" property="basicSort" /> |
|
||||||
<result column="BASIC_DISPLAY" property="basicDisplay" /> |
|
||||||
<!-- 一对一关联栏目 --> |
|
||||||
<association property="column" column="COLUMN_CATEGORY_ID" |
|
||||||
javaType="net.mingsoft.basic.entity.ColumnEntity"> |
|
||||||
<result property="columnPath" column="column_path" /> |
|
||||||
<result property="categoryTitle" column="category_title" /> |
|
||||||
<result property="categoryId" column="category_id" /> |
|
||||||
<result property="columnContentModelId" column="COLUMN_CM_ID" /> |
|
||||||
<result property="columnType" column="COLUMN_TYPE" /> |
|
||||||
</association> |
|
||||||
</resultMap> |
|
||||||
<!-- 获取表字段 结束 --> |
|
||||||
<!-- 通过视图查询返回结果集 开始 --> |
|
||||||
<resultMap type="net.mingsoft.cms.bean.ColumnArticleIdBean" id="resultMapBean"> |
|
||||||
<result column="ARTICLE_BASICID" property="articleId" /> |
|
||||||
<result column="column_path" property="columnPath"/> |
|
||||||
<result column="column_url" property="columnUrl" /> |
|
||||||
<result column="column_listurl" property="columnListUrl" /> |
|
||||||
<result column="category_title" property="categoryTitle" /> |
|
||||||
<result column="category_id" property="categoryId" /> |
|
||||||
<result column="COLUMN_CM_ID" property="columnContentModelId" /> |
|
||||||
<result column="category_categoryid" property="categoryCategoryId" /><!--关联表category的父类别ID category_categoryid字段 --> |
|
||||||
<result column="category_modelId" property="categoryModelId" /><!--关联表category的所属模块ID category_modelid字段 --> |
|
||||||
<result column="COLUMN_TYPE" property="columnType" /> |
|
||||||
<result column="category_parent_id" property="categoryParentId" /><!--关联表category的字典对应编号 --> |
|
||||||
</resultMap> |
|
||||||
<!-- 通过视图查询返回结果集 结束 --> |
|
||||||
<!-- 通过视图查询返回结果集 开始 --> |
|
||||||
<resultMap type="net.mingsoft.cms.entity.ArticleEntity" id="viewResultMap"> |
|
||||||
<id column="ARTICLE_BASICID" property="articleID" /> <!-- 与cms_article表绑定id --> |
|
||||||
<result column="ARTICLE_CONTENT" property="articleContent" /> <!-- 文章内容 --> |
|
||||||
<result column="ARTICLE_AUTHOR" property="articleAuthor" /> <!-- 文章作者 --> |
|
||||||
<result column="ARTICLE_TYPE" property="articleType" /> <!-- 文章属性 --> |
|
||||||
<result column="ARTICLE_SOURCE" property="articleSource" /> <!-- 文章来源 --> |
|
||||||
<result column="ARTICLE_URL" property="articleUrl" /> <!-- 文章跳转链接地址 --> |
|
||||||
<result column="ARTICLE_KEYWORD" property="articleKeyword" /> <!-- 文章关键字 --> |
|
||||||
<result column="ARTICLE_FREEORDER" property="articleFreeOrder" /><!-- |
|
||||||
文章自定义显示顺序 --> |
|
||||||
<result column="ARTICLE_WEBID" property="articleWebId" /> <!-- 站点id --> |
|
||||||
|
|
||||||
<result column="BASIC_ID" property="basicId" /> <!-- 与表basic绑定 自增长ID --> |
|
||||||
<result column="BASIC_TITLE" property="basicTitle" /> <!-- 文章标题 --> |
|
||||||
<result column="BASIC_DESCRIPTION" property="basicDescription" /><!-- |
|
||||||
文章描述 --> |
|
||||||
<result column="BASIC_THUMBNAILS" property="basicThumbnails" /> <!-- 文章缩略图 --> |
|
||||||
<result column="BASIC_HIT" property="basicHit" /> <!-- 文章点击次数 --> |
|
||||||
<result column="BASIC_DATETIME" property="basicDateTime" /> <!-- 文章发布时间 --> |
|
||||||
<result column="BASIC_UPDATETIME" property="basicUpdateTime" /> <!-- 文章更新时间 --> |
|
||||||
<result column="BASIC_CATEGORYID" property="basicCategoryId" /> <!-- 文章所属主栏目id --> |
|
||||||
<result column="BASIC_SORT" property="basicSort" /> |
|
||||||
<result column="BASIC_DISPLAY" property="basicDisplay" /> |
|
||||||
<!-- 一对一关联栏目 --> |
|
||||||
<association property="column" |
|
||||||
javaType="net.mingsoft.basic.entity.ColumnEntity"> |
|
||||||
<result property="columnPath" column="column_path" /> |
|
||||||
<result property="categoryTitle" column="category_title" /> |
|
||||||
<result property="categoryId" column="category_id" /> |
|
||||||
<result property="columnContentModelId" column="COLUMN_CM_ID" /> |
|
||||||
<result property="columnType" column="COLUMN_TYPE" /> |
|
||||||
</association> |
|
||||||
</resultMap> |
|
||||||
<!-- 通过视图查询返回结果集 结束 --> |
|
||||||
|
|
||||||
<!-- 文章bean返回数据列表 开始 --> |
|
||||||
<sql id="bean_column_list"> |
|
||||||
BASIC_ID,ARTICLE_AUTHOR,ARTICLE_TYPE,ARTICLE_SOURCE,ARTICLE_URL,ARTICLE_KEYWORD,ARTICLE_FREEORDER, |
|
||||||
BASIC_DISPLAY,BASIC_TITLE,BASIC_DESCRIPTION,BASIC_THUMBNAILS,BASIC_HIT,BASIC_DATETIME,BASIC_UPDATETIME,BASIC_PEOPLEID,BASIC_CATEGORYID,BASIC_SORT |
|
||||||
</sql> |
|
||||||
<!-- 表栏目名结束 --> |
|
||||||
|
|
||||||
<!-- 文章基础数据返回数据列表 开始 --> |
|
||||||
<sql id="basic_data_list"> |
|
||||||
BASIC_DISPLAY,BASIC_ID,BASIC_CATEGORYID,BASIC_TITLE,BASIC_DESCRIPTION,BASIC_THUMBNAILS,BASIC_HIT,BASIC_DATETIME,BASIC_UPDATETIME,BASIC_PEOPLEID,BASIC_SORT, |
|
||||||
ARTICLE_BASICID,ARTICLE_AUTHOR,ARTICLE_CONTENT,ARTICLE_TYPE,ARTICLE_SOURCE,ARTICLE_URL,ARTICLE_KEYWORD,ARTICLE_FREEORDER,ARTICLE_WEBID, |
|
||||||
COLUMN_KEYWORD,COLUMN_DESCRIP,COLUMN_TYPE,COLUMN_URL,COLUMN_LISTURL,COLUMN_PATH,COLUMN_CM_ID,COLUMN_CATEGORY_ID, |
|
||||||
CATEGORY_TITLE,CATEGORY_APPID,CATEGORY_ID |
|
||||||
</sql> |
|
||||||
<!-- 文章基础数据返回数据列表结束 --> |
|
||||||
|
|
||||||
<!-- 添加文章信息 开始 --> |
|
||||||
<insert id="saveEntity" parameterType="net.mingsoft.base.entity.BaseEntity"> |
|
||||||
insert into cms_article |
|
||||||
<!-- 添加表字段 --> |
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=","> |
|
||||||
<if test="basicId != null">ARTICLE_BASICID,</if> |
|
||||||
<if test="articleContent != null">ARTICLE_CONTENT,</if> |
|
||||||
<if test="articleAuthor != null">ARTICLE_AUTHOR,</if> |
|
||||||
<if test="articleType != null">ARTICLE_TYPE,</if> |
|
||||||
<if test="articleSource != null">ARTICLE_SOURCE,</if> |
|
||||||
<if test="articleUrl != null">ARTICLE_URL,</if> |
|
||||||
<if test="articleKeyword != null">ARTICLE_KEYWORD,</if> |
|
||||||
<if test="articleFreeOrder != null">ARTICLE_FREEORDER,</if> |
|
||||||
<if test="articleWebId != null">ARTICLE_WEBID,</if> |
|
||||||
</trim> |
|
||||||
<!-- 注入控制层字段 --> |
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=","> |
|
||||||
<if test="basicId != null">#{basicId},</if> |
|
||||||
<if test="articleContent != null">#{articleContent},</if> |
|
||||||
<if test="articleAuthor != null">#{articleAuthor},</if> |
|
||||||
<if test="articleType != null">#{articleType},</if> |
|
||||||
<if test="articleSource != null">#{articleSource},</if> |
|
||||||
<if test="articleUrl != null">#{articleUrl},</if> |
|
||||||
<if test="articleKeyword != null">#{articleKeyword},</if> |
|
||||||
<if test="articleFreeOrder != null">#{articleFreeOrder},</if> |
|
||||||
<if test="articleWebId != null">#{articleWebId},</if> |
|
||||||
</trim> |
|
||||||
</insert> |
|
||||||
<!-- 添加文章信息 结束 --> |
|
||||||
|
|
||||||
<!-- 删除文章管理的信息 开始 --> |
|
||||||
<delete id="deleteEntity" parameterType="int"> |
|
||||||
DELETE b from basic b WHERE b.basic_id=#{basicId}; |
|
||||||
DELETE c from cms_article c WHERE c.article_basicid=#{basicId} |
|
||||||
</delete> |
|
||||||
<!-- 删除文章管理的信息 结束 --> |
|
||||||
|
|
||||||
<!-- 更新文章管理的信息 开始 --> |
|
||||||
<update id="updateEntity" parameterType="net.mingsoft.base.entity.BaseEntity"> |
|
||||||
update cms_article |
|
||||||
<set> |
|
||||||
<if test="articleContent != null">ARTICLE_CONTENT=#{articleContent},</if> |
|
||||||
<if test="articleAuthor != null">ARTICLE_AUTHOR=#{articleAuthor},</if> |
|
||||||
<if test="articleType != null">ARTICLE_TYPE=#{articleType},</if> |
|
||||||
<if test="articleSource != null">ARTICLE_SOURCE=#{articleSource},</if> |
|
||||||
<if test="articleUrl != null">ARTICLE_URL=#{articleUrl},</if> |
|
||||||
<if test="articleKeyword != null">ARTICLE_KEYWORD=#{articleKeyword},</if> |
|
||||||
<if test="articleFreeOrder != null">ARTICLE_FREEORDER=#{articleFreeOrder},</if> |
|
||||||
<if test="articleWebId != null">ARTICLE_WEBID=#{articleWebId},</if> |
|
||||||
</set> |
|
||||||
where ARTICLE_BASICID = #{basicId} |
|
||||||
</update> |
|
||||||
<!-- 更新文章管理的信息 开始 --> |
|
||||||
|
|
||||||
|
|
||||||
<!-- 查找文章管理的信息 开始 --> |
|
||||||
<select id="getEntity" resultMap="resultMap" parameterType="int"> |
|
||||||
select |
|
||||||
<include refid="column_list" /> |
|
||||||
,c.CATEGORY_TITLE,cl.column_path,cl.column_type,c.CATEGORY_id,cl.COLUMN_CM_ID |
|
||||||
FROM |
|
||||||
basic b |
|
||||||
LEFT JOIN |
|
||||||
category c ON b.BASIC_CATEGORYID = c.CATEGORY_ID |
|
||||||
LEFT JOIN basic_column |
|
||||||
cl ON c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID |
|
||||||
LEFT |
|
||||||
JOIN cms_article a ON |
|
||||||
a.ARTICLE_BASICID = b.BASIC_ID |
|
||||||
|
|
||||||
<!-- 查询与关联表id相同的信息 --> |
|
||||||
|
|
||||||
where a.ARTICLE_BASICID=#{basicId} |
|
||||||
</select> |
|
||||||
<!-- 查找文章管理的信息 结束 --> |
|
||||||
|
|
||||||
<!-- 标题字段query --> |
|
||||||
<sql id="queryWhereBasicTitle" databaseId="mysql"> |
|
||||||
CONCAT('%',#{article.basicTitle},'%') |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereBasicTitle" databaseId="oracle"> |
|
||||||
'%'||#{ article.basicTitle}||'%' |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereBasicTitle" databaseId="sqlServer"> |
|
||||||
'%'+#{ article.basicTitle}+'%' |
|
||||||
</sql> |
|
||||||
<!-- flag字段 --> |
|
||||||
<sql id="queryWhereFlag" databaseId="mysql"> |
|
||||||
CONCAT('%',#{flag},'%') |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereFlag" databaseId="oracle"> |
|
||||||
'%'||#{ flag}||'%' |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereFlag" databaseId="sqlServer"> |
|
||||||
'%'+#{ flag}+'%' |
|
||||||
</sql> |
|
||||||
<!-- noFlag字段 --> |
|
||||||
<sql id="queryWhereNoFlag" databaseId="mysql"> |
|
||||||
CONCAT('%',#{noFlag},'%') |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereNoFlag" databaseId="oracle"> |
|
||||||
'%'||#{ noFlag}||'%' |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereNoFlag" databaseId="sqlServer"> |
|
||||||
'%'+#{ noFlag}+'%' |
|
||||||
</sql> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="count" resultType="int"> |
|
||||||
select count(basic_id) FROM basic b |
|
||||||
LEFT JOIN category c ON |
|
||||||
b.BASIC_CATEGORYID = c.CATEGORY_ID |
|
||||||
LEFT JOIN basic_column cl ON |
|
||||||
c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID |
|
||||||
LEFT JOIN cms_article a ON |
|
||||||
a.ARTICLE_BASICID = b.BASIC_ID |
|
||||||
<where> |
|
||||||
a.ARTICLE_WEBID = #{webId} |
|
||||||
<if test="article != null "> |
|
||||||
<if test="article.basicTitle != null and article.basicTitle != ''"> |
|
||||||
and b.BASIC_TITLE like |
|
||||||
<include refid="queryWhereBasicTitle"></include> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
<if test="basicCategoryIds != null"> |
|
||||||
and b.BASIC_CATEGORYID in |
|
||||||
<foreach collection="basicCategoryIds" index="index" item="categoryId" |
|
||||||
open="(" separator="," close=")"> |
|
||||||
#{categoryId} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
<if test="flag != null"> |
|
||||||
and a.ARTICLE_TYPE like <include refid="queryWhereFlag"></include> |
|
||||||
</if> |
|
||||||
<if test="noFlag != null"> |
|
||||||
and a.ARTICLE_TYPE not like <include refid="queryWhereNoFlag"></include> |
|
||||||
</if> |
|
||||||
</where> |
|
||||||
</select> |
|
||||||
<!-- 列表查询结束 --> |
|
||||||
|
|
||||||
<!-- 列表查询开始 --> |
|
||||||
<select id="query" resultMap="resultMap" > |
|
||||||
select |
|
||||||
<include refid="column_list" /> |
|
||||||
,c.CATEGORY_TITLE,c.CATEGORY_ID |
|
||||||
,cl.COLUMN_PATH,cl.COLUMN_CM_ID,cl.COLUMN_TYPE,cl.COLUMN_CATEGORY_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 |
|
||||||
where a.ARTICLE_WEBID = #{webId} |
|
||||||
<if test="article != null "> |
|
||||||
<if test="article.basicTitle != null and article.basicTitle != ''"> |
|
||||||
and b.BASIC_TITLE like |
|
||||||
<include refid="queryWhereBasicTitle"></include> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
<if test="basicCategoryIds != null"> |
|
||||||
and b.BASIC_CATEGORYID in |
|
||||||
<foreach collection="basicCategoryIds" index="index" item="categoryId" |
|
||||||
open="(" separator="," close=")"> |
|
||||||
#{categoryId} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
<if test="flag != null"> |
|
||||||
and a.ARTICLE_TYPE like <include refid="queryWhereFlag"></include> |
|
||||||
</if> |
|
||||||
<if test="noFlag != null"> |
|
||||||
and a.ARTICLE_TYPE not like <include refid="queryWhereNoFlag"></include> |
|
||||||
</if> |
|
||||||
<if test="article !=null and article.basicDisplay > -1"> |
|
||||||
and b.basic_display = #{article.basicDisplay} |
|
||||||
</if> |
|
||||||
<if test="beginTime!=null and beginTime!=''"> |
|
||||||
and basic_updatetime >= #{beginTime} |
|
||||||
</if> |
|
||||||
<if test="endTime!=null and endTime!=''"> |
|
||||||
and basic_updatetime >= #{endTime} |
|
||||||
</if> |
|
||||||
<if test="orderBy != null"> |
|
||||||
order by |
|
||||||
<choose> |
|
||||||
<when test='orderBy=="sort"'>basic_sort</when> |
|
||||||
<when test='orderBy=="date"'>basic_datetime</when> |
|
||||||
<when test='orderBy=="hit"'>basic_hit</when> |
|
||||||
<when test='orderBy=="updatedate"'>basic_updatedate</when> |
|
||||||
<when test='orderBy=="id"'>basic_id</when> |
|
||||||
<otherwise> |
|
||||||
${orderBy} |
|
||||||
</otherwise> |
|
||||||
</choose> |
|
||||||
</if> |
|
||||||
<if test="orderBy==null"> |
|
||||||
order by b.basic_id |
|
||||||
</if> |
|
||||||
<if test="order == true">desc</if> |
|
||||||
<if test="order == false">asc</if> |
|
||||||
</select> |
|
||||||
<sql id="queryWhereCategoryId" databaseId="mysql"> |
|
||||||
find_in_set('${categoryId}',CATEGORY_PARENT_ID) |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereCategoryId" databaseId="oracle" > |
|
||||||
instr(','||'${categoryId}'||',', ','||CATEGORY_PARENT_ID||',')>0 |
|
||||||
</sql> |
|
||||||
<sql id="queryWhereCategoryId" databaseId="sqlServer"> |
|
||||||
CHARINDEX(','+'${categoryId}'+',' , ','+CATEGORY_PARENT_ID +',')>0 |
|
||||||
</sql> |
|
||||||
<!-- 根据站点编号、开始、结束时间和栏目编号查询文章编号集合 --> |
|
||||||
<select id="queryIdsByCategoryIdForParser" resultMap="resultMapBean" > |
|
||||||
select |
|
||||||
ARTICLE_BASICID,cl.*,c.* |
|
||||||
FROM cms_article a LEFT JOIN basic ON a.ARTICLE_BASICID = basic.BASIC_ID |
|
||||||
LEFT JOIN basic_column cl ON basic.BASIC_CATEGORYID = cl.COLUMN_CATEGORY_ID |
|
||||||
JOIN category c ON c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID |
|
||||||
where |
|
||||||
<if test="appId > 0"> |
|
||||||
a.ARTICLE_WEBID = #{appId} |
|
||||||
</if> |
|
||||||
<!-- 查询子栏目数据 --> |
|
||||||
<if test="categoryId > 0"> |
|
||||||
and (basic.basic_categoryid=#{categoryId} or basic.basic_categoryid in |
|
||||||
(select category_id FROM category where <include refid="queryWhereCategoryId"></include>)) |
|
||||||
</if> |
|
||||||
<if test="beginTime!=null and beginTime!=''"> |
|
||||||
and basic.basic_updatetime >= #{beginTime} |
|
||||||
</if> |
|
||||||
<if test="endTime!=null and endTime!=''"> |
|
||||||
and basic.basic_updatetime >= #{endTime} |
|
||||||
</if> |
|
||||||
<if test="orderBy!=null and order!=null and orderBy!='' and order!=''"> |
|
||||||
ORDER BY `${orderBy}` ${order} |
|
||||||
</if> |
|
||||||
</select> |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--查询页面栏目的文章 开始 --> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="queryListByColumnId" resultMap="resultMap"> |
|
||||||
select |
|
||||||
<include refid="column_list" /> |
|
||||||
from cms_article a left join basic b on b.basic_id=a.ARTICLE_BASICID |
|
||||||
where b.BASIC_CATEGORYID = #{basicCategoryId} |
|
||||||
</select> |
|
||||||
<!-- 查询页面栏目的文章 结束 --> |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 根据字段条件查找文章实体开始 --> |
|
||||||
<sql id="queryLike" databaseId="mysql"> |
|
||||||
like CONCAT("%", |
|
||||||
<foreach item="val" index="index" collection="item[3]"> |
|
||||||
<if test="index==0">#{val}</if> |
|
||||||
</foreach> |
|
||||||
,"%") |
|
||||||
</sql> |
|
||||||
<sql id="queryLike" databaseId="oracle"> |
|
||||||
like '%'|| |
|
||||||
<foreach item="val" index="index" collection="item[3]"> |
|
||||||
<if test="index==0">#{val}</if> |
|
||||||
</foreach> |
|
||||||
||'%' |
|
||||||
</sql> |
|
||||||
<sql id="queryLike" databaseId="sqlServer"> |
|
||||||
like '%'+ |
|
||||||
<foreach item="val" index="index" collection="item[3]"> |
|
||||||
<if test="index==0">#{val}</if> |
|
||||||
</foreach> |
|
||||||
+'%' |
|
||||||
</sql> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="queryListForSearch" resultMap="resultMap"> |
|
||||||
select |
|
||||||
<include refid="column_list" /> |
|
||||||
,c.CATEGORY_TITLE,cl.column_path,c.CATEGORY_id,cl.COLUMN_CM_ID,cl.column_type |
|
||||||
from cms_article a |
|
||||||
left join basic b |
|
||||||
on b.basic_id=a.ARTICLE_BASICID |
|
||||||
left join category c |
|
||||||
ON b.BASIC_CATEGORYID = c.CATEGORY_ID |
|
||||||
left join |
|
||||||
basic_column cl |
|
||||||
on c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID |
|
||||||
<if test="tableName!=null">left join ${tableName} d on d.basicId=a.ARTICLE_BASICID |
|
||||||
</if> |
|
||||||
where c.DEL=0 and a.ARTICLE_WEBID = #{websiteId} |
|
||||||
<if test="ids!=null"> |
|
||||||
and |
|
||||||
b.BASIC_CATEGORYID in |
|
||||||
<foreach item="id" index="key" collection="ids" open="(" |
|
||||||
separator="," close=")"> |
|
||||||
#{id.categoryId} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
<foreach item="item" index="key" collection="map" open="" |
|
||||||
separator="" close=""> |
|
||||||
<if test=" item[0] == false"> |
|
||||||
and ${key} |
|
||||||
</if> |
|
||||||
<if test="item[0]== true"> |
|
||||||
and d.${key} |
|
||||||
</if> |
|
||||||
<!-- 数字类型的查找 item[1]:字段是否为数字类型false:数字 --> |
|
||||||
<if test="item[1] == false"> |
|
||||||
<!--item[2]: 是采用等值还是区间查询。false:区间 itme[3][0]第一个值item[3][1]的二个值 --> |
|
||||||
<if test="item[2] == true"> |
|
||||||
= |
|
||||||
<foreach item="val" index="index" collection="item[3]">#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
<if test="item[2] == false"> |
|
||||||
between |
|
||||||
<foreach item="val" index="index" collection="item[3]" |
|
||||||
separator="and"> |
|
||||||
#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
<!-- 字符型数据的查找 item[1]:字段是否为数字类型true:字符串 --> |
|
||||||
<if test="item[1] == true"> |
|
||||||
<!--item[2]: 是采用模糊查询。false:不采用模糊 --> |
|
||||||
<if test="item[2] == true"> |
|
||||||
<include refid="queryLike"></include> |
|
||||||
</if> |
|
||||||
<if test="item[2] == false"> |
|
||||||
= |
|
||||||
<foreach item="val" index="index" collection="item[3]">#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
</foreach> |
|
||||||
<if test="sortMap!=null"> |
|
||||||
order by ${sortMap.order} ${sortMap.by} |
|
||||||
</if> |
|
||||||
</select> |
|
||||||
<!-- 根据字段条件查找文章实体结束 --> |
|
||||||
|
|
||||||
<!--已过期 根据字段条件查找文章实体总数开始 --> |
|
||||||
<select id="getSearchCount" resultType="int"> |
|
||||||
select count(*) from |
|
||||||
cms_article a |
|
||||||
left join basic b |
|
||||||
on |
|
||||||
b.basic_id=a.ARTICLE_BASICID |
|
||||||
left join category c |
|
||||||
ON b.BASIC_CATEGORYID |
|
||||||
= c.CATEGORY_ID |
|
||||||
left join basic_column cl |
|
||||||
on c.CATEGORY_ID = |
|
||||||
cl.COLUMN_CATEGORY_ID |
|
||||||
<if test="tableName!=null and tableName!=''">left join ${tableName} d on d.basicId=a.ARTICLE_BASICID |
|
||||||
</if> |
|
||||||
where a.ARTICLE_WEBID = #{websiteId} |
|
||||||
<if test="ids!=null and ids!=''"> |
|
||||||
and FIND_IN_SET(category_categoryid,'${ids}') |
|
||||||
</if> |
|
||||||
<foreach item="item" index="key" collection="map" open="" |
|
||||||
separator="" close=""> |
|
||||||
<if test=" item[0] == false"> |
|
||||||
and ${key} |
|
||||||
</if> |
|
||||||
<if test="item[0]== true"> |
|
||||||
and d.${key} |
|
||||||
</if> |
|
||||||
<!-- 数字类型的查找 item[1]:字段是否为数字类型false:数字 --> |
|
||||||
<if test="item[1] == false"> |
|
||||||
<!--item[2]: 是采用等值还是区间查询。false:区间 itme[3][0]第一个值item[3][1]的二个值 --> |
|
||||||
<if test="item[2] == true"> |
|
||||||
= |
|
||||||
<foreach item="val" index="index" collection="item[3]">#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
<if test="item[2] == false"> |
|
||||||
between |
|
||||||
<foreach item="val" index="index" collection="item[3]" |
|
||||||
separator="and"> |
|
||||||
#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
<!-- 字符型数据的查找 item[1]:字段是否为数字类型true:字符串 --> |
|
||||||
<if test="item[1] == true"> |
|
||||||
<!--item[2]: 是采用模糊查询。false:不采用模糊 --> |
|
||||||
<if test="item[2] == true"> |
|
||||||
<include refid="queryLike"></include> |
|
||||||
</if> |
|
||||||
<if test="item[2] == false"> |
|
||||||
= |
|
||||||
<foreach item="val" index="index" collection="item[3]">#{val} |
|
||||||
</foreach> |
|
||||||
</if> |
|
||||||
</if> |
|
||||||
</foreach> |
|
||||||
</select> |
|
||||||
<!-- 根据字段条件查找文章实体总数结束 --> |
|
||||||
|
|
||||||
<select id="getById" resultMap="viewResultMap"> |
|
||||||
select |
|
||||||
<include refid="basic_data_list" /> |
|
||||||
from |
|
||||||
(((basic JOIN cms_article ON (BASIC_ID = ARTICLE_BASICID)) |
|
||||||
JOIN basic_column ON (BASIC_CATEGORYID = COLUMN_CATEGORY_ID)) |
|
||||||
JOIN category ON (COLUMN_CATEGORY_ID = CATEGORY_ID)) |
|
||||||
<if test="contentModelTableName!=null"> |
|
||||||
left join ${contentModelTableName} cmt on |
|
||||||
cmt.basicid=basic_id |
|
||||||
</if> |
|
||||||
where basic_id=#{basicId} |
|
||||||
</select> |
|
||||||
|
|
||||||
|
|
||||||
<!-- 通过文章标题、应用ID、模块编号来查询文章集合开始 --> |
|
||||||
<resultMap type="java.util.HashMap" id="resultTitleMap"> |
|
||||||
<result column="basic_id" property="basicId" /> |
|
||||||
<result column="basic_title" property="basicTitle" /> |
|
||||||
<result column="basic_hit" property="basicHit" /> |
|
||||||
<result column="basic_categoryid" property="basicCategoryId" /> |
|
||||||
<result column="model_id" property="modelId" /> |
|
||||||
|
|
||||||
</resultMap> |
|
||||||
<!-- 已过期 --> |
|
||||||
<!-- 查找上一篇下一篇 --> |
|
||||||
<sql id="selectOne"> |
|
||||||
from |
|
||||||
(((basic JOIN cms_article ON (BASIC_ID = ARTICLE_BASICID)) |
|
||||||
JOIN basic_column ON (BASIC_CATEGORYID = COLUMN_CATEGORY_ID)) |
|
||||||
JOIN category ON (COLUMN_CATEGORY_ID = CATEGORY_ID)) |
|
||||||
|
|
||||||
where category_appid=#{appId} |
|
||||||
<if test="flag==false"> |
|
||||||
and basic_id < ${basicId} |
|
||||||
|
|
||||||
</if> |
|
||||||
<if test="flag==true"> |
|
||||||
and basic_id > ${basicId} |
|
||||||
|
|
||||||
</if> |
|
||||||
<if test="categoryId!=null"> |
|
||||||
and BASIC_CATEGORYID = #{categoryId} |
|
||||||
</if> |
|
||||||
</sql> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="getNextOrPrevious" resultMap="resultMap" databaseId="mysql"> |
|
||||||
select |
|
||||||
<include refid="basic_data_list" /> |
|
||||||
<include refid="selectOne"></include> |
|
||||||
<if test="flag==false"> |
|
||||||
order by basic_id desc |
|
||||||
</if> |
|
||||||
<if test="flag==true"> |
|
||||||
order by basic_id asc |
|
||||||
</if> |
|
||||||
limit 0,1 |
|
||||||
</select> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="getNextOrPrevious" resultMap="resultMap" databaseId="oracle"> |
|
||||||
select |
|
||||||
<include refid="basic_data_list" /> |
|
||||||
<include refid="selectOne"></include> |
|
||||||
and rownum=1 |
|
||||||
<if test="flag==false"> |
|
||||||
order by basic_id desc |
|
||||||
</if> |
|
||||||
<if test="flag==true"> |
|
||||||
order by basic_id asc |
|
||||||
</if> |
|
||||||
</select> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="getNextOrPrevious" resultMap="resultMap" databaseId="sqlServer"> |
|
||||||
select top(1) |
|
||||||
<include refid="basic_data_list" /> |
|
||||||
<include refid="selectOne"></include> |
|
||||||
<if test="flag==false"> |
|
||||||
order by basic_id desc |
|
||||||
</if> |
|
||||||
<if test="flag==true"> |
|
||||||
order by basic_id asc |
|
||||||
</if> |
|
||||||
</select> |
|
||||||
<sql id="queryTime" databaseId="oracle"> |
|
||||||
to_date(#{dateTime},'yyyy-MM-dd HH24:mi:ss') |
|
||||||
</sql> |
|
||||||
<sql id="queryTime" databaseId="mysql"> |
|
||||||
#{dateTime} |
|
||||||
</sql> |
|
||||||
<sql id="queryTime" databaseId="sqlServer"> |
|
||||||
#{dateTime} |
|
||||||
</sql> |
|
||||||
<!-- 已过期 --> |
|
||||||
<select id="getByCategoryId" resultMap="resultMap"> |
|
||||||
select |
|
||||||
<include refid="basic_data_list" /> |
|
||||||
from |
|
||||||
(((basic JOIN cms_article ON (BASIC_ID = ARTICLE_BASICID)) |
|
||||||
JOIN basic_column ON (BASIC_CATEGORYID = COLUMN_CATEGORY_ID)) |
|
||||||
JOIN category ON (COLUMN_CATEGORY_ID = CATEGORY_ID)) |
|
||||||
where basic_categoryId=#{categoryId} order by basic_id desc |
|
||||||
</select> |
|
||||||
|
|
||||||
<!-- 根据basicID删除开始 --> |
|
||||||
<delete id="delete"> |
|
||||||
delete from cms_article |
|
||||||
<where> |
|
||||||
ARTICLE_BASICID in |
|
||||||
<foreach collection="ids" item="item" index="index" open="(" |
|
||||||
separator="," close=")">#{item}</foreach> |
|
||||||
</where> |
|
||||||
</delete> |
|
||||||
|
|
||||||
</mapper> |
|
||||||
@ -1,293 +0,0 @@ |
|||||||
/** |
|
||||||
The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) |
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
|
||||||
* this software and associated documentation files (the "Software"), to deal in |
|
||||||
* the Software without restriction, including without limitation the rights to |
|
||||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
|
||||||
* the Software, and to permit persons to whom the Software is furnished to do so, |
|
||||||
* subject to the following conditions: |
|
||||||
|
|
||||||
* The above copyright notice and this permission notice shall be included in all |
|
||||||
* copies or substantial portions of the Software. |
|
||||||
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
|
||||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
|
||||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
package net.mingsoft.cms.entity; |
|
||||||
|
|
||||||
import java.io.File; |
|
||||||
import java.util.Arrays; |
|
||||||
|
|
||||||
import net.mingsoft.basic.entity.AppEntity; |
|
||||||
import net.mingsoft.basic.entity.BasicEntity; |
|
||||||
import net.mingsoft.basic.entity.ColumnEntity; |
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
|
|
||||||
import cn.hutool.core.util.ArrayUtil; |
|
||||||
import net.mingsoft.base.constant.Const; |
|
||||||
import net.mingsoft.mdiy.util.ParserUtil; |
|
||||||
|
|
||||||
/** |
|
||||||
* |
|
||||||
* @ClassName: ArticleEntity |
|
||||||
* @Description:TODO(文章模块实体类 || 继承BasicEntity实体) |
|
||||||
* @author: 铭飞开发团队 |
|
||||||
* @date: 2018年1月31日 下午2:55:48 |
|
||||||
* |
|
||||||
* @Copyright: 2018 www.mingsoft.net Inc. All rights reserved. |
|
||||||
*/ |
|
||||||
public class ArticleEntity extends BasicEntity{ |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章Id |
|
||||||
*/ |
|
||||||
private int articleID; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章内容 |
|
||||||
*/ |
|
||||||
private String articleContent; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章作者 |
|
||||||
*/ |
|
||||||
private String articleAuthor; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章属性 |
|
||||||
*/ |
|
||||||
private String articleType ; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章的来源 |
|
||||||
*/ |
|
||||||
private String articleSource; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章跳转链接地址 |
|
||||||
*/ |
|
||||||
private String articleUrl; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章关键字 |
|
||||||
*/ |
|
||||||
private String articleKeyword; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章自定义显示顺序 |
|
||||||
*/ |
|
||||||
@Deprecated |
|
||||||
private int articleFreeOrder; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 站点d |
|
||||||
*/ |
|
||||||
private int articleWebId; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章url地址 主要是用户生成html使用 |
|
||||||
*/ |
|
||||||
private String articleLinkURL; |
|
||||||
|
|
||||||
/** |
|
||||||
* 文章分类url地址,主要是用户生成html使用 |
|
||||||
*/ |
|
||||||
private String articleTypeLinkURL; |
|
||||||
|
|
||||||
/** |
|
||||||
* 一对一管理栏目 |
|
||||||
*/ |
|
||||||
private ColumnEntity column; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章实体所属的栏目实体 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public ColumnEntity getColumn() { |
|
||||||
return column; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章所属的栏目实体 |
|
||||||
* @param column |
|
||||||
*/ |
|
||||||
public void setColumn(ColumnEntity column) { |
|
||||||
this.column = column; |
|
||||||
} |
|
||||||
|
|
||||||
public String getArticleTypeLinkURL() { |
|
||||||
return articleTypeLinkURL; |
|
||||||
} |
|
||||||
|
|
||||||
public void setArticleTypeLinkURL(String articleTypeLinkURL) { |
|
||||||
this.articleTypeLinkURL = articleTypeLinkURL; |
|
||||||
} |
|
||||||
|
|
||||||
public String getArticleLinkURL() { |
|
||||||
return articleLinkURL; |
|
||||||
} |
|
||||||
|
|
||||||
public void setArticleLinkURL(String articleLinkURL) { |
|
||||||
this.articleLinkURL = articleLinkURL; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章作者 |
|
||||||
* @return 返回文章作者 |
|
||||||
*/ |
|
||||||
public String getArticleAuthor() { |
|
||||||
return articleAuthor; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章内容 |
|
||||||
* @return 返回文章内容 |
|
||||||
*/ |
|
||||||
public String getArticleContent() { |
|
||||||
return articleContent; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取自定义显示顺序 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public int getArticleFreeOrder() { |
|
||||||
return articleFreeOrder; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章Id |
|
||||||
* @return 返回文章Id |
|
||||||
*/ |
|
||||||
public int getArticleID() { |
|
||||||
return articleID; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章关键字 |
|
||||||
* @return 返回文章关键字 |
|
||||||
*/ |
|
||||||
public String getArticleKeyword() { |
|
||||||
return articleKeyword; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章的来源 |
|
||||||
* @return 返回文章的来源 |
|
||||||
*/ |
|
||||||
public String getArticleSource() { |
|
||||||
return articleSource; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章属性 |
|
||||||
* @return 返回文章属性 |
|
||||||
*/ |
|
||||||
public String getArticleType() { |
|
||||||
return articleType; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章跳转链接 |
|
||||||
* @return 返回文章跳转链接 |
|
||||||
*/ |
|
||||||
public String getArticleUrl() { |
|
||||||
return articleUrl; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取文章站点id |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public int getArticleWebId() { |
|
||||||
return articleWebId; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章作者 |
|
||||||
* @param articleAuthor 传入文章作者 |
|
||||||
*/ |
|
||||||
public void setArticleAuthor(String articleAuthor) { |
|
||||||
this.articleAuthor = articleAuthor; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章内容 |
|
||||||
* @param articleContent 传入文章内容 |
|
||||||
*/ |
|
||||||
public void setArticleContent(String articleContent) { |
|
||||||
this.articleContent = articleContent; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章自定义显示循序排序 |
|
||||||
* @param articleFreeOrder |
|
||||||
*/ |
|
||||||
public void setArticleFreeOrder(int articleFreeOrder) { |
|
||||||
this.articleFreeOrder = articleFreeOrder; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章Id |
|
||||||
* @param articleID 传入文章Id |
|
||||||
*/ |
|
||||||
public void setArticleID(int articleID) { |
|
||||||
this.articleID = articleID; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章关键字 |
|
||||||
* @param articleKeyword 传入文章关键字列表 |
|
||||||
*/ |
|
||||||
public void setArticleKeyword(String articleKeyword) { |
|
||||||
this.articleKeyword = articleKeyword; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章的来源 |
|
||||||
* @param articleSource 传入文章的来源 |
|
||||||
*/ |
|
||||||
public void setArticleSource(String articleSource) { |
|
||||||
this.articleSource = articleSource; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章属性 |
|
||||||
* @param articleType 传入文章属性 |
|
||||||
*/ |
|
||||||
public void setArticleType(String articleType) { |
|
||||||
this.articleType = articleType; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章跳转链接 |
|
||||||
* @param articleUrl 传入文章跳转链接地址 |
|
||||||
*/ |
|
||||||
public void setArticleUrl(String articleUrl) { |
|
||||||
this.articleUrl = articleUrl; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 设置文章站点id |
|
||||||
* @param articleWebId |
|
||||||
*/ |
|
||||||
public void setArticleWebId(int articleWebId) { |
|
||||||
this.articleWebId = articleWebId; |
|
||||||
} |
|
||||||
|
|
||||||
public String getArticleUrl(AppEntity app) { |
|
||||||
if (!StringUtils.isBlank(app.getAppMobileStyle())) { |
|
||||||
return app.getAppHostUrl()+ParserUtil.HTML+Const.SEPARATOR+ParserUtil.MOBILE+Const.SEPARATOR+this.getArticleUrl(); |
|
||||||
} |
|
||||||
return app.getAppHostUrl()+Const.SEPARATOR+ParserUtil.HTML+Const.SEPARATOR+this.getArticleUrl(); |
|
||||||
} |
|
||||||
} |
|
||||||
Loading…
Reference in new issue