1.在VO层判断服务器的状态
package com.jt.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult implements Serializable {
private Integer status;//200成功 201失败
private String msg;//提示信息
private Object data;//服务器干绘制数据
public static SysResult fail(){
return new SysResult(201,"业务调用失败",null);
}
public static SysResult success(){
return new SysResult(200,"业务调用成功",null);
}
public static SysResult success(Object data){
return new SysResult(200,"业务调用成功",data);
}
public static SysResult success(String msg,Object data){
return new SysResult(200,msg,data);
}
}
2.在controller层实现用户登录
package com.jt.controller;
import com.jt.pojo.User;
import com.jt.service.UserService;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
@CrossOrigin
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/findAll")
public List<User> findAll(){
return userService.findAll();
}
/**
* 完成用户登录操作
*
* */
@PostMapping("/login")
public SysResult login(@RequestBody User user){
//业务逻辑:查询数据库true:token false null
String token = userService.login(user);
if (token == null){
return SysResult.fail();
}
return SysResult.success(token);
}
}
3.service写逻辑,将密码加密,在判断是否账号密码正确,并返回token。
package com.jt.service;
import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.util.List;
import java.util.UUID;
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.findAll();
}
@Override
public String login(User user) {
System.out.println(user);
String password = user.getPassword();
byte[] bytes = password.getBytes();
//1.将密码加密
String md5PassWord = DigestUtils.md5DigestAsHex(bytes);
user.setPassword(md5PassWord);
//2.根据用户名和密码查询数据库
User userDB = userMapper.findUserByUP(user);
//3.判断userDB是否有值
if (userDB == null){
return null;
}
//账号密码正确,返回token
String token = UUID.randomUUID().toString();
return token;
}
}
登录错误,如何排错
说明正确
实现路由跳转
成功进入后台
左侧菜单列表
表设计
原理说明:左侧菜单划分为三级,但是显示只显示2级
一级菜单获取:
- select * from rights where parent_id=0;
二级菜单获取:
- select * from rights where parent_id=;