From c52ee4d80de792008522edfb3f06d67b20df4cb5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 19 十月 2023 11:38:42 +0800
Subject: [PATCH] 同步用户只同步当前登录用户

---
 model/user.go |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/model/user.go b/model/user.go
index 925d6d7..318a24b 100644
--- a/model/user.go
+++ b/model/user.go
@@ -5,13 +5,14 @@
 	"aps_crm/pkg/mysqlx"
 	"fmt"
 	"gorm.io/gorm"
+	"gorm.io/gorm/clause"
 )
 
 type (
 	// 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:"unique;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:鐢ㄦ埛鐧诲綍瀵嗙爜"`
@@ -277,10 +278,13 @@
 	return records, nil
 }
 
-func (slf *UserSearch) FirstOrCreate(record User) error {
+func (slf *UserSearch) Upsert(record User) error {
 	var db = slf.build()
 
-	if err := db.FirstOrCreate(&User{}, record).Error; err != nil {
+	if err := db.Clauses(clause.OnConflict{
+		Columns:   []clause.Column{{Name: "uuid"}},
+		DoUpdates: clause.AssignmentColumns([]string{"uuid", "username", "user_type", "nick_name"}),
+	}).Create(&record).Error; err != nil {
 		return fmt.Errorf("first or create err: %v, record: %+v", err, record)
 	}
 

--
Gitblit v1.8.0