Compare commits

..

2 Commits

Author SHA1 Message Date
GoCo
c48769872d Merge branch 'dev' of http://110.42.96.65:19890/GoCo/OL-LearnPlatform-Backend into dev
merge
2025-08-26 02:06:22 +08:00
GoCo
9830e0d3b3 查询高校列表 2025-08-26 02:06:13 +08:00

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