注册
This commit is contained in:
52
dao/dao.go
Normal file
52
dao/dao.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
putils "git.rosy.net.cn/jx-print/utils"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
"time"
|
||||
)
|
||||
|
||||
func Insert(db *sqlx.DB, obj interface{}) (err error) {
|
||||
var (
|
||||
value = reflect.ValueOf(obj)
|
||||
stype = reflect.TypeOf(obj)
|
||||
sname = stype.Name()
|
||||
sql, values = strings.Builder{}, strings.Builder{}
|
||||
sqlParams = []interface{}{}
|
||||
direct reflect.Value
|
||||
)
|
||||
if stype.Kind() != reflect.Struct {
|
||||
direct = reflect.Indirect(value)
|
||||
} else {
|
||||
direct = value
|
||||
}
|
||||
sql.WriteString("INSERT INTO ")
|
||||
for i := 0; i < stype.NumField()-1; i++ {
|
||||
if stype.Field(i).Type.String() == "*time.Time" {
|
||||
if direct.Field(i).Interface().(*time.Time) != nil {
|
||||
values.WriteString(stype.Field(i).Tag.Get("json") + ",")
|
||||
sqlParams = append(sqlParams, direct.Field(i).Interface())
|
||||
}
|
||||
} else {
|
||||
if !direct.Field(i).IsZero() {
|
||||
values.WriteString(stype.Field(i).Tag.Get("json") + ",")
|
||||
sqlParams = append(sqlParams, direct.Field(i).Interface())
|
||||
}
|
||||
}
|
||||
}
|
||||
sql.WriteString(putils.UnMarshalHr(sname) + "(")
|
||||
sql.WriteString(values.String()[:len(values.String())-1])
|
||||
sql.WriteString(") VALUES(")
|
||||
for i := 0; i < len(strings.Split(values.String(), ","))-1; i++ {
|
||||
if i != 0 {
|
||||
sql.WriteString(",")
|
||||
}
|
||||
sql.WriteString("?")
|
||||
}
|
||||
sql.WriteString(")")
|
||||
_, err = db.DB.Exec(sql.String(), sqlParams...)
|
||||
return err
|
||||
}
|
||||
31
dao/user_dao.go
Normal file
31
dao/user_dao.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
func GetUsers(db *sqlx.DB, userID, name, mobile string) (users []*model.User, err error) {
|
||||
var sqlParams []interface{}
|
||||
sql := `
|
||||
SELECT *
|
||||
FROM user
|
||||
WHERE 1 = 1
|
||||
`
|
||||
if name != "" {
|
||||
sql += " AND name LIKE ?"
|
||||
sqlParams = append(sqlParams, "%"+name+"%")
|
||||
}
|
||||
if userID != "" {
|
||||
sql += " AND user_id = ?"
|
||||
sqlParams = append(sqlParams, userID)
|
||||
}
|
||||
if mobile != "" {
|
||||
sql += " AND mobile = ?"
|
||||
sqlParams = append(sqlParams, mobile)
|
||||
}
|
||||
if err = db.Select(&users, sql, sqlParams...); err == nil {
|
||||
return users, err
|
||||
}
|
||||
return users, err
|
||||
}
|
||||
Reference in New Issue
Block a user