1
This commit is contained in:
@@ -17,7 +17,7 @@ const (
|
||||
//#region im信息推送相关
|
||||
|
||||
// ImStatusModify 开启全平台或者单门店im通知
|
||||
func (a *API) ImStatusModify(waiterPin, stationId string, typePattern int, status bool) error {
|
||||
func (a *API) ImStatusModify(stationId string, typePattern int, status bool) error {
|
||||
parameter := map[string]interface{}{
|
||||
"stationId": stationId,
|
||||
"type": typePattern,
|
||||
@@ -78,6 +78,7 @@ func ImChatRiskMsg(request *http.Request) (back []byte, url string, err error) {
|
||||
valuesMap := utils.URLValues2Map(values)
|
||||
return utils.MustMarshal(valuesMap), msgURL, err
|
||||
}
|
||||
|
||||
func ImMsgChange(msg *JdParamJsonObj, msgURL string) (info *ChatRisInfo, user *UserChatMsg, read *UserMsgReadAck, err error) {
|
||||
var msgContext *ChatRisInfo
|
||||
var userMsg *UserChatMsg
|
||||
|
||||
@@ -11,6 +11,18 @@ type ContextTo struct {
|
||||
App string `json:"app"` // im.customer 固定值
|
||||
}
|
||||
|
||||
// ContextMsg 消息发送接口 - 向用户发送在线消息
|
||||
type ContextMsg struct {
|
||||
Id string `json:"id"` // uuid 随机生成字符串
|
||||
Lang string `json:"lang"` // 固定值 zh_CN
|
||||
Type string `json:"type"` // 固定值 chat_message
|
||||
From ContextFrom `json:"from"`
|
||||
To ContextTo `json:"to"`
|
||||
Body ContextBody `json:"body"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
ClientTime int64 `json:"clientTime"`
|
||||
}
|
||||
|
||||
type ContextBody struct {
|
||||
Type string `json:"type"` // 消息类型,根据需求场景
|
||||
Content string `json:"content"` // 字符型,必须。文本消息内容。
|
||||
@@ -27,19 +39,6 @@ type ContextBodyChatInfo struct {
|
||||
Source string `json:"source"` // dd_msg_产品线标识_消息标识“ 必传
|
||||
}
|
||||
|
||||
// ContextMsg 消息发送接口 - 向用户发送在线消息
|
||||
type ContextMsg struct {
|
||||
Id string `json:"id"` // uuid 随机生成字符串
|
||||
Lang string `json:"lang"` // 固定值 zh_CN
|
||||
Type string `json:"type"` // 固定值 chat_message
|
||||
From ContextFrom `json:"from"`
|
||||
To ContextTo `json:"to"`
|
||||
//Body ContextBody `json:"body"`
|
||||
Body interface{} `json:"body"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
ClientTime int64 `json:"clientTime"`
|
||||
}
|
||||
|
||||
type BaseInfo struct {
|
||||
AppKey string `json:"app_key"`
|
||||
Token string `json:"token"`
|
||||
@@ -51,8 +50,8 @@ type BaseInfo struct {
|
||||
}
|
||||
|
||||
type JdParamJsonObj struct {
|
||||
StatusId string `json:"statusId"`
|
||||
BillId string `json:"billId"`
|
||||
StatusId string `json:"statusId"` // 由于推送消息不含有次参数,存储的为jxid
|
||||
BillId string `json:"billId"` // 由于推送消息不含有次参数,存储的为平台id320406
|
||||
ExtendJsonData string `json:"extendJsonData"`
|
||||
StoreId string `json:"storeId"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
@@ -93,9 +92,53 @@ type UserChatMsg struct {
|
||||
App string `json:"app"` // 接收消息的app
|
||||
ClientType string `json:"clientType"` // 接收消息的终端"
|
||||
} `json:"to"`
|
||||
Body interface{} `json:"body"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
ClientTime int64 `json:"clientTime"`
|
||||
Body UserChatMsgBody `json:"body"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
ClientTime int64 `json:"clientTime"`
|
||||
}
|
||||
|
||||
type UserChatMsgBody struct {
|
||||
Chatinfo struct {
|
||||
IMService bool `json:"IMService"`
|
||||
AppId string `json:"appId"`
|
||||
AskAllocateType string `json:"askAllocateType"`
|
||||
AskType string `json:"askType"`
|
||||
DdSessionType string `json:"ddSessionType"`
|
||||
DeviceNo string `json:"deviceNo"`
|
||||
DisputeId int `json:"disputeId"`
|
||||
DistinguishPersonJimi int `json:"distinguishPersonJimi"`
|
||||
Eidtoken string `json:"eidtoken"`
|
||||
Entry string `json:"entry"`
|
||||
FirstMsg bool `json:"firstMsg"`
|
||||
IsJdSuperMarket string `json:"isJdSuperMarket"`
|
||||
Label int `json:"label"`
|
||||
LeaveMsgTable int `json:"leaveMsgTable"`
|
||||
OGroupId int `json:"oGroupId"`
|
||||
OSid string `json:"oSid"`
|
||||
ProVer string `json:"proVer"`
|
||||
Region string `json:"region"`
|
||||
RepeatConsult int `json:"repeatConsult"`
|
||||
RepeatHuman int `json:"repeatHuman"`
|
||||
Sid string `json:"sid"`
|
||||
Source string `json:"source"`
|
||||
StoreId string `json:"storeId"`
|
||||
SystemVer string `json:"systemVer"`
|
||||
VenderId string `json:"venderId"`
|
||||
VenderName string `json:"venderName"`
|
||||
Verification string `json:"verification"`
|
||||
} `json:"chatinfo"`
|
||||
Content string `json:"content"`
|
||||
LlmStream int `json:"llmStream"`
|
||||
Param struct {
|
||||
Ref string `json:"$ref"`
|
||||
} `json:"param"`
|
||||
RequestData struct {
|
||||
Entry string `json:"entry"`
|
||||
VenderId string `json:"venderId"`
|
||||
} `json:"requestData"`
|
||||
Sid string `json:"sid"`
|
||||
Thumbnail string `json:"thumbnail"`
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
// UserMsgReadAck 已读消息推送
|
||||
|
||||
@@ -19,10 +19,21 @@ func Test12(t *testing.T) {
|
||||
|
||||
// TestImStatusModify 开启关闭门店im
|
||||
func TestImStatusModify(t *testing.T) {
|
||||
api.ImStatusModify("", "19854102+320406", 0, true)
|
||||
api.ImStatusModify("19854102+320406", 0, true)
|
||||
}
|
||||
|
||||
// TestImWaiterStatusModify 设置门店im在想状态
|
||||
func TestImWaiterStatusModify(t *testing.T) {
|
||||
api.ImWaiterStatusModify(1, "19854102", 1)
|
||||
}
|
||||
|
||||
func TestImMsgChange(t *testing.T) {
|
||||
data := &JdParamJsonObj{
|
||||
StatusId: "",
|
||||
BillId: "320406",
|
||||
ExtendJsonData: "{\"ver\":\"4.2\",\"fromChannelId\":-1,\"mid\":376841421,\"body\":{\"chatinfo\":{\"venderId\":\"store_10352814_1000051632\",\"firstMsg\":true,\"source\":\"jimitwo_service_smart_sdk\",\"IMService\":false,\"repeatConsult\":1,\"sid\":\"8b457541accd5e63eb4845f94c4852e8\",\"oGroupId\":113057083,\"askType\":\"o2o\",\"appId\":\"im.waiter\",\"verification\":\"slide\",\"repeatHuman\":1,\"isJdSuperMarket\":\"0\",\"deviceNo\":\"dd_dvc_aes_73FF2098F02392E999FE00A26817AE212E55DF89C9D405370B4B09A908F3A355\",\"label\":1,\"storeId\":\"1000051632\",\"oSid\":\"9ec16e789610328114db937025384666\",\"distinguishPersonJimi\":2,\"proVer\":\"smart_android_15.2.90\",\"entry\":\"sdk_recent\",\"askAllocateType\":\"multiChat\",\"leaveMsgTable\":1,\"venderName\":\"京西菜市-新都三河店\",\"disputeId\":-1,\"ddSessionType\":\"1\",\"systemVer\":\"android_12_BRA-AL00\",\"eidtoken\":\"jdd01SVZE72NCBZ6AXTRFHLIRLNUSF25PCOYF4OPNU3BOITK5SR62TUHMBIDGFBOYGQ7TWY7WRDPLHA3LP6NME42NE5IQNXASKIGJA6ULRAI01234567\",\"region\":\"CN\"},\"llmStream\":0,\"thumbnail\":\"\",\"param\":{\"$ref\":\"$.body.chatinfo\"},\"type\":\"text\",\"requestData\":{\"entry\":\"sdk_recent\",\"venderId\":\"store_10352814_1000051632\"},\"content\":\"低处不胜暖\",\"sid\":\"8b457541accd5e63eb4845f94c4852e8\"},\"type\":\"chat_message\",\"clientTime\":1765873013013,\"datetime\":1765873013299,\"len\":0,\"from\":{\"app\":\"im.customer\",\"art\":\"\",\"clientType\":\"android\",\"pin\":\"jd_52db6569f724f\"},\"subType\":\"text\",\"id\":\"bdf9475389e94265835d90c41912629c\",\"to\":{\"app\":\"im.waiter\",\"pin\":\"liyang12345ly\"},\"lang\":\"zh_CN\",\"timestamp\":1765873013299}",
|
||||
StoreId: "11998833",
|
||||
Timestamp: "2025-12-16 16:16:53",
|
||||
}
|
||||
ImMsgChange(data, "msChatMessage")
|
||||
}
|
||||
|
||||
@@ -292,6 +292,12 @@ func handleRetailBatchResultByRegexp(result interface{}) (failedFoodList []*AppF
|
||||
// https://developer.waimai.meituan.com/home/myquestionDetail/6716
|
||||
// 另外这个接口即使不指定operate_type为1,也可能报错:”商品spu名称在该店内分类中已存在“,原因就是已经存在两个相同的SKU了
|
||||
func (a *API) RetailInitData(trackInfo, poiCode, foodCode string, params map[string]interface{}) (err error) {
|
||||
if poiCode == "18698027" {
|
||||
globals.SugarLogger.Debugf("--------poiCode%s", poiCode)
|
||||
globals.SugarLogger.Debugf("--------foodCode%s", foodCode)
|
||||
globals.SugarLogger.Debugf("--------params:%s", utils.Format4Output(params, false))
|
||||
|
||||
}
|
||||
_, err = a.AccessAPI2("retail/initdata", false, utils.MergeMaps(map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
KeyAppFoodCode: foodCode,
|
||||
|
||||
@@ -194,8 +194,8 @@ func TestMap(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRetailDat(t *testing.T) {
|
||||
err := api.RetailInitData("F71D0F0881A211ED9D81525400E86DC0", "26207799", "mtcode_1808750374413807658", map[string]interface{}{
|
||||
"app_food_code": "mtcode_1808750374413807658",
|
||||
err := api.RetailInitData("F71D0F0881A211ED9D81525400E86DC0", "18698027", "25008", map[string]interface{}{
|
||||
"app_food_code": "25008",
|
||||
"category_name": "活动",
|
||||
"common_attr_value": "[{\"attrId\":1200000135,\"attrName\":\"包装方式\",\"valueList\":[{\"setValue\":true,\"setValueId\":true,\"value\":\"散装\",\"valueId\":1300000232}]},{\"attrId\":1200000202,\"attrName\":\"品种\",\"valueList\":[{\"setValue\":true,\"setValueId\":true,\"value\":\"韭菜\",\"valueId\":1300003045}]}]",
|
||||
"description": "",
|
||||
@@ -361,7 +361,7 @@ func TestRetailSellStatus2(t *testing.T) {
|
||||
//根据分类id查询属性列表
|
||||
func TestCategoryAttrList(t *testing.T) {
|
||||
//result, err := api.CategoryAttrList(200002680)
|
||||
result, err := api.CategoryAttrList(400000717)
|
||||
result, err := api.CategoryAttrList(200002794)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user