因为是跨项目所以不能将信息存入session,只能将信息存入redis,后再取出
消费者
Controller 层
@Resource
private RedisTemplate<String,Object>redisTemplate;
@PostMapping("login")
public HashMap<String, Object> login(User user){
return userService.login(user);
}
/**
* 缓存显示
*/
@GetMapping("xianshi")
public User xianshi(){
List<Object> range = redisTemplate.opsForList().range(ConstantConf.USER_LOGIN, 0, -1);
User o = (User) range.get(0);
return o;
}
/**
* 注销
* @return
*/
@GetMapping("logout")
public void logout(){
redisTemplate.delete(ConstantConf.USER_LOGIN);
}
service 层
@PostMapping("login")
public HashMap<String, Object> login(@RequestBody User user);
生产者
@Resource
private RedisTemplate<String,Object> redisTemplate;
@PostMapping("login")
@ResponseBody
public HashMap<String, Object> login(@RequestBody User user){
HashMap<String,Object> result = new HashMap<>();
User userInfo= userMapper.findIntoByloginnumber(user.getLoginnumber());
//判断账号是否存在
if(userInfo==null) {
result.put("code", 2);
result.put("msg", "账号不存在");
return result;
}
//判断前台输入的密码和数据库的是否一致
String password = user.getPassword();
String md516 = Md5Util.getMd516(password);
if(!userInfo.getPassword().equals(md516)) {
result.put("code", 3);
result.put("msg", "密码错误");
return result;
}
//将用户信息保存到redis中
//session.setAttribute(session.getId(), userInfo);
Long aLong = redisTemplate.opsForList().leftPush(ConstantConf.USER_LOGIN, userInfo);
result.put("code", 0);
result.put("msg", "登陆成功");
return result;
}
mapper层
@Select("select * from t_user where loginnumber=#{value}")
User findIntoByloginnumber(String loginnumber);