大面积重构
Response部分 usersController部分 中间件部分
This commit is contained in:
@@ -2,6 +2,9 @@ package model
|
||||
|
||||
import (
|
||||
"drive-linked/pkg/dao"
|
||||
"fmt"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
@@ -15,18 +18,22 @@ type User struct {
|
||||
Roles string `json:"roles"`
|
||||
}
|
||||
|
||||
func (user *User) GetByName(name string) (err error) {
|
||||
err = dao.DB.Get(user, "SELECT * FROM users WHERE name=?", name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (user *User) GetWithConditions(conditions *map[string]interface{}) error {
|
||||
// 支持多条件查询
|
||||
//TODO:分离多条件查询部分,有利于代码复用
|
||||
var where []string
|
||||
var values []interface{}
|
||||
|
||||
func (user *User) GetByEmail(email string) (err error) {
|
||||
err = dao.DB.Get(user, "SELECT * FROM users WHERE email=?", email)
|
||||
for k, v := range *conditions {
|
||||
values = append(values, v)
|
||||
where = append(where, fmt.Sprintf(`"%s" = %s`, k, "?"))
|
||||
}
|
||||
|
||||
exec := sqlx.Rebind(sqlx.QUESTION, `SELECT * FROM users WHERE `+strings.Join(where, "AND")+" LIMIT 1")
|
||||
err := dao.DB.Get(user, exec, values...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,30 +1,22 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"drive-linked/pkg/dao"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func init() {
|
||||
err := dao.Conn()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
func TestUser_GetWithConditions(t *testing.T) {
|
||||
dao.Conn()
|
||||
|
||||
func TestUser_GetUser(t *testing.T) {
|
||||
var user User
|
||||
// 存在的用户
|
||||
err := user.GetByName("eigeen")
|
||||
conditions := &map[string]interface{}{
|
||||
"name": "eigeen",
|
||||
"email": "375109735@qq.com",
|
||||
}
|
||||
err := user.GetWithConditions(conditions)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
t.Log(user)
|
||||
|
||||
// 不存在的用户
|
||||
err = user.GetByName("unknown_user")
|
||||
if err != sql.ErrNoRows {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user