删除数据上报逻辑

移除 pub/dataReport、reportser、srv_report、上报定时任务及 eventmod 事件表,
以及注册/登录/点赞/收藏/评论/解锁/订单/上下架等处的上报调用和 reportSdkConfig 配置下发。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 11:42:33 +08:00
co-authored by Claude Opus 5.5
parent 6894ded6c8
commit 717962defb
31 changed files with 9 additions and 1903 deletions
-22
View File
@@ -6,7 +6,6 @@ import (
"regexp"
"strings"
"time"
"videoweb/app/service/reportser"
"videoweb/pub/common/log"
"videoweb/pub/common/response"
"videoweb/pub/common/srvdef"
@@ -502,30 +501,9 @@ func SetPlayletStatus(ctx context.Context, req *proto.PlayletStatusSetReq) *srvd
log.Error("短剧状态同步ES失败", log.Any("短剧ID", syncIds), log.Any("状态", syncStatus), log.E(err))
}
}()
if flag := reportser.PlayletStatusFlag(req.Status); flag != 0 {
reportPlayletStatusEvents(ctx, ids, flag)
}
return nil
}
func reportPlayletStatusEvents(ctx context.Context, ids []int64, flag int64) {
if len(ids) == 0 {
return
}
list, err := playletmod.FindManyPlaylet(ctx, bson.M{playletmod.FN.Playlet.Id: bson.M{"$in": ids}}, options.Find().SetProjection(bson.D{
{Key: playletmod.FN.Playlet.Id, Value: 1},
{Key: playletmod.FN.Playlet.Title, Value: 1},
{Key: playletmod.FN.Playlet.MediaCenterId, Value: 1},
}))
if err != nil {
log.Error("短剧状态变更上报查询失败", log.Any("短剧ID", ids), log.E(err))
return
}
for _, item := range list {
reportser.ReportPlayletStatusChange(item, flag)
}
}
// SetPlayletRecommend 单/批量设置短剧是否推荐
func SetPlayletRecommend(ctx context.Context, req *proto.PlayletRecommendSetReq) *srvdef.SrvErr {
if req == nil {
-86
View File
@@ -2,18 +2,11 @@ package srv_recharge
import (
"context"
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"strconv"
"time"
"videoweb/pub/common/log"
"videoweb/pub/common/srvdef"
"videoweb/pub/common/useragent"
"videoweb/pub/dataReport"
"videoweb/pub/models/cointransmod"
"videoweb/pub/models/eventmod"
"videoweb/pub/models/rechargepackagemod"
"videoweb/pub/models/usermod"
"videoweb/pub/models/vipordermod"
@@ -120,7 +113,6 @@ func handleVipOrderSuccess(order vipordermod.VipOrder, oid string, realAmount in
})
}
reportVipOrderPaid(ctx, &order, oid, realAmount, expire)
}
func handleCoinOrderSuccess(order vipordermod.VipOrder, oid string, realAmount int64) {
@@ -139,7 +131,6 @@ func handleCoinOrderSuccess(order vipordermod.VipOrder, oid string, realAmount i
writeCoinOrderTrans(ctx, order)
reportCoinOrderPaid(ctx, &order, oid, realAmount)
}
func writeCoinOrderTrans(ctx context.Context, order vipordermod.VipOrder) {
@@ -229,80 +220,3 @@ func addUserCoins(ctx context.Context, userId int64, coin int64) *srvdef.SrvErr
},
)
}
func reportVipOrderPaid(ctx context.Context, order *vipordermod.VipOrder, oid string, realAmount int64, vipExpire time.Time) {
user, _ := usermod.FindOneUser(ctx, bson.M{usermod.FN.User.Id: order.UserId})
districtCode, ip := "", order.IPAddr
if user != nil {
districtCode = user.DistrictCode
}
ua := useragent.UA{SysType: order.SysType}
eventId := newEventId(pubdef.TrackerAppId(), order.UserId, order.TradeNo, order.CreatedAt.Unix())
cf := dataReport.NewCommonField(eventId, dataReport.EventTypeOrderPaid, districtCode, ua, strconv.FormatInt(user.Id, 10), ip)
var expireTS int64
if !vipExpire.IsZero() {
expireTS = vipExpire.Unix()
}
cf.Payload = dataReport.JsonRawMessage(&dataReport.OrderPaidEvent{
OrderID: order.TradeNo,
OrderType: "vip_subscription",
ProductID: strconv.FormatInt(order.CardId, 10),
Amount: dataReport.JsonNumber(realAmount),
Currency: "CNY",
VIPExpirationTime: dataReport.JsonNumber(expireTS),
PayType: order.PayMode,
PayChannel: order.PayChannel,
TransactionID: oid,
CreateTime: dataReport.JsonNumber(order.CreatedAt.Unix()),
})
insertEvent(ctx, cf, order.TradeNo)
}
func reportCoinOrderPaid(ctx context.Context, order *vipordermod.VipOrder, oid string, realAmount int64) {
user, _ := usermod.FindOneUser(ctx, bson.M{usermod.FN.User.Id: order.UserId})
districtCode, ip := "", order.IPAddr
if user != nil {
districtCode = user.DistrictCode
}
ua := useragent.UA{SysType: order.SysType}
eventId := newEventId(pubdef.TrackerAppId(), order.UserId, order.TradeNo, order.CreatedAt.Unix())
cf := dataReport.NewCommonField(eventId, dataReport.EventTypeOrderPaid, districtCode, ua, strconv.FormatInt(user.Id, 10), ip)
cf.Payload = dataReport.JsonRawMessage(&dataReport.OrderPaidEvent{
OrderID: order.TradeNo,
OrderType: "coin_purchase",
ProductID: strconv.FormatInt(order.CoinCfgId, 10),
Amount: dataReport.JsonNumber(realAmount),
Currency: "CNY",
CoinQuantity: dataReport.JsonNumber(order.Coin),
PayType: order.PayMode,
PayChannel: order.PayChannel,
TransactionID: oid,
CreateTime: dataReport.JsonNumber(order.CreatedAt.Unix()),
})
insertEvent(ctx, cf, order.TradeNo)
}
func insertEvent(ctx context.Context, cf dataReport.CommonField, tradeNo string) {
data, _ := json.Marshal(cf)
if err := eventmod.InsertOneEvent(ctx, &eventmod.Event{
EventId: cf.EventID,
EventType: cf.Event,
Data: string(data),
Status: eventmod.Default,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}); err != nil {
log.Error("insertEvent failed", log.Any("tradeNo", tradeNo), log.E(err))
}
}
func newEventId(appId string, uid int64, orderId interface{}, createTime int64) string {
input := fmt.Sprintf("%v%v%v%v", appId, uid, orderId, createTime)
h := md5.New()
h.Write([]byte(input))
return hex.EncodeToString(h.Sum(nil))
}
-73
View File
@@ -1,73 +0,0 @@
package srv_report
import (
"context"
"encoding/json"
"fmt"
"strconv"
"time"
"videoweb/pub/common/log"
"videoweb/pub/common/useragent"
"videoweb/pub/dataReport"
"videoweb/pub/models/eventmod"
"videoweb/pub/models/videocategorymod"
"videoweb/pub/models/videoinformationmod"
"go.mongodb.org/mongo-driver/bson"
)
// ReportVideoStatusChangeEvent 视频状态变更事件上报
func ReportVideoStatusChangeEvent(media *videoinformationmod.VideoInformation, flag, userId int64, ua useragent.UA) {
if media == nil || media.Id == 0 || flag == 0 {
return
}
var lsjId string
var videoTypeID = "default"
var videoTypeName = "默认分类"
if len(media.CategoryIds) > 0 {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*3)
defer cancel()
category, _ := videocategorymod.FindOneVideoCategory(ctx, bson.M{
videocategorymod.FN.VideoCategory.Id: media.CategoryIds[0],
})
if category != nil {
videoTypeID = fmt.Sprintf("%v", category.Id)
videoTypeName = category.Name
}
}
event := dataReport.NewCommonField("", dataReport.EventTypeVideoStatusChange, "", ua, strconv.FormatInt(userId, 10), "")
event.Payload = dataReport.JsonRawMessage(&dataReport.VideoStatusChangeEvent{
MediaId: lsjId,
VideoID: fmt.Sprintf("%v", media.Id),
VideoTitle: media.Title,
VideoTypeID: videoTypeID,
VideoTypeName: videoTypeName,
Flag: dataReport.JsonNumber(flag),
})
b, _ := json.Marshal(event)
if err := eventmod.InsertOneEvent(context.Background(), &eventmod.Event{
EventId: event.EventID,
EventType: event.Event,
Data: string(b),
Status: eventmod.Default,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}); err != nil {
log.Error("ReportVideoStatusChangeEvent fail", log.Any("mediaId", media.Id), log.E(err))
}
}
// VideoStatusFlag 将媒体状态映射为上报flag
func VideoStatusFlag(status videoinformationmod.InformationSatus) int64 {
switch status {
case videoinformationmod.InformationSatusVerifyOK:
return 1 // 上架
case videoinformationmod.InformationSatusVerifyCancel:
return 2 // 未通过
default:
return 0
}
}
-21
View File
@@ -5,7 +5,6 @@ import (
"math/rand"
"net/http"
"time"
"videoweb/pub/common/godef"
"videoweb/pub/common/log"
"videoweb/pub/common/playletcache"
"videoweb/pub/common/srvdef"
@@ -17,7 +16,6 @@ import (
"videoweb/pub/seo/sitemapdirty"
"videoweb/pub/storage"
"videoweb/pub/storage/proxy"
"videoweb/web/service/srv_report"
"videoweb/web/service/srv_search"
"videoweb/web/service/srv_seopush"
"videoweb/web/service/srv_videoslug"
@@ -353,25 +351,6 @@ func UpdateVideoInfo(ctx context.Context, id, userId int64, param VideoInfoUpdat
}
}()
}
if param.Status != nil && info.Status != *param.Status {
if flag := srv_report.VideoStatusFlag(*param.Status); flag != 0 {
mediaCopy := *info
mediaCopy.Status = *param.Status
godef.Go(func() {
srv_report.ReportVideoStatusChangeEvent(&mediaCopy, flag, userId, ua)
})
}
}
sitemapdirty.Mark(ctx)
if param.Status != nil {
if *param.Status == videoinformationmod.InformationSatusVerifyOK &&
info.Status != videoinformationmod.InformationSatusVerifyOK {
srv_seopush.EnqueueVideoUpdated(ctx, id, *param.Status)
} else if info.Status == videoinformationmod.InformationSatusVerifyOK &&
*param.Status != videoinformationmod.InformationSatusVerifyOK {
srv_seopush.EnqueueVideoDeleted(ctx, id)
}
}
return nil
}