12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package unicom
- import (
- "context"
- "fmt"
- "time"
- "go-common/app/interface/main/app-wall/model/unicom"
- "go-common/library/database/elastic"
- "go-common/library/log"
- )
- const (
- _logUserKey = "log_user_action_91_%s"
- )
- func keyLogUser(now time.Time) string {
- return fmt.Sprintf(_logUserKey, now.Format("2006_01"))
- }
- func timeToString(now time.Time) string {
- return now.Format("2006-01-02 15:04:05")
- }
- // SearchUserBindLog unicom user bind log
- func (d *Dao) SearchUserBindLog(ctx context.Context, mid int64, now time.Time) (ulogs []*unicom.UserLog, err error) {
- var data struct {
- Result []struct {
- Ctime string `json:"ctime"`
- ExtraData string `json:"extra_data"`
- } `json:"result"`
- }
- var (
- endtime = now.AddDate(0, -1, 0)
- endWeekTime = now.AddDate(0, 0, -7)
- )
- req := d.es.NewRequest("log_user_action")
- req.Index(keyLogUser(now), keyLogUser(endtime)).WhereEq("mid", mid).WhereIn("action", []string{"unicom_userpack_add", "unicom_userpack_deduct"}).
- WhereRange("ctime", timeToString(endWeekTime), timeToString(now), elastic.RangeScopeLcRc).Order("ctime", "desc").
- Pn(1).Ps(2000)
- if err = req.Scan(ctx, &data); err != nil {
- log.Error("search user bind params(%s) error(%v)", req.Params(), err)
- return
- }
- for _, d := range data.Result {
- ulog := &unicom.UserLog{}
- if err = ulog.UserLogJSONChange(d.ExtraData); err != nil {
- log.Error("ulog json change error(%v)", err)
- continue
- }
- ulog.Ctime = d.Ctime
- ulogs = append(ulogs, ulog)
- }
- return
- }
|