bilibili-backup/app/job/main/workflow/dao/search.go
2019-04-22 02:59:20 +00:00

58 lines
2.0 KiB
Go

package dao
import (
"context"
"go-common/app/job/main/workflow/model"
"go-common/library/database/elastic"
"go-common/library/log"
)
const (
challBusiness = "workflow_chall_common"
challIndex = "workflow_chall_common"
appealBusiness = "workflow_appeal"
appealIndex = "workflow_appeal"
)
// SearchChall .
func (d *Dao) SearchChall(c context.Context, params *model.SearchParams) (res *model.ChallSearchCommonRes, err error) {
r := d.es.NewRequest(challBusiness).Fields("id").
Index(challIndex).
WhereEq("business", params.Business).
WhereEq("state", params.States).
WhereEq("business_state", params.BusinessStates)
if params.AssigneeAdminIDs != "" {
r = r.WhereEq("assignee_adminid", params.AssigneeAdminIDs)
}
if params.AssigneeAdminIDsNot != "" {
r = r.WhereNot("assignee_adminid", params.AssigneeAdminIDsNot)
}
if params.MtimeTo != "" {
r = r.WhereRange("mtime", "", params.MtimeTo, elastic.RangeScopeLcRo)
}
log.Info("search condition %v", r.Params())
err = r.Scan(c, &res)
return
}
// SearchAppeal .
func (d *Dao) SearchAppeal(c context.Context, cond model.AppealSearchCond) (res *model.AppealSearchRes, err error) {
r := d.es.NewRequest(appealBusiness).Index(appealIndex).Fields(cond.Fields...).WhereIn("bid", cond.Bid).
WhereIn("id", cond.IDs).WhereIn("assign_state", cond.AssignState).WhereIn("audit_state", cond.AuditState).
WhereIn("transfer_state", cond.TransferState).WhereIn("audit_adminid", cond.AuditAdmin).
WhereIn("transfer_adminid", cond.TransferAdmin).WhereRange("ctime", cond.CTimeFrom, cond.CTimeTo, elastic.RangeScopeLcRo).
WhereRange("dtime", cond.DTimeFrom, cond.DTimeTo, elastic.RangeScopeLcRo).WhereRange("ttime", cond.TTimeFrom, cond.TTimeTo, elastic.RangeScopeLcRo).
WhereRange("mtime", cond.MTimeFrom, cond.MTimeTo, elastic.RangeScopeLcRo).Order(cond.Order, cond.Sort).Pn(cond.PN).Ps(cond.PS)
log.Info("search condition (%v)", r.Params())
if err = r.Scan(c, &res); err != nil {
log.Error("r.Scan(%+v) error(%v)", &res, err)
}
if res == nil {
res = new(model.AppealSearchRes)
}
return
}