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.

93 lines
3.9 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) {
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) {
return userMapper.updateSelective(user); // 更新用户密码并返回受影响的行数
}
public int updateSelective(User user) {
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){
return userMapper.login(userName,password); // 根据用户名和密码查询用户信息并返回
}
public User detail(Integer id) {
return userMapper.detail(id); // 根据用户ID查询用户详情并返回
}
public int count(User user) {
return userMapper.count(user); // 统计符合条件的用户数量并返回
}
}