"litemall-db/vscode:/vscode.git/clone" did not exist on "4ff5534fc99f32b9ea92673e51fae73d953b44ac"
Commit e9629e7a authored by Sun's avatar Sun
Browse files

no commit message

parent e4054436
/**
* Copyright &copy; 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;
}
}
/**
* Copyright &copy; 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";
}
}
/**
* Copyright &copy; 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";
}
}
/**
* Copyright &copy; 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";
}
}
/**
* Copyright &copy; 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);
}
}
/**
* Copyright &copy; 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";
}
}
/**
* Copyright &copy; 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";
}
}
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";
}
}
/**
* Copyright &copy; 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package com.jeespring.modules.cms.web.front;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.google.common.collect.Lists;
import com.jeespring.common.config.Global;
import com.jeespring.common.persistence.Page;
import com.jeespring.common.servlet.ValidateCodeServlet;
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.Comment;
import com.jeespring.modules.cms.entity.Link;
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.CommentService;
import com.jeespring.modules.cms.service.LinkService;
import com.jeespring.modules.cms.service.SiteService;
import com.jeespring.modules.cms.utils.CmsUtils;
/**
* 网站Controller
* @author JeeSpring
* @version 2013-5-29
*/
@Controller
@RequestMapping(value = "${frontPath}")
public class FrontController extends AbstractBaseController{
@Autowired
private ArticleService articleService;
@Autowired
private ArticleDataService articleDataService;
@Autowired
private LinkService linkService;
@Autowired
private CommentService commentService;
@Autowired
private CategoryService categoryService;
@Autowired
private SiteService siteService;
/**
* 网站首页
*/
@RequestMapping
public String index(Model model,HttpServletRequest request, HttpServletResponse response) {
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
model.addAttribute("isIndex", true);
if(request.getParameter("theme")!=null){
site.setTheme(request.getParameter("theme"));
}
return "modules/cms/front/themes/"+site.getTheme()+"/frontIndex";
}
@RequestMapping(value = "index2")
public String index2(Model model,HttpServletRequest request, HttpServletResponse response) {
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
model.addAttribute("isIndex", true);
if(request.getParameter("theme")!=null){
site.setTheme(request.getParameter("theme"));
}
return "modules/cms/front/themes/"+site.getTheme()+"/index";
}
/**
* 网站首页
*/
@RequestMapping(value = "index-{siteId}${urlSuffix}")
public String index(@PathVariable String siteId, Model model) {
if ("1".equals(siteId)){
return "redirect:"+Global.getFrontPath();
}
Site site = CmsUtils.getSite(siteId);
// 子站有独立页面,则显示独立页面
if (StringUtils.isNotBlank(site.getCustomIndexView())){
model.addAttribute("site", site);
model.addAttribute("isIndex", true);
return "modules/cms/front/themes/"+site.getTheme()+"/frontIndex"+site.getCustomIndexView();
}
// 否则显示子站第一个栏目
List<Category> mainNavList = CmsUtils.getMainNavList(siteId);
if (mainNavList.size() > 0){
String firstCategoryId = CmsUtils.getMainNavList(siteId).get(0).getId();
return "redirect:"+Global.getFrontPath()+"/list-"+firstCategoryId+Global.getUrlSuffix();
}else{
model.addAttribute("site", site);
return "modules/cms/front/themes/"+site.getTheme()+"/frontListCategory";
}
}
/**
* 内容列表
*/
@RequestMapping(value = "list-{categoryId}${urlSuffix}")
public String list(@PathVariable String categoryId, @RequestParam(required=false, defaultValue="1") Integer pageNo,
@RequestParam(required=false, defaultValue="15") Integer pageSize, Model model) {
Category category = categoryService.get(categoryId);
if (category==null){
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
return "error/404";
}
Site site = siteService.get(category.getSite().getId());
model.addAttribute("site", site);
// 2:简介类栏目,栏目第一条内容
if("2".equals(category.getShowModes()) && "article".equals(category.getModule())){
// 如果没有子栏目,并父节点为跟节点的,栏目列表为当前栏目。
List<Category> categoryList = Lists.newArrayList();
if ("1".equals(category.getParent().getId())){
categoryList.add(category);
}else{
categoryList = categoryService.findByParentId(category.getParent().getId(), category.getSite().getId());
}
model.addAttribute("category", category);
model.addAttribute("categoryList", categoryList);
// 获取文章内容
Page<Article> page = new Page<Article>(1, 1, -1);
Article article = new Article(category);
page = articleService.findPage(page, article, false);
if (page.getList().size()>0){
article = page.getList().get(0);
article.setArticleData(articleDataService.get(article.getId()));
articleService.updateHitsAddOne(article.getId());
}
model.addAttribute("article", article);
CmsUtils.addViewConfigAttribute(model, category);
CmsUtils.addViewConfigAttribute(model, article.getViewConfig());
return "modules/cms/front/themes/"+site.getTheme()+"/"+getTpl(article);
}else{
List<Category> categoryList = categoryService.findByParentId(category.getId(), category.getSite().getId());
// 展现方式为1 、无子栏目或公共模型,显示栏目内容列表
if("1".equals(category.getShowModes())||categoryList.size()==0){
// 有子栏目并展现方式为1,则获取第一个子栏目;无子栏目,则获取同级分类列表。
if(categoryList.size()>0){
category = categoryList.get(0);
}else{
// 如果没有子栏目,并父节点为跟节点的,栏目列表为当前栏目。
if ("1".equals(category.getParent().getId())){
categoryList.add(category);
}else{
categoryList = categoryService.findByParentId(category.getParent().getId(), category.getSite().getId());
}
}
model.addAttribute("category", category);
model.addAttribute("categoryList", categoryList);
// 获取内容列表
if ("article".equals(category.getModule())){
Page<Article> page = new Page<Article>(pageNo, pageSize);
//System.out.println(page.getPageNo());
page = articleService.findPage(page, new Article(category), false);
model.addAttribute("page", page);
// 如果第一个子栏目为简介类栏目,则获取该栏目第一篇文章
if ("2".equals(category.getShowModes())){
Article article = new Article(category);
if (page.getList().size()>0){
article = page.getList().get(0);
article.setArticleData(articleDataService.get(article.getId()));
articleService.updateHitsAddOne(article.getId());
}
model.addAttribute("article", article);
CmsUtils.addViewConfigAttribute(model, category);
CmsUtils.addViewConfigAttribute(model, article.getViewConfig());
return "modules/cms/front/themes/"+site.getTheme()+"/"+getTpl(article);
}
}else if ("link".equals(category.getModule())){
Page<Link> page = new Page<Link>(1, -1);
page = linkService.findPage(page, new Link(category), false);
model.addAttribute("page", page);
}
String view = "/frontList";
if (StringUtils.isNotBlank(category.getCustomListView())){
view = "/"+category.getCustomListView();
}
CmsUtils.addViewConfigAttribute(model, category);
site =siteService.get(category.getSite().getId());
//System.out.println("else 栏目第一条内容 _2 :"+category.getSite().getTheme()+","+site.getTheme());
return "modules/cms/front/themes/"+siteService.get(category.getSite().getId()).getTheme()+view;
//return "modules/cms/front/themes/"+category.getSite().getTheme()+view;
}
// 有子栏目:显示子栏目列表
else{
model.addAttribute("category", category);
model.addAttribute("categoryList", categoryList);
String view = "/frontListCategory";
if (StringUtils.isNotBlank(category.getCustomListView())){
view = "/"+category.getCustomListView();
}
CmsUtils.addViewConfigAttribute(model, category);
return "modules/cms/front/themes/"+site.getTheme()+view;
}
}
}
/**
* 内容列表(通过url自定义视图)
*/
@RequestMapping(value = "listc-{categoryId}-{customView}${urlSuffix}")
public String listCustom(@PathVariable String categoryId, @PathVariable String customView, @RequestParam(required=false, defaultValue="1") Integer pageNo,
@RequestParam(required=false, defaultValue="15") Integer pageSize, Model model) {
Category category = categoryService.get(categoryId);
if (category==null){
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
return "error/404";
}
Site site = siteService.get(category.getSite().getId());
model.addAttribute("site", site);
List<Category> categoryList = categoryService.findByParentId(category.getId(), category.getSite().getId());
model.addAttribute("category", category);
model.addAttribute("categoryList", categoryList);
CmsUtils.addViewConfigAttribute(model, category);
return "modules/cms/front/themes/"+site.getTheme()+"/frontListCategory"+customView;
}
/**
* 显示内容
*/
@RequestMapping(value = "view-{categoryId}-{contentId}${urlSuffix}")
public String view(@PathVariable String categoryId, @PathVariable String contentId, Model model) {
Category category = categoryService.get(categoryId);
if (category==null){
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
return "error/404";
}
model.addAttribute("site", category.getSite());
if ("article".equals(category.getModule())){
// 如果没有子栏目,并父节点为跟节点的,栏目列表为当前栏目。
List<Category> categoryList = Lists.newArrayList();
if ("1".equals(category.getParent().getId())){
categoryList.add(category);
}else{
categoryList = categoryService.findByParentId(category.getParent().getId(), category.getSite().getId());
}
// 获取文章内容
Article article = articleService.get(contentId);
if (article==null || !Article.DEL_FLAG_NORMAL.equals(article.getDelFlag())){
return "error/404";
}
// 文章阅读次数+1
articleService.updateHitsAddOne(contentId);
// 获取推荐文章列表
List<Object[]> relationList = articleService.findByIds(articleDataService.get(article.getId()).getRelation());
// 将数据传递到视图
model.addAttribute("category", categoryService.get(article.getCategory().getId()));
model.addAttribute("categoryList", categoryList);
article.setArticleData(articleDataService.get(article.getId()));
model.addAttribute("article", article);
model.addAttribute("relationList", relationList);
CmsUtils.addViewConfigAttribute(model, article.getCategory());
CmsUtils.addViewConfigAttribute(model, article.getViewConfig());
Site site = siteService.get(category.getSite().getId());
model.addAttribute("site", site);
// return "modules/cms/front/themes/"+category.getSite().getTheme()+"/"+getTpl(article);
return "modules/cms/front/themes/"+site.getTheme()+"/"+getTpl(article);
}
return "error/404";
}
/**
* 内容评论
*/
@RequestMapping(value = "comment", method=RequestMethod.GET)
public String comment(String theme, Comment comment, HttpServletRequest request, HttpServletResponse response, Model model) {
Page<Comment> page = new Page<Comment>(request, response);
Comment c = new Comment();
c.setCategory(comment.getCategory());
c.setContentId(comment.getContentId());
c.setDelFlag(Comment.DEL_FLAG_NORMAL);
page = commentService.findPage(page, c);
model.addAttribute("page", page);
model.addAttribute("comment", comment);
return "modules/cms/front/themes/"+theme+"/frontComment";
}
/**
* 内容评论保存
*/
@ResponseBody
@RequestMapping(value = "comment", method=RequestMethod.POST)
public String commentSave(Comment comment, String validateCode,@RequestParam(required=false) String replyId, HttpServletRequest request) {
if (StringUtils.isNotBlank(validateCode)){
if (ValidateCodeServlet.validate(request, validateCode)){
if (StringUtils.isNotBlank(replyId)){
Comment replyComment = commentService.get(replyId);
if (replyComment != null){
comment.setContent("<div class=\"reply\">"+replyComment.getName()+":<br/>"
+replyComment.getContent()+"</div>"+comment.getContent());
}
}
comment.setIp(request.getRemoteAddr());
comment.setCreateDate(new Date());
comment.setDelFlag(Comment.DEL_FLAG_AUDIT);
commentService.save(comment);
return "{result:1, message:'提交成功。'}";
}else{
return "{result:2, message:'验证码不正确。'}";
}
}else{
return "{result:2, message:'验证码不能为空。'}";
}
}
/**
* 站点地图
*/
@RequestMapping(value = "map-{siteId}${urlSuffix}")
public String map(@PathVariable String siteId, Model model) {
Site site = CmsUtils.getSite(siteId!=null?siteId:Site.defaultSiteId());
model.addAttribute("site", site);
return "modules/cms/front/themes/"+site.getTheme()+"/frontMap";
}
private String getTpl(Article article){
if(StringUtils.isBlank(article.getCustomContentView())){
String view = null;
Category c = article.getCategory();
boolean goon = true;
do{
if(StringUtils.isNotBlank(c.getCustomContentView())){
view = c.getCustomContentView();
goon = false;
}else if(c.getParent() == null || c.getParent().isRoot()){
goon = false;
}else{
c = c.getParent();
}
}while(goon);
return StringUtils.isBlank(view) ? Article.DEFAULT_TEMPLATE : view;
}else{
return article.getCustomContentView();
}
}
}
/**
* Copyright &copy; 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package com.jeespring.modules.cms.web.front;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.RequestMethod;
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.web.AbstractBaseController;
import com.jeespring.modules.cms.entity.Guestbook;
import com.jeespring.modules.cms.entity.Site;
import com.jeespring.modules.cms.service.GuestbookService;
import com.jeespring.modules.cms.utils.CmsUtils;
/**
* 留言板Controller
* @author JeeSpring
* @version 2013-3-15
*/
@Controller
@RequestMapping(value = "${frontPath}/guestbook")
public class FrontGuestbookController extends AbstractBaseController {
@Autowired
private GuestbookService guestbookService;
/**
* 留言板
*/
@RequestMapping(value = "", method=RequestMethod.GET)
public String guestbook(@RequestParam(required=false, defaultValue="1") Integer pageNo,
@RequestParam(required=false, defaultValue="30") Integer pageSize, Model model) {
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
Page<Guestbook> page = new Page<Guestbook>(pageNo, pageSize);
Guestbook guestbook = new Guestbook();
guestbook.setDelFlag(Guestbook.DEL_FLAG_NORMAL);
page = guestbookService.findPage(page, guestbook);
model.addAttribute("page", page);
return "modules/cms/front/themes/"+site.getTheme()+"/frontGuestbook";
}
/**
* 留言板-保存留言信息
*/
@RequestMapping(value = "", method=RequestMethod.POST)
public String guestbookSave(Guestbook guestbook, String validateCode, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
// if (StringUtils.isNotBlank(validateCode)){
// if (ValidateCodeServlet.validate(request, validateCode)){
guestbook.setIp(request.getRemoteAddr());
guestbook.setCreateDate(new Date());
guestbook.setDelFlag(Guestbook.DEL_FLAG_AUDIT);
guestbookService.save(guestbook);
addMessage(redirectAttributes, "提交成功,谢谢!");
// }else{
// addMessage(redirectAttributes, "验证码不正确。");
// }
// }else{
// addMessage(redirectAttributes, "验证码不能为空。");
// }
return "redirect:"+Global.getFrontPath()+"/guestbook";
}
}
/**
* Copyright &copy; 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package com.jeespring.modules.cms.web.front;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.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.Guestbook;
import com.jeespring.modules.cms.entity.Site;
import com.jeespring.modules.cms.service.ArticleService;
import com.jeespring.modules.cms.service.GuestbookService;
import com.jeespring.modules.cms.utils.CmsUtils;
import com.jeespring.modules.sys.utils.UserUtils;
/**
* 网站搜索Controller
* @author JeeSpring
* @version 2013-5-29
*/
@Controller
@RequestMapping(value = "${frontPath}/search")
public class FrontSearchController extends AbstractBaseController{
@Autowired
private ArticleService articleService;
@Autowired
private GuestbookService guestbookService;
/**
* 全站搜索
*/
@RequestMapping(value = "")
public String search(String t, @RequestParam(required=false) String q, @RequestParam(required=false) String qand, @RequestParam(required=false) String qnot,
@RequestParam(required=false) String a, @RequestParam(required=false) String cid, @RequestParam(required=false) String bd,
@RequestParam(required=false) String ed, HttpServletRequest request, HttpServletResponse response, Model model) {
long start = System.currentTimeMillis();
Site site = CmsUtils.getSite(Site.defaultSiteId());
model.addAttribute("site", site);
// 重建索引(需要超级管理员权限)
if ("cmd:reindex".equals(q)){
if (UserUtils.getUser().isAdmin()){
// 文章模型
if (StringUtils.isBlank(t) || "article".equals(t)){
articleService.createIndex();
}
// 留言模型
else if ("guestbook".equals(t)){
guestbookService.createIndex();
}
model.addAttribute("message", "重建索引成功,共耗时 " + (System.currentTimeMillis() - start) + "毫秒。");
}else{
model.addAttribute("message", "你没有执行权限。");
}
}
// 执行检索
else{
String qStr = StringUtils.replace(StringUtils.replace(q, ",", " "), ", ", " ");
// 如果是高级搜索
if ("1".equals(a)){
if (StringUtils.isNotBlank(qand)){
qStr += " +" + StringUtils.replace(StringUtils.replace(StringUtils.replace(qand, ",", " "), ", ", " "), " ", " +");
}
if (StringUtils.isNotBlank(qnot)){
qStr += " -" + StringUtils.replace(StringUtils.replace(StringUtils.replace(qnot, ",", " "), ", ", " "), " ", " -");
}
}
// 文章检索
if (StringUtils.isBlank(t) || "article".equals(t)){
Page<Article> page = articleService.search(new Page<Article>(request, response), qStr, cid, bd, ed);
page.setMessage("匹配结果,共耗时 " + (System.currentTimeMillis() - start) + "毫秒。");
model.addAttribute("page", page);
}
// 留言检索
else if ("guestbook".equals(t)){
Page<Guestbook> page = guestbookService.search(new Page<Guestbook>(request, response), qStr, bd, ed);
page.setMessage("匹配结果,共耗时 " + (System.currentTimeMillis() - start) + "毫秒。");
model.addAttribute("page", page);
}
}
model.addAttribute("t", t);// 搜索类型
model.addAttribute("q", q);// 搜索关键字
model.addAttribute("qand", qand);// 包含以下全部的关键词
model.addAttribute("qnot", qnot);// 不包含以下关键词
model.addAttribute("cid", cid);// 搜索类型
return "modules/cms/front/themes/"+site.getTheme()+"/frontSearch";
}
}
/**
* Copyright &copy; 2012-2016 <a href="https://gitee.com/JeeHuangBingGui/jeeSpringCloud">JeeSpring</a>All rights reserved.
*/
package com.jeespring.modules.cms.web.front;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeespring.common.web.AbstractBaseController;
import com.jeespring.modules.cms.utils.WiexinSignUtil;
/**
* 测试Controller
* @author JeeSpring
* @version 2014-02-28
*/
@Controller
@RequestMapping(value = "${frontPath}/weixin")
public class WeixinController extends AbstractBaseController {
/**
*
* @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
* @param timestamp 时间戳
* @param nonce 随机数
* @param echostr 随机数
* @return
*/
@RequestMapping(value = "", method = RequestMethod.GET)
@ResponseBody
public String get(String signature, String timestamp, String nonce, String echostr, HttpServletRequest request) {
System.out.println("=============================================== get start");
for (Object o : request.getParameterMap().keySet()){
System.out.println(o + " = " + request.getParameter((String)o));
}
System.out.println("=============================================== get end");
// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
if (WiexinSignUtil.checkSignature(signature, timestamp, nonce)) {
return echostr;
}
return "";
}
@RequestMapping(value = "", method = RequestMethod.POST)
@ResponseBody
public String post(String signature, String timestamp, String nonce, String echostr, HttpServletRequest request) {
System.out.println("=============================================== post start");
for (Object o : request.getParameterMap().keySet()){
System.out.println(o + " = " + request.getParameter((String)o));
}
System.out.println("=============================================== post end");
StringBuilder result = new StringBuilder();
result.append("<xml>" +
"<ToUserName><![CDATA[toUser]]></ToUserName>" +
"<FromUserName><![CDATA[fromUser]]></FromUserName>" +
"<CreateTime>12345678</CreateTime>" +
"<MsgType><![CDATA[text]]></MsgType>" +
"<Content><![CDATA[你好]]></Content>" +
"</xml>");
return result.toString();
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.ArticleDao">
<sql id="cmsArticleColumns">
a.id AS "id",
a.category_id AS "category.id",
a.title AS "title",
a.link AS "link",
a.color AS "color",
a.image AS "image",
a.keywords AS "keywords",
a.description AS "description",
a.weight AS "weight",
a.weight_date AS "weightDate",
a.hits AS "hits",
a.posid AS "posid",
a.custom_content_view AS "customContentView",
a.view_config AS "viewConfig",
a.create_by AS "createBy.id",
a.create_date AS "createDate",
a.update_by AS "updateBy.id",
a.update_date AS "updateDate",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
c.name AS "category.name",
u.name AS "user.name"
</sql>
<sql id="cmsArticleJoins">
JOIN cms_category c ON c.id = a.category_id
JOIN sys_office o ON o.id = c.office_id
JOIN sys_user u ON u.id = a.create_by
</sql>
<select id="get" resultType="Article">
SELECT
<include refid="cmsArticleColumns"/>
FROM cms_article a
<include refid="cmsArticleJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="Article">
SELECT
<include refid="cmsArticleColumns"/>
FROM cms_article a
<include refid="cmsArticleJoins"/>
<where>
a.del_flag = #{delFlag}
<if test="title != null and title != ''">
AND a.title LIKE
<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
</if>
<if test="posid != null and posid != ''">
AND a.posid LIKE
<if test="dbName == 'oracle'">'%'||#{posid}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{posid}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{posid}, '%')</if>
</if>
<if test="category.id != null and category.id != ''">
AND (a.category_id = #{category.id}
<if test="category.parentIds != null and category.parentIds != ''">
or c.parent_ids like
<if test="dbName == 'oracle'">'%'||#{category.id}||'%'</if>
<if test="dbName == 'mssql'">'%,'+#{category.id}+',%'</if>
<if test="dbName == 'mysql'">CONCAT('%,', #{category.id}, ',%')</if>
</if>)
</if>
<if test="image != null and image != ''">
AND a.image = #{image}
</if>
<if test="createBy != null and createBy.id != null and createBy.id != ''">
AND a.create_by = #{createBy.id}
</if>
<!-- ${sqlMap.dsf}-->
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.weight DESC, a.update_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="Article">
SELECT
<include refid="cmsArticleColumns"/>
FROM cms_article a
<include refid="cmsArticleJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.weight DESC, a.update_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO cms_article(
id,
category_id,
title,
link,
color,
image,
keywords,
description,
weight,
weight_date,
hits,
posid,
custom_content_view,
view_config,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag
) VALUES (
#{id},
#{category.id},
#{title},
#{link},
#{color},
#{image},
#{keywords},
#{description},
#{weight},
#{weightDate},
#{hits},
#{posid},
#{customContentView},
#{viewConfig},
#{createBy.id},
#{createDate},
#{updateBy.id},
#{updateDate},
#{remarks},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_article SET
category_id = #{category.id},
title = #{title},
link = #{link},
color = #{color},
image = #{image},
keywords = #{keywords},
description = #{description},
weight = #{weight},
weight_date = #{weightDate},
hits = #{hits},
posid = #{posid},
custom_content_view = #{customContentView},
view_config = #{viewConfig},
create_date = #{createDate},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_article SET
del_flag = #{DEL_FLAG_DELETE}
WHERE id = #{id}
</update>
<select id="findByIdIn" resultType="Article">
SELECT
<include refid="cmsArticleColumns"/>
from cms_article a where
<where>
id in (${id});
</where>
</select>
<update id="updateExpiredWeight">
update cms_article SET
weight = 0
WHERE weight &gt; 0 AND weight_date &lt;
<if test="dbName == 'oracle'">sysdate</if>
<if test="dbName == 'mssql'">FLOOR(CONVERT(FLOAT,GETDATE()))</if>
<if test="dbName == 'mysql'">CURDATE()</if>
</update>
<update id="updateHitsAddOne">
update cms_article set
hits = hits+1
WHERE id = #{id}
</update>
<select id="findStats" resultType="Category">
select max(c.id) AS "id",
max(c.name) AS "name",
max(cp.id) AS "parent.id",
max(cp.name) AS "parent.name",
count(*) AS "cnt",
sum(a.hits) AS "hits",
max(a.update_date) as "updateDate",
max(o.id) AS "office.id",
max(o.name) AS "office.name"
FROM cms_article a
RIGHT JOIN cms_category c ON c.id = a.category_id
JOIN cms_category cp ON c.parent_id = cp.id
JOIN sys_office o ON o.id = c.office_id
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
AND c.site_id = #{site.id}
<if test="office.id != null and office.id != ''">
AND (c.office_id = #{office.id} OR o.parent_ids like
<if test="dbName == 'oracle'">'%'||#{office.id}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{office.id}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{office.id}, '%')</if>)
</if>
<if test="id != null and id != ''">
AND (c.id = #{id} OR c.parent_ids LIKE
<if test="dbName == 'oracle'">'%'||#{id}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{id}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{id}, '%')</if>)
</if>
group by cp.sort, cp.id, c.sort, c.id
order by cp.sort, cp.id, c.sort, c.id
</where>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.ArticleDataDao">
<sql id="cmsArticleDataColumns">
a.id AS "id",
a.content AS "content",
a.copyfrom AS "copyfrom",
a.relation AS "relation",
a.allow_comment AS "allow_comment"
</sql>
<sql id="cmsArticleDataJoins">
</sql>
<select id="get" resultType="ArticleData">
SELECT
<include refid="cmsArticleDataColumns"/>
FROM cms_article_data a
<include refid="cmsArticleDataJoins"/>
WHERE a.id = #{id}
</select>
<insert id="insert">
INSERT INTO cms_article_data(
id,
content,
copyfrom,
relation,
allow_comment
) VALUES (
#{id},
#{content},
#{copyfrom},
#{relation},
#{allowComment}
)
</insert>
<update id="update">
UPDATE cms_article_data SET
content = #{content},
copyfrom = #{copyfrom},
relation = #{relation},
allow_comment = #{allowComment}
WHERE id = #{id}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.CategoryDao">
<sql id="cmsCategoryDaoColumns">
a.id AS "id",
a.parent_id AS "parent.id",
a.parent_ids AS "parentIds",
a.site_id AS "site.id",
a.office_id AS "office.id",
a.module AS "module",
a.name AS "name",
a.image AS "image",
a.href AS "href",
a.target AS "target",
a.description AS "description",
a.keywords AS "keywords",
a.sort AS "sort",
a.in_menu AS "inMenu",
a.in_list AS "inList",
a.show_modes AS "showModes",
a.allow_comment AS "allowComment",
a.is_audit AS "isAudit",
a.custom_list_view AS "customListView",
a.custom_content_view AS "customContentView",
a.view_config AS "viewConfig",
a.create_by AS "createBy.id",
a.create_date AS "createDate",
a.update_by AS "updateBy.id",
a.update_date AS "updateDate",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
c.name AS "parent.name",
c.view_config AS "parent.viewConfig",
o.name AS "office.name",
s.theme AS "site.theme"
</sql>
<sql id="cmsCategoryDaoJoins">
LEFT JOIN cms_category c ON c.id = a.parent_id
JOIN sys_office o ON o.id = a.office_id
JOIN sys_user u ON u.id = a.create_by
JOIN cms_site s ON a.site_id = s.id
</sql>
<select id="get" resultType="Category">
SELECT
a.id AS "id",
a.parent_id AS "parent.id",
a.parent_ids AS "parentIds",
a.site_id AS "site.id",
a.office_id AS "office.id",
a.module AS "module",
a.name AS "name",
a.image AS "image",
a.href AS "href",
a.target AS "target",
a.description AS "description",
a.keywords AS "keywords",
a.sort AS "sort",
a.in_menu AS "inMenu",
a.in_menu AS "inList",
a.show_modes AS "showModes",
a.allow_comment AS "allowComment",
a.is_audit AS "isAudit",
a.custom_list_view AS "customListView",
a.custom_content_view AS "customContentView",
a.view_config AS "viewConfig",
a.create_by AS "createBy.id",
a.create_date AS "createDate",
a.update_by AS "updateBy.id",
a.update_date AS "updateDate",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
o.name AS "office.name"
FROM cms_category a
JOIN sys_office o ON o.id = a.office_id
JOIN sys_user u ON u.id = a.create_by
WHERE a.id = #{id}
</select>
<select id="find" resultType="Category">
SELECT
<include refid="cmsCategoryDaoColumns"/>
FROM cms_category a
<include refid="cmsCategoryDaoJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<select id="findList" resultType="Category">
SELECT
<include refid="cmsCategoryDaoColumns"/>
FROM cms_category a
<include refid="cmsCategoryDaoJoins"/>
<where>
a.del_flag = #{delFlag}
<if test=" site.id != null and site.id != ''">
AND a.site_id = #{site.id}
</if>
<if test="parent.id != null and parent.id != ''">
AND a.parent_id = #{parent.id}
</if>
${sqlMap.dsf}
</where>
ORDER BY a.site_id,a.sort ASC
</select>
<select id="findModule" resultType="Category">
SELECT
<include refid="cmsCategoryDaoColumns"/>
FROM cms_category a
<include refid="cmsCategoryDaoJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
<if test=" site.id != null and site.id != ''">
AND a.site_id = #{site.id}
</if>
<if test="parent.id != null and parent.id != ''">
AND a.parent_id = #{parent.id}
</if>
<if test="inMenu != null and inMenu != '' ">
AND a.in_menu = #{inMenu}
</if>
${sqlMap.dsf}
</where>
ORDER BY a.site_id,a.sort ASC
</select>
<insert id="insert">
INSERT INTO cms_category(
id,
parent_id,
parent_ids,
site_id,
office_id,
module,
name,
image,
href,
target,
description,
keywords,
sort,
in_menu,
in_list,
show_modes,
allow_comment,
is_audit,
custom_list_view,
custom_content_view,
view_config,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag
) VALUES (
#{id},
#{parent.id},
#{parentIds},
#{site.id},
#{office.id},
#{module},
#{name},
#{image},
#{href},
#{target},
#{description},
#{keywords},
#{sort},
#{inMenu},
#{inList},
#{showModes},
#{allowComment},
#{isAudit},
#{customListView},
#{customContentView},
#{viewConfig},
#{createBy.id},
#{createDate},
#{updateBy.id},
#{updateDate},
#{remarks},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_category SET
parent_id = #{parent.id},
parent_ids = #{parentIds},
site_id = #{site.id},
office_id = #{office.id},
module = #{module},
name = #{name},
image = #{image},
href = #{href},
target = #{target},
description = #{description},
keywords = #{keywords},
sort = #{sort},
in_menu = #{inMenu},
in_list = #{inList},
show_modes = #{showModes},
allow_comment = #{allowComment},
is_audit = #{isAudit},
custom_list_view = #{customListView},
custom_content_view = #{customContentView},
view_config = #{viewConfig},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="updateParentIds">
UPDATE cms_category SET
parent_id = #{parent.id},
parent_ids = #{parentIds}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_category SET
del_flag = #{DEL_FLAG_DELETE}
WHERE id = #{id} OR parent_ids LIKE
<if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
<if test="dbName == 'mssql'">'%,'+#{id}+',%'</if>
<if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
</update>
<select id="findByParentIdAndSiteId" resultType="Category">
SELECT
<include refid="cmsCategoryDaoColumns"/>
FROM cms_category a
<include refid="cmsCategoryDaoJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
<if test=" site.id != null and site.id != ''">
AND a.site_id = #{site.id}
</if>
<if test="parent.id != null and parent.id != ''">
AND a.parent_id = #{parent.id}
</if>
</where>
order by a.site_id, a.sort
</select>
<select id="findByParentIdsLike" resultType="Category">
SELECT
<include refid="cmsCategoryDaoColumns"/>
FROM cms_category a
<include refid="cmsCategoryDaoJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
AND a.parent_id LIKE
<if test="dbName == 'oracle'">'%'||#{id}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{id}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{id}, '%')</if>
</where>
order by a.site_id, a.sort
</select>
<select id="findStats" resultType="java.util.Map" parameterType="java.util.Map">
select max(c.id) as categoryId,
max(c.name) as categoryName,
max(cp.id) as categoryParentId,
max(cp.name) as categoryParentName,
count(*) as cnt,
sum(a.hits) as hits,
max(a.updateDate) as updateDate,
max(o.id) as officeId,
max(o.name) as officeName,
from cms_article a
JOIN cms_category c ON c.id = a.category_id
JOIN cms_category cp ON c.parent_id = cp.id
JOIN sys_office o ON o.id = c.office_id
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
AND a.category_id
AND c.site_id =
AND c.id = :id or c.parent_ids LIKE
<if test="dbName == 'oracle'">'%'||#{parentIds}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{parentIds}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{parentIds}, '%')</if>
group by cp.sort, cp.id, c.sort, c.id
order by cp.sort, cp.id, c.sort, c.id
</where>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.CommentDao">
<sql id="cmsCommentDaoColumns">
a.id AS "id",
a.category_id AS "category.id",
a.content_id AS "contentId",
a.title AS "title",
a.content AS "content",
a.name AS "name",
a.ip AS "ip",
a.create_date AS "createDate",
a.audit_user_id AS "auditUser.id",
a.audit_date AS "auditDate",
a.del_flag AS "delFlag"
</sql>
<sql id="cmsCommentDaoJoins">
</sql>
<select id="get" resultType="Comment">
SELECT
<include refid="cmsCommentDaoColumns"/>
FROM cms_comment a
<include refid="cmsCommentDaoJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="Comment">
SELECT
<include refid="cmsCommentDaoColumns"/>
FROM cms_comment a
<include refid="cmsCommentDaoJoins"/>
<where>
a.del_flag = #{delFlag}
<if test="title != null and title != ''">
AND a.title LIKE
<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
</if>
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.create_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="Comment">
SELECT
<include refid="cmsCommentDaoColumns"/>
FROM cms_comment a
<include refid="cmsCommentDaoJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.create_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO cms_comment(
id,
category_id,
content_id,
title,
content,
name,
ip,
create_date,
audit_user_id,
audit_date,
del_flag
) VALUES (
#{id},
#{category.id},
#{contentId},
#{title},
#{content},
#{name},
#{ip},
#{createDate},
#{auditUser.id},
#{auditDate},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_comment SET
category_id = #{category.id},
content_id = #{contentId},
title = #{title},
content = #{content},
name = #{name},
ip = #{ip},
create_date = #{createDate},
audit_user_id = #{auditUser.id},
audit_date = #{auditDate},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_comment SET
del_flag = #{DEL_FLAG_DELETE}
WHERE id = #{id}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.GuestbookDao">
<sql id="cmsGuestbookColumns">
a.id AS "id",
a.type AS "type",
a.content AS "content",
a.name AS "name",
a.email AS "email",
a.phone AS "phone",
a.workunit AS "workunit",
a.ip AS "ip",
a.create_date AS "createDate",
a.re_user_id AS "reUser.id",
a.re_date AS "reDate",
a.re_content AS "reContent",
a.del_flag AS "delFlag",
u.name AS "reUser.name"
</sql>
<sql id="cmsGuestbookJoins">
LEFT JOIN sys_user u ON u.id = a.re_user_id
</sql>
<select id="get" resultType="Guestbook">
SELECT
<include refid="cmsGuestbookColumns"/>
FROM cms_guestbook a
<include refid="cmsGuestbookJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="Guestbook">
SELECT
<include refid="cmsGuestbookColumns"/>
FROM cms_guestbook a
<include refid="cmsGuestbookJoins"/>
<where>
a.del_flag = #{delFlag}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.create_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="Guestbook">
SELECT
<include refid="cmsGuestbookColumns"/>
FROM cms_guestbook a
<include refid="cmsGuestbookJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.create_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO cms_guestbook(
id,
type,
content,
name,
email,
phone,
workunit,
ip,
create_date,
re_user_id,
re_date,
re_content,
del_flag
) VALUES (
#{id},
#{type},
#{content},
#{name},
#{email},
#{phone},
#{workunit},
#{ip},
#{createDate},
#{reUser.id},
#{reDate},
#{reContent},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_guestbook SET
type = #{type},
content = #{content},
name = #{name},
email = #{email},
phone = #{phone},
workunit = #{workunit},
ip = #{ip},
create_date = #{createDate},
re_user_id = #{reUser.id},
re_date = #{reDate},
re_content = #{reContent},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_guestbook SET
del_flag = #{DEL_FLAG_DELETE}
WHERE id = #{id}
</update>
<select id="findByIdIn" resultType="Guestbook">
SELECT
<include refid="cmsGuestbookColumns"/>
from cms_guestbook a where
<where>
id in ();
</where>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.LinkDao">
<sql id="cmsLinkColumns">
a.id AS "id",
a.category_id AS "category.id",
a.title AS "title",
a.color AS "color",
a.image AS "image",
a.href AS "href",
a.weight AS "weight",
a.weight_date AS "weightDate",
a.create_by AS "createBy.id",
a.create_date AS "createDate",
a.update_by AS "updateBy.id",
a.update_date AS "updateDate",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
c.name AS "category.name",
u.name AS "user.name"
</sql>
<sql id="cmsLinkJoins">
JOIN cms_category c ON c.id = a.category_id
JOIN sys_user u ON u.id = a.create_by
</sql>
<select id="get" resultType="Link">
SELECT
<include refid="cmsLinkColumns"/>
FROM cms_link a
<include refid="cmsLinkJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="Link">
SELECT
<include refid="cmsLinkColumns"/>
FROM cms_link a
<include refid="cmsLinkJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
<if test="title != null and title != ''">
AND a.title LIKE
<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
</if>
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="Link">
SELECT
<include refid="cmsLinkColumns"/>
FROM cms_link a
<include refid="cmsLinkJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO cms_link(
id,
category_id,
title,
color,
image,
href,
weight,
weight_date,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag
) VALUES (
#{id},
#{category.id},
#{title},
#{color},
#{image},
#{href},
#{weight},
#{weightDate},
#{createBy.id},
#{createDate},
#{updateBy.id},
#{updateDate},
#{remarks},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_link SET
category_id = #{category.id},
title = #{title},
color = #{color},
image = #{image},
href = #{href},
weight = #{weight},
weight_date = #{weightDate},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_link SET
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<select id="findByIdIn" resultType="Link">
SELECT
<include refid="cmsLinkColumns"/>
from cms_link a where
<where>
id in (${id});
</where>
</select>
<update id="updateExpiredWeight">
update cms_link SET
weight=0
WHERE weight &gt; 0 AND weight_date &lt;
<if test="dbName == 'oracle'">sysdate</if>
<if test="dbName == 'mssql'">FLOOR(CONVERT(FLOAT,GETDATE()))</if>
<if test="dbName == 'mysql'">CURDATE()</if>
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeespring.modules.cms.dao.SiteDao">
<sql id="cmsSiteColumns">
a.id AS "id",
a.name AS "name",
a.title AS "title",
a.logo AS "logo",
a.domain AS "domain",
a.description AS "description",
a.keywords AS "keywords",
a.theme AS "theme",
a.copyright AS "copyright",
a.custom_index_view AS "customIndexView",
a.create_by AS "createBy.id",
a.create_date AS "createDate",
a.update_by AS "updateBy.id",
a.update_date AS "updateDate",
a.remarks AS "remarks",
a.del_flag AS "delFlag"
</sql>
<sql id="cmsSiteJoins">
</sql>
<select id="get" resultType="Site">
SELECT
<include refid="cmsSiteColumns"/>
FROM cms_site a
<include refid="cmsSiteJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="Site">
SELECT
<include refid="cmsSiteColumns"/>
FROM cms_site a
<include refid="cmsSiteJoins"/>
<where>
a.del_flag = #{delFlag}
<if test="name != null and name != ''">
AND a.name LIKE
<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
<if test="dbName == 'mysql'">CONCAT('%', #{name}, '%')</if>
</if>
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="Site">
SELECT
<include refid="cmsSiteColumns"/>
FROM cms_site a
<include refid="cmsSiteJoins"/>
<where>
a.del_flag = #{DEL_FLAG_NORMAL}
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO cms_site(
id,
name,
title,
logo,
domain,
description,
keywords,
theme,
copyright,
custom_index_view,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag
) VALUES (
#{id},
#{name},
#{title},
#{logo},
null,
#{description},
#{keywords},
#{theme},
#{copyright},
#{customIndexView},
#{createBy.id},
#{createDate},
#{updateBy.id},
#{updateDate},
#{remarks},
#{delFlag}
)
</insert>
<update id="update">
UPDATE cms_site SET
name = #{name},
title = #{title},
logo = #{logo},
domain = #{domain},
description = #{description},
keywords = #{keywords},
theme = #{theme},
copyright = #{copyright},
custom_index_view = #{customIndexView},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks},
del_flag = #{delFlag}
WHERE id = #{id}
</update>
<update id="delete">
UPDATE cms_site SET
del_flag = #{delFlag}
WHERE id = #{id}
</update>
</mapper>
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
<title>文章管理</title>
<meta name="decorator" content="default"/>
<%@ include file="/WEB-INF/views/include/head.jsp"%>
<script type="text/javascript">
$(document).ready(function() {
if($("#link").val()){
$('#linkBody').show();
$('#url').attr("checked", true);
}
$("#title").focus();
$("#inputForm").validate({
submitHandler: function(form){
if ($("#categoryId").val()==""){
$("#categoryName").focus();
top.$.jBox.tip('请选择归属栏目','warning');
}else if (CKEDITOR.instances.content.getData()=="" && $("#link").val().trim()==""){
top.$.jBox.tip('请填写正文','warning');
}else{
loading('正在提交,请稍等...');
form.submit();
}
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
});
});
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li><a href="${ctx}/cms/article/?category.id=${article.category.id}">文章列表</a></li>
<li class="active"><a href="<c:url value='${fns:getAdminPath()}/cms/article/form?id=${article.id}&category.id=${article.category.id}'><c:param name='category.name' value='${article.category.name}'/></c:url>">文章<shiro:hasPermission name="cms:article:edit">${not empty article.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="cms:article:edit">查看</shiro:lacksPermission></a></li>
</ul><br/>
<form:form id="inputForm" modelAttribute="article" action="${ctx}/cms/article/save" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">归属栏目:</label>
<div class="controls">
<sys:treeselect id="category" name="category.id" value="${article.category.id}" labelName="category.name" labelValue="${article.category.name}"
title="栏目" url="/cms/category/treeData" module="article" selectScopeModule="true" notAllowSelectRoot="false" notAllowSelectParent="true" cssClass="required"/>&nbsp;
<span>
<input id="url" type="checkbox" onclick="if(this.checked){$('#linkBody').show()}else{$('#linkBody').hide()}$('#link').val()"><label for="url">外部链接</label>
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">标题:</label>
<div class="controls">
<form:input path="title" htmlEscape="false" maxlength="200" class="input-xxlarge measure-input required"/>
&nbsp;<label>颜色:</label>
<form:select path="color" class="input-mini">
<form:option value="" label="默认"/>
<form:options items="${fns:getDictList('color')}" itemLabel="label" itemValue="value" htmlEscape="false" />
</form:select>
</div>
</div>
<div id="linkBody" class="control-group" style="display:none">
<label class="control-label">外部链接:</label>
<div class="controls">
<form:input path="link" htmlEscape="false" maxlength="200" class="input-xlarge"/>
<span class="help-inline">绝对或相对地址。</span>
</div>
</div>
<div class="control-group">
<label class="control-label">关键字:</label>
<div class="controls">
<form:input path="keywords" htmlEscape="false" maxlength="200" class="input-xlarge"/>
<span class="help-inline">多个关键字,用空格分隔。</span>
</div>
</div>
<div class="control-group">
<label class="control-label">权重:</label>
<div class="controls">
<form:input path="weight" htmlEscape="false" maxlength="200" class="input-mini required digits"/>&nbsp;
<span>
<input id="weightTop" type="checkbox" onclick="$('#weight').val(this.checked?'999':'0')"><label for="weightTop">置顶</label>
</span>
&nbsp;过期时间:
<input id="weightDate" name="weightDate" type="text" readonly="readonly" maxlength="20" class="input-small Wdate"
value="<fmt:formatDate value="${article.weightDate}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/>
<span class="help-inline">数值越大排序越靠前,过期时间可为空,过期后取消置顶。</span>
</div>
</div>
<div class="control-group">
<label class="control-label">摘要:</label>
<div class="controls">
<form:textarea path="description" htmlEscape="false" rows="4" maxlength="200" class="input-xxlarge"/>
</div>
</div>
<div class="control-group">
<label class="control-label">缩略图:</label>
<div class="controls">
<input type="hidden" id="image" name="image" value="${article.imageSrc}" />
<sys:ckfinder input="image" type="thumb" uploadPath="/cms/article" selectMultiple="false"/>
</div>
</div>
<div class="control-group">
<label class="control-label">正文:</label>
<div class="controls">
<form:textarea id="content" htmlEscape="true" path="articleData.content" rows="4" maxlength="200" class="input-xxlarge"/>
<sys:ckeditor replace="content" uploadPath="/cms/article" />
</div>
</div>
<div class="control-group">
<label class="control-label">来源:</label>
<div class="controls">
<form:input path="articleData.copyfrom" htmlEscape="false" maxlength="200" class="input-xlarge"/>
</div>
</div>
<div class="control-group">
<label class="control-label">相关文章:</label>
<div class="controls">
<form:hidden id="articleDataRelation" path="articleData.relation" htmlEscape="false" maxlength="200" class="input-xlarge"/>
<ol id="articleSelectList"></ol>
<a id="relationButton" href="javascript:" class="btn">添加相关</a>
<script type="text/javascript">
var articleSelect = [];
function articleSelectAddOrDel(id,title){
var isExtents = false, index = 0;
for (var i=0; i<articleSelect.length; i++){
if (articleSelect[i][0]==id){
isExtents = true;
index = i;
}
}
if(isExtents){
articleSelect.splice(index,1);
}else{
articleSelect.push([id,title]);
}
articleSelectRefresh();
}
function articleSelectRefresh(){
$("#articleDataRelation").val("");
$("#articleSelectList").children().remove();
for (var i=0; i<articleSelect.length; i++){
$("#articleSelectList").append("<li>"+articleSelect[i][1]+"&nbsp;&nbsp;<a href=\"javascript:\" onclick=\"articleSelectAddOrDel('"+articleSelect[i][0]+"','"+articleSelect[i][1]+"');\">×</a></li>");
$("#articleDataRelation").val($("#articleDataRelation").val()+articleSelect[i][0]+",");
}
}
$.getJSON("${ctx}/cms/article/findByIds",{ids:$("#articleDataRelation").val()},function(data){
for (var i=0; i<data.length; i++){
articleSelect.push([data[i][1],data[i][2]]);
}
articleSelectRefresh();
});
$("#relationButton").click(function(){
top.$.jBox.open("iframe:${ctx}/cms/article/selectList?pageSize=8", "添加相关",$(top.document).width()-220,$(top.document).height()-180,{
buttons:{"确定":true}, loaded:function(h){
$(".jbox-content", top.document).css("overflow-y","hidden");
}
});
});
</script>
</div>
</div>
<div class="control-group">
<label class="control-label">是否允许评论:</label>
<div class="controls">
<form:radiobuttons path="articleData.allowComment" items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
</div>
</div>
<div class="control-group">
<label class="control-label">推荐位:</label>
<div class="controls">
<form:checkboxes path="posidList" items="${fns:getDictList('cms_posid')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
</div>
</div>
<div class="control-group">
<label class="control-label">发布时间:</label>
<div class="controls">
<input id="createDate" name="createDate" type="text" readonly="readonly" maxlength="20" class="input-medium Wdate"
value="<fmt:formatDate value="${article.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:false});"/>
</div>
</div>
<shiro:hasPermission name="cms:article:audit">
<div class="control-group">
<label class="control-label">发布状态:</label>
<div class="controls">
<form:radiobuttons path="delFlag" items="${fns:getDictList('cms_del_flag')}" itemLabel="label" itemValue="value" htmlEscape="false" class="required"/>
<span class="help-inline"></span>
</div>
</div>
</shiro:hasPermission>
<shiro:hasPermission name="cms:category:edit">
<div class="control-group">
<label class="control-label">自定义内容视图:</label>
<div class="controls">
<form:select path="customContentView" class="input-medium">
<form:option value="" label="默认视图"/>
<form:options items="${contentViewList}" htmlEscape="false"/>
</form:select>
<span class="help-inline">自定义内容视图名称必须以"${article_DEFAULT_TEMPLATE}"开始</span>
</div>
</div>
<div class="control-group">
<label class="control-label">自定义视图参数:</label>
<div class="controls">
<form:input path="viewConfig" htmlEscape="true"/>
<span class="help-inline">视图参数例如: {count:2, title_show:"yes"}</span>
</div>
</div>
</shiro:hasPermission>
<c:if test="${not empty article.id}">
<div class="control-group">
<label class="control-label">查看评论:</label>
<div class="controls">
<input id="btnComment" class="btn" type="button" value="查看评论" onclick="viewComment('${ctx}/cms/comment/?module=article&contentId=${article.id}&status=0')"/>
<script type="text/javascript">
function viewComment(href){
top.$.jBox.open('iframe:'+href,'查看评论',$(top.document).width()-220,$(top.document).height()-180,{
buttons:{"关闭":true},
loaded:function(h){
$(".jbox-content", top.document).css("overflow-y","hidden");
$(".nav,.form-actions,[class=btn]", h.find("iframe").contents()).hide();
$("body", h.find("iframe").contents()).css("margin","10px");
}
});
return false;
}
</script>
</div>
</div>
</c:if>
<div class="form-actions">
<shiro:hasPermission name="cms:article:edit"><input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;</shiro:hasPermission>
<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
</div>
</form:form>
</body>
</html>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment