You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ssgl/zsq/BuildingController.java

73 lines
3.3 KiB

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<String,Object> 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<Building> pageInfo = buildingService.query(building); // 调用服务层查询楼宇列表
pageInfo.getList().forEach(entity->{ // 遍历查询结果中的每个楼宇
User user = userService.detail(entity.getUserId()); // 调用服务层获取每个楼宇的用户信息
entity.setUser(user); // 将用户信息设置到楼宇对象中
});
return Result.ok(pageInfo); // 返回查询结果
}
}