10d5d319750317c108f659caa1bda754c6c56950.svn-base
6.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/**
* Copyright © 2015-2018 ODM All rights reserved.
*/
package com.thinkgem.jeesite.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.thinkgem.jeesite.common.mapper.JsonMapper;
import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.common.web.BaseController;
import com.thinkgem.jeesite.modules.cms.entity.Article;
import com.thinkgem.jeesite.modules.cms.entity.Category;
import com.thinkgem.jeesite.modules.cms.entity.Site;
import com.thinkgem.jeesite.modules.cms.service.ArticleDataService;
import com.thinkgem.jeesite.modules.cms.service.ArticleService;
import com.thinkgem.jeesite.modules.cms.service.CategoryService;
import com.thinkgem.jeesite.modules.cms.service.FileTplService;
import com.thinkgem.jeesite.modules.cms.service.SiteService;
import com.thinkgem.jeesite.modules.cms.utils.CmsUtils;
import com.thinkgem.jeesite.modules.cms.utils.TplUtils;
import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
/**
* 文章Controller
* @author ThinkGem
* @version 2013-3-23
*/
@Controller
@RequestMapping(value = "${adminPath}/cms/article")
public class ArticleController extends BaseController {
@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.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;
}
}