package smdl import ( "admin/apps/game/domain/entity" "admin/apps/game/model" "admin/apps/game/model/dto" "admin/internal/errcode" "admin/lib/httpclient" ) type RoleHook struct { } func (hook *RoleHook) 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 []*model.Role `json:"data"` } `json:"data"` } rsp := &RspData{} err := httpclient.Request(alisrvAddr+"/rolelist", "get", nil, rsp) if err != nil { return nil, nil, err } for _, role := range rsp.Data.Data { et := (&entity.CommonResource{}).FromPo(role) rows = append(rows, et.ToCommonDto()) } return fields, rows, nil }