You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.6 KiB
70 lines
1.6 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"fmt" |
|
|
|
"go-common/app/interface/openplatform/article/model" |
|
"go-common/library/log" |
|
"go-common/library/xstr" |
|
) |
|
|
|
// UpperPassed upper passed articles |
|
func (d *Dao) UpperPassed(c context.Context, mid int64) (aids [][2]int64, err error) { |
|
rows, err := d.upPassedStmt.Query(c, mid) |
|
if err != nil { |
|
PromError("db:up文章列表") |
|
log.Error("getUpPasStmt.Query(%d) error(%+v)", mid, err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
var ( |
|
aid, ptime int64 |
|
attributes int32 |
|
) |
|
if err = rows.Scan(&aid, &ptime, &attributes); err != nil { |
|
log.Error("rows.Scan error(%+v)", err) |
|
return |
|
} |
|
if !model.NoDistributeAttr(attributes) { |
|
aids = append(aids, [2]int64{aid, ptime}) |
|
} |
|
} |
|
err = rows.Err() |
|
promErrorCheck(err) |
|
return |
|
} |
|
|
|
// UppersPassed uppers passed articles |
|
func (d *Dao) UppersPassed(c context.Context, mids []int64) (aidm map[int64][][2]int64, err error) { |
|
rows, err := d.articleDB.Query(c, fmt.Sprintf(_uppersPassedSQL, xstr.JoinInts(mids))) |
|
if err != nil { |
|
PromError("db:批量查询up文章列表") |
|
log.Error("UpsPassed error(%+v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
aidm = make(map[int64][][2]int64, len(mids)) |
|
for rows.Next() { |
|
var ( |
|
aid, mid, ptime int64 |
|
attributes int32 |
|
) |
|
if err = rows.Scan(&aid, &mid, &ptime, &attributes); err != nil { |
|
log.Error("rows.Scan error(%+v)", err) |
|
return |
|
} |
|
if !model.NoDistributeAttr(attributes) { |
|
aidm[mid] = append(aidm[mid], [2]int64{aid, ptime}) |
|
} |
|
} |
|
for _, mid := range mids { |
|
if aidm[mid] == nil { |
|
aidm[mid] = [][2]int64{} |
|
} |
|
} |
|
err = rows.Err() |
|
promErrorCheck(err) |
|
return |
|
}
|
|
|