fix userModel
This commit is contained in:
		
							parent
							
								
									c055635ace
								
							
						
					
					
						commit
						efa28749de
					
				| 
						 | 
				
			
			@ -42,10 +42,10 @@ func (s Service) Create(payload CreateOptions) error {
 | 
			
		|||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (payload CreateOptions) newUser() (result User, err error) {
 | 
			
		||||
func (payload CreateOptions) newUser() (result dbUser, err error) {
 | 
			
		||||
	timeNow := now()
 | 
			
		||||
	roleID, _ := mongodb.NewIDFromString(payload.RoleID)
 | 
			
		||||
	return User{
 | 
			
		||||
	return dbUser{
 | 
			
		||||
		ID:             mongodb.NewObjectID(),
 | 
			
		||||
		Name:           payload.Name,
 | 
			
		||||
		SearchString:   getSearchString(payload.Name, payload.Phone, payload.Email),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ type AllQuery struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// All ...
 | 
			
		||||
func (s Service) All(queryParams AllQuery) (r ResponseUserAll) {
 | 
			
		||||
func (s Service) All(queryParams AllQuery) (r UserAll) {
 | 
			
		||||
	var (
 | 
			
		||||
		ctx  = context.Background()
 | 
			
		||||
		wg   sync.WaitGroup
 | 
			
		||||
| 
						 | 
				
			
			@ -56,12 +56,12 @@ func (s Service) All(queryParams AllQuery) (r ResponseUserAll) {
 | 
			
		|||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getResponseList(ctx context.Context, users []User) []ResponseUser {
 | 
			
		||||
	res := make([]ResponseUser, 0)
 | 
			
		||||
func getResponseList(ctx context.Context, users []dbUser) []User {
 | 
			
		||||
	res := make([]User, 0)
 | 
			
		||||
 | 
			
		||||
	for _, user := range users {
 | 
			
		||||
		role, _ := s.roleFindByID(ctx, user.RoleID)
 | 
			
		||||
		res = append(res, ResponseUser{
 | 
			
		||||
		res = append(res, User{
 | 
			
		||||
			ID:     user.ID.Hex(),
 | 
			
		||||
			Name:   user.Name,
 | 
			
		||||
			Phone:  user.Phone,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								db.go
								
								
								
								
							
							
						
						
									
										14
									
								
								db.go
								
								
								
								
							| 
						 | 
				
			
			@ -68,7 +68,7 @@ func (s Service) isRoleIDExisted(ctx context.Context, roleID primitive.ObjectID)
 | 
			
		|||
	return total != 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s Service) userCreate(ctx context.Context, doc User) error {
 | 
			
		||||
func (s Service) userCreate(ctx context.Context, doc dbUser) error {
 | 
			
		||||
	var (
 | 
			
		||||
		col = s.getUserCollection()
 | 
			
		||||
	)
 | 
			
		||||
| 
						 | 
				
			
			@ -103,20 +103,20 @@ func (s Service) userUpdateOneByCondition(ctx context.Context, cond interface{},
 | 
			
		|||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s Service) userFindByID(ctx context.Context, id primitive.ObjectID) (User, error) {
 | 
			
		||||
func (s Service) userFindByID(ctx context.Context, id primitive.ObjectID) (dbUser, error) {
 | 
			
		||||
	var (
 | 
			
		||||
		col = s.getUserCollection()
 | 
			
		||||
		doc User
 | 
			
		||||
		doc dbUser
 | 
			
		||||
	)
 | 
			
		||||
	err := col.FindOne(ctx, bson.M{"_id": id}).Decode(&doc)
 | 
			
		||||
	return doc, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s Service) userFindByCondition(ctx context.Context, cond interface{}, opts ...*options.FindOptions) (docs []User) {
 | 
			
		||||
func (s Service) userFindByCondition(ctx context.Context, cond interface{}, opts ...*options.FindOptions) (docs []dbUser) {
 | 
			
		||||
	var (
 | 
			
		||||
		col = s.getUserCollection()
 | 
			
		||||
	)
 | 
			
		||||
	docs = make([]User, 0)
 | 
			
		||||
	docs = make([]dbUser, 0)
 | 
			
		||||
 | 
			
		||||
	cursor, err := col.Find(ctx, cond, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -155,10 +155,10 @@ func (s Service) userCountByCondition(ctx context.Context, cond interface{}) int
 | 
			
		|||
	return total
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s Service) roleFindByID(ctx context.Context, id primitive.ObjectID) (Role, error) {
 | 
			
		||||
func (s Service) roleFindByID(ctx context.Context, id primitive.ObjectID) (dbRole, error) {
 | 
			
		||||
	var (
 | 
			
		||||
		col = s.getRoleCollection()
 | 
			
		||||
		doc Role
 | 
			
		||||
		doc dbRole
 | 
			
		||||
	)
 | 
			
		||||
	err := col.FindOne(ctx, bson.M{"_id": id}).Decode(&doc)
 | 
			
		||||
	return doc, err
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
package usermngmt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"go.mongodb.org/mongo-driver/bson/primitive"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// dbUser ...
 | 
			
		||||
type dbUser struct {
 | 
			
		||||
	ID             primitive.ObjectID `bson:"_id"`
 | 
			
		||||
	Name           string             `bson:"name"`
 | 
			
		||||
	SearchString   string             `bson:"searchString"`
 | 
			
		||||
	Phone          string             `bson:"phone"` // unique
 | 
			
		||||
	Email          string             `bson:"email"` // unique
 | 
			
		||||
	HashedPassword string             `bson:"hashedPassword"`
 | 
			
		||||
	Status         string             `bson:"status"`
 | 
			
		||||
	RoleID         primitive.ObjectID `bson:"roleId"`
 | 
			
		||||
	Other          string             `bson:"other"`
 | 
			
		||||
	CreatedAt      time.Time          `bson:"createdAt"`
 | 
			
		||||
	UpdatedAt      time.Time          `bson:"updatedAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// dbRole ...
 | 
			
		||||
type dbRole struct {
 | 
			
		||||
	ID        primitive.ObjectID `bson:"_id" json:"_id"`
 | 
			
		||||
	Name      string             `bson:"name" json:"name"`
 | 
			
		||||
	Code      string             `bson:"code" json:"code"`
 | 
			
		||||
	IsAdmin   bool               `bson:"isAdmin" json:"isAdmin"`
 | 
			
		||||
	CreatedAt time.Time          `bson:"createdAt" json:"createdAt"`
 | 
			
		||||
	UpdatedAt time.Time          `bson:"updatedAt" json:"updatedAt"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								model.go
								
								
								
								
							
							
						
						
									
										35
									
								
								model.go
								
								
								
								
							| 
						 | 
				
			
			@ -2,27 +2,10 @@ package usermngmt
 | 
			
		|||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"go.mongodb.org/mongo-driver/bson/primitive"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// User ...
 | 
			
		||||
type User struct {
 | 
			
		||||
	ID             primitive.ObjectID `bson:"_id" json:"_id"`
 | 
			
		||||
	Name           string             `bson:"name" json:"name"`
 | 
			
		||||
	SearchString   string             `bson:"searchString" json:"-"`
 | 
			
		||||
	Phone          string             `bson:"phone" json:"phone"` // unique
 | 
			
		||||
	Email          string             `bson:"email" json:"email"` // unique
 | 
			
		||||
	HashedPassword string             `bson:"hashedPassword" json:"-"`
 | 
			
		||||
	Status         string             `bson:"status" json:"status"`
 | 
			
		||||
	RoleID         primitive.ObjectID `bson:"roleId" json:"roleId"`
 | 
			
		||||
	Other          string             `bson:"other" json:"other"`
 | 
			
		||||
	CreatedAt      time.Time          `bson:"createdAt" json:"createdAt"`
 | 
			
		||||
	UpdatedAt      time.Time          `bson:"updatedAt" json:"updatedAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ResponseUser ...
 | 
			
		||||
type ResponseUser struct {
 | 
			
		||||
	ID        string    `json:"_id"`
 | 
			
		||||
	Name      string    `json:"name"`
 | 
			
		||||
	Phone     string    `json:"phone"`
 | 
			
		||||
| 
						 | 
				
			
			@ -34,16 +17,6 @@ type ResponseUser struct {
 | 
			
		|||
	UpdatedAt time.Time `json:"updatedAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Role ...
 | 
			
		||||
type Role struct {
 | 
			
		||||
	ID        primitive.ObjectID `bson:"_id" json:"_id"`
 | 
			
		||||
	Name      string             `bson:"name" json:"name"`
 | 
			
		||||
	Code      string             `bson:"code" json:"code"`
 | 
			
		||||
	IsAdmin   bool               `bson:"isAdmin" json:"isAdmin"`
 | 
			
		||||
	CreatedAt time.Time          `bson:"createdAt" json:"createdAt"`
 | 
			
		||||
	UpdatedAt time.Time          `bson:"updatedAt" json:"updatedAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RoleShort struct {
 | 
			
		||||
	ID      string `json:"_id"`
 | 
			
		||||
	Name    string `json:"name"`
 | 
			
		||||
| 
						 | 
				
			
			@ -51,9 +24,9 @@ type RoleShort struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	// ResponseUserAll ...
 | 
			
		||||
	ResponseUserAll struct {
 | 
			
		||||
		List  []ResponseUser `json:"list"`
 | 
			
		||||
		Total int64          `json:"total"`
 | 
			
		||||
	// UserAll ...
 | 
			
		||||
	UserAll struct {
 | 
			
		||||
		List  []User `json:"list"`
 | 
			
		||||
		Total int64  `json:"total"`
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue