package jnpf.flowable.mapper; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.mapper.SuperMapper; import jnpf.exception.WorkFlowException; import jnpf.flowable.entity.TemplateJsonEntity; import jnpf.flowable.entity.TemplateNodeEntity; import jnpf.flowable.enums.NodeEnum; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public interface TemplateNodeMapper extends SuperMapper { default List getList(String flowId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateNodeEntity::getFlowId, flowId); return this.selectList(queryWrapper); } default List getList(List flowIds, String nodeType) { if (flowIds.isEmpty()) { return new ArrayList<>(); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateNodeEntity::getFlowId, flowIds); if (StringUtil.isNotBlank(nodeType)) { queryWrapper.lambda().eq(TemplateNodeEntity::getNodeType, nodeType); } return this.selectList(queryWrapper); } default List getListLikeUserId(String userId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(TemplateNodeEntity::getNodeJson, userId); return this.selectList(queryWrapper); } default TemplateNodeEntity getInfo(String id) throws WorkFlowException { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateNodeEntity::getId, id); return this.selectOne(queryWrapper); } default void create(TemplateNodeEntity entity) { entity.setId(RandomUtil.uuId()); this.insert(entity); } default boolean update(String id, TemplateNodeEntity entity) { entity.setId(id); return this.updateById(entity) > 0; } default void delete(TemplateNodeEntity entity) { if (entity != null) { this.deleteById(entity.getId()); } } default void deleteList(List idList) { if (!idList.isEmpty()) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateNodeEntity::getId, idList); this.delete(queryWrapper); } } default void delete(List idList) { if (!idList.isEmpty()) { this.deleteByIds(idList); } } default List getListStart(List listOfEnable) { List flowIds = listOfEnable.stream().map(TemplateJsonEntity::getId).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(flowIds)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().select(TemplateNodeEntity::getFlowId, TemplateNodeEntity::getFormId); queryWrapper.lambda().eq(TemplateNodeEntity::getNodeType, NodeEnum.start.getType()).in(TemplateNodeEntity::getFlowId, flowIds); return this.selectList(queryWrapper); } return new ArrayList<>(); } }