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
"vscode:/vscode.git/clone" did not exist on "8aeef4e0bdcb3ce6fe351751c97a0bc73aa97310"
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