service_detail.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package admin
  2. import (
  3. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  4. "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
  5. "github.com/xinliangnote/go-gin-api/internal/repository/mysql/admin"
  6. )
  7. type SearchOneData struct {
  8. Id int32 // 用户ID
  9. Username string // 用户名
  10. Nickname string // 昵称
  11. Mobile string // 手机号
  12. Password string // 密码
  13. IsUsed int32 // 是否启用 1:是 -1:否
  14. }
  15. func (s *service) Detail(ctx core.Context, searchOneData *SearchOneData) (info *admin.Admin, err error) {
  16. qb := admin.NewQueryBuilder()
  17. qb.WhereIsDeleted(mysql.EqualPredicate, -1)
  18. if searchOneData.Id != 0 {
  19. qb.WhereId(mysql.EqualPredicate, searchOneData.Id)
  20. }
  21. if searchOneData.Username != "" {
  22. qb.WhereUsername(mysql.EqualPredicate, searchOneData.Username)
  23. }
  24. if searchOneData.Nickname != "" {
  25. qb.WhereNickname(mysql.EqualPredicate, searchOneData.Nickname)
  26. }
  27. if searchOneData.Mobile != "" {
  28. qb.WhereMobile(mysql.EqualPredicate, searchOneData.Mobile)
  29. }
  30. if searchOneData.Password != "" {
  31. qb.WherePassword(mysql.EqualPredicate, searchOneData.Password)
  32. }
  33. if searchOneData.IsUsed != 0 {
  34. qb.WhereIsUsed(mysql.EqualPredicate, searchOneData.IsUsed)
  35. }
  36. info, err = qb.QueryOne(s.db.GetDbR().WithContext(ctx.RequestContext()))
  37. if err != nil {
  38. return nil, err
  39. }
  40. return
  41. }