Commit 32c0a5d9 authored by licc's avatar licc

用户登录接口

parent ce3a6af7
...@@ -16,8 +16,12 @@ public class UserLoginVo { ...@@ -16,8 +16,12 @@ public class UserLoginVo {
/** /**
* 用户手机号码 * 用户手机号码
*/ */
@ApiModelProperty(value = "",name = "") @ApiModelProperty(value = "用户手机号码", name = "userId")
private String userId; private String userId;
/**
* 短信验证码
*/
@ApiModelProperty(value = "短信验证码", name = "sms")
private String sms; private String sms;
} }
package cn.wisenergy.service.app; package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo; import cn.wisenergy.model.vo.UserRegisterVo;
/** /**
...@@ -15,5 +16,11 @@ public interface LoginService { ...@@ -15,5 +16,11 @@ public interface LoginService {
*/ */
R<Boolean> userRegister(UserRegisterVo userRegisterVo); 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; package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.utils.*; import cn.wisenergy.common.utils.*;
import cn.wisenergy.mapper.*; import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*; import cn.wisenergy.model.app.*;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo; import cn.wisenergy.model.vo.UserRegisterVo;
import cn.wisenergy.service.Manager.LoginManager; import cn.wisenergy.service.Manager.LoginManager;
import cn.wisenergy.service.app.LoginService; import cn.wisenergy.service.app.LoginService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -56,7 +59,7 @@ public class LoginServiceImpl implements LoginService { ...@@ -56,7 +59,7 @@ public class LoginServiceImpl implements LoginService {
//2、检验手机号是否已经被注册 //2、检验手机号是否已经被注册
boolean bool = checkPhone(userVo.getUserId()); boolean bool = checkPhone(userVo.getUserId());
if (!bool) { if (bool) {
return R.error("该用户已存在,请直接登录!"); return R.error("该用户已存在,请直接登录!");
} }
...@@ -94,12 +97,36 @@ public class LoginServiceImpl implements LoginService { ...@@ -94,12 +97,36 @@ public class LoginServiceImpl implements LoginService {
return R.ok(1, false); return R.ok(1, false);
} }
} }
redisUtils.delete(key);
return R.ok(0, true); return R.ok(0, true);
} }
@Override @Override
public R<String> login() { public R<Boolean> login(UserLoginVo userVo) {
return null; 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 { ...@@ -111,7 +138,7 @@ public class LoginServiceImpl implements LoginService {
private Boolean checkPhone(String userId) { private Boolean checkPhone(String userId) {
//根据userId,获取用户信息 //根据userId,获取用户信息
User user = usersMapper.getByUserId(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 ...@@ -92,11 +92,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Override @Override
public User queryUsersByPhone(String userId) { public User queryUsersByPhone(String userId) {
Map<String, Object> map = new HashMap<String, Object>();
//查询数据库,看看是否存在该用户 //查询数据库,看看是否存在该用户
User ByuserId = usersMapper.getByUserId(userId); return usersMapper.getByUserId(userId);
return ByuserId;
} }
@Override @Override
...@@ -323,6 +320,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -323,6 +320,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
/** /**
* 用户登出 * 用户登出
*
* @param token * @param token
* @return * @return
*/ */
...@@ -331,7 +329,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -331,7 +329,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
int succ = 0; int succ = 0;
String key = RedisKeyUtils.formatKeyWithPrefix(Constants.Redis.PREFIX_TOKEN, token); String key = RedisKeyUtils.formatKeyWithPrefix(Constants.Redis.PREFIX_TOKEN, token);
redisUtils.delete(key); redisUtils.delete(key);
if(redisUtils.getValue(key) == null){ if (redisUtils.getValue(key) == null) {
succ = 1; succ = 1;
} }
return succ; return succ;
...@@ -347,7 +345,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -347,7 +345,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
*/ */
// @XxlJob() // @XxlJob()
@Override @Override
public void AerialDeliveryUserRand(){ public void AerialDeliveryUserRand() {
//查询空头池中的所有用户(即推荐人邀请码为 “1” 的用户) //查询空头池中的所有用户(即推荐人邀请码为 “1” 的用户)
List<User> aerialDeliveryUserList = usersMapper.getAerialDeliveryUser(); List<User> aerialDeliveryUserList = usersMapper.getAerialDeliveryUser();
for (User user : aerialDeliveryUserList) { for (User user : aerialDeliveryUserList) {
......
...@@ -2,13 +2,18 @@ package cn.wisenergy.web.admin.controller.app; ...@@ -2,13 +2,18 @@ package cn.wisenergy.web.admin.controller.app;
import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig; import cn.hutool.extra.qrcode.QrConfig;
import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.enums.ResultEnum; import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.*; import cn.wisenergy.common.utils.*;
import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UsersDto; import cn.wisenergy.model.app.UsersDto;
import cn.wisenergy.model.vo.UserLoginVo;
import cn.wisenergy.model.vo.UserRegisterVo; import cn.wisenergy.model.vo.UserRegisterVo;
import cn.wisenergy.service.app.LoginService; import cn.wisenergy.service.app.LoginService;
import cn.wisenergy.service.app.UserService; import cn.wisenergy.service.app.UserService;
import cn.wisenergy.web.config.JwtConfig;
import cn.wisenergy.web.shiro.JwtUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -19,6 +24,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -19,6 +24,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -56,6 +62,15 @@ public class LoginController { ...@@ -56,6 +62,15 @@ public class LoginController {
@Autowired @Autowired
private LoginService loginService; private LoginService loginService;
@Autowired
private UsersMapper usersMapper;
@Autowired
private JwtUtil jwtUtil;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
/** /**
* 手机登录接口 * 手机登录接口
* *
...@@ -234,4 +249,41 @@ public class LoginController { ...@@ -234,4 +249,41 @@ public class LoginController {
return loginService.userRegister(userVo); 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