feat: 新增实时应援道具使用显示

This commit is contained in:
zerosaturation 2026-05-20 18:42:12 +08:00
parent 0d591fdd94
commit afda66cdb9
6 changed files with 1091 additions and 37 deletions

View File

@ -0,0 +1,311 @@
// Code generated by protoc-gen-triple. DO NOT EDIT.
//
// Source: activity.proto
package activity
import (
"context"
)
import (
"dubbo.apache.org/dubbo-go/v3"
"dubbo.apache.org/dubbo-go/v3/client"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/protocol/triple/triple_protocol"
"dubbo.apache.org/dubbo-go/v3/server"
)
// This is a compile-time assertion to ensure that this generated file and the Triple package
// are compatible. If you get a compiler error that this constant is not defined, this code was
// generated with a version of Triple newer than the one compiled into your binary. You can fix the
// problem by either regenerating this code with an older version of Triple or updating the Triple
// version compiled into your binary.
const _ = triple_protocol.IsAtLeastVersion0_1_0
const (
// ActivityServiceName is the fully-qualified name of the ActivityService service.
ActivityServiceName = "topfans.activity.ActivityService"
)
// These constants are the fully-qualified names of the RPCs defined in this package. They're
// exposed at runtime as procedure and as the final two segments of the HTTP route.
//
// Note that these are different from the fully-qualified method names used by
// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
// ActivityServiceGetActivityListProcedure is the fully-qualified name of the ActivityService's GetActivityList RPC.
ActivityServiceGetActivityListProcedure = "/topfans.activity.ActivityService/GetActivityList"
// ActivityServiceGetActivityProcedure is the fully-qualified name of the ActivityService's GetActivity RPC.
ActivityServiceGetActivityProcedure = "/topfans.activity.ActivityService/GetActivity"
// ActivityServiceGetActivityItemsProcedure is the fully-qualified name of the ActivityService's GetActivityItems RPC.
ActivityServiceGetActivityItemsProcedure = "/topfans.activity.ActivityService/GetActivityItems"
// ActivityServiceGetProgressProcedure is the fully-qualified name of the ActivityService's GetProgress RPC.
ActivityServiceGetProgressProcedure = "/topfans.activity.ActivityService/GetProgress"
// ActivityServicePurchaseItemProcedure is the fully-qualified name of the ActivityService's PurchaseItem RPC.
ActivityServicePurchaseItemProcedure = "/topfans.activity.ActivityService/PurchaseItem"
// ActivityServiceGetContributionRankingProcedure is the fully-qualified name of the ActivityService's GetContributionRanking RPC.
ActivityServiceGetContributionRankingProcedure = "/topfans.activity.ActivityService/GetContributionRanking"
// ActivityServiceGetMintingActivitiesProcedure is the fully-qualified name of the ActivityService's GetMintingActivities RPC.
ActivityServiceGetMintingActivitiesProcedure = "/topfans.activity.ActivityService/GetMintingActivities"
// ActivityServiceGetLatestContributionsProcedure is the fully-qualified name of the ActivityService's GetLatestContributions RPC.
ActivityServiceGetLatestContributionsProcedure = "/topfans.activity.ActivityService/GetLatestContributions"
)
var (
_ ActivityService = (*ActivityServiceImpl)(nil)
)
// ActivityService is a client for the topfans.activity.ActivityService service.
type ActivityService interface {
GetActivityList(ctx context.Context, req *GetActivityListRequest, opts ...client.CallOption) (*GetActivityListResponse, error)
GetActivity(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*Activity, error)
GetActivityItems(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*ActivityItemsResponse, error)
GetProgress(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*GetProgressResponse, error)
PurchaseItem(ctx context.Context, req *PurchaseItemRequest, opts ...client.CallOption) (*PurchaseItemResponse, error)
GetContributionRanking(ctx context.Context, req *ContributionRankingRequest, opts ...client.CallOption) (*ContributionRankingResponse, error)
GetMintingActivities(ctx context.Context, req *GetMintingActivitiesRequest, opts ...client.CallOption) (*GetMintingActivitiesResponse, error)
GetLatestContributions(ctx context.Context, req *GetLatestContributionsRequest, opts ...client.CallOption) (*GetLatestContributionsResponse, error)
}
// NewActivityService constructs a client for the activity.ActivityService service.
func NewActivityService(cli *client.Client, opts ...client.ReferenceOption) (ActivityService, error) {
conn, err := cli.DialWithInfo("topfans.activity.ActivityService", &ActivityService_ClientInfo, opts...)
if err != nil {
return nil, err
}
return &ActivityServiceImpl{
conn: conn,
}, nil
}
func SetConsumerActivityService(srv common.RPCService) {
dubbo.SetConsumerServiceWithInfo(srv, &ActivityService_ClientInfo)
}
// ActivityServiceImpl implements ActivityService.
type ActivityServiceImpl struct {
conn *client.Connection
}
func (c *ActivityServiceImpl) GetActivityList(ctx context.Context, req *GetActivityListRequest, opts ...client.CallOption) (*GetActivityListResponse, error) {
resp := new(GetActivityListResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetActivityList", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetActivity(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*Activity, error) {
resp := new(Activity)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetActivity", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetActivityItems(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*ActivityItemsResponse, error) {
resp := new(ActivityItemsResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetActivityItems", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetProgress(ctx context.Context, req *GetProgressRequest, opts ...client.CallOption) (*GetProgressResponse, error) {
resp := new(GetProgressResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetProgress", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) PurchaseItem(ctx context.Context, req *PurchaseItemRequest, opts ...client.CallOption) (*PurchaseItemResponse, error) {
resp := new(PurchaseItemResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "PurchaseItem", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetContributionRanking(ctx context.Context, req *ContributionRankingRequest, opts ...client.CallOption) (*ContributionRankingResponse, error) {
resp := new(ContributionRankingResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetContributionRanking", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetMintingActivities(ctx context.Context, req *GetMintingActivitiesRequest, opts ...client.CallOption) (*GetMintingActivitiesResponse, error) {
resp := new(GetMintingActivitiesResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetMintingActivities", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *ActivityServiceImpl) GetLatestContributions(ctx context.Context, req *GetLatestContributionsRequest, opts ...client.CallOption) (*GetLatestContributionsResponse, error) {
resp := new(GetLatestContributionsResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetLatestContributions", opts...); err != nil {
return nil, err
}
return resp, nil
}
var ActivityService_ClientInfo = client.ClientInfo{
InterfaceName: "topfans.activity.ActivityService",
MethodNames: []string{"GetActivityList", "GetActivity", "GetActivityItems", "GetProgress", "PurchaseItem", "GetContributionRanking", "GetMintingActivities", "GetLatestContributions"},
ConnectionInjectFunc: func(dubboCliRaw interface{}, conn *client.Connection) {
dubboCli := dubboCliRaw.(*ActivityServiceImpl)
dubboCli.conn = conn
},
}
// ActivityServiceHandler is an implementation of the topfans.activity.ActivityService service.
type ActivityServiceHandler interface {
GetActivityList(context.Context, *GetActivityListRequest) (*GetActivityListResponse, error)
GetActivity(context.Context, *GetProgressRequest) (*Activity, error)
GetActivityItems(context.Context, *GetProgressRequest) (*ActivityItemsResponse, error)
GetProgress(context.Context, *GetProgressRequest) (*GetProgressResponse, error)
PurchaseItem(context.Context, *PurchaseItemRequest) (*PurchaseItemResponse, error)
GetContributionRanking(context.Context, *ContributionRankingRequest) (*ContributionRankingResponse, error)
GetMintingActivities(context.Context, *GetMintingActivitiesRequest) (*GetMintingActivitiesResponse, error)
GetLatestContributions(context.Context, *GetLatestContributionsRequest) (*GetLatestContributionsResponse, error)
}
func RegisterActivityServiceHandler(srv *server.Server, hdlr ActivityServiceHandler, opts ...server.ServiceOption) error {
return srv.Register(hdlr, &ActivityService_ServiceInfo, opts...)
}
func SetProviderActivityService(srv common.RPCService) {
dubbo.SetProviderServiceWithInfo(srv, &ActivityService_ServiceInfo)
}
var ActivityService_ServiceInfo = server.ServiceInfo{
InterfaceName: "topfans.activity.ActivityService",
ServiceType: (*ActivityServiceHandler)(nil),
Methods: []server.MethodInfo{
{
Name: "GetActivityList",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetActivityListRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetActivityListRequest)
res, err := handler.(ActivityServiceHandler).GetActivityList(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetActivity",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetProgressRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetProgressRequest)
res, err := handler.(ActivityServiceHandler).GetActivity(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetActivityItems",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetProgressRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetProgressRequest)
res, err := handler.(ActivityServiceHandler).GetActivityItems(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetProgress",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetProgressRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetProgressRequest)
res, err := handler.(ActivityServiceHandler).GetProgress(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "PurchaseItem",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(PurchaseItemRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*PurchaseItemRequest)
res, err := handler.(ActivityServiceHandler).PurchaseItem(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetContributionRanking",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(ContributionRankingRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*ContributionRankingRequest)
res, err := handler.(ActivityServiceHandler).GetContributionRanking(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetMintingActivities",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetMintingActivitiesRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetMintingActivitiesRequest)
res, err := handler.(ActivityServiceHandler).GetMintingActivities(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetLatestContributions",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetLatestContributionsRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetLatestContributionsRequest)
res, err := handler.(ActivityServiceHandler).GetLatestContributions(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
},
}

View File

@ -0,0 +1,689 @@
// Code generated by protoc-gen-triple. DO NOT EDIT.
//
// Source: user.proto
package user
import (
"context"
)
import (
"dubbo.apache.org/dubbo-go/v3"
"dubbo.apache.org/dubbo-go/v3/client"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/protocol/triple/triple_protocol"
"dubbo.apache.org/dubbo-go/v3/server"
)
// This is a compile-time assertion to ensure that this generated file and the Triple package
// are compatible. If you get a compiler error that this constant is not defined, this code was
// generated with a version of Triple newer than the one compiled into your binary. You can fix the
// problem by either regenerating this code with an older version of Triple or updating the Triple
// version compiled into your binary.
const _ = triple_protocol.IsAtLeastVersion0_1_0
const (
// UserSocialServiceName is the fully-qualified name of the UserSocialService service.
UserSocialServiceName = "topfans.user.UserSocialService"
)
// These constants are the fully-qualified names of the RPCs defined in this package. They're
// exposed at runtime as procedure and as the final two segments of the HTTP route.
//
// Note that these are different from the fully-qualified method names used by
// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
// UserSocialServiceRegisterProcedure is the fully-qualified name of the UserSocialService's Register RPC.
UserSocialServiceRegisterProcedure = "/topfans.user.UserSocialService/Register"
// UserSocialServiceLoginProcedure is the fully-qualified name of the UserSocialService's Login RPC.
UserSocialServiceLoginProcedure = "/topfans.user.UserSocialService/Login"
// UserSocialServiceRefreshTokenProcedure is the fully-qualified name of the UserSocialService's RefreshToken RPC.
UserSocialServiceRefreshTokenProcedure = "/topfans.user.UserSocialService/RefreshToken"
// UserSocialServiceValidateTokenProcedure is the fully-qualified name of the UserSocialService's ValidateToken RPC.
UserSocialServiceValidateTokenProcedure = "/topfans.user.UserSocialService/ValidateToken"
// UserSocialServiceLogoutProcedure is the fully-qualified name of the UserSocialService's Logout RPC.
UserSocialServiceLogoutProcedure = "/topfans.user.UserSocialService/Logout"
// UserSocialServiceCheckNicknameProcedure is the fully-qualified name of the UserSocialService's CheckNickname RPC.
UserSocialServiceCheckNicknameProcedure = "/topfans.user.UserSocialService/CheckNickname"
// UserSocialServiceCheckMobileProcedure is the fully-qualified name of the UserSocialService's CheckMobile RPC.
UserSocialServiceCheckMobileProcedure = "/topfans.user.UserSocialService/CheckMobile"
// UserSocialServiceGetUserProcedure is the fully-qualified name of the UserSocialService's GetUser RPC.
UserSocialServiceGetUserProcedure = "/topfans.user.UserSocialService/GetUser"
// UserSocialServiceGetFanProfileProcedure is the fully-qualified name of the UserSocialService's GetFanProfile RPC.
UserSocialServiceGetFanProfileProcedure = "/topfans.user.UserSocialService/GetFanProfile"
// UserSocialServiceUpdateFanProfileSocialProcedure is the fully-qualified name of the UserSocialService's UpdateFanProfileSocial RPC.
UserSocialServiceUpdateFanProfileSocialProcedure = "/topfans.user.UserSocialService/UpdateFanProfileSocial"
// UserSocialServiceUpdateCrystalBalanceProcedure is the fully-qualified name of the UserSocialService's UpdateCrystalBalance RPC.
UserSocialServiceUpdateCrystalBalanceProcedure = "/topfans.user.UserSocialService/UpdateCrystalBalance"
// UserSocialServiceUpdateAssetsCountProcedure is the fully-qualified name of the UserSocialService's UpdateAssetsCount RPC.
UserSocialServiceUpdateAssetsCountProcedure = "/topfans.user.UserSocialService/UpdateAssetsCount"
// UserSocialServiceAddExhibitionHoursProcedure is the fully-qualified name of the UserSocialService's AddExhibitionHours RPC.
UserSocialServiceAddExhibitionHoursProcedure = "/topfans.user.UserSocialService/AddExhibitionHours"
// UserSocialServiceGetCurrentUserProcedure is the fully-qualified name of the UserSocialService's GetCurrentUser RPC.
UserSocialServiceGetCurrentUserProcedure = "/topfans.user.UserSocialService/GetCurrentUser"
// UserSocialServiceGetMyProfileProcedure is the fully-qualified name of the UserSocialService's GetMyProfile RPC.
UserSocialServiceGetMyProfileProcedure = "/topfans.user.UserSocialService/GetMyProfile"
// UserSocialServiceUpdateNicknameProcedure is the fully-qualified name of the UserSocialService's UpdateNickname RPC.
UserSocialServiceUpdateNicknameProcedure = "/topfans.user.UserSocialService/UpdateNickname"
// UserSocialServiceUpdatePasswordProcedure is the fully-qualified name of the UserSocialService's UpdatePassword RPC.
UserSocialServiceUpdatePasswordProcedure = "/topfans.user.UserSocialService/UpdatePassword"
// UserSocialServiceUpdateAvatarProcedure is the fully-qualified name of the UserSocialService's UpdateAvatar RPC.
UserSocialServiceUpdateAvatarProcedure = "/topfans.user.UserSocialService/UpdateAvatar"
// UserSocialServiceGetFanIdentitiesProcedure is the fully-qualified name of the UserSocialService's GetFanIdentities RPC.
UserSocialServiceGetFanIdentitiesProcedure = "/topfans.user.UserSocialService/GetFanIdentities"
// UserSocialServiceGetMyFanIdentitiesProcedure is the fully-qualified name of the UserSocialService's GetMyFanIdentities RPC.
UserSocialServiceGetMyFanIdentitiesProcedure = "/topfans.user.UserSocialService/GetMyFanIdentities"
// UserSocialServiceAddIdentityProcedure is the fully-qualified name of the UserSocialService's AddIdentity RPC.
UserSocialServiceAddIdentityProcedure = "/topfans.user.UserSocialService/AddIdentity"
// UserSocialServiceSwitchIdentityProcedure is the fully-qualified name of the UserSocialService's SwitchIdentity RPC.
UserSocialServiceSwitchIdentityProcedure = "/topfans.user.UserSocialService/SwitchIdentity"
)
var (
_ UserSocialService = (*UserSocialServiceImpl)(nil)
)
// UserSocialService is a client for the topfans.user.UserSocialService service.
type UserSocialService interface {
Register(ctx context.Context, req *RegisterRequest, opts ...client.CallOption) (*RegisterResponse, error)
Login(ctx context.Context, req *LoginRequest, opts ...client.CallOption) (*LoginResponse, error)
RefreshToken(ctx context.Context, req *RefreshTokenRequest, opts ...client.CallOption) (*RefreshTokenResponse, error)
ValidateToken(ctx context.Context, req *ValidateTokenRequest, opts ...client.CallOption) (*ValidateTokenResponse, error)
Logout(ctx context.Context, req *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error)
CheckNickname(ctx context.Context, req *CheckNicknameRequest, opts ...client.CallOption) (*CheckNicknameResponse, error)
CheckMobile(ctx context.Context, req *CheckMobileRequest, opts ...client.CallOption) (*CheckMobileResponse, error)
GetUser(ctx context.Context, req *GetUserRequest, opts ...client.CallOption) (*GetUserResponse, error)
GetFanProfile(ctx context.Context, req *GetFanProfileRequest, opts ...client.CallOption) (*GetFanProfileResponse, error)
UpdateFanProfileSocial(ctx context.Context, req *UpdateFanProfileSocialRequest, opts ...client.CallOption) (*UpdateFanProfileSocialResponse, error)
UpdateCrystalBalance(ctx context.Context, req *UpdateCrystalBalanceRequest, opts ...client.CallOption) (*UpdateCrystalBalanceResponse, error)
UpdateAssetsCount(ctx context.Context, req *UpdateAssetsCountRequest, opts ...client.CallOption) (*UpdateAssetsCountResponse, error)
AddExhibitionHours(ctx context.Context, req *AddExhibitionHoursRequest, opts ...client.CallOption) (*AddExhibitionHoursResponse, error)
GetCurrentUser(ctx context.Context, req *GetCurrentUserRequest, opts ...client.CallOption) (*GetCurrentUserResponse, error)
GetMyProfile(ctx context.Context, req *GetMyProfileRequest, opts ...client.CallOption) (*GetMyProfileResponse, error)
UpdateNickname(ctx context.Context, req *UpdateNicknameRequest, opts ...client.CallOption) (*UpdateNicknameResponse, error)
UpdatePassword(ctx context.Context, req *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error)
UpdateAvatar(ctx context.Context, req *UpdateAvatarRequest, opts ...client.CallOption) (*UpdateAvatarResponse, error)
GetFanIdentities(ctx context.Context, req *GetFanIdentitiesRequest, opts ...client.CallOption) (*GetFanIdentitiesResponse, error)
GetMyFanIdentities(ctx context.Context, req *GetMyFanIdentitiesRequest, opts ...client.CallOption) (*GetMyFanIdentitiesResponse, error)
AddIdentity(ctx context.Context, req *AddIdentityRequest, opts ...client.CallOption) (*AddIdentityResponse, error)
SwitchIdentity(ctx context.Context, req *SwitchIdentityRequest, opts ...client.CallOption) (*SwitchIdentityResponse, error)
}
// NewUserSocialService constructs a client for the user.UserSocialService service.
func NewUserSocialService(cli *client.Client, opts ...client.ReferenceOption) (UserSocialService, error) {
conn, err := cli.DialWithInfo("topfans.user.UserSocialService", &UserSocialService_ClientInfo, opts...)
if err != nil {
return nil, err
}
return &UserSocialServiceImpl{
conn: conn,
}, nil
}
func SetConsumerUserSocialService(srv common.RPCService) {
dubbo.SetConsumerServiceWithInfo(srv, &UserSocialService_ClientInfo)
}
// UserSocialServiceImpl implements UserSocialService.
type UserSocialServiceImpl struct {
conn *client.Connection
}
func (c *UserSocialServiceImpl) Register(ctx context.Context, req *RegisterRequest, opts ...client.CallOption) (*RegisterResponse, error) {
resp := new(RegisterResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "Register", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) Login(ctx context.Context, req *LoginRequest, opts ...client.CallOption) (*LoginResponse, error) {
resp := new(LoginResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "Login", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) RefreshToken(ctx context.Context, req *RefreshTokenRequest, opts ...client.CallOption) (*RefreshTokenResponse, error) {
resp := new(RefreshTokenResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "RefreshToken", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) ValidateToken(ctx context.Context, req *ValidateTokenRequest, opts ...client.CallOption) (*ValidateTokenResponse, error) {
resp := new(ValidateTokenResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "ValidateToken", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) Logout(ctx context.Context, req *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error) {
resp := new(LogoutResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "Logout", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) CheckNickname(ctx context.Context, req *CheckNicknameRequest, opts ...client.CallOption) (*CheckNicknameResponse, error) {
resp := new(CheckNicknameResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "CheckNickname", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) CheckMobile(ctx context.Context, req *CheckMobileRequest, opts ...client.CallOption) (*CheckMobileResponse, error) {
resp := new(CheckMobileResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "CheckMobile", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetUser(ctx context.Context, req *GetUserRequest, opts ...client.CallOption) (*GetUserResponse, error) {
resp := new(GetUserResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetUser", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetFanProfile(ctx context.Context, req *GetFanProfileRequest, opts ...client.CallOption) (*GetFanProfileResponse, error) {
resp := new(GetFanProfileResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetFanProfile", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdateFanProfileSocial(ctx context.Context, req *UpdateFanProfileSocialRequest, opts ...client.CallOption) (*UpdateFanProfileSocialResponse, error) {
resp := new(UpdateFanProfileSocialResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdateFanProfileSocial", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdateCrystalBalance(ctx context.Context, req *UpdateCrystalBalanceRequest, opts ...client.CallOption) (*UpdateCrystalBalanceResponse, error) {
resp := new(UpdateCrystalBalanceResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdateCrystalBalance", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdateAssetsCount(ctx context.Context, req *UpdateAssetsCountRequest, opts ...client.CallOption) (*UpdateAssetsCountResponse, error) {
resp := new(UpdateAssetsCountResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdateAssetsCount", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) AddExhibitionHours(ctx context.Context, req *AddExhibitionHoursRequest, opts ...client.CallOption) (*AddExhibitionHoursResponse, error) {
resp := new(AddExhibitionHoursResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "AddExhibitionHours", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetCurrentUser(ctx context.Context, req *GetCurrentUserRequest, opts ...client.CallOption) (*GetCurrentUserResponse, error) {
resp := new(GetCurrentUserResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetCurrentUser", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetMyProfile(ctx context.Context, req *GetMyProfileRequest, opts ...client.CallOption) (*GetMyProfileResponse, error) {
resp := new(GetMyProfileResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetMyProfile", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdateNickname(ctx context.Context, req *UpdateNicknameRequest, opts ...client.CallOption) (*UpdateNicknameResponse, error) {
resp := new(UpdateNicknameResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdateNickname", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdatePassword(ctx context.Context, req *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error) {
resp := new(UpdatePasswordResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdatePassword", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) UpdateAvatar(ctx context.Context, req *UpdateAvatarRequest, opts ...client.CallOption) (*UpdateAvatarResponse, error) {
resp := new(UpdateAvatarResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "UpdateAvatar", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetFanIdentities(ctx context.Context, req *GetFanIdentitiesRequest, opts ...client.CallOption) (*GetFanIdentitiesResponse, error) {
resp := new(GetFanIdentitiesResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetFanIdentities", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) GetMyFanIdentities(ctx context.Context, req *GetMyFanIdentitiesRequest, opts ...client.CallOption) (*GetMyFanIdentitiesResponse, error) {
resp := new(GetMyFanIdentitiesResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "GetMyFanIdentities", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) AddIdentity(ctx context.Context, req *AddIdentityRequest, opts ...client.CallOption) (*AddIdentityResponse, error) {
resp := new(AddIdentityResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "AddIdentity", opts...); err != nil {
return nil, err
}
return resp, nil
}
func (c *UserSocialServiceImpl) SwitchIdentity(ctx context.Context, req *SwitchIdentityRequest, opts ...client.CallOption) (*SwitchIdentityResponse, error) {
resp := new(SwitchIdentityResponse)
if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "SwitchIdentity", opts...); err != nil {
return nil, err
}
return resp, nil
}
var UserSocialService_ClientInfo = client.ClientInfo{
InterfaceName: "topfans.user.UserSocialService",
MethodNames: []string{"Register", "Login", "RefreshToken", "ValidateToken", "Logout", "CheckNickname", "CheckMobile", "GetUser", "GetFanProfile", "UpdateFanProfileSocial", "UpdateCrystalBalance", "UpdateAssetsCount", "AddExhibitionHours", "GetCurrentUser", "GetMyProfile", "UpdateNickname", "UpdatePassword", "UpdateAvatar", "GetFanIdentities", "GetMyFanIdentities", "AddIdentity", "SwitchIdentity"},
ConnectionInjectFunc: func(dubboCliRaw interface{}, conn *client.Connection) {
dubboCli := dubboCliRaw.(*UserSocialServiceImpl)
dubboCli.conn = conn
},
}
// UserSocialServiceHandler is an implementation of the topfans.user.UserSocialService service.
type UserSocialServiceHandler interface {
Register(context.Context, *RegisterRequest) (*RegisterResponse, error)
Login(context.Context, *LoginRequest) (*LoginResponse, error)
RefreshToken(context.Context, *RefreshTokenRequest) (*RefreshTokenResponse, error)
ValidateToken(context.Context, *ValidateTokenRequest) (*ValidateTokenResponse, error)
Logout(context.Context, *LogoutRequest) (*LogoutResponse, error)
CheckNickname(context.Context, *CheckNicknameRequest) (*CheckNicknameResponse, error)
CheckMobile(context.Context, *CheckMobileRequest) (*CheckMobileResponse, error)
GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error)
GetFanProfile(context.Context, *GetFanProfileRequest) (*GetFanProfileResponse, error)
UpdateFanProfileSocial(context.Context, *UpdateFanProfileSocialRequest) (*UpdateFanProfileSocialResponse, error)
UpdateCrystalBalance(context.Context, *UpdateCrystalBalanceRequest) (*UpdateCrystalBalanceResponse, error)
UpdateAssetsCount(context.Context, *UpdateAssetsCountRequest) (*UpdateAssetsCountResponse, error)
AddExhibitionHours(context.Context, *AddExhibitionHoursRequest) (*AddExhibitionHoursResponse, error)
GetCurrentUser(context.Context, *GetCurrentUserRequest) (*GetCurrentUserResponse, error)
GetMyProfile(context.Context, *GetMyProfileRequest) (*GetMyProfileResponse, error)
UpdateNickname(context.Context, *UpdateNicknameRequest) (*UpdateNicknameResponse, error)
UpdatePassword(context.Context, *UpdatePasswordRequest) (*UpdatePasswordResponse, error)
UpdateAvatar(context.Context, *UpdateAvatarRequest) (*UpdateAvatarResponse, error)
GetFanIdentities(context.Context, *GetFanIdentitiesRequest) (*GetFanIdentitiesResponse, error)
GetMyFanIdentities(context.Context, *GetMyFanIdentitiesRequest) (*GetMyFanIdentitiesResponse, error)
AddIdentity(context.Context, *AddIdentityRequest) (*AddIdentityResponse, error)
SwitchIdentity(context.Context, *SwitchIdentityRequest) (*SwitchIdentityResponse, error)
}
func RegisterUserSocialServiceHandler(srv *server.Server, hdlr UserSocialServiceHandler, opts ...server.ServiceOption) error {
return srv.Register(hdlr, &UserSocialService_ServiceInfo, opts...)
}
func SetProviderUserSocialService(srv common.RPCService) {
dubbo.SetProviderServiceWithInfo(srv, &UserSocialService_ServiceInfo)
}
var UserSocialService_ServiceInfo = server.ServiceInfo{
InterfaceName: "topfans.user.UserSocialService",
ServiceType: (*UserSocialServiceHandler)(nil),
Methods: []server.MethodInfo{
{
Name: "Register",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(RegisterRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*RegisterRequest)
res, err := handler.(UserSocialServiceHandler).Register(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "Login",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(LoginRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*LoginRequest)
res, err := handler.(UserSocialServiceHandler).Login(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "RefreshToken",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(RefreshTokenRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*RefreshTokenRequest)
res, err := handler.(UserSocialServiceHandler).RefreshToken(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "ValidateToken",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(ValidateTokenRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*ValidateTokenRequest)
res, err := handler.(UserSocialServiceHandler).ValidateToken(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "Logout",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(LogoutRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*LogoutRequest)
res, err := handler.(UserSocialServiceHandler).Logout(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "CheckNickname",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(CheckNicknameRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*CheckNicknameRequest)
res, err := handler.(UserSocialServiceHandler).CheckNickname(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "CheckMobile",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(CheckMobileRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*CheckMobileRequest)
res, err := handler.(UserSocialServiceHandler).CheckMobile(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetUser",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetUserRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetUserRequest)
res, err := handler.(UserSocialServiceHandler).GetUser(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetFanProfile",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetFanProfileRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetFanProfileRequest)
res, err := handler.(UserSocialServiceHandler).GetFanProfile(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdateFanProfileSocial",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdateFanProfileSocialRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdateFanProfileSocialRequest)
res, err := handler.(UserSocialServiceHandler).UpdateFanProfileSocial(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdateCrystalBalance",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdateCrystalBalanceRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdateCrystalBalanceRequest)
res, err := handler.(UserSocialServiceHandler).UpdateCrystalBalance(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdateAssetsCount",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdateAssetsCountRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdateAssetsCountRequest)
res, err := handler.(UserSocialServiceHandler).UpdateAssetsCount(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "AddExhibitionHours",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(AddExhibitionHoursRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*AddExhibitionHoursRequest)
res, err := handler.(UserSocialServiceHandler).AddExhibitionHours(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetCurrentUser",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetCurrentUserRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetCurrentUserRequest)
res, err := handler.(UserSocialServiceHandler).GetCurrentUser(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetMyProfile",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetMyProfileRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetMyProfileRequest)
res, err := handler.(UserSocialServiceHandler).GetMyProfile(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdateNickname",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdateNicknameRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdateNicknameRequest)
res, err := handler.(UserSocialServiceHandler).UpdateNickname(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdatePassword",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdatePasswordRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdatePasswordRequest)
res, err := handler.(UserSocialServiceHandler).UpdatePassword(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "UpdateAvatar",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(UpdateAvatarRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*UpdateAvatarRequest)
res, err := handler.(UserSocialServiceHandler).UpdateAvatar(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetFanIdentities",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetFanIdentitiesRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetFanIdentitiesRequest)
res, err := handler.(UserSocialServiceHandler).GetFanIdentities(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "GetMyFanIdentities",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(GetMyFanIdentitiesRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*GetMyFanIdentitiesRequest)
res, err := handler.(UserSocialServiceHandler).GetMyFanIdentities(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "AddIdentity",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(AddIdentityRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*AddIdentityRequest)
res, err := handler.(UserSocialServiceHandler).AddIdentity(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
{
Name: "SwitchIdentity",
Type: constant.CallUnary,
ReqInitFunc: func() interface{} {
return new(SwitchIdentityRequest)
},
MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
req := args[0].(*SwitchIdentityRequest)
res, err := handler.(UserSocialServiceHandler).SwitchIdentity(ctx, req)
if err != nil {
return nil, err
}
return triple_protocol.NewResponse(res), nil
},
},
},
}

View File

@ -218,3 +218,32 @@ func (p *ActivityProvider) GetMintingActivities(ctx context.Context, req *pb.Get
return resp, nil return resp, nil
} }
// GetLatestContributions 获取最新贡献记录
func (p *ActivityProvider) GetLatestContributions(ctx context.Context, req *pb.GetLatestContributionsRequest) (*pb.GetLatestContributionsResponse, error) {
logger.Logger.Info("Received GetLatestContributions request",
zap.Int64("activity_id", req.ActivityId),
zap.Int64("since_timestamp", req.SinceTimestamp),
zap.Int64("since_id", req.SinceId),
zap.Int32("limit", req.Limit),
)
// 调用Service层
resp, err := p.activityService.GetLatestContributions(ctx, req)
if err != nil {
logger.Logger.Error("GetLatestContributions failed", zap.Error(err))
return &pb.GetLatestContributionsResponse{
Base: &pbCommon.BaseResponse{
Code: appErrors.ToStatusCode(err),
Message: err.Error(),
Timestamp: time.Now().UnixMilli(),
},
}, err
}
logger.Logger.Debug("GetLatestContributions successful",
zap.Int("records_count", len(resp.Records)),
)
return resp, nil
}

View File

@ -659,14 +659,11 @@ func (s *activityService) GetLatestContributions(ctx context.Context, req *pb.Ge
for i, c := range contributions { for i, c := range contributions {
// 获取用户昵称和头像 // 获取用户昵称和头像
nickname, avatarUrl := "", "" nickname, avatarUrl := "", ""
if req.SinceTimestamp == 0 && req.SinceId == 0 {
// 只在首次全量拉取时获取用户信息
fanProfile, err := s.userRPCClient.GetFanProfile(c.UserID, c.StarID) fanProfile, err := s.userRPCClient.GetFanProfile(c.UserID, c.StarID)
if err == nil && fanProfile != nil { if err == nil && fanProfile != nil {
nickname = fanProfile.Nickname nickname = fanProfile.Nickname
avatarUrl = fanProfile.AvatarUrl avatarUrl = fanProfile.AvatarUrl
} }
}
// 获取道具信息 // 获取道具信息
itemName, itemIcon := "", "" itemName, itemIcon := "", ""

View File

@ -798,8 +798,8 @@ defineExpose({
/* 图标包装器 */ /* 图标包装器 */
.icon-wrapper { .icon-wrapper {
width: 120rpx; width: 112rpx;
height: 120rpx; height: 112rpx;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -810,7 +810,6 @@ defineExpose({
.item-icon { .item-icon {
width: 100%; width: 100%;
height: 100%; height: 100%;
transform: scale(1.5);
} }
/* 名称包装器 */ /* 名称包装器 */

View File

@ -10,12 +10,15 @@
class="contribution-item" class="contribution-item"
:class="{ 'new-item': index === 0, 'fading-out': record.fading }" :class="{ 'new-item': index === 0, 'fading-out': record.fading }"
> >
<image class="user-avatar" :src="record.user_avatar" mode="aspectFill" /> <view class="user-info">
<text class="user-nickname">{{ record.user_nickname }}</text> <image class="user-avatar" :src="record.avatar_url" mode="aspectFill" />
<text class="contribute-text">贡献了</text> <text class="user-nickname">{{ record.nickname }}</text>
</view>
<image class="item-icon" :src="record.item_icon" mode="aspectFill" /> <image class="item-icon" :src="record.item_icon" mode="aspectFill" />
<text class="item-name">{{ record.item_name }}</text> <view class="quantity-info">
<text class="item-quantity">x{{ record.combo_count > 1 ? record.combo_count : record.quantity }}</text> <text class="item-quantity">x</text>
<text class="item-count">{{ record.combo_count > 1 ? record.combo_count : record.quantity }}</text>
</view>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
@ -59,7 +62,7 @@ defineExpose({
.contribution-list { .contribution-list {
width: 100%; width: 100%;
padding: 0 24rpx; padding: 0 24rpx;
margin-top: 20rpx; margin-top: 32rpx;
} }
.list-header { .list-header {
@ -77,18 +80,23 @@ defineExpose({
} }
.list-content { .list-content {
height: 200rpx; height: 280rpx;
/* background: rgba(0, 0, 0, 0.3); */
border-radius: 16rpx; border-radius: 16rpx;
padding: 16rpx; padding: 16rpx;
} }
.contribution-item { .contribution-item {
width: 384rpx;
height: 8rpx;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 12rpx 0; padding: 16rpx 0;
border-bottom: 1rpx solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.1);
animation: fadeIn 0.3s ease-out; animation: fadeIn 0.3s ease-out;
position: relative;
top: 32rpx;
border-radius: 999rpx;
margin-bottom: 48rpx;
} }
.contribution-item:last-child { .contribution-item:last-child {
@ -103,44 +111,65 @@ defineExpose({
animation: fadeOut 0.5s forwards; animation: fadeOut 0.5s forwards;
} }
.user-info {
display: flex;
align-items: center;
background-image: url('@/static/rank/activity-support-icon/beijingkuang.png');
background-size: 105% 130%;
background-position: center;
/* padding: 0 32rpx 0 40rpx; */
border-radius: 999rpx;
margin-right: 32rpx;
}
.user-avatar { .user-avatar {
width: 48rpx; width: 40rpx;
height: 48rpx; height: 40rpx;
border-radius: 50%; border-radius: 50%;
margin-right: 12rpx; margin-right: 16rpx;
} }
.user-nickname { .user-nickname {
font-size: 24rpx; font-size: 16rpx;
color: #fff; color: #fff;
padding: 0 32rpx 0 16rpx;
max-width: 120rpx; max-width: 120rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.5);
} }
.contribute-text {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.7);
margin: 0 12rpx;
}
.item-icon { .item-icon {
width: 36rpx; width: 72rpx;
height: 36rpx; height: 72rpx;
margin-right: 8rpx; position: relative;
bottom: 8rpx;
margin-right: 24rpx;
} }
.item-name { .quantity-info {
font-size: 24rpx; position: relative;
color: #fff; right: 0;
margin-right: 8rpx; bottom: 8rpx;
display: flex;
align-items: baseline;
} }
.item-quantity { .item-quantity {
font-size: 24rpx; font-size: 20rpx;
color: #ffcc00; color: #ffcc00;
font-weight: bold; font-weight: bold;
text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.5);
margin-right: 8rpx;
}
.item-count {
font-size: 38rpx;
color: #ffcc00;
font-weight: bold;
text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.5);
} }
@keyframes fadeIn { @keyframes fadeIn {