package es import ( "server/common" "github.com/liangdas/mqant/log" "github.com/olivere/elastic/v7" ) // QueryMailList 查询玩家邮件列表 // func (ES *EsClient) QueryMailList(uid, page, num int, list *[]common.Mail) (count int64, err error) { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("Receiver", uid)) // q.Filter(elastic.NewRangeQuery("Time").Gt(time.Now().Unix()-common.MailExpireTime), elastic.NewRangeQuery("Time").Lte(time.Now().Unix()), // elastic.NewRangeQuery("Status").Gt(common.MailStatusDelete)) // count, err = ES.QueryList(common.ESIndexMail, page, num, q, list, "Status", true, "Type", true, "Time", false) // if err != nil { // log.Error("err:%v", err) // return // } // if count > common.MailMaxCount { // count = common.MailMaxCount // } // return // } // // QueryNewMailCount 查询玩家未读邮件个数 // func (ES *EsClient) QueryNewMailCount(uid int) int64 { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("Receiver", uid), elastic.NewTermQuery("Status", common.MailStatusNew)) // q.Filter(elastic.NewRangeQuery("Time").Gt(time.Now().Unix()-common.MailExpireTime), elastic.NewRangeQuery("Time").Lte(time.Now().Unix())) // return ES.Count(common.ESIndexMail, q) // } // // ReadMail 查看一封邮件 // func (ES *EsClient) ReadMail(id string) *common.Mail { // one := new(common.Mail) // if err := ES.QueryOne(common.ESIndexMail, elastic.NewTermQuery("_id", id), one); err != nil { // log.Error("err:%v", err) // return nil // } // if one.Status == common.MailStatusNew { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("_id", id), elastic.NewTermQuery("Status", common.MailStatusNew)) // ES.UpdateByScript(common.ESIndexMail, q, fmt.Sprintf("ctx._source.Status=%v", common.MailStatusRead)) // } // return one // } // // DrawMail 领取一封邮件 // func (ES *EsClient) DrawMail(id string) error { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("_id", id), elastic.NewTermQuery("Status", common.MailStatusRead)) // res, err := ES.UpdateByScript(common.ESIndexMail, q, fmt.Sprintf("ctx._source.Status=%v", common.MailStatusDraw)) // if err != nil { // return err // } // if res < 1 { // return errors.New("not updated") // } // return nil // } // // DeleteMail 删除一封邮件 // func (ES *EsClient) DeleteMail(id string) error { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("_id", id)) // q.MustNot(elastic.NewTermQuery("Status", common.MailStatusDelete)) // res, err := ES.UpdateByScript(common.ESIndexMail, q, fmt.Sprintf("ctx._source.Status=%v", common.MailStatusDelete)) // if err != nil { // return err // } // if res < 1 { // return errors.New("not updated") // } // return nil // } // // DeleteMailAll 一键删除邮件 // func (ES *EsClient) DeleteMailAll(uid int) error { // q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("Receiver", uid)) // q.MustNot(elastic.NewTermQuery("Status", common.MailStatusDelete)) // res, err := ES.UpdateByScript(common.ESIndexMail, q, fmt.Sprintf("ctx._source.Status=%v", common.MailStatusDelete)) // if err != nil { // return err // } // if res < 1 { // return errors.New("not updated") // } // return nil // } // QueryMailDraftList 查询邮件草稿列表 func (ES *EsClient) QueryMailDraftList(page, num int, list *[]common.MailDraft) (count int64, err error) { q := elastic.NewBoolQuery() // q.Must(elastic.NewTermQuery("UID", uid)) q.Filter(elastic.NewRangeQuery("Status").Gt(common.MailDraftStatusDelete)) count, err = ES.QueryList(common.ESIndexBackMailDraft, page-1, num, q, list, "Status", true, "Type", true, "Time", false) if err != nil { log.Error("err:%v", err) return } return } // SearchMailDraftList 条件查询邮件草稿列表 func (ES *EsClient) SearchMailDraftList(page, num int, q *elastic.BoolQuery, list *[]common.MailDraft) (count int64, err error) { q.Filter(elastic.NewRangeQuery("Status").Gt(common.MailDraftStatusDelete)) count, err = ES.QueryList(common.ESIndexBackMailDraft, page-1, num, q, list, "Status", true, "Type", true, "Time", false) if err != nil { log.Error("err:%v", err) return } return }