From 01e6f2437fb256798a508c4700c8af044d9a21ad Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Sat, 8 Feb 2025 10:38:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=AD=A3=E6=96=87?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E5=A4=B1=E8=B4=A5=E5=90=8E=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=87=87=E9=9B=86=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E9=94=99=E8=AF=AF=E6=AC=A1=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lanyuanxiaoyao/digtal/market/Entity.kt | 16 ++++++++++++---- .../com/lanyuanxiaoyao/digtal/market/Helper.kt | 1 + .../digtal/market/runner/NewsRunner.kt | 5 +++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Entity.kt b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Entity.kt index 8f75855..cdc4aec 100644 --- a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Entity.kt +++ b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Entity.kt @@ -1,11 +1,11 @@ package com.lanyuanxiaoyao.digtal.market +import com.blinkfox.fenix.jpa.FenixJpaRepository import com.blinkfox.fenix.specification.FenixJpaSpecificationExecutor import jakarta.persistence.Entity import jakarta.persistence.Id import jakarta.persistence.Lob import java.util.Date -import org.springframework.data.jpa.repository.JpaRepository import org.springframework.data.jpa.repository.Modifying import org.springframework.data.jpa.repository.Query import org.springframework.data.repository.query.Param @@ -27,10 +27,15 @@ class Article( var tags: String?, var createTime: Date?, var pushed: Boolean?, -) + var error: Int?, +) { + override fun toString(): String { + return "Article(id='$id', code='$code', url='$url', title=$title, author=$author, category=$category, text=$text, html=$html, subtitle=$subtitle, description=$description, tags=$tags, createTime=$createTime, pushed=$pushed, error=$error)" + } +} @Repository -interface ArticleRepository : JpaRepository, FenixJpaSpecificationExecutor
{ +interface ArticleRepository : FenixJpaRepository, FenixJpaSpecificationExecutor
{ fun findAllByDescriptionIsNullAndTextIsNotNull(): List
fun findAllByHtmlIsNotNull(): List
@@ -47,11 +52,14 @@ interface ArticleRepository : JpaRepository, FenixJpaSpecificat @Query("update Article article set article.pushed = :pushed where article.id = :id") fun updatePushedById(@Param("id") id: String, @Param("pushed") pushed: Boolean) - @Query("select article.id from Article article where article.description is not null and article.text is not null and article.text <> ''") + @Query("select article.id from Article article where (article.error is not null and article.error > 3) or (article.description is not null and article.text is not null and article.text <> '')") fun findAllId(): List @Query("select new com.lanyuanxiaoyao.digtal.market.CountGroupByString(article.code, count(article.code)) from Article article group by article.code") fun countGroupByCode(): List + + @Query("select article.error from Article article where article.id = :id") + fun findErrorById(@Param("id") id: String): Int? } data class CountGroupByString( diff --git a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Helper.kt b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Helper.kt index b0be2f3..03a9235 100644 --- a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Helper.kt +++ b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/Helper.kt @@ -148,6 +148,7 @@ fun parseArticle(management: Management, code: String, url: String, hash: String tags = null, createTime = createTime, pushed = false, + error = null, ) } ?: return null } \ No newline at end of file diff --git a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/runner/NewsRunner.kt b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/runner/NewsRunner.kt index 05748cb..3f7a369 100644 --- a/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/runner/NewsRunner.kt +++ b/src/main/kotlin/com/lanyuanxiaoyao/digtal/market/runner/NewsRunner.kt @@ -87,6 +87,11 @@ class NewsRunner : Runner { article.subtitle = triple?.subtitle article.description = triple?.description article.tags = triple?.tags + + if (triple == null) { + val error = articleRepository.findErrorById(link.hash) + article.error = error?.plus(1) ?: 1 + } } article.category = keyword