package com.hccake.ballcat.codegen.mapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.codegen.model.entity.TemplateEntry; import com.hccake.ballcat.common.core.constant.GlobalConstants; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * 模板文件目录项 * * @author hccake 2020-06-19 19:11:41 */ @Mapper public interface TemplateEntryMapper extends ExtendMapper { /** * 根据模板组标识查询模板文件目录项集合 * @param groupKey 模板组标识 * @return List */ default List listByGroupKey(String groupKey) { return this.selectList(Wrappers.lambdaQuery().eq(TemplateEntry::getGroupKey, groupKey)); } /** * 检测是否在指定目录下存在指定名称的文件 * @param entryId 目录项ID * @param name 文件名称 * @return 是否存在 */ default boolean existSameName(String entryId, String name) { Long count = this.selectCount(Wrappers.lambdaQuery() .eq(TemplateEntry::getParentId, entryId) .eq(TemplateEntry::getFilename, name)); return count != null && count > 0; } /** * 判断目录项是否存在 * @param entryId 目录项ID * @return boolean 存在:true */ default boolean existEntryId(String entryId) { Long count = this.selectCount(Wrappers.lambdaQuery().eq(TemplateEntry::getId, entryId)); return count != null && count > 0; } /** * 更新父级目录id * @param groupKey 模板组标识 * @param oldParentId 老的父级ID * @param newParentId 新增父级ID */ default void updateParentId(String groupKey, String oldParentId, String newParentId) { LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() .set(TemplateEntry::getParentId, newParentId) .eq(TemplateEntry::getGroupKey, groupKey) .eq(TemplateEntry::getParentId, oldParentId); this.update(null, wrapper); } /** * 删除模板文件 * @param groupKey 模板组标识 */ default void deleteByGroupKey(String groupKey) { this.delete(Wrappers.lambdaQuery(TemplateEntry.class).eq(TemplateEntry::getGroupKey, groupKey)); } /** * 是否存在子文件 * @param entryId 目录下id * @return boolean */ default boolean existSubEntry(String entryId) { Long count = this.selectCount(Wrappers.lambdaQuery() .eq(TemplateEntry::getParentId, entryId) .eq(TemplateEntry::getDeleted, GlobalConstants.NOT_DELETED_FLAG)); return count != null && count > 0; } }