go-common/app/job/main/passport-user/dao/duplicate.go
2019-04-22 18:49:16 +08:00

100 lines
3.8 KiB
Go

package dao
import (
"context"
"database/sql"
"go-common/app/job/main/passport-user/model"
xsql "go-common/library/database/sql"
"go-common/library/log"
)
const (
_addUserTelDuplicateSQL = "INSERT INTO user_tel_duplicate (mid,tel,cid,tel_bind_time,ts) VALUES (?,?,?,?,?)"
_addUserEmailDuplicateSQL = "INSERT INTO user_email_duplicate (mid,email,verified,email_bind_time,ts) VALUES (?,?,?,?,?)"
_getUserTelDuplicateSQL = "SELECT id,mid,tel,cid,tel_bind_time,status,ts FROM user_tel_duplicate WHERE status = 0 order by ts"
_getUserEmailDuplicateSQL = "SELECT id,mid,email,verified,email_bind_time,status,ts FROM user_email_duplicate WHERE status = 0 order by ts"
_updateTelDuplicateStatusSQL = "UPDATE user_tel_duplicate SET status = 1 WHERE id = ?"
_updateEmailDuplicateStatusSQL = "UPDATE user_email_duplicate SET status = 1 WHERE id = ?"
)
// AddUserTelDuplicate add user tel duplicate.
func (d *Dao) AddUserTelDuplicate(c context.Context, a *model.UserTelDuplicate) (affected int64, err error) {
var res sql.Result
if res, err = d.userDB.Exec(c, _addUserTelDuplicateSQL, a.Mid, a.Tel, a.Cid, a.TelBindTime, a.Timestamp); err != nil {
log.Error("fail to add user tel duplicate, userTelDuplicate(%+v) dao.userDB.Exec() error(%+v)", a, err)
return
}
return res.RowsAffected()
}
// AddUserEmailDuplicate add user email duplicate.
func (d *Dao) AddUserEmailDuplicate(c context.Context, a *model.UserEmailDuplicate) (affected int64, err error) {
var res sql.Result
if res, err = d.userDB.Exec(c, _addUserEmailDuplicateSQL, a.Mid, a.Email, a.Verified, a.EmailBindTime, a.Timestamp); err != nil {
log.Error("fail to add user email duplicate, userEmailDuplicate(%+v) dao.userDB.Exec() error(%+v)", a, err)
return
}
return res.RowsAffected()
}
// UserTelDuplicate get user tel duplicate.
func (d *Dao) UserTelDuplicate(c context.Context) (res []*model.UserTelDuplicate, err error) {
var rows *xsql.Rows
if rows, err = d.userDB.Query(c, _getUserTelDuplicateSQL); err != nil {
log.Error("fail to get UserTelDuplicate, dao.userDB.Query(%s) error(%v)", _getUserTelDuplicateSQL, err)
return
}
defer rows.Close()
for rows.Next() {
r := new(model.UserTelDuplicate)
if err = rows.Scan(&r.ID, &r.Mid, &r.Tel, &r.Cid, &r.TelBindTime, &r.Status, &r.Timestamp); err != nil {
log.Error("row.Scan() error(%v)", err)
res = nil
return
}
res = append(res, r)
}
return
}
// UserEmailDuplicate get user email duplicate.
func (d *Dao) UserEmailDuplicate(c context.Context) (res []*model.UserEmailDuplicate, err error) {
var rows *xsql.Rows
if rows, err = d.userDB.Query(c, _getUserEmailDuplicateSQL); err != nil {
log.Error("fail to get UserEmailDuplicate, dao.userDB.Query(%s) error(%v)", _getUserEmailDuplicateSQL, err)
return
}
defer rows.Close()
for rows.Next() {
r := new(model.UserEmailDuplicate)
if err = rows.Scan(&r.ID, &r.Mid, &r.Email, &r.Verified, &r.EmailBindTime, &r.Status, &r.Timestamp); err != nil {
log.Error("row.Scan() error(%v)", err)
res = nil
return
}
res = append(res, r)
}
return
}
// UpdateUserTelDuplicateStatus update user tel duplicate status.
func (d *Dao) UpdateUserTelDuplicateStatus(c context.Context, id int64) (affected int64, err error) {
var res sql.Result
if res, err = d.userDB.Exec(c, _updateTelDuplicateStatusSQL, id); err != nil {
log.Error("fail to update tel duplicate status, id(%d) dao.userDB.Exec() error(%+v)", id, err)
return
}
return res.RowsAffected()
}
// UpdateUserEmailDuplicateStatus update user email duplicate status.
func (d *Dao) UpdateUserEmailDuplicateStatus(c context.Context, id int64) (affected int64, err error) {
var res sql.Result
if res, err = d.userDB.Exec(c, _updateEmailDuplicateStatusSQL, id); err != nil {
log.Error("fail to update email duplicate status, id(%d) dao.userDB.Exec() error(%+v)", id, err)
return
}
return res.RowsAffected()
}