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 | 85 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 81 insertions(+), 4 deletions(-)
diff --git a/model/user.go b/model/user.go
index 69cfc0c..44f7fdc 100644
--- a/model/user.go
+++ b/model/user.go
@@ -10,7 +10,8 @@
type (
// User token閲岃竟鎶婄敤鎴稩D銆佺埗鐢ㄦ埛ID銆佽鑹查兘甯︿笂
User struct {
- ID string `json:"id" gorm:"primaryKey;type:varchar(255);comment:鐢ㄦ埛ID"`
+ ID int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ 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:鐢ㄦ埛鐧诲綍瀵嗙爜"`
@@ -25,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:"-"`
}
@@ -35,6 +37,7 @@
PageNum int
PageSize int
Orm *gorm.DB
+ IDs []int
}
)
@@ -65,7 +68,17 @@
}
func (slf *UserSearch) SetId(id string) *UserSearch {
- slf.ID = id
+ slf.UUID = id
+ 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
}
@@ -82,8 +95,8 @@
func (slf *UserSearch) build() *gorm.DB {
var db = slf.Orm.Model(&User{}).Preload("Menus")
- if slf.ID != "" {
- db = db.Where("id = ?", slf.ID)
+ if slf.UUID != "" {
+ db = db.Where("uuid = ?", slf.UUID)
}
if slf.Username != "" {
@@ -96,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
@@ -257,3 +278,59 @@
func (slf *UserSearch) ReplaceMenu(user *User, menus []*Menu) error {
return slf.Orm.Model(user).Association("Menus").Replace(menus)
}
+
+func (slf *UserSearch) FindAll() ([]*User, error) {
+ var (
+ records = make([]*User, 0)
+ db = slf.build()
+ )
+
+ if err := db.Find(&records).Error; err != nil {
+ return records, fmt.Errorf("find all err: %v", err)
+ }
+
+ 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