This commit is contained in:
hailin 2025-06-20 17:26:11 +08:00
parent 84fa5c338e
commit fa35a08240
1 changed files with 61 additions and 4 deletions

View File

@ -457,6 +457,56 @@ func (dao *NewsDAO) QueryAsyncBatch(pairs []OrgDigestPair) (dos []*models.NewsDO
return dos, int64(len(dos)), nil return dos, int64(len(dos)), nil
} }
// func (dao *NewsDAO) QueryPullNew(cond *NewsPullNewCondition) (dos []*models.NewsDO, total int64, err error) {
// e := dao.db.Model(&dos).
// Table(models.TableNameNews).
// Select(
// models.NEWS_COLUMN_ID,
// models.NEWS_COLUMN_ORG_ID,
// models.NEWS_COLUMN_SPIDER_ID,
// models.NEWS_COLUMN_PNAME_ID,
// models.NEWS_COLUMN_TAG,
// models.NEWS_COLUMN_CATEGORY,
// models.NEWS_COLUMN_MAIN_TITLE,
// models.NEWS_COLUMN_SUB_TITLE,
// models.NEWS_COLUMN_SUMMARY,
// models.NEWS_COLUMN_KEYWORDS,
// models.NEWS_COLUMN_SEO_KEYWORDS,
// models.NEWS_COLUMN_TAGS,
// models.NEWS_COLUMN_URL,
// models.NEWS_COLUMN_IMAGE_URL,
// models.NEWS_COLUMN_LOGO_URL,
// models.NEWS_COLUMN_MODEL_PARAMETER,
// models.NEWS_COLUMN_CONTENT,
// models.NEWS_COLUMN_IS_HOTSPOT,
// models.NEWS_COLUMN_IS_OVERWRITTEN,
// models.NEWS_COLUMN_IS_DELETED,
// models.NEWS_COLUMN_IS_REPLICATE,
// models.NEWS_COLUMN_STATE,
// models.NEWS_COLUMN_CREATED_TIME,
// models.NEWS_COLUMN_UPDATED_TIME,
// models.NEWS_COLUMN_EXTRA_DATA,
// )
// // 🔧 仅提取 org_id忽略 digest
// if len(cond.Pairs) > 0 {
// orgIDs := make([]int64, 0, len(cond.Pairs))
// for _, p := range cond.Pairs {
// orgIDs = append(orgIDs, p.OrgId)
// }
// e.Where(fmt.Sprintf("%s NOT IN (?)", models.NEWS_COLUMN_ORG_ID), orgIDs)
// }
// _, total, err = e.QueryEx()
// if err != nil {
// log.Errorf("QueryPullNew failed: %v", err)
// return nil, 0, err
// }
// log.Infof(".................[DEBUG] QueryPullNew 返回数据: %+v", dos)
// return
// }
func (dao *NewsDAO) QueryPullNew(cond *NewsPullNewCondition) (dos []*models.NewsDO, total int64, err error) { func (dao *NewsDAO) QueryPullNew(cond *NewsPullNewCondition) (dos []*models.NewsDO, total int64, err error) {
e := dao.db.Model(&dos). e := dao.db.Model(&dos).
Table(models.TableNameNews). Table(models.TableNameNews).
@ -488,13 +538,20 @@ func (dao *NewsDAO) QueryPullNew(cond *NewsPullNewCondition) (dos []*models.News
models.NEWS_COLUMN_EXTRA_DATA, models.NEWS_COLUMN_EXTRA_DATA,
) )
// 🔧 仅提取 org_id忽略 digest // 🔧 正确展开 org_id 切片
if len(cond.Pairs) > 0 { if cond != nil && len(cond.Pairs) > 0 {
orgIDs := make([]int64, 0, len(cond.Pairs)) orgIDs := make([]interface{}, 0, len(cond.Pairs))
for _, p := range cond.Pairs { for _, p := range cond.Pairs {
orgIDs = append(orgIDs, p.OrgId) orgIDs = append(orgIDs, p.OrgId)
} }
e.Where(fmt.Sprintf("%s NOT IN (?)", models.NEWS_COLUMN_ORG_ID), orgIDs)
// 构造正确的 IN 子句(防止 ORM 不展开切片)
placeholders := make([]string, len(orgIDs))
for i := range orgIDs {
placeholders[i] = "?"
}
whereClause := fmt.Sprintf("%s NOT IN (%s)", models.NEWS_COLUMN_ORG_ID, strings.Join(placeholders, ","))
e.Where(whereClause, orgIDs...)
} }
_, total, err = e.QueryEx() _, total, err = e.QueryEx()