forked from xinliangnote/go-gin-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
service_detail.go
53 lines (41 loc) · 1.3 KB
/
service_detail.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package admin
import (
"github.com/imlida/go-gin-api/internal/pkg/core"
"github.com/imlida/go-gin-api/internal/repository/mysql"
"github.com/imlida/go-gin-api/internal/repository/mysql/admin"
)
type SearchOneData struct {
Id int32 // 用户ID
Username string // 用户名
Nickname string // 昵称
Mobile string // 手机号
Password string // 密码
IsUsed int32 // 是否启用 1:是 -1:否
}
func (s *service) Detail(ctx core.Context, searchOneData *SearchOneData) (info *admin.Admin, err error) {
qb := admin.NewQueryBuilder()
qb.WhereIsDeleted(mysql.EqualPredicate, -1)
if searchOneData.Id != 0 {
qb.WhereId(mysql.EqualPredicate, searchOneData.Id)
}
if searchOneData.Username != "" {
qb.WhereUsername(mysql.EqualPredicate, searchOneData.Username)
}
if searchOneData.Nickname != "" {
qb.WhereNickname(mysql.EqualPredicate, searchOneData.Nickname)
}
if searchOneData.Mobile != "" {
qb.WhereMobile(mysql.EqualPredicate, searchOneData.Mobile)
}
if searchOneData.Password != "" {
qb.WherePassword(mysql.EqualPredicate, searchOneData.Password)
}
if searchOneData.IsUsed != 0 {
qb.WhereIsUsed(mysql.EqualPredicate, searchOneData.IsUsed)
}
info, err = qb.QueryOne(s.db.GetDb("default").WithContext(ctx.RequestContext()))
if err != nil {
return nil, err
}
return
}