package com.emergencyrepair.auth;
|
|
import com.emergencyrepair.common.Result;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.dao.DataAccessException;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.LinkedHashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("/api/auth")
|
@RequiredArgsConstructor
|
public class AuthController {
|
private final JdbcTemplate jdbcTemplate;
|
|
@PostMapping("/login")
|
public Result<Map<String, Object>> login(@RequestBody Map<String, String> body) {
|
String username = body.get("username");
|
String password = body.get("password");
|
if (!"admin".equals(username) || (!"admin".equals(password) && !"admin123".equals(password))) {
|
return Result.error("用户名或密码错误,第一版请使用 admin/admin123");
|
}
|
Map<String, Object> data = new LinkedHashMap<>();
|
data.put("token", "demo-admin-token");
|
data.put("username", "admin");
|
data.put("realName", "系统管理员");
|
data.put("deptName", resolveDepartmentName(username));
|
return Result.ok(data);
|
}
|
|
@GetMapping("/me")
|
public Result<Map<String, Object>> me() {
|
Map<String, Object> data = new LinkedHashMap<>();
|
data.put("username", "admin");
|
data.put("realName", "系统管理员");
|
data.put("deptName", resolveDepartmentName("admin"));
|
data.put("roles", new String[]{"SYSTEM_ADMIN"});
|
return Result.ok(data);
|
}
|
|
private String resolveDepartmentName(String username) {
|
if (!StringUtils.hasText(username)) {
|
return "";
|
}
|
try {
|
List<String> names = jdbcTemplate.query(
|
"SELECT d.DEPT_NAME FROM LX.SYS_USER u LEFT JOIN LX.SYS_DEPT d ON d.DEPT_ID = u.DEPT_ID WHERE u.USER_NAME = ? AND u.DEL_FLAG = '0'",
|
new Object[]{username},
|
(rs, rowNum) -> rs.getString(1));
|
return names.isEmpty() || names.get(0) == null ? "" : names.get(0).trim();
|
} catch (DataAccessException ex) {
|
return "";
|
}
|
}
|
}
|