From dfad56af46c7c97258ecd7bb922cbfe86f67090a Mon Sep 17 00:00:00 2001 From: sgjj Date: Fri, 9 Aug 2019 21:44:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8A=A8=E6=80=81=E8=A7=A3?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/mingsoft/cms/action/BaseAction.java | 22 +++ .../mingsoft/cms/action/web/MCmsAction.java | 85 +++++++++-- .../net/mingsoft/cms/biz/IArticleBiz.java | 133 +++++++++-------- .../mingsoft/cms/biz/impl/ArticleBizImpl.java | 41 ++--- .../java/net/mingsoft/cms/constant/Const.java | 14 ++ .../net/mingsoft/cms/dao/IArticleDao.java | 140 +++++++++--------- .../java/net/mingsoft/cms/dao/IArticleDao.xml | 124 ++++++++-------- .../cms/resources/resources_zh_CN.properties | 9 +- 8 files changed, 346 insertions(+), 222 deletions(-) create mode 100644 src/main/java/net/mingsoft/cms/action/BaseAction.java create mode 100644 src/main/java/net/mingsoft/cms/constant/Const.java diff --git a/src/main/java/net/mingsoft/cms/action/BaseAction.java b/src/main/java/net/mingsoft/cms/action/BaseAction.java new file mode 100644 index 00000000..78856924 --- /dev/null +++ b/src/main/java/net/mingsoft/cms/action/BaseAction.java @@ -0,0 +1,22 @@ +package net.mingsoft.cms.action; + +import java.util.MissingResourceException; + +/** + * @Author: 铭飞开源团队--huise + * @Date: 2019/8/9 20:47 + */ +public class BaseAction extends net.mingsoft.mdiy.action.BaseAction{ + @Override + protected String getResString(String key) { + // TODO Auto-generated method stub + String str = ""; + try { + str = super.getResString(key); + } catch (MissingResourceException e) { + str = net.mingsoft.cms.constant.Const.RESOURCES.getString(key); + } + + return str; + } +} diff --git a/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java b/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java index 8090b565..9424bb51 100644 --- a/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java +++ b/src/main/java/net/mingsoft/cms/action/web/MCmsAction.java @@ -1,5 +1,5 @@ /** -The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) + 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 @@ -21,13 +21,23 @@ The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) package net.mingsoft.cms.action.web; +import java.io.File; import java.io.IOException; +import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.io.FileUtil; +import com.github.pagehelper.PageHelper; +import net.mingsoft.base.constant.Const; +import net.mingsoft.basic.util.SpringUtil; +import net.mingsoft.cms.constant.e.ColumnTypeEnum; +import net.mingsoft.mdiy.biz.IContentModelBiz; +import net.mingsoft.mdiy.entity.ContentModelEntity; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -54,13 +64,13 @@ import net.mingsoft.mdiy.util.ParserUtil; /** * 动态生成页面,需要后台配置自定义页数据 - * + * * @author 铭飞开源团队 * @date 2018年12月17日 */ @Controller("dynamicPageAction") @RequestMapping("/mcms") -public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { +public class MCmsAction extends net.mingsoft.cms.action.BaseAction { /** * 自定义页面业务层 @@ -84,7 +94,7 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { // 如商城就为:/mall/{key}.do /** * 前段会员中心所有页面都可以使用该方法 请求地址例如: /{diy}.do,例如登陆界面,与注册界面都可以使用 - * + * * @param key */ @RequestMapping("/{diy}.do") @@ -158,7 +168,7 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { //获取栏目编号 int typeId = BasicUtil.getInt(ParserUtil.TYPE_ID,0); int size = BasicUtil.getInt(ParserUtil.SIZE,10); - + //获取文章总数 List columnArticles = articleBiz.queryIdsByCategoryIdForParser(typeId, null, null); //判断栏目下是否有文章 @@ -175,7 +185,7 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { map.put(ParserUtil.TYPE_ID, typeId); //设置列表当前页 map.put(ParserUtil.PAGE_NO, BasicUtil.getInt(ParserUtil.PAGE_NO,1)); - + map.put(ParserUtil.URL, BasicUtil.getUrl()); map.put(ParserUtil.PAGE, page); //动态解析 @@ -198,19 +208,27 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { } this.outString(resp, content); } - + /** * 动态详情页 * @param id 文章编号 */ @GetMapping("/view.do") - public void view(HttpServletRequest req, HttpServletResponse resp) { + public void view(String orderby,String order,HttpServletRequest req, HttpServletResponse resp) { //参数文章编号 ArticleEntity article = (ArticleEntity) articleBiz.getEntity(BasicUtil.getInt(ParserUtil.ID)); if(ObjectUtil.isNull(article)){ this.outJson(resp, null,false,getResString("err.empty", this.getResString("id"))); - return; + return; + } + if(StringUtils.isNotBlank(order)){ + //防注入 + if(!order.toLowerCase().equals("asc")&&!order.toLowerCase().equals("desc")){ + this.outJson(resp, null,false,getResString("err.error", this.getResString("order"))); + return; + } } + PageBean page = new PageBean(); //根据文章编号查询栏目详情模版 ColumnEntity column = (ColumnEntity) columnBiz.getEntity(article.getBasicCategoryId()); //解析后的内容 @@ -221,6 +239,55 @@ public class MCmsAction extends net.mingsoft.mdiy.action.BaseAction { //设置动态请求的模块路径 map.put(ParserUtil.MODEL_NAME, "mcms"); map.put(ParserUtil.URL, BasicUtil.getUrl()); + map.put(ParserUtil.PAGE, page); + map.put(ParserUtil.ID, article.getArticleID()); + List articleIdList = articleBiz.queryIdsByCategoryIdForParser(column.getCategoryCategoryId(), null, null,orderby,order); + Map contentModelMap = new HashMap(); + ContentModelEntity contentModel = null; + for (int artId = 0; artId < articleIdList.size();) { + //如果不是当前文章则跳过 + if(articleIdList.get(artId).getArticleId() != article.getArticleID()){ + artId++; + continue; + } + // 文章的栏目路径 + String articleColumnPath = articleIdList.get(artId).getColumnPath(); + // 文章的栏目模型编号 + int columnContentModelId = articleIdList.get(artId).getColumnContentModelId(); + Map parserParams = new HashMap(); + parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId)); + // 判断当前栏目是否有自定义模型 + if (columnContentModelId > 0) { + // 通过当前栏目的模型编号获取,自定义模型表名 + if (contentModelMap.containsKey(columnContentModelId)) { + parserParams.put(ParserUtil.TABLE_NAME, contentModel.getCmTableName()); + } else { + // 通过栏目模型编号获取自定义模型实体 + contentModel = (ContentModelEntity) SpringUtil.getBean(IContentModelBiz.class) + .getEntity(columnContentModelId); + // 将自定义模型编号设置为key值 + contentModelMap.put(columnContentModelId, contentModel.getCmTableName()); + parserParams.put(ParserUtil.TABLE_NAME, contentModel.getCmTableName()); + } + } + // 第一篇文章没有上一篇 + if (artId > 0) { + ColumnArticleIdBean preCaBean = articleIdList.get(artId - 1); + //判断当前文档是否与上一页文章在同一栏目下,并且不能使用父栏目字符串,因为父栏目中没有所属栏目编号 + if(articleColumnPath.contains(preCaBean.getCategoryId()+"")){ + page.setPreId(preCaBean.getArticleId()); + } + } + // 最后一篇文章没有下一篇 + if (artId + 1 < articleIdList.size()) { + ColumnArticleIdBean nextCaBean = articleIdList.get(artId + 1); + //判断当前文档是否与下一页文章在同一栏目下并且不能使用父栏目字符串,因为父栏目中没有所属栏目编号 + if(articleColumnPath.contains(nextCaBean.getCategoryId()+"")){ + page.setNextId(nextCaBean.getArticleId()); + } + } + break; + } try { //根据模板路径,参数生成 content = CmsParserUtil.generate(column.getColumnUrl(), map, isMobileDevice(req)); diff --git a/src/main/java/net/mingsoft/cms/biz/IArticleBiz.java b/src/main/java/net/mingsoft/cms/biz/IArticleBiz.java index 091a3188..d6e8eb0d 100644 --- a/src/main/java/net/mingsoft/cms/biz/IArticleBiz.java +++ b/src/main/java/net/mingsoft/cms/biz/IArticleBiz.java @@ -1,43 +1,43 @@ -/** -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. - */ - +/** + 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. +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 { @@ -52,14 +52,14 @@ public interface IArticleBiz extends IBasicBiz { * @param article * 文件实体 * @return - */ + */ @Deprecated int count(int webId, int[] basicCategoryId, String flag, String noFlag, ArticleEntity article); /** * 通过分类id获取文章内容 - * + * * @param categoryId * 分类编号 * @return @@ -69,7 +69,7 @@ public interface IArticleBiz extends IBasicBiz { /** * 通过视图表来查询文章总数 - * + * * @param basicId * 文章编号 */ @@ -78,31 +78,31 @@ public interface IArticleBiz extends IBasicBiz { /** * 查找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 @@ -118,7 +118,7 @@ public interface IArticleBiz extends IBasicBiz { /** * 文章查询 - * + * * @para webId 网站编号 * @param basicCategoryIds * 栏目编号集合 @@ -129,28 +129,37 @@ public interface IArticleBiz extends IBasicBiz { * @param orderBy * 排序字段 * @param order - * true 升序 false 降序 排序方式 - * @param beginTime 开始时间 + * true 升序 false 降序 排序方式 + * @param beginTime 开始时间 * @param endTime 结束时间 * @param article - * 文章实体,便于扩展查询 + * 文章实体,便于扩展查询 * @return 文章集合 */ List 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 + boolean order, String beginTime,String endTime, ArticleEntity article); + + /** + * 查询文章编号集合 + * @param categoryId 栏目编号 + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @return */ public List queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime); - + /** + * 查询文章编号集合 + * @param categoryId 栏目编号 + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param orderBy 排序字段 + * @param order 排序方式 + * @return + */ + public List queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime,String orderBy,String order); /** * 根据页面栏目的id获取与其绑定的文章实体 - * + * * @param basicCategoryId * @return 文章实体 */ @@ -162,7 +171,7 @@ public interface IArticleBiz extends IBasicBiz { /** * 高级查询接口,主要提供给有自定义模型的栏目, - * + * * @param conntentModel * 自定义模型 * @param whereMap @@ -177,6 +186,6 @@ public interface IArticleBiz extends IBasicBiz { */ @Deprecated public List queryListForSearch(ContentModelEntity conntentModel, Map whereMap, - int appId, List ids, Map orders); + int appId, List ids, Map orders); } \ No newline at end of file diff --git a/src/main/java/net/mingsoft/cms/biz/impl/ArticleBizImpl.java b/src/main/java/net/mingsoft/cms/biz/impl/ArticleBizImpl.java index 5c8fdf1d..7f89bd37 100644 --- a/src/main/java/net/mingsoft/cms/biz/impl/ArticleBizImpl.java +++ b/src/main/java/net/mingsoft/cms/biz/impl/ArticleBizImpl.java @@ -1,5 +1,5 @@ /** -The MIT License (MIT) * Copyright (c) 2016 铭飞科技(mingsoft.net) + 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 @@ -25,6 +25,7 @@ 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; @@ -42,43 +43,43 @@ import net.mingsoft.mdiy.biz.IContentModelBiz; import net.mingsoft.mdiy.entity.ContentModelEntity; /** - * - * @ClassName: ArticleBizImpl - * @Description:TODO(文章管理业务层实现类 || 继承BasicBizImpl || 实现IArticleBiz) + * + * @ClassName: ArticleBizImpl + * @Description:TODO(文章管理业务层实现类 || 继承BasicBizImpl || 实现IArticleBiz) * @author: 铭飞开发团队 - * @date: 2018年1月31日 下午2:53:53 - * + * @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; + private ICategoryBiz categoryBiz; /** * 自定类型义业务处理 */ @Autowired private IColumnBiz columnBiz; - + /** * 自定义模型 */ @Autowired private IContentModelBiz contentModelBiz; - + /** * 模块管理业务层 */ @@ -94,7 +95,7 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { /** * 获取Article的持久化层 - * + * * @return 返回持Article的久化对象 */ public IArticleDao getArticleDao() { @@ -133,7 +134,7 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { /** * 获取IBaseDao的持久化层 - * + * * @return 返回持articleDao的久化对象 */ @Override @@ -165,7 +166,7 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { @Override public List query(int webId, int[] basicCategoryIds, String flag, String noFlag, String orderBy, - boolean order,String beginTime,String endTime, ArticleEntity article) { + boolean order,String beginTime,String endTime, ArticleEntity article) { // TODO Auto-generated method stub if(article == null) { article = new ArticleEntity(); @@ -175,7 +176,7 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { /** * 根据页面栏目的id获取与其绑定的文章实体 - * + * * @param basicCategoryId * @return 文章实体 */ @@ -201,7 +202,7 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { /** * 设置Article的持久化层 - * + * * @param articleDao */ @Autowired @@ -212,6 +213,10 @@ public class ArticleBizImpl extends BasicBizImpl implements IArticleBiz { @Override public List queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime) { - return this.articleDao.queryIdsByCategoryIdForParser(categoryId,BasicUtil.getAppId(), beginTime, endTime); + return this.articleDao.queryIdsByCategoryIdForParser(categoryId,BasicUtil.getAppId(), beginTime, endTime,null,null); + } + @Override + public List queryIdsByCategoryIdForParser(int categoryId, String beginTime,String endTime,String orderBy,String order) { + return this.articleDao.queryIdsByCategoryIdForParser(categoryId,BasicUtil.getAppId(), beginTime, endTime,orderBy,order); } } \ No newline at end of file diff --git a/src/main/java/net/mingsoft/cms/constant/Const.java b/src/main/java/net/mingsoft/cms/constant/Const.java new file mode 100644 index 00000000..d6fa7e1c --- /dev/null +++ b/src/main/java/net/mingsoft/cms/constant/Const.java @@ -0,0 +1,14 @@ +package net.mingsoft.cms.constant; + +import java.util.ResourceBundle; + +/** + * @Author: 铭飞开源团队--huise + * @Date: 2019/8/9 20:51 + */ +public class Const { + /** + * 资源文件 + */ + public final static ResourceBundle RESOURCES = ResourceBundle.getBundle("net.mingsoft.cms.resources.resources"); +} diff --git a/src/main/java/net/mingsoft/cms/dao/IArticleDao.java b/src/main/java/net/mingsoft/cms/dao/IArticleDao.java index d981012c..c48b6bdf 100644 --- a/src/main/java/net/mingsoft/cms/dao/IArticleDao.java +++ b/src/main/java/net/mingsoft/cms/dao/IArticleDao.java @@ -1,45 +1,45 @@ -/** -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. - */ - +/** + 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. +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 { @@ -54,24 +54,24 @@ public interface IArticleDao extends IBaseDao { * @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); + @Param("noFlag") String noFlag, @Param("article") ArticleEntity article); /** * 通过分类id获取文章内容 - * + * * @param categoryId * 分类编号 * @return 文章集合 - */ + */ @Deprecated List getByCategoryId(@Param("categoryId") int categoryId); /** * 通过视图表来查询文章总数 - * + * * @param basicId * 文章编号 * @param contentModelTableName @@ -81,7 +81,7 @@ public interface IArticleDao extends IBaseDao { /** * 查找basicId上一篇文章 - * + * * @param appId * 应用编号 * @param basicId @@ -91,11 +91,11 @@ public interface IArticleDao extends IBaseDao { * @return */ ArticleEntity getNextOrPrevious(@Param("appId") int appId, @Param("basicId") int basicId, - @Param("flag") boolean flag, @Param("categoryId") Integer categoryId); + @Param("flag") boolean flag, @Param("categoryId") Integer categoryId); /** * 根据查询文章实体总数 - * + * * @param tableName * :自定义生成的表名 * @param map @@ -104,11 +104,11 @@ public interface IArticleDao extends IBaseDao { * @return 文章实体总数 */ int getSearchCount(@Param("tableName") String tableName, @Param("map") Map map, - @Param("websiteId") int websiteId, @Param("ids") String ids); + @Param("websiteId") int websiteId, @Param("ids") String ids); /** * 文章查询 - * + * * @para webId 网站编号 * @param basicCategoryIds * 栏目编号集合 @@ -121,19 +121,19 @@ public interface IArticleDao extends IBaseDao { * @param order * true 升序 false 降序 排序方式 * @param article - * 文章实体,便于扩展查询 - * @param beginTime 开始时间 + * 文章实体,便于扩展查询 + * @param beginTime 开始时间 * @param endTime 结束时间 * @return 文章集合 */ List 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); + @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 文章实体 */ @@ -142,7 +142,7 @@ public interface IArticleDao extends IBaseDao { /** * 根据查询文章实体 - * + * * @param tableName * :自定义生成的表名 * @param map @@ -152,16 +152,18 @@ public interface IArticleDao extends IBaseDao { */ @Deprecated List queryListForSearch(@Param("tableName") String tableName, @Param("map") Map map, - @Param("websiteId") int websiteId, @Param("ids") List ids, - @Param("sortMap") Map sortMap); - - /** - * 查询文章编号集合 - * @param categoryId 栏目编号 - * @param appId 站点编号 - * @param beginTime 开始时间 - * @param endTime 结束时间 - * @return - */ - public List queryIdsByCategoryIdForParser(@Param("categoryId")int categoryId,@Param("appId")int appId , @Param("beginTime") String beginTime,@Param("endTime") String endTime); + @Param("websiteId") int websiteId, @Param("ids") List ids, + @Param("sortMap") Map sortMap); + + /** + * 查询文章编号集合 + * @param categoryId 栏目编号 + * @param appId 站点编号 + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @return + */ + public List 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); + + } \ No newline at end of file diff --git a/src/main/java/net/mingsoft/cms/dao/IArticleDao.xml b/src/main/java/net/mingsoft/cms/dao/IArticleDao.xml index 5e235493..9e17ef2e 100644 --- a/src/main/java/net/mingsoft/cms/dao/IArticleDao.xml +++ b/src/main/java/net/mingsoft/cms/dao/IArticleDao.xml @@ -36,7 +36,7 @@ + javaType="net.mingsoft.basic.entity.ColumnEntity"> @@ -47,9 +47,10 @@ - - + + + @@ -68,13 +69,13 @@ - - @@ -85,7 +86,7 @@ + javaType="net.mingsoft.basic.entity.ColumnEntity"> @@ -101,7 +102,7 @@ BASIC_DISPLAY,BASIC_TITLE,BASIC_DESCRIPTION,BASIC_THUMBNAILS,BASIC_HIT,BASIC_DATETIME,BASIC_UPDATETIME,BASIC_PEOPLEID,BASIC_CATEGORYID,BASIC_SORT - + BASIC_DISPLAY,BASIC_ID,BASIC_CATEGORYID,BASIC_TITLE,BASIC_DESCRIPTION,BASIC_THUMBNAILS,BASIC_HIT,BASIC_DATETIME,BASIC_UPDATETIME,BASIC_PEOPLEID,BASIC_SORT, @@ -186,10 +187,10 @@ where a.ARTICLE_BASICID=#{basicId} - + - CONCAT('%',#{article.basicTitle},'%') + CONCAT('%',#{article.basicTitle},'%') '%'||#{ article.basicTitle}||'%' @@ -199,7 +200,7 @@ - CONCAT('%',#{flag},'%') + CONCAT('%',#{flag},'%') '%'||#{ flag}||'%' @@ -209,7 +210,7 @@ - CONCAT('%',#{noFlag},'%') + CONCAT('%',#{noFlag},'%') '%'||#{ noFlag}||'%' @@ -237,7 +238,7 @@ and b.BASIC_CATEGORYID in + open="(" separator="," close=")"> #{categoryId} @@ -250,15 +251,15 @@ - + select ARTICLE_BASICID,cl.*,c.* - 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 + 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 + where a.ARTICLE_WEBID = #{appId} - and (b.basic_categoryid=#{categoryId} or b.basic_categoryid in - (select category_id FROM category where )) + and (basic.basic_categoryid=#{categoryId} or basic.basic_categoryid in + (select category_id FROM category where )) - and b.basic_updatetime >= #{beginTime} + and basic.basic_updatetime >= #{beginTime} - and b.basic_updatetime >= #{endTime} + and basic.basic_updatetime >= #{endTime} + + + ORDER BY `${orderBy}` ${order} @@ -359,24 +363,24 @@ like CONCAT("%", - - #{val} - - ,"%") + + #{val} + + ,"%") like '%'|| - - #{val} - - ||'%' + + #{val} + + ||'%' like '%'+ - - #{val} - - +'%' + + #{val} + + +'%' - select - - from + select + + 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)) + JOIN basic_column ON (BASIC_CATEGORYID = COLUMN_CATEGORY_ID)) + JOIN category ON (COLUMN_CATEGORY_ID = CATEGORY_ID)) left join ${contentModelTableName} cmt on cmt.basicid=basic_id @@ -531,12 +535,12 @@ - from + 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} + JOIN basic_column ON (BASIC_CATEGORYID = COLUMN_CATEGORY_ID)) + JOIN category ON (COLUMN_CATEGORY_ID = CATEGORY_ID)) + + where category_appid=#{appId} and basic_id < ${basicId} @@ -551,7 +555,7 @@ - select + select - from + 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 + 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 @@ -613,7 +617,7 @@ ARTICLE_BASICID in #{item} + separator="," close=")">#{item} diff --git a/src/main/java/net/mingsoft/cms/resources/resources_zh_CN.properties b/src/main/java/net/mingsoft/cms/resources/resources_zh_CN.properties index 6706675b..b9bb6c6a 100644 --- a/src/main/java/net/mingsoft/cms/resources/resources_zh_CN.properties +++ b/src/main/java/net/mingsoft/cms/resources/resources_zh_CN.properties @@ -1,5 +1,6 @@ -#mcms\u7248\u672c +#mcms\u7248\u672C version=d3a98fefcb242db78da5fc31608ff247 -templet.file=\u6a21\u677f\u6587\u4ef6\u4e0d\u5b58\u5728 -id=\u6587\u7ae0\u7f16\u53f7 -typeid=\u680f\u76ee\u7f16\u53f7 +templet.file=\u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728 +id=\u6587\u7AE0\u7F16\u53F7 +typeid=\u680F\u76EE\u7F16\u53F7 +order=\u6392\u5E8F