package com.qianwen.smartman.modules.visual.service.impl;
|
|
import java.util.Comparator;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.mp.base.BaseServiceImpl;
|
import com.qianwen.core.tool.node.ForestNodeMerger;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.utils.Lambda;
|
import com.qianwen.smartman.modules.visual.convert.VisualCompConvert;
|
import com.qianwen.smartman.modules.visual.convert.VisualCompTypeConvert;
|
import com.qianwen.smartman.modules.visual.entity.VisualComp;
|
import com.qianwen.smartman.modules.visual.entity.VisualCompType;
|
import com.qianwen.smartman.modules.visual.entity.VisualCompTypeEnum;
|
import com.qianwen.smartman.modules.visual.mapper.VisualCompTypeMapper;
|
import com.qianwen.smartman.modules.visual.service.IVisualCompService;
|
import com.qianwen.smartman.modules.visual.service.IVisualCompTypeService;
|
import com.qianwen.smartman.modules.visual.vo.VisualCompMenuDetailVO;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/visual/service/impl/VisualCompTypeServiceImpl.class */
|
public class VisualCompTypeServiceImpl extends BaseServiceImpl<VisualCompTypeMapper, VisualCompType> implements IVisualCompTypeService {
|
private final IVisualCompService compService;
|
|
|
|
public VisualCompTypeServiceImpl(final IVisualCompService compService) {
|
this.compService = compService;
|
}
|
|
@Override // org.springblade.modules.visual.service.IVisualCompTypeService
|
@Transactional
|
public boolean remove(List<Long> ids) {
|
removeByIds(ids);
|
List<VisualCompType> child = list(Lambda.in(VisualCompType::getParentId, ids).select(VisualCompType::getId ));
|
/*
|
List<VisualCompType> child = list(Lambda.in((v0) -> {
|
return v0.getParentId();
|
}, ids).select((v0) -> {
|
return v0.getId();
|
}));*/
|
List<Long> childIds = child.stream().map((v0) -> {
|
return v0.getId();
|
}).collect(Collectors.toList());
|
removeByIds(childIds);
|
return true;
|
}
|
|
@Override // org.springblade.modules.visual.service.IVisualCompTypeService
|
public List<VisualCompMenuDetailVO> treeMenu(Map<String, Object> params) {
|
List<Long> componentIds = (List<Long>) params.get("componentIds");
|
List<VisualCompType> list = list(Lambda.<VisualCompType>create().eq(VisualCompType::getStatus, Integer.valueOf(VisualCompTypeEnum.ENABLE.getValue())).orderByAsc(VisualCompType::getOrderNum));
|
/*
|
List<VisualCompType> list = list((Wrapper) ((ExtraLambdaQueryWrapper) Lambda.create().eq((v0) -> {
|
return v0.getStatus();
|
}, Integer.valueOf(VisualCompTypeEnum.ENABLE.getValue()))).orderByAsc((v0) -> {
|
return v0.getOrderNum();
|
}));*/
|
List<VisualCompMenuDetailVO> menuDetailVOS = VisualCompTypeConvert.INSTANCE.convertMenu(list);
|
List<VisualComp> visualCompList = this.compService.list(Lambda.in((componentIds == null || componentIds.size() == 0) ? false : true, (v0) -> {
|
return v0.getId();
|
}, componentIds));
|
list.stream().filter(item -> {
|
return !Func.equals(item.getParentId(), 0L);
|
}).forEach(item2 -> {
|
List<VisualComp> compList = visualCompList.stream().filter(comp -> {
|
return comp.getType().equals(item2.getType());
|
}).sorted(Comparator.comparing((v0) -> {
|
return v0.getOrderNum();
|
})).collect(Collectors.toList());
|
List<VisualCompMenuDetailVO> visualCompMenuDetailVOS = compList.stream().map(comp2 -> {
|
return VisualCompConvert.INSTANCE.convertMenu(comp2, item2.getId());
|
}).collect(Collectors.toList());
|
menuDetailVOS.addAll(visualCompMenuDetailVOS);
|
});
|
return ForestNodeMerger.merge(menuDetailVOS);
|
}
|
|
@Transactional
|
public boolean save(VisualCompType entity) {
|
if (entity.getParentId() == null) {
|
entity.setParentId(0L);
|
}
|
VisualCompType exist = (VisualCompType) getOne(Lambda.eq((v0) -> {
|
return v0.getType();
|
}, entity.getType()));
|
if (exist != null) {
|
throw new ServiceException("已经存在相同类型:" + exist.getName());
|
}
|
return super.save(entity);
|
}
|
|
@Transactional
|
public boolean updateById(VisualCompType entity) {
|
VisualCompType exist = (VisualCompType) getOne(Lambda.eq((v0) -> {
|
return v0.getType();
|
}, entity.getType()));
|
if (exist != null && !exist.getId().equals(entity.getId())) {
|
throw new ServiceException("已经存在相同的类型:" + exist.getName());
|
}
|
if (entity.getParentId().longValue() == 0) {
|
lambdaUpdate().set(VisualCompType::getStatus, entity.getStatus()).eq(VisualCompType::getParentId, entity.getId()).update();
|
/*
|
((LambdaUpdateChainWrapper) ((LambdaUpdateChainWrapper) lambdaUpdate().set((v0) -> {
|
return v0.getStatus();
|
}, entity.getStatus())).eq((v0) -> {
|
return v0.getParentId();
|
}, entity.getId())).update();*/
|
}
|
return super.updateById(entity);
|
}
|
}
|