package org.hepx.ticket.service;
import org.hepx.ticket.entity.User;
import org.hepx.ticket.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private PasswordHelper passwordHelper;
@Autowired
private RoleService roleService;
/**
* 创建用户
*
* @param user
*/
public User createUser(User user) {
//加密密码
passwordHelper.encryptPassword(user);
//默认不锁
user.setLocked(Boolean.FALSE);
userMapper.createUser(user);
return user;
}
@Override
public User updateUser(User user) {
userMapper.updateUser(user);
return user;
}
@Override
public void deleteUser(Long userId) {
userMapper.deleteUser(userId);
}
/**
* 修改密码
*
* @param userId
* @param newPassword
*/
public void changePassword(Long userId, String newPassword) {
User user = userMapper.findOne(userId);
user.setPassword(newPassword);
passwordHelper.encryptPassword(user);
userMapper.updateUser(user);
}
@Override
public User findOne(Long userId) {
return userMapper.findOne(userId);
}
@Override
public List<User> findAll() {
return userMapper.findAll();
}
/**
* 根据用户名查找用户
*
* @param username
* @return
*/
public User findByUsername(String username) {
return userMapper.findByUsername(username);
}
/**
* 根据用户名查找其角色
*
* @param username
* @return
*/
public Set<String> findRoles(String username) {
User user = findByUsername(username);
if (user == null) {
return Collections.EMPTY_SET;
}
return roleService.findRoles(user.getRoleIds().toArray(new Long[0]));
}
/**
* 根据用户名查找其权限
*
* @param username
* @return
*/
public Set<String> findPermissions(String username) {
User user = findByUsername(username);
if (user == null) {
return Collections.EMPTY_SET;
}
return roleService.findPermissions(user.getRoleIds().toArray(new Long[0]));
}
}