Files
jx-callback/business/jxstore/cms/im.go
richboo111 a5f750ad67 im
2023-04-25 09:46:26 +08:00

96 lines
2.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package cms
import (
"encoding/json"
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals/api"
)
// JXMsg 京西消息结构体
type JXMsg struct {
SendType string `json:"sendType"` //消息发送方 jx-商家mt-美团elm-饿了么
Data interface{} `json:"data"` //美团/饿了么 单聊消息
}
var (
rdb = api.Cacher
)
const (
SendTypeJx = "jx" //消息发送方jx标识符
ExpireTimeDay = 24 * time.Hour //redis一天过期时间
)
// GetUserList 查询门店-用户消息列表(与当前商铺聊天的所有用户) appid:vendorStoreID:10/11(mt/elm)
func GetUserList(keys []string) (retVal []interface{}) {
if len(keys) == 0 {
return nil
}
for _, v := range keys {
if value := rdb.Get(v); value != nil {
retVal = append(retVal, value)
}
}
if len(retVal) > 0 {
return retVal
}
return nil
}
// GetOneUserDetail 获取当前用户(单个)所有聊天记录 appID:vendorStoreID:10:userID
func GetOneUserDetail(msgID string) (retVal interface{}) {
if retVal = rdb.Get(msgID); retVal != nil {
return retVal
}
return nil
}
// SetMessageDetail 存储门店用户聊天detail 门店发送
func SetMessageDetail(data interface{}, vendorID string) error {
if vendorID == model.IMVendorIDMT {
param := JXMsg{
SendType: SendTypeJx,
Data: data,
}
//生成与美团消息id
req := data.(mtwmapi.SingleChat)
key := GenMtMsgDetailID(req.AppPoiCode, req.AppID, req.OpenUserID)
//存储
paramM, _ := json.Marshal(param)
err := rdb.RPush(key, string(paramM))
ok, err := rdb.ExpireResult(key, ExpireTimeDay)
if err != nil || !ok {
return err
}
}
if vendorID == model.IMVendorIDELM {
}
return nil
}
//1 美团
// GenMtMsgDetailID 生成查询详细聊天记录ID
func GenMtMsgDetailID(vendorStoreID string, appID, userID int) string {
temp := utils.Int2Str(appID) + ":" + vendorStoreID + ":10:" + utils.Int2Str(userID)
return temp
}
// SetMessageRead 平台方设置消息已读(不使用)
//func SetMessageRead(msgID, vendorStoreID, vendorID string) (err error) {
// if vendorID == model.IMVendorIDMT {
// err = api.MtwmAPI.MsgRead(vendorStoreID, msgID, vendorID)
//
// }
// if vendorID == model.IMVendorIDELM {
//
// }
// return nil
//}