Commit 32c0a5d9 authored by licc's avatar licc

用户登录接口

parent ce3a6af7
......@@ -16,8 +16,12 @@ public class UserLoginVo {
/**
* 用户手机号码
*/
@ApiModelProperty(value = "",name = "")
@ApiModelProperty(value = "用户手机号码", name = "userId")
private String userId;
/**
* 短信验证码
*/
@ApiModelProperty(value = "短信验证码", name = "sms")
private String sms;
}
package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo;
/**
......@@ -15,5 +16,11 @@ public interface LoginService {
*/
R<Boolean> userRegister(UserRegisterVo userRegisterVo);
R<String> login();
/**
* 获取token接口 --用户登录
*
* @param userLoginVo 用户登录信息
* @return true or false
*/
R<Boolean> login(UserLoginVo userLoginVo);
}
package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.utils.*;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo;
import cn.wisenergy.service.Manager.LoginManager;
import cn.wisenergy.service.app.LoginService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
......@@ -56,7 +59,7 @@ public class LoginServiceImpl implements LoginService {
//2、检验手机号是否已经被注册
boolean bool = checkPhone(userVo.getUserId());
if (!bool) {
if (bool) {
return R.error("该用户已存在,请直接登录!");
}
......@@ -94,12 +97,36 @@ public class LoginServiceImpl implements LoginService {
return R.ok(1, false);
}
}
redisUtils.delete(key);
return R.ok(0, true);
}
@Override
public R<String> login() {
return null;
public R<Boolean> login(UserLoginVo userVo) {
log.info("shop-mall[]LoginServiceImpl[]userRegister[]input.param.userVo:" + userVo);
if (null == userVo || StringUtils.isBlank(userVo.getUserId()) || StringUtils.isBlank(userVo.getSms())) {
return R.error("入参不能为空!");
}
//判断phone是否符合输入类型
if (!userVo.getUserId().matches(Constants.RegConstant.PHONE_REGSTR)) {
return R.error("手机号码格式不正确!");
}
//1、检验验证码是否正确
String key = "";
String redisCode = redisUtils.getValue(key);
if (StringUtils.isBlank(redisCode) || !userVo.getSms().equals(redisCode)) {
return R.error("验证码错误!");
}
//2、检验用户手机号是否存在
boolean bool = checkPhone(userVo.getUserId());
if (!bool) {
return R.error("该用户不存在,请注册!");
}
return R.ok(0, true);
}
/**
......@@ -111,7 +138,7 @@ public class LoginServiceImpl implements LoginService {
private Boolean checkPhone(String userId) {
//根据userId,获取用户信息
User user = usersMapper.getByUserId(userId);
return null == user;
return null != user;
}
/**
......
......@@ -92,11 +92,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Override
public User queryUsersByPhone(String userId) {
Map<String, Object> map = new HashMap<String, Object>();
//查询数据库,看看是否存在该用户
User ByuserId = usersMapper.getByUserId(userId);
return ByuserId;
return usersMapper.getByUserId(userId);
}
@Override
......@@ -323,6 +320,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
/**
* 用户登出
*
* @param token
* @return
*/
......@@ -331,7 +329,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
int succ = 0;
String key = RedisKeyUtils.formatKeyWithPrefix(Constants.Redis.PREFIX_TOKEN, token);
redisUtils.delete(key);
if(redisUtils.getValue(key) == null){
if (redisUtils.getValue(key) == null) {
succ = 1;
}
return succ;
......@@ -347,7 +345,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
*/
// @XxlJob()
@Override
public void AerialDeliveryUserRand(){
public void AerialDeliveryUserRand() {
//查询空头池中的所有用户(即推荐人邀请码为 “1” 的用户)
List<User> aerialDeliveryUserList = usersMapper.getAerialDeliveryUser();
for (User user : aerialDeliveryUserList) {
......
......@@ -2,13 +2,18 @@ package cn.wisenergy.web.admin.controller.app;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.*;
import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UsersDto;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo;
import cn.wisenergy.service.app.LoginService;
import cn.wisenergy.service.app.UserService;
import cn.wisenergy.web.config.JwtConfig;
import cn.wisenergy.web.shiro.JwtUtil;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -19,6 +24,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
......@@ -56,6 +62,15 @@ public class LoginController {
@Autowired
private LoginService loginService;
@Autowired
private UsersMapper usersMapper;
@Autowired
private JwtUtil jwtUtil;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
/**
* 手机登录接口
*
......@@ -234,4 +249,41 @@ public class LoginController {
return loginService.userRegister(userVo);
}
@ApiOperation(value = "用户登录-返回token", notes = "用户登录-返回token", httpMethod = "POST")
@ApiImplicitParam(name = "userVo", value = "用户登录信息", dataType = "UserLoginVo")
@PostMapping("/userLogin")
public R<String> userLogin(@RequestBody UserLoginVo userVo) {
log.info("shop-mall[]LoginController[]userLogin[]input.param.userVo:" + userVo);
if (null == userVo || StringUtils.isBlank(userVo.getUserId()) || StringUtils.isBlank(userVo.getSms())) {
return R.error("入参不能为空!");
}
//判断phone是否符合输入类型
if (!userVo.getUserId().matches(Constants.RegConstant.PHONE_REGSTR)) {
return R.error("手机号码格式不正确!");
}
//1、检验验证码是否正确
String key = "";
String redisCode = redisUtils.getValue(key);
if (StringUtils.isBlank(redisCode) || !userVo.getSms().equals(redisCode)) {
return R.error("验证码错误!");
}
//2、检验用户手机号是否存在
User user = usersMapper.getByUserId(userVo.getUserId());
if (null == user || StringUtils.isBlank(user.getUserId())) {
return R.error("账户不存在,请注册!");
}
//3、获取token
// 创建token
String token = jwtUtil.generateToken(user);
// 保存Redis
redisTemplate.opsForValue().set(RedisConsts.JWT_ACCESS_TOKEN + token, token);
return R.ok(token);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment