From 1c1aec3cc8e296693ff3f622247f1523e93efbdc Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Mon, 6 Jun 2022 13:45:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 4 ++-- modules/login/login_comp.go | 6 +++--- sys/cache/core.go | 7 ++----- sys/cache/mail.go | 7 +++++++ sys/cache/pack.go | 7 +++++++ sys/cache/user.go | 9 ++++++-- sys/cache/user_test.go | 4 ++-- sys/db/core.go | 9 +++----- sys/db/mail.go | 4 ++++ sys/db/pack.go | 4 ++++ sys/db/user.go | 41 ++++++++++++++++++++++--------------- sys/db/user_test.go | 8 ++++---- 12 files changed, 69 insertions(+), 41 deletions(-) create mode 100644 sys/cache/mail.go create mode 100644 sys/cache/pack.go create mode 100644 sys/db/mail.go create mode 100644 sys/db/pack.go diff --git a/go.mod b/go.mod index 486587b1f..7599912cc 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,10 @@ go 1.18 require ( github.com/gorilla/websocket v1.4.2 + github.com/json-iterator/go v1.1.12 github.com/liwei1dao/lego v0.0.0-20220531091126-a21bb3766fbc github.com/stretchr/testify v1.7.1 + go.mongodb.org/mongo-driver v1.5.1 google.golang.org/protobuf v1.28.0 ) @@ -52,7 +54,6 @@ require ( github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/serf v0.9.7 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/juju/ratelimit v1.0.1 // indirect github.com/julienschmidt/httprouter v1.3.0 // indirect github.com/kavu/go_reuseport v1.5.0 // indirect @@ -106,7 +107,6 @@ require ( github.com/xdg-go/stringprep v1.0.2 // indirect github.com/xtaci/kcp-go v5.4.20+incompatible // indirect github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect - go.mongodb.org/mongo-driver v1.5.1 // indirect go.opentelemetry.io/otel v1.6.3 // indirect go.opentelemetry.io/otel/trace v1.6.3 // indirect go.uber.org/atomic v1.7.0 // indirect diff --git a/modules/login/login_comp.go b/modules/login/login_comp.go index cd0adfe76..b7eee99cd 100644 --- a/modules/login/login_comp.go +++ b/modules/login/login_comp.go @@ -20,7 +20,7 @@ type LoginComp struct { func (this *LoginComp) Login(ctx context.Context, session comm.IUserSession, req *pb.UserLoginReq) error { log.Debugf("User - Login: session:%v rsp:%v", session.ToString(), req) - db_user, err := db.Defsys.FindUserByAccount(req.Name) + db_user, err := db.Defsys.User_FindUserByAccount(req.Name) if err != nil { if err != mongo.ErrNoDocuments { return err @@ -29,7 +29,7 @@ func (this *LoginComp) Login(ctx context.Context, session comm.IUserSession, req if db_user.UserId == 0 { db_user.Account = req.Name - err = db.Defsys.CreateUser(db_user) + err = db.Defsys.User_CreateUser(db_user) if err != nil { return err } @@ -42,7 +42,7 @@ func (this *LoginComp) Login(ctx context.Context, session comm.IUserSession, req GatewayServiceId: session.GetGatewayServiceId(), UserData: db_user, } - err = cache.Defsys.UpdateUser(cache_user) + err = cache.Defsys.User_UpdateUser(cache_user) if err != nil { return err } diff --git a/sys/cache/core.go b/sys/cache/core.go index be372075c..e8eecaed8 100644 --- a/sys/cache/core.go +++ b/sys/cache/core.go @@ -1,10 +1,9 @@ package cache -import "go_dreamfactory/pb" - type ( ISys interface { - UpdateUser(data *pb.Cache_UserData) (err error) + IUser + IPack } ) @@ -29,5 +28,3 @@ func NewSys(option ...Option) (sys ISys, err error) { Defsys, err = newSys(options) return } - - diff --git a/sys/cache/mail.go b/sys/cache/mail.go new file mode 100644 index 000000000..fca759d23 --- /dev/null +++ b/sys/cache/mail.go @@ -0,0 +1,7 @@ +package cache + +const ( //Redis + Redis_mailCache string = "mail:%d" +) + +type IMail interface{} diff --git a/sys/cache/pack.go b/sys/cache/pack.go new file mode 100644 index 000000000..dc4197621 --- /dev/null +++ b/sys/cache/pack.go @@ -0,0 +1,7 @@ +package cache + +const ( //Redis + Redis_PackCache string = "pack:%d" +) + +type IPack interface{} diff --git a/sys/cache/user.go b/sys/cache/user.go index 3b72b50de..709115789 100644 --- a/sys/cache/user.go +++ b/sys/cache/user.go @@ -9,6 +9,11 @@ const ( //Redis Redis_UserCache string = "user:%d" //会话列表 ) -func (this *Cache) UpdateUser(data *pb.Cache_UserData) (err error) { - return this.redis.Set(fmt.Sprintf(Redis_UserCache, data.UserData.UserId), data, 0) +type IUser interface { + User_UpdateUser(data *pb.Cache_UserData) (err error) +} + +func (this *Cache) User_UpdateUser(data *pb.Cache_UserData) (err error) { + err = this.redis.Set(fmt.Sprintf(Redis_UserCache, data.UserData.UserId), data, -1) + return } diff --git a/sys/cache/user_test.go b/sys/cache/user_test.go index 1f5da5623..6f12ddac3 100644 --- a/sys/cache/user_test.go +++ b/sys/cache/user_test.go @@ -28,10 +28,10 @@ func TestUpdateUser(t *testing.T) { SessionId: "1", GatewayServiceId: "work", UserData: &pb.DB_UserData{ - UserId: 1, + UserId: 1, Account: "aaa", }, } - err := cache.UpdateUser(user) + err := cache.User_UpdateUser(user) require.Nil(t, err) } diff --git a/sys/db/core.go b/sys/db/core.go index bc30ea9de..fb134a900 100644 --- a/sys/db/core.go +++ b/sys/db/core.go @@ -1,13 +1,10 @@ package db -import "go_dreamfactory/pb" - type ( ISys interface { - FindUserByAccount(account string) (*pb.DB_UserData, error) - FindUserById(id uint32) (*pb.DB_UserData, error) - CreateUser(user *pb.DB_UserData) error - UpdateUser(data *pb.DB_UserData) (err error) + IUser + IPack + IMail } ) diff --git a/sys/db/mail.go b/sys/db/mail.go new file mode 100644 index 000000000..a8e5d8532 --- /dev/null +++ b/sys/db/mail.go @@ -0,0 +1,4 @@ +package db + +type IMail interface { +} diff --git a/sys/db/pack.go b/sys/db/pack.go new file mode 100644 index 000000000..4633876a6 --- /dev/null +++ b/sys/db/pack.go @@ -0,0 +1,4 @@ +package db + +type IPack interface { +} diff --git a/sys/db/user.go b/sys/db/user.go index 2e35dbffd..fb595242e 100644 --- a/sys/db/user.go +++ b/sys/db/user.go @@ -18,11 +18,18 @@ const ( //Redis DB_UserIdTable core.SqlTable = "userid" //用户id表 ) +type IUser interface { + User_FindUserByAccount(account string) (*pb.DB_UserData, error) + User_FindUserById(id uint32) (*pb.DB_UserData, error) + User_CreateUser(user *pb.DB_UserData) error + User_UpdateUser(data *pb.DB_UserData) (err error) +} + type UserId struct { UserId uint32 `bson:"_id"` } -func (this *DB) FindUserByAccount(account string) (*pb.DB_UserData, error) { +func (this *DB) User_FindUserByAccount(account string) (*pb.DB_UserData, error) { filter := bson.D{ {"account", account}, } @@ -32,7 +39,7 @@ func (this *DB) FindUserByAccount(account string) (*pb.DB_UserData, error) { return user, err } -func (this *DB) FindUserById(id uint32) (*pb.DB_UserData, error) { +func (this *DB) User_FindUserById(id uint32) (*pb.DB_UserData, error) { filter := bson.D{ {"_id", id}, } @@ -42,7 +49,7 @@ func (this *DB) FindUserById(id uint32) (*pb.DB_UserData, error) { return user, err } -func (this *DB) CreateUser(user *pb.DB_UserData) error { +func (this *DB) User_CreateUser(user *pb.DB_UserData) error { userId := &UserId{} err := this.mgo.FindOneAndDelete(DB_UserIdTable, bson.M{}).Decode(userId) if err != nil { @@ -54,6 +61,20 @@ func (this *DB) CreateUser(user *pb.DB_UserData) error { return err } +//更新用户数据到DB +func (this *DB) User_UpdateUser(data *pb.DB_UserData) error { + err := this.mgo.FindOneAndUpdate( + DB_UserTable, + bson.M{"_id": data.UserId}, + bson.M{"$set": bson.M{ + "niceName": data.NiceName, + "email": data.Email, + }}, + options.FindOneAndUpdate().SetUpsert(false).SetReturnDocument(options.After), + ).Decode(data) + return err +} + //校验数据库初始化工作是否完成 func (this DB) checkUserIdInit() (err error) { ctx, _ := context.WithTimeout(context.Background(), time.Second*60) @@ -83,17 +104,3 @@ func (this DB) checkUserIdInit() (err error) { } return } - -//更新用户数据到DB -func (this *DB) UpdateUser(data *pb.DB_UserData) error { - err := this.mgo.FindOneAndUpdate( - DB_UserTable, - bson.M{"_id": data.UserId}, - bson.M{"$set": bson.M{ - "niceName": data.NiceName, - "email": data.Email, - }}, - options.FindOneAndUpdate().SetUpsert(false).SetReturnDocument(options.After), - ).Decode(data) - return err -} diff --git a/sys/db/user_test.go b/sys/db/user_test.go index 59065d0df..6b5134c9f 100644 --- a/sys/db/user_test.go +++ b/sys/db/user_test.go @@ -32,16 +32,16 @@ func TestCreate(t *testing.T) { Email: "1111@legu.com", } - err := db.CreateUser(user) + err := db.User_CreateUser(user) require.Nil(t, err) } func TestFindOne(t *testing.T) { - user, err := db.FindUserById(1) + user, err := db.User_FindUserById(1) require.Nil(t, err) assert.Equal(t, "legu1", user.Account) - user2, err := db.FindUserByAccount("legu1") + user2, err := db.User_FindUserByAccount("legu1") require.Nil(t, err) assert.Equal(t, "legu1", user2.Account) @@ -52,7 +52,7 @@ func TestUpdate(t *testing.T) { UserId: 10001, Email: "new@qq.com", } - err := db.UpdateUser(user) + err := db.User_UpdateUser(user) require.Nil(t, err) assert.Equal(t, "new@qq.com", user.Email)