kaiyu
2021-03-11 4edd63bcd21b999e0782047ca0602f9e915cd94c
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -1,9 +1,26 @@
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;
/**
@@ -17,4 +34,117 @@
@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);
    }
}