Search in sources :

Example 1 with UserLoginVo

use of com.qiwenshare.file.vo.user.UserLoginVo in project qiwen-file by qiwenshare.

the class UserController method checkUserLoginInfo.

@Operation(summary = "检查用户登录信息", description = "验证token的有效性", tags = { "user" })
@GetMapping("/checkuserlogininfo")
@ResponseBody
public RestResult<UserLoginVo> checkUserLoginInfo() {
    UserLoginVo userLoginVo = new UserLoginVo();
    JwtUser sessionUserBean = SessionUtil.getSession();
    if (sessionUserBean != null && !"anonymousUser".equals(sessionUserBean.getUsername())) {
        LambdaQueryWrapper<UserLoginInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(UserLoginInfo::getUserId, sessionUserBean.getUserId());
        lambdaQueryWrapper.likeRight(UserLoginInfo::getUserloginDate, DateUtil.getCurrentTime().substring(0, 10));
        userLoginInfoService.remove(lambdaQueryWrapper);
        UserLoginInfo userLoginInfo = new UserLoginInfo();
        userLoginInfo.setUserId(sessionUserBean.getUserId());
        userLoginInfo.setUserloginDate(DateUtil.getCurrentTime());
        userLoginInfoService.save(userLoginInfo);
        UserBean user = userService.getById(sessionUserBean.getUserId());
        BeanUtil.copyProperties(user, userLoginVo);
        return RestResult.success().data(userLoginVo);
    } else {
        return RestResult.fail().message("用户暂未登录");
    }
}
Also used : UserLoginVo(com.qiwenshare.file.vo.user.UserLoginVo) UserBean(com.qiwenshare.file.domain.user.UserBean) JwtUser(com.qiwenshare.common.util.security.JwtUser) UserLoginInfo(com.qiwenshare.file.domain.UserLoginInfo) LambdaQueryWrapper(com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper) Operation(io.swagger.v3.oas.annotations.Operation)

Example 2 with UserLoginVo

use of com.qiwenshare.file.vo.user.UserLoginVo in project qiwen-file by qiwenshare.

the class UserController method userLogin.

@Operation(summary = "用户登录", description = "用户登录认证后才能进入系统", tags = { "user" })
@GetMapping("/login")
@MyLog(operation = "用户登录", module = CURRENT_MODULE)
@ResponseBody
public RestResult<UserLoginVo> userLogin(@Parameter(description = "登录手机号") String telephone, @Parameter(description = "登录密码") String password) {
    RestResult<UserLoginVo> restResult = new RestResult<UserLoginVo>();
    String salt = userService.getSaltByTelephone(telephone);
    String hashPassword = new SimpleHash("MD5", password, salt, 1024).toHex();
    UserBean result = userService.selectUserByTelephoneAndPassword(telephone, hashPassword);
    if (result == null) {
        return RestResult.fail().message("手机号或密码错误!");
    }
    Map<String, Object> param = new HashMap<>();
    param.put("userId", result.getUserId());
    String token = "";
    try {
        token = jwtComp.createJWT(JSON.toJSONString(param));
    } catch (Exception e) {
        log.info("登录失败:{}", e);
        return RestResult.fail().message("创建token失败!");
    }
    UserBean sessionUserBean = userService.findUserInfoByTelephone(telephone);
    if (sessionUserBean.getAvailable() != null && sessionUserBean.getAvailable() == 0) {
        return RestResult.fail().message("用户已被禁用");
    }
    UserLoginVo userLoginVo = new UserLoginVo();
    BeanUtil.copyProperties(sessionUserBean, userLoginVo);
    userLoginVo.setToken("Bearer " + token);
    restResult.setData(userLoginVo);
    restResult.setSuccess(true);
    restResult.setCode(200001);
    return restResult;
}
Also used : RestResult(com.qiwenshare.common.result.RestResult) UserLoginVo(com.qiwenshare.file.vo.user.UserLoginVo) UserBean(com.qiwenshare.file.domain.user.UserBean) HashMap(java.util.HashMap) SimpleHash(org.apache.shiro.crypto.hash.SimpleHash) Operation(io.swagger.v3.oas.annotations.Operation) MyLog(com.qiwenshare.common.anno.MyLog)

Example 3 with UserLoginVo

use of com.qiwenshare.file.vo.user.UserLoginVo in project qiwen-file by qiwenshare.

the class WebLogAcpect method doAfterReturning.

@AfterReturning(returning = "ret", pointcut = "webLog()")
public void doAfterReturning(Object ret) throws Throwable {
    if (ret instanceof RestResult) {
        boolean isSuccess = ((RestResult) ret).getSuccess();
        String errorMessage = ((RestResult) ret).getMessage();
        JwtUser sessionUser = SessionUtil.getSession();
        Long userId = 0L;
        if (sessionUser != null) {
            userId = sessionUser.getUserId();
        }
        Integer code = ((RestResult) ret).getCode();
        if (code != null && code == 200001) {
            UserLoginVo data = (UserLoginVo) ((RestResult) ret).getData();
            userId = data.getUserId();
        }
        if (isSuccess) {
            operationLogService.insertOperationLog(OperationLogUtil.getOperationLogObj(request, userId, "成功", module, operation, "操作成功"));
        } else {
            operationLogService.insertOperationLog(OperationLogUtil.getOperationLogObj(request, userId, "失败", module, operation, errorMessage));
        }
    }
}
Also used : RestResult(com.qiwenshare.common.result.RestResult) UserLoginVo(com.qiwenshare.file.vo.user.UserLoginVo) JwtUser(com.qiwenshare.common.util.security.JwtUser) AfterReturning(org.aspectj.lang.annotation.AfterReturning)

Aggregations

UserLoginVo (com.qiwenshare.file.vo.user.UserLoginVo)3 RestResult (com.qiwenshare.common.result.RestResult)2 JwtUser (com.qiwenshare.common.util.security.JwtUser)2 UserBean (com.qiwenshare.file.domain.user.UserBean)2 Operation (io.swagger.v3.oas.annotations.Operation)2 LambdaQueryWrapper (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper)1 MyLog (com.qiwenshare.common.anno.MyLog)1 UserLoginInfo (com.qiwenshare.file.domain.UserLoginInfo)1 HashMap (java.util.HashMap)1 SimpleHash (org.apache.shiro.crypto.hash.SimpleHash)1 AfterReturning (org.aspectj.lang.annotation.AfterReturning)1