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.
57 lines
2.0 KiB
57 lines
2.0 KiB
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 |
|
}
|
|
|