123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package dao
- import (
- "context"
- "fmt"
- "strings"
- "go-common/app/job/main/passport/model"
- "go-common/library/database/sql"
- "go-common/library/log"
- )
- const (
- _insertLoginLog = "INSERT INTO aso_login_log%d(`mid`, `timestamp`, `loginip`, `type`, `server`) VALUES %s"
- _queryTelBindLog = "SELECT id, mid, tel, timestamp FROM aso_telephone_bind_log where id = ?"
- _queryEmailBindLog = "SELECT id, mid, email, timestamp FROM aso_email_bind_log where id = ?"
- _batchGetPwdLog = "select id, timestamp, mid, ip, old_pwd, old_salt, new_pwd, new_salt from aso_pwd_log where id < ? order by id desc limit 1000"
- _getPwdLog = "select id, timestamp, mid, ip, old_pwd, old_salt, new_pwd, new_salt from aso_pwd_log where id = ?"
- )
- // AddLoginLog insert service to db.
- func (d *Dao) AddLoginLog(vs []*model.LoginLog) (err error) {
- if len(vs) == 0 {
- return
- }
- var args = make([]string, 0, len(vs))
- for _, v := range vs {
- args = append(args, fmt.Sprintf(`(%d,%d,%d,%d,'%s')`, v.Mid, v.Timestamp, v.LoginIP, v.Type, v.Server))
- }
- if len(args) == 0 {
- return
- }
- s := fmt.Sprintf(_insertLoginLog, vs[0].Mid%10, strings.Join(args, ","))
- if _, err = d.logDB.Exec(context.Background(), s); err != nil {
- log.Error("d.logDB.Exec(%s) error(%v)", s, err)
- }
- return
- }
- // QueryTelBindLog query from id
- func (d *Dao) QueryTelBindLog(id int64) (res *model.TelBindLog, err error) {
- if id <= 0 {
- return
- }
- res = new(model.TelBindLog)
- row := d.asoDB.QueryRow(context.Background(), _queryTelBindLog, id)
- if err = row.Scan(&res.ID, &res.Mid, &res.Tel, &res.Timestamp); err != nil {
- if err == sql.ErrNoRows {
- err = nil
- return
- }
- log.Error("QueryTelBindLog err(%+v)", err)
- return
- }
- return
- }
- // QueryEmailBindLog query from id
- func (d *Dao) QueryEmailBindLog(id int64) (res *model.EmailBindLog, err error) {
- if id <= 0 {
- return
- }
- res = new(model.EmailBindLog)
- row := d.asoDB.QueryRow(context.Background(), _queryEmailBindLog, id)
- if err = row.Scan(&res.ID, &res.Mid, &res.Email, &res.Timestamp); err != nil {
- if err == sql.ErrNoRows {
- err = nil
- return
- }
- log.Error("QueryEmailBindLog err(%+v)", err)
- return
- }
- return
- }
- // BatchGetPwdLog batch get pwd log
- func (d *Dao) BatchGetPwdLog(c context.Context, id int64) (res []*model.PwdLog, err error) {
- var rows *sql.Rows
- if rows, err = d.asoDB.Query(c, _batchGetPwdLog, id); err != nil {
- log.Error("batch get pwd log, dao.db.Query(%s) error(%v)", _batchGetPwdLog, err)
- return
- }
- defer rows.Close()
- for rows.Next() {
- pwd := new(model.PwdLog)
- if err = rows.Scan(&pwd.ID, &pwd.Timestamp, &pwd.Mid, &pwd.IP, &pwd.OldPwd, &pwd.OldSalt, &pwd.NewPwd, &pwd.NewSalt); err != nil {
- log.Error("row.Scan() error(%v)", err)
- return
- }
- res = append(res, pwd)
- }
- return
- }
- // GetPwdLog get pwd log
- func (d *Dao) GetPwdLog(c context.Context, id int64) (res *model.PwdLog, err error) {
- res = new(model.PwdLog)
- row := d.asoDB.QueryRow(c, _getPwdLog, id)
- if err = row.Scan(&res.ID, &res.Timestamp, &res.Mid, &res.IP, &res.OldPwd, &res.OldSalt, &res.NewPwd, &res.NewSalt); err != nil {
- if err == sql.ErrNoRows {
- err = nil
- return
- }
- log.Error("row.Scan() error(%v)", err)
- return
- }
- return
- }
|