Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
MCMS
Commits
ffe26f93
Commit
ffe26f93
authored
Dec 27, 2019
by
tianbj
Browse files
删除旧文章
parent
1d7e5413
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
src/main/java/net/mingsoft/cms/action/ArticleAction.java
deleted
100644 → 0
View file @
1d7e5413
This diff is collapsed.
Click to expand it.
src/main/java/net/mingsoft/cms/action/ColumnAction.java
deleted
100644 → 0
View file @
1d7e5413
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
()));
}
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/action/web/ArticleAction.java
deleted
100644 → 0
View file @
1d7e5413
/**
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"
)));
}
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/action/web/ContentAction.java
deleted
100644 → 0
View file @
1d7e5413
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
;
}
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/biz/IArticleBiz.java
deleted
100644 → 0
View file @
1d7e5413
/**
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
);
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/biz/impl/ArticleBizImpl.java
deleted
100644 → 0
View file @
1d7e5413
/**
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
);
}
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/dao/IArticleDao.java
deleted
100644 → 0
View file @
1d7e5413
/**
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
);
}
\ No newline at end of file
src/main/java/net/mingsoft/cms/dao/IArticleDao.xml
deleted
100644 → 0
View file @
1d7e5413
This diff is collapsed.
Click to expand it.
src/main/java/net/mingsoft/cms/entity/ArticleEntity.java
deleted
100644 → 0
View file @
1d7e5413
/**
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
();
}
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment