1
This commit is contained in:
@@ -32,56 +32,24 @@ func SendVendorV2(data SendData, vendorOrgCode string) (err error) {
|
||||
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
|
||||
}
|
||||
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)
|
||||
if err = json.Unmarshal(str, ¶m); err == nil {
|
||||
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)
|
||||
|
||||
str, _ := json.Marshal(data.Data)
|
||||
param := &jdapi.ContextMsg{}
|
||||
if err = json.Unmarshal(str, ¶m); err == nil {
|
||||
err = partner.CurAPIManager.GetAPI(model.VendorIDJD, vendorOrgCode).(*jdapi.API).MessagePushService(param)
|
||||
}
|
||||
}
|
||||
|
||||
err = ReadMsgFromClient(data.VendorID, vendorOrgCode, data.Data)
|
||||
err = ReadMsgFromClient(data.VendorID, vendorOrgCode, data.Data, data.StoreId)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("SendVendorV2:%v", err)
|
||||
}
|
||||
@@ -172,6 +140,7 @@ func SetPoiIMStatus(param []SetPoiIMStatusReq) error {
|
||||
}
|
||||
case model.VendorIDJD:
|
||||
api := partner.CurAPIManager.GetAPI(model.VendorIDJD, v.VendorOrgCode).(*jdapi.API)
|
||||
api.ImStatusModify(fmt.Sprintf("%s+%s", v.VendorStoreID, v.VendorOrgCode), 0, true)
|
||||
// 0:忙碌;1:在线
|
||||
err := api.ImWaiterStatusModify(1, v.VendorStoreID, v.ImStatus)
|
||||
errList.AddErr(fmt.Errorf("jd:%v", err))
|
||||
@@ -181,7 +150,7 @@ func SetPoiIMStatus(param []SetPoiIMStatusReq) error {
|
||||
}
|
||||
|
||||
// ReadMsgFromClient 存储客户端发送的消息
|
||||
func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
|
||||
func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}, storeId int) error {
|
||||
var (
|
||||
err error
|
||||
elmTime int
|
||||
@@ -231,17 +200,61 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
|
||||
}
|
||||
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()),
|
||||
if err = json.Unmarshal(data, &jdData); err == nil {
|
||||
store, err := dao.GetStoreDetail(dao.GetDB(), storeId, model.VendorIDJD, elmAppID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
shopInfo := &jdapi.JdParamJsonObj{
|
||||
StatusId: utils.Int2Str(storeId), // 京西门店ID
|
||||
BillId: elmAppID, // vendorOrgCode
|
||||
ExtendJsonData: "",
|
||||
StoreId: store.VendorStoreID, // 平台门店ID
|
||||
Timestamp: utils.Time2Str(time.Now()),
|
||||
}
|
||||
extendJsonData := &jdapi.UserChatMsg{
|
||||
Id: jdData.Id,
|
||||
Lang: jdData.Lang,
|
||||
Type: jdData.Type,
|
||||
From: struct {
|
||||
Pin string `json:"pin"`
|
||||
App string `json:"app"`
|
||||
ClientType string `json:"clientType"`
|
||||
}{
|
||||
Pin: jdData.From.Pin,
|
||||
App: jdData.From.App,
|
||||
ClientType: jdData.From.ClientType,
|
||||
},
|
||||
To: struct {
|
||||
Pin string `json:"pin"`
|
||||
App string `json:"app"`
|
||||
ClientType string `json:"clientType"`
|
||||
}{
|
||||
Pin: jdData.To.Pin,
|
||||
App: jdData.To.App,
|
||||
ClientType: "",
|
||||
},
|
||||
Body: jdapi.UserChatMsgBody{
|
||||
Content: jdData.Body.Content,
|
||||
Type: jdData.Body.Type,
|
||||
},
|
||||
Timestamp: jdData.Timestamp,
|
||||
ClientTime: jdData.ClientTime,
|
||||
}
|
||||
shopInfo.ExtendJsonData = string(utils.MustMarshal(extendJsonData))
|
||||
|
||||
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 存储展示列表时单条数据
|
||||
@@ -258,7 +271,7 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReadMsgFromVendor 读取数据并存储到redis
|
||||
// ReadMsgFromVendor 读取数据并存储到redis 回调
|
||||
func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
|
||||
var (
|
||||
err error
|
||||
@@ -315,7 +328,6 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
|
||||
if err = utils.UnmarshalUseNumber(msg, &risMsg); err != nil {
|
||||
return err
|
||||
}
|
||||
globals.SugarLogger.Debugf("-----rismsg := %s", utils.Format4Output(risMsg, false))
|
||||
storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), risMsg.StoreId, model.VendorIDJD, "")
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -332,24 +344,24 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
|
||||
return err
|
||||
}
|
||||
userList = &UserMessageList{
|
||||
VendorID: model.VendorIDJD,
|
||||
LatestMsg: risMsg.ExtendJsonData,
|
||||
MsgFrom: elmAppID,
|
||||
VendorID: model.VendorIDJD,
|
||||
MsgFrom: elmAppID,
|
||||
}
|
||||
switch elmAppID {
|
||||
case jdapi.ImCallbackRisMsg:
|
||||
userList.UserID = systemMsg.From.Pin
|
||||
userList.LatestTime = int(systemMsg.Timestamp)
|
||||
userList.LatestMsg = "暂无"
|
||||
case jdapi.ImCallbackUserMsg:
|
||||
userList.UserID = userMsg.From.Pin
|
||||
userList.LatestTime = int(userMsg.Timestamp)
|
||||
userList.LatestMsg = userMsg.Body.Content
|
||||
case jdapi.ImCallbackReadMsg:
|
||||
userList.UserID = readMsg.From.Pin
|
||||
userList.LatestTime = int(userMsg.Timestamp)
|
||||
userList.LatestMsg = "暂无"
|
||||
}
|
||||
vendorStoreID = risMsg.StoreId
|
||||
|
||||
return fmt.Errorf("咱暂不存储")
|
||||
}
|
||||
|
||||
//1 存储详细聊天记录list
|
||||
@@ -802,6 +814,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
|
||||
}
|
||||
}
|
||||
case SendTypeJd:
|
||||
// 京东暂时有自动回复功能
|
||||
//vendorID = model.VendorIDJD
|
||||
//jd := req.MsgContent.(*jdapi.ChatRisMsgCallback)
|
||||
////跳过12小时内商家消息自动回复
|
||||
|
||||
@@ -29,8 +29,9 @@ var AppSecretByAppID = map[int]string{
|
||||
|
||||
// SendData 客户端写入参数
|
||||
type SendData struct {
|
||||
VendorID int `json:"vendorID"` //消息来源平台ID 1-美团 3-饿了么
|
||||
Data interface{} `json:"data"` //发送给平台 美团/饿了么消息结构体
|
||||
VendorID int `json:"vendorID"` // 消息来源平台ID 1-美团 3-饿了么
|
||||
StoreId int `json:"storeId"` // 门店ID
|
||||
Data interface{} `json:"data"` // 发送给平台 美团/饿了么消息结构体
|
||||
}
|
||||
|
||||
// JXMsg 京西消息结构体
|
||||
|
||||
@@ -1370,32 +1370,32 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
||||
DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled,
|
||||
}
|
||||
dao.CreateEntity(db, waybill)
|
||||
} else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg
|
||||
outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
||||
//以下为仿照CreateOrder,改了一些参数
|
||||
for k, v := range outOrders {
|
||||
v.OrderType = model.OrderTypeMatter
|
||||
v.FromStoreID = order.FromStoreID
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//分包后的子订单ID默认是原订单ID后面加两位(目前的规则),要改的话要注意取消订单那的判断
|
||||
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1)
|
||||
checkMatterDeliveryAddress(deliveryAddress)
|
||||
order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false, nil)
|
||||
if err = err2; err == nil {
|
||||
order2.FromStoreID = v.FromStoreID
|
||||
order2.AddressID = order.AddressID
|
||||
order2.Status = model.OrderStatusDelivering
|
||||
err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2))
|
||||
orderSolutionForWuLiao(order2)
|
||||
}
|
||||
}
|
||||
//刷新一下库存
|
||||
for _, v := range goods[0].Skus {
|
||||
cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
|
||||
}
|
||||
} else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg ,收到发单,不需要分包裹了
|
||||
//outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
||||
////以下为仿照CreateOrder,改了一些参数
|
||||
//for k, v := range outOrders {
|
||||
// v.OrderType = model.OrderTypeMatter
|
||||
// v.FromStoreID = order.FromStoreID
|
||||
// outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false, nil)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// //分包后的子订单ID默认是原订单ID后面加两位(目前的规则),要改的话要注意取消订单那的判断
|
||||
// outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1)
|
||||
// checkMatterDeliveryAddress(deliveryAddress)
|
||||
// order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false, nil)
|
||||
// if err = err2; err == nil {
|
||||
// order2.FromStoreID = v.FromStoreID
|
||||
// order2.AddressID = order.AddressID
|
||||
// order2.Status = model.OrderStatusDelivering
|
||||
// err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2))
|
||||
// orderSolutionForWuLiao(order2)
|
||||
// }
|
||||
//}
|
||||
////刷新一下库存
|
||||
//for _, v := range goods[0].Skus {
|
||||
// cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
|
||||
//}
|
||||
}
|
||||
for _, v := range order.Skus {
|
||||
if bagSkuMap[v.SkuID] != 0 {
|
||||
|
||||
@@ -3,7 +3,8 @@ package localjx
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -140,18 +141,19 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
|
||||
if order != nil {
|
||||
store, _ := dao.GetStoreDetail(db, order.FromStoreID, model.VendorIDJX, "")
|
||||
if store != nil {
|
||||
userID := make([]string, 0, 2)
|
||||
//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
|
||||
}
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "商户购买物料信息推送", fmt.Sprintf("门店%s:%d,在物料商城下单了:%s,请注意查看", store.Name, store.ID, order.VendorOrderID))
|
||||
//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)
|
||||
//weixinmsg.SendUserMessage(jxcontext.AdminCtx, "商户购买物料信息推送", fmt.Sprintf("门店%s:%d,在物料商城下单了:%s,请注意查看", store.Name, store.ID, order.VendorOrderID), userID, true, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
saleStart = "0" + saleStart
|
||||
}
|
||||
if len(saleEnd) != 4 {
|
||||
saleEnd += "0" + saleEnd
|
||||
saleEnd = "0" + saleEnd
|
||||
}
|
||||
if len(saleEnd) == 4 && len(saleStart) == 4 {
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user