package com.example.erp.service.userInfo;
|
|
import cn.dev33.satoken.stp.StpUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.example.erp.controller.dto.UserDTO;
|
import com.example.erp.entity.userInfo.Role;
|
import com.example.erp.entity.userInfo.User;
|
import com.example.erp.mapper.userInfo.RoleMapper;
|
import com.example.erp.mapper.userInfo.UserMapper;
|
import com.example.erp.tools.TokenTools;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Collections;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
@DS("user_info")
|
public class UserService {
|
|
private final UserMapper userMapper;
|
private final RoleMapper roleMapper;
|
|
public UserService(UserMapper userMapper, RoleMapper roleMapper) {
|
this.userMapper = userMapper;
|
this.roleMapper = roleMapper;
|
}
|
|
|
@Cacheable(value="users", key="#userDTO.getUserId()")
|
public UserDTO login(UserDTO userDTO) {
|
|
if(StrUtil.isBlank(userDTO.getUserId()) ||StrUtil.isBlank(userDTO.getPass())){
|
return null;
|
}else{
|
int getUserCount=userMapper.checkUser(userDTO.getUserId(),userDTO.getPass());
|
if(getUserCount==1){
|
String token = TokenTools.getToken(userDTO.getUserId(),userDTO.getPass());
|
userDTO.setToken(token);
|
User user = userMapper.findOneLoginName(userDTO.getUserId());
|
userDTO.setUserName(user.getUserName());
|
return userDTO;
|
}
|
return null;
|
|
}
|
}
|
|
@CacheEvict(value="users",key="#id",beforeInvocation=true)
|
public String deleteCache(String id ) {
|
//System.out.println("delete user by id: " + id);
|
return null;
|
|
}
|
|
public String getUserByID(String userId){
|
return userMapper.getUserByID(userId);
|
}
|
|
@Transactional
|
public User register(User user) {
|
User returnUser = new User();
|
if(userMapper.register(user)){
|
User getUser = userMapper.findOne(user.getId());
|
returnUser.setUserName(getUser.getUserName());
|
returnUser.setLoginName(getUser.getLoginName());
|
}
|
return returnUser;
|
}
|
|
/*----------------新版本登陆*/
|
public UserDTO doLogin(UserDTO userDTO) {
|
User user = userMapper.selectOne(new QueryWrapper<User>().
|
eq("login_name", userDTO.getUserId()).eq("password", userDTO.getPass()));
|
if(user!=null){
|
//检查是让有登录,有登录直接退出
|
StpUtil.logout(user.getId());
|
//重新进行登录
|
StpUtil.login(user.getId());
|
userDTO.setPass(null);
|
userDTO.setId(user.getId());
|
userDTO.setUserName(user.getUserName());
|
userDTO.setToken(StpUtil.getTokenValue());
|
return userDTO;
|
}else{
|
return null;
|
}
|
}
|
|
public Boolean isLogin() {
|
// 返回当前用户是否登录
|
return StpUtil.isLogin();
|
}
|
|
public Boolean logout() {
|
StpUtil.logout();
|
return true;
|
}
|
|
public Map<String,List<Object>> findAll() {
|
List<User> users = userMapper.findAll();
|
users.forEach(user -> {
|
user.setPassword(null);
|
});
|
Map<String,List<Object>> map = new HashMap<>();
|
|
map.put("users", Collections.singletonList(users));
|
map.put("role", Collections.singletonList(
|
roleMapper.selectList(
|
new QueryWrapper<Role>()
|
.ne("role","admin")
|
)
|
));
|
return map;
|
}
|
|
public Boolean userDelete(Integer id) {
|
|
return userMapper.userDelete(id);
|
}
|
}
|