update
All checks were successful
/ build-services (app/auth/Dockerfile, auth, auth) (push) Successful in 39s
/ build-services (app/ecpm/Dockerfile, ecpm, ecpm) (push) Successful in 34s
/ build-services (app/ranking/Dockerfile, ranking, ranking) (push) Successful in 39s
/ build-services (app/user/Dockerfile, user_manager, user) (push) Successful in 39s
/ start-services (push) Successful in 5s

This commit is contained in:
xiabin 2025-02-14 10:43:28 +08:00
parent 41ccbb46f9
commit 53a7d70bc9
30 changed files with 52 additions and 114 deletions

View File

@ -4,7 +4,7 @@ import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/auth/auth"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/auth/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -5,8 +5,8 @@ import (
"encoding/json"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/auth/internal/gen/dao/query"
cli2 "gitea.youtukeji.com.cn/youtu/youtu_grpc/app/auth/pkg"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user_client"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user_client"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/config"
"github.com/silenceper/wechat/v2/cache"
redisCache "github.com/silenceper/wechat/v2/cache"

View File

@ -14,8 +14,8 @@ const (
code2Session = "https://minigame.zijieapi.com/mgplatform/api/apps/jscode2session" // 小程序登录地址
)
// DouYinOpenApiConfig 实例化配置
type DouYinOpenApiConfig struct {
// OpenApiConfig 实例化配置
type OpenApiConfig struct {
AppId string
AppSecret string
AccessToken accessToken.AccessToken
@ -25,32 +25,32 @@ type DouYinOpenApiConfig struct {
Salt string
}
// DouYinOpenApi 基类
type DouYinOpenApi struct {
Config DouYinOpenApiConfig
// OpenApi 基类
type OpenApi struct {
Config OpenApiConfig
BaseApi string
}
// NewDouYinOpenApi 实例化一个抖音openapi实例
func NewDouYinOpenApi(config DouYinOpenApiConfig) *DouYinOpenApi {
func NewDouYinOpenApi(config OpenApiConfig) *OpenApi {
if config.Cache == nil {
config.Cache = cache.NewMemory()
}
if config.AccessToken == nil {
config.AccessToken = accessToken.NewDefaultAccessToken(config.AppId, config.AppSecret, config.Cache, config.IsSandbox)
}
return &DouYinOpenApi{
return &OpenApi{
Config: config,
}
}
// GetApiUrl 获取api地址
func (d *DouYinOpenApi) GetApiUrl(url string) string {
func (d *OpenApi) GetApiUrl(url string) string {
return fmt.Sprintf("%s%s", d.BaseApi, url)
}
// Get 获取数据
func (d *DouYinOpenApi) Get(url string, params any) (data []byte, err error) {
func (d *OpenApi) Get(url string, params any) (data []byte, err error) {
paramsStr, err := util2.StructToQueryParams(params)
if err != nil {
return
@ -69,7 +69,7 @@ func (d *DouYinOpenApi) Get(url string, params any) (data []byte, err error) {
}
// PostJson 封装公共的请求方法
func (d *DouYinOpenApi) PostJson(api string, params any, response any) (err error) {
func (d *OpenApi) PostJson(api string, params any, response any) (err error) {
body, err := util2.PostJSON(api, params)
if err != nil {
return
@ -108,7 +108,7 @@ type Code2SessionResponseData struct {
}
// Code2Session 小程序登录
func (d *DouYinOpenApi) Code2Session(code, anonymousCode string) (code2SessionResponse Code2SessionResponse, err error) {
func (d *OpenApi) Code2Session(code, anonymousCode string) (code2SessionResponse Code2SessionResponse, err error) {
params := Code2SessionParams{
Appid: d.Config.AppId,
Secret: d.Config.AppSecret,
@ -147,6 +147,6 @@ type GetEcpmParams struct {
}
// GetAccessToken 获取accessToken
func (d *DouYinOpenApi) GetAccessToken() (string, error) {
func (d *OpenApi) GetAccessToken() (string, error) {
return d.Config.AccessToken.GetAccessToken()
}

View File

@ -1,62 +0,0 @@
package douyin
import (
accessToken "gitea.youtukeji.com.cn/youtu/openapi-helper/douyin/access-token"
"github.com/silenceper/wechat/v2/cache"
"testing"
)
// 声明测试常量
const (
AppId = "tt8b32fd8f14071db707"
AppSecret = "44018e80b1bde34395a52de67ce1e0c37c572d80"
Token = ""
Salt = ""
)
// 声明一个缓存实例
var Cache cache.Cache
// 声明全局openApi实例
var OpenApi *DouYinOpenApi
func init() {
Cache = cache.NewMemory()
OpenApi = NewDouYinOpenApi(DouYinOpenApiConfig{
AppId: AppId,
AppSecret: AppSecret,
IsSandbox: false,
Token: Token,
Salt: Salt,
})
}
// 测试获取新的token
func TestDouyinOpenapi_NewDefaultAccessToken(t *testing.T) {
token := accessToken.NewDefaultAccessToken(AppId, AppSecret, Cache, true)
getAccessToken, err := token.GetAccessToken()
if err != nil {
t.Errorf("got a error: %s", err.Error())
return
}
t.Logf("got a value: %s", getAccessToken)
}
// 基准测试看获取token的次数?
func BenchmarkDouyinOpenapi_NewDefaultAccessToken(b *testing.B) {
token := accessToken.NewDefaultAccessToken(AppId, AppSecret, Cache, true)
for i := 0; i < b.N; i++ {
getAccessToken, err := token.GetAccessToken()
b.Logf("get token: %s %+v", getAccessToken, err)
}
}
// 测试小程序登录
func TestDouYinOpenApi_Code2Session(t *testing.T) {
session, err := OpenApi.Code2Session("1111", "")
if err != nil {
t.Errorf("got a error %s", err.Error())
return
}
t.Logf("got a value %+v", session)
}

View File

@ -62,7 +62,7 @@ func (l *GetEcpmLogic) GetEcpm(in *ecpm.GetEcpmRequest) (response *ecpm.GetEcpmR
return
}
// 计算ECPM值
// CalcEcpm 计算ECPM值
func CalcEcpm(res []Record) (ecpm float64) {
// 计算 ECPM
totalRecords := len(res)

View File

@ -5,8 +5,8 @@ import (
"errors"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/internal/logic/rankings"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/internal/svc"
ranking_management2 "gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/ranking"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/ranking"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/redis/go-redis/v9"
"gorm.io/gorm"
"strconv"
@ -28,8 +28,8 @@ func NewGetRankingListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ge
}
}
func (l *GetRankingListLogic) GetRankingList(in *ranking_management2.GetRankingListRequest) (resp *ranking_management2.GetRankingListResponse, err error) {
resp = new(ranking_management2.GetRankingListResponse)
func (l *GetRankingListLogic) GetRankingList(in *ranking.GetRankingListRequest) (resp *ranking.GetRankingListResponse, err error) {
resp = new(ranking.GetRankingListResponse)
cacheKey := rankings.GetRankingsCacheKey(in.AppId, in.Type)
cacheData, err := l.svcCtx.RedisRanking.GetList(l.ctx, cacheKey, 0, 99)
@ -39,8 +39,8 @@ func (l *GetRankingListLogic) GetRankingList(in *ranking_management2.GetRankingL
var flag bool
resp.RankingData = make([]*ranking_management2.RankingList, 0, len(cacheData))
var userRank *ranking_management2.RankingList
resp.RankingData = make([]*ranking.RankingList, 0, len(cacheData))
var userRank *ranking.RankingList
for i, datum := range cacheData {
userId, err := strconv.Atoi(datum.Member.(string))
@ -52,7 +52,7 @@ func (l *GetRankingListLogic) GetRankingList(in *ranking_management2.GetRankingL
if err != nil {
return nil, err
}
data := &ranking_management2.RankingList{
data := &ranking.RankingList{
Nickname: userModel.Nickname,
Avatar: userModel.Avatar,
Score: uint32(uint64(datum.Score) >> 32),
@ -71,7 +71,7 @@ func (l *GetRankingListLogic) GetRankingList(in *ranking_management2.GetRankingL
if err != nil {
//如果没有找到,则创建一个空的数据
if errors.Is(err, redis.Nil) {
resp.RankingData = append(resp.RankingData, new(ranking_management2.RankingList))
resp.RankingData = append(resp.RankingData, new(ranking.RankingList))
return resp, nil
}
return nil, err
@ -85,7 +85,7 @@ func (l *GetRankingListLogic) GetRankingList(in *ranking_management2.GetRankingL
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, err
}
userRank = &ranking_management2.RankingList{
userRank = &ranking.RankingList{
Nickname: tmp.Nickname,
Avatar: tmp.Avatar,
Score: uint32(score),

View File

@ -4,8 +4,8 @@ import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/internal/gen/dao/query"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/ranking/internal/logic/rankings"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user_client"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user_client"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/config"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/my_gorm"
"github.com/redis/go-redis/v9"

View File

@ -16,7 +16,7 @@ import (
"gorm.io/plugin/dbresolver"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/model"
)
func newUser(db *gorm.DB, opts ...gen.DOOption) user {

View File

@ -9,7 +9,7 @@ import (
"fmt"
"testing"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/model"
"gorm.io/gen"
"gorm.io/gen/field"
"gorm.io/gorm/clause"

View File

@ -2,9 +2,9 @@ package logic
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -2,9 +2,9 @@ package logic
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -3,8 +3,8 @@ package logic
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -4,8 +4,8 @@ import (
"context"
"errors"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -2,8 +2,8 @@ package logic
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -3,10 +3,10 @@ package logic
import (
"context"
"errors"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/model"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/core/logx"
)

View File

@ -7,9 +7,9 @@ package server
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/logic"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/logic"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
)
type UserManagementServer struct {

View File

@ -1,7 +1,7 @@
package svc
import (
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/gen/dao/query"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/gen/dao/query"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/config"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/id_gen"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/my_gorm"

View File

@ -3,9 +3,9 @@ package main
import (
"flag"
"fmt"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/server"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/server"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/pkg/config"
"github.com/zeromicro/go-zero/core/service"
"github.com/zeromicro/go-zero/zrpc"

View File

@ -7,7 +7,7 @@ package user_client
import (
"context"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user_management/user"
"gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user"
"github.com/zeromicro/go-zero/zrpc"
"google.golang.org/grpc"