Compare commits
6 Commits
feat-hjj-B
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 81782cd139 | |||
| f3a6284905 | |||
| ab31a3cad4 | |||
| 5870931526 | |||
| 379eb977d6 | |||
| f27d89f7c2 |
@ -65,6 +65,10 @@ func NewRouter() *gin.Engine {
|
|||||||
SupplierRouter(privateGroup)
|
SupplierRouter(privateGroup)
|
||||||
{
|
{
|
||||||
v1.POST("version", version.Version) //版本号公共
|
v1.POST("version", version.Version) //版本号公共
|
||||||
|
v1.POST("store_versions", version.StoreBrandsVersions)
|
||||||
|
v1.POST("check_version", version.CheckBrandVersion)
|
||||||
|
v1.POST("store_listed", version.ListedStore)
|
||||||
|
v1.POST("check_listed", version.ListedCheck)
|
||||||
}
|
}
|
||||||
//账号模块
|
//账号模块
|
||||||
{
|
{
|
||||||
|
|||||||
@ -330,7 +330,7 @@ func SendMsg(c *gin.Context) {
|
|||||||
req.Project = "fiee"
|
req.Project = "fiee"
|
||||||
req.TelNum = req.Zone + req.TelNum
|
req.TelNum = req.Zone + req.TelNum
|
||||||
//todo 审核使用账号
|
//todo 审核使用账号
|
||||||
if req.TelNum == "8618888888888" {
|
if req.TelNum == "8618888888888" || req.TelNum == "8613580848136" {
|
||||||
service.Success1(c, "发送成功", &account.SendMsgStatusResponse{})
|
service.Success1(c, "发送成功", &account.SendMsgStatusResponse{})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -867,31 +867,11 @@ func ArtistMetricsSeries(ctx *gin.Context) {
|
|||||||
subNum = infoResp.SubNum
|
subNum = infoResp.SubNum
|
||||||
}
|
}
|
||||||
|
|
||||||
var subInfoResp *accountFiee.UserInfoResponse
|
// 先串行获取艺人信息,以便用正确的 artistUUID 调用后续接口
|
||||||
var subInfoErr error
|
subInfoResp, subInfoErr := service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{
|
||||||
var workStatsResp *cast.GetArtistWorkStatsResp
|
|
||||||
var metricsResp *cast.ArtistMetricsSeriesResp
|
|
||||||
var workStatsErr, metricsErr error
|
|
||||||
|
|
||||||
wg := sync.WaitGroup{}
|
|
||||||
wg.Add(2)
|
|
||||||
|
|
||||||
// 并行调用 SubNumGetInfo、ArtistMetricsSeries
|
|
||||||
go func() {
|
|
||||||
defer wg.Done()
|
|
||||||
subInfoResp, subInfoErr = service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{
|
|
||||||
SubNum: subNum,
|
SubNum: subNum,
|
||||||
Domain: "app",
|
Domain: "app",
|
||||||
})
|
})
|
||||||
}()
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
defer wg.Done()
|
|
||||||
metricsResp, metricsErr = service.CastProvider.ArtistMetricsSeries(context.Background(), req)
|
|
||||||
}()
|
|
||||||
|
|
||||||
wg.Wait()
|
|
||||||
|
|
||||||
if subInfoErr != nil {
|
if subInfoErr != nil {
|
||||||
service.Error(ctx, errors.New("自媒体用户查询失败"))
|
service.Error(ctx, errors.New("自媒体用户查询失败"))
|
||||||
return
|
return
|
||||||
@ -902,8 +882,12 @@ func ArtistMetricsSeries(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
req.ArtistUUID = fmt.Sprint(subInfoResp.Id)
|
req.ArtistUUID = fmt.Sprint(subInfoResp.Id)
|
||||||
|
|
||||||
|
// 使用正确的 artistUUID 调用 ArtistMetricsSeries
|
||||||
|
metricsResp, metricsErr := service.CastProvider.ArtistMetricsSeries(context.Background(), req)
|
||||||
|
|
||||||
// 将 ArtistMetricsSeriesReq 中 int 类型日期(YYYYMMDD)格式化为时间字符串,作为快照截止时间
|
// 将 ArtistMetricsSeriesReq 中 int 类型日期(YYYYMMDD)格式化为时间字符串,作为快照截止时间
|
||||||
statusUpdateTime := ""
|
//默认时间为现在
|
||||||
|
statusUpdateTime := time.Now().Format("2006-01-02 15:04:05")
|
||||||
if req.Date > 0 {
|
if req.Date > 0 {
|
||||||
parsedDate, parseErr := time.Parse("20060102", strconv.Itoa(int(req.Date)))
|
parsedDate, parseErr := time.Parse("20060102", strconv.Itoa(int(req.Date)))
|
||||||
if parseErr == nil {
|
if parseErr == nil {
|
||||||
@ -912,7 +896,7 @@ func ArtistMetricsSeries(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
newCtx := NewCtxWithUserInfo(ctx)
|
newCtx := NewCtxWithUserInfo(ctx)
|
||||||
workStatsResp, workStatsErr = service.CastProvider.GetArtistWorkStats(newCtx, &cast.GetArtistWorkStatsReq{
|
workStatsResp, workStatsErr := service.CastProvider.GetArtistWorkStats(newCtx, &cast.GetArtistWorkStatsReq{
|
||||||
ArtistUuid: req.ArtistUUID,
|
ArtistUuid: req.ArtistUUID,
|
||||||
StatusUpdateTime: statusUpdateTime,
|
StatusUpdateTime: statusUpdateTime,
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,16 +1,46 @@
|
|||||||
package version
|
package version
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
"fonchain-fiee/pkg/cache"
|
"fonchain-fiee/pkg/cache"
|
||||||
"fonchain-fiee/pkg/model/query"
|
"fonchain-fiee/pkg/model/query"
|
||||||
"fonchain-fiee/pkg/model/vo"
|
"fonchain-fiee/pkg/model/vo"
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/gin-gonic/gin/binding"
|
"github.com/gin-gonic/gin/binding"
|
||||||
|
"github.com/go-redis/redis"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Version(c *gin.Context) {
|
// handlePanic 统一处理 panic 恢复
|
||||||
|
func handlePanic(c *gin.Context) {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
var err error
|
||||||
|
switch v := r.(type) {
|
||||||
|
case error:
|
||||||
|
err = v
|
||||||
|
case string:
|
||||||
|
err = fmt.Errorf("panic: %s", v)
|
||||||
|
default:
|
||||||
|
err = fmt.Errorf("panic: %v", v)
|
||||||
|
}
|
||||||
|
service.Error(c, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// containsVersion 检查版本是否存在于版本列表中
|
||||||
|
func containsVersion(versions []string, targetVersion string) bool {
|
||||||
|
for _, version := range versions {
|
||||||
|
if version == targetVersion {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func Version(c *gin.Context) {
|
||||||
var req query.VersionQuery
|
var req query.VersionQuery
|
||||||
|
|
||||||
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
|
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
|
||||||
@ -25,6 +55,136 @@ func Version(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
service.Success(c, vo.VersionVo{Version: val})
|
service.Success(c, vo.VersionVo{Version: val})
|
||||||
return
|
}
|
||||||
|
|
||||||
|
func StoreBrandsVersions(c *gin.Context) {
|
||||||
|
defer handlePanic(c)
|
||||||
|
|
||||||
|
var brands []struct {
|
||||||
|
Brand string `json:"brand"`
|
||||||
|
Version []string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := c.ShouldBindBodyWith(&brands, binding.JSON); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, brand := range brands {
|
||||||
|
versionData, err := json.Marshal(brand.Version)
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = cache.RedisClient.HSet("brands_versions", brand.Brand, versionData).Err(); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service.Success(c, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func CheckBrandVersion(c *gin.Context) {
|
||||||
|
defer handlePanic(c)
|
||||||
|
|
||||||
|
var brand struct {
|
||||||
|
Brand string `json:"brand"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := c.ShouldBindBodyWith(&brand, binding.JSON); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
storedVersionsStr, err := cache.RedisClient.HGet("brands_versions", brand.Brand).Result()
|
||||||
|
|
||||||
|
// 品牌不存在,返回 false
|
||||||
|
if errors.Is(err, redis.Nil) {
|
||||||
|
service.Success(c, false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var storedVersions []string
|
||||||
|
if err = json.Unmarshal([]byte(storedVersionsStr), &storedVersions); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查版本是否存在
|
||||||
|
versionFound := containsVersion(storedVersions, brand.Version)
|
||||||
|
service.Success(c, versionFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ListedStore(c *gin.Context) {
|
||||||
|
defer handlePanic(c)
|
||||||
|
|
||||||
|
var brands []struct {
|
||||||
|
Brand string `json:"brand"`
|
||||||
|
Version []string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := c.ShouldBindBodyWith(&brands, binding.JSON); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, brand := range brands {
|
||||||
|
versionData, err := json.Marshal(brand.Version)
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = cache.RedisClient.HSet("brands_listed", brand.Brand, versionData).Err(); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service.Success(c, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ListedCheck(c *gin.Context) {
|
||||||
|
defer handlePanic(c)
|
||||||
|
|
||||||
|
var brand struct {
|
||||||
|
Brand string `json:"brand"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := c.ShouldBindBodyWith(&brand, binding.JSON); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
storedVersionsStr, err := cache.RedisClient.HGet("brands_listed", brand.Brand).Result()
|
||||||
|
|
||||||
|
// 品牌不存在,返回 false
|
||||||
|
if errors.Is(err, redis.Nil) {
|
||||||
|
service.Success(c, false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var storedVersions []string
|
||||||
|
if err = json.Unmarshal([]byte(storedVersionsStr), &storedVersions); err != nil {
|
||||||
|
service.Error(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查版本是否存在
|
||||||
|
versionFound := containsVersion(storedVersions, brand.Version)
|
||||||
|
service.Success(c, versionFound)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user