package jnpf.dmsMapper;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import jnpf.dmsEntity.operationlog.entity.DmsFileOperationLogEntity;
|
import org.apache.ibatis.annotations.Insert;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
|
import java.util.List;
|
import java.util.UUID;
|
|
@Mapper
|
public interface DmsFileOperationLogMapper extends BaseMapper<DmsFileOperationLogEntity> {
|
String COLUMNS = "id, tenant_id, document_id, file_version_id, operation_code, operation_key, "
|
+ "operator_user_id, operator_name, file_name, operation_content, occurred_at";
|
|
@Insert("INSERT INTO public.dms_file_operation_logs "
|
+ "(tenant_id, document_id, file_version_id, operation_code, operation_key, "
|
+ "operator_user_id, operator_name, file_name, operation_content) VALUES "
|
+ "(#{value.tenantId}, #{value.documentId}, #{value.fileVersionId}, "
|
+ "#{value.operationCode}, #{value.operationKey}, #{value.operatorUserId}, "
|
+ "#{value.operatorName}, #{value.fileName}, #{value.operationContent}) "
|
+ "ON CONFLICT (tenant_id, operation_key) DO NOTHING")
|
int insertIgnore(@Param("value") DmsFileOperationLogEntity value);
|
|
@Select({"<script>",
|
"SELECT COUNT(*) FROM public.dms_file_operation_logs",
|
"WHERE tenant_id = #{tenantId} AND document_id = #{documentId}",
|
"<if test='keyword != null'>AND operation_content ILIKE '%' || #{keyword} || '%'</if>",
|
"</script>"})
|
long countByDocument(@Param("tenantId") String tenantId,
|
@Param("documentId") UUID documentId,
|
@Param("keyword") String keyword);
|
|
@Select({"<script>",
|
"SELECT " + COLUMNS + " FROM public.dms_file_operation_logs",
|
"WHERE tenant_id = #{tenantId} AND document_id = #{documentId}",
|
"<if test='keyword != null'>AND operation_content ILIKE '%' || #{keyword} || '%'</if>",
|
"ORDER BY occurred_at DESC, id DESC LIMIT #{limit} OFFSET #{offset}",
|
"</script>"})
|
List<DmsFileOperationLogEntity> selectByDocument(
|
@Param("tenantId") String tenantId,
|
@Param("documentId") UUID documentId,
|
@Param("keyword") String keyword,
|
@Param("limit") int limit,
|
@Param("offset") long offset);
|
}
|