فهرست منبع

update 完善logstash消息处理

Alvin 10 ماه پیش
والد
کامیت
5e06626367
1فایلهای تغییر یافته به همراه146 افزوده شده و 8 حذف شده
  1. 146 8
      game/game_cluster/nodes/logstash/module/handlelog/actor_handle_log.go

+ 146 - 8
game/game_cluster/nodes/logstash/module/handlelog/actor_handle_log.go

@@ -2,7 +2,7 @@
  * @Author: Alvin Alvin@qq.com
  * @Date: 2024-09-24 18:54:19
  * @LastEditors: Alvin Alvin@qq.com
- * @LastEditTime: 2024-09-25 18:37:45
+ * @LastEditTime: 2024-09-26 11:10:58
  * @FilePath: \server\game\game_cluster\nodes\logstash\module\handlelog\actor_handle_log.go
  * @Description:
  * 处理其他服务发送的埋点日志
@@ -10,10 +10,11 @@
 package handlelog
 
 import (
-	"encoding/json"
 	"strings"
 
+	jsoniter "github.com/json-iterator/go"
 	"github.com/mhaya/game/game_cluster/internal/code"
+	"github.com/mhaya/game/game_cluster/internal/mdb"
 	"github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
 	"github.com/mhaya/game/game_cluster/internal/param"
 	"github.com/mhaya/game/game_cluster/nodes/logstash/module/event"
@@ -21,6 +22,10 @@ import (
 	cactor "github.com/mhaya/net/actor"
 )
 
+var (
+	json = jsoniter.ConfigCompatibleWithStandardLibrary
+)
+
 type (
 	HandleLogObject struct {
 		cactor.Base
@@ -28,7 +33,7 @@ type (
 )
 
 func (p *HandleLogObject) AliasID() string {
-	return "handlelog"
+	return "logrecord"
 }
 
 // OnInit logstash为后端节点,不直接与客户端通信,所以注册了一些remote函数,供RPC调用
@@ -62,22 +67,155 @@ func (p *HandleLogObject) handlelogContent(req *param.HandleLogReq, e event.Even
 		content := &eventmodels.UserRegisterEventContent{}
 		err := json.Unmarshal([]byte(req.JsonContent), &content)
 		if err != nil {
-			mhayaLogger.Warnf("handlelog Unmarshal err:%v", err)
+			mhayaLogger.Warnf("handlelog UserRegisterEventContent Unmarshal err:%v", err)
 			return code.Error
 		}
 
-		// TODO 将流水日志写入clickhouse等等
-		content.Insert()
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create UserRegisterEventContent err:%v", err)
+			return code.Error
+		}
 
 	case *eventmodels.UserLoginEventContent:
 		content := &eventmodels.UserLoginEventContent{}
 		err := json.Unmarshal([]byte(req.JsonContent), &content)
 		if err != nil {
-			mhayaLogger.Warnf("handlelog Unmarshal err:%v", err)
+			mhayaLogger.Warnf("handlelog UserLoginEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create UserLoginEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.UserUpdateInfoEventContent:
+		content := &eventmodels.UserUpdateInfoEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog UserUpdateInfoEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create UserUpdateInfoEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.UserWithdrawEventContent:
+		content := &eventmodels.UserWithdrawEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog UserWithdrawEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create UserWithdrawEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.AssetsEventContent:
+		content := &eventmodels.AssetsEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog AssetsEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create AssetsEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.InviteEventContent:
+		content := &eventmodels.InviteEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog InviteEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create InviteEventContent err:%v", err)
 			return code.Error
 		}
 
-		// TODO 将流水日志写入clickhouse等等
+	case *eventmodels.DiceEventContent:
+		content := &eventmodels.DiceEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog DiceEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create DiceEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.JoinChannelEventContent:
+		content := &eventmodels.JoinChannelEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog JoinChannelEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create JoinChannelEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.FollowEventContent:
+		content := &eventmodels.FollowEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog FollowEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create FollowEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.TaskFinishEventContent:
+		content := &eventmodels.TaskFinishEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog TaskFinishEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create TaskFinishEventContent err:%v", err)
+			return code.Error
+		}
+
+	case *eventmodels.BackendOperationEventContent:
+		content := &eventmodels.BackendOperationEventContent{}
+		err := json.Unmarshal([]byte(req.JsonContent), &content)
+		if err != nil {
+			mhayaLogger.Warnf("handlelog BackendOperationEventContent Unmarshal err:%v", err)
+			return code.Error
+		}
+
+		err = mdb.LogstashDB.Create(content).Error
+		if err != nil {
+			mhayaLogger.Warnf("handlelog LogstashDB Create BackendOperationEventContent err:%v", err)
+			return code.Error
+		}
 	}
 
 	return code.OK