cuikaidong
2025-06-12 44e283b774bb1168d0c17dfe5070a1ca8e2274cd
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package org.jeecg.modules.system.service.impl;
 
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Collectors;
 
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.entity.SysUserDepart;
import org.jeecg.modules.system.mapper.SysUserDepartMapper;
import org.jeecg.modules.system.model.DepartIdModel;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserDepartService;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
/**
 * <P>
 * 用户部门表实现类
 * <p/>
 * @Author ZhiLin
 *@since 2019-02-22
 */
@Service
public class SysUserDepartServiceImpl extends ServiceImpl<SysUserDepartMapper, SysUserDepart> implements ISysUserDepartService {
    @Autowired
    private ISysDepartService sysDepartService;
    @Autowired
    private ISysUserService sysUserService;
    
 
    /**
     * 根据用户id查询部门信息
     */
    @Override
    public List<DepartIdModel> queryDepartIdsOfUser(String userId) {
        LambdaQueryWrapper<SysUserDepart> queryUDep = new LambdaQueryWrapper<SysUserDepart>();
        LambdaQueryWrapper<SysDepart> queryDep = new LambdaQueryWrapper<SysDepart>();
        try {
            queryUDep.eq(SysUserDepart::getUserId, userId);
            List<String> depIdList = new ArrayList<>();
            List<DepartIdModel> depIdModelList = new ArrayList<>();
            List<SysUserDepart> userDepList = this.list(queryUDep);
            if(userDepList != null && userDepList.size() > 0) {
            for(SysUserDepart userDepart : userDepList) {
                    depIdList.add(userDepart.getDepId());
                }
            queryDep.in(SysDepart::getId, depIdList);
            List<SysDepart> depList = sysDepartService.list(queryDep);
            if(depList != null || depList.size() > 0) {
                for(SysDepart depart : depList) {
                    depIdModelList.add(new DepartIdModel().convertByUserDepart(depart));
                }
            }
            return depIdModelList;
            }
        }catch(Exception e) {
            e.fillInStackTrace();
        }
        return null;
        
        
    }
 
 
    /**
     * 根据部门id查询用户信息
     */
    @Override
    public List<SysUser> queryUserByDepId(String depId) {
        LambdaQueryWrapper<SysUserDepart> queryUDep = new LambdaQueryWrapper<SysUserDepart>();
        queryUDep.eq(SysUserDepart::getDepId, depId);
        List<String> userIdList = new ArrayList<>();
        List<SysUserDepart> uDepList = this.list(queryUDep);
        if(uDepList != null && uDepList.size() > 0) {
            for(SysUserDepart uDep : uDepList) {
                userIdList.add(uDep.getUserId());
            }
            List<SysUser> userList = (List<SysUser>) sysUserService.listByIds(userIdList);
            //update-begin-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
            for (SysUser sysUser : userList) {
                sysUser.setSalt("");
                sysUser.setPassword("");
            }
            //update-end-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
            return userList;
        }
        return new ArrayList<SysUser>();
    }
 
    /**
     * 根据部门code,查询当前部门和下级部门的 用户信息
     */
    @Override
    public List<SysUser> queryUserByDepCode(String depCode,String realname) {
        LambdaQueryWrapper<SysDepart> queryByDepCode = new LambdaQueryWrapper<SysDepart>();
        queryByDepCode.likeRight(SysDepart::getOrgCode,depCode);
        List<SysDepart> sysDepartList = sysDepartService.list(queryByDepCode);
        List<String> depIds = sysDepartList.stream().map(SysDepart::getId).collect(Collectors.toList());
 
        LambdaQueryWrapper<SysUserDepart> queryUDep = new LambdaQueryWrapper<SysUserDepart>();
        queryUDep.in(SysUserDepart::getDepId, depIds);
        List<String> userIdList = new ArrayList<>();
        List<SysUserDepart> uDepList = this.list(queryUDep);
        if(uDepList != null && uDepList.size() > 0) {
            for(SysUserDepart uDep : uDepList) {
                userIdList.add(uDep.getUserId());
            }
            LambdaQueryWrapper<SysUser> queryUser = new LambdaQueryWrapper<SysUser>();
            queryUser.in(SysUser::getId,userIdList);
            if(oConvertUtils.isNotEmpty(realname)){
                queryUser.like(SysUser::getRealname,realname.trim());
            }
            List<SysUser> userList = (List<SysUser>) sysUserService.list(queryUser);
            //update-begin-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
            for (SysUser sysUser : userList) {
                sysUser.setSalt("");
                sysUser.setPassword("");
            }
            //update-end-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
            return userList;
        }
        return new ArrayList<SysUser>();
    }
    
}