diff --git a/business/model/api_config.go b/business/model/api_config.go
index 50d3047a4..83d5ca9d8 100644
--- a/business/model/api_config.go
+++ b/business/model/api_config.go
@@ -133,7 +133,7 @@ var (
VendorIDJD: "京东到家",
VendorIDMTWM: "美团外卖",
VendorIDELM: "饿了么",
- VendorIDEBAI: "饿百新零售",
+ VendorIDEBAI: "淘宝闪购",
VendorIDYB: "银豹",
VendorIDJDShop: "京东商城",
VendorIDWSC: "微盟微商城",
diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go
index 438e63534..6b19eb63b 100644
--- a/business/partner/delivery/rider.go
+++ b/business/partner/delivery/rider.go
@@ -512,8 +512,6 @@ func UpdateFakeWayBillToTiktok() {
if handler != nil {
if err := handler.GetOrderRider(order.VendorOrgCode, order.VendorStoreID, paramsMap); err != nil {
partner.CurOrderManager.OnOrderMsg(order, tao_vegetable.OrderStatusDelivery, fmt.Sprintf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err))
- } else {
- partner.CurOrderManager.OnOrderMsg(order, tao_vegetable.OrderStatusDelivery, "订单配送中")
}
if order.VendorID == model.VendorIDEBAI {
diff --git a/business/partner/im/im.go b/business/partner/im/im.go
index d40d1d002..f8b090623 100644
--- a/business/partner/im/im.go
+++ b/business/partner/im/im.go
@@ -6,6 +6,7 @@ import (
"encoding/json"
"errors"
"fmt"
+ "git.rosy.net.cn/baseapi/platformapi/jdapi"
"math/big"
"strings"
"time"
@@ -28,21 +29,58 @@ import (
)
func SendVendorV2(data SendData, vendorOrgCode string) (err error) {
- if data.VendorID == model.VendorIDMTWM {
+ switch data.VendorID {
+ case model.VendorIDMTWM:
dataStr, _ := json.Marshal(data.Data)
temp := string(dataStr)
globals.SugarLogger.Debugf("SendVendorV2 mtwmtemp=%s", temp)
if _, err = partner.CurAPIManager.GetAPI(model.VendorIDMTWM, vendorOrgCode).(*mtwmapi.API).MsgSend(string(dataStr)); err != nil {
return err
}
- }
- if data.VendorID == model.VendorIDEBAI {
+ case model.VendorIDEBAI:
str, _ := json.Marshal(data.Data)
param := &ebaiapi.BusinessSendMsgReq{}
err = json.Unmarshal(str, ¶m)
globals.SugarLogger.Debugf("SendVendorV2 ebaiparam=%s", utils.Format4Output(param, false))
err = partner.CurAPIManager.GetAPI(model.VendorIDEBAI, vendorOrgCode).(*ebaiapi.API).BusinessSendMsg(param)
+ case model.VendorIDJD:
+ //uuid := utils.GetUUID()
+ //autoReplayParam := &jdapi.ContextMsg{
+ // Id: uuid,
+ // Lang: "zh_CN",
+ // Type: "chat_message",
+ // From: jdapi.ContextFrom{
+ // Pin: userMsg.From.Pin,
+ // App: "im.waiter",
+ // ClientType: "gw",
+ // },
+ // To: jdapi.ContextTo{
+ // Pin: userMsg.To.Pin,
+ // App: "im.customer",
+ // },
+ // Body: jdapi.ContextBody{
+ // Type: "text",
+ // Content: temp,
+ // Chatinfo: jdapi.ContextBodyChatInfo{
+ // VenderId: jd.VenderId,
+ // AskAllocateType: "multiChat",
+ // Sid: userMsg.Body.Chatinfo.Sid,
+ // Source: fmt.Sprintf("dd_msg_?_%s"?, uuid),
+ // },
+ // Template: struct {
+ // Source string `json:"source"`
+ // }{
+ // Source: fmt.Sprintf("dd_msg_?_%s"?, uuid),
+ // },
+ // Mt: 60,
+ // },
+ // Timestamp: time.Now().UnixNano(),
+ // ClientTime: time.Now().UnixNano(),
+ //}
+ //err = partner.CurAPIManager.GetAPI(model.VendorIDJD, vendorOrgCode).(*jdapi.API).MessagePushService(autoReplayParam)
+
}
+
err = ReadMsgFromClient(data.VendorID, vendorOrgCode, data.Data)
if err != nil {
globals.SugarLogger.Debugf("SendVendorV2:%v", err)
@@ -100,6 +138,9 @@ func GetPoiIMStatus(param []GetPoiIMStatusReq) (retVal []*GetPoiIMStatusResp) {
}
ans2.VendorID = model.VendorIDEBAI
ans2.ImStatus = utils.Str2Int(status)
+ case model.VendorIDJD:
+ //api := partner.CurAPIManager.GetAPI(model.VendorIDJD, v.VendorOrgCode).(*jdapi.API)
+ //api.ImWaiterStatusModify()
}
}
retVal = append(retVal, ans1, ans2)
@@ -129,6 +170,11 @@ func SetPoiIMStatus(param []SetPoiIMStatusReq) error {
if err := partner.CurAPIManager.GetAPI(model.VendorIDEBAI, v.VendorOrgCode).(*ebaiapi.API).UpdateIMStatus(v.VendorStoreID, v.ImStatus); err != nil {
errList.AddErr(fmt.Errorf("ebai:%v", err))
}
+ case model.VendorIDJD:
+ api := partner.CurAPIManager.GetAPI(model.VendorIDJD, v.VendorOrgCode).(*jdapi.API)
+ // 0:忙碌;1:在线
+ err := api.ImWaiterStatusModify(1, v.VendorStoreID, v.ImStatus)
+ errList.AddErr(fmt.Errorf("jd:%v", err))
}
}
return errList.GetErrListAsOne()
@@ -149,7 +195,8 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
errList.AddErr(fmt.Errorf("json处理数据错误:%v", err))
}
- if vendorID == VendorIDMT {
+ switch vendorID {
+ case model.VendorIDMTWM:
var pushContent = mtwmapi.PushContentReq{}
err = json.Unmarshal(data, &pushContent)
jxMsg = &JXMsg{
@@ -157,7 +204,7 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
MsgContent: pushContent,
}
userList = &UserMessageList{
- VendorID: VendorIDMT,
+ VendorID: model.VendorIDMTWM,
UserID: utils.Int2Str(pushContent.OpenUserID),
LatestMsg: pushContent.MsgContent,
LatestTime: pushContent.Cts,
@@ -166,8 +213,7 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
if pushContent.OrderID != 0 {
userList.OrderID = utils.Int2Str(pushContent.OrderID)
}
- }
- if vendorID == VendorIDELM {
+ case model.VendorIDEBAI:
var ElmData = ebaiapi.ImMessageSend{}
err = json.Unmarshal(data, &ElmData)
jxMsg = &JXMsg{
@@ -178,11 +224,24 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
elmTime = int(time.Now().Unix())
}
userList = &UserMessageList{
- VendorID: VendorIDELM,
+ VendorID: model.VendorIDEBAI,
UserID: ElmData.PayLoad.GroupID,
LatestMsg: ElmData.PayLoad.Content,
LatestTime: elmTime,
}
+ case model.VendorIDJD:
+ var jdData = jdapi.ContextMsg{}
+ err = json.Unmarshal(data, &jdData)
+ jxMsg = &JXMsg{
+ SendType: SendTypeJx,
+ MsgContent: jdData,
+ }
+ userList = &UserMessageList{
+ VendorID: model.VendorIDJD,
+ UserID: jdData.From.Pin,
+ LatestMsg: utils.Interface2String(jdData.Body),
+ LatestTime: int(time.Now().Unix()),
+ }
}
//1 存储展示列表时单条数据
@@ -202,18 +261,19 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
// ReadMsgFromVendor 读取数据并存储到redis
func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
var (
- err error
- jxMsg = &JXMsg{}
- vendorStoreID string
- errList errlist.ErrList
- userList = &UserMessageList{}
+ err error
+ jxMsg = &JXMsg{}
+ vendorStoreID string
+ errList errlist.ErrList
+ userList = &UserMessageList{}
+ systemMsg, userMsg, readMsg = &jdapi.ChatRisInfo{}, &jdapi.UserChatMsg{}, &jdapi.UserMsgReadAck{}
)
if len(string(msg)) == 0 {
errList.AddErr(fmt.Errorf("读取平台数据为空,请检查"))
}
switch vendorID {
- case VendorIDMT:
+ case model.VendorIDMTWM:
var PushContentReq = mtwmapi.PushContentReq{}
err = json.Unmarshal(msg, &PushContentReq)
if len(PushContentReq.MsgContent) != 0 || PushContentReq.MsgContent != "" {
@@ -227,7 +287,7 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
MsgContent: PushContentReq,
}
userList = &UserMessageList{
- VendorID: VendorIDMT,
+ VendorID: model.VendorIDMTWM,
UserID: utils.Int2Str(PushContentReq.OpenUserID),
LatestMsg: PushContentReq.MsgContent,
LatestTime: PushContentReq.Cts,
@@ -236,7 +296,7 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
if PushContentReq.OrderID != 0 {
userList.OrderID = utils.Int2Str(PushContentReq.OrderID)
}
- case VendorIDELM:
+ case model.VendorIDEBAI:
var ElmData = ebaiapi.ImMessageSend{}
err = json.Unmarshal(msg, &ElmData)
jxMsg = &JXMsg{
@@ -244,12 +304,42 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
MsgContent: ElmData,
}
userList = &UserMessageList{
- VendorID: VendorIDELM,
+ VendorID: model.VendorIDEBAI,
UserID: ElmData.PayLoad.GroupID,
LatestMsg: ElmData.PayLoad.Content,
LatestTime: int(ElmData.PayLoad.CreateTime / 1000),
}
-
+ vendorStoreID = ElmData.PlatformShopID
+ case model.VendorIDJD:
+ var risMsg *jdapi.ChatRisMsgCallback
+ if err = utils.UnmarshalUseNumber(msg, &risMsg); err != nil {
+ return err
+ }
+ jxMsg = &JXMsg{
+ SendType: SendTypeJd,
+ MsgContent: &risMsg,
+ }
+ systemMsg, userMsg, readMsg, err = jdapi.ImMsgChange(risMsg, elmAppID)
+ if err != nil {
+ return err
+ }
+ userList = &UserMessageList{
+ VendorID: model.VendorIDJD,
+ LatestMsg: risMsg.ExtendJsonData,
+ MsgFrom: elmAppID,
+ }
+ switch elmAppID {
+ case jdapi.ImCallbackRisMsg:
+ userList.UserID = systemMsg.From.Pin
+ userList.LatestTime = int(systemMsg.Timestamp)
+ case jdapi.ImCallbackUserMsg:
+ userList.UserID = userMsg.From.Pin
+ userList.LatestTime = int(userMsg.Timestamp)
+ case jdapi.ImCallbackReadMsg:
+ userList.UserID = readMsg.From.Pin
+ userList.LatestTime = int(userMsg.Timestamp)
+ }
+ vendorStoreID = risMsg.StationId
}
//1 存储详细聊天记录list
@@ -261,9 +351,20 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err))
}
//3 cid推送新消息
- if err = PushMsgByCid(vendorStoreID, vendorID, string(msg)); err != nil {
- errList.AddErr(fmt.Errorf("向商家cid推送新消息错误:%v", err))
+ switch vendorID {
+ case model.VendorIDEBAI, model.VendorIDMTWM:
+ if err = PushMsgByCid(vendorStoreID, vendorID, string(msg)); err != nil {
+ errList.AddErr(fmt.Errorf("向商家cid推送新消息错误:%v", err))
+ }
+ case model.VendorIDJD:
+ if elmAppID == jdapi.ImCallbackUserMsg {
+ err = PushMsgByCid(vendorStoreID, vendorID, "京东用户发送聊天消息,请及时查看")
+ }
+ if err != nil {
+ errList.AddErr(fmt.Errorf("京东向商家cid推送新消息错误:%v", err))
+ }
}
+
//4 客服自动回复
if err = CheckAndReply(jxMsg, elmAppID); err != nil {
errList.AddErr(fmt.Errorf("客服自动回复出错:%v", err))
@@ -365,11 +466,11 @@ func GenMsgDetailID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string)
if jxMsg == nil {
return ""
}
- if vendorID == VendorIDMT {
+ switch vendorID {
+ case model.VendorIDMTWM:
var d1 = jxMsg.MsgContent.(mtwmapi.PushContentReq)
msgID = utils.Int2Str(d1.AppID) + ":" + d1.AppPoiCode + ":1:" + utils.Int2Str(d1.OpenUserID)
- }
- if vendorID == VendorIDELM {
+ case model.VendorIDEBAI:
var ElmData = ebaiapi.ImMessageSend{}
tempMsgContent, _ := json.Marshal(jxMsg.MsgContent)
if err := json.Unmarshal(tempMsgContent, &ElmData); err != nil {
@@ -378,31 +479,41 @@ func GenMsgDetailID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string)
//var d2 = jxMsg.MsgContent.(ebaiapi.ImMessageSend)
//msgID = elmAppID + ":" + d2.PlatformShopID + ":3:" + d2.PayLoad.GroupID
msgID = elmAppID + ":" + ElmData.PlatformShopID + ":3:" + ElmData.PayLoad.GroupID
+ case model.VendorIDJD:
+ var data = jxMsg.MsgContent.(*jdapi.ChatRisMsgCallback)
+ msgID = data.VenderId + ":" + data.StationId + ":0:"
+ systemMsg, userMsg, readMsg, _ := jdapi.ImMsgChange(data, elmAppID)
+ switch elmAppID {
+ case jdapi.ImCallbackRisMsg:
+ msgID += systemMsg.From.Pin
+ case jdapi.ImCallbackUserMsg:
+ msgID += userMsg.From.Pin
+ case jdapi.ImCallbackReadMsg:
+ msgID += readMsg.From.Pin
+ }
}
return msgID
}
// GenMsgListID 生成展示列表时单条数据ID(部分)
func GenMsgListID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string) {
-
- //globals.SugarLogger.Debugf("GenMsgListID test0124 jxMsg=%s,vendorID=%d", utils.Format4Output(jxMsg, false), vendorID)
if jxMsg == nil {
return ""
}
- if vendorID == VendorIDMT {
+ switch vendorID {
+ case model.VendorIDMTWM:
var d1 = jxMsg.MsgContent.(mtwmapi.PushContentReq)
msgID = utils.Int2Str(d1.AppID) + ":" + d1.AppPoiCode + ":1"
- }
- if vendorID == VendorIDELM {
+ case model.VendorIDEBAI:
var ElmData = ebaiapi.ImMessageSend{}
tempMsgContent, _ := json.Marshal(jxMsg.MsgContent)
- err := json.Unmarshal(tempMsgContent, &ElmData)
- fmt.Println(err)
- //var d2 = jxMsg.MsgContent.(ebaiapi.ImMessageSend)
- //msgID = elmAppID + ":" + d2.PlatformShopID + ":3"
+ json.Unmarshal(tempMsgContent, &ElmData)
msgID = elmAppID + ":" + ElmData.PlatformShopID + ":3"
-
+ case model.VendorIDJD:
+ var data = jxMsg.MsgContent.(*jdapi.ChatRisMsgCallback)
+ msgID = data.VenderId + ":" + data.StationId + ":0"
}
+
return msgID
}
@@ -540,8 +651,9 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
//userList = &UserMessageList{}
)
- if req.SendType == SendTypeMt {
- vendorID = VendorIDMT
+ switch req.SendType {
+ case SendTypeMt:
+ vendorID = model.VendorIDMTWM
mt := req.MsgContent.(mtwmapi.PushContentReq)
//跳过12小时内商家消息自动回复
if mt.MsgSource != mtwmapi.MsgSourceUser {
@@ -552,7 +664,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
keyDetailMt := UserRelInfo{
AppID: utils.Int2Str(mt.AppID),
VendorStoreID: mt.AppPoiCode,
- VendorID: VendorIDMTStr,
+ VendorID: utils.Int2Str(model.VendorIDMTWM),
UserID: utils.Int2Str(mt.OpenUserID),
}
//1 检测是否已自动回复
@@ -575,7 +687,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
}
temp.MsgContent = template.Template
} else {
- temp.MsgContent, err = GetDefaultTemplate(utils.Int2Str(mt.AppID), mt.AppPoiCode, VendorIDMT)
+ temp.MsgContent, err = GetDefaultTemplate(utils.Int2Str(mt.AppID), mt.AppPoiCode, model.VendorIDMTWM)
if err != nil {
temp.MsgContent = AutoReplyByAppID[mt.AppID]
}
@@ -605,10 +717,8 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
errList.AddErr(fmt.Errorf("自动回复:记录自动回复状态错误:%v", err))
}
}
- }
-
- if req.SendType == SendTypeElm {
- vendorID = VendorIDELM
+ case SendTypeElm:
+ vendorID = model.VendorIDEBAI
elm := req.MsgContent.(ebaiapi.ImMessageSend)
key = elmAppID + ":" + elm.PayLoad.SenderID + ":autoReply"
@@ -619,7 +729,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
keyDetailElm := UserRelInfo{
AppID: elmAppID,
VendorStoreID: elm.PlatformShopID,
- VendorID: VendorIDELMStr,
+ VendorID: utils.Int2Str(model.VendorIDEBAI),
UserID: elm.PayLoad.GroupID,
}
//1 检测是否已自动回复
@@ -648,7 +758,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
if template := GetCustomTemplate(elmAppID, elm.PlatformShopID); len(template.Template) > 0 {
temp = template.Template
} else {
- temp, err = GetDefaultTemplate(elmAppID, elm.PlatformShopID, VendorIDELM)
+ temp, err = GetDefaultTemplate(elmAppID, elm.PlatformShopID, model.VendorIDEBAI)
if err != nil {
temp = LastTemplate
}
@@ -682,6 +792,98 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
errList.AddErr(fmt.Errorf("自动回复:记录自动回复状态错误:%v", err))
}
}
+ case SendTypeJd:
+ //vendorID = model.VendorIDJD
+ //jd := req.MsgContent.(*jdapi.ChatRisMsgCallback)
+ ////跳过12小时内商家消息自动回复
+ //if elmAppID != jdapi.ImCallbackUserMsg {
+ // return nil
+ //}
+ //var userMsg *jdapi.UserChatMsg
+ //if err = utils.UnmarshalUseNumber([]byte(jd.ExtendJsonData), &userMsg); err != nil {
+ // return err
+ //}
+ //
+ //key = jd.VenderId + ":" + userMsg.From.Pin + ":autoReply"
+ //keyDetailMt := UserRelInfo{
+ // AppID: jd.VenderId,
+ // VendorStoreID: jd.StationId,
+ // VendorID: utils.Int2Str(model.VendorIDJD),
+ // UserID: userMsg.From.Pin,
+ //}
+ ////1 检测是否已自动回复
+ //flag = GetIfReply(key, keyDetailMt)
+ ////判断flag状态
+ //if !flag {
+ // apply = &AutoReply{
+ // UserID: 1,
+ // MsgID: 1,
+ // IsApply: true,
+ // Timestamp: int(userMsg.Timestamp),
+ // }
+ // //jdapi.ContextMsg{}
+ // temp := ""
+ // //获取自定义回复模板
+ // if template := GetCustomTemplate(jd.VenderId, jd.StationId); len(template.Template) > 0 {
+ // temp = template.Template
+ // } else {
+ // temp, err = GetDefaultTemplate(jd.VenderId, jd.StationId, model.VendorIDJD)
+ // if err != nil {
+ // temp = LastTemplate
+ // }
+ // }
+ //
+ // uuid := utils.GetUUID()
+ // autoReplayParam := &jdapi.ContextMsg{
+ // Id: uuid,
+ // Lang: "zh_CN",
+ // Type: "chat_message",
+ // From: jdapi.ContextFrom{
+ // Pin: userMsg.From.Pin,
+ // App: "im.waiter",
+ // ClientType: "gw",
+ // },
+ // To: jdapi.ContextTo{
+ // Pin: userMsg.To.Pin,
+ // App: "im.customer",
+ // },
+ // Body: jdapi.ContextBody{
+ // Type: "text",
+ // Content: temp,
+ // Chatinfo: jdapi.ContextBodyChatInfo{
+ // VenderId: jd.VenderId,
+ // AskAllocateType: "multiChat",
+ // Sid: userMsg.Body.(map[string]interface{})["chatinfo"].(map[string]interface{})["sid"].(string),
+ // Source: fmt.Sprintf("dd_msg_?_%s"?, uuid),
+ // },
+ // Template: struct {
+ // Source string `json:"source"`
+ // }{
+ // Source: fmt.Sprintf("dd_msg_?_%s"?, uuid),
+ // },
+ // Mt: 60,
+ // },
+ // Timestamp: time.Now().UnixNano(),
+ // ClientTime: time.Now().UnixNano(),
+ // }
+ // if err = partner.CurAPIManager.GetAPI(model.VendorIDJD, jd.VenderId).(*jdapi.API).MessagePushService(autoReplayParam); err != nil {
+ // apply.IsApply = false
+ // globals.SugarLogger.Debugf("CheckAndReply jd send err:%v", err)
+ // } else {
+ // jxMsg = &JXMsg{
+ // SendType: SendTypeJx,
+ // MsgContent: temp,
+ // }
+ // // 存储详细聊天记录
+ // if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil {
+ // errList.AddErr(fmt.Errorf("自动回复:存储详细聊天记录错误:%v", err))
+ // }
+ // }
+ // //3 记录自动回复状态
+ // if err = RecordAutoStatus(key, apply); err != nil {
+ // errList.AddErr(fmt.Errorf("自动回复:记录自动回复状态错误:%v", err))
+ // }
+ //}
}
if errList.GetErrListAsOne() != nil {
@@ -881,12 +1083,12 @@ func GetIfReply(key string, keyDetail UserRelInfo) (flag bool) {
return false
}
switch keyDetail.VendorID {
- case VendorIDMTStr:
+ case utils.Int2Str(model.VendorIDMTWM):
mt := lastMsg.MsgContent.(map[string]interface{})
if mt["msg_source"].(float64) == mtwmapi.MsgSourceStore {
return true
}
- case VendorIDELMStr:
+ case utils.Int2Str(model.VendorIDEBAI):
elm := lastMsg.MsgContent.(map[string]interface{})
s := ""
if elm["payLoad"].(map[string]interface{})["senderId"] != nil {
@@ -895,6 +1097,12 @@ func GetIfReply(key string, keyDetail UserRelInfo) (flag bool) {
if s == "" || s[:2] == ebaiapi.SenderTypeBusiness || s[:2] == ebaiapi.SenderTypeChainedAccountLogin || s[:2] == ebaiapi.SenderTypeSystem {
return true
}
+ case utils.Int2Str(model.VendorIDJD):
+ mt := lastMsg.MsgContent.(map[string]interface{})
+ if mt["source"].(string) != "" {
+ return true
+ }
+
}
}
@@ -993,11 +1201,6 @@ func GetDefaultTemplate(appID, vendorStoreID string, vendorID int) (string, erro
if err != nil {
return "", err
}
-
- //if err != nil && err == orm.ErrNoRows {
- // t = BasePhoneNum
- //}
-
if len(store.Tel1) > 0 {
t = store.Tel1
}
@@ -1005,17 +1208,18 @@ func GetDefaultTemplate(appID, vendorStoreID string, vendorID int) (string, erro
phoneNum = t[:3] + "-" + t[3:7] + "-" + t[7:]
temp := BaseTemplate + phoneNum
- if vendorID == VendorIDMT {
+ switch vendorID {
+ case model.VendorIDMTWM:
data, err := EncryptIm(utils.Str2Int(appID), temp)
if err != nil {
return "", err
}
return data, nil
- }
- if vendorID == VendorIDELM {
+ case model.VendorIDEBAI:
+ return temp, nil
+ case model.VendorIDJD:
return temp, nil
}
-
return "", nil
}
diff --git a/business/partner/im/im_model.go b/business/partner/im/im_model.go
index a4c3336af..0249a4c09 100644
--- a/business/partner/im/im_model.go
+++ b/business/partner/im/im_model.go
@@ -47,6 +47,7 @@ type UserMessageList struct {
NewMessageNum int `json:"NewMessageNum"` //新消息数量
LatestMsg string `json:"latestMsg"` //最新一条消息
LatestTime int `json:"latestTime"` //最新一条消息发送时间
+ MsgFrom string `json:"msgFrom"` // 京东消息来源
}
type RelInfo struct {
@@ -67,17 +68,12 @@ type StoreTemplate struct {
}
var (
- rdb = api.Cacher
- VendorIDMT = 1 //im美团
- VendorIDELM = 3 //im饿了么
- VendorIDJX = 3 //im京西
-
- VendorIDMTStr = "1" //im美团
- VendorIDELMStr = "3" //im饿了么
+ rdb = api.Cacher
SendTypeJx = "jx" //京西客户端发送方标识
SendTypeMt = "mt" //美团用户发送方标识符
SendTypeElm = "elm" //饿了么用户发送方标识符
+ SendTypeJd = "jd" //京东用户发送方标识符
OpTypeAdd = 1 //门店新增或修改自定义回复模板
OpTypeGet = 2 //门店获取
BaseCusKey = "customReply"
diff --git a/business/partner/printer/feie/feie.go b/business/partner/printer/feie/feie.go
index 289e11b73..b7891fe6f 100644
--- a/business/partner/printer/feie/feie.go
+++ b/business/partner/printer/feie/feie.go
@@ -37,7 +37,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
orderParams := []interface{}{}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
}
orderFmt := ``
if storeDetail != nil {
@@ -155,7 +155,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s
\n", jxutils.GetEbaiOrderGetCode(order))
}
orderParams := []interface{}{}
orderFmt := ``
diff --git a/business/partner/printer/trendit/trendit.go b/business/partner/printer/trendit/trendit.go
index d6c4ea5b2..86f137091 100644
--- a/business/partner/printer/trendit/trendit.go
+++ b/business/partner/printer/trendit/trendit.go
@@ -179,7 +179,7 @@ func (c *PrinterHandler) getOrderContentV2(order *model.GoodsOrder, storeTel str
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -249,7 +249,7 @@ func (c *PrinterHandler) getOrderContentBigV2(order *model.GoodsOrder, storeTel
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -321,7 +321,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -394,7 +394,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
order.BuyerComment = ""
if order.BuyerComment == "" {
diff --git a/business/partner/printer/xiaowm/xiaowm.go b/business/partner/printer/xiaowm/xiaowm.go
index 5390d0137..ab4b0eb99 100644
--- a/business/partner/printer/xiaowm/xiaowm.go
+++ b/business/partner/printer/xiaowm/xiaowm.go
@@ -37,7 +37,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s**\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s**\n", jxutils.GetEbaiOrderGetCode(order))
}
buyerComment := order.BuyerComment
if buyerComment == "" {
@@ -134,7 +134,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s**\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s**\n", jxutils.GetEbaiOrderGetCode(order))
}
buyerComment := order.BuyerComment
if buyerComment == "" {
@@ -217,7 +217,7 @@ func (c *PrinterHandler) getOrderContent2(order *model.GoodsOrder, storeTel stri
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("|7饿百取货码:%s\n\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("|7淘宝闪购取货码:%s\n\n", jxutils.GetEbaiOrderGetCode(order))
}
buyerComment := order.BuyerComment
if buyerComment == "" {
diff --git a/business/partner/printer/xpyun/xpyun.go b/business/partner/printer/xpyun/xpyun.go
index a86bbeaf3..3fd9c73bb 100644
--- a/business/partner/printer/xpyun/xpyun.go
+++ b/business/partner/printer/xpyun/xpyun.go
@@ -176,7 +176,7 @@ func (c *PrinterHandler) getOrderContentV2(order *model.GoodsOrder, storeTel str
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -244,7 +244,7 @@ func (c *PrinterHandler) getOrderContentBigV2(order *model.GoodsOrder, storeTel
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -314,7 +314,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
@@ -399,7 +399,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s", jxutils.GetEbaiOrderGetCode(order))
}
if order.BuyerComment == "" {
order.BuyerComment = "客户电话: " + order.ConsigneeMobile + ",配送遇到问题,可联系18048531223取消配送单,禁止未配送直接完成订单!"
diff --git a/business/partner/printer/yilianyun/yilianyun.go b/business/partner/printer/yilianyun/yilianyun.go
index 031a1dcd5..dd9febbce 100644
--- a/business/partner/printer/yilianyun/yilianyun.go
+++ b/business/partner/printer/yilianyun/yilianyun.go
@@ -35,7 +35,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s\\n\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s\\n\n", jxutils.GetEbaiOrderGetCode(order))
}
orderParams := []interface{}{}
orderFmt := ``
@@ -147,7 +147,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s\\n\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s\\n\n", jxutils.GetEbaiOrderGetCode(order))
}
orderParams := []interface{}{}
orderFmt := ``
diff --git a/business/partner/printer/zhongwu/zhongwu.go b/business/partner/printer/zhongwu/zhongwu.go
index 688bf6b0b..d8bb385cb 100644
--- a/business/partner/printer/zhongwu/zhongwu.go
+++ b/business/partner/printer/zhongwu/zhongwu.go
@@ -36,7 +36,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s\n", jxutils.GetEbaiOrderGetCode(order))
}
var orderParams []interface{}
orderFmt := ``
@@ -121,7 +121,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
}
getCode := ""
if order.VendorID == model.VendorIDEBAI {
- getCode = fmt.Sprintf("饿百取货码:%s\n", jxutils.GetEbaiOrderGetCode(order))
+ getCode = fmt.Sprintf("淘宝闪购取货码:%s\n", jxutils.GetEbaiOrderGetCode(order))
}
orderParams := []interface{}{}
orderFmt := ``
diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go
index 8d54443e9..8978b129c 100644
--- a/business/partner/purchase/jx/localjx/tonglianpay.go
+++ b/business/partner/purchase/jx/localjx/tonglianpay.go
@@ -3,6 +3,7 @@ package localjx
import (
"encoding/json"
"fmt"
+ "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
"git.rosy.net.cn/jx-callback/business/partner"
"strings"
"time"
@@ -135,6 +136,24 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
dao.UpdateEntity(db, orderPay)
if call.TrxStatus == tonglianpayapi.TrxStatusSuccess {
err = OnPayFinished(orderPay)
+ order, _ := partner.CurOrderManager.LoadOrder(orderPay.VendorOrderID, model.VendorIDJX)
+ if order != nil {
+ store, _ := dao.GetStoreDetail(db, order.FromStoreID, model.VendorIDJX, "")
+ if store != nil {
+ userID := make([]string, 0, 2)
+ for _, v := range []string{store.MarketManPhone, store.OperatorPhone2} {
+ if v == "" {
+ continue
+ }
+ user, _ := dao.GetUserByID(db, "mobile", v)
+ userID = append(userID, user.UserID)
+ if store.MarketManPhone == store.OperatorPhone2 {
+ break
+ }
+ }
+ weixinmsg.SendUserMessage(jxcontext.AdminCtx, "商户购买物料信息推送", fmt.Sprintf("门店%s:%d,在物料商城下单了:%s,请注意查看", store.Name, store.ID, order.VendorOrderID), userID, true, true)
+ }
+ }
}
} else {
globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err)
diff --git a/controllers/jd_callback.go b/controllers/jd_callback.go
index 61819ee9e..9ec99574a 100644
--- a/controllers/jd_callback.go
+++ b/controllers/jd_callback.go
@@ -3,6 +3,8 @@ package controllers
import (
"bytes"
"fmt"
+ "git.rosy.net.cn/jx-callback/business/model"
+ "git.rosy.net.cn/jx-callback/business/partner/im"
"io/ioutil"
"net/http"
@@ -244,6 +246,38 @@ func (c *DjswController) ApplyOrderInvoiceStatus() {
}
}
+func (c *DjswController) imMsg() {
+ if c.Ctx.Input.Method() == http.MethodPost {
+ var callbackResponse *jdapi.CallbackResponse
+
+ msg, url, err := jdapi.ImChatRiskMsg(getUsefulRequest(c.Ctx))
+ if err != nil {
+ callbackResponse = jdapi.Err2CallbackResponse(err, "")
+ } else {
+ callbackResponse = jdapi.Err2CallbackResponse(im.ReadMsgFromVendor(model.VendorIDJD, url, msg), "")
+ }
+ c.Data["json"] = c.transferResponse("orderStatus", callbackResponse)
+ c.ServeJSON()
+ } else {
+ c.Abort("404")
+ }
+}
+
+// ChatRiskMsg 风控消息推送
+func (c *DjswController) ChatRiskMsg() {
+ c.imMsg()
+}
+
+// MsChatMessageMsg 用户消息
+func (c *DjswController) MsChatMessageMsg() {
+ c.imMsg()
+}
+
+// MsgReadAckMsg 消息已读
+func (c *DjswController) MsgReadAckMsg() {
+ c.imMsg()
+}
+
//免费开卡接不到回调
//func (c *DjswController) MemberCreateCard() {
// if c.Ctx.Input.Method() == http.MethodPost {