|
|
|
@ -1,27 +1,67 @@
|
|
|
|
|
package com.supervision.knowsub.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.supervision.knowsub.model.SystemBase;
|
|
|
|
|
import com.supervision.knowsub.model.SystemBaseDeptRelation;
|
|
|
|
|
import com.supervision.knowsub.service.SystemBaseDeptRelationService;
|
|
|
|
|
import com.supervision.knowsub.service.SystemBaseService;
|
|
|
|
|
import com.supervision.knowsub.mapper.SystemBaseMapper;
|
|
|
|
|
import com.supervision.knowsub.vo.sublibrary.DeptInfo;
|
|
|
|
|
import com.supervision.knowsub.vo.sublibrary.SubLibraryReqVo;
|
|
|
|
|
import com.supervision.knowsub.vo.sublibrary.SubLibraryResVo;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author Administrator
|
|
|
|
|
* @description 针对表【ks_system_base(应用子库)】的数据库操作Service实现
|
|
|
|
|
* @createDate 2024-06-24 11:35:15
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
|
public class SystemBaseServiceImpl extends ServiceImpl<SystemBaseMapper, SystemBase>
|
|
|
|
|
implements SystemBaseService{
|
|
|
|
|
|
|
|
|
|
private final SystemBaseDeptRelationService systemBaseDeptRelationService;
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<SubLibraryResVo> listSubLibrary(SubLibraryReqVo subLibraryReqVo, Integer pageNum, Integer pageSize) {
|
|
|
|
|
return super.getBaseMapper().listSubLibrary(subLibraryReqVo,new Page<>(pageNum,pageSize));
|
|
|
|
|
|
|
|
|
|
Page<SystemBase> page = super.lambdaQuery().eq(StrUtil.isNotEmpty(subLibraryReqVo.getBaseCode()), SystemBase::getBaseCode, subLibraryReqVo.getBaseCode())
|
|
|
|
|
.like(StrUtil.isNotEmpty(subLibraryReqVo.getBaseName()), SystemBase::getBaseName, subLibraryReqVo.getBaseName())
|
|
|
|
|
.page(new Page<>(pageNum, pageSize));
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(page.getRecords())){
|
|
|
|
|
return page.convert(systemBase -> BeanUtil.toBean(systemBase, SubLibraryResVo.class));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 关联部门信息
|
|
|
|
|
List<String> systemBaseIds = page.getRecords().stream().map(SystemBase::getId).toList();
|
|
|
|
|
List<SystemBaseDeptRelation> relationList = systemBaseDeptRelationService.lambdaQuery().in(SystemBaseDeptRelation::getBaseId, systemBaseIds).list();
|
|
|
|
|
// 聚合部门信息,方便添加到SubLibraryResVo信息中
|
|
|
|
|
Map<String, List<DeptInfo>> deptIdMapDeptInfo = relationList.stream().collect(
|
|
|
|
|
Collectors.groupingBy(SystemBaseDeptRelation::getBaseId, Collectors.mapping(relation -> {
|
|
|
|
|
DeptInfo deptInfo = new DeptInfo();
|
|
|
|
|
deptInfo.setDeptId(relation.getDeptId());
|
|
|
|
|
return deptInfo;
|
|
|
|
|
}, Collectors.toList())));
|
|
|
|
|
|
|
|
|
|
// 封装返回
|
|
|
|
|
return page.convert(systemBase -> {
|
|
|
|
|
SubLibraryResVo subLibraryResVo = BeanUtil.toBean(systemBase, SubLibraryResVo.class);
|
|
|
|
|
subLibraryResVo.setDeptInfoList(deptIdMapDeptInfo.get(systemBase.getId()));
|
|
|
|
|
return subLibraryResVo;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|