1、优化列表、封面枚举类型,原来是 1,2表示

2、优化搜索接口
master
guwd 5 years ago
parent 871245eef5
commit 096d6f2b1e
  1. 23
      pom.xml
  2. 8
      src/main/java/net/mingsoft/cms/action/CategoryAction.java
  3. 13
      src/main/java/net/mingsoft/cms/action/GeneraterAction.java
  4. 31
      src/main/java/net/mingsoft/cms/action/web/MCmsAction.java
  5. 18
      src/main/java/net/mingsoft/cms/biz/impl/CategoryBizImpl.java
  6. 11
      src/main/java/net/mingsoft/cms/biz/impl/ContentBizImpl.java
  7. 70
      src/main/java/net/mingsoft/cms/constant/e/CategoryTypeEnum.java
  8. 18
      src/main/java/net/mingsoft/cms/dao/ICategoryDao.xml
  9. 6
      src/main/java/net/mingsoft/cms/dao/IContentDao.xml
  10. 34
      src/main/java/net/mingsoft/cms/entity/CategoryEntity.java
  11. 4
      src/main/java/net/mingsoft/cms/upgrade/Upgrade.java
  12. 40
      src/main/java/net/mingsoft/cms/util/CmsParserUtil.java
  13. 2
      src/main/resources/application.yml

@ -39,29 +39,6 @@
<artifactId>ms-mpeople</artifactId> <artifactId>ms-mpeople</artifactId>
</dependency> </dependency>
<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>ms-ad</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>net.mingsoft</groupId>-->
<!-- <artifactId>ms-clean</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>net.mingsoft</groupId>-->
<!-- <artifactId>ms-quartz</artifactId>-->
<!-- </dependency>-->
<!-- 此部分是铭飞平台MStroe的客户端(MStore不在铭飞开源产品范围),如果不需要使用MStore可以删除掉 -->
<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>store-client</artifactId>
<version>5.2-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -163,7 +163,7 @@ public class CategoryAction extends BaseAction {
if(!StringUtil.checkLength(category.getCategoryPath()+"", 1, 100)){ if(!StringUtil.checkLength(category.getCategoryPath()+"", 1, 100)){
return ResultData.build().error(getResString("err.length", this.getResString("category.path"), "1", "100")); return ResultData.build().error(getResString("err.length", this.getResString("category.path"), "1", "100"));
} }
if(!StringUtil.checkLength(category.getCategoryParentId()+"", 1, 100)){ if(!StringUtil.checkLength(category.getCategoryParentIds()+"", 1, 100)){
return ResultData.build().error(getResString("err.length", this.getResString("category.parent.id"), "1", "100")); return ResultData.build().error(getResString("err.length", this.getResString("category.parent.id"), "1", "100"));
} }
//判断拼音是否重复 //判断拼音是否重复
@ -241,7 +241,7 @@ public class CategoryAction extends BaseAction {
if(!StringUtil.checkLength(category.getCategoryPath()+"", 0, 100)){ if(!StringUtil.checkLength(category.getCategoryPath()+"", 0, 100)){
return ResultData.build().error(getResString("err.length", this.getResString("category.path"), "1", "100")); return ResultData.build().error(getResString("err.length", this.getResString("category.path"), "1", "100"));
} }
if(!StringUtil.checkLength(category.getCategoryParentId()+"", 0, 100)){ if(!StringUtil.checkLength(category.getCategoryParentIds()+"", 0, 100)){
return ResultData.build().error(getResString("err.length", this.getResString("category.parent.id"), "1", "100")); return ResultData.build().error(getResString("err.length", this.getResString("category.parent.id"), "1", "100"));
} }
//判断拼音是否重复并且是否和原拼音相同 //判断拼音是否重复并且是否和原拼音相同
@ -268,7 +268,7 @@ public class CategoryAction extends BaseAction {
} }
//判断是否选择子级为所属栏目 //判断是否选择子级为所属栏目
CategoryEntity _category = new CategoryEntity(); CategoryEntity _category = new CategoryEntity();
_category.setCategoryParentId(category.getId()); _category.setCategoryParentIds(category.getId());
List<CategoryEntity> categoryList = categoryBiz.queryChilds(_category); List<CategoryEntity> categoryList = categoryBiz.queryChilds(_category);
for(CategoryEntity item:categoryList){ for(CategoryEntity item:categoryList){
if(item.getId().equals(category.getCategoryId())){ if(item.getId().equals(category.getCategoryId())){
@ -302,7 +302,7 @@ public class CategoryAction extends BaseAction {
return ResultData.build().error(getResString("err.error", this.getResString("id"))); return ResultData.build().error(getResString("err.error", this.getResString("id")));
} }
category = categoryBiz.getById(category.getId()); category = categoryBiz.getById(category.getId());
category.setCategoryParentId(null); category.setCategoryParentIds(null);
List<CategoryEntity> childs = categoryBiz.queryChilds(category); List<CategoryEntity> childs = categoryBiz.queryChilds(category);
//更新与父节点相同类型的子栏目的模板内容 //更新与父节点相同类型的子栏目的模板内容
for (int i =0; i < childs.size(); i++) { for (int i =0; i < childs.size(); i++) {

@ -36,6 +36,7 @@ import net.mingsoft.cms.bean.CategoryBean;
import net.mingsoft.cms.bean.ContentBean; import net.mingsoft.cms.bean.ContentBean;
import net.mingsoft.cms.biz.ICategoryBiz; import net.mingsoft.cms.biz.ICategoryBiz;
import net.mingsoft.cms.biz.IContentBiz; import net.mingsoft.cms.biz.IContentBiz;
import net.mingsoft.cms.constant.e.CategoryTypeEnum;
import net.mingsoft.cms.entity.CategoryEntity; import net.mingsoft.cms.entity.CategoryEntity;
import net.mingsoft.cms.util.CmsParserUtil; import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.bean.PageBean; import net.mingsoft.mdiy.bean.PageBean;
@ -178,9 +179,9 @@ public class GeneraterAction extends BaseAction {
articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean);
// 判断列表类型 // 判断列表类型
switch (column.getCategoryType()) { switch (CategoryTypeEnum.get(column.getCategoryType())) {
//TODO 暂时先用字符串代替 //TODO 暂时先用字符串代替
case "1": // 列表 case LIST: // 列表
// 判断模板文件是否存在 // 判断模板文件是否存在
if (!FileUtil.exist(ParserUtil.buildTempletPath(column.getCategoryListUrl()))) { if (!FileUtil.exist(ParserUtil.buildTempletPath(column.getCategoryListUrl()))) {
@ -190,7 +191,7 @@ public class GeneraterAction extends BaseAction {
CmsParserUtil.generateList(column, articleIdList.size(),htmlDir); CmsParserUtil.generateList(column, articleIdList.size(),htmlDir);
break; break;
case "2":// 单页 case COVER:// 单页
if (articleIdList.size() == 0) { if (articleIdList.size() == 0) {
CategoryBean columnArticleIdBean = new CategoryBean(); CategoryBean columnArticleIdBean = new CategoryBean();
CopyOptions copyOptions = CopyOptions.create(); CopyOptions copyOptions = CopyOptions.create();
@ -235,7 +236,7 @@ public class GeneraterAction extends BaseAction {
// 生成所有栏目的文章 // 生成所有栏目的文章
if ("0".equals(columnId)) { if ("0".equals(columnId)) {
categoryList = categoryBiz.list(Wrappers.<CategoryEntity>lambdaQuery() categoryList = categoryBiz.list(Wrappers.<CategoryEntity>lambdaQuery()
.isNull(CategoryEntity::getCategoryParentId)); .isNull(CategoryEntity::getCategoryParentIds));
} else { } else {
CategoryEntity category = (CategoryEntity) categoryBiz.getById(columnId); CategoryEntity category = (CategoryEntity) categoryBiz.getById(columnId);
categoryList.add(category); categoryList.add(category);
@ -246,13 +247,13 @@ public class GeneraterAction extends BaseAction {
//将文章列表标签中的中的参数 //将文章列表标签中的中的参数
articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean); articleIdList = contentBiz.queryIdsByCategoryIdForParser(contentBean);
// 分类是列表 // 分类是列表
if (category.getCategoryType().equals("1")) { if (category.getCategoryType().equals(CategoryTypeEnum.LIST.toString())) {
// 判断模板文件是否存在 // 判断模板文件是否存在
if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) { if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) {
LOG.error("模板不存在:{}", category.getCategoryUrl()); LOG.error("模板不存在:{}", category.getCategoryUrl());
continue; continue;
} }
} else if (category.getCategoryType().equals("2")) { } else if (category.getCategoryType().equals(CategoryTypeEnum.COVER.toString())) {
CategoryBean columnArticleIdBean = new CategoryBean(); CategoryBean columnArticleIdBean = new CategoryBean();
CopyOptions copyOptions = CopyOptions.create(); CopyOptions copyOptions = CopyOptions.create();
copyOptions.setIgnoreError(true); copyOptions.setIgnoreError(true);

@ -21,8 +21,12 @@
package net.mingsoft.cms.action.web; package net.mingsoft.cms.action.web;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Editor;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil; import cn.hutool.core.util.PageUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import freemarker.core.ParseException; import freemarker.core.ParseException;
import freemarker.template.MalformedTemplateNameException; import freemarker.template.MalformedTemplateNameException;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
@ -36,6 +40,7 @@ import net.mingsoft.cms.bean.CategoryBean;
import net.mingsoft.cms.bean.ContentBean; import net.mingsoft.cms.bean.ContentBean;
import net.mingsoft.cms.biz.ICategoryBiz; import net.mingsoft.cms.biz.ICategoryBiz;
import net.mingsoft.cms.biz.IContentBiz; import net.mingsoft.cms.biz.IContentBiz;
import net.mingsoft.cms.constant.e.CategoryTypeEnum;
import net.mingsoft.cms.entity.CategoryEntity; import net.mingsoft.cms.entity.CategoryEntity;
import net.mingsoft.cms.entity.ContentEntity; import net.mingsoft.cms.entity.ContentEntity;
import net.mingsoft.cms.util.CmsParserUtil; import net.mingsoft.cms.util.CmsParserUtil;
@ -45,6 +50,7 @@ import net.mingsoft.mdiy.biz.IPageBiz;
import net.mingsoft.mdiy.entity.ModelEntity; import net.mingsoft.mdiy.entity.ModelEntity;
import net.mingsoft.mdiy.util.ParserUtil; import net.mingsoft.mdiy.util.ParserUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -252,8 +258,8 @@ public class MCmsAction extends net.mingsoft.cms.action.BaseAction {
} }
// 文章的栏目路径 // 文章的栏目路径
String categoryParentId = articleIdList.get(artId).getId(); String categoryParentId = articleIdList.get(artId).getId();
if (StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentId())) { if (StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentIds())) {
categoryParentId += ',' + articleIdList.get(artId).getCategoryParentId(); categoryParentId += ',' + articleIdList.get(artId).getCategoryParentIds();
} }
// 文章的栏目模型编号 // 文章的栏目模型编号
Integer columnContentModelId = articleIdList.get(artId).getMdiyModelId(); Integer columnContentModelId = articleIdList.get(artId).getMdiyModelId();
@ -336,15 +342,33 @@ public class MCmsAction extends net.mingsoft.cms.action.BaseAction {
//获取栏目信息 //获取栏目信息
int typeId = 0; int typeId = 0;
String categoryIds = BasicUtil.getString("categoryIds"); String categoryIds = BasicUtil.getString("categoryIds");
List categoryIdList = CollectionUtil.newArrayList();
//当传递了栏目编号,但不是栏目集合 //当传递了栏目编号,但不是栏目集合
if (StringUtils.isNotBlank(categoryIds) && !categoryIds.contains(",")) { if (StringUtils.isNotBlank(categoryIds) && !categoryIds.contains(",")) {
typeId = Integer.parseInt(categoryIds); typeId = Integer.parseInt(categoryIds);
} else {
//取出所有的子栏目
String[] ids = categoryIds.split(",");
List<CategoryEntity> categoryList = categoryBiz.list(Wrappers.<CategoryEntity>lambdaQuery().ne(CategoryEntity::getCategoryType, CategoryTypeEnum.LINK.toString()));
categoryIdList = CollectionUtil.newArrayList(ids);
for(CategoryEntity c:categoryList) {
if(StringUtils.isNotEmpty(c.getParentids())) {
for(String id:ids) {
if(c.getParentids().indexOf(id)>-1) {
categoryIdList.add(c.getId());
break;
}
}
}
}
} }
//重新组织 ID
categoryIds = StringUtils.join(categoryIdList, ",");
//当前访问的项目地址 //当前访问的项目地址
String url = BasicUtil.getUrl(); String url = BasicUtil.getUrl();
//根据栏目确定自定义模型 //根据栏目确定自定义模型
if (typeId > 0) { if (typeId > 0) {
column = (CategoryEntity) categoryBiz.getEntity(typeId); column = (CategoryEntity) categoryBiz.getEntity(typeId);
@ -413,6 +437,7 @@ public class MCmsAction extends net.mingsoft.cms.action.BaseAction {
Map<String, Object> searchMap = field; Map<String, Object> searchMap = field;
searchMap.put("categoryIds",categoryIds);
StringBuilder urlParams = new StringBuilder(); StringBuilder urlParams = new StringBuilder();
searchMap.forEach((k, v) -> { searchMap.forEach((k, v) -> {

@ -117,13 +117,13 @@ public class CategoryBizImpl extends BaseBizImpl<ICategoryDao, CategoryEntity> i
if(StringUtils.isNotEmpty(categoryEntity.getCategoryId())&&Long.parseLong(categoryEntity.getCategoryId())>0) { if(StringUtils.isNotEmpty(categoryEntity.getCategoryId())&&Long.parseLong(categoryEntity.getCategoryId())>0) {
CategoryEntity category = (CategoryEntity)getById(categoryEntity.getCategoryId()); CategoryEntity category = (CategoryEntity)getById(categoryEntity.getCategoryId());
path = category.getCategoryPath(); path = category.getCategoryPath();
if(StringUtils.isEmpty(category.getCategoryParentId())) { if(StringUtils.isEmpty(category.getCategoryParentIds())) {
categoryEntity.setCategoryParentId(category.getId()); categoryEntity.setCategoryParentIds(category.getId());
} else { } else {
categoryEntity.setCategoryParentId(category.getCategoryParentId()+","+category.getId()); categoryEntity.setCategoryParentIds(category.getCategoryParentIds()+","+category.getId());
} }
}else { }else {
categoryEntity.setCategoryParentId(null); categoryEntity.setCategoryParentIds(null);
} }
//保存时先保存再修改链接地址,修改时直接修改 //保存时先保存再修改链接地址,修改时直接修改
if(StringUtils.isNotBlank(categoryEntity.getId())) { if(StringUtils.isNotBlank(categoryEntity.getId())) {
@ -136,10 +136,10 @@ public class CategoryBizImpl extends BaseBizImpl<ICategoryDao, CategoryEntity> i
category.setCategoryId(categoryEntity.getId()); category.setCategoryId(categoryEntity.getId());
List<CategoryEntity> list = categoryDao.query(category); List<CategoryEntity> list = categoryDao.query(category);
list.forEach(x->{ list.forEach(x->{
if(StringUtils.isEmpty(categoryEntity.getCategoryParentId())) { if(StringUtils.isEmpty(categoryEntity.getCategoryParentIds())) {
x.setCategoryParentId(categoryEntity.getId()); x.setCategoryParentIds(categoryEntity.getId());
} else { } else {
x.setCategoryParentId(categoryEntity.getCategoryParentId()+","+categoryEntity.getId()); x.setCategoryParentIds(categoryEntity.getCategoryParentIds()+","+categoryEntity.getId());
} }
String path=categoryEntity.getCategoryPath(); String path=categoryEntity.getCategoryPath();
//判断是否有parentIds //判断是否有parentIds
@ -181,7 +181,7 @@ public class CategoryBizImpl extends BaseBizImpl<ICategoryDao, CategoryEntity> i
CategoryEntity category = (CategoryEntity) categoryDao.selectById(categoryId); CategoryEntity category = (CategoryEntity) categoryDao.selectById(categoryId);
//删除父类 //删除父类
if(category != null){ if(category != null){
category.setCategoryParentId(null); category.setCategoryParentIds(null);
List<CategoryEntity> childrenList = categoryDao.queryChildren(category); List<CategoryEntity> childrenList = categoryDao.queryChildren(category);
List<String> ids = new ArrayList<>(); List<String> ids = new ArrayList<>();
for(int i = 0; i < childrenList.size(); i++){ for(int i = 0; i < childrenList.size(); i++){
@ -233,7 +233,7 @@ public class CategoryBizImpl extends BaseBizImpl<ICategoryDao, CategoryEntity> i
* @param entity * @param entity
*/ */
private void setTopId(CategoryEntity entity){ private void setTopId(CategoryEntity entity){
String categoryParentId = entity.getCategoryParentId(); String categoryParentId = entity.getCategoryParentIds();
if(StrUtil.isNotBlank(categoryParentId)){ if(StrUtil.isNotBlank(categoryParentId)){
String[] ids = categoryParentId.split(","); String[] ids = categoryParentId.split(",");
//如果有ParentId就取第一个 //如果有ParentId就取第一个

@ -30,6 +30,7 @@ import net.mingsoft.basic.holder.DataHolder;
import net.mingsoft.basic.util.BasicUtil; import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.cms.bean.CategoryBean; import net.mingsoft.cms.bean.CategoryBean;
import net.mingsoft.cms.bean.ContentBean; import net.mingsoft.cms.bean.ContentBean;
import net.mingsoft.cms.constant.e.CategoryTypeEnum;
import net.mingsoft.cms.dao.ICategoryDao; import net.mingsoft.cms.dao.ICategoryDao;
import net.mingsoft.cms.entity.CategoryEntity; import net.mingsoft.cms.entity.CategoryEntity;
import net.mingsoft.cms.entity.ContentEntity; import net.mingsoft.cms.entity.ContentEntity;
@ -141,7 +142,7 @@ public class ContentBizImpl extends BaseBizImpl<IContentDao, ContentEntity> imp
for(CategoryEntity category : categoryList){ for(CategoryEntity category : categoryList){
contentBean.setCategoryId(category.getId()); contentBean.setCategoryId(category.getId());
// 分类是列表 // 分类是列表
if(category.getCategoryType().equals("1")){ if(category.getCategoryType().equals(CategoryTypeEnum.LIST.toString())){
// 判断模板文件是否存在 // 判断模板文件是否存在
if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) { if (!FileUtil.exist(ParserUtil.buildTempletPath(category.getCategoryListUrl())) || StringUtils.isEmpty(category.getCategoryListUrl())) {
LOG.error("模板不存在:{}",category.getCategoryUrl()); LOG.error("模板不存在:{}",category.getCategoryUrl());
@ -172,7 +173,7 @@ public class ContentBizImpl extends BaseBizImpl<IContentDao, ContentEntity> imp
ContentBean contentBean = new ContentBean(); ContentBean contentBean = new ContentBean();
contentBean.setCategoryId(column.getId()); contentBean.setCategoryId(column.getId());
// 分类是列表 // 分类是列表
if(column.getCategoryType().equals("1")) { if(column.getCategoryType().equals(CategoryTypeEnum.LIST.toString())) {
// 判断模板文件是否存在 // 判断模板文件是否存在
if (!FileUtil.exist(ParserUtil.buildTempletPath(column.getCategoryListUrl()))) { if (!FileUtil.exist(ParserUtil.buildTempletPath(column.getCategoryListUrl()))) {
LOG.error("模板不存在:{}", column.getCategoryUrl()); LOG.error("模板不存在:{}", column.getCategoryUrl());
@ -191,12 +192,12 @@ public class ContentBizImpl extends BaseBizImpl<IContentDao, ContentEntity> imp
} }
articleIdList = contentDao.queryIdsByCategoryIdForParser(contentBean); articleIdList = contentDao.queryIdsByCategoryIdForParser(contentBean);
// 判断列表类型 // 判断列表类型
switch (column.getCategoryType()) { switch (CategoryTypeEnum.get(column.getCategoryType())) {
//TODO 暂时先用字符串代替 //TODO 暂时先用字符串代替
case "1": // 列表 case LIST: // 列表
CmsParserUtil.generateList(column, articleIdList.size(),htmlDir); CmsParserUtil.generateList(column, articleIdList.size(),htmlDir);
break; break;
case "2":// 单页 case COVER:// 单页
if(articleIdList.size()==0){ if(articleIdList.size()==0){
CategoryBean columnArticleIdBean=new CategoryBean(); CategoryBean columnArticleIdBean=new CategoryBean();
CopyOptions copyOptions=CopyOptions.create(); CopyOptions copyOptions=CopyOptions.create();

@ -0,0 +1,70 @@
/**
* The MIT License (MIT) * Copyright (c) 2020 铭软科技(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.constant.e;
import net.mingsoft.base.constant.e.BaseEnum;
/**
* @Author: 铭飞团队
* @Description:
* @Date: Create in 2020/06/23 14:18
*/
public enum CategoryTypeEnum implements BaseEnum {
/**
* 列表
*/
LIST("1"),
/**
* 封面
*/
COVER("2"),
/**
* 链接
*/
LINK("3");
CategoryTypeEnum(String type) {
this.type = type;
}
private String type;
public static CategoryTypeEnum get(String type) {
for (CategoryTypeEnum e : CategoryTypeEnum.values()) {
if (e.type.equals(type)) {
return e;
}
}
return null;
}
@Override
public int toInt() {
return Integer.parseInt(type);
}
@Override
public String toString() {
return type;
}
}

@ -20,7 +20,7 @@
<result column="dict_id" property="dictId" /><!--字典对应编号 --> <result column="dict_id" property="dictId" /><!--字典对应编号 -->
<result column="category_flag" property="categoryFlag" /><!--栏目属性 --> <result column="category_flag" property="categoryFlag" /><!--栏目属性 -->
<result column="category_path" property="categoryPath" /><!--栏目路径 --> <result column="category_path" property="categoryPath" /><!--栏目路径 -->
<result column="category_parent_id" property="categoryParentId" /><!--父类型编号 --> <result column="category_parent_ids" property="categoryParentIds" /><!--父类型编号 -->
<result column="create_by" property="createBy" /><!--创建人 --> <result column="create_by" property="createBy" /><!--创建人 -->
<result column="create_date" property="createDate" /><!--创建时间 --> <result column="create_date" property="createDate" /><!--创建时间 -->
<result column="update_by" property="updateBy" /><!--修改人 --> <result column="update_by" property="updateBy" /><!--修改人 -->
@ -49,7 +49,7 @@
<if test="dictId != null">dict_id,</if> <if test="dictId != null">dict_id,</if>
<if test="categoryFlag != null">category_flag,</if> <if test="categoryFlag != null">category_flag,</if>
<if test="categoryPath != null and categoryPath != ''">category_path,</if> <if test="categoryPath != null and categoryPath != ''">category_path,</if>
<if test="categoryParentId != null and categoryParentId != ''">category_parent_id,</if> <if test="categoryParentIds != null and categoryParentIds != ''">category_parent_ids,</if>
<if test="createBy &gt; 0">create_by,</if> <if test="createBy &gt; 0">create_by,</if>
<if test="createDate != null">create_date,</if> <if test="createDate != null">create_date,</if>
<if test="updateBy &gt; 0">update_by,</if> <if test="updateBy &gt; 0">update_by,</if>
@ -89,7 +89,7 @@
<if test="categoryTitle != null and categoryTitle != ''">category_title=#{categoryTitle},</if> <if test="categoryTitle != null and categoryTitle != ''">category_title=#{categoryTitle},</if>
<if test="categoryPinyin != null and categoryPinyin != ''">category_pinyin=#{categoryPinyin},</if> <if test="categoryPinyin != null and categoryPinyin != ''">category_pinyin=#{categoryPinyin},</if>
category_id=#{categoryId}, category_id=#{categoryId},
category_parent_id=#{categoryParentId}, category_parent_ids=#{categoryParentIds},
<if test="categoryType != null and categoryType != ''">category_type=#{categoryType},</if> <if test="categoryType != null and categoryType != ''">category_type=#{categoryType},</if>
<if test="categorySort != null">category_sort=#{categorySort},</if> <if test="categorySort != null">category_sort=#{categorySort},</if>
<if test="categoryListUrl != null and categoryListUrl != ''">category_list_url=#{categoryListUrl},</if> <if test="categoryListUrl != null and categoryListUrl != ''">category_list_url=#{categoryListUrl},</if>
@ -137,7 +137,7 @@
<if test="dictId != null"> and dict_id=#{dictId} </if> <if test="dictId != null"> and dict_id=#{dictId} </if>
<if test="categoryFlag != null and categoryFlag != ''">and category_flag=#{categoryFlag}</if> <if test="categoryFlag != null and categoryFlag != ''">and category_flag=#{categoryFlag}</if>
<if test="categoryPath != null and categoryPath != ''">and category_path=#{categoryPath}</if> <if test="categoryPath != null and categoryPath != ''">and category_path=#{categoryPath}</if>
<if test="categoryParentId != null and categoryParentId != ''">and category_parent_id=#{categoryParentId}</if> <if test="categoryParentIds != null and categoryParentIds != ''">and category_parent_ids=#{categoryParentIds}</if>
<if test="createBy &gt; 0"> and create_by=#{createBy} </if> <if test="createBy &gt; 0"> and create_by=#{createBy} </if>
<if test="createDate != null"> and create_date=#{createDate} </if> <if test="createDate != null"> and create_date=#{createDate} </if>
<if test="updateBy &gt; 0"> and update_by=#{updateBy} </if> <if test="updateBy &gt; 0"> and update_by=#{updateBy} </if>
@ -157,11 +157,11 @@
</if> </if>
and and
( (
<if test="categoryParentId != null and categoryParentId!=''"> <if test="categoryParentIds != null and categoryParentIds!=''">
find_in_set(#{categoryParentId},CATEGORY_PARENT_ID) find_in_set(#{categoryParentIds},CATEGORY_PARENT_IDS)
</if> </if>
<if test="categoryParentId == null or categoryParentId ==''"> <if test="categoryParentIds == null or categoryParentIds ==''">
find_in_set('${id}',CATEGORY_PARENT_ID) find_in_set('${id}',CATEGORY_PARENT_IDS)
</if> </if>
<if test="id != null"> <if test="id != null">
or id=#{id} or id=#{id}
@ -209,7 +209,7 @@
<if test="dictId != null"> and dict_id=#{dictId} </if> <if test="dictId != null"> and dict_id=#{dictId} </if>
<if test="categoryFlag != null and categoryFlag != ''"> and category_flag=#{categoryFlag}</if> <if test="categoryFlag != null and categoryFlag != ''"> and category_flag=#{categoryFlag}</if>
<if test="categoryPath != null and categoryPath != ''"> and category_path=#{categoryPath}</if> <if test="categoryPath != null and categoryPath != ''"> and category_path=#{categoryPath}</if>
<if test="categoryParentId != null and categoryParentId != ''"> and find_in_set(#{categoryParentId},category_parent_id)</if> <if test="categoryParentIds != null and categoryParentIds != ''"> and find_in_set(#{categoryParentIds},category_parent_ids)</if>
<if test="createBy &gt; 0"> and create_by=#{createBy} </if> <if test="createBy &gt; 0"> and create_by=#{createBy} </if>
<if test="createDate != null"> and create_date=#{createDate} </if> <if test="createDate != null"> and create_date=#{createDate} </if>
<if test="updateBy &gt; 0"> and update_by=#{updateBy} </if> <if test="updateBy &gt; 0"> and update_by=#{updateBy} </if>

@ -67,7 +67,7 @@
<result column="dict_id" property="dictId" /><!--字典对应编号 --> <result column="dict_id" property="dictId" /><!--字典对应编号 -->
<result column="category_flag" property="categoryFlag" /><!--栏目属性 --> <result column="category_flag" property="categoryFlag" /><!--栏目属性 -->
<result column="category_path" property="categoryPath" /><!--栏目路径 --> <result column="category_path" property="categoryPath" /><!--栏目路径 -->
<result column="category_parent_id" property="categoryParentId" /><!--父类型编号 --> <result column="category_parent_ids" property="categoryParentIds" /><!--父类型编号 -->
<result column="create_by" property="createBy" /><!--创建人 --> <result column="create_by" property="createBy" /><!--创建人 -->
<result column="create_date" property="createDate" /><!--创建时间 --> <result column="create_date" property="createDate" /><!--创建时间 -->
<result column="update_by" property="updateBy" /><!--修改人 --> <result column="update_by" property="updateBy" /><!--修改人 -->
@ -219,7 +219,7 @@
ct.del=0 ct.del=0
<if test="contentTitle != null and contentTitle != ''"> and content_title like CONCAT('%',#{contentTitle},'%')</if> <if test="contentTitle != null and contentTitle != ''"> and content_title like CONCAT('%',#{contentTitle},'%')</if>
<if test="categoryId != null and categoryId != ''"> and (ct.category_id=#{categoryId} or ct.category_id in <if test="categoryId != null and categoryId != ''"> and (ct.category_id=#{categoryId} or ct.category_id in
(select id FROM cms_category where find_in_set('${categoryId}',CATEGORY_PARENT_ID)))</if> (select id FROM cms_category where find_in_set('${categoryId}',CATEGORY_PARENT_IDS)))</if>
<if test="contentType != null and contentType != ''"> and content_type LIKE CONCAT('%',#{contentType},'%')</if> <if test="contentType != null and contentType != ''"> and content_type LIKE CONCAT('%',#{contentType},'%')</if>
<if test="contentDisplay != null and contentDisplay != ''"> and content_display=#{contentDisplay}</if> <if test="contentDisplay != null and contentDisplay != ''"> and content_display=#{contentDisplay}</if>
<if test="contentAuthor != null and contentAuthor != ''"> and content_author=#{contentAuthor}</if> <if test="contentAuthor != null and contentAuthor != ''"> and content_author=#{contentAuthor}</if>
@ -251,7 +251,7 @@
<!-- 查询子栏目数据 --> <!-- 查询子栏目数据 -->
<if test="categoryId &gt; 0"> <if test="categoryId &gt; 0">
and (ct.category_id=#{categoryId} or ct.category_id in and (ct.category_id=#{categoryId} or ct.category_id in
(select id FROM cms_category where find_in_set('${categoryId}',CATEGORY_PARENT_ID))) (select id FROM cms_category where find_in_set('${categoryId}',CATEGORY_PARENT_IDS)))
</if> </if>
<if test="beginTime!=null and beginTime!=''"> <if test="beginTime!=null and beginTime!=''">
and content_datetime &gt;= #{beginTime} and content_datetime &gt;= #{beginTime}

@ -15,6 +15,7 @@ import java.util.Date;
/** /**
* 分类实体 * 分类实体
*
* @author 铭飞开发团队 * @author 铭飞开发团队
* 创建日期2019-11-28 15:12:32<br/> * 创建日期2019-11-28 15:12:32<br/>
* 历史修订<br/> * 历史修订<br/>
@ -96,7 +97,7 @@ private static final long serialVersionUID = 1574925152750L;
/** /**
* 父类型编号 * 父类型编号
*/ */
private String categoryParentId; private String categoryParentIds;
/** /**
* 叶子节点 * 叶子节点
@ -137,6 +138,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryTitle() { public String getCategoryTitle() {
return this.categoryTitle; return this.categoryTitle;
} }
/** /**
* 设置所属栏目 * 设置所属栏目
*/ */
@ -158,6 +160,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryId() { public String getCategoryId() {
return this.categoryId; return this.categoryId;
} }
/** /**
* 设置栏目管理属性 * 设置栏目管理属性
*/ */
@ -171,6 +174,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryType() { public String getCategoryType() {
return this.categoryType; return this.categoryType;
} }
/** /**
* 设置自定义顺序 * 设置自定义顺序
*/ */
@ -184,6 +188,7 @@ private static final long serialVersionUID = 1574925152750L;
public Integer getCategorySort() { public Integer getCategorySort() {
return this.categorySort; return this.categorySort;
} }
/** /**
* 设置列表模板 * 设置列表模板
*/ */
@ -197,6 +202,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryListUrl() { public String getCategoryListUrl() {
return this.categoryListUrl; return this.categoryListUrl;
} }
/** /**
* 设置内容模板 * 设置内容模板
*/ */
@ -210,6 +216,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryUrl() { public String getCategoryUrl() {
return this.categoryUrl; return this.categoryUrl;
} }
/** /**
* 设置栏目管理关键字 * 设置栏目管理关键字
*/ */
@ -223,6 +230,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryKeyword() { public String getCategoryKeyword() {
return this.categoryKeyword; return this.categoryKeyword;
} }
/** /**
* 设置栏目管理描述 * 设置栏目管理描述
*/ */
@ -236,6 +244,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryDescrip() { public String getCategoryDescrip() {
return this.categoryDescrip; return this.categoryDescrip;
} }
/** /**
* 设置缩略图 * 设置缩略图
*/ */
@ -249,6 +258,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryImg() { public String getCategoryImg() {
return this.categoryImg; return this.categoryImg;
} }
/** /**
* 设置自定义链接 * 设置自定义链接
*/ */
@ -298,6 +308,7 @@ private static final long serialVersionUID = 1574925152750L;
public Integer getDictId() { public Integer getDictId() {
return this.dictId; return this.dictId;
} }
/** /**
* 设置栏目属性 * 设置栏目属性
*/ */
@ -311,6 +322,7 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryFlag() { public String getCategoryFlag() {
return this.categoryFlag; return this.categoryFlag;
} }
/** /**
* 设置栏目路径 * 设置栏目路径
*/ */
@ -324,18 +336,19 @@ private static final long serialVersionUID = 1574925152750L;
public String getCategoryPath() { public String getCategoryPath() {
return this.categoryPath; return this.categoryPath;
} }
/** /**
* 设置父类型编号 * 设置父类型编号
*/ */
public void setCategoryParentId(String categoryParentId) { public void setCategoryParentIds(String categoryParentIds) {
this.categoryParentId = categoryParentId; this.categoryParentIds = categoryParentIds;
} }
/** /**
* 获取父类型编号 * 获取父类型编号
*/ */
public String getCategoryParentId() { public String getCategoryParentIds() {
return this.categoryParentId; return this.categoryParentIds;
} }
/** /**
@ -344,12 +357,14 @@ private static final long serialVersionUID = 1574925152750L;
public String getTypetitle() { public String getTypetitle() {
return this.categoryTitle; return this.categoryTitle;
} }
/** /**
* 获取栏目链接 标签使用动态链接不考虑 * 获取栏目链接 标签使用动态链接不考虑
*/ */
public String getTypelink() { public String getTypelink() {
return "3".equals(this.categoryType) ? this.categoryDiyUrl : this.categoryPath + "/index.html"; return "3".equals(this.categoryType) ? this.categoryDiyUrl : this.categoryPath + "/index.html";
} }
/** /**
* 获取栏目关键字 标签使用 * 获取栏目关键字 标签使用
*/ */
@ -363,30 +378,35 @@ private static final long serialVersionUID = 1574925152750L;
public String getTypeurl() { public String getTypeurl() {
return this.categoryDiyUrl; return this.categoryDiyUrl;
} }
/** /**
* 获取栏目属性 标签使用 * 获取栏目属性 标签使用
*/ */
public String getFlag() { public String getFlag() {
return this.categoryFlag; return this.categoryFlag;
} }
/** /**
* 获取栏目父级Id 标签使用 * 获取栏目父级Id 标签使用
*/ */
public String getParentid() { public String getParentids() {
return this.categoryParentId; return this.categoryParentIds;
} }
/** /**
* 获取栏目描述标签使用 * 获取栏目描述标签使用
*/ */
public String getTypedescrip() { public String getTypedescrip() {
return this.categoryDescrip; return this.categoryDescrip;
} }
/** /**
* 获取栏目Id标签使用 * 获取栏目Id标签使用
*/ */
public String getTypeid() { public String getTypeid() {
return this.id; return this.id;
} }
/** /**
* 获取栏目图片 (标签使用 * 获取栏目图片 (标签使用
*/ */

@ -30,7 +30,7 @@ public class Upgrade {
//将parentId第一行设为顶级节点 //将parentId第一行设为顶级节点
String topId = "0"; String topId = "0";
String parentId = x.getParentid(); String parentId = x.getParentids();
if (parentId != null) { if (parentId != null) {
topId = parentId.split(",")[0]; topId = parentId.split(",")[0];
} }
@ -40,7 +40,7 @@ public class Upgrade {
boolean leaf = true; boolean leaf = true;
//判断是否叶子,循环查找,如果有节点的父节点中包含该节点的id则判断为否跳出循环 //判断是否叶子,循环查找,如果有节点的父节点中包含该节点的id则判断为否跳出循环
for (int i = 0; i< list.size(); i++) { for (int i = 0; i< list.size(); i++) {
String pId = list.get(i).getParentid(); String pId = list.get(i).getParentids();
if (pId == null) { if (pId == null) {
continue; continue;
} }

@ -10,6 +10,7 @@ import net.mingsoft.base.constant.Const;
import net.mingsoft.basic.util.BasicUtil; import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.SpringUtil; import net.mingsoft.basic.util.SpringUtil;
import net.mingsoft.cms.bean.CategoryBean; import net.mingsoft.cms.bean.CategoryBean;
import net.mingsoft.cms.constant.e.CategoryTypeEnum;
import net.mingsoft.cms.entity.CategoryEntity; import net.mingsoft.cms.entity.CategoryEntity;
import net.mingsoft.mdiy.bean.PageBean; import net.mingsoft.mdiy.bean.PageBean;
import net.mingsoft.mdiy.biz.IModelBiz; import net.mingsoft.mdiy.biz.IModelBiz;
@ -31,20 +32,15 @@ import java.util.concurrent.ExecutorService;
* 文章解析工具类 * 文章解析工具类
*/ */
public class CmsParserUtil extends ParserUtil { public class CmsParserUtil extends ParserUtil {
/**
* 封面
*/
private static int COLUMN_TYPE_COVER = 2;
private final static String FIELD = "field"; private final static String FIELD = "field";
/** /**
* 指定模板指定路径进行生成静态页面会自定识别pc与移动端 * 指定模板指定路径进行生成静态页面会自定识别pc与移动端
* *
* @param templatePath * @param templatePath 模板路径
* 模板路径 * @param targetPath 生成后的路径默认生成的html文件所以不能带.html后缀
* @param targetPath
* 生成后的路径默认生成的html文件所以不能带.html后缀
* @throws IOException * @throws IOException
*/ */
public static void generate(String templatePath, String targetPath, String htmlDir) throws IOException { public static void generate(String templatePath, String targetPath, String htmlDir) throws IOException {
@ -59,6 +55,7 @@ public class CmsParserUtil extends ParserUtil {
/** /**
* 生成静态列表页 * 生成静态列表页
*
* @param column * @param column
* @param articleIdTotal * @param articleIdTotal
* @throws TemplateNotFoundException * @throws TemplateNotFoundException
@ -155,8 +152,7 @@ public class CmsParserUtil extends ParserUtil {
/** /**
* 生成内容 * 生成内容
* *
* @param articleIdList * @param articleIdList 文章集合
* 文章集合
* @return * @return
* @throws IOException * @throws IOException
* @throws ParseException * @throws ParseException
@ -174,25 +170,25 @@ public class CmsParserUtil extends ParserUtil {
for (int artId = 0; artId < articleIdList.size(); ) { for (int artId = 0; artId < articleIdList.size(); ) {
CategoryBean categoryBean = articleIdList.get(artId);
String writePath = null; String writePath = null;
//设置分页类 //设置分页类
PageBean page = new PageBean(); PageBean page = new PageBean();
// 文章编号 // 文章编号
String articleId = articleIdList.get(artId).getArticleId(); String articleId = categoryBean.getArticleId();
// 文章的栏目路径 // 文章的栏目路径
String articleColumnPath = articleIdList.get(artId).getCategoryPath(); String articleColumnPath = categoryBean.getCategoryPath();
// 该文章相关分类 // 该文章相关分类
String categoryParentId = articleIdList.get(artId).getId() ; String categoryParentId = categoryBean.getId();
if(StringUtils.isNotBlank(articleIdList.get(artId).getCategoryParentId())){ if (StringUtils.isNotBlank(categoryBean.getCategoryParentIds())) {
categoryParentId += ','+articleIdList.get(artId).getCategoryParentId(); categoryParentId += ',' + categoryBean.getCategoryParentIds();
} }
// 文章的模板路径 // 文章的模板路径
String columnUrl = articleIdList.get(artId).getCategoryUrl(); String columnUrl = categoryBean.getCategoryUrl();
// 文章的栏目模型编号 // 文章的栏目模型编号
Integer columnContentModelId = null; Integer columnContentModelId = null;
if(articleIdList.get(artId).getMdiyModelId() != null && articleIdList.get(artId).getMdiyModelId() > 0){ if (articleIdList.get(artId).getMdiyModelId() != null && categoryBean.getMdiyModelId() > 0) {
columnContentModelId = articleIdList.get(artId).getMdiyModelId(); columnContentModelId = categoryBean.getMdiyModelId();
} }
// 文章是否已经生成了,生成了就跳过 // 文章是否已经生成了,生成了就跳过
@ -202,14 +198,14 @@ public class CmsParserUtil extends ParserUtil {
} }
// 判断文件是否存在,若不存在弹出返回信息 // 判断文件是否存在,若不存在弹出返回信息
if (!FileUtil.exist(ParserUtil.buildTempletPath(columnUrl))||articleIdList.get(artId).getId()==null||articleIdList.get(artId).getCategoryType()==null) { if (!FileUtil.exist(ParserUtil.buildTempletPath(columnUrl)) || categoryBean.getId() == null || categoryBean.getCategoryType() == null) {
artId++; artId++;
continue; continue;
} }
// 将 // 将
generateIds.add(articleId); generateIds.add(articleId);
//如果是封面就生成index.html //如果是封面就生成index.html
if(Integer.parseInt(articleIdList.get(artId).getCategoryType()) == COLUMN_TYPE_COVER) { if (categoryBean.getCategoryType().equals(CategoryTypeEnum.COVER.toString())) {
writePath = ParserUtil.buildHtmlPath(articleColumnPath + File.separator + ParserUtil.INDEX, htmlDir); writePath = ParserUtil.buildHtmlPath(articleColumnPath + File.separator + ParserUtil.INDEX, htmlDir);
} else { } else {
// 组合文章路径如:html/站点id/栏目id/文章id.html // 组合文章路径如:html/站点id/栏目id/文章id.html
@ -217,7 +213,7 @@ public class CmsParserUtil extends ParserUtil {
} }
Map<String, Object> parserParams = new HashMap<String, Object>(); Map<String, Object> parserParams = new HashMap<String, Object>();
parserParams.put(ParserUtil.COLUMN, articleIdList.get(artId)); parserParams.put(ParserUtil.COLUMN, categoryBean);
// 判断当前栏目是否有自定义模型 // 判断当前栏目是否有自定义模型
if (columnContentModelId != null) { if (columnContentModelId != null) {
// 通过当前栏目的模型编号获取,自定义模型表名 // 通过当前栏目的模型编号获取,自定义模型表名

@ -12,6 +12,8 @@ logging:
name: mcms.log #会在项目的根目录下生成对应的mcms.log文件,也可以根据实际情况写绝对路径,例如:d:/mcms.log name: mcms.log #会在项目的根目录下生成对应的mcms.log文件,也可以根据实际情况写绝对路径,例如:d:/mcms.log
path: log #会在项目的根目录下生成log目录,里面会生成对应的日期目录,日期目录下面生成日志压缩包备份文件,默认按每10M分割一个日志文件,例如:log/2020-01/app-2020-01-03-18.1.log.gz(表示2020年1月3号下午六点的第一个备份),也可以根据实际情况写绝对路径,例如:d:/log path: log #会在项目的根目录下生成log目录,里面会生成对应的日期目录,日期目录下面生成日志压缩包备份文件,默认按每10M分割一个日志文件,例如:log/2020-01/app-2020-01-03-18.1.log.gz(表示2020年1月3号下午六点的第一个备份),也可以根据实际情况写绝对路径,例如:d:/log
ms: ms:
diy:
html-dir: html
mstore: mstore:
http: http://store.i.mingsoft.net/ http: http://store.i.mingsoft.net/
host: store.i.mingsoft.net host: store.i.mingsoft.net

Loading…
Cancel
Save