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> login(@RequestBody Map 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 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> me() { Map 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 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 ""; } } }