whyczh
2021-12-10 1ab06fa644b400182dde1621c60f904c4711f2b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.mapper.CommonMapper;
import com.whyc.mapper.PermitGroupMapper;
import com.whyc.mapper.PermitGroupUserMapper;
import com.whyc.mapper.UserInfMapper;
import com.whyc.pojo.PermitGroup;
import com.whyc.pojo.PermitGroupUser;
import com.whyc.pojo.UserInf;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;
 
import javax.annotation.Resource;
import java.sql.Wrapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
@Service
@Transactional
public class PermitGroupService {
 
    @Resource
    private PermitGroupMapper mapper;
 
    @Resource
    private PermitGroupUserMapper permitGroupUserMapper;
 
    @Resource
    private CommonMapper commonMapper;
 
    @Resource
    private UserInfMapper userInfMapper;
 
    public void add(List<PermitGroup> permitGroupList) {
        //权限组id生成
        int maxValue = (int) commonMapper.getMaxValue("db_user", "tb_user_permitgroup", "permit_group_id");
        int newPermitGroupId = maxValue+1;
        permitGroupList.stream().forEach(permitGroup -> permitGroup.setPermitGroupId(newPermitGroupId));
        mapper.insertBatchSomeColumn(permitGroupList);
    }
 
 
    public void update(List<PermitGroup> permitGroupList) {
        //先删除,后增加
        UpdateWrapper<PermitGroup> wrapper = Wrappers.update();
        wrapper.eq("permit_group_id",permitGroupList.get(0).getPermitGroupId());
        mapper.delete(wrapper);
 
        mapper.insertBatchSomeColumn(permitGroupList);
    }
 
 
    public void delete(Integer permitGroupId) {
        //删除权限组表记录
        UpdateWrapper<PermitGroup> groupWrapper = Wrappers.update();
        groupWrapper.eq("permit_group_id",permitGroupId);
        mapper.delete(groupWrapper);
        //删除权限组对应的用户记录
        UpdateWrapper<PermitGroupUser> groupUserWrapper = Wrappers.update();
        groupUserWrapper.eq("permit_group_id",permitGroupId);
        permitGroupUserMapper.delete(groupUserWrapper);
 
    }
 
    public List<PermitGroup> getList() {
        QueryWrapper<PermitGroup> wrapper = Wrappers.query();
        wrapper.select("distinct permit_group_id,permit_group_name");
        return mapper.selectList(wrapper);
    }
 
    public Map getPermitGroupInfo(Integer permitGroupId) {
        Map<String,List> resultMap = new HashMap<>();
        //查询权限组已添加的用户
        List<UserInf> relatedUserInfList = permitGroupUserMapper.getUserInf(permitGroupId);
        //查询权限组未添加的用户
        List<UserInf> allUserInfList = userInfMapper.selectList(null);
        List<UserInf> notRelatedUserInfList = allUserInfList.stream().filter(userInf -> !relatedUserInfList.contains(userInf)).collect(Collectors.toList());
        //查询权限组的明细权限
        QueryWrapper<PermitGroup> wrapper = Wrappers.query();
        wrapper.eq("permit_group_id",permitGroupId);
        List<PermitGroup> permitGroupList = mapper.selectList(wrapper);
 
        resultMap.put("usersAdded",relatedUserInfList);
        resultMap.put("usersNotAdded",notRelatedUserInfList);
        resultMap.put("permits",permitGroupList);
        return resultMap;
    }
}