forked from kidgrow-microservices-platform

zhaoxiaohao
2020-05-14 eaf5199c2eee33f5add31d6dbe17d731eb9eab66
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.constant.CommonConstant;
import com.kidgrow.common.constant.SecurityConstants;
import com.kidgrow.common.context.ClientContextHolder;
import com.kidgrow.common.lock.DistributedLock;
import com.kidgrow.common.model.*;
@@ -14,6 +15,7 @@
import com.kidgrow.usercenter.model.SysUserExcel;
import com.kidgrow.usercenter.service.ISysOrganizationService;
import com.kidgrow.usercenter.service.ISysRoleUserService;
import com.kidgrow.usercenter.service.ISysUserOrgService;
import com.kidgrow.usercenter.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
@@ -27,6 +29,7 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
@@ -54,6 +57,8 @@
    @Autowired
    private ISysOrganizationService organizationService;
    @Autowired
    private ISysUserOrgService iSysUserOrgService;
@@ -203,6 +208,9 @@
            List<Long> userIds = list.stream().map(SysUser::getId).collect(Collectors.toList());
            List<SysRole> sysRoles = roleUserService.findRolesByUserIds(userIds);
//            Map<String, Object> map = new HashMap<String, Object>();
//            List<SysOrganization> sysOrganizationList=organizationService.fin();
            list.forEach(u -> u.setRoles(sysRoles.stream().filter(r -> !ObjectUtils.notEqual(u.getId(), r.getUserId()))
                    .collect(Collectors.toList())));
        }
@@ -279,4 +287,47 @@
        }
        return sysUserExcels;
    }
    @Override
    public ResultBody findAll(Map<String, Object> map) {
        List<SysUser> sysUsers = baseMapper.selectByMap(map);
        return ResultBody.ok().data(sysUsers).msg("操作成功");
    }
    /**
     * 获取当前用的 组织下的所有人员
     * @param request
     * @return
     */
    @Override
    public ResultBody getThisUserOrganizationUser(HttpServletRequest request) {
        String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
        List<SysUser> sysUsers=new ArrayList<>();
        if(StringUtils.isNotBlank(id)){
            QueryWrapper<SysUserOrg> queryWrapper=new QueryWrapper();
            queryWrapper.eq("user_id",id);
            List<SysUserOrg> list = iSysUserOrgService.list(queryWrapper);
            if(list.size()>0){
                List<Long> collect = list.stream().map(e -> e.getOrgId()).collect(Collectors.toList());
                if (collect.size()>0) {
                    queryWrapper=new QueryWrapper<>();
                    queryWrapper.in("org_id",collect);
                    List<SysUserOrg> sysUserOrgs = iSysUserOrgService.list(queryWrapper);
                    List<Long> userIds = sysUserOrgs.stream().map(e -> e.getUserId()).collect(Collectors.toList());
                    QueryWrapper<SysUser> sysUserQueryWrapper=new QueryWrapper();
                    sysUserQueryWrapper.in("id",userIds.stream().distinct().collect(Collectors.toList()));
                    sysUsers= baseMapper.selectList(sysUserQueryWrapper);
                }
            }
        }else {
            return ResultBody.failed("暂无数据");
        }
        return ResultBody.ok().data(sysUsers);
    }
    @Override
    public ResultBody findCountByMap(Map<String, Object> map) {
        Integer integer = baseMapper.selectCountByMap(map);
        return ResultBody.ok().data(integer);
    }
}