|
|
|
@ -8,16 +8,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.dromara.system.domain.SysDesignDataField;
|
|
|
|
|
import org.dromara.system.domain.SysDesignPageEdges;
|
|
|
|
|
import org.dromara.system.domain.SysDesignPagePoint;
|
|
|
|
|
import org.dromara.system.mapper.SysDesignPageEdgesMapper;
|
|
|
|
|
import org.dromara.system.mapper.SysDesignPagePointMapper;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.dromara.system.domain.bo.SysDesignPageConfigBo;
|
|
|
|
|
import org.dromara.system.domain.vo.SysDesignPageConfigVo;
|
|
|
|
|
import org.dromara.system.domain.SysDesignPageConfig;
|
|
|
|
|
import org.dromara.system.mapper.SysDesignPageConfigMapper;
|
|
|
|
|
import org.dromara.system.service.ISysDesignPageConfigService;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 大屏设计页面配置Service业务层处理
|
|
|
|
@ -31,6 +36,10 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
|
|
|
|
|
private final SysDesignPageConfigMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
private final SysDesignPagePointMapper designPagePointMapper;
|
|
|
|
|
|
|
|
|
|
private final SysDesignPageEdgesMapper designPageEdgesMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询大屏设计页面配置
|
|
|
|
|
*
|
|
|
|
@ -39,7 +48,12 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public SysDesignPageConfigVo queryById(Long pageConfigId) {
|
|
|
|
|
return baseMapper.selectVoById(pageConfigId);
|
|
|
|
|
SysDesignPageConfigVo designPageConfigVo = baseMapper.selectVoById(pageConfigId);
|
|
|
|
|
List<SysDesignPagePoint> designPagePointList = getDesignPagePoints(pageConfigId);
|
|
|
|
|
designPageConfigVo.setDesignPagePointList(designPagePointList);
|
|
|
|
|
List<SysDesignPageEdges> designPageEdgesList = getDesignPageEdges(pageConfigId);
|
|
|
|
|
designPageConfigVo.setDesignPageEdgesList(designPageEdgesList);
|
|
|
|
|
return designPageConfigVo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -53,6 +67,13 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
public TableDataInfo<SysDesignPageConfigVo> queryPageList(SysDesignPageConfigBo bo, PageQuery pageQuery) {
|
|
|
|
|
MPJLambdaWrapper<SysDesignPageConfig> lqw = buildQueryWrapper(bo);
|
|
|
|
|
Page<SysDesignPageConfigVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
// List<SysDesignPageConfigVo> records = result.getRecords();
|
|
|
|
|
// for (SysDesignPageConfigVo record : records) {
|
|
|
|
|
// List<SysDesignPagePoint> designPagePointList = getDesignPagePoints(record.getPageConfigId());
|
|
|
|
|
// record.setDesignPagePointList(designPagePointList);
|
|
|
|
|
// List<SysDesignPageEdges> designPageEdgesList = getDesignPageEdges(record.getPageConfigId());
|
|
|
|
|
// record.setDesignPageEdgesList(designPageEdgesList);
|
|
|
|
|
// }
|
|
|
|
|
return TableDataInfo.build(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -94,13 +115,28 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
* @param bo 大屏设计页面配置
|
|
|
|
|
* @return 是否新增成功
|
|
|
|
|
*/
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean insertByBo(SysDesignPageConfigBo bo) {
|
|
|
|
|
SysDesignPageConfig add = MapstructUtils.convert(bo, SysDesignPageConfig.class);
|
|
|
|
|
List<SysDesignPagePoint> designPagePointList = bo.getDesignPagePointList();
|
|
|
|
|
List<SysDesignPageEdges> designPageEdgesList = bo.getDesignPageEdgesList();
|
|
|
|
|
validEntityBeforeSave(add);
|
|
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
|
|
if (flag) {
|
|
|
|
|
bo.setPageConfigId(add.getPageConfigId());
|
|
|
|
|
if (!designPagePointList.isEmpty()) {
|
|
|
|
|
for (SysDesignPagePoint designPagePoint : designPagePointList) {
|
|
|
|
|
designPagePoint.setPageConfigId(add.getPageConfigId());
|
|
|
|
|
designPagePointMapper.insert(designPagePoint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!designPageEdgesList.isEmpty()) {
|
|
|
|
|
for (SysDesignPageEdges designPageEdges : designPageEdgesList) {
|
|
|
|
|
designPageEdges.setPageConfigId(add.getPageConfigId());
|
|
|
|
|
designPageEdgesMapper.insert(designPageEdges);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
@ -111,10 +147,51 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
* @param bo 大屏设计页面配置
|
|
|
|
|
* @return 是否修改成功
|
|
|
|
|
*/
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateByBo(SysDesignPageConfigBo bo) {
|
|
|
|
|
SysDesignPageConfig update = MapstructUtils.convert(bo, SysDesignPageConfig.class);
|
|
|
|
|
validEntityBeforeSave(update);
|
|
|
|
|
List<SysDesignPagePoint> designPagePointList = bo.getDesignPagePointList();
|
|
|
|
|
List<SysDesignPageEdges> designPageEdgesList = bo.getDesignPageEdgesList();
|
|
|
|
|
List<SysDesignPagePoint> oldDesignPagePoints = getDesignPagePoints(bo.getPageConfigId());
|
|
|
|
|
List<SysDesignPageEdges> oldDesignPageEdges = getDesignPageEdges(bo.getPageConfigId());
|
|
|
|
|
|
|
|
|
|
if (!designPagePointList.isEmpty()) {
|
|
|
|
|
for (SysDesignPagePoint designPagePoint : designPagePointList) {
|
|
|
|
|
designPagePointMapper.insertOrUpdate(designPagePoint);
|
|
|
|
|
}
|
|
|
|
|
Set<String> existingPagePointIds = new HashSet<>(designPagePointList.size());
|
|
|
|
|
designPagePointList.forEach(point -> existingPagePointIds.add(point.getPagePointId()));
|
|
|
|
|
List<String> filteredPagePointIds = new ArrayList<>(oldDesignPagePoints.size());
|
|
|
|
|
for (SysDesignPagePoint point : oldDesignPagePoints) {
|
|
|
|
|
String pagePointId = point.getPagePointId();
|
|
|
|
|
if (!existingPagePointIds.contains(pagePointId)) {
|
|
|
|
|
filteredPagePointIds.add(pagePointId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (String pagePointId : filteredPagePointIds) {
|
|
|
|
|
designPagePointMapper.deleteById(pagePointId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!designPageEdgesList.isEmpty()) {
|
|
|
|
|
for (SysDesignPageEdges designPageEdges : designPageEdgesList) {
|
|
|
|
|
designPageEdgesMapper.insertOrUpdate(designPageEdges);
|
|
|
|
|
}
|
|
|
|
|
// 获取现有边ID集合(用于快速判断是否存在)
|
|
|
|
|
Set<String> existingEdgeIds = new HashSet<>(designPageEdgesList.size());
|
|
|
|
|
designPageEdgesList.forEach(edge -> existingEdgeIds.add(edge.getPageEdgesId())); // 假设边ID字段为getEdgeId()
|
|
|
|
|
List<String> edgesToDelete = new ArrayList<>(oldDesignPageEdges.size());
|
|
|
|
|
for (SysDesignPageEdges edge : oldDesignPageEdges) {
|
|
|
|
|
String edgeId = edge.getPageEdgesId();
|
|
|
|
|
if (!existingEdgeIds.contains(edgeId)) {
|
|
|
|
|
edgesToDelete.add(edgeId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (String edgeId : edgesToDelete) {
|
|
|
|
|
designPageEdgesMapper.deleteById(edgeId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -139,4 +216,30 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi
|
|
|
|
|
}
|
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据页面配置ID获取设计页面点列表
|
|
|
|
|
*
|
|
|
|
|
* @param pageConfigId 页面配置ID
|
|
|
|
|
* @return 页面点列表
|
|
|
|
|
*/
|
|
|
|
|
private List<SysDesignPagePoint> getDesignPagePoints(Long pageConfigId) {
|
|
|
|
|
MPJLambdaWrapper<SysDesignPagePoint> lqw = JoinWrappers.lambda(SysDesignPagePoint.class);
|
|
|
|
|
lqw.eq(SysDesignPagePoint::getPageConfigId, pageConfigId);
|
|
|
|
|
return designPagePointMapper.selectList(lqw);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据页面配置ID获取设计页面边列表
|
|
|
|
|
*
|
|
|
|
|
* @param pageConfigId 页面配置ID
|
|
|
|
|
* @return 页面边列表
|
|
|
|
|
*/
|
|
|
|
|
private List<SysDesignPageEdges> getDesignPageEdges(Long pageConfigId) {
|
|
|
|
|
MPJLambdaWrapper<SysDesignPageEdges> lqw = JoinWrappers.lambda(SysDesignPageEdges.class);
|
|
|
|
|
lqw.eq(SysDesignPageEdges::getPageConfigId, pageConfigId);
|
|
|
|
|
return designPageEdgesMapper.selectList(lqw);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|