package jnpf.elnMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jnpf.elnEntity.template.ElnTemplateVersionEntity; import jnpf.elnEntity.template.ElnTemplateVos; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface ElnTemplateMapper extends BaseMapper { default ElnTemplateVersionEntity lockTemplateForUpdate(String tenantId, String templateId) { return selectOne(Wrappers.lambdaQuery() .eq(ElnTemplateVersionEntity::getFTenantId, tenantId) .eq(ElnTemplateVersionEntity::getId, templateId) .and(query -> query.isNull(ElnTemplateVersionEntity::getFDeleteMark) .or().eq(ElnTemplateVersionEntity::getFDeleteMark, 0)) .last("FOR UPDATE")); } @Select("SELECT m.muban_file " + "FROM eln_template_current_version c " + "JOIN eln_template m " + "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id " + "WHERE c.f_tenant_id = #{tenantId} " + "AND m.jianyan_xiangmu = #{jianyanXiangmu} " + "AND m.biz_status = 'PUBLISHED' " + "AND m.biz_enabled = 'enabled' " + "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP " + "AND COALESCE(m.f_delete_mark, 0) = 0") IPage selectLatestTemplateFiles(IPage page, @Param("tenantId") String tenantId, @Param("jianyanXiangmu") String jianyanXiangmu); @Select("SELECT m.muban_file " + "FROM eln_template_current_version c " + "JOIN eln_template m " + "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id " + "WHERE c.f_tenant_id = #{tenantId} " + "AND m.jianyan_xiangmu_bianma = #{testDefinitionCode} " + "AND m.biz_status = 'PUBLISHED' " + "AND m.biz_enabled = 'enabled' " + "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP " + "AND COALESCE(c.f_delete_mark, 0) = 0 " + "AND COALESCE(m.f_delete_mark, 0) = 0") IPage selectLatestTemplateFilesByTestDefinitionCode( IPage page, @Param("tenantId") String tenantId, @Param("testDefinitionCode") String testDefinitionCode); @Select("SELECT m.f_id AS id, m.f_tenant_id AS fTenantId, " + "m.muban_bianhao AS mubanBianhao, m.muban_banben AS mubanBanben, " + "m.jianyan_xiangmu AS jianyanXiangmu, " + "m.jianyan_xiangmu_bianma AS jianyanXiangmuBianma, m.muban_file AS mubanFile, " + "m.biz_status AS bizStatus, m.biz_enabled AS bizEnabled, " + "m.shengxiao_riqi AS shengxiaoRiqi, m.f_delete_mark AS fDeleteMark " + "FROM eln_template_current_version c " + "JOIN eln_template m " + "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id " + "WHERE c.f_tenant_id = #{tenantId} " + "AND m.jianyan_xiangmu_bianma = #{testDefinitionCode} " + "AND m.biz_status = 'PUBLISHED' " + "AND m.biz_enabled = 'enabled' " + "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP " + "AND COALESCE(c.f_delete_mark, 0) = 0 " + "AND COALESCE(m.f_delete_mark, 0) = 0") List selectCurrentPublishedByTestDefinition( @Param("tenantId") String tenantId, @Param("testDefinitionCode") String testDefinitionCode); @Select({""}) IPage selectLatestTemplateCodes( IPage page, @Param("tenantId") String tenantId, @Param("mubanFenlei") String mubanFenlei, @Param("mubanBianhao") String mubanBianhao, @Param("bizStatus") String bizStatus, @Param("bizEnabled") String bizEnabled, @Param("keywordPattern") String keywordPattern); @Select({""}) IPage selectTemplateDirectory( IPage page, @Param("tenantId") String tenantId, @Param("mubanFenlei") String mubanFenlei, @Param("mubanBianhao") String mubanBianhao, @Param("bizStatus") String bizStatus, @Param("bizEnabled") String bizEnabled, @Param("keywordPattern") String keywordPattern); @Select({""}) List selectTemplateCategories( @Param("tenantId") String tenantId, @Param("templateCategoryIds") List templateCategoryIds); }