package com.ruoyi.web.controller.system;
|
|
import java.util.List;
|
import javax.servlet.http.HttpServletResponse;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.system.domain.SysMessage;
|
import com.ruoyi.system.service.ISysMessageService;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
/**
|
* 系统消息Controller
|
*
|
* @author ruoyi
|
* @date 2025-10-25
|
*/
|
@RestController
|
@RequestMapping("/system/message")
|
public class SysMessageController extends BaseController {
|
|
@Autowired
|
private ISysMessageService sysMessageService;
|
|
/**
|
* 查询系统消息列表
|
*/
|
@GetMapping("/list")
|
public TableDataInfo list(SysMessage sysMessage) {
|
startPage();
|
List<SysMessage> list = sysMessageService.selectSysMessageList(sysMessage);
|
return getDataTable(list);
|
}
|
|
/**
|
* 查询当前用户的消息列表
|
*/
|
@GetMapping("/my")
|
public AjaxResult myMessages() {
|
Long userId = SecurityUtils.getUserId();
|
List<SysMessage> list = sysMessageService.selectSysMessageListByReceiverId(userId);
|
return AjaxResult.success(list);
|
}
|
|
/**
|
* 查询当前用户未读消息数量
|
*/
|
@GetMapping("/unread/count")
|
public AjaxResult unreadCount() {
|
Long userId = SecurityUtils.getUserId();
|
int count = sysMessageService.countUnreadMessageByReceiverId(userId);
|
return AjaxResult.success(count);
|
}
|
|
/**
|
* 导出系统消息列表
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, SysMessage sysMessage) {
|
List<SysMessage> list = sysMessageService.selectSysMessageList(sysMessage);
|
ExcelUtil<SysMessage> util = new ExcelUtil<SysMessage>(SysMessage.class);
|
util.exportExcel(response, list, "系统消息数据");
|
}
|
|
/**
|
* 获取系统消息详细信息
|
*/
|
@GetMapping(value = "/{messageId}")
|
public AjaxResult getInfo(@PathVariable("messageId") Long messageId) {
|
return AjaxResult.success(sysMessageService.selectSysMessageByMessageId(messageId));
|
}
|
|
/**
|
* 新增系统消息
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody SysMessage sysMessage) {
|
return toAjax(sysMessageService.insertSysMessage(sysMessage));
|
}
|
|
/**
|
* 修改系统消息
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody SysMessage sysMessage) {
|
return toAjax(sysMessageService.updateSysMessage(sysMessage));
|
}
|
|
/**
|
* 删除系统消息
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{messageIds}")
|
public AjaxResult remove(@PathVariable Long[] messageIds) {
|
return toAjax(sysMessageService.deleteSysMessageByMessageIds(messageIds));
|
}
|
|
/**
|
* 标记消息为已读
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.UPDATE)
|
@PutMapping("/read/{messageId}")
|
public AjaxResult markAsRead(@PathVariable Long messageId) {
|
return toAjax(sysMessageService.markMessageAsRead(messageId));
|
}
|
|
/**
|
* 标记所有消息为已读
|
*/
|
@Log(title = "系统消息", businessType = BusinessType.UPDATE)
|
@PutMapping("/read/all")
|
public AjaxResult markAllAsRead() {
|
Long userId = SecurityUtils.getUserId();
|
return toAjax(sysMessageService.markAllMessagesAsRead(userId));
|
}
|
}
|