java">package ***.alatus.query;
import lombok.Data;
@Data
public class UserQuery {
/**
* 主键,自动增长,用户ID
*/
private Integer id;
/**
* 登录账号
*/
private String loginAct;
/**
* 登录密码
*/
private String loginPwd;
/**
* 用户姓名
*/
private String name;
/**
* 用户手机
*/
private String phone;
/**
* 用户邮箱
*/
private String email;
/**
* 账户是否没有过期,0已过期 1正常
*/
private Integer a***ountNoExpired;
/**
* 密码是否没有过期,0已过期 1正常
*/
private Integer credentialsNoExpired;
/**
* 账号是否没有锁定,0已锁定 1正常
*/
private Integer a***ountNoLocked;
/**
* 账号是否启用,0禁用 1启用
*/
private Integer a***ountEnabled;
}
package ***.alatus.query;
import lombok.Data;
@Data
public class UserQuery {
/**
* 主键,自动增长,用户ID
*/
private Integer id;
/**
* 登录账号
*/
private String loginAct;
/**
* 登录密码
*/
private String loginPwd;
/**
* 用户姓名
*/
private String name;
/**
* 用户手机
*/
private String phone;
/**
* 用户邮箱
*/
private String email;
/**
* 账户是否没有过期,0已过期 1正常
*/
private Integer a***ountNoExpired;
/**
* 密码是否没有过期,0已过期 1正常
*/
private Integer credentialsNoExpired;
/**
* 账号是否没有锁定,0已锁定 1正常
*/
private Integer a***ountNoLocked;
/**
* 账号是否启用,0禁用 1启用
*/
private Integer a***ountEnabled;
}
package ***.alatus.service.impl;
import ***.alatus.constant.Constants;
import ***.alatus.mapper.TUserMapper;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.fasterxml.jackson.databind.util.BeanUtil;
import ***.github.pagehelper.PageHelper;
import ***.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@Service
public class UserServiceImpl implements ***.alatus.service.UserService {
@Resource
private TUserMapper tUserMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
TUser tUser = tUserMapper.selectByLoginAct(username);
if(tUser == null){
throw new UsernameNotFoundException("登陆账号不存在");
}
return tUser;
}
@Override
public PageInfo<TUser> getUserByPage(Integer current) {
// 设置PageHelper和分页情况
PageHelper.startPage(current, Constants.PAGE_SIZE);
// 查询
ArrayList<TUser> list = tUserMapper.selectUserByPage();
// 封装分页到PageInfo中
PageInfo<TUser> info = new PageInfo<>(list);
return info;
}
@Override
public TUser getUserById(Integer id) {
return tUserMapper.selectDetailById(id);
}
@Override
public int saveUser(UserQuery userQuery) {
TUser tUser = new TUser();
// 把query对象的数据复制到user对象里面
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(userQuery,tUser);
return tUserMapper.insertSelective(tUser);
}
}
package ***.alatus.service.impl;
import ***.alatus.constant.Constants;
import ***.alatus.mapper.TUserMapper;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.fasterxml.jackson.databind.util.BeanUtil;
import ***.github.pagehelper.PageHelper;
import ***.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@Service
public class UserServiceImpl implements ***.alatus.service.UserService {
@Resource
private TUserMapper tUserMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
TUser tUser = tUserMapper.selectByLoginAct(username);
if(tUser == null){
throw new UsernameNotFoundException("登陆账号不存在");
}
return tUser;
}
@Override
public PageInfo<TUser> getUserByPage(Integer current) {
// 设置PageHelper和分页情况
PageHelper.startPage(current, Constants.PAGE_SIZE);
// 查询
ArrayList<TUser> list = tUserMapper.selectUserByPage();
// 封装分页到PageInfo中
PageInfo<TUser> info = new PageInfo<>(list);
return info;
}
@Override
public TUser getUserById(Integer id) {
return tUserMapper.selectDetailById(id);
}
@Override
public int saveUser(UserQuery userQuery) {
TUser tUser = new TUser();
// 把query对象的数据复制到user对象里面
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(userQuery,tUser);
return tUserMapper.insertSelective(tUser);
}
}
package ***.alatus.service;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.github.pagehelper.PageInfo;
import org.springframework.security.core.userdetails.UserDetailsService;
public interface UserService extends UserDetailsService {
PageInfo<TUser> getUserByPage(Integer current);
TUser getUserById(Integer id);
int saveUser(UserQuery userQuery);
}
package ***.alatus.service;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.github.pagehelper.PageInfo;
import org.springframework.security.core.userdetails.UserDetailsService;
public interface UserService extends UserDetailsService {
PageInfo<TUser> getUserByPage(Integer current);
TUser getUserById(Integer id);
int saveUser(UserQuery userQuery);
}
package ***.alatus.web;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.alatus.result.R;
import ***.alatus.service.UserService;
import ***.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.*;
@RestController
public class UserController {
@Resource
private UserService userService;
// 获取登录信息
@GetMapping(value = "/api/login/info")
public R loginInfo(Authentication authentication){
TUser tUser = (TUser) authentication.getPrincipal();
return R.OK(tUser);
}
//免登录验证
//因为发送的请求过来首先会过filter那一关,能到这说明token验证都通过了,我们直接返回200即可
@GetMapping(value = "/api/login/free")
public R freeLogin(){
return R.OK();
}
// 查询用户列表
@GetMapping(value = "/api/users")
// 传递参数current,可传可不传,
public R userPage(@RequestParam(value = "current",required = false) Integer current){
if(current == null){
current = 1;
}
// 返回结果为PageInfo
PageInfo<TUser> userByPage = userService.getUserByPage(current);
return R.OK(userByPage);
}
@GetMapping(value = "/api/user/{id}")
public R userDetail(@PathVariable(value = "id")Integer id){
TUser tUser = userService.getUserById(id);
return R.OK(tUser);
}
@PostMapping(value = "/api/user/add")
public R addUser(UserQuery userQuery){
int save = userService.saveUser(userQuery);
return save >= 1 ? R.OK() : R.FAIL();
}
}
package ***.alatus.web;
import ***.alatus.model.TUser;
import ***.alatus.query.UserQuery;
import ***.alatus.result.R;
import ***.alatus.service.UserService;
import ***.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.*;
@RestController
public class UserController {
@Resource
private UserService userService;
// 获取登录信息
@GetMapping(value = "/api/login/info")
public R loginInfo(Authentication authentication){
TUser tUser = (TUser) authentication.getPrincipal();
return R.OK(tUser);
}
//免登录验证
//因为发送的请求过来首先会过filter那一关,能到这说明token验证都通过了,我们直接返回200即可
@GetMapping(value = "/api/login/free")
public R freeLogin(){
return R.OK();
}
// 查询用户列表
@GetMapping(value = "/api/users")
// 传递参数current,可传可不传,
public R userPage(@RequestParam(value = "current",required = false) Integer current){
if(current == null){
current = 1;
}
// 返回结果为PageInfo
PageInfo<TUser> userByPage = userService.getUserByPage(current);
return R.OK(userByPage);
}
@GetMapping(value = "/api/user/{id}")
public R userDetail(@PathVariable(value = "id")Integer id){
TUser tUser = userService.getUserById(id);
return R.OK(tUser);
}
@PostMapping(value = "/api/user/add")
public R addUser(UserQuery userQuery){
int save = userService.saveUser(userQuery);
return save >= 1 ? R.OK() : R.FAIL();
}
}