Files
2026-02-04 20:27:13 +08:00

63 lines
1.4 KiB
Go

// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package accounts
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/iwind/TeaGo/maps"
)
type IndexAction struct {
actionutils.ParentAction
}
func (this *IndexAction) Init() {
this.Nav("", "", "index")
}
func (this *IndexAction) RunGet(params struct {
Keyword string
}) {
this.Data["keyword"] = params.Keyword
countResp, err := this.RPC().UserAccountRPC().CountUserAccounts(this.AdminContext(), &pb.CountUserAccountsRequest{Keyword: params.Keyword})
if err != nil {
this.ErrorPage(err)
return
}
var count = countResp.Count
var page = this.NewPage(count)
this.Data["page"] = page.AsHTML()
accountsResp, err := this.RPC().UserAccountRPC().ListUserAccounts(this.AdminContext(), &pb.ListUserAccountsRequest{
Keyword: params.Keyword,
Offset: page.Offset,
Size: page.Size,
})
if err != nil {
this.ErrorPage(err)
return
}
var accountMaps = []maps.Map{}
for _, account := range accountsResp.UserAccounts {
if account.User == nil {
account.User = &pb.User{}
}
accountMaps = append(accountMaps, maps.Map{
"id": account.Id,
"total": account.Total,
"user": maps.Map{
"id": account.UserId,
"username": account.User.Username,
"fullname": account.User.Fullname,
},
})
}
this.Data["accounts"] = accountMaps
this.Show()
}