You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ssgl/zsq/UserService用户管理.java

96 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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); // 统计符合条件的用户数量并返回
}
}