package com.yanzhen.controller; // 定义包名 import com.github.pagehelper.PageInfo; // 导入分页插件 import com.yanzhen.entity.Notice; // 导入公告实体类 import com.yanzhen.entity.User; // 导入用户实体类 import com.yanzhen.service.NoticeService公告管理; // 导入公告服务接口 import com.yanzhen.service.UserService用户管理; // 导入用户服务接口 import com.yanzhen.utils.Result; // 导入结果工具类 import org.springframework.beans.factory.annotation.Autowired; // 导入自动装配注解 import org.springframework.web.bind.annotation.*; // 导入Spring MVC相关注解 import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest类 import java.util.Map; // 导入Map接口 @RestController // 声明这是一个控制器,并且返回的数据直接写入HTTP响应体中 @RequestMapping("/notice") // 设置请求路径前缀为/notice public class NoticeController { // 定义控制器类 @Autowired // 自动注入NoticeService实例 private NoticeService公告管理 noticeService; @Autowired // 自动注入UserService实例 private UserService用户管理 userService; @PostMapping("create") // 映射POST请求到create方法 public Result create(@RequestBody Notice notice, HttpServletRequest request){ // 接收JSON格式的公告数据和请求对象 User user = (User) request.getAttribute("user"); // 从请求中获取当前登录的用户信息 notice.setUserId(user.getId()); // 设置公告的用户ID为当前用户的ID int flag = noticeService.create(notice); // 调用服务层创建公告 if(flag>0){ // 如果创建成功 return Result.ok(); // 返回成功结果 }else{ // 如果创建失败 return Result.fail(); // 返回失败结果 } } @GetMapping("delete") // 映射GET请求到delete方法 public Result delete(String ids){ // 接收要删除的公告ID字符串 int flag = noticeService.delete(ids); // 调用服务层删除公告 if(flag>0){ // 如果删除成功 return Result.ok(); // 返回成功结果 }else{ // 如果删除失败 return Result.fail(); // 返回失败结果 } } @PostMapping("update") // 映射POST请求到update方法 public Result update(@RequestBody Notice notice){ // 接收JSON格式的公告数据 int flag = noticeService.updateSelective(notice); // 调用服务层更新公告 if(flag>0){ // 如果更新成功 return Result.ok(); // 返回成功结果 }else{ // 如果更新失败 return Result.fail(); // 返回失败结果 } } @GetMapping("detail") // 映射GET请求到detail方法 public Notice detail(Integer id){ // 接收公告ID return noticeService.detail(id); // 调用服务层获取公告详情并返回 } @PostMapping("query") // 映射POST请求到query方法 public Map query(@RequestBody Notice notice){ // 接收JSON格式的查询条件 PageInfo pageInfo = noticeService.query(notice); // 调用服务层进行分页查询 pageInfo.getList().forEach(entity->{ // 遍历查询结果列表 entity.setUser(userService.detail(entity.getUserId())); // 为每个公告设置对应的用户信息 }); return Result.ok(pageInfo); // 返回包含分页信息的查询结果 } }