55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package smdl
|
|
|
|
import (
|
|
"admin/apps/game/domain/entity"
|
|
"admin/apps/game/model"
|
|
"admin/apps/game/model/dto"
|
|
"admin/internal/errcode"
|
|
"admin/lib/httpclient"
|
|
"strconv"
|
|
)
|
|
|
|
type AccountHook struct {
|
|
}
|
|
|
|
func (hook *AccountHook) List(projectInfo *entity.Project, resource string, pageNo, pageLen int, fields []*dto.CommonDtoFieldDesc, rows []dto.CommonDtoValues, extraQuery string, args ...any) (
|
|
[]*dto.CommonDtoFieldDesc, []dto.CommonDtoValues, error) {
|
|
alisrvAddr := projectInfo.GetApiAddr()
|
|
if alisrvAddr == "" {
|
|
return nil, nil, errcode.New(errcode.ServerError, "项目%v没有配置api服务器地址", projectInfo.ProjectPo.Name)
|
|
}
|
|
|
|
type RspData struct {
|
|
Code int `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Data struct {
|
|
Data []struct {
|
|
Account string `json:"account"`
|
|
ServerId int `json:"serverId"`
|
|
RoleList []*model.Role `json:"roleList"`
|
|
} `json:"data"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
rsp := &RspData{}
|
|
err := httpclient.Request(alisrvAddr+"/userlist", "get", nil, rsp)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
for _, user := range rsp.Data.Data {
|
|
|
|
userPo := &model.Account{
|
|
Account: user.Account,
|
|
ServerConfId: strconv.Itoa(user.ServerId),
|
|
}
|
|
for _, v := range user.RoleList {
|
|
userPo.RoleIds = append(userPo.RoleIds, v.RoleId)
|
|
}
|
|
et := (&entity.CommonResource{}).FromPo(userPo)
|
|
rows = append(rows, et.ToCommonDto())
|
|
}
|
|
|
|
return fields, rows, nil
|
|
}
|