查询高校列表
This commit is contained in:
parent
50e127c505
commit
9830e0d3b3
@ -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,18 +166,17 @@ 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();
|
||||
|
||||
|
||||
// 基本用户信息
|
||||
UserInfoResponse.BaseInfo baseInfo = new UserInfoResponse.BaseInfo();
|
||||
BeanUtils.copyProperties(sysUser, baseInfo);
|
||||
response.setBaseInfo(baseInfo);
|
||||
response.setRoles(roles);
|
||||
|
||||
|
||||
// 扩展用户信息
|
||||
if (userInfo != null) {
|
||||
UserInfoResponse.ExtendedInfo extendedInfo = new UserInfoResponse.ExtendedInfo();
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user