package com.ruoyi.project.tr.article.controller; import com.alibaba.fastjson.JSON; import com.ruoyi.common.constant.DualControlConstants; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.project.enumerate.DcAttachmentTypeEnum; import com.ruoyi.project.system.attachment.domain.Attachment; import com.ruoyi.project.system.attachment.service.IAttachmentService; import com.ruoyi.project.system.user.domain.User; import com.ruoyi.project.tr.article.domain.Article; import com.ruoyi.project.tr.article.service.IArticleService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; /** * 公司信息(文章)Controller * * @author wm * @date 2020-05-05 */ @Controller @RequestMapping("/tr/article") public class ArticleController extends BaseController { private String prefix = "tr/article"; @Autowired private IArticleService articleService; @Autowired private IAttachmentService attachmentService; @RequiresPermissions("tr:article:view") @GetMapping() public String article() { return prefix + "/article"; } @RequiresPermissions("tr:article:view") @GetMapping("/{companyId}") public String articleByCompanyId(@PathVariable("companyId") Long companyId, ModelMap map) { map.put("companyId", companyId); return prefix + "/articleByCompanyId"; } /** * 查询公司信息(文章)列表 */ @RequiresPermissions("tr:article:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(Article article) { startPage(); //用户查询文章列表,应根据所属公司查询 if (article.getCompanyId() == null){ User sysUser = getSysUser(); article.setCompanyId(sysUser.getCompanyId()); } List
list = articleService.selectArticleList(article); return getDataTable(list); } /** * 导出公司信息(文章)列表 */ @RequiresPermissions("tr:article:export") @Log(title = "公司信息(文章)", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(Article article) { List
list = articleService.selectArticleList(article); ExcelUtil
util = new ExcelUtil
(Article.class); return util.exportExcel(list, "article"); } /** * 新增公司信息(文章) */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存公司信息(文章) */ @RequiresPermissions("tr:article:add") @Log(title = "公司信息(文章)", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(Article article) { User sysUser = getSysUser(); //获取当前用户 //System.out.println(sysUser); String userName = sysUser.getUserName(); //获取用户名 Long companyId = sysUser.getCompanyId(); //获取用户所属公司ID Date nowDate = DateUtils.getNowDate(); article.setCreateBy(userName); article.setCompanyId(companyId); article.setCreateTime(nowDate); int addNum = articleService.insertArticle(article); //处理新增的附件 String ownedFile = article.getOwnedFile(); if(StringUtils.isNotEmpty(ownedFile)&&addNum>0) { List attachmentList = JSON.parseArray(ownedFile, Attachment.class); if (attachmentList.size() > 0) { for (Attachment attachment : attachmentList) { attachment.setFileJoinId(article.getArticleId()); attachment.setAttachmentType(DcAttachmentTypeEnum.Article.getType()); attachment.setCompanyId(sysUser.getCompanyId()); attachment.setCreateBy(sysUser.getUserName()); attachment.setCreateUserId(sysUser.getUserId()); attachment.setCreateTime(new Date()); attachmentService.insertAttachment(attachment); } } } return toAjax(addNum); } /** * 修改公司信息(文章) */ @GetMapping("/edit/{articleId}") public String edit(@PathVariable("articleId") Long articleId, ModelMap mmap) { Article article = articleService.selectArticleById(articleId); mmap.put("article", article); Attachment attachment = new Attachment(); attachment.setFileJoinId(articleId); attachment.setAttachmentType(DcAttachmentTypeEnum.Article.getType()); List attachmentList = attachmentService.selectAttachmentList(attachment); mmap.put("fileList",attachmentList); mmap.put("serviceDomainName", DualControlConstants.SERVICE_DOMAIN_NAME); return prefix + "/edit"; } /** * 预览公司信息(文章) */ @RequiresPermissions("tr:article:preview") @GetMapping("/preview/{articleId}") public String preview(@PathVariable("articleId") Long articleId, ModelMap mmap) { Article article = articleService.selectArticleById(articleId); mmap.put("article", article); Attachment attachment = new Attachment(); attachment.setFileJoinId(articleId); attachment.setAttachmentType(DcAttachmentTypeEnum.Article.getType()); List attachmentList = attachmentService.selectAttachmentList(attachment); mmap.put("fileList",attachmentList); mmap.put("serviceDomainName", DualControlConstants.SERVICE_DOMAIN_NAME); return prefix + "/preview"; } /** * 修改保存公司信息(文章) */ @RequiresPermissions("tr:article:edit") @Log(title = "公司信息(文章)", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Article article) { //查询更新操作人 User sysUser = getSysUser(); article.setUpdateBy(sysUser.getUserName()); article.setUpdateTime(DateUtils.getNowDate()); int updateNum = articleService.updateArticle(article); //处理新增的附件 String ownedFile = article.getOwnedFile(); if(StringUtils.isNotEmpty(ownedFile)&&updateNum>0) { List attachmentList = JSON.parseArray(ownedFile, Attachment.class); if (attachmentList.size() > 0) { for (Attachment attachment : attachmentList) { attachment.setFileJoinId(article.getArticleId()); attachment.setAttachmentType(DcAttachmentTypeEnum.Article.getType()); attachment.setCompanyId(sysUser.getCompanyId()); attachment.setCreateBy(sysUser.getUserName()); attachment.setCreateUserId(sysUser.getUserId()); attachment.setCreateTime(new Date()); attachmentService.insertAttachment(attachment); } } } return toAjax(updateNum); } /** * 删除公司信息(文章) */ @RequiresPermissions("tr:article:remove") @Log(title = "公司信息(文章)", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(articleService.deleteArticleByIds(ids)); } }