updateuser
This commit is contained in:
15
dao/dao.go
15
dao/dao.go
@@ -127,11 +127,15 @@ func UpdateDiff(db *sqlx.DB, obj interface{}, obj2 interface{}) (err error) {
|
||||
if sname != sname2 {
|
||||
return fmt.Errorf("请传入两个类型相同的结构体!")
|
||||
}
|
||||
for i := 1; i < stype.NumField()-1; i++ {
|
||||
fieldMap1[stype.Field(i).Tag.Get("json")] = value.Field(i).Interface()
|
||||
for i := 5; i < stype.NumField()-1; i++ {
|
||||
if !value.Field(i).IsZero() {
|
||||
fieldMap1[stype.Field(i).Tag.Get("json")] = value.Field(i).Interface()
|
||||
}
|
||||
}
|
||||
for i := 1; i < stype2.NumField()-1; i++ {
|
||||
fieldMap2[stype2.Field(i).Tag.Get("json")] = value2.Field(i).Interface()
|
||||
for i := 5; i < stype2.NumField()-1; i++ {
|
||||
if !value2.Field(i).IsZero() {
|
||||
fieldMap2[stype2.Field(i).Tag.Get("json")] = value2.Field(i).Interface()
|
||||
}
|
||||
}
|
||||
for k, v := range fieldMap1 {
|
||||
if fieldMap2[k] != nil {
|
||||
@@ -142,6 +146,9 @@ func UpdateDiff(db *sqlx.DB, obj interface{}, obj2 interface{}) (err error) {
|
||||
}
|
||||
sql.WriteString("UPDATE ")
|
||||
sql.WriteString(putils.UnMarshalHr(sname) + " SET ")
|
||||
if len(fields) == 0 {
|
||||
return err
|
||||
}
|
||||
fieldsStr := []string{}
|
||||
for k, v := range fields {
|
||||
fieldsStr = append(fieldsStr, k+"=?")
|
||||
|
||||
Reference in New Issue
Block a user