查询高校列表

This commit is contained in:
GoCo 2025-08-26 02:06:13 +08:00
parent 50e127c505
commit 9830e0d3b3

View File

@ -18,6 +18,7 @@ import org.jeecg.modules.gen.userinfo.entity.UserInfo;
import org.jeecg.modules.gen.userinfo.mapper.UserInfoMapper; import org.jeecg.modules.gen.userinfo.mapper.UserInfoMapper;
import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.*; import org.jeecg.modules.system.service.*;
import org.jeecg.common.system.vo.DictModel;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -33,6 +34,7 @@ import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RedisUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -52,6 +54,8 @@ public class UserBizController {
private UserBizService userBizService; private UserBizService userBizService;
@Autowired @Autowired
private UserInfoMapper userInfoMapper; private UserInfoMapper userInfoMapper;
@Autowired
private ISysBaseAPI sysBaseApi;
@PostMapping("/login") @PostMapping("/login")
@Operation(summary = "用户登录") @Operation(summary = "用户登录")
@ -65,36 +69,36 @@ public class UserBizController {
} }
// step.2 校验用户是否存在且有效 // step.2 校验用户是否存在且有效
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUser::getUsername,username); queryWrapper.eq(SysUser::getUsername, username);
SysUser sysUser = sysUserService.getOne(queryWrapper); SysUser sysUser = sysUserService.getOne(queryWrapper);
Result<?> checkResult = sysUserService.checkUserIsEffective(sysUser); Result<?> checkResult = sysUserService.checkUserIsEffective(sysUser);
if(!checkResult.isSuccess()) { if (!checkResult.isSuccess()) {
return result.error500(checkResult.getMessage()); return result.error500(checkResult.getMessage());
} }
// step.3 校验用户名或密码是否正确 // step.3 校验用户名或密码是否正确
String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt()); String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
String syspassword = sysUser.getPassword(); String syspassword = sysUser.getPassword();
if (!syspassword.equals(userpassword)) { if (!syspassword.equals(userpassword)) {
addLoginFailOvertimes(username); addLoginFailOvertimes(username);
result.error500("用户名或密码错误"); result.error500("用户名或密码错误");
return result; return result;
} }
// step.4 登录成功获取用户信息 // step.4 登录成功获取用户信息
JSONObject obj = new JSONObject(new LinkedHashMap<>()); JSONObject obj = new JSONObject(new LinkedHashMap<>());
//1.生成token // 1.生成token
String token = JwtUtil.sign(username, syspassword); String token = JwtUtil.sign(username, syspassword);
// 设置token缓存有效时间 // 设置token缓存有效时间
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000); redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
obj.put("token", token); obj.put("token", token);
// TODO 查询用户信息 // TODO 查询用户信息
result.setResult(obj); result.setResult(obj);
result.success("登录成功"); result.success("登录成功");
return result; return result;
} }
@ -117,19 +121,20 @@ public class UserBizController {
} }
/** /**
* 记录登录失败次数 * 记录登录失败次数
* @param username *
*/ * @param username
private void addLoginFailOvertimes(String username){ */
String key = CommonConstant.LOGIN_FAIL + username; private void addLoginFailOvertimes(String username) {
Object failTime = redisUtil.get(key); String key = CommonConstant.LOGIN_FAIL + username;
Integer val = 0; Object failTime = redisUtil.get(key);
if(failTime!=null){ Integer val = 0;
val = Integer.parseInt(failTime.toString()); if (failTime != null) {
} val = Integer.parseInt(failTime.toString());
// 10分钟一分钟为60s }
redisUtil.set(key, ++val, 600); // 10分钟一分钟为60s
} redisUtil.set(key, ++val, 600);
}
@GetMapping("/all_teachers") @GetMapping("/all_teachers")
@Operation(summary = "查询师资力量", description = "categoryId为all则查询全部") @Operation(summary = "查询师资力量", description = "categoryId为all则查询全部")
@ -161,18 +166,17 @@ public class UserBizController {
// 4. 根据用户ID查询user_info表信息 // 4. 根据用户ID查询user_info表信息
UserInfo userInfo = userInfoMapper.selectOne( UserInfo userInfo = userInfoMapper.selectOne(
new QueryWrapper<UserInfo>().eq("user_id", sysUser.getId()) new QueryWrapper<UserInfo>().eq("user_id", sysUser.getId()));
);
// 5. 构建返回结果 // 5. 构建返回结果
UserInfoResponse response = new UserInfoResponse(); UserInfoResponse response = new UserInfoResponse();
// 基本用户信息 // 基本用户信息
UserInfoResponse.BaseInfo baseInfo = new UserInfoResponse.BaseInfo(); UserInfoResponse.BaseInfo baseInfo = new UserInfoResponse.BaseInfo();
BeanUtils.copyProperties(sysUser, baseInfo); BeanUtils.copyProperties(sysUser, baseInfo);
response.setBaseInfo(baseInfo); response.setBaseInfo(baseInfo);
response.setRoles(roles); response.setRoles(roles);
// 扩展用户信息 // 扩展用户信息
if (userInfo != null) { if (userInfo != null) {
UserInfoResponse.ExtendedInfo extendedInfo = new UserInfoResponse.ExtendedInfo(); UserInfoResponse.ExtendedInfo extendedInfo = new UserInfoResponse.ExtendedInfo();
@ -186,4 +190,15 @@ public class UserBizController {
return Result.error(500, "查询用户信息失败:" + e.getMessage()); return Result.error(500, "查询用户信息失败:" + e.getMessage());
} }
} }
@GetMapping("/schools")
@Operation(summary = "查询学校列表")
@IgnoreAuth
public Result<List<String>> querySchools() {
List<DictModel> list = sysBaseApi.getDictItems("school_list");
List<String> schools = list.stream()
.map(d -> d.getLabel())
.collect(Collectors.toList());
return Result.OK(schools);
}
} }