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.
53 lines
1.3 KiB
53 lines
1.3 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"fmt" |
|
|
|
"go-common/app/admin/main/tv/model" |
|
"go-common/library/database/elastic" |
|
"go-common/library/log" |
|
) |
|
|
|
// ArcES treats the ugc index request and call the ES to get the result |
|
func (d *Dao) ArcES(c context.Context, req *model.ReqArcES) (data *model.EsUgcResult, err error) { |
|
var ( |
|
cfg = d.c.Cfg.EsIdx.UgcIdx |
|
r = d.esClient.NewRequest(cfg.Business).Index(cfg.Index).WhereEq("deleted", 0) |
|
) |
|
if req.Valid != "" { |
|
r = r.WhereEq("valid", req.Valid) |
|
} |
|
if req.AID != "" { |
|
r = r.WhereEq("aid", req.AID) |
|
} |
|
if req.Result != "" { |
|
r = r.WhereEq("result", req.Result) |
|
} |
|
if len(req.Typeids) != 0 { |
|
r = r.WhereIn("typeid", req.Typeids) |
|
} |
|
if req.Title != "" { |
|
r = r.WhereLike([]string{"title"}, []string{req.Title}, true, elastic.LikeLevelMiddle) |
|
} |
|
if len(req.Mids) != 0 { |
|
r = r.WhereIn("mid", req.Mids) |
|
} |
|
r.Ps(req.Ps).Pn(int(req.Pn)) |
|
if req.MtimeOrder != "" { |
|
r = r.Order("mtime", req.MtimeSort()) |
|
} |
|
if req.PubtimeOrder != "" { |
|
r = r.Order("pubtime", req.PubtimeSort()) |
|
} |
|
if err = r.Scan(c, &data); err != nil { |
|
log.Error("ArcES:Scan params(%s) error(%v)", r.Params(), err) |
|
return |
|
} |
|
if data == nil || data.Page == nil { |
|
err = fmt.Errorf("data or data.Page nil") |
|
log.Error("ArcES params(%s) error(%v)", r.Params(), err) |
|
return |
|
} |
|
return |
|
}
|
|
|