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 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 ids) { removeByIds(ids); List child = list(Lambda.in(VisualCompType::getParentId, ids).select(VisualCompType::getId )); /* List child = list(Lambda.in((v0) -> { return v0.getParentId(); }, ids).select((v0) -> { return v0.getId(); }));*/ List childIds = child.stream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList()); removeByIds(childIds); return true; } @Override // org.springblade.modules.visual.service.IVisualCompTypeService public List treeMenu(Map params) { List componentIds = (List) params.get("componentIds"); List list = list(Lambda.create().eq(VisualCompType::getStatus, Integer.valueOf(VisualCompTypeEnum.ENABLE.getValue())).orderByAsc(VisualCompType::getOrderNum)); /* List list = list((Wrapper) ((ExtraLambdaQueryWrapper) Lambda.create().eq((v0) -> { return v0.getStatus(); }, Integer.valueOf(VisualCompTypeEnum.ENABLE.getValue()))).orderByAsc((v0) -> { return v0.getOrderNum(); }));*/ List menuDetailVOS = VisualCompTypeConvert.INSTANCE.convertMenu(list); List 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 compList = visualCompList.stream().filter(comp -> { return comp.getType().equals(item2.getType()); }).sorted(Comparator.comparing((v0) -> { return v0.getOrderNum(); })).collect(Collectors.toList()); List 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); } }