package com.moral.api.service.impl;
|
|
import io.swagger.models.auth.In;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
import java.util.UUID;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.moral.api.entity.Group;
|
import com.moral.api.entity.Menu;
|
import com.moral.api.entity.User;
|
|
import com.moral.api.mapper.UserMapper;
|
import com.moral.api.service.UserService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.moral.redis.RedisUtil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* <p>
|
* 用户表 服务实现类
|
* </p>
|
*
|
* @author moral
|
* @since 2021-03-09
|
*/
|
@Service
|
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
|
|
@Autowired
|
private UserMapper userMapper;
|
|
@Override
|
public Map<String, Object> login(String account, String password) {
|
Map<String, Object> resultMap = new HashMap<>();
|
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("account", account).eq("password", password).eq("is_Delete", "0");
|
User user = userMapper.selectOne(queryWrapper);
|
String msg;
|
String token = null;
|
if (user == null) {
|
msg = "用户名或密码错误";
|
} else if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
|
msg = "你的账户已过期";
|
} else {
|
msg = "登陆成功";
|
token = user.getId() + "-" + UUID.randomUUID().toString().replaceAll("-", "");
|
Set<Group> groups = userMapper.selectUserGroup(user.getId());
|
Set<Menu> menus = userMapper.selectUserMenu(user.getId());
|
user.setGroups(groups);
|
user.setMenus(menus);
|
RedisUtil.set(token, user, 1296000);
|
}
|
resultMap.put("token", token);
|
resultMap.put("msg", msg);
|
return resultMap;
|
}
|
|
@Override
|
public Map<String, Object> addUser(User user, Integer userId) {
|
Map<String, Object> resultMap = new HashMap<>();
|
User currentUser = userMapper.selectById(userId);
|
if (!currentUser.getIsAdmin()) {
|
resultMap.put("flag", false);
|
resultMap.put("msg", "添加失败,没有权限");
|
return resultMap;
|
}
|
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("account", user.getAccount());
|
userMapper.selectOne(queryWrapper);
|
if (userMapper.selectOne(queryWrapper) == null) {
|
user.setOrganizationId(currentUser.getOrganizationId());
|
user.setExpireTime(currentUser.getExpireTime());
|
userMapper.insert(user);
|
resultMap.put("flag", true);
|
resultMap.put("msg", "添加成功");
|
} else {
|
resultMap.put("flag", false);
|
resultMap.put("msg", "添加失败,账户名已存在");
|
}
|
return resultMap;
|
}
|
|
@Override
|
public Map<String, Object> deleteUser(Integer userId, Integer currentUserId) {
|
Map<String, Object> resultMap = new HashMap<>();
|
User currentUser = userMapper.selectById(currentUserId);
|
if (!currentUser.getIsAdmin()) {
|
resultMap.put("flag", false);
|
resultMap.put("msg", "删除失败,没有权限");
|
} else {
|
User user = new User();
|
user.setId(userId);
|
user.setIsDelete("1");
|
userMapper.updateById(user);
|
resultMap.put("flag", true);
|
resultMap.put("msg", "删除成功");
|
}
|
return resultMap;
|
}
|
|
@Override
|
public Map<String, Object> updateUser(User user, Integer currentUserId) {
|
Map<String, Object> resultMap = new HashMap<>();
|
User currentUser = userMapper.selectById(currentUserId);
|
if (!currentUser.getIsAdmin()) {
|
resultMap.put("flag", false);
|
resultMap.put("msg", "修改失败,没有权限");
|
return resultMap;
|
}
|
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("account", user.getAccount());
|
if (userMapper.selectOne(queryWrapper) == null) {
|
userMapper.updateById(user);
|
resultMap.put("flag", true);
|
resultMap.put("msg", "修改成功");
|
} else {
|
resultMap.put("flag", false);
|
resultMap.put("msg", "修改失败,账户已存在");
|
}
|
return resultMap;
|
}
|
|
@Override
|
public List<User> getUsersByOrgId(Integer currentUserId) {
|
User currentUser = userMapper.selectById(currentUserId);
|
if (!currentUser.getIsAdmin()) {
|
return null;
|
}
|
Map<String, Object> queryMap = new HashMap<>();
|
queryMap.put("organizationId", currentUser.getOrganizationId());
|
return userMapper.selectByMap(queryMap);
|
}
|
|
@Override
|
public User getUserById(Integer userId, Integer currentUserId) {
|
User currentUser = userMapper.selectById(currentUserId);
|
if (!currentUser.getIsAdmin()) {
|
return null;
|
}
|
return userMapper.selectById(userId);
|
}
|
}
|