package jnpf.dmsMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import jnpf.dmsEntity.permission.entity.DmsPermissionRevisionEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @Mapper public interface DmsPermissionRevisionMapper extends BaseMapper { @Select("SELECT tenant_id, revision, updated_at FROM public.dms_permission_revisions " + "WHERE tenant_id = #{tenantId}") DmsPermissionRevisionEntity selectByTenant(@Param("tenantId") String tenantId); @Select("SELECT COALESCE((SELECT revision FROM public.dms_permission_revisions " + "WHERE tenant_id = #{tenantId}), 0)") long currentRevision(@Param("tenantId") String tenantId); @Insert("INSERT INTO public.dms_permission_revisions (tenant_id, revision, updated_at) " + "VALUES (#{tenantId}, 1, CURRENT_TIMESTAMP) " + "ON CONFLICT (tenant_id) DO UPDATE SET revision = dms_permission_revisions.revision + 1, " + "updated_at = CURRENT_TIMESTAMP") int bump(@Param("tenantId") String tenantId); }