改造成api
This commit is contained in:
@@ -132,8 +132,8 @@ func (s *store) HistoricalLogin(ctx context.Context, email string, createdAt tim
|
||||
|
||||
var wc []string
|
||||
|
||||
data["start_at"] = createdAt.Format(time.DateTime)
|
||||
wc = append(wc, "created_at > :start_at")
|
||||
data["created_at"] = createdAt.Format(time.DateTime)
|
||||
wc = append(wc, "created_at < :created_at")
|
||||
|
||||
if email != "" {
|
||||
data["email"] = email
|
||||
|
||||
@@ -4,35 +4,35 @@ import (
|
||||
"bytes"
|
||||
"strings"
|
||||
|
||||
"management/internal/erpserver/model/dto"
|
||||
"management/internal/erpserver/model/system/request"
|
||||
)
|
||||
|
||||
func applyFilter(filter dto.SearchDto, data map[string]any, buf *bytes.Buffer) {
|
||||
func applyFilter(filter request.ListUser, data map[string]any, buf *bytes.Buffer) {
|
||||
var wc []string
|
||||
|
||||
if filter.SearchTimeBegin != "" && filter.SearchTimeEnd == "" {
|
||||
data["start_at"] = filter.SearchTimeBegin
|
||||
data["end_at"] = filter.SearchTimeEnd
|
||||
if filter.StartTime != "" && filter.EndTime != "" {
|
||||
data["start_at"] = filter.StartTime
|
||||
data["end_at"] = filter.EndTime
|
||||
wc = append(wc, "created_at BETWEEN :start_at AND :end_at")
|
||||
}
|
||||
|
||||
if filter.SearchID != 0 {
|
||||
data["id"] = filter.SearchID
|
||||
if filter.ID != 0 {
|
||||
data["id"] = filter.ID
|
||||
wc = append(wc, "id = :id")
|
||||
}
|
||||
|
||||
if filter.SearchName != "" {
|
||||
data["username"] = filter.SearchName
|
||||
if filter.Name != "" {
|
||||
data["username"] = filter.Name
|
||||
wc = append(wc, "username LIKE :username")
|
||||
}
|
||||
|
||||
if filter.SearchEmail != "" {
|
||||
data["email"] = filter.SearchEmail
|
||||
if filter.Email != "" {
|
||||
data["email"] = filter.Email
|
||||
wc = append(wc, "email LIKE :email")
|
||||
}
|
||||
|
||||
if filter.SearchStatus != 9999 {
|
||||
data["status"] = filter.SearchStatus
|
||||
if filter.Status != 9999 {
|
||||
data["status"] = filter.Status
|
||||
wc = append(wc, "status = :status")
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"management/internal/erpserver/model/dto"
|
||||
"management/internal/erpserver/model/system"
|
||||
"management/internal/erpserver/model/system/request"
|
||||
"management/internal/erpserver/repository"
|
||||
"management/internal/pkg/crypto"
|
||||
"management/internal/pkg/rand"
|
||||
@@ -30,7 +30,7 @@ func NewStore(db *repository.Store, log *logger.Logger) system.UserRepository {
|
||||
}
|
||||
|
||||
func (s *store) Initialize(ctx context.Context, departId, roleId int32) error {
|
||||
count, err := s.Count(ctx, dto.SearchDto{})
|
||||
count, err := s.Count(ctx, request.ListUser{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -128,6 +128,30 @@ func (s *store) Get(ctx context.Context, id int32) (*system.User, error) {
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func (s *store) GetByUuid(ctx context.Context, uuid uuid.UUID) (*system.User, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
SELECT
|
||||
id, uuid, email, username, hashed_password, salt, avatar, gender, department_id,
|
||||
role_id, status, change_password_at, created_at, updated_at
|
||||
FROM
|
||||
sys_user
|
||||
WHERE
|
||||
uuid = :uuid;`
|
||||
|
||||
data := map[string]any{
|
||||
"uuid": uuid.String(),
|
||||
}
|
||||
|
||||
var user system.User
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &user)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("select uuid user: %w", err)
|
||||
}
|
||||
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func (s *store) GetByEmail(ctx context.Context, email string) (*system.User, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
@@ -172,7 +196,7 @@ func (s *store) All(ctx context.Context) ([]*system.User, error) {
|
||||
return toPointer(users), nil
|
||||
}
|
||||
|
||||
func (s *store) Count(ctx context.Context, filter dto.SearchDto) (int64, error) {
|
||||
func (s *store) Count(ctx context.Context, filter request.ListUser) (int64, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
SELECT
|
||||
@@ -197,7 +221,7 @@ func (s *store) Count(ctx context.Context, filter dto.SearchDto) (int64, error)
|
||||
return count.Count, nil
|
||||
}
|
||||
|
||||
func (s *store) List(ctx context.Context, filter dto.SearchDto) ([]*system.User, error) {
|
||||
func (s *store) List(ctx context.Context, filter request.ListUser) ([]*system.User, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
SELECT
|
||||
@@ -207,8 +231,8 @@ func (s *store) List(ctx context.Context, filter dto.SearchDto) ([]*system.User,
|
||||
sys_user`
|
||||
|
||||
data := map[string]any{
|
||||
"offset": (filter.Page - 1) * filter.Rows,
|
||||
"rows_per_page": filter.Rows,
|
||||
"offset": (filter.PageID - 1) * filter.PageSize,
|
||||
"rows_per_page": filter.PageSize,
|
||||
}
|
||||
|
||||
buf := bytes.NewBufferString(q)
|
||||
|
||||
Reference in New Issue
Block a user