package com.tzy.web.controller.system; import java.util.List; import com.tzy.system.dto.SysNoticeDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; 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 com.tzy.common.annotation.Log; import com.tzy.common.core.controller.BaseController; import com.tzy.common.core.domain.AjaxResult; import com.tzy.common.core.page.TableDataInfo; import com.tzy.common.enums.BusinessType; import com.tzy.common.utils.ShiroUtils; import com.tzy.system.domain.SysNotice; import com.tzy.system.service.ISysNoticeService; /** * 公告 信息操作处理 * * @author zheng */ @Api("系统公告") @Controller @RequestMapping("/system/notice") public class SysNoticeController extends BaseController { private String prefix = "system/notice"; @Autowired private ISysNoticeService noticeService; @RequiresPermissions("system:notice:view") @GetMapping() public String notice() { return prefix + "/notice"; } /** * 查询公告列表 */ @RequiresPermissions("system:notice:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(SysNotice notice) { startPage(); List list = noticeService.selectNoticeList(notice); return getDataTable(list); } /** * 查询公告列表 */ @ApiOperation("查询公告列表") @ApiResponses({ @ApiResponse(code = 200, message = "公告详情", response = SysNoticeDto.class) }) @PostMapping("/sysNotices") @ResponseBody public TableDataInfo sysNotices(@RequestBody SysNotice 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(SysNotice notice) { notice.setCreateBy(ShiroUtils.getLoginName()); return toAjax(noticeService.insertNotice(notice)); } /** * 新增保存公告 */ @ApiOperation("新增保存公告") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping("/addNotice") @ResponseBody public AjaxResult addNotice(@RequestBody SysNotice notice) { notice.setCreateBy(ShiroUtils.getLoginName()); 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"; } /** * 公告详情 */ @ApiOperation("公告详情") @ApiResponses({ @ApiResponse(code = 200, message = "公告详情", response = SysNoticeDto.class) }) @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/detail/{noticeId}") @ResponseBody public AjaxResult detail(@PathVariable("noticeId") Long noticeId) { SysNoticeDto sysNotice = noticeService.selectNoticeById(noticeId); if(null != sysNotice){ return AjaxResult.success(sysNotice); }else{ return toAjax(0); } } /** * 修改保存公告 */ @RequiresPermissions("system:notice:edit") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(SysNotice notice) { notice.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(noticeService.updateNotice(notice)); } /** * 修改保存公告 */ @ApiOperation("修改保存公告") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/editNotice") @ResponseBody public AjaxResult editNotice(@RequestBody SysNotice notice) { notice.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(noticeService.updateNotice(notice)); } /** * 删除公告 */ @RequiresPermissions("system:notice:remove") @Log(title = "通知公告", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(noticeService.deleteNoticeByIds(ids)); } /** * 删除公告 */ @ApiOperation("删除公告") @Log(title = "通知公告", businessType = BusinessType.DELETE) @PostMapping("/del") @ResponseBody public AjaxResult del(@RequestBody String ids) { return toAjax(noticeService.deleteNoticeByIds(ids)); } }