package com.ruoyi.project.system.notice.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSONObject; import com.ruoyi.framework.web.service.JpushService; 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.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; 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.system.notice.domain.Notice; import com.ruoyi.project.system.notice.service.INoticeService; /** * 公告 信息操作处理 * * @author ruoyi */ @Controller @RequestMapping("/system/notice") public class NoticeController extends BaseController { private String prefix = "system/notice"; @Autowired private INoticeService noticeService; @Autowired JpushService jpushService; @RequiresPermissions("system:notice:view") @GetMapping() public String notice() { return prefix + "/notice"; } /** * 查询公告列表 */ @RequiresPermissions("system:notice:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(Notice notice) { startPage(); List list = noticeService.selectNoticeList(notice); return getDataTable(list); } /** * 新增公告 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存公告 */ @RequiresPermissions("system:notice:add") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(Notice notice) { return toAjax(noticeService.insertNotice(notice)); } /** * 修改公告 */ @GetMapping("/edit/{noticeId}") public String edit(@PathVariable("noticeId") Long noticeId, ModelMap mmap) { mmap.put("notice", noticeService.selectNoticeById(noticeId)); return prefix + "/edit"; } /** * 修改保存公告 */ @RequiresPermissions("system:notice:edit") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Notice notice) { return toAjax(noticeService.updateNotice(notice)); } //发布公告 @PostMapping("/publish") @ResponseBody public AjaxResult publish(Notice notice) { notice.setPublishStatus("已发布"); int i = noticeService.updateNotice(notice); //大文本通知栏样式 Notice noticeDatabase = noticeService.selectNoticeById(notice.getNoticeId()); Map extrasMap = new HashMap(); extrasMap.put("message", "这是一个公告通知"); extrasMap.put("methodType", "goToNotice"); extrasMap.put("notice", JSONObject.toJSONString(noticeDatabase)); jpushService.pushAll(noticeDatabase.getNoticeTitle(), noticeDatabase.getNoticeContent(), 1, noticeDatabase.getNoticeContent(), extrasMap); return toAjax(i); } /** * 删除公告 */ @RequiresPermissions("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(noticeService.deleteNoticeByIds(ids)); } }