fix: synchronize update the syncers (#2201)

Signed-off-by: baihhh <2542274498@qq.com>
This commit is contained in:
Baihhh
2023-08-13 22:24:34 +08:00
committed by Yang Luo
parent db4ac60bb6
commit 80b0d26813
6 changed files with 138 additions and 41 deletions

View File

@ -17,6 +17,7 @@ package object
import (
"encoding/json"
"fmt"
"reflect"
"strconv"
"strings"
"time"
@ -164,6 +165,33 @@ func (syncer *Syncer) setUserByKeyValue(user *User, key string, value string) {
}
}
func (syncer *Syncer) getUserValue(user *User, key string) string {
jsonData, _ := json.Marshal(user)
var mapData map[string]interface{}
if err := json.Unmarshal(jsonData, &mapData); err != nil {
fmt.Println("conversion failed:", err)
return user.Id
}
value := mapData[util.SnakeToCamel(key)]
if str, ok := value.(string); ok {
return str
} else {
if value != nil {
valType := reflect.TypeOf(value)
typeName := valType.Name()
switch typeName {
case "bool":
return strconv.FormatBool(value.(bool))
case "int":
return strconv.Itoa(value.(int))
}
}
return user.Id
}
}
func (syncer *Syncer) getOriginalUsersFromMap(results []map[string]string) []*OriginalUser {
users := []*OriginalUser{}
for _, result := range results {