diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/UserController.java b/virtual-patient-web/src/main/java/com/supervision/controller/UserController.java index 0af12668..2aebb0a0 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/UserController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/UserController.java @@ -1,11 +1,13 @@ package com.supervision.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.supervision.constant.UserTokenConstant; import com.supervision.exception.BusinessException; import com.supervision.model.User; import com.supervision.pojo.vo.LoginReqVO; +import com.supervision.pojo.vo.LoginResVO; import com.supervision.service.UserService; import com.supervision.util.TokenUtil; import com.supervision.util.UserUtil; @@ -31,21 +33,21 @@ public class UserController { @ApiOperation("登录") @PostMapping("login") - public String login(@RequestBody LoginReqVO reqVO) { + public LoginResVO login(@RequestBody LoginReqVO reqVO) { if (!StrUtil.isAllNotBlank(reqVO.getUserAccount(), reqVO.getPassword())) { throw new BusinessException("用户名不能为空"); } Optional user = userService.lambdaQuery().eq(User::getAccount, reqVO.getUserAccount()).last("limit 1").oneOpt(); - if (!user.isPresent()) { - throw new BusinessException("未找到用户"); - } - if (!user.get().getPassword().equals(reqVO.getPassword())) { - throw new BusinessException("密码错误"); + if (!user.isPresent() || !user.get().getPassword().equals(reqVO.getPassword())) { + throw new BusinessException("用户名或密码有误!"); } String token = TokenUtil.creatToken(JSONUtil.toJsonStr(user.get())); // 将用户的token保存起来,超时时间为5分钟 redisTemplate.opsForValue().set(UserTokenConstant.TOKEN_CACHE + user.get().getId(), String.valueOf(System.currentTimeMillis()), 1000 * 5L, TimeUnit.MILLISECONDS); - return token; + + LoginResVO loginResVO = BeanUtil.toBean(user.get(), LoginResVO.class); + loginResVO.setToken(token); + return loginResVO; } @ApiOperation("token心跳") diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/LoginResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/LoginResVO.java new file mode 100644 index 00000000..466274ca --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/LoginResVO.java @@ -0,0 +1,27 @@ +package com.supervision.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class LoginResVO { + + @ApiModelProperty("主键") + private String id; + + @ApiModelProperty("用户账户") + private String account; + + @ApiModelProperty("用户名称") + private String name; + + @ApiModelProperty("用户角色编码,0管理员 1普通用户(学生) 2运营人员(配置)") + private String roleCode; + + @ApiModelProperty("token") + private String token; + + @ApiModelProperty(hidden = true) + private static final long serialVersionUID = 1L; +}