|
@@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xy.dto.SysWorkUser.AddDto;
|
|
|
import com.xy.dto.SysWorkUser.PageDto;
|
|
|
import com.xy.dto.SysWorkUser.UpdateDto;
|
|
|
+import com.xy.entity.SysDeptRelation;
|
|
|
import com.xy.entity.SysUserDept;
|
|
|
import com.xy.entity.SysUserRole;
|
|
|
import com.xy.entity.SysWorkUser;
|
|
|
import com.xy.mapper.SysWorkUserMapper;
|
|
|
+import com.xy.service.SysDeptRelationService;
|
|
|
import com.xy.service.SysUserDeptService;
|
|
|
import com.xy.service.SysUserRoleService;
|
|
|
import com.xy.service.SysWorkUserService;
|
|
@@ -26,6 +28,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -48,6 +51,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
|
|
|
private final SysUserRoleService sysUserRoleService;
|
|
|
private final SysUserDeptService sysUserDeptService;
|
|
|
+ private final SysDeptRelationService sysDeptRelationService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -113,12 +117,28 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
|
|
|
@Override
|
|
|
public R<PageBean<SysWorkUserVo>> page(PageDto dto) {
|
|
|
+ Long deptId = dto.getDeptId();
|
|
|
+ List<SysDeptRelation> deptRelations = sysDeptRelationService.list(Wrappers.<SysDeptRelation>lambdaQuery()
|
|
|
+ .eq(SysDeptRelation::getAncestor, deptId));
|
|
|
+ //子部门 含自身
|
|
|
+ List<Long> subDeptIds = new ArrayList<>(16);
|
|
|
+ if (CollUtil.isNotEmpty(deptRelations)) {
|
|
|
+ subDeptIds = deptRelations.stream().map(SysDeptRelation::getDescendant).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ List<SysUserDept> sysUserDeptList = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery().in(SysUserDept::getDeptId, subDeptIds));
|
|
|
+ List<Long> userIds = new ArrayList<>(16);
|
|
|
+ if (CollUtil.isNotEmpty(sysUserDeptList)) {
|
|
|
+ userIds = sysUserDeptList.stream().map(SysUserDept::getWorkUserId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
IPage<SysWorkUser> page = page(toIPage(dto.getPage()), Wrappers.<SysWorkUser>lambdaQuery()
|
|
|
.eq(SysWorkUser::getSysId, dto.getSysId())
|
|
|
.eq(StrUtil.isNotBlank(dto.getAccount()), SysWorkUser::getAccount, dto.getAccount())
|
|
|
.eq(StrUtil.isNotBlank(dto.getEmail()), SysWorkUser::getEmail, dto.getEmail())
|
|
|
.eq(ObjectUtil.isNotEmpty(dto.getStatus()), SysWorkUser::getStatus, dto.getStatus())
|
|
|
+ .in(CollUtil.isNotEmpty(userIds), SysWorkUser::getId, userIds)
|
|
|
);
|
|
|
return R.ok(toPageBean(SysWorkUserVo.class, page));
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|