|
|
package com.yanzhen.service;
|
|
|
|
|
|
import com.yanzhen.mapper.MenuMapper;
|
|
|
import com.yanzhen.mapper.UserMapper;
|
|
|
import com.yanzhen.entity.User;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
@Service
|
|
|
public class UserService用户管理 { //“用户管理----管理员”
|
|
|
|
|
|
@Autowired // 自动注入UserMapper
|
|
|
private UserMapper userMapper;
|
|
|
@Autowired // 自动注入MenuMapper
|
|
|
private MenuMapper menuMapper;
|
|
|
|
|
|
public int create(User user) {//目的:在数据库中创建一个新的用户记录,并关联菜单权限
|
|
|
int row = 0; // 初始化受影响的行数为0
|
|
|
userMapper.create(user); // 调用userMapper的create方法将用户信息保存在数据库中
|
|
|
for (Integer menuId : user.getIds()) { // 遍历用户关联的菜单ID列表
|
|
|
menuMapper.createUserMenu(user.getId(),menuId); // 将用户和菜单的关系保存到中间表
|
|
|
}
|
|
|
row = 1; // 设置受影响的行数为1,表示成功创建一条记录
|
|
|
return row; // 返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public int delete(String ids) {// 目的:根据多个ID删除对应的用户记录,并清除中间表中的关联关系
|
|
|
String[] arr = ids.split(","); // 将传入的字符串按逗号分割成数组
|
|
|
int row = 0; // 初始化受影响的行数为0
|
|
|
for (String s : arr) { // 遍历数组中的每个元素
|
|
|
if(!StringUtils.isEmpty(s)){ // 如果元素不为空
|
|
|
menuMapper.deleteUserMenu(Integer.parseInt(s)); // 删除中间表中对应的记录
|
|
|
userMapper.delete(Integer.parseInt(s)); // 删除用户表中对应的记录
|
|
|
row++; // 增加受影响的行数
|
|
|
}
|
|
|
}
|
|
|
return row; // 返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public int delete(Integer id) {// 目的:该函数通过两步操作来删除用户及其相关的菜单记录:首先删除中间表中的记录,然后删除用户表中的记录。
|
|
|
menuMapper.deleteUserMenu(id); // 删除中间表中对应的记录
|
|
|
return userMapper.delete(id); // 删除用户表中对应的记录并返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public int update(User user) {// 目的:更新用户信息,并更新中间表中的菜单关系,
|
|
|
int row = 0; // 初始化受影响的行数为0
|
|
|
userMapper.update(user); // 更新用户信息
|
|
|
menuMapper.deleteUserMenu(user.getId()); // 删除旧的用户-菜单关系
|
|
|
for (Integer menuId : user.getIds()) { // 遍历新的用户-菜单关系
|
|
|
menuMapper.createUserMenu(user.getId(),menuId); // 保存新的用户-菜单关系
|
|
|
}
|
|
|
row = 1; // 设置受影响的行数为1,表示成功更新一条记录
|
|
|
return row; // 返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public int updatePwd(User user) {// 目的:该函数 updatePwd 的主要作用是通过调用 userMapper 对象的 updateSelective 方法来更新用户密码。
|
|
|
|
|
|
return userMapper.updateSelective(user); // 更新用户密码并返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public int updateSelective(User user) {// 目的:该函数通过调用多个数据访问对象(DAO)的方法,实现了对用户信息的选择性更新以及用户-菜单关系的更新。
|
|
|
|
|
|
int row = 0; // 初始化受影响的行数为0
|
|
|
userMapper.updateSelective(user); // 选择性更新用户信息
|
|
|
menuMapper.deleteUserMenu(user.getId()); // 删除旧的用户-菜单关系
|
|
|
for (Integer menuId : user.getIds()) { // 遍历新的用户-菜单关系
|
|
|
menuMapper.createUserMenu(user.getId(),menuId); // 保存新的用户-菜单关系
|
|
|
}
|
|
|
row = 1; // 设置受影响的行数为1,表示成功更新一条记录
|
|
|
return row; // 返回受影响的行数
|
|
|
}
|
|
|
|
|
|
public PageInfo<User> query(User user) {//该函数的主要作用是根据传入的用户对象进行分页查询,并返回包含用户信息的分页结果。
|
|
|
if(user != null && user.getPage() != null){ // 如果用户对象不为空且分页参数不为空
|
|
|
PageHelper.startPage(user.getPage(),user.getLimit()); // 设置分页参数
|
|
|
}
|
|
|
return new PageInfo<User>(userMapper.query(user)); // 查询用户列表并返回分页信息
|
|
|
}
|
|
|
|
|
|
public User login(String userName,String password){//实现了一个简单的用户登录功能,通过调用数据访问层的 login 方法,根据用户名和密码查询用户信息并返回。
|
|
|
return userMapper.login(userName,password); // 根据用户名和密码查询用户信息并返回
|
|
|
}
|
|
|
|
|
|
public User detail(Integer id) {// 目的:该函数的主要作用是通过调用 userMapper 对象的 detail 方法,根据用户ID查询用户的详细信息。
|
|
|
|
|
|
return userMapper.detail(id); // 根据用户ID查询用户详情并返回
|
|
|
}
|
|
|
|
|
|
public int count(User user) {// 目的:定义了一个名为 count 的方法,用于统计符合特定条件的用户数量。
|
|
|
|
|
|
return userMapper.count(user); // 统计符合条件的用户数量并返回
|
|
|
}
|
|
|
} |