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
JeeSpringCloud
Commits
d9ad22de
Commit
d9ad22de
authored
Nov 12, 2018
by
Huang
Browse files
no commit message
parent
c235571d
Changes
97
Hide whitespace changes
Inline
Side-by-side
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/ArticleService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
com.alibaba.fastjson.JSON
;
import
com.jeespring.common.redis.RedisUtils
;
import
org.apache.commons.lang3.StringEscapeUtils
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.google.common.collect.Lists
;
import
com.jeespring.common.config.Global
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.AbstractBaseService
;
import
com.jeespring.common.utils.CacheUtils
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.modules.cms.dao.ArticleDao
;
import
com.jeespring.modules.cms.dao.ArticleDataDao
;
import
com.jeespring.modules.cms.dao.CategoryDao
;
import
com.jeespring.modules.cms.entity.Article
;
import
com.jeespring.modules.cms.entity.ArticleData
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 文章Service
* @author JeeSpring
* @version 2013-05-15
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
ArticleService
extends
AbstractBaseService
<
ArticleDao
,
Article
>
{
@Autowired
private
ArticleDataDao
articleDataDao
;
@Autowired
private
CategoryDao
categoryDao
;
/**
* redis caches
*/
@Autowired
private
RedisUtils
redisUtils
;
@Override
public
Article
get
(
String
id
)
{
//获取缓存数据
Article
article
=(
Article
)
redisUtils
.
get
(
RedisUtils
.
getIdKey
(
ArticleService
.
class
.
getName
(),
id
));
if
(
article
!=
null
)
{
return
article
;
}
//获取数据库数据
article
=
super
.
get
(
id
);
//设置缓存数据
redisUtils
.
set
(
RedisUtils
.
getIdKey
(
ArticleService
.
class
.
getName
(),
id
),
article
);
return
article
;
}
@Transactional
(
readOnly
=
false
)
public
Page
<
Article
>
findPage
(
Page
<
Article
>
page
,
Article
article
,
boolean
isDataScopeFilter
)
{
//获取缓存数据
String
findPageKey
=
RedisUtils
.
getFindPageKey
(
ArticleService
.
class
.
getName
(),
JSON
.
toJSONString
(
page
)+
JSON
.
toJSONString
(
article
));
Page
<
Article
>
pageReuslt
=(
Page
<
Article
>)
redisUtils
.
get
(
findPageKey
);
if
(
pageReuslt
!=
null
)
{
return
pageReuslt
;
}
// 更新过期的权重,间隔为“6”个小时
Date
updateExpiredWeightDate
=
(
Date
)
CacheUtils
.
get
(
"updateExpiredWeightDateByArticle"
);
if
(
updateExpiredWeightDate
==
null
||
(
updateExpiredWeightDate
!=
null
&&
updateExpiredWeightDate
.
getTime
()
<
new
Date
().
getTime
())){
dao
.
updateExpiredWeight
(
article
);
CacheUtils
.
put
(
"updateExpiredWeightDateByArticle"
,
DateUtils
.
addHours
(
new
Date
(),
6
));
}
// DetachedCriteria dc = dao.createDetachedCriteria();
// dc.createAlias("category", "category");
// dc.createAlias("category.site", "category.site");
if
(
article
.
getCategory
()!=
null
&&
StringUtils
.
isNotBlank
(
article
.
getCategory
().
getId
())
&&
!
Category
.
isRoot
(
article
.
getCategory
().
getId
())){
Category
category
=
categoryDao
.
get
(
article
.
getCategory
().
getId
());
if
(
category
==
null
){
category
=
new
Category
();
}
category
.
setParentIds
(
category
.
getId
());
category
.
setSite
(
category
.
getSite
());
article
.
setCategory
(
category
);
}
else
{
article
.
setCategory
(
new
Category
());
}
// if (StringUtils.isBlank(page.getOrderBy())){
// page.setOrderBy("a.weight,a.update_date desc");
// }
// return dao.find(page, dc);
// article.getSqlMap().put("dsf", dataScopeFilter(article.getCurrentUser(), "o", "u"));
pageReuslt
=
super
.
findPage
(
page
,
article
);
//设置缓存数据
redisUtils
.
set
(
findPageKey
,
pageReuslt
);
return
pageReuslt
;
}
@Override
@Transactional
(
readOnly
=
false
)
public
void
save
(
Article
article
)
{
if
(
article
.
getArticleData
().
getContent
()!=
null
){
article
.
getArticleData
().
setContent
(
StringEscapeUtils
.
unescapeHtml4
(
article
.
getArticleData
().
getContent
()));
}
// 如果没有审核权限,则将当前内容改为待审核状态
if
(!
UserUtils
.
getSubject
().
isPermitted
(
"cms:article:audit"
)){
article
.
setDelFlag
(
Article
.
DEL_FLAG_AUDIT
);
}
// 如果栏目不需要审核,则将该内容设为发布状态
if
(
article
.
getCategory
()!=
null
&&
StringUtils
.
isNotBlank
(
article
.
getCategory
().
getId
())){
Category
category
=
categoryDao
.
get
(
article
.
getCategory
().
getId
());
if
(!
Global
.
YES
.
equals
(
category
.
getIsAudit
())){
article
.
setDelFlag
(
Article
.
DEL_FLAG_NORMAL
);
}
}
article
.
setUpdateBy
(
UserUtils
.
getUser
());
article
.
setUpdateDate
(
new
Date
());
if
(
StringUtils
.
isNotBlank
(
article
.
getViewConfig
())){
article
.
setViewConfig
(
StringEscapeUtils
.
unescapeHtml4
(
article
.
getViewConfig
()));
}
ArticleData
articleData
=
new
ArticleData
();;
if
(
StringUtils
.
isBlank
(
article
.
getId
())){
article
.
preInsert
();
articleData
=
article
.
getArticleData
();
articleData
.
setId
(
article
.
getId
());
dao
.
insert
(
article
);
articleDataDao
.
insert
(
articleData
);
}
else
{
article
.
preUpdate
();
articleData
=
article
.
getArticleData
();
articleData
.
setId
(
article
.
getId
());
dao
.
update
(
article
);
articleDataDao
.
update
(
article
.
getArticleData
());
}
//设置清除缓存数据
redisUtils
.
remove
(
RedisUtils
.
getIdKey
(
ArticleService
.
class
.
getName
(),
article
.
getId
()));
//清除列表和页面缓存数据
redisUtils
.
removePattern
(
RedisUtils
.
getFindListKeyPattern
(
ArticleService
.
class
.
getName
()));
redisUtils
.
removePattern
(
RedisUtils
.
getFinPageKeyPattern
(
ArticleService
.
class
.
getName
()));
}
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Article
article
,
Boolean
isRe
)
{
// dao.updateDelFlag(id, isRe!=null&&isRe?Article.DEL_FLAG_NORMAL:Article.DEL_FLAG_DELETE);
// 使用下面方法,以便更新索引。
//Article article = dao.get(id);
//article.setDelFlag(isRe!=null&&isRe?Article.DEL_FLAG_NORMAL:Article.DEL_FLAG_DELETE);
//dao.insert(article);
super
.
delete
(
article
);
}
/**
* 通过编号获取内容标题
* @return new Object[]{栏目Id,文章Id,文章标题}
*/
public
List
<
Object
[]>
findByIds
(
String
ids
)
{
if
(
ids
==
null
){
return
new
ArrayList
<
Object
[]>();
}
List
<
Object
[]>
list
=
Lists
.
newArrayList
();
String
[]
idss
=
StringUtils
.
split
(
ids
,
","
);
Article
e
=
null
;
for
(
int
i
=
0
;(
idss
.
length
-
i
)>
0
;
i
++){
e
=
dao
.
get
(
idss
[
i
]);
list
.
add
(
new
Object
[]{
e
.
getCategory
().
getId
(),
e
.
getId
(),
StringUtils
.
abbr
(
e
.
getTitle
(),
50
)});
}
return
list
;
}
/**
* 点击数加一
*/
@Transactional
(
readOnly
=
false
)
public
void
updateHitsAddOne
(
String
id
)
{
dao
.
updateHitsAddOne
(
id
);
}
/**
* 更新索引
*/
public
void
createIndex
(){
//dao.createIndex();
}
/**
* 全文检索
*/
//FIXME 暂不提供检索功能
public
Page
<
Article
>
search
(
Page
<
Article
>
page
,
String
q
,
String
categoryId
,
String
beginDate
,
String
endDate
){
// 设置查询条件
// BooleanQuery query = dao.getFullTextQuery(q, "title","keywords","description","articleData.content");
//
// // 设置过滤条件
// List<BooleanClause> bcList = Lists.newArrayList();
//
// bcList.add(new BooleanClause(new TermQuery(new Term(Article.FIELD_DEL_FLAG, Article.DEL_FLAG_NORMAL)), Occur.MUST));
// if (StringUtils.isNotBlank(categoryId)){
// bcList.add(new BooleanClause(new TermQuery(new Term("category.ids", categoryId)), Occur.MUST));
// }
//
// if (StringUtils.isNotBlank(beginDate) && StringUtils.isNotBlank(endDate)) {
// bcList.add(new BooleanClause(new TermRangeQuery("updateDate", beginDate.replaceAll("-", ""),
// endDate.replaceAll("-", ""), true, true), Occur.MUST));
// }
//BooleanQuery queryFilter = dao.getFullTextQuery((BooleanClause[])bcList.toArray(new BooleanClause[bcList.size()]));
// System.out.println(queryFilter);
// 设置排序(默认相识度排序)
//FIXME 暂时不提供lucene检索
//Sort sort = null;//new Sort(new SortField("updateDate", SortField.DOC, true));
// 全文检索
//dao.search(page, query, queryFilter, sort);
// 关键字高亮
//dao.keywordsHighlight(query, page.getList(), 30, "title");
//dao.keywordsHighlight(query, page.getList(), 130, "description","articleData.content");
return
page
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/CategoryService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
java.util.List
;
import
java.util.Set
;
import
org.apache.commons.lang3.StringEscapeUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Sets
;
import
com.jeespring.common.config.Global
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.TreeService
;
import
com.jeespring.modules.cms.dao.CategoryDao
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.utils.CmsUtils
;
import
com.jeespring.modules.sys.entity.Office
;
import
com.jeespring.modules.sys.entity.User
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 栏目Service
* @author JeeSpring
* @version 2013-5-31
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
CategoryService
extends
TreeService
<
CategoryDao
,
Category
>
{
public
static
final
String
CACHE_CATEGORY_LIST
=
"categoryList"
;
private
Category
entity
=
new
Category
();
@SuppressWarnings
(
"unchecked"
)
public
List
<
Category
>
findByUser
(
boolean
isCurrentSite
,
String
module
){
List
<
Category
>
list
=
(
List
<
Category
>)
UserUtils
.
getCache
(
CACHE_CATEGORY_LIST
);
if
(
list
==
null
){
User
user
=
UserUtils
.
getUser
();
Category
category
=
new
Category
();
category
.
setOffice
(
new
Office
());
category
.
getSqlMap
().
put
(
"dsf"
,
dataScopeFilter
(
user
,
"o"
,
"u"
));
category
.
setSite
(
new
Site
());
category
.
setParent
(
new
Category
());
list
=
dao
.
findList
(
category
);
// 将没有父节点的节点,找到父节点
Set
<
String
>
parentIdSet
=
Sets
.
newHashSet
();
for
(
Category
e
:
list
){
if
(
e
.
getParent
()!=
null
&&
StringUtils
.
isNotBlank
(
e
.
getParent
().
getId
())){
boolean
isExistParent
=
false
;
for
(
Category
e2
:
list
){
if
(
e
.
getParent
().
getId
().
equals
(
e2
.
getId
())){
isExistParent
=
true
;
break
;
}
}
if
(!
isExistParent
){
parentIdSet
.
add
(
e
.
getParent
().
getId
());
}
}
}
if
(
parentIdSet
.
size
()
>
0
){
//FIXME 暂且注释,用于测试
// dc = dao.createDetachedCriteria();
// dc.add(Restrictions.in("id", parentIdSet));
// dc.add(Restrictions.eq("delFlag", Category.DEL_FLAG_NORMAL));
// dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
// list.addAll(0, dao.find(dc));
}
UserUtils
.
putCache
(
CACHE_CATEGORY_LIST
,
list
);
}
if
(
isCurrentSite
){
List
<
Category
>
categoryList
=
Lists
.
newArrayList
();
for
(
Category
e
:
list
){
if
(
Category
.
isRoot
(
e
.
getId
())
||
(
e
.
getSite
()!=
null
&&
e
.
getSite
().
getId
()
!=
null
&&
e
.
getSite
().
getId
().
equals
(
Site
.
getCurrentSiteId
()))){
if
(
StringUtils
.
isNotEmpty
(
module
)){
if
(
module
.
equals
(
e
.
getModule
())
||
""
.
equals
(
e
.
getModule
())){
categoryList
.
add
(
e
);
}
}
else
{
categoryList
.
add
(
e
);
}
}
}
return
categoryList
;
}
return
list
;
}
public
List
<
Category
>
findByParentId
(
String
parentId
,
String
siteId
){
Category
parent
=
new
Category
();
parent
.
setId
(
parentId
);
entity
.
setParent
(
parent
);
Site
site
=
new
Site
();
site
.
setId
(
siteId
);
entity
.
setSite
(
site
);
return
dao
.
findByParentIdAndSiteId
(
entity
);
}
public
Page
<
Category
>
find
(
Page
<
Category
>
page
,
Category
category
)
{
// DetachedCriteria dc = dao.createDetachedCriteria();
// if (category.getSite()!=null && StringUtils.isNotBlank(category.getSite().getId())){
// dc.createAlias("site", "site");
// dc.add(Restrictions.eq("site.id", category.getSite().getId()));
// }
// if (category.getParent()!=null && StringUtils.isNotBlank(category.getParent().getId())){
// dc.createAlias("parent", "parent");
// dc.add(Restrictions.eq("parent.id", category.getParent().getId()));
// }
// if (StringUtils.isNotBlank(category.getInMenu()) && Category.SHOW.equals(category.getInMenu())){
// dc.add(Restrictions.eq("inMenu", category.getInMenu()));
// }
// dc.add(Restrictions.eq(Category.FIELD_DEL_FLAG, Category.DEL_FLAG_NORMAL));
// dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
// return dao.find(page, dc);
// page.setSpringPage(dao.findByParentId(category.getParent().getId(), page.getSpringPage()));
// return page;
category
.
setPage
(
page
);
category
.
setInMenu
(
Global
.
SHOW
);
page
.
setList
(
dao
.
findModule
(
category
));
return
page
;
}
@Override
@Transactional
(
readOnly
=
false
)
public
void
save
(
Category
category
)
{
category
.
setSite
(
new
Site
(
Site
.
getCurrentSiteId
()));
if
(
StringUtils
.
isNotBlank
(
category
.
getViewConfig
())){
category
.
setViewConfig
(
StringEscapeUtils
.
unescapeHtml4
(
category
.
getViewConfig
()));
}
super
.
save
(
category
);
UserUtils
.
removeCache
(
CACHE_CATEGORY_LIST
);
CmsUtils
.
removeCache
(
"mainNavList_"
+
category
.
getSite
().
getId
());
}
@Override
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Category
category
)
{
super
.
delete
(
category
);
UserUtils
.
removeCache
(
CACHE_CATEGORY_LIST
);
CmsUtils
.
removeCache
(
"mainNavList_"
+
category
.
getSite
().
getId
());
}
/**
* 通过编号获取栏目列表
*/
public
List
<
Category
>
findByIds
(
String
ids
)
{
List
<
Category
>
list
=
Lists
.
newArrayList
();
String
[]
idss
=
StringUtils
.
split
(
ids
,
","
);
if
(
idss
.
length
>
0
){
// List<Category> l = dao.findByIdIn(idss);
// for (String id : idss){
// for (Category e : l){
// if (e.getId().equals(id)){
// list.add(e);
// break;
// }
// }
// }
for
(
String
id
:
idss
){
Category
e
=
dao
.
get
(
id
);
if
(
null
!=
e
){
//System.out.println("e.id:"+e.getId()+",e.name:"+e.getName());
list
.
add
(
e
);
}
//list.add(dao.get(id));
}
}
return
list
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/CommentService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.AbstractBaseService
;
import
com.jeespring.modules.cms.dao.CommentDao
;
import
com.jeespring.modules.cms.entity.Comment
;
/**
* 评论Service
* @author JeeSpring
* @version 2013-01-15
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
CommentService
extends
AbstractBaseService
<
CommentDao
,
Comment
>
{
@Override
public
Page
<
Comment
>
findPage
(
Page
<
Comment
>
page
,
Comment
comment
)
{
// DetachedCriteria dc = commentDao.createDetachedCriteria();
// if (StringUtils.isNotBlank(comment.getContentId())){
// dc.add(Restrictions.eq("contentId", comment.getContentId()));
// }
// if (StringUtils.isNotEmpty(comment.getTitle())){
// dc.add(Restrictions.like("title", "%"+comment.getTitle()+"%"));
// }
// dc.add(Restrictions.eq(Comment.FIELD_DEL_FLAG, comment.getDelFlag()));
// dc.addOrder(Order.desc("id"));
// return commentDao.find(page, dc);
comment
.
getSqlMap
().
put
(
"dsf"
,
dataScopeFilter
(
comment
.
getCurrentUser
(),
"o"
,
"u"
));
return
super
.
findPage
(
page
,
comment
);
}
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Comment
entity
,
Boolean
isRe
)
{
super
.
delete
(
entity
);
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/FileTplService.java
0 → 100644
View file @
d9ad22de
package
com.jeespring.modules.cms.service
;
import
com.jeespring.modules.cms.entity.FileTpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.ServletContext
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* User: songlai
* Date: 13-8-27
* Time: 下午4:56
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
FileTplService
{
@Autowired
ServletContext
context
;
public
List
<
String
>
getNameListByPrefix
(
String
path
)
{
List
<
FileTpl
>
list
=
getListByPath
(
path
,
false
);
List
<
String
>
result
=
new
ArrayList
<
String
>(
list
.
size
());
for
(
FileTpl
tpl
:
list
)
{
result
.
add
(
tpl
.
getName
());
}
return
result
;
}
public
List
<
FileTpl
>
getListByPath
(
String
path
,
boolean
directory
)
{
File
f
=
new
File
(
context
.
getRealPath
(
path
));
if
(
f
.
exists
())
{
File
[]
files
=
f
.
listFiles
();
if
(
files
!=
null
)
{
List
<
FileTpl
>
list
=
new
ArrayList
<
FileTpl
>();
for
(
File
file
:
files
)
{
if
(
file
.
isFile
()
||
directory
)
{
list
.
add
(
new
FileTpl
(
file
,
context
.
getRealPath
(
""
)));
}
}
return
list
;
}
else
{
return
new
ArrayList
<
FileTpl
>(
0
);
}
}
else
{
return
new
ArrayList
<
FileTpl
>(
0
);
}
}
public
List
<
FileTpl
>
getListForEdit
(
String
path
){
List
<
FileTpl
>
list
=
getListByPath
(
path
,
true
);
List
<
FileTpl
>
result
=
new
ArrayList
<
FileTpl
>();
result
.
add
(
new
FileTpl
(
new
File
(
context
.
getRealPath
(
path
)),
context
.
getRealPath
(
""
)));
getAllDirectory
(
result
,
list
);
return
result
;
}
private
void
getAllDirectory
(
List
<
FileTpl
>
result
,
List
<
FileTpl
>
list
){
for
(
FileTpl
tpl
:
list
)
{
result
.
add
(
tpl
);
if
(
tpl
.
isDirectory
()){
getAllDirectory
(
result
,
getListByPath
(
tpl
.
getName
(),
true
));
}
}
}
public
FileTpl
getFileTpl
(
String
name
)
{
File
f
=
new
File
(
context
.
getRealPath
(
name
));
if
(
f
.
exists
())
{
return
new
FileTpl
(
f
,
""
);
}
else
{
return
null
;
}
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/GuestbookService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.AbstractBaseService
;
import
com.jeespring.modules.cms.dao.GuestbookDao
;
import
com.jeespring.modules.cms.entity.Guestbook
;
/**
* 留言Service
* @author JeeSpring
* @version 2013-01-15
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
GuestbookService
extends
AbstractBaseService
<
GuestbookDao
,
Guestbook
>
{
@Override
public
Guestbook
get
(
String
id
)
{
return
dao
.
get
(
id
);
}
@Override
public
Page
<
Guestbook
>
findPage
(
Page
<
Guestbook
>
page
,
Guestbook
guestbook
)
{
// DetachedCriteria dc = dao.createDetachedCriteria();
// if (StringUtils.isNotEmpty(guestbook.getType())){
// dc.add(Restrictions.eq("type", guestbook.getType()));
// }
// if (StringUtils.isNotEmpty(guestbook.getContent())){
// dc.add(Restrictions.like("content", "%"+guestbook.getContent()+"%"));
// }
// dc.add(Restrictions.eq(Guestbook.FIELD_DEL_FLAG, guestbook.getDelFlag()));
// dc.addOrder(Order.desc("createDate"));
// return dao.find(page, dc);
guestbook
.
getSqlMap
().
put
(
"dsf"
,
dataScopeFilter
(
guestbook
.
getCurrentUser
(),
"o"
,
"u"
));
guestbook
.
setPage
(
page
);
page
.
setList
(
dao
.
findList
(
guestbook
));
return
page
;
}
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Guestbook
guestbook
,
Boolean
isRe
)
{
//dao.updateDelFlag(id, isRe!=null&&isRe?Guestbook.DEL_FLAG_AUDIT:Guestbook.DEL_FLAG_DELETE);
dao
.
delete
(
guestbook
);
}
/**
* 更新索引
*/
public
void
createIndex
(){
//dao.createIndex();
}
/**
* 全文检索
*/
//FIXME 暂不提供
public
Page
<
Guestbook
>
search
(
Page
<
Guestbook
>
page
,
String
q
,
String
beginDate
,
String
endDate
){
// 设置查询条件
// BooleanQuery query = dao.getFullTextQuery(q, "name","content","reContent");
//
// // 设置过滤条件
// List<BooleanClause> bcList = Lists.newArrayList();
//
// bcList.add(new BooleanClause(new TermQuery(new Term(Guestbook.FIELD_DEL_FLAG, Guestbook.DEL_FLAG_NORMAL)), Occur.MUST));
//
// if (StringUtils.isNotBlank(beginDate) && StringUtils.isNotBlank(endDate)) {
// bcList.add(new BooleanClause(new TermRangeQuery("createDate", beginDate.replaceAll("-", ""),
// endDate.replaceAll("-", ""), true, true), Occur.MUST));
// }
//
// bcList.add(new BooleanClause(new TermQuery(new Term("type", "1")), Occur.SHOULD));
// bcList.add(new BooleanClause(new TermQuery(new Term("type", "2")), Occur.SHOULD));
// bcList.add(new BooleanClause(new TermQuery(new Term("type", "3")), Occur.SHOULD));
// bcList.add(new BooleanClause(new TermQuery(new Term("type", "4")), Occur.SHOULD));
//
// BooleanQuery queryFilter = dao.getFullTextQuery((BooleanClause[])bcList.toArray(new BooleanClause[bcList.size()]));
//
// System.out.println(queryFilter);
//
// // 设置排序(默认相识度排序)
// Sort sort = null;//new Sort(new SortField("updateDate", SortField.DOC, true));
// // 全文检索
// dao.search(page, query, queryFilter, sort);
// // 关键字高亮
// dao.keywordsHighlight(query, page.getList(), 30, "name");
// dao.keywordsHighlight(query, page.getList(), 1300, "content");
// dao.keywordsHighlight(query, page.getList(), 1300, "reContent");
return
page
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/LinkService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.google.common.collect.Lists
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.AbstractBaseService
;
import
com.jeespring.common.utils.CacheUtils
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.modules.cms.dao.LinkDao
;
import
com.jeespring.modules.cms.entity.Link
;
/**
* 链接Service
* @author JeeSpring
* @version 2013-01-15
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
LinkService
extends
AbstractBaseService
<
LinkDao
,
Link
>
{
@Transactional
(
readOnly
=
false
)
public
Page
<
Link
>
findPage
(
Page
<
Link
>
page
,
Link
link
,
boolean
isDataScopeFilter
)
{
// 更新过期的权重,间隔为“6”个小时
Date
updateExpiredWeightDate
=
(
Date
)
CacheUtils
.
get
(
"updateExpiredWeightDateByLink"
);
if
(
updateExpiredWeightDate
==
null
||
(
updateExpiredWeightDate
!=
null
&&
updateExpiredWeightDate
.
getTime
()
<
new
Date
().
getTime
())){
dao
.
updateExpiredWeight
(
link
);
CacheUtils
.
put
(
"updateExpiredWeightDateByLink"
,
DateUtils
.
addHours
(
new
Date
(),
6
));
}
link
.
getSqlMap
().
put
(
"dsf"
,
dataScopeFilter
(
link
.
getCurrentUser
(),
"o"
,
"u"
));
return
super
.
findPage
(
page
,
link
);
}
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Link
link
,
Boolean
isRe
)
{
//dao.updateDelFlag(id, isRe!=null&&isRe?Link.DEL_FLAG_NORMAL:Link.DEL_FLAG_DELETE);
link
.
setDelFlag
(
isRe
!=
null
&&
isRe
?
Link
.
DEL_FLAG_NORMAL
:
Link
.
DEL_FLAG_DELETE
);
dao
.
delete
(
link
);
}
/**
* 通过编号获取内容标题
*/
public
List
<
Object
[]>
findByIds
(
String
ids
)
{
List
<
Object
[]>
list
=
Lists
.
newArrayList
();
String
[]
idss
=
StringUtils
.
split
(
ids
,
","
);
if
(
idss
.
length
>
0
){
List
<
Link
>
l
=
dao
.
findByIdIn
(
idss
);
for
(
Link
e
:
l
){
list
.
add
(
new
Object
[]{
e
.
getId
(),
StringUtils
.
abbr
(
e
.
getTitle
(),
50
)});
}
}
return
list
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/SiteService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
org.apache.commons.lang3.StringEscapeUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.service.AbstractBaseService
;
import
com.jeespring.modules.cms.dao.SiteDao
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.utils.CmsUtils
;
/**
* 站点Service
* @author JeeSpring
* @version 2013-01-15
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
SiteService
extends
AbstractBaseService
<
SiteDao
,
Site
>
{
@Override
public
Page
<
Site
>
findPage
(
Page
<
Site
>
page
,
Site
site
)
{
// DetachedCriteria dc = siteDao.createDetachedCriteria();
// if (StringUtils.isNotEmpty(site.getName())){
// dc.add(Restrictions.like("name", "%"+site.getName()+"%"));
// }
// dc.add(Restrictions.eq(Site.FIELD_DEL_FLAG, site.getDelFlag()));
// //dc.addOrder(Order.asc("id"));
// return siteDao.find(page, dc);
site
.
getSqlMap
().
put
(
"site"
,
dataScopeFilter
(
site
.
getCurrentUser
(),
"o"
,
"u"
));
return
super
.
findPage
(
page
,
site
);
}
@Override
@Transactional
(
readOnly
=
false
)
public
void
save
(
Site
site
)
{
if
(
site
.
getCopyright
()!=
null
){
site
.
setCopyright
(
StringEscapeUtils
.
unescapeHtml4
(
site
.
getCopyright
()));
}
super
.
save
(
site
);
CmsUtils
.
removeCache
(
"site_"
+
site
.
getId
());
CmsUtils
.
removeCache
(
"siteList"
);
}
@Transactional
(
readOnly
=
false
)
public
void
delete
(
Site
site
,
Boolean
isRe
)
{
//siteDao.updateDelFlag(id, isRe!=null&&isRe?Site.DEL_FLAG_NORMAL:Site.DEL_FLAG_DELETE);
site
.
setDelFlag
(
isRe
!=
null
&&
isRe
?
Site
.
DEL_FLAG_NORMAL
:
Site
.
DEL_FLAG_DELETE
);
super
.
delete
(
site
);
//siteDao.delete(id);
CmsUtils
.
removeCache
(
"site_"
+
site
.
getId
());
CmsUtils
.
removeCache
(
"siteList"
);
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/service/StatsService.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.jeespring.common.service.AbstractService
;
import
com.jeespring.common.utils.DateUtils
;
import
com.jeespring.modules.cms.dao.ArticleDao
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.sys.entity.Office
;
/**
* 统计Service
* @author JeeSpring
* @version 2013-05-21
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
StatsService
extends
AbstractService
{
@Autowired
private
ArticleDao
articleDao
;
public
List
<
Category
>
article
(
Map
<
String
,
Object
>
paramMap
)
{
Category
category
=
new
Category
();
Site
site
=
new
Site
();
site
.
setId
(
Site
.
getCurrentSiteId
());
category
.
setSite
(
site
);
Date
beginDate
=
DateUtils
.
parseDate
(
paramMap
.
get
(
"beginDate"
));
if
(
beginDate
==
null
){
beginDate
=
DateUtils
.
setDays
(
new
Date
(),
1
);
paramMap
.
put
(
"beginDate"
,
DateUtils
.
formatDate
(
beginDate
,
"yyyy-MM-dd"
));
}
category
.
setBeginDate
(
beginDate
);
Date
endDate
=
DateUtils
.
parseDate
(
paramMap
.
get
(
"endDate"
));
if
(
endDate
==
null
){
endDate
=
DateUtils
.
addDays
(
DateUtils
.
addMonths
(
beginDate
,
1
),
-
1
);
paramMap
.
put
(
"endDate"
,
DateUtils
.
formatDate
(
endDate
,
"yyyy-MM-dd"
));
}
category
.
setEndDate
(
endDate
);
String
categoryId
=
(
String
)
paramMap
.
get
(
"categoryId"
);
if
(
categoryId
!=
null
&&
!(
""
.
equals
(
categoryId
))){
category
.
setId
(
categoryId
);
category
.
setParentIds
(
categoryId
);
}
String
officeId
=
(
String
)(
paramMap
.
get
(
"officeId"
));
Office
office
=
new
Office
();
if
(
officeId
!=
null
&&
!(
""
.
equals
(
officeId
))){
office
.
setId
(
officeId
);
category
.
setOffice
(
office
);
}
else
{
category
.
setOffice
(
office
);
}
List
<
Category
>
list
=
articleDao
.
findStats
(
category
);
return
list
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/utils/CmsUtils.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.utils
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
com.google.common.collect.Lists
;
import
com.jeespring.common.config.Global
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.mapper.JsonMapper
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.CacheUtils
;
import
com.jeespring.common.utils.SpringContextHolder
;
import
com.jeespring.modules.cms.entity.Article
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Link
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.ArticleService
;
import
com.jeespring.modules.cms.service.CategoryService
;
import
com.jeespring.modules.cms.service.LinkService
;
import
com.jeespring.modules.cms.service.SiteService
;
import
javax.servlet.ServletContext
;
import
org.springframework.ui.Model
;
/**
* 内容管理工具类
* @author JeeSpring
* @version 2013-5-29
*/
public
class
CmsUtils
{
private
static
SiteService
siteService
=
SpringContextHolder
.
getBean
(
SiteService
.
class
);
private
static
CategoryService
categoryService
=
SpringContextHolder
.
getBean
(
CategoryService
.
class
);
private
static
ArticleService
articleService
=
SpringContextHolder
.
getBean
(
ArticleService
.
class
);
private
static
LinkService
linkService
=
SpringContextHolder
.
getBean
(
LinkService
.
class
);
private
static
ServletContext
context
=
SpringContextHolder
.
getBean
(
ServletContext
.
class
);
private
static
final
String
CMS_CACHE
=
"cmsCache"
;
/**
* 获得站点列表
*/
public
static
List
<
Site
>
getSiteList
(){
@SuppressWarnings
(
"unchecked"
)
List
<
Site
>
siteList
=
(
List
<
Site
>)
CacheUtils
.
get
(
CMS_CACHE
,
"siteList"
);
if
(
siteList
==
null
){
Page
<
Site
>
page
=
new
Page
<
Site
>(
1
,
-
1
);
page
=
siteService
.
findPage
(
page
,
new
Site
());
siteList
=
page
.
getList
();
CacheUtils
.
put
(
CMS_CACHE
,
"siteList"
,
siteList
);
}
return
siteList
;
}
/**
* 获得站点信息
* @param siteId 站点编号
*/
public
static
Site
getSite
(
String
siteId
){
String
id
=
"1"
;
if
(
StringUtils
.
isNotBlank
(
siteId
)){
id
=
siteId
;
}
for
(
Site
site
:
getSiteList
()){
if
(
site
.
getId
().
equals
(
id
)){
return
site
;
}
}
return
new
Site
(
id
);
}
/**
* 获得主导航列表
* @param siteId 站点编号
*/
public
static
List
<
Category
>
getMainNavList
(
String
siteId
){
@SuppressWarnings
(
"unchecked"
)
List
<
Category
>
mainNavList
=
(
List
<
Category
>)
CacheUtils
.
get
(
CMS_CACHE
,
"mainNavList_"
+
siteId
);
if
(
mainNavList
==
null
){
Category
category
=
new
Category
();
category
.
setSite
(
new
Site
(
siteId
));
category
.
setParent
(
new
Category
(
"1"
));
category
.
setInMenu
(
Global
.
SHOW
);
Page
<
Category
>
page
=
new
Page
<
Category
>(
1
,
-
1
);
page
=
categoryService
.
find
(
page
,
category
);
mainNavList
=
page
.
getList
();
CacheUtils
.
put
(
CMS_CACHE
,
"mainNavList_"
+
siteId
,
mainNavList
);
}
return
mainNavList
;
}
/**
* 获取栏目
* @param categoryId 栏目编号
* @return
*/
public
static
Category
getCategory
(
String
categoryId
){
return
categoryService
.
get
(
categoryId
);
}
/**
* 获得栏目列表
* @param siteId 站点编号
* @param parentId 分类父编号
* @param number 获取数目
* @param param 预留参数,例: key1:'value1', key2:'value2' ...
*/
public
static
List
<
Category
>
getCategoryList
(
String
siteId
,
String
parentId
,
int
number
,
String
param
){
Page
<
Category
>
page
=
new
Page
<
Category
>(
1
,
number
,
-
1
);
Category
category
=
new
Category
();
category
.
setSite
(
new
Site
(
siteId
));
category
.
setParent
(
new
Category
(
parentId
));
if
(
StringUtils
.
isNotBlank
(
param
)){
@SuppressWarnings
({
"unused"
,
"rawtypes"
})
Map
map
=
JsonMapper
.
getInstance
().
fromJson
(
"{"
+
param
+
"}"
,
Map
.
class
);
}
page
=
categoryService
.
find
(
page
,
category
);
return
page
.
getList
();
}
/**
* 获取栏目
* @param categoryIds 栏目编号
* @return
*/
public
static
List
<
Category
>
getCategoryListByIds
(
String
categoryIds
){
return
categoryService
.
findByIds
(
categoryIds
);
}
/**
* 获取文章
* @param articleId 文章编号
* @return
*/
public
static
Article
getArticle
(
String
articleId
){
return
articleService
.
get
(
articleId
);
}
/**
* 获取文章列表
* @param siteId 站点编号
* @param categoryId 分类编号
* @param number 获取数目
* @param param 预留参数,例: key1:'value1', key2:'value2' ...
* posid 推荐位(1:首页焦点图;2:栏目页文章推荐;)
* image 文章图片(1:有图片的文章)
* orderBy 排序字符串
* @return
* ${fnc:getArticleList(category.site.id, category.id, not empty pageSize?pageSize:8, 'posid:2, orderBy: \"hits desc\"')}"
*/
public
static
List
<
Article
>
getArticleList
(
String
siteId
,
String
categoryId
,
int
number
,
String
param
){
Page
<
Article
>
page
=
new
Page
<
Article
>(
1
,
number
,
-
1
);
Category
category
=
new
Category
(
categoryId
,
new
Site
(
siteId
));
category
.
setParentIds
(
categoryId
);
Article
article
=
new
Article
(
category
);
if
(
StringUtils
.
isNotBlank
(
param
)){
@SuppressWarnings
({
"rawtypes"
})
Map
map
=
JsonMapper
.
getInstance
().
fromJson
(
"{"
+
param
+
"}"
,
Map
.
class
);
if
(
new
Integer
(
1
).
equals
(
map
.
get
(
"posid"
))
||
new
Integer
(
2
).
equals
(
map
.
get
(
"posid"
))){
article
.
setPosid
(
String
.
valueOf
(
map
.
get
(
"posid"
)));
}
if
(
new
Integer
(
1
).
equals
(
map
.
get
(
"image"
))){
article
.
setImage
(
Global
.
YES
);
}
if
(
StringUtils
.
isNotBlank
((
String
)
map
.
get
(
"orderBy"
))){
page
.
setOrderBy
((
String
)
map
.
get
(
"orderBy"
));
}
}
article
.
setDelFlag
(
Article
.
DEL_FLAG_NORMAL
);
page
=
articleService
.
findPage
(
page
,
article
,
false
);
return
page
.
getList
();
}
/**
* 获取链接
* @param linkId 文章编号
* @return
*/
public
static
Link
getLink
(
String
linkId
){
return
linkService
.
get
(
linkId
);
}
/**
* 获取链接列表
* @param siteId 站点编号
* @param categoryId 分类编号
* @param number 获取数目
* @param param 预留参数,例: key1:'value1', key2:'value2' ...
* @return
*/
public
static
List
<
Link
>
getLinkList
(
String
siteId
,
String
categoryId
,
int
number
,
String
param
){
Page
<
Link
>
page
=
new
Page
<
Link
>(
1
,
number
,
-
1
);
Link
link
=
new
Link
(
new
Category
(
categoryId
,
new
Site
(
siteId
)));
if
(
StringUtils
.
isNotBlank
(
param
)){
@SuppressWarnings
({
"unused"
,
"rawtypes"
})
Map
map
=
JsonMapper
.
getInstance
().
fromJson
(
"{"
+
param
+
"}"
,
Map
.
class
);
}
link
.
setDelFlag
(
Link
.
DEL_FLAG_NORMAL
);
page
=
linkService
.
findPage
(
page
,
link
,
false
);
return
page
.
getList
();
}
// ============== Cms Cache ==============
public
static
Object
getCache
(
String
key
)
{
return
CacheUtils
.
get
(
CMS_CACHE
,
key
);
}
public
static
void
putCache
(
String
key
,
Object
value
)
{
CacheUtils
.
put
(
CMS_CACHE
,
key
,
value
);
}
public
static
void
removeCache
(
String
key
)
{
CacheUtils
.
remove
(
CMS_CACHE
,
key
);
}
/**
* 获得文章动态URL地址
* @param article
* @return url
*/
public
static
String
getUrlDynamic
(
Article
article
)
{
if
(
StringUtils
.
isNotBlank
(
article
.
getLink
())){
return
article
.
getLink
();
}
StringBuilder
str
=
new
StringBuilder
();
str
.
append
(
context
.
getContextPath
()).
append
(
Global
.
getFrontPath
());
str
.
append
(
"/view-"
).
append
(
article
.
getCategory
().
getId
()).
append
(
"-"
).
append
(
article
.
getId
()).
append
(
Global
.
getUrlSuffix
());
return
str
.
toString
();
}
/**
* 获得栏目动态URL地址
* @param category
* @return url
*/
public
static
String
getUrlDynamic
(
Category
category
)
{
if
(
StringUtils
.
isNotBlank
(
category
.
getHref
())){
if
(!
category
.
getHref
().
contains
(
"://"
)){
return
context
.
getContextPath
()+
Global
.
getFrontPath
()+
category
.
getHref
();
}
else
{
return
category
.
getHref
();
}
}
StringBuilder
str
=
new
StringBuilder
();
str
.
append
(
context
.
getContextPath
()).
append
(
Global
.
getFrontPath
());
str
.
append
(
"/list-"
).
append
(
category
.
getId
()).
append
(
Global
.
getUrlSuffix
());
return
str
.
toString
();
}
/**
* 从图片地址中去除ContextPath地址
* @param src
* @return src
*/
public
static
String
formatImageSrcToDb
(
String
src
)
{
if
(
StringUtils
.
isBlank
(
src
))
{
return
src
;
}
if
(
src
.
startsWith
(
context
.
getContextPath
()
+
"/userfiles"
)){
return
src
.
substring
(
context
.
getContextPath
().
length
());
}
else
{
return
src
;
}
}
/**
* 从图片地址中加入ContextPath地址
* @param src
* @return src
*/
public
static
String
formatImageSrcToWeb
(
String
src
)
{
if
(
StringUtils
.
isBlank
(
src
))
{
return
src
;
}
if
(
src
.
startsWith
(
context
.
getContextPath
()
+
"/userfiles"
)){
return
src
;
}
else
{
return
context
.
getContextPath
()+
src
;
}
}
public
static
void
addViewConfigAttribute
(
Model
model
,
String
param
){
if
(
StringUtils
.
isNotBlank
(
param
)){
@SuppressWarnings
(
"rawtypes"
)
Map
map
=
JsonMapper
.
getInstance
().
fromJson
(
param
,
Map
.
class
);
if
(
map
!=
null
){
for
(
Object
o
:
map
.
keySet
()){
model
.
addAttribute
(
"viewConfig_"
+
o
.
toString
(),
map
.
get
(
o
));
}
}
}
}
public
static
void
addViewConfigAttribute
(
Model
model
,
Category
category
){
List
<
Category
>
categoryList
=
Lists
.
newArrayList
();
Category
c
=
category
;
boolean
goon
=
true
;
do
{
if
(
c
.
getParent
()
==
null
||
c
.
getParent
().
isRoot
()){
goon
=
false
;
}
categoryList
.
add
(
c
);
c
=
c
.
getParent
();
}
while
(
goon
);
Collections
.
reverse
(
categoryList
);
for
(
Category
ca
:
categoryList
){
addViewConfigAttribute
(
model
,
ca
.
getViewConfig
());
}
}
}
\ No newline at end of file
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/utils/TplUtils.java
0 → 100644
View file @
d9ad22de
package
com.jeespring.modules.cms.utils
;
import
com.jeespring.common.utils.StringUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* User: songlai
* Date: 13-8-22
* Time: 上午10:23
*/
public
class
TplUtils
{
/**
* 去除模板前缀
*
* @param list 模板列表
* @param prefix 模板前缀 例如“frontViewArticle”
* @param include 需包含的模板 例如“/WEB-INF/views/modules/cms/front/themes/jeesite/articleSelectList.jsp”
* @param excludes 需去除的模板 例如“frontViewArticle”
* @return
*/
public
static
List
<
String
>
tplTrim
(
List
<
String
>
list
,
String
prefix
,
String
include
,
String
...
excludes
)
{
List
<
String
>
result
=
new
ArrayList
<
String
>();
if
(!
StringUtils
.
isBlank
(
include
)
&&
!
list
.
contains
(
include
))
{
if
(!
tplContain
(
excludes
,
include
))
{
int
start
=
include
.
lastIndexOf
(
"/"
);
int
end
=
include
.
lastIndexOf
(
"."
);
if
(
start
==
-
1
||
end
==
-
1
)
{
throw
new
RuntimeException
(
"include not contain '/' or '.':"
+
include
);
}
result
.
add
(
include
.
substring
(
start
+
1
,
end
));
}
}
for
(
String
t
:
list
)
{
if
(!
tplContain
(
excludes
,
t
))
{
int
start
=
t
.
lastIndexOf
(
"/"
);
int
end
=
t
.
lastIndexOf
(
"."
);
if
(
start
==
-
1
||
end
==
-
1
)
{
throw
new
RuntimeException
(
"name not contain '/' or '.':"
+
t
);
}
t
=
t
.
substring
(
start
+
1
,
end
);
if
(
t
.
contains
(
prefix
)){
result
.
add
(
t
);
}
}
}
return
result
;
}
/**
* 检查tpl是否存在于excludes里面。
*
* @param excludes
* @param tpl
* @return
*/
private
static
boolean
tplContain
(
String
[]
excludes
,
String
tpl
)
{
int
start
=
tpl
.
lastIndexOf
(
"/"
);
int
end
=
tpl
.
lastIndexOf
(
"."
);
if
(
start
==
-
1
||
end
==
-
1
)
{
throw
new
RuntimeException
(
"tpl not contain '/' or '.':"
+
tpl
);
}
String
name
=
tpl
.
substring
(
start
+
1
,
end
);
for
(
String
e
:
excludes
)
{
if
(
e
.
equals
(
name
))
{
return
true
;
}
}
return
false
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/utils/WiexinSignUtil.java
0 → 100644
View file @
d9ad22de
package
com.jeespring.modules.cms.utils
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Arrays
;
import
org.apache.commons.lang3.StringUtils
;
public
class
WiexinSignUtil
{
// 与接口配置信息中的Token要一致
private
static
String
token
=
"ecjeesitecom"
;
/**
* 验证签名
*
* @param signature
* @param timestamp
* @param nonce
* @return
*/
public
static
boolean
checkSignature
(
String
signature
,
String
timestamp
,
String
nonce
)
{
if
(
StringUtils
.
isNotBlank
(
signature
)
&&
StringUtils
.
isNotBlank
(
timestamp
)
&&
StringUtils
.
isNotBlank
(
nonce
)){
String
[]
arr
=
new
String
[]
{
token
,
timestamp
,
nonce
};
// 将token、timestamp、nonce三个参数进行字典序排序
Arrays
.
sort
(
arr
);
StringBuilder
content
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
content
.
append
(
arr
[
i
]);
}
MessageDigest
md
=
null
;
String
tmpStr
=
null
;
try
{
md
=
MessageDigest
.
getInstance
(
"SHA-1"
);
// 将三个参数字符串拼接成一个字符串进行sha1加密
byte
[]
digest
=
md
.
digest
(
content
.
toString
().
getBytes
());
tmpStr
=
byteToStr
(
digest
);
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
}
content
=
null
;
// 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
return
tmpStr
!=
null
?
tmpStr
.
equals
(
signature
.
toUpperCase
())
:
false
;
}
return
false
;
}
/**
* 将字节数组转换为十六进制字符串
*
* @param byteArray
* @return
*/
private
static
String
byteToStr
(
byte
[]
byteArray
)
{
String
strDigest
=
""
;
for
(
int
i
=
0
;
i
<
byteArray
.
length
;
i
++)
{
strDigest
+=
byteToHexStr
(
byteArray
[
i
]);
}
return
strDigest
;
}
/**
* 将字节转换为十六进制字符串
*
* @param mByte
* @return
*/
private
static
String
byteToHexStr
(
byte
mByte
)
{
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
tempArr
=
new
char
[
2
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
tempArr
[
1
]
=
Digit
[
mByte
&
0X0F
];
String
s
=
new
String
(
tempArr
);
return
s
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/ArticleController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.jeespring.common.mapper.JsonMapper
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Article
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.ArticleDataService
;
import
com.jeespring.modules.cms.service.ArticleService
;
import
com.jeespring.modules.cms.service.CategoryService
;
import
com.jeespring.modules.cms.service.FileTplService
;
import
com.jeespring.modules.cms.service.SiteService
;
import
com.jeespring.modules.cms.utils.CmsUtils
;
import
com.jeespring.modules.cms.utils.TplUtils
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 文章Controller
* @author JeeSpring
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/article"
)
public
class
ArticleController
extends
AbstractBaseController
{
@Autowired
private
ArticleService
articleService
;
@Autowired
private
ArticleDataService
articleDataService
;
@Autowired
private
CategoryService
categoryService
;
@Autowired
private
FileTplService
fileTplService
;
@Autowired
private
SiteService
siteService
;
@ModelAttribute
public
Article
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
articleService
.
get
(
id
);
}
else
{
return
new
Article
();
}
}
@RequiresPermissions
(
"cms:article:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Article
article
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
// for (int i=0; i<10000000; i++){
// Article a = new Article();
// a.setCategory(new Category(article.getCategory().getId()));
// a.setTitle("测试测试测试测试测试测试测试测试"+a.getCategory().getId());
// a.setArticleData(new ArticleData());
// a.getArticleData().setContent(a.getTitle());
// articleService.save(a);
// }
Page
<
Article
>
page
=
articleService
.
findPage
(
new
Page
<
Article
>(
request
,
response
),
article
,
true
);
model
.
addAttribute
(
"page"
,
page
);
return
"modules/cms/articleList"
;
}
@RequiresPermissions
(
"cms:article:view"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
Article
article
,
Model
model
)
{
// 如果当前传参有子节点,则选择取消传参选择
if
(
article
.
getCategory
()!=
null
&&
StringUtils
.
isNotBlank
(
article
.
getCategory
().
getId
())){
List
<
Category
>
list
=
categoryService
.
findByParentId
(
article
.
getCategory
().
getId
(),
Site
.
getCurrentSiteId
());
/*if (list.size() > 0){
article.setCategory(null);
}else{
article.setCategory(categoryService.get(article.getCategory().getId()));
}*/
article
.
setCategory
(
categoryService
.
get
(
article
.
getCategory
().
getId
()));
}
article
.
setArticleData
(
articleDataService
.
get
(
article
.
getId
()));
// if (article.getCategory()=null && StringUtils.isNotBlank(article.getCategory().getId())){
// Category category = categoryService.get(article.getCategory().getId());
// }
model
.
addAttribute
(
"contentViewList"
,
getTplContent
());
model
.
addAttribute
(
"article_DEFAULT_TEMPLATE"
,
Article
.
DEFAULT_TEMPLATE
);
model
.
addAttribute
(
"article"
,
article
);
CmsUtils
.
addViewConfigAttribute
(
model
,
article
.
getCategory
());
return
"modules/cms/articleForm"
;
}
@RequiresPermissions
(
"cms:article:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Article
article
,
Model
model
,
RedirectAttributes
redirectAttributes
)
{
if
(!
beanValidator
(
model
,
article
)){
return
form
(
article
,
model
);
}
articleService
.
save
(
article
);
addMessage
(
redirectAttributes
,
"保存文章'"
+
StringUtils
.
abbr
(
article
.
getTitle
(),
50
)
+
"'成功"
);
String
categoryId
=
article
.
getCategory
()!=
null
?
article
.
getCategory
().
getId
():
null
;
return
"redirect:"
+
adminPath
+
"/cms/article/?repage&category.id="
+(
categoryId
!=
null
?
categoryId:
""
);
}
@RequiresPermissions
(
"cms:article:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Article
article
,
String
categoryId
,
@RequestParam
(
required
=
false
)
Boolean
isRe
,
RedirectAttributes
redirectAttributes
)
{
// 如果没有审核权限,则不允许删除或发布。
if
(!
UserUtils
.
getSubject
().
isPermitted
(
"cms:article:audit"
)){
addMessage
(
redirectAttributes
,
"你没有删除或发布权限"
);
}
articleService
.
delete
(
article
,
isRe
);
addMessage
(
redirectAttributes
,
(
isRe
!=
null
&&
isRe
?
"发布"
:
"删除"
)+
"文章成功"
);
return
"redirect:"
+
adminPath
+
"/cms/article/?repage&category.id="
+(
categoryId
!=
null
?
categoryId:
""
);
}
/**
* 文章选择列表
*/
@RequiresPermissions
(
"cms:article:view"
)
@RequestMapping
(
value
=
"selectList"
)
public
String
selectList
(
Article
article
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
list
(
article
,
request
,
response
,
model
);
return
"modules/cms/articleSelectList"
;
}
/**
* 通过编号获取文章标题
*/
@RequiresPermissions
(
"cms:article:view"
)
@ResponseBody
@RequestMapping
(
value
=
"findByIds"
)
public
String
findByIds
(
String
ids
)
{
List
<
Object
[]>
list
=
articleService
.
findByIds
(
ids
);
return
JsonMapper
.
nonDefaultMapper
().
toJson
(
list
);
}
private
List
<
String
>
getTplContent
()
{
List
<
String
>
tplList
=
fileTplService
.
getNameListByPrefix
(
siteService
.
get
(
Site
.
getCurrentSiteId
()).
getSolutionPath
());
tplList
=
TplUtils
.
tplTrim
(
tplList
,
Article
.
DEFAULT_TEMPLATE
,
""
);
return
tplList
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/CategoryController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.apache.shiro.authz.annotation.RequiresUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.jeespring.common.config.Global
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Article
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.CategoryService
;
import
com.jeespring.modules.cms.service.FileTplService
;
import
com.jeespring.modules.cms.service.SiteService
;
import
com.jeespring.modules.cms.utils.TplUtils
;
/**
* 栏目Controller
* @author JeeSpring
* @version 2013-4-21
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/category"
)
public
class
CategoryController
extends
AbstractBaseController
{
@Autowired
private
CategoryService
categoryService
;
@Autowired
private
FileTplService
fileTplService
;
@Autowired
private
SiteService
siteService
;
@ModelAttribute
(
"category"
)
public
Category
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
categoryService
.
get
(
id
);
}
else
{
return
new
Category
();
}
}
@RequiresPermissions
(
"cms:category:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Model
model
)
{
List
<
Category
>
list
=
Lists
.
newArrayList
();
List
<
Category
>
sourcelist
=
categoryService
.
findByUser
(
true
,
null
);
Category
.
sortList
(
list
,
sourcelist
,
"1"
);
model
.
addAttribute
(
"list"
,
list
);
return
"modules/cms/categoryList"
;
}
@RequiresPermissions
(
"cms:category:view"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
Category
category
,
Model
model
)
{
if
(
category
.
getParent
()==
null
||
category
.
getParent
().
getId
()==
null
){
category
.
setParent
(
new
Category
(
"1"
));
}
Category
parent
=
categoryService
.
get
(
category
.
getParent
().
getId
());
category
.
setParent
(
parent
);
if
(
category
.
getOffice
()==
null
||
category
.
getOffice
().
getId
()==
null
){
category
.
setOffice
(
parent
.
getOffice
());
}
model
.
addAttribute
(
"listViewList"
,
getTplContent
(
Category
.
DEFAULT_TEMPLATE
));
model
.
addAttribute
(
"category_DEFAULT_TEMPLATE"
,
Category
.
DEFAULT_TEMPLATE
);
model
.
addAttribute
(
"contentViewList"
,
getTplContent
(
Article
.
DEFAULT_TEMPLATE
));
model
.
addAttribute
(
"article_DEFAULT_TEMPLATE"
,
Article
.
DEFAULT_TEMPLATE
);
model
.
addAttribute
(
"office"
,
category
.
getOffice
());
model
.
addAttribute
(
"category"
,
category
);
return
"modules/cms/categoryForm"
;
}
@RequiresPermissions
(
"cms:category:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Category
category
,
Model
model
,
RedirectAttributes
redirectAttributes
)
{
if
(
Global
.
isDemoMode
()){
addMessage
(
redirectAttributes
,
"演示模式,不允许操作!"
);
return
"redirect:"
+
adminPath
+
"/cms/category/"
;
}
if
(!
beanValidator
(
model
,
category
)){
return
form
(
category
,
model
);
}
categoryService
.
save
(
category
);
addMessage
(
redirectAttributes
,
"保存栏目'"
+
category
.
getName
()
+
"'成功"
);
return
"redirect:"
+
adminPath
+
"/cms/category/"
;
}
@RequiresPermissions
(
"cms:category:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Category
category
,
RedirectAttributes
redirectAttributes
)
{
if
(
Global
.
isDemoMode
()){
addMessage
(
redirectAttributes
,
"演示模式,不允许操作!"
);
return
"redirect:"
+
adminPath
+
"/cms/category/"
;
}
if
(
Category
.
isRoot
(
category
.
getId
())){
addMessage
(
redirectAttributes
,
"删除栏目失败, 不允许删除顶级栏目或编号为空"
);
}
else
{
categoryService
.
delete
(
category
);
addMessage
(
redirectAttributes
,
"删除栏目成功"
);
}
return
"redirect:"
+
adminPath
+
"/cms/category/"
;
}
/**
* 批量修改栏目排序
*/
@RequiresPermissions
(
"cms:category:edit"
)
@RequestMapping
(
value
=
"updateSort"
)
public
String
updateSort
(
String
[]
ids
,
Integer
[]
sorts
,
RedirectAttributes
redirectAttributes
)
{
int
len
=
ids
.
length
;
Category
[]
entitys
=
new
Category
[
len
];
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
entitys
[
i
]
=
categoryService
.
get
(
ids
[
i
]);
entitys
[
i
].
setSort
(
sorts
[
i
]);
categoryService
.
save
(
entitys
[
i
]);
}
addMessage
(
redirectAttributes
,
"保存栏目排序成功!"
);
return
"redirect:"
+
adminPath
+
"/cms/category/"
;
}
@RequiresUser
@ResponseBody
@RequestMapping
(
value
=
"treeData"
)
public
List
<
Map
<
String
,
Object
>>
treeData
(
String
module
,
@RequestParam
(
required
=
false
)
String
extId
,
HttpServletResponse
response
)
{
response
.
setContentType
(
"application/json; charset=UTF-8"
);
List
<
Map
<
String
,
Object
>>
mapList
=
Lists
.
newArrayList
();
List
<
Category
>
list
=
categoryService
.
findByUser
(
true
,
module
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
Category
e
=
list
.
get
(
i
);
if
(
extId
==
null
||
(
extId
!=
null
&&
!
extId
.
equals
(
e
.
getId
())
&&
e
.
getParentIds
().
indexOf
(
","
+
extId
+
","
)==-
1
)){
Map
<
String
,
Object
>
map
=
Maps
.
newHashMap
();
map
.
put
(
"id"
,
e
.
getId
());
map
.
put
(
"pId"
,
e
.
getParent
()!=
null
?
e
.
getParent
().
getId
():
0
);
map
.
put
(
"name"
,
e
.
getName
());
map
.
put
(
"module"
,
e
.
getModule
());
mapList
.
add
(
map
);
}
}
return
mapList
;
}
private
List
<
String
>
getTplContent
(
String
prefix
)
{
List
<
String
>
tplList
=
fileTplService
.
getNameListByPrefix
(
siteService
.
get
(
Site
.
getCurrentSiteId
()).
getSolutionPath
());
tplList
=
TplUtils
.
tplTrim
(
tplList
,
prefix
,
""
);
return
tplList
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/CmsController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.service.CategoryService
;
/**
* 内容管理Controller
* @author JeeSpring
* @version 2013-4-21
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms"
)
public
class
CmsController
extends
AbstractBaseController
{
@Autowired
private
CategoryService
categoryService
;
@RequiresPermissions
(
"cms:view"
)
@RequestMapping
(
value
=
""
)
public
String
index
()
{
return
"modules/cms/cmsIndex"
;
}
@RequiresPermissions
(
"cms:view"
)
@RequestMapping
(
value
=
"tree"
)
public
String
tree
(
Model
model
)
{
model
.
addAttribute
(
"categoryList"
,
categoryService
.
findByUser
(
true
,
null
));
return
"modules/cms/cmsTree"
;
}
@RequiresPermissions
(
"cms:view"
)
@RequestMapping
(
value
=
"none"
)
public
String
none
()
{
return
"modules/cms/cmsNone"
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/CommentController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.Date
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Comment
;
import
com.jeespring.modules.cms.service.CommentService
;
import
com.jeespring.modules.sys.utils.DictUtils
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 评论Controller
* @author JeeSpring
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/comment"
)
public
class
CommentController
extends
AbstractBaseController
{
@Autowired
private
CommentService
commentService
;
@ModelAttribute
public
Comment
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
commentService
.
get
(
id
);
}
else
{
return
new
Comment
();
}
}
@RequiresPermissions
(
"cms:comment:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Comment
comment
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
Page
<
Comment
>
page
=
commentService
.
findPage
(
new
Page
<
Comment
>(
request
,
response
),
comment
);
model
.
addAttribute
(
"page"
,
page
);
return
"modules/cms/commentList"
;
}
@RequiresPermissions
(
"cms:comment:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Comment
comment
,
RedirectAttributes
redirectAttributes
)
{
if
(
beanValidator
(
redirectAttributes
,
comment
)){
if
(
comment
.
getAuditUser
()
==
null
){
comment
.
setAuditUser
(
UserUtils
.
getUser
());
comment
.
setAuditDate
(
new
Date
());
}
comment
.
setDelFlag
(
Comment
.
DEL_FLAG_NORMAL
);
commentService
.
save
(
comment
);
addMessage
(
redirectAttributes
,
DictUtils
.
getDictLabel
(
comment
.
getDelFlag
(),
"cms_del_flag"
,
"保存"
)
+
"评论'"
+
StringUtils
.
abbr
(
StringUtils
.
replaceHtml
(
comment
.
getContent
()),
50
)
+
"'成功"
);
}
return
"redirect:"
+
adminPath
+
"/cms/comment/?repage&delFlag=2"
;
}
@RequiresPermissions
(
"cms:comment:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Comment
comment
,
@RequestParam
(
required
=
false
)
Boolean
isRe
,
RedirectAttributes
redirectAttributes
)
{
commentService
.
delete
(
comment
,
isRe
);
addMessage
(
redirectAttributes
,
(
isRe
!=
null
&&
isRe
?
"恢复审核"
:
"删除"
)+
"评论成功"
);
return
"redirect:"
+
adminPath
+
"/cms/comment/?repage&delFlag=2"
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/GuestbookController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.Date
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Guestbook
;
import
com.jeespring.modules.cms.service.GuestbookService
;
import
com.jeespring.modules.sys.utils.DictUtils
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 留言Controller
* @author JeeSpring
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/guestbook"
)
public
class
GuestbookController
extends
AbstractBaseController
{
@Autowired
private
GuestbookService
guestbookService
;
@ModelAttribute
public
Guestbook
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
guestbookService
.
get
(
id
);
}
else
{
return
new
Guestbook
();
}
}
@RequiresPermissions
(
"cms:guestbook:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Guestbook
guestbook
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
Page
<
Guestbook
>
page
=
guestbookService
.
findPage
(
new
Page
<
Guestbook
>(
request
,
response
),
guestbook
);
model
.
addAttribute
(
"page"
,
page
);
return
"modules/cms/guestbookList"
;
}
@RequiresPermissions
(
"cms:guestbook:view"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
Guestbook
guestbook
,
Model
model
)
{
model
.
addAttribute
(
"guestbook"
,
guestbook
);
return
"modules/cms/guestbookForm"
;
}
@RequiresPermissions
(
"cms:guestbook:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Guestbook
guestbook
,
Model
model
,
RedirectAttributes
redirectAttributes
)
{
if
(!
beanValidator
(
model
,
guestbook
)){
return
form
(
guestbook
,
model
);
}
if
(
guestbook
.
getReUser
()
==
null
){
guestbook
.
setReUser
(
UserUtils
.
getUser
());
guestbook
.
setReDate
(
new
Date
());
}
guestbookService
.
save
(
guestbook
);
addMessage
(
redirectAttributes
,
DictUtils
.
getDictLabel
(
guestbook
.
getDelFlag
(),
"cms_del_flag"
,
"保存"
)
+
"留言'"
+
guestbook
.
getName
()
+
"'成功"
);
return
"redirect:"
+
adminPath
+
"/cms/guestbook/?repage&status=2"
;
}
@RequiresPermissions
(
"cms:guestbook:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Guestbook
guestbook
,
@RequestParam
(
required
=
false
)
Boolean
isRe
,
RedirectAttributes
redirectAttributes
)
{
guestbookService
.
delete
(
guestbook
,
isRe
);
addMessage
(
redirectAttributes
,
(
isRe
!=
null
&&
isRe
?
"恢复审核"
:
"删除"
)+
"留言成功"
);
return
"redirect:"
+
adminPath
+
"/cms/guestbook/?repage&status=2"
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/LinkController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.jeespring.common.mapper.JsonMapper
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.entity.Link
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.CategoryService
;
import
com.jeespring.modules.cms.service.LinkService
;
/**
* 链接Controller
* @author JeeSpring
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/link"
)
public
class
LinkController
extends
AbstractBaseController
{
@Autowired
private
LinkService
linkService
;
@Autowired
private
CategoryService
categoryService
;
@ModelAttribute
public
Link
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
linkService
.
get
(
id
);
}
else
{
return
new
Link
();
}
}
@RequiresPermissions
(
"cms:link:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Link
link
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
// User user = UserUtils.getUser();
// if (!user.isAdmin() && !SecurityUtils.getSubject().isPermitted("cms:link:audit")){
// link.setUser(user);
// }
Page
<
Link
>
page
=
linkService
.
findPage
(
new
Page
<
Link
>(
request
,
response
),
link
,
true
);
model
.
addAttribute
(
"page"
,
page
);
return
"modules/cms/linkList"
;
}
@RequiresPermissions
(
"cms:link:view"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
Link
link
,
Model
model
)
{
// 如果当前传参有子节点,则选择取消传参选择
if
(
link
.
getCategory
()!=
null
&&
StringUtils
.
isNotBlank
(
link
.
getCategory
().
getId
())){
List
<
Category
>
list
=
categoryService
.
findByParentId
(
link
.
getCategory
().
getId
(),
Site
.
getCurrentSiteId
());
if
(
list
.
size
()
>
0
){
link
.
setCategory
(
null
);
}
else
{
link
.
setCategory
(
categoryService
.
get
(
link
.
getCategory
().
getId
()));
}
}
model
.
addAttribute
(
"link"
,
link
);
return
"modules/cms/linkForm"
;
}
@RequiresPermissions
(
"cms:link:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Link
link
,
Model
model
,
RedirectAttributes
redirectAttributes
)
{
if
(!
beanValidator
(
model
,
link
)){
return
form
(
link
,
model
);
}
linkService
.
save
(
link
);
addMessage
(
redirectAttributes
,
"保存链接'"
+
StringUtils
.
abbr
(
link
.
getTitle
(),
50
)
+
"'成功"
);
return
"redirect:"
+
adminPath
+
"/cms/link/?repage&category.id="
+
link
.
getCategory
().
getId
();
}
@RequiresPermissions
(
"cms:link:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Link
link
,
String
categoryId
,
@RequestParam
(
required
=
false
)
Boolean
isRe
,
RedirectAttributes
redirectAttributes
)
{
linkService
.
delete
(
link
,
isRe
);
addMessage
(
redirectAttributes
,
(
isRe
!=
null
&&
isRe
?
"发布"
:
"删除"
)+
"链接成功"
);
return
"redirect:"
+
adminPath
+
"/cms/link/?repage&category.id="
+
categoryId
;
}
/**
* 链接选择列表
*/
@RequiresPermissions
(
"cms:link:view"
)
@RequestMapping
(
value
=
"selectList"
)
public
String
selectList
(
Link
link
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
list
(
link
,
request
,
response
,
model
);
return
"modules/cms/linkSelectList"
;
}
/**
* 通过编号获取链接名称
*/
@RequiresPermissions
(
"cms:link:view"
)
@ResponseBody
@RequestMapping
(
value
=
"findByIds"
)
public
String
findByIds
(
String
ids
)
{
List
<
Object
[]>
list
=
linkService
.
findByIds
(
ids
);
return
JsonMapper
.
nonDefaultMapper
().
toJson
(
list
);
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/SiteController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.jeespring.common.config.Global
;
import
com.jeespring.common.persistence.Page
;
import
com.jeespring.common.utils.CookieUtils
;
import
com.jeespring.common.utils.StringUtils
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.SiteService
;
import
com.jeespring.modules.sys.utils.UserUtils
;
/**
* 站点Controller
* @author JeeSpring
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/site"
)
public
class
SiteController
extends
AbstractBaseController
{
@Autowired
private
SiteService
siteService
;
@ModelAttribute
public
Site
get
(
@RequestParam
(
required
=
false
)
String
id
)
{
if
(
StringUtils
.
isNotBlank
(
id
)){
return
siteService
.
get
(
id
);
}
else
{
return
new
Site
();
}
}
@RequiresPermissions
(
"cms:site:view"
)
@RequestMapping
(
value
=
{
"list"
,
""
})
public
String
list
(
Site
site
,
HttpServletRequest
request
,
HttpServletResponse
response
,
Model
model
)
{
Page
<
Site
>
page
=
siteService
.
findPage
(
new
Page
<
Site
>(
request
,
response
),
site
);
model
.
addAttribute
(
"page"
,
page
);
return
"modules/cms/siteList"
;
}
@RequiresPermissions
(
"cms:site:view"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
Site
site
,
Model
model
)
{
model
.
addAttribute
(
"site"
,
site
);
return
"modules/cms/siteForm"
;
}
@RequiresPermissions
(
"cms:site:edit"
)
@RequestMapping
(
value
=
"save"
)
public
String
save
(
Site
site
,
Model
model
,
RedirectAttributes
redirectAttributes
)
{
if
(
Global
.
isDemoMode
()){
addMessage
(
redirectAttributes
,
"演示模式,不允许操作!"
);
return
"redirect:"
+
adminPath
+
"/cms/site/?repage"
;
}
if
(!
beanValidator
(
model
,
site
)){
return
form
(
site
,
model
);
}
siteService
.
save
(
site
);
addMessage
(
redirectAttributes
,
"保存站点'"
+
site
.
getName
()
+
"'成功"
);
return
"redirect:"
+
adminPath
+
"/cms/site/?repage"
;
}
@RequiresPermissions
(
"cms:site:edit"
)
@RequestMapping
(
value
=
"delete"
)
public
String
delete
(
Site
site
,
@RequestParam
(
required
=
false
)
Boolean
isRe
,
RedirectAttributes
redirectAttributes
)
{
if
(
Global
.
isDemoMode
()){
addMessage
(
redirectAttributes
,
"演示模式,不允许操作!"
);
return
"redirect:"
+
adminPath
+
"/cms/site/?repage"
;
}
if
(
Site
.
isDefault
(
site
.
getId
())){
addMessage
(
redirectAttributes
,
"删除站点失败, 不允许删除默认站点"
);
}
else
{
siteService
.
delete
(
site
,
isRe
);
addMessage
(
redirectAttributes
,
(
isRe
!=
null
&&
isRe
?
"恢复"
:
""
)+
"删除站点成功"
);
}
return
"redirect:"
+
adminPath
+
"/cms/site/?repage"
;
}
/**
* 选择站点
* @param id
* @return
*/
@RequiresPermissions
(
"cms:site:select"
)
@RequestMapping
(
value
=
"select"
)
public
String
select
(
String
id
,
boolean
flag
,
HttpServletResponse
response
){
if
(
id
!=
null
){
UserUtils
.
putCache
(
"siteId"
,
id
);
// 保存到Cookie中,下次登录后自动切换到该站点
CookieUtils
.
setCookie
(
response
,
"siteId"
,
id
);
}
if
(
flag
){
return
"redirect:"
+
adminPath
;
}
return
"modules/cms/siteSelect"
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/StatsController.java
0 → 100644
View file @
d9ad22de
/**
* Copyright © 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package
com.jeespring.modules.cms.web
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Category
;
import
com.jeespring.modules.cms.service.StatsService
;
/**
* 统计Controller
* @author JeeSpring
* @version 2013-5-21
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/stats"
)
public
class
StatsController
extends
AbstractBaseController
{
@Autowired
private
StatsService
statsService
;
/**
* 文章信息量
* @param paramMap
* @param model
* @return
*/
@RequiresPermissions
(
"cms:stats:article"
)
@RequestMapping
(
value
=
"article"
)
public
String
article
(
@RequestParam
Map
<
String
,
Object
>
paramMap
,
Model
model
)
{
List
<
Category
>
list
=
statsService
.
article
(
paramMap
);
model
.
addAttribute
(
"list"
,
list
);
model
.
addAttribute
(
"paramMap"
,
paramMap
);
return
"modules/cms/statsArticle"
;
}
}
JeeSpringCloud/jeespring-cms/src/main/java/com/jeespring/modules/cms/web/TemplateController.java
0 → 100644
View file @
d9ad22de
package
com.jeespring.modules.cms.web
;
import
com.jeespring.common.web.AbstractBaseController
;
import
com.jeespring.modules.cms.entity.Site
;
import
com.jeespring.modules.cms.service.FileTplService
;
import
com.jeespring.modules.cms.service.SiteService
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* 站点Controller
* @author SongLai
* @version 2013-3-23
*/
@Controller
@RequestMapping
(
value
=
"${adminPath}/cms/template"
)
public
class
TemplateController
extends
AbstractBaseController
{
@Autowired
private
FileTplService
fileTplService
;
@Autowired
private
SiteService
siteService
;
@RequiresPermissions
(
"cms:template:edit"
)
@RequestMapping
(
value
=
""
)
public
String
index
()
{
return
"modules/cms/tplIndex"
;
}
@RequiresPermissions
(
"cms:template:edit"
)
@RequestMapping
(
value
=
"tree"
)
public
String
tree
(
Model
model
)
{
Site
site
=
siteService
.
get
(
Site
.
getCurrentSiteId
());
model
.
addAttribute
(
"templateList"
,
fileTplService
.
getListForEdit
(
site
.
getSolutionPath
()));
return
"modules/cms/tplTree"
;
}
@RequiresPermissions
(
"cms:template:edit"
)
@RequestMapping
(
value
=
"form"
)
public
String
form
(
String
name
,
Model
model
)
{
model
.
addAttribute
(
"template"
,
fileTplService
.
getFileTpl
(
name
));
return
"modules/cms/tplForm"
;
}
@RequiresPermissions
(
"cms:template:edit"
)
@RequestMapping
(
value
=
"help"
)
public
String
help
()
{
return
"modules/cms/tplHelp"
;
}
}
Prev
1
2
3
4
5
Next
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