Răsfoiți Sursa

消息打开记录

renjiaojiao 1 an în urmă
părinte
comite
87d0d40920

+ 11 - 20
rpc/internal/common/messageLog.go

@@ -2,7 +2,9 @@ package common
 
 import (
 	"app.yhyue.com/moapp/MessageCenter/entity"
-	"github.com/go-xorm/xorm"
+	"app.yhyue.com/moapp/jybase/common"
+	"context"
+	"fmt"
 	"log"
 	"time"
 )
@@ -14,27 +16,16 @@ var (
 
 // SaveMessageClockLog 保存消息点击记录
 func SaveMessageClockLog(saveData []map[string]interface{}) {
-	orm := entity.Engine.NewSession()
-	defer func(orm *xorm.Session) {
-		orm.Close()
-	}(orm)
-	err := orm.Begin()
-	if err != nil {
-		log.Println("保存消息事务开启失败", err)
-		return
-	}
-	_, err = orm.Table("message_open_log").Insert(saveData)
-	if err != nil {
-		err2 := orm.Rollback()
-		if err2 != nil {
-			log.Println("存储消息rollback失败", err2)
-			return
+	sql := "INSERT INTO message_open_log (`userid`,`msg_log_id`,`platform`,`createtime`) values "
+	for i, data := range saveData {
+		if i != 0 {
+			sql += ","
 		}
-		log.Println("存储消息打开日志失败", err)
+		sql += fmt.Sprintf(" ('%s',%d,%d,%d) ", common.InterfaceToStr(data["userid"]), common.IntAll(data["msg_log_id"]), common.IntAll(data["platform"]), time.Now().Unix())
 	}
-	err = orm.Commit()
-	if err != nil {
-		log.Println("存储消息commit失败", err)
+	fmt.Println(sql)
+	if err := entity.ClickhouseConn.Exec(context.Background(), sql); err != nil {
+		log.Println("save 异常", err)
 		return
 	}
 }

+ 6 - 3
rpc/internal/common/messageService.go

@@ -134,9 +134,12 @@ func FindMessageDetail(id, msgLogId int64, userId string) (msg *map[string]inter
 	return nil, nil
 }*/
 
-func (service *MessageService) MsgOpenLog(platFrom, msgLogId int64, userId string) int64 {
+func (service *MessageService) MsgOpenLog(platFrom, msgLogId int64, userId string) error {
 	//判断用户是否已经在pc端打开过
-	count := entity.Mysql.CountBySql("SELECT COUNT(*) FROM message_open_log WHERE msg_log_id = ? and platform = ? and userid = ?", msgLogId, platFrom, userId)
+	sql := fmt.Sprintf("SELECT COUNT(*) FROM message_open_log WHERE msg_log_id = %d and platform = %d and userid = '%s'", msgLogId, platFrom, userId)
+	row := entity.ClickhouseConn.QueryRow(context.Background(), sql)
+	var count uint64
+	row.Scan(&count)
 	if count <= 0 {
 		tmp := map[string]interface{}{
 			"msg_log_id": msgLogId,
@@ -146,5 +149,5 @@ func (service *MessageService) MsgOpenLog(platFrom, msgLogId int64, userId strin
 		}
 		SaveCache <- tmp
 	}
-	return 0
+	return nil
 }

+ 9 - 4
rpc/internal/logic/msgopenloglogic.go

@@ -27,10 +27,15 @@ func NewMsgOpenLogLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MsgOpe
 //  点击消息-存查看记录
 func (l *MsgOpenLogLogic) MsgOpenLog(in *message.MsgOpenLogReq) (*message.Response, error) {
 	m := service.MessageService{}
-	ok := m.MsgOpenLog(in.Platform, in.MsgLogId, in.UserId)
-
+	err := m.MsgOpenLog(in.Platform, in.MsgLogId, in.UserId)
+	code := 0
+	msg := "保存成功"
+	if err != nil {
+		code = 1
+		msg = err.Error()
+	}
 	return &message.Response{
-		Code:    ok,
-		Message: "存入查看记录成功",
+		Code:    int64(code),
+		Message: msg,
 	}, nil
 }