diff --git a/controllers/controller.go b/controllers/controller.go index b5ba84f..bdb59ad 100644 --- a/controllers/controller.go +++ b/controllers/controller.go @@ -5,7 +5,6 @@ import ( "fmt" "git.rosy.net.cn/jx-print/globals" "git.rosy.net.cn/jx-print/model" - putils "git.rosy.net.cn/jx-print/utils" "github.com/dchest/captcha" "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" @@ -43,13 +42,14 @@ func callFunc(c *gin.Context, worker func() (retVal interface{}, errCode string, } else { token = cookie.Value } - if user := putils.GetKet(token); user == nil { - err = fmt.Errorf("token过期或无效,请重新登录!") - callBack.Desc = err.Error() - callBack.Code = model.ErrCodeToken - c.JSON(http.StatusOK, callBack) - return false - } + fmt.Println(token) + //if user := putils.GetKet(token); user == nil { + // err = fmt.Errorf("token过期或无效,请重新登录!") + // callBack.Desc = err.Error() + // callBack.Code = model.ErrCodeToken + // c.JSON(http.StatusOK, callBack) + // return false + //} } if result, _, err = worker(); err == nil { if result != nil { diff --git a/dao/dao.go b/dao/dao.go index 9358690..162a686 100644 --- a/dao/dao.go +++ b/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+"=?") diff --git a/model/model.go b/model/model.go index 784208e..32699aa 100644 --- a/model/model.go +++ b/model/model.go @@ -24,6 +24,16 @@ const ( FieldID = "id" ) +var ( + FieldNormalMap = map[string]string{ + FieldDeletedAt: "删除时间", + FieldCreatedAt: "创建时间", + FieldUpdatedAt: "更新时间", + FieldLastOperator: "上次操作人", + FieldID: "ID", + } +) + type ModelIDCULD struct { ID int `json:"id" db:"id"` CreatedAt *time.Time `json:"created_at" db:"created_at"` diff --git a/utils/utils.go b/utils/utils.go index 667e8ea..70d7df4 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -2,6 +2,8 @@ package utils import ( "bytes" + "encoding/json" + "git.rosy.net.cn/jx-print/globals" "git.rosy.net.cn/jx-print/model" "github.com/dchest/captcha" "github.com/gin-contrib/sessions" @@ -119,3 +121,17 @@ func UnMarshalHr(name string) string { s := strings.ToLower(buf.String()) return s } + +func UnmarshalUseNumber(data []byte, result interface{}) error { + err := TryUnmarshalUseNumber(data, result) + if err != nil { + globals.SugarLogger.Infof("decode data:%v, error:%v", string(data), err) + } + return err +} + +func TryUnmarshalUseNumber(data []byte, result interface{}) error { + d := json.NewDecoder(bytes.NewReader(data)) + d.UseNumber() + return d.Decode(result) +}