This commit is contained in:
parent
84fa5c338e
commit
fa35a08240
|
|
@ -457,6 +457,56 @@ func (dao *NewsDAO) QueryAsyncBatch(pairs []OrgDigestPair) (dos []*models.NewsDO
|
|||
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) {
|
||||
e := dao.db.Model(&dos).
|
||||
Table(models.TableNameNews).
|
||||
|
|
@ -488,13 +538,20 @@ func (dao *NewsDAO) QueryPullNew(cond *NewsPullNewCondition) (dos []*models.News
|
|||
models.NEWS_COLUMN_EXTRA_DATA,
|
||||
)
|
||||
|
||||
// 🔧 仅提取 org_id,忽略 digest
|
||||
if len(cond.Pairs) > 0 {
|
||||
orgIDs := make([]int64, 0, len(cond.Pairs))
|
||||
// 🔧 正确展开 org_id 切片
|
||||
if cond != nil && len(cond.Pairs) > 0 {
|
||||
orgIDs := make([]interface{}, 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)
|
||||
|
||||
// 构造正确的 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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue