12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package dao
- import (
- "context"
- "encoding/json"
- "time"
- pb "go-common/app/service/main/coin/api"
- "go-common/app/service/main/coin/model"
- "go-common/library/database/elastic"
- "go-common/library/log"
- "go-common/library/queue/databus/report"
- )
- // AddLog .
- func (d *Dao) AddLog(mid, ts int64, from, to float64, reason, ip, operator string, oid int64, typ int) {
- report.User(&report.UserInfo{
- Mid: mid,
- Business: model.ReportType,
- IP: ip,
- Type: typ,
- Ctime: time.Unix(ts, 0),
- Index: []interface{}{operator},
- Oid: oid,
- Content: map[string]interface{}{
- "from": int64(from * _multi),
- "to": int64(to * _multi),
- "reason": reason,
- },
- })
- }
- // CoinLog .
- func (d *Dao) CoinLog(c context.Context, mid int64) (ls []*pb.ModelLog, err error) {
- t := time.Now()
- from := t.Add(-time.Hour * 24 * 7)
- var res struct {
- Page struct {
- Num int `json:"num"`
- Size int `json:"size"`
- Total int `json:"total"`
- } `json:"page"`
- Result []*report.UserActionLog `json:"result"`
- }
- err = d.es.NewRequest("log_user_action").
- IndexByTime("log_user_action_21", elastic.IndexTypeWeek, from, time.Now()).
- WhereEq("mid", mid).
- WhereRange("ctime", from.Format("2006-01-02 15:04:05"), "", elastic.RangeScopeLcRc).
- Pn(1).Ps(1000).Order("ctime", elastic.OrderDesc).
- Scan(c, &res)
- if err != nil {
- log.Error("coineslog mid: %v, err: %v", mid, err)
- PromError("log:es")
- return
- }
- for _, r := range res.Result {
- ts, _ := time.ParseInLocation("2006-01-02 15:04:05", r.Ctime, time.Local)
- var ex struct {
- From int64
- To int64
- Reason string
- }
- json.Unmarshal([]byte(r.Extra), &ex)
- ls = append(ls, &pb.ModelLog{
- From: float64(ex.From) / _multi,
- To: float64(ex.To) / _multi,
- IP: r.IP,
- Desc: ex.Reason,
- TimeStamp: ts.Unix(),
- })
- }
- return
- }
|