Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = [
"dao_test.go",
"mysql_test.go",
],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/job/main/passport-encrypt/conf:go_default_library",
"//app/job/main/passport-encrypt/model:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"dao.go",
"mysql.go",
],
importpath = "go-common/app/job/main/passport-encrypt/dao",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/job/main/passport-encrypt/conf:go_default_library",
"//app/job/main/passport-encrypt/model:go_default_library",
"//library/database/sql:go_default_library",
"//library/log:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,48 @@
package dao
import (
"context"
"go-common/app/job/main/passport-encrypt/conf"
"go-common/library/database/sql"
"go-common/library/log"
)
// Dao dao
type Dao struct {
c *conf.Config
originDB *sql.DB
encryptDB *sql.DB
}
// New new dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
c: c,
originDB: sql.NewMySQL(c.DB.OriginDB),
encryptDB: sql.NewMySQL(c.DB.EncryptDB),
}
return
}
// Ping check dao ok.
func (d *Dao) Ping(c context.Context) (err error) {
if err = d.originDB.Ping(c); err != nil {
log.Info("dao.originDB.Ping() error(%v)", err)
}
if err = d.encryptDB.Ping(c); err != nil {
log.Info("dao.encryptDB.Ping() error(%v)", err)
}
return
}
// Close close connections of mc, cloudDB.
func (d *Dao) Close() (err error) {
if d.originDB != nil {
d.originDB.Close()
}
if d.encryptDB != nil {
d.encryptDB.Close()
}
return
}

View File

@@ -0,0 +1,20 @@
package dao
import (
"fmt"
"sync"
"go-common/app/job/main/passport-encrypt/conf"
)
var (
once sync.Once
d *Dao
)
func startDao() {
if err := conf.Init(); err != nil {
panic(fmt.Sprintf("conf.Init() error(%v)", err))
}
d = New(conf.Conf)
}

View File

@@ -0,0 +1,83 @@
package dao
import (
"context"
"database/sql"
"go-common/app/job/main/passport-encrypt/model"
xsql "go-common/library/database/sql"
"go-common/library/log"
)
const (
_getOriginAccountSQL = "SELECT mid,userid,uname,pwd,salt,email,tel,mobile_verified,isleak,country_id,modify_time FROM aso_account where mid >= ? and mid < ?"
_addAsoAccountSQL = "INSERT INTO aso_account (mid,userid,uname,pwd,salt,email,tel,country_id,mobile_verified,isleak) VALUES(?,?,?,?,?,?,?,?,?,?)"
_updateAsoAccountSQL = "UPDATE aso_account SET userid=?,uname=?,pwd=?,salt=?,email=?,tel=?,country_id=?,mobile_verified=?,isleak=? WHERE mid=?"
_deleteAsoAccountSQL = "DELETE FROM aso_account WHERE mid=?"
)
// AsoAccounts get tokens by mid.
func (d *Dao) AsoAccounts(c context.Context, start, end int64) (res []*model.OriginAccount, err error) {
var rows *xsql.Rows
if rows, err = d.originDB.Query(c, _getOriginAccountSQL, start, end); err != nil {
log.Error("failed to get AsoAccounts, dao.originDB.AsoAccounts(%s) error(%v)", _getOriginAccountSQL, err)
return
}
defer rows.Close()
for rows.Next() {
var telPtr, emailPtr *string
r := new(model.OriginAccount)
if err = rows.Scan(&r.Mid, &r.UserID, &r.Uname, &r.Pwd, &r.Salt, &emailPtr, &telPtr, &r.MobileVerified, &r.Isleak, &r.CountryID, &r.Mtime); err != nil {
log.Error("row.Scan() error(%v)", err)
res = nil
return
}
if telPtr != nil {
r.Tel = *telPtr
}
if emailPtr != nil {
r.Email = *emailPtr
}
res = append(res, r)
}
return
}
// AddAsoAccount add aso account.
func (d *Dao) AddAsoAccount(c context.Context, a *model.EncryptAccount) (affected int64, err error) {
var res sql.Result
var emailPtr *string
if a.Email != "" {
emailPtr = &a.Email
}
if res, err = d.encryptDB.Exec(c, _addAsoAccountSQL, a.Mid, a.UserID, a.Uname, a.Pwd, a.Salt, emailPtr, a.Tel, a.CountryID, a.MobileVerified, a.Isleak); err != nil {
log.Error("failed to add aso account, dao.encryptDB.Exec() error(%v)", err)
return
}
return res.RowsAffected()
}
// UpdateAsoAccount update aso account.
func (d *Dao) UpdateAsoAccount(c context.Context, a *model.EncryptAccount) (affected int64, err error) {
var res sql.Result
var emailPtr *string
if a.Email != "" {
emailPtr = &a.Email
}
if res, err = d.encryptDB.Exec(c, _updateAsoAccountSQL, a.UserID, a.Uname, a.Pwd, a.Salt, emailPtr, a.Tel, a.CountryID, a.MobileVerified, a.Isleak, a.Mid); err != nil {
log.Error("failed to update aso account, dao.encryptDB.Exec() error(%v)", err)
return
}
return res.RowsAffected()
}
// DelAsoAccount delete aso account.
func (d *Dao) DelAsoAccount(c context.Context, mid int64) (affected int64, err error) {
var res sql.Result
if res, err = d.encryptDB.Exec(c, _deleteAsoAccountSQL, mid); err != nil {
log.Error("failed to delete aso account, dao.encryptDB.Exec(%s) error(%v)", mid, err)
return
}
return res.RowsAffected()
}

View File

@@ -0,0 +1,40 @@
package dao
import (
"context"
"testing"
"go-common/app/job/main/passport-encrypt/model"
. "github.com/smartystreets/goconvey/convey"
)
func TestDao_PingMySQL(t *testing.T) {
once.Do(startDao)
if err := d.encryptDB.Ping(context.TODO()); err != nil {
t.Errorf("dao.cloudDB.Ping() error(%v)", err)
t.FailNow()
}
}
func TestDao_UpdateAsoAccount(t *testing.T) {
once.Do(startDao)
Convey("update a aso account", t, func() {
account := &model.EncryptAccount{
Mid: 12047569,
UserID: "bili_1710676855",
Uname: "Bili_12047569",
Pwd: "3686c9d96ae6896fe117319ba6c07087",
Salt: "pdMXF856",
Email: "62fe0d616162f56ecab3e12a2de83ea6",
Tel: []byte("bdb27b0300e3984e48e7aea5c672a243"),
CountryID: 1,
MobileVerified: 1,
Isleak: 0,
}
affected, err := d.UpdateAsoAccount(context.TODO(), account)
So(err, ShouldBeNil)
So(affected, ShouldEqual, 1)
})
}