package com.yanzhen.controller; import com.github.pagehelper.PageInfo; import com.yanzhen.entity.Building; import com.yanzhen.entity.User; import com.yanzhen.service.BuildingService楼层设置; import com.yanzhen.service.UserService用户管理; import com.yanzhen.utils.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Map; @RestController // 标记为RESTful控制器 @RequestMapping("/building") // 映射URL路径到该控制器 public class BuildingController { @Autowired // 自动注入BuildingService private BuildingService楼层设置 buildingService; @Autowired // 自动注入UserService private UserService用户管理 userService; @PostMapping("create") // 映射POST请求到create方法 public Result create(@RequestBody Building building){ // 接收JSON格式的楼宇对象 int flag = buildingService.create(building); // 调用服务层创建楼宇 if(flag>0){ // 如果创建成功 return Result.ok(); // 返回成功结果 }else{ // 如果创建失败 return Result.fail(); // 返回失败结果 } } @GetMapping("delete") // 映射GET请求到delete方法 public Result delete(String ids){ // 接收楼宇ID字符串 int flag = buildingService.delete(ids); // 调用服务层删除楼宇 if(flag>0){ // 如果删除成功 return Result.ok(); // 返回成功结果 }else{ // 如果删除失败 return Result.fail(); // 返回失败结果 } } @PostMapping("update") // 映射POST请求到update方法 public Result update(@RequestBody Building building){ // 接收JSON格式的楼宇对象 int flag = buildingService.update(building); // 调用服务层更新楼宇信息 if(flag>0){ // 如果更新成功 return Result.ok(); // 返回成功结果 }else{ // 如果更新失败 return Result.fail(); // 返回失败结果 } } @GetMapping("detail") // 映射GET请求到detail方法 public Building detail(Integer id){ // 接收楼宇ID return buildingService.detail(id); // 调用服务层获取楼宇详情并返回 } @PostMapping("query") // 映射POST请求到query方法 public Map query(@RequestBody Building building, HttpServletRequest request){ // 接收JSON格式的楼宇对象和HTTP请求 User param = (User)request.getAttribute("user"); // 从请求中获取用户信息 User loginUser = userService.detail(param.getId()); // 调用服务层获取用户详情 if(loginUser.getType() == 1){ // 如果用户是宿管员 building.setUserId(loginUser.getId()); // 设置楼宇的用户ID为当前登录用户的ID } PageInfo pageInfo = buildingService.query(building); // 调用服务层查询楼宇列表 pageInfo.getList().forEach(entity->{ // 遍历查询结果中的每个楼宇 User user = userService.detail(entity.getUserId()); // 调用服务层获取每个楼宇的用户信息 entity.setUser(user); // 将用户信息设置到楼宇对象中 }); return Result.ok(pageInfo); // 返回查询结果 } }