// internal/controller/hero/hero_v1.go package hero import ( "context" "epic/api/hero/v1" "epic/internal/service" ) func (c *ControllerV1) GetOne(ctx context.Context, req *v1.GetOneReq) (res *v1.GetOneRes, err error) { hero, err := service.Hero().GetHeroByCode(ctx, req.Code) if err != nil { return nil, err } res = &v1.GetOneRes{ EpicHeroInfo: hero, } return res, nil } func (c *ControllerV1) GetList(ctx context.Context, req *v1.GetListReq) (res *v1.GetListRes, err error) { // 获取 VO 列表 list, err := service.Hero().GetHeroList(ctx) if err != nil { return nil, err } // 构造响应 res = (*v1.GetListRes)(&list) return res, nil } func (c *ControllerV1) GetDetail(ctx context.Context, req *v1.GetDetailReq) (res *v1.GetDetailRes, err error) { detail, err := service.Hero().GetHeroDetailByCode(ctx, req.HeroCode) if err != nil { return nil, err } res = &v1.GetDetailRes{ HeroDetailVO: detail, } return res, nil }