imv2
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package mtwmapi
|
package mtwmapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -154,19 +155,30 @@ func (a *API) GetIMCallbackMsg(request *http.Request) (msg *ImCallbackMsg, callb
|
|||||||
var (
|
var (
|
||||||
err = request.ParseForm()
|
err = request.ParseForm()
|
||||||
pushContent PushContentReq
|
pushContent PushContentReq
|
||||||
|
tData string
|
||||||
)
|
)
|
||||||
|
msg = &ImCallbackMsg{}
|
||||||
|
msg.FormData = make(url.Values)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
data := utils.URLValues2Map(request.Form)
|
data := utils.URLValues2Map(request.Form)
|
||||||
if dataSign, ok := data[signKey]; ok {
|
if dataSign, ok := data[signKey]; ok {
|
||||||
for k, v := range data {
|
for k, v := range data {
|
||||||
|
if k == "push_content" {
|
||||||
|
//tData, _ = json.Marshal(v)
|
||||||
|
tData = v.(string)
|
||||||
|
continue
|
||||||
|
}
|
||||||
msg.FormData.Set(k, v.(string))
|
msg.FormData.Set(k, v.(string))
|
||||||
}
|
}
|
||||||
msg.Timestamp = utils.Str2Int(msg.FormData.Get("timestamp"))
|
msg.Timestamp = utils.Str2Int(msg.FormData.Get("timestamp"))
|
||||||
msg.Sig = dataSign.(string)
|
msg.Sig = dataSign.(string)
|
||||||
msg.AppID = msg.FormData.Get("app_id")
|
msg.AppID = msg.FormData.Get("app_id")
|
||||||
if err = utils.Map2StructByJson(data, pushContent, true); err == nil {
|
if err = json.Unmarshal([]byte(tData), &pushContent); err == nil {
|
||||||
msg.PushContent = pushContent
|
msg.PushContent = pushContent
|
||||||
}
|
}
|
||||||
|
//if err = utils.Map2StructByJson(tData, &pushContent, true); err == nil {
|
||||||
|
// msg.PushContent = pushContent
|
||||||
|
//}
|
||||||
} else {
|
} else {
|
||||||
callbackResponse = SuccessResponse
|
callbackResponse = SuccessResponse
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ type ImCallbackMsg struct {
|
|||||||
AppID string `json:"app_id"`
|
AppID string `json:"app_id"`
|
||||||
Sig string `json:"sig"`
|
Sig string `json:"sig"`
|
||||||
FormData url.Values
|
FormData url.Values
|
||||||
BizType int `json:"biz_type"` //业务类型字段:1:单聊,2:群聊
|
BizType int `json:"biz_type"` //业务类型字段:1:单聊,2:群聊
|
||||||
PushContent PushContentReq `json:"push_content"` //消息体详细内容
|
PushContent interface{} `json:"push_content"` //消息体详细内容
|
||||||
}
|
}
|
||||||
|
|
||||||
// PushContentReq msgSend商家发送IM消息
|
// PushContentReq msgSend商家发送IM消息
|
||||||
|
|||||||
@@ -3,12 +3,7 @@ package mtwmapi
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"github.com/gazeboxu/mapstructure"
|
|
||||||
"github.com/go-redis/redis"
|
"github.com/go-redis/redis"
|
||||||
"github.com/gorilla/websocket"
|
|
||||||
"io"
|
|
||||||
"net/http/httptest"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -44,188 +39,15 @@ func TestSendMsg(t *testing.T) {
|
|||||||
OpenUserID: 12248014636,
|
OpenUserID: 12248014636,
|
||||||
}
|
}
|
||||||
dataMar, err := json.Marshal(data)
|
dataMar, err := json.Marshal(data)
|
||||||
|
fmt.Println(string(dataMar))
|
||||||
ret, err := api.MsgSend(string(dataMar))
|
ret, err := api.MsgSend(string(dataMar))
|
||||||
fmt.Println(ret, err)
|
fmt.Println(ret, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
//测试心跳
|
func TestMashal(t *testing.T) {
|
||||||
func TestHeartCheck(t *testing.T) {
|
var pushContent = PushContentReq{}
|
||||||
var clientID = make(map[string]*websocket.Conn)
|
str := "{\"app_id\":589,\"app_poi_code\":\"8694203\",\"msg_id\":20230615,\"msg_content\":\"3/ SR3dQEf/G7nBfw1K3UN6UaYlCFaxKmbS76MPuJ9w=\",\"msg_source\":1,\"msg_type\":1,\"cts\":1686902500,\"open_user_id\":12248014636,\"order_id\":0,\"group_id\":0,\"app_spu_codes\":\"\"}"
|
||||||
//conn, resp, err := websocket.DefaultDialer.Dial(TestMTIMPushUrl, nil)
|
if err := json.Unmarshal([]byte(str), &pushContent); err == nil {
|
||||||
|
fmt.Println(pushContent)
|
||||||
//str := "~#HHhehHBBB#~"
|
|
||||||
//data := []byte(str)
|
|
||||||
conn1, resp1, err1 := websocket.DefaultDialer.Dial(TestMTIM4123, nil)
|
|
||||||
fmt.Println(conn1, resp1, err1)
|
|
||||||
clientID["1"] = conn1
|
|
||||||
|
|
||||||
conn, resp, err := websocket.DefaultDialer.Dial(TestMTIM589, nil)
|
|
||||||
clientID["2"] = conn
|
|
||||||
fmt.Println(conn, resp, err)
|
|
||||||
|
|
||||||
if err != nil || resp.StatusCode != 101 {
|
|
||||||
fmt.Printf("连接失败:%v http响应不成功", err)
|
|
||||||
}
|
|
||||||
//关闭
|
|
||||||
defer func(conn *websocket.Conn) {
|
|
||||||
err := conn.Close()
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}(conn)
|
|
||||||
|
|
||||||
if err := conn.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(time.Second)); err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
//err = conn.WriteMessage(websocket.TextMessage, data)
|
|
||||||
//if err != nil {
|
|
||||||
// fmt.Println(err)
|
|
||||||
//}
|
|
||||||
|
|
||||||
for {
|
|
||||||
_, msg, err := conn.ReadMessage()
|
|
||||||
temp := string(msg)
|
|
||||||
if err != nil || temp != "HB" {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
fmt.Printf("%s receive: %s\n", conn.RemoteAddr(), string(msg))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetConnectionToken(t *testing.T) {
|
|
||||||
resp, err := api.GetConnectionToken()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
retVal := GetConnTokenResp{}
|
|
||||||
err = mapstructure.Decode(resp, &retVal)
|
|
||||||
fmt.Println(err)
|
|
||||||
fmt.Println(utils.Format4Output(retVal, false))
|
|
||||||
}
|
|
||||||
|
|
||||||
var wsList []*websocket.Conn
|
|
||||||
|
|
||||||
type RetData struct {
|
|
||||||
Code int `json:"code"` //响应code
|
|
||||||
Msg string `json:"msg"` //响应msg success/fail
|
|
||||||
Data interface{} `json:"data"` //信息
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestWebSocketClient(t *testing.T) {
|
|
||||||
var retData RetData
|
|
||||||
|
|
||||||
retData.Code = 0
|
|
||||||
retData.Msg = "success"
|
|
||||||
retData.Data = "发送信息成功"
|
|
||||||
|
|
||||||
retJson, _ := json.Marshal(retData)
|
|
||||||
str := string(retJson)
|
|
||||||
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
|
||||||
_, _ = io.WriteString(w, str)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPUSH(t *testing.T) {
|
|
||||||
key := "589:7954977:10"
|
|
||||||
rdb.RPush(key, "1111111111")
|
|
||||||
//rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":3,\"latestMsg\":\"hhhhhhhhhhh\",\"latestTime\":1681983980}")
|
|
||||||
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":3,\"latestMsg\":\"oooooooooo\",\"latestTime\":1681983980}")
|
|
||||||
rdb.RPush(key, "2222222222222")
|
|
||||||
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":4,\"latestMsg\":\"成功插入新数据,看下cnt\",\"latestTime\":1681983980}")
|
|
||||||
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":5,\"latestMsg\":\"成功插入新数据,看下cnt\",\"latestTime\":1681983980}")
|
|
||||||
}
|
|
||||||
|
|
||||||
//用户消息列表
|
|
||||||
type UserMessageList struct {
|
|
||||||
VendorID int `json:"vendorID"` //平台品牌 10-美团 11-饿了么
|
|
||||||
UserID int `json:"userID"` //用户ID
|
|
||||||
NewMessageNum int `json:"NewMessageNum"` //新消息数量
|
|
||||||
LatestMsg string `json:"latestMsg"` //最新一条消息
|
|
||||||
LatestTime int `json:"latestTime"` //最新一条消息发送时间
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestNewRedis(t *testing.T) {
|
|
||||||
var (
|
|
||||||
err error
|
|
||||||
flag = 11158569333
|
|
||||||
key = "589:7954977:10"
|
|
||||||
temp = UserMessageList{}
|
|
||||||
)
|
|
||||||
if n := rdb.Exists(key).Val(); n > 0 {
|
|
||||||
s2 := rdb.LRange(key, 0, -1).Val()
|
|
||||||
for i := 0; i < len(s2); i++ {
|
|
||||||
v := UserMessageList{}
|
|
||||||
_ = json.Unmarshal([]byte(s2[i]), &v)
|
|
||||||
if v.UserID == flag {
|
|
||||||
//删除此条数据
|
|
||||||
err = rdb.LSet(key, int64(i), "del").Err()
|
|
||||||
err = rdb.LRem(key, 0, "del").Err()
|
|
||||||
s2 = append(s2[:i], s2[i+1:]...)
|
|
||||||
i--
|
|
||||||
//cnt=0 重新赋值
|
|
||||||
temp = UserMessageList{
|
|
||||||
VendorID: v.VendorID,
|
|
||||||
UserID: v.UserID,
|
|
||||||
NewMessageNum: 0,
|
|
||||||
LatestMsg: v.LatestMsg,
|
|
||||||
LatestTime: v.LatestTime,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
str, _ := json.Marshal(temp)
|
|
||||||
err = rdb.RPush(key, str).Err()
|
|
||||||
}
|
|
||||||
fmt.Print(err)
|
|
||||||
//s2 := rdb.LRange(key, 0, -1).Val()
|
|
||||||
//fmt.Printf("before len %d\n", len(s2))
|
|
||||||
//fmt.Printf("before ans %s\n", s2)
|
|
||||||
//cnt := 0
|
|
||||||
//n := rdb.Exists(key).Val()
|
|
||||||
//if n > 0 {
|
|
||||||
// for i := 0; i < len(s2); i++ {
|
|
||||||
// v := UserMessageList{}
|
|
||||||
// _ = json.Unmarshal([]byte(s2[i]), &v)
|
|
||||||
// if v.UserID == flag {
|
|
||||||
// rdb.LSet(key, int64(i), "del")
|
|
||||||
// rdb.LRem(key, 0, "del")
|
|
||||||
// s2 = append(s2[:i], s2[i+1:]...)
|
|
||||||
// i--
|
|
||||||
// if v.NewMessageNum == 0 { //目前为首条
|
|
||||||
// cnt++ //赋值1
|
|
||||||
// } else {
|
|
||||||
// cnt = v.NewMessageNum
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//fmt.Printf("after cnt %d\n", cnt)
|
|
||||||
//fmt.Printf("after len %d\n", len(s2))
|
|
||||||
//fmt.Printf("after ans %s\n", s2)
|
|
||||||
////存入flag数据
|
|
||||||
//ans := UserMessageList{
|
|
||||||
// VendorID: 10,
|
|
||||||
// UserID: 11158569333,
|
|
||||||
// NewMessageNum: cnt,
|
|
||||||
// LatestMsg: "成功插入新数据,看下cnt",
|
|
||||||
// LatestTime: 1681983980,
|
|
||||||
//}
|
|
||||||
//param, _ := json.Marshal(ans)
|
|
||||||
//rdb.RPush(key, param)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestGetWayBillFee(t *testing.T) {
|
|
||||||
//order, _ := api.OrderGetOrderDetail(1100486451772280163, false)
|
|
||||||
//globals.SugarLogger.Debugf("order:==%s", utils.Format4Output(order, false)) 2002
|
|
||||||
api.GetWayBillFee("1100486451772280163", 2)
|
|
||||||
api.GetWayBillFee("1100486451772280163", 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 商家没有接入众包配送,无法进行众包配送相关操作
|
|
||||||
func TestGetShippingFeeList(t *testing.T) {
|
|
||||||
api.GetShippingFeeList("1300486314174032613,1100487300210228389", 1)
|
|
||||||
api.GetShippingFeeList("1300486314174032613,1100487300210228389", 2)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user