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 query(User user) {//该函数的主要作用是根据传入的用户对象进行分页查询,并返回包含用户信息的分页结果。 if(user != null && user.getPage() != null){ // 如果用户对象不为空且分页参数不为空 PageHelper.startPage(user.getPage(),user.getLimit()); // 设置分页参数 } return new PageInfo(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); // 统计符合条件的用户数量并返回 } }