updateuser

This commit is contained in:
suyl
2021-07-07 16:35:36 +08:00
parent 10993c1c0b
commit 4453ed80f5
4 changed files with 45 additions and 12 deletions

View File

@@ -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+"=?")