mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 18:54:03 +08:00
Fix other bugs in syncer.
This commit is contained in:
parent
e79e3c36d0
commit
4b4c9be71b
@ -167,3 +167,11 @@ func (syncer *Syncer) getTableColumnsTypeMap() map[string]string {
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func (syncer *Syncer) getTable() string {
|
||||
if syncer.DatabaseType == "mssql" {
|
||||
return fmt.Sprintf("[%s]", syncer.Table)
|
||||
} else {
|
||||
return syncer.Table
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,9 @@ func (syncer *Syncer) syncUsers() {
|
||||
for _, user := range users {
|
||||
id := user.Id
|
||||
if _, ok := oUserMap[id]; !ok {
|
||||
panic(fmt.Sprintf("New original user: cannot create now, user = %v", user))
|
||||
newOUser := syncer.createOriginalUserFromUser(user)
|
||||
syncer.addUser(newOUser)
|
||||
fmt.Printf("New oUser: %v\n", newOUser)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,11 +26,7 @@ import (
|
||||
type OriginalUser = User
|
||||
|
||||
func (syncer *Syncer) getOriginalUsers() []*OriginalUser {
|
||||
sql := fmt.Sprintf("select * from %s", syncer.Table)
|
||||
if syncer.DatabaseType == "mssql" {
|
||||
sql = fmt.Sprintf("select * from [%s]", syncer.Table)
|
||||
}
|
||||
|
||||
sql := fmt.Sprintf("select * from %s", syncer.getTable())
|
||||
results, err := syncer.Adapter.Engine.QueryString(sql)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -51,10 +47,9 @@ func (syncer *Syncer) getOriginalUserMap() ([]*OriginalUser, map[string]*Origina
|
||||
|
||||
func (syncer *Syncer) addUser(user *OriginalUser) bool {
|
||||
m := syncer.getMapFromOriginalUser(user)
|
||||
keyString := syncer.getSqlKeyStringFromMap(m)
|
||||
valueString := syncer.getSqlValueStringFromMap(m)
|
||||
keyString, valueString := syncer.getSqlKeyValueStringFromMap(m)
|
||||
|
||||
sql := fmt.Sprintf("insert into %s (%s) values (%s)", syncer.Table, keyString, valueString)
|
||||
sql := fmt.Sprintf("insert into %s (%s) values (%s)", syncer.getTable(), keyString, valueString)
|
||||
res, err := syncer.Adapter.Engine.Exec(sql)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -95,7 +90,7 @@ func (syncer *Syncer) updateUser(user *OriginalUser) bool {
|
||||
delete(m, syncer.TablePrimaryKey)
|
||||
setString := syncer.getSqlSetStringFromMap(m)
|
||||
|
||||
sql := fmt.Sprintf("update %s set %s where %s = %s", syncer.Table, setString, syncer.TablePrimaryKey, pkValue)
|
||||
sql := fmt.Sprintf("update %s set %s where %s = %s", syncer.getTable(), setString, syncer.TablePrimaryKey, pkValue)
|
||||
res, err := syncer.Adapter.Engine.Exec(sql)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -233,26 +233,18 @@ func (syncer *Syncer) getSqlSetStringFromMap(m map[string]string) string {
|
||||
return strings.Join(tokens, ", ")
|
||||
}
|
||||
|
||||
func (syncer *Syncer) getSqlKeyStringFromMap(m map[string]string) string {
|
||||
tokens := []string{}
|
||||
for k, _ := range m {
|
||||
token := k
|
||||
tokens = append(tokens, token)
|
||||
}
|
||||
return strings.Join(tokens, ", ")
|
||||
}
|
||||
|
||||
func (syncer *Syncer) getSqlValueStringFromMap(m map[string]string) string {
|
||||
func (syncer *Syncer) getSqlKeyValueStringFromMap(m map[string]string) (string, string) {
|
||||
typeMap := syncer.getTableColumnsTypeMap()
|
||||
|
||||
tokens := []string{}
|
||||
keys := []string{}
|
||||
values := []string{}
|
||||
for k, v := range m {
|
||||
token := v
|
||||
if typeMap[k] == "string" {
|
||||
token = fmt.Sprintf("'%s'", v)
|
||||
v = fmt.Sprintf("'%s'", v)
|
||||
}
|
||||
|
||||
tokens = append(tokens, token)
|
||||
keys = append(keys, k)
|
||||
values = append(values, v)
|
||||
}
|
||||
return strings.Join(tokens, ", ")
|
||||
return strings.Join(keys, ", "), strings.Join(values, ", ")
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ func (syncer *Syncer) getUserMap() ([]*User, map[string]*User) {
|
||||
|
||||
m := map[string]*User{}
|
||||
for _, user := range users {
|
||||
m[user.Name] = user
|
||||
m[user.Id] = user
|
||||
}
|
||||
return users, m
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user