package com.sxpcwlkj.system.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import com.sxpcwlkj.common.annotation.MssSafety; import com.sxpcwlkj.common.code.controller.BaseController; import com.sxpcwlkj.common.code.entity.PrintObject; import com.sxpcwlkj.common.utils.MapstructUtil; import com.sxpcwlkj.common.utils.R; import com.sxpcwlkj.datasource.entity.page.TableDataInfo; import com.sxpcwlkj.framework.config.ValidatedGroupConfig; import com.sxpcwlkj.framework.utils.ExcelUtil; import com.sxpcwlkj.system.entity.bo.SysNoticeBo; import com.sxpcwlkj.system.entity.export.SysNoticeExport; import com.sxpcwlkj.system.entity.vo.SysNoticeVo; import com.sxpcwlkj.system.service.SysNoticeService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; import java.util.Set; /** * 系统公告 * @module 系统管理模块 * @author mmsAdmin * @Doc MMS文档 */ @Tag(name = "系统管理模块-系统公告",description = "系统管理模块-系统公告") @Slf4j @Validated @RequiredArgsConstructor @RestController @RequestMapping("system/notice") public class SysNoticeController extends BaseController{ private final SysNoticeService baseService; /** * 分页列表 * @param bo 查询条件 * @return 分页对象 */ @SaCheckPermission("system:notice:list") @PostMapping("/list") public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) SysNoticeBo bo){ return baseService.selectListVoPage(bo, bo.getPageQuery()); } /** * 根据id查询 * @param id ID * @return 对象 */ @SaCheckPermission("system:notice:query") @GetMapping("/{id}") public R queryById(@PathVariable String id) { return success(baseService.selectVoById(id)); } /** * 修改 * @param bo 对象 * @return true:成功 false:失败 */ @SaCheckPermission("system:notice:edit") @PutMapping public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) SysNoticeBo bo) { return success(baseService.updateById(bo)); } /** * 新增 * @param bo 对象 * @return true:成功 false:失败 */ @SaCheckPermission("system:notice:insert") @PostMapping public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) SysNoticeBo bo) { return success(baseService.insert(bo)); } /** * 删除 * @param ids ID * @return true:成功 false:失败 */ @SaCheckPermission("system:notice:delete") @DeleteMapping("/{ids}") public R delete(@PathVariable String ids) { return success(baseService.deleteById(ids)); } /** * 模版下载 */ @SaCheckPermission("system:notice:import") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) throws IOException { ExcelUtil.download(response, SysNoticeExport.class, "系统公告"); } /** * 导入系统用户 * @param file 模版文件 */ @MssSafety @Transactional @SaCheckPermission("system:notice:import") @PostMapping("/import") public R imports(@RequestParam("file") MultipartFile file) throws Exception { Set list= ExcelUtil.imports(file, SysNoticeExport.class); Boolean state= baseService.imports(list); return R.ok(state,state?"数据导入成功!":"数据导入失败!"); } /** * 导出系统用户 */ @MssSafety @Transactional @SaCheckPermission("system:notice:export") @PostMapping("/export") public void export(@RequestBody @Validated(ValidatedGroupConfig.query.class) SysNoticeBo bo,HttpServletResponse response) throws IOException { List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows(); List data= MapstructUtil.convert(list,SysNoticeExport.class); ExcelUtil.export(response, SysNoticeExport.class, "系统公告",data); } /** * 打印系统用户 */ @MssSafety @Transactional @SaCheckPermission("system:notice:print") @PostMapping("/print") public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) SysNoticeBo bo) throws Exception { List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows(); List data= MapstructUtil.convert(list,SysNoticeExport.class); PrintObject printObject= new PrintObject() .setTitle("系统公告") .setData(data); return R.response(Boolean.TRUE,printObject); } }