增加加载管理员列表接口和用户列表接口 #60

Merged
hnu202326010122 merged 2 commits from jingyou_branch into develop 1 month ago

@ -0,0 +1,54 @@
package com.campus.water.controller.web;
import com.campus.water.entity.Admin;
import com.campus.water.service.AdminService;
import com.campus.water.util.ResultVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/web/admin")
@RequiredArgsConstructor
@Tag(name = "管理员管理接口", description = "Web管理端管理员列表查询接口")
public class AdminController {
private final AdminService adminService;
/**
*
* @param role super_admin/area_admin/viewer
* @param status active/inactive
*/
@GetMapping("/list")
@PreAuthorize("hasRole('ADMIN')") // 仅管理员可访问
@Operation(summary = "获取管理员列表", description = "支持按角色和状态筛选管理员")
public ResponseEntity<ResultVO<List<Admin>>> getAdminList(
@RequestParam(required = false) String role,
@RequestParam(required = false) String status
) {
try {
// 转换参数为枚举类型
Admin.AdminRole adminRole = role != null ? Admin.AdminRole.valueOf(role) : null;
Admin.AdminStatus adminStatus = status != null ? Admin.AdminStatus.valueOf(status) : null;
// 调用服务层查询
List<Admin> adminList = adminService.getAdminList(adminRole, adminStatus);
return ResponseEntity.ok(ResultVO.success(adminList));
} catch (IllegalArgumentException e) {
// 处理枚举参数错误
return ResponseEntity.ok(ResultVO.error(400, "无效的角色或状态参数: " + e.getMessage()));
} catch (Exception e) {
// 处理其他异常
return ResponseEntity.ok(ResultVO.error(500, "查询管理员列表失败: " + e.getMessage()));
}
}
}

@ -0,0 +1,53 @@
package com.campus.water.controller.web;
import com.campus.water.entity.User;
import com.campus.water.service.UserService;
import com.campus.water.util.ResultVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/web/user")
@RequiredArgsConstructor
@Tag(name = "学生管理接口", description = "Web管理端学生列表查询接口")
public class UserController {
private final UserService userService;
/**
*
* @param studentName
* @param status active/inactive
*/
@GetMapping("/list")
@PreAuthorize("hasRole('ADMIN')") // 仅管理员可访问
@Operation(summary = "获取学生用户列表", description = "支持按姓名和状态筛选学生")
public ResponseEntity<ResultVO<List<User>>> getUserList(
@RequestParam(required = false) String studentName,
@RequestParam(required = false) String status
) {
try {
// 转换状态参数为枚举类型
User.UserStatus userStatus = status != null ? User.UserStatus.valueOf(status) : null;
// 调用服务层查询
List<User> userList = userService.getUserList(studentName, userStatus);
return ResponseEntity.ok(ResultVO.success(userList));
} catch (IllegalArgumentException e) {
// 处理枚举参数错误
return ResponseEntity.ok(ResultVO.error(400, "无效的状态参数: " + e.getMessage()));
} catch (Exception e) {
// 处理其他异常
return ResponseEntity.ok(ResultVO.error(500, "查询学生列表失败: " + e.getMessage()));
}
}
}

@ -0,0 +1,34 @@
package com.campus.water.service;
import com.campus.water.entity.Admin;
import com.campus.water.mapper.AdminRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class AdminService {
private final AdminRepository adminRepository;
/**
*
*/
public List<Admin> getAdminList(Admin.AdminRole role, Admin.AdminStatus status) {
if (role != null && status != null) {
// 按角色和状态筛选
return adminRepository.findByRoleAndStatus(role, status);
} else if (role != null) {
// 仅按角色筛选
return adminRepository.findByRole(role);
} else if (status != null) {
// 仅按状态筛选
return adminRepository.findByStatus(status);
} else {
// 查询所有管理员
return adminRepository.findAll();
}
}
}

@ -38,16 +38,6 @@ public class LoginService {
};
}
/* private LoginVO handleAdminLogin(String username, String password) {
Admin admin = adminRepository.findByAdminName(username)
.orElseThrow(() -> new RuntimeException("管理员不存在"));
if (!passwordEncoder.matches(password, admin.getPassword())) {
throw new RuntimeException("密码错误");
}
return createLoginVO(admin.getAdminId(), username, "admin");
}*/
private LoginVO handleAdminLogin(String username, String password) {
Admin admin = adminRepository.findByAdminName(username)
.orElseThrow(() -> new RuntimeException("管理员不存在"));

@ -0,0 +1,34 @@
package com.campus.water.service;
import com.campus.water.entity.User;
import com.campus.water.mapper.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class UserService {
private final UserRepository userRepository;
/**
*
*/
public List<User> getUserList(String studentName, User.UserStatus status) {
if (studentName != null && status != null) {
// 按姓名模糊查询和状态筛选
return userRepository.findByStudentNameContainingAndStatus(studentName, status);
} else if (studentName != null) {
// 仅按姓名模糊查询
return userRepository.findByStudentNameContaining(studentName);
} else if (status != null) {
// 仅按状态筛选
return userRepository.findByStatus(status);
} else {
// 查询所有学生
return userRepository.findAll();
}
}
}
Loading…
Cancel
Save