package com.kingschan.blog.controller.admin; import javax.servlet.http.HttpServletRequest; import org.hibernate.validator.constraints.NotEmpty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; 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.ModelAndView; import com.kingschan.blog.model.vo.ArticleVo; import com.kingschan.blog.po.WebSite; import com.kingschan.blog.services.ArticleService; import com.kingschan.blog.services.LableService; import com.kingschan.blog.util.BlogUtil; @Controller @RequestMapping("/admin") public class ArticleController { private Logger log = LoggerFactory.getLogger(ArticleController.class); @Autowired private ArticleService article_serv; @Autowired private LableService lable_serv; /** * 文章列表 * @param page * @return */ @RequestMapping("/article_list.do") public ModelAndView articleList(Integer page,String title,String category,Integer limit){ ModelAndView mav = new ModelAndView("/admin/article_list"); mav.addObject("page", page); mav.addObject("title", title); mav.addObject("categoryName", category); mav.addObject("limit", limit); return mav; } /** * 评论管理 * @param page * @param title * @param articleId * @param keyword * @return */ @RequestMapping("/article_comments.do") public ModelAndView articleCommentList(Integer page,String title,String articleId,String keyword,Integer limit){ ModelAndView mav = new ModelAndView("/admin/article_comment_list"); mav.addObject("page", page); mav.addObject("title", title); mav.addObject("limit", limit); return mav; } @ResponseBody @RequestMapping("/delArticleComments.do") public String delArticleComments(@RequestParam("ids[]") String[] ids){ int affected=0; String msg=""; try { affected=article_serv.delArticleComments(ids); msg=String.format("成功删除%s条记录!", affected); } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 编辑文章 * @param req * @param id * @return */ @RequestMapping("/edit_article.do") public ModelAndView editArticle(HttpServletRequest req,String id){ BlogUtil bu=new BlogUtil(req); ModelAndView mav =null; if (null!=id&&id.matches("\\w{32}")) { try { WebSite ws =bu.getCurrentAdminWebSite(); ArticleVo vo = article_serv.getArticle(id, false, ws.getId()); mav=new ModelAndView(bu.getArticleEditorTemplate(vo.getArticleEditor())); mav.addObject("article",vo); } catch (Exception e) { e.printStackTrace(); } }else{ mav = new ModelAndView(bu.getArticleEditorTemplate(bu.getCurrentAdminWebSite().getWebsiteEditor())); ArticleVo vo = new ArticleVo(); vo.setArticleAllowcomments(true); mav.addObject("article",vo); } return mav; } /** * 保存文章 * @param avo * @return */ @RequestMapping("/save_article.do") public String save(@ModelAttribute("avo") ArticleVo avo,String type,HttpServletRequest req){ String id=null; BlogUtil userutil=new BlogUtil(req); try { id= article_serv.saveArticle(avo,type,userutil.getCurrentUser().toUser(),userutil.getCurrentAdminWebSite()); } catch (Exception e) { e.printStackTrace(); } return String.format("redirect:edit_article.do?id=%s", id); } /** * 删除文章标签 * @param id * @return */ @ResponseBody @RequestMapping("/del_article_lable.do") public String delArticleLable(@RequestParam String id){ String msg="success"; try { lable_serv.delArticleLable(id); } catch (Exception e) { msg=e.getMessage(); e.printStackTrace(); } return msg; } @ResponseBody @RequestMapping("/del_article.do") public String delArticles(@RequestParam("ids[]") String[] ids){ int affected=0; String msg=""; try { affected=article_serv.delArticles(ids); msg=String.format("成功删除%s条记录!", affected); } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * * @param ids * @param category * @return */ @ResponseBody @RequestMapping("/update_articletype.do") public String updateArticlesType(@RequestParam("ids[]") String[] ids,String category,HttpServletRequest req){ String msg="success"; try { BlogUtil bu = new BlogUtil(req); article_serv.updateArticlesType(ids, category, bu.getCurrentAdminWebSite().getId()); } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 构建索引 * @return */ @ResponseBody @RequestMapping("/build_index.do") public String buildIndex(){ String msg=""; try { article_serv.buildIndex(); msg="success"; } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 文章置顶 * @param ids 文章id * @param req * @return */ @ResponseBody @RequestMapping("/fixedTop.do") public String fixedTop(@RequestParam("ids[]") String[] ids,HttpServletRequest req){ String msg=""; try { article_serv.fixedTop(ids, new BlogUtil(req).getCurrentAdminWebSite().getId()); msg="success"; } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 取消置顶 * @param ids * @param req * @return */ @ResponseBody @RequestMapping("/cancleFixedTop.do") public String cancleFixedTop(@RequestParam("ids[]") String[] ids,HttpServletRequest req){ String msg=""; try { article_serv.cancleFixed(ids, new BlogUtil(req).getCurrentAdminWebSite().getId()); msg="success"; } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 设置封面 * @param ids * @param req * @return */ @ResponseBody @RequestMapping("/setCover.do") public String setCover(@RequestParam("ids[]") String[] ids,String resKey,HttpServletRequest req){ String msg=""; try { if (null==resKey) { throw new Exception("资源key为空,操作失败!"); } article_serv.setCover(ids, new BlogUtil(req).getCurrentAdminWebSite().getId(),resKey); msg="success"; } catch (Exception e) { e.printStackTrace(); msg=e.getMessage(); } return msg; } /** * 外键图片资源转换 * @param id * @param req * @return */ @ResponseBody @RequestMapping("/outsideImgResTransformation.do") public String outsideImgResTransformation(String id,HttpServletRequest req){ String msg="success"; try { article_serv.downloadArticleImg(id,req); }catch (Exception ex){ log.error("outsideImgResTransformation",ex); ex.printStackTrace(); msg="error"; } return msg; } }