65 lines
1.5 KiB
Go
65 lines
1.5 KiB
Go
package user
|
|
|
|
import (
|
|
"fmt"
|
|
"go_dreamfactory/lego/core"
|
|
"go_dreamfactory/lego/sys/log"
|
|
"go_dreamfactory/modules"
|
|
"go_dreamfactory/pb"
|
|
"time"
|
|
|
|
uuid "github.com/satori/go.uuid"
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
const ( //Redis
|
|
TableUser core.SqlTable = "user" //用户表
|
|
)
|
|
|
|
type ModelUser struct {
|
|
modules.MCompModel
|
|
}
|
|
|
|
func (this *ModelUser) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
|
err = this.MCompModel.Init(service, module, comp, options)
|
|
this.TableName = string(TableUser)
|
|
return
|
|
}
|
|
|
|
func (this *ModelUser) User_FindByAccount(sid int32, account string) (*pb.DBUser, error) {
|
|
filter := bson.M{
|
|
"sid": sid,
|
|
"binduid": account,
|
|
}
|
|
sr := this.DB.FindOne(TableUser, filter)
|
|
var nd *pb.DBUser
|
|
err := sr.Decode(&nd)
|
|
return nd, err
|
|
}
|
|
|
|
func (this *ModelUser) User_Create(user *pb.DBUser) (err error) {
|
|
_id := primitive.NewObjectID().Hex()
|
|
user.Id = _id
|
|
user.Uid = fmt.Sprintf("%d_%s", user.Sid, _id)
|
|
user.Uuid = uuid.NewV4().String()
|
|
user.Ctime = time.Now().Unix()
|
|
_, err = this.DB.InsertOne(TableUser, user)
|
|
return err
|
|
}
|
|
|
|
//获取用户
|
|
func (this *ModelUser) getUser(uid string) *pb.DBUser {
|
|
dbUser := &pb.DBUser{}
|
|
if err := this.Get(uid, dbUser); err != nil {
|
|
log.Errorf("getUser err:%v", err)
|
|
return nil
|
|
}
|
|
return dbUser
|
|
}
|
|
|
|
//设置属性
|
|
func (this *ModelUser) updateUserAttr(uid string, data map[string]interface{}) error {
|
|
return this.Change(uid, data)
|
|
}
|