package comms import ( gocloud "github.com/mgr9525/go-cloud" "github.com/sirupsen/logrus" ) // columns 第一个参数为where条件,(可选:第二个参数为表结构体或名称,第三个参数为单独获取的列名) func XormOne(id, data interface{}, columns ...interface{}) bool { return XormOneDb(DbSysHelper, id, data, columns...) } func XormOneDb(db *gocloud.DBHelper, id, data interface{}, columns ...interface{}) bool { if id == nil { return false } ses := db.GetDB().NewSession() defer ses.Close() col := "id" if len(columns) > 0 { cols, ok := columns[0].(string) if ok { if cols != "" { col = cols } } else { ses = ses.Table(columns[0]) } if len(columns) > 1 { for _, v := range columns[1:] { cols, ok := v.(string) if ok { ses = ses.Cols(cols) } } } } has, err := ses.Where(col+" = ?", id).Get(data) if err != nil { logrus.Errorf("XormOneDb db err:%v", err) return false } if !has { return false } return true }