From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 01 十一月 2023 19:20:21 +0800 Subject: [PATCH] 公海member_id使用0 --- model/user.go | 67 ++++++++++++++++++++++++++++++++- 1 files changed, 65 insertions(+), 2 deletions(-) diff --git a/model/user.go b/model/user.go index f0d074d..44f7fdc 100644 --- a/model/user.go +++ b/model/user.go @@ -11,7 +11,7 @@ // User token閲岃竟鎶婄敤鎴稩D銆佺埗鐢ㄦ埛ID銆佽鑹查兘甯︿笂 User struct { ID int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` - UUID string `json:"uuid" gorm:"primaryKey;type:varchar(255);comment:鐢ㄦ埛ID"` + UUID string `json:"uuid" gorm:"uniqueIndex;type:varchar(255);comment:鐢ㄦ埛ID"` Username string `json:"username" gorm:"index;type:varchar(255);comment:鐢ㄦ埛鐧诲綍鍚�"` UserType constvar.UserType `json:"userType" gorm:"type:int(11);comment:鐢ㄦ埛绫诲瀷 1瓒呯骇绠$悊鍛� 2涓昏处鎴� 3瀛愯处鎴�"` Password string `json:"-" gorm:"type:varchar(255);comment:鐢ㄦ埛鐧诲綍瀵嗙爜"` @@ -26,6 +26,7 @@ MenuIds []uint `json:"menuIds" gorm:"-"` // 鑿滃崟ID鍒楄〃 AuthorityId uint `json:"authorityId" gorm:"default:888;comment:鐢ㄦ埛瑙掕壊ID"` // 鐢ㄦ埛瑙掕壊ID Authority Authority `json:"authority" gorm:"foreignKey:AuthorityId"` + SubUserIds string `json:"subUserIds" gorm:"sub_user_ids"` //涓嬪睘鍛樺伐鐢ㄦ埛id,鐢ㄩ�楀彿鍒嗗紑 gorm.Model `json:"-"` } @@ -36,6 +37,7 @@ PageNum int PageSize int Orm *gorm.DB + IDs []int } ) @@ -70,6 +72,16 @@ return slf } +func (slf *UserSearch) SetUserId(userId int) *UserSearch { + slf.ID = userId + return slf +} + +func (slf *UserSearch) SetUserIds(userIds []int) *UserSearch { + slf.IDs = userIds + return slf +} + func (slf *UserSearch) SetUserName(username string) *UserSearch { slf.Username = username return slf @@ -84,7 +96,7 @@ var db = slf.Orm.Model(&User{}).Preload("Menus") if slf.UUID != "" { - db = db.Where("id = ?", slf.UUID) + db = db.Where("uuid = ?", slf.UUID) } if slf.Username != "" { @@ -97,6 +109,14 @@ if slf.Order != "" { db = db.Order(slf.Order) + } + + if slf.ID != 0 { + db = db.Where("id = ?", slf.ID) + } + + if len(slf.IDs) > 0 { + db = db.Where("id in ?", slf.IDs) } return db @@ -271,3 +291,46 @@ return records, nil } + +func (slf *UserSearch) Upsert(record User, SubUserQueried bool) error { + + var db = slf.SetId(record.UUID).build() + old, err := slf.First() + if err == gorm.ErrRecordNotFound { + if err := db.Create(&record).Error; err != nil { + return fmt.Errorf("create user err: %v, record: %+v", err, record) + } + } else if old.Username != record.Username || + old.UserType != record.UserType || + old.NickName != record.NickName || + SubUserQueried && old.SubUserIds != record.SubUserIds { + old.Username = record.Username + old.UserType = record.UserType + old.NickName = record.NickName + old.SubUserIds = record.SubUserIds + if err := db.Save(&old).Error; err != nil { + return fmt.Errorf("update user err: %v, old record: %+v", err, old) + } + } + + return nil +} + +type IdPair struct { + ID int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` + UUID string `json:"uuid" gorm:"unique;type:varchar(255);comment:鐢ㄦ埛ID"` +} + +func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) { + var ( + records = make([]*IdPair, 0) + db = slf.Orm.Model(&User{}) + ) + + db = db.Where("uuid in ?", userIds) + if err := db.Select("user.id, user.uuid").Find(&records).Error; err != nil { + return records, fmt.Errorf("find all err: %v", err) + } + + return records, nil +} -- Gitblit v1.8.0