diff --git a/backend/pkg/proto/activity/activity.triple.go b/backend/pkg/proto/activity/activity.triple.go
new file mode 100644
index 0000000..4e6dcc4
--- /dev/null
+++ b/backend/pkg/proto/activity/activity.triple.go
@@ -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
+ },
+ },
+ },
+}
diff --git a/backend/pkg/proto/user/user.triple.go b/backend/pkg/proto/user/user.triple.go
new file mode 100644
index 0000000..d6b78a8
--- /dev/null
+++ b/backend/pkg/proto/user/user.triple.go
@@ -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
+ },
+ },
+ },
+}
diff --git a/backend/services/activityService/provider/activity_provider.go b/backend/services/activityService/provider/activity_provider.go
index 442d052..2935ccb 100644
--- a/backend/services/activityService/provider/activity_provider.go
+++ b/backend/services/activityService/provider/activity_provider.go
@@ -218,3 +218,32 @@ func (p *ActivityProvider) GetMintingActivities(ctx context.Context, req *pb.Get
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
+}
diff --git a/backend/services/activityService/service/activity_service.go b/backend/services/activityService/service/activity_service.go
index 366ec80..bd79bec 100644
--- a/backend/services/activityService/service/activity_service.go
+++ b/backend/services/activityService/service/activity_service.go
@@ -659,13 +659,10 @@ func (s *activityService) GetLatestContributions(ctx context.Context, req *pb.Ge
for i, c := range contributions {
// 获取用户昵称和头像
nickname, avatarUrl := "", ""
- if req.SinceTimestamp == 0 && req.SinceId == 0 {
- // 只在首次全量拉取时获取用户信息
- fanProfile, err := s.userRPCClient.GetFanProfile(c.UserID, c.StarID)
- if err == nil && fanProfile != nil {
- nickname = fanProfile.Nickname
- avatarUrl = fanProfile.AvatarUrl
- }
+ fanProfile, err := s.userRPCClient.GetFanProfile(c.UserID, c.StarID)
+ if err == nil && fanProfile != nil {
+ nickname = fanProfile.Nickname
+ avatarUrl = fanProfile.AvatarUrl
}
// 获取道具信息
diff --git a/frontend/pages/support-activity/components/ActionBar.vue b/frontend/pages/support-activity/components/ActionBar.vue
index 8bbc20c..8766129 100644
--- a/frontend/pages/support-activity/components/ActionBar.vue
+++ b/frontend/pages/support-activity/components/ActionBar.vue
@@ -798,8 +798,8 @@ defineExpose({
/* 图标包装器 */
.icon-wrapper {
- width: 120rpx;
- height: 120rpx;
+ width: 112rpx;
+ height: 112rpx;
display: flex;
justify-content: center;
align-items: center;
@@ -810,7 +810,6 @@ defineExpose({
.item-icon {
width: 100%;
height: 100%;
- transform: scale(1.5);
}
/* 名称包装器 */
diff --git a/frontend/pages/support-activity/components/ContributionList.vue b/frontend/pages/support-activity/components/ContributionList.vue
index 9474703..efd4b2b 100644
--- a/frontend/pages/support-activity/components/ContributionList.vue
+++ b/frontend/pages/support-activity/components/ContributionList.vue
@@ -10,12 +10,15 @@
class="contribution-item"
:class="{ 'new-item': index === 0, 'fading-out': record.fading }"
>
-
- {{ record.user_nickname }}
- 贡献了
+
+
+ {{ record.nickname }}
+
- {{ record.item_name }}
- x{{ record.combo_count > 1 ? record.combo_count : record.quantity }}
+
+ x
+ {{ record.combo_count > 1 ? record.combo_count : record.quantity }}
+
@@ -59,7 +62,7 @@ defineExpose({
.contribution-list {
width: 100%;
padding: 0 24rpx;
- margin-top: 20rpx;
+ margin-top: 32rpx;
}
.list-header {
@@ -77,18 +80,23 @@ defineExpose({
}
.list-content {
- height: 200rpx;
- /* background: rgba(0, 0, 0, 0.3); */
+ height: 280rpx;
border-radius: 16rpx;
padding: 16rpx;
}
.contribution-item {
+ width: 384rpx;
+ height: 8rpx;
display: flex;
align-items: center;
- padding: 12rpx 0;
- border-bottom: 1rpx solid rgba(255, 255, 255, 0.1);
+ padding: 16rpx 0;
+ background: rgba(0, 0, 0, 0.1);
animation: fadeIn 0.3s ease-out;
+ position: relative;
+ top: 32rpx;
+ border-radius: 999rpx;
+ margin-bottom: 48rpx;
}
.contribution-item:last-child {
@@ -103,44 +111,65 @@ defineExpose({
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 {
- width: 48rpx;
- height: 48rpx;
+ width: 40rpx;
+ height: 40rpx;
border-radius: 50%;
- margin-right: 12rpx;
+ margin-right: 16rpx;
}
.user-nickname {
- font-size: 24rpx;
+ font-size: 16rpx;
color: #fff;
+ padding: 0 32rpx 0 16rpx;
max-width: 120rpx;
overflow: hidden;
text-overflow: ellipsis;
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 {
- width: 36rpx;
- height: 36rpx;
- margin-right: 8rpx;
+ width: 72rpx;
+ height: 72rpx;
+ position: relative;
+ bottom: 8rpx;
+ margin-right: 24rpx;
}
-.item-name {
- font-size: 24rpx;
- color: #fff;
- margin-right: 8rpx;
+.quantity-info {
+ position: relative;
+ right: 0;
+ bottom: 8rpx;
+ display: flex;
+ align-items: baseline;
}
.item-quantity {
- font-size: 24rpx;
+ font-size: 20rpx;
color: #ffcc00;
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 {