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.pp.ProductionSchedulingMapper;
|
import com.example.erp.mapper.userInfo.*;
|
import com.example.erp.tools.TokenTools;
|
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.*;
|
|
@Service
|
@DS("user_info")
|
public class UserService {
|
|
private final UserMapper userMapper;
|
private final RoleMapper roleMapper;
|
private final UserRoleMapper userRoleMapper;
|
|
private final PermissionRoleMapper permissionRoleMapper;
|
private final ProductionSchedulingMapper productionSchedulingMapper;
|
|
public UserService(UserMapper userMapper, RoleMapper roleMapper, PermissionRoleMapper permissionRoleMapper, UserRoleMapper userRoleMapper, ProductionSchedulingMapper productionSchedulingMapper) {
|
this.userMapper = userMapper;
|
this.roleMapper = roleMapper;
|
this.permissionRoleMapper = permissionRoleMapper;
|
this.userRoleMapper = userRoleMapper;
|
this.productionSchedulingMapper = productionSchedulingMapper;
|
}
|
|
|
@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;
|
}
|
|
@Transactional
|
public Boolean updatePassWord(Map<String,Object> object) {
|
boolean saveState = false;
|
int userId =0;
|
String oldPassWord = "";
|
String passWord = "";
|
if (object.get("userId") != null) {
|
userId = Integer.parseInt(object.get("userId").toString());
|
}
|
if (object.get("oldPassword") != null) {
|
oldPassWord = object.get("oldPassword").toString();
|
}
|
if (object.get("password") != null) {
|
passWord = object.get("password").toString();
|
}
|
|
User user =userMapper.findOnePassWord(userId,oldPassWord);
|
if (user!=null){
|
if (userMapper.updatePassWordById(userId,passWord)){
|
saveState = true;
|
}
|
}
|
return saveState;
|
|
}
|
|
@Transactional
|
public Boolean updateUserName(Map<String,Object> object) {
|
boolean saveState = false;
|
int userId =0;
|
String userName = "";
|
if (object.get("userId") != null) {
|
userId = Integer.parseInt(object.get("userId").toString());
|
}
|
if (object.get("userName") != null) {
|
userName = object.get("userName").toString();
|
}
|
|
if (userMapper.updateUserNameById(userId,userName)){
|
saveState = true;
|
}
|
return saveState;
|
|
}
|
|
/*----------------新版本登陆*/
|
public UserDTO doLogin(UserDTO userDTO) {
|
User user = userMapper.selectOne(new QueryWrapper<User>().
|
eq("login_name", userDTO.getUserId())
|
.eq("password", userDTO.getPass())
|
.eq("state",1)
|
);
|
if(user!=null){
|
//检查是让有登录,有登录直接退出
|
StpUtil.logout(user.getId());
|
//重新进行登录
|
StpUtil.login(user.getId());
|
userDTO.setPass(null);
|
userDTO.setId(user.getId());
|
userDTO.setUserName(user.getUserName());
|
userDTO.setAddress(user.getAddress());
|
userDTO.setToken(StpUtil.getTokenValue());
|
Boolean userIsAdmin= userRoleMapper.getUserIsAdmin(user.getId());
|
userDTO.setPermissions(permissionRoleMapper.getUserEditPermission(user.getId(),userIsAdmin));
|
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);
|
}
|
|
public Map<String, Object> selectProcessSv() {
|
Map<String, Object> map = new HashMap<>();
|
map.put("process", productionSchedulingMapper.selectProcess());
|
return map;
|
}
|
|
public Boolean updateProcessSv(Integer id, String process) {
|
return userMapper.updateProcessMp(id,process);
|
}
|
|
public Object findByAddress(Map<String,String> userName) {
|
if(Objects.equals(userName.get("userName"), "")){
|
userName.put("userName", null) ;
|
}
|
List<User> users = userMapper.findByAddress(userName.get("userName"));
|
List<Map<String,Object>> userList = new ArrayList<>();
|
users.forEach(user -> {
|
Map<String,Object> userMap = new HashMap<>();
|
userMap.put("value", user.getLoginName());
|
userMap.put("text", user.getUserName());
|
userList.add(userMap);
|
});
|
Map<String,List<Object>> map = new HashMap<>();
|
|
map.put("users", Collections.singletonList(userList));
|
return map;
|
}
|
|
|
//查询用户优化参数
|
public String getOptimizeParms(String username) {
|
// 获取当前登录用户
|
|
return userMapper.selectOptimizeParmsById(username);
|
}
|
|
}
|