This commit is contained in:
parent
34243bacc9
commit
c6f243ba82
|
|
@ -1,6 +1,7 @@
|
|||
package dao
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"intent-system/pkg/dal/models"
|
||||
|
|
@ -217,6 +218,88 @@ func (dao *NewsDAO) QueryList(cond *NewsCondition) (dos []*models.NewsDO, total
|
|||
return
|
||||
}
|
||||
|
||||
// func (dao *NewsDAO) QueryAsync(cond *NewsAsyncCondition) (dos []*models.NewsDO, total int64, err error) {
|
||||
// log.Infof("[QueryAsync] >>> 调用开始,org_id=%d, digest='%s'", cond.Org_Id, cond.Digest)
|
||||
|
||||
// if cond.Org_Id == 0 {
|
||||
// log.Warnf("[QueryAsync] org_id 为空,非法请求")
|
||||
// return nil, 0, errors.New("org_id is required")
|
||||
// }
|
||||
|
||||
// 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,
|
||||
// ).
|
||||
// Eq(models.NEWS_COLUMN_ORG_ID, cond.Org_Id)
|
||||
|
||||
// _, total, err = e.QueryEx()
|
||||
// if err != nil {
|
||||
// log.Errorf("[QueryAsync] 查询失败: %v", err)
|
||||
// return nil, 0, err
|
||||
// }
|
||||
|
||||
// if total == 0 {
|
||||
// log.Warnf("[QueryAsync] org_id=%d 无匹配记录", cond.Org_Id)
|
||||
// return nil, 0, errors.New("未找到对应 org_id 的记录")
|
||||
// }
|
||||
// if total > 1 {
|
||||
// log.Errorf("[QueryAsync] org_id=%d 数据异常,记录不唯一", cond.Org_Id)
|
||||
// return nil, 0, errors.New("org_id 不唯一,数据异常")
|
||||
// }
|
||||
|
||||
// record := dos[0]
|
||||
|
||||
// if cond.Digest == "" {
|
||||
// log.Infof("[QueryAsync] org_id=%d digest 为空,直接返回记录", cond.Org_Id)
|
||||
// return []*models.NewsDO{record}, 1, nil
|
||||
// }
|
||||
|
||||
// // 客户端传了 digest,进行比较
|
||||
// log.Infof("[QueryAsync] org_id=%d 开始比较 digest,客户端='%s'", cond.Org_Id, cond.Digest)
|
||||
|
||||
// if record.ExtraData != nil {
|
||||
// if val, ok := record.ExtraData["digest"]; ok {
|
||||
// log.Infof("[QueryAsync] org_id=%d 数据库 digest='%v'", cond.Org_Id, val)
|
||||
// if ds, ok := val.(string); ok && ds == cond.Digest {
|
||||
// log.Infof("[QueryAsync] org_id=%d digest 相同,跳过返回", cond.Org_Id)
|
||||
// return nil, 0, nil
|
||||
// }
|
||||
// } else {
|
||||
// log.Infof("[QueryAsync] org_id=%d ExtraData 中无 digest 字段", cond.Org_Id)
|
||||
// }
|
||||
// } else {
|
||||
// log.Infof("[QueryAsync] org_id=%d ExtraData 为空", cond.Org_Id)
|
||||
// }
|
||||
|
||||
// log.Infof("[QueryAsync] org_id=%d digest 不同,返回记录", cond.Org_Id)
|
||||
// return []*models.NewsDO{record}, 1, nil
|
||||
// }
|
||||
|
||||
func (dao *NewsDAO) QueryAsync(cond *NewsAsyncCondition) (dos []*models.NewsDO, total int64, err error) {
|
||||
log.Infof("[QueryAsync] >>> 调用开始,org_id=%d, digest='%s'", cond.Org_Id, cond.Digest)
|
||||
|
||||
|
|
@ -273,6 +356,17 @@ func (dao *NewsDAO) QueryAsync(cond *NewsAsyncCondition) (dos []*models.NewsDO,
|
|||
|
||||
record := dos[0]
|
||||
|
||||
// ✅ 解析 ExtraDataRaw → ExtraData
|
||||
if record.ExtraDataRaw != "" {
|
||||
if err := json.Unmarshal([]byte(record.ExtraDataRaw), &record.ExtraData); err != nil {
|
||||
log.Warnf("[QueryAsync] org_id=%d ExtraData 解析失败: %v", record.OrgId, err)
|
||||
} else {
|
||||
log.Infof("[QueryAsync] org_id=%d ExtraData 成功解析: %+v", record.OrgId, record.ExtraData)
|
||||
}
|
||||
} else {
|
||||
log.Infof("[QueryAsync] org_id=%d ExtraDataRaw 为空", record.OrgId)
|
||||
}
|
||||
|
||||
if cond.Digest == "" {
|
||||
log.Infof("[QueryAsync] org_id=%d digest 为空,直接返回记录", cond.Org_Id)
|
||||
return []*models.NewsDO{record}, 1, nil
|
||||
|
|
|
|||
Loading…
Reference in New Issue