Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -4,7 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/im"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/im"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,379 +0,0 @@
|
||||
package im
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
push "git.rosy.net.cn/jx-callback/business/jxutils/unipush"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
func SendVendorV2(data SendData) (err error) {
|
||||
if data.VendorID == model.VendorIDMTWM {
|
||||
dataStr, _ := json.Marshal(data.Data)
|
||||
temp := string(dataStr)
|
||||
globals.SugarLogger.Debugf("SendVendorV2 temp=%s", temp)
|
||||
if _, err = api.MtwmAPI.MsgSend(string(dataStr)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
//if data.VendorID == model.VendorIDEBAI { //todo 后续添加
|
||||
// err = nil
|
||||
//}
|
||||
err = ReadMsgFromClient(data.VendorID, "", data.Data)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("SendVendorV2:%v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReadMsgFromClient 存储客户端发送的消息
|
||||
func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error {
|
||||
var (
|
||||
err error
|
||||
jxMsg = &JXMsg{}
|
||||
errList errlist.ErrList
|
||||
userList = &UserMessageList{}
|
||||
)
|
||||
|
||||
data, err := json.Marshal(msg)
|
||||
if err != nil {
|
||||
errList.AddErr(fmt.Errorf("json处理数据错误:%v", err))
|
||||
}
|
||||
|
||||
if vendorID == VendorIDMT {
|
||||
var pushContent = mtwmapi.PushContentReq{}
|
||||
err = json.Unmarshal(data, &pushContent)
|
||||
jxMsg = &JXMsg{
|
||||
SendType: SendTypeJx,
|
||||
MsgContent: pushContent,
|
||||
}
|
||||
userList = &UserMessageList{
|
||||
VendorID: VendorIDMT,
|
||||
UserID: utils.Int2Str(pushContent.OpenUserID),
|
||||
LatestMsg: pushContent.MsgContent,
|
||||
LatestTime: pushContent.Cts,
|
||||
}
|
||||
}
|
||||
if vendorID == VendorIDELM {
|
||||
var ElmData = ebaiapi.ImMessageSend{}
|
||||
err = json.Unmarshal(data, &ElmData)
|
||||
jxMsg = &JXMsg{
|
||||
SendType: SendTypeJx,
|
||||
MsgContent: ElmData,
|
||||
}
|
||||
userList = &UserMessageList{
|
||||
VendorID: VendorIDELM,
|
||||
UserID: ElmData.PayLoad.GroupID,
|
||||
LatestMsg: ElmData.PayLoad.Content,
|
||||
LatestTime: int(ElmData.PayLoad.CreateTime),
|
||||
}
|
||||
}
|
||||
|
||||
//1 存储详细聊天记录list
|
||||
if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err))
|
||||
}
|
||||
//2 存储展示列表时单条数据
|
||||
if err = SetUserList(jxMsg, userList, vendorID, elmAppID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err))
|
||||
}
|
||||
if errList.GetErrListAsOne() != nil {
|
||||
return fmt.Errorf("ReadMsgFromClient:%v", errList.GetErrListAsOne())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReadMsgFromVendor 读取数据并存储到redis
|
||||
func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
|
||||
var (
|
||||
err error
|
||||
jxMsg = &JXMsg{}
|
||||
vendorStoreID string
|
||||
errList errlist.ErrList
|
||||
userList = &UserMessageList{}
|
||||
)
|
||||
if len(string(msg)) == 0 {
|
||||
errList.AddErr(fmt.Errorf("读取平台数据为空,请检查"))
|
||||
}
|
||||
if vendorID == VendorIDMT {
|
||||
var PushContentReq = mtwmapi.PushContentReq{}
|
||||
err = json.Unmarshal(msg, &PushContentReq)
|
||||
if FilterIm(PushContentReq.AppID, PushContentReq.MsgContent) { //自动回复消息过滤
|
||||
return nil
|
||||
}
|
||||
jxMsg = &JXMsg{
|
||||
SendType: SendTypeMt,
|
||||
MsgContent: PushContentReq,
|
||||
}
|
||||
userList = &UserMessageList{
|
||||
VendorID: VendorIDMT,
|
||||
UserID: utils.Int2Str(PushContentReq.OpenUserID),
|
||||
LatestMsg: PushContentReq.MsgContent,
|
||||
LatestTime: PushContentReq.Cts,
|
||||
}
|
||||
vendorStoreID = PushContentReq.AppPoiCode
|
||||
}
|
||||
if vendorID == VendorIDELM {
|
||||
var ElmData = ebaiapi.ImMessageSend{}
|
||||
err = json.Unmarshal(msg, &ElmData)
|
||||
jxMsg = &JXMsg{
|
||||
SendType: SendTypeElm,
|
||||
MsgContent: ElmData,
|
||||
}
|
||||
userList = &UserMessageList{
|
||||
VendorID: VendorIDELM,
|
||||
UserID: ElmData.PayLoad.GroupID,
|
||||
LatestMsg: ElmData.PayLoad.Content,
|
||||
LatestTime: int(ElmData.PayLoad.CreateTime),
|
||||
}
|
||||
}
|
||||
|
||||
//1 存储详细聊天记录list
|
||||
if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err))
|
||||
}
|
||||
//2 存储展示列表时单条数据
|
||||
if err = SetUserList(jxMsg, userList, vendorID, elmAppID); err != nil {
|
||||
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))
|
||||
}
|
||||
|
||||
if errList.GetErrListAsOne() != nil {
|
||||
return fmt.Errorf("ReadMsgFromVendor:%v", errList.GetErrListAsOne())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// PushMsgByCid 通过cid push用户
|
||||
func PushMsgByCid(vendorStoreID string, vendorID int, msg string) error {
|
||||
if err := push.NotifyImNewMessage(vendorStoreID, vendorID, msg); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetMessageDetail 赋值
|
||||
//格式 AppID:AppPoiCode:1:OpenUserID
|
||||
func SetMessageDetail(req *JXMsg, vendorID int, elmAppID string) error {
|
||||
//生成京西消息ID detail
|
||||
msgID := GenMsgDetailID(req, vendorID, elmAppID)
|
||||
data, _ := json.Marshal(req)
|
||||
globals.SugarLogger.Debugf("SetMessageDetail data=%s", string(data))
|
||||
err := rdb.RPush(msgID, string(data))
|
||||
ok, err := rdb.ExpireResult(msgID, ExpireTimeDay)
|
||||
if err != nil || !ok {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetUserList 赋值
|
||||
//AppPoiCode:10 [userid1:{SingleChat},userid2:{}]
|
||||
func SetUserList(jxMsg *JXMsg, userList *UserMessageList, vendorID int, elmAppID string) error {
|
||||
//生成msgID
|
||||
msgID := GenMsgListID(jxMsg, vendorID, elmAppID)
|
||||
|
||||
//获取未读消息条数并删除旧数据
|
||||
cnt, err := GetNewAndTrim(msgID, userList.UserID)
|
||||
if cnt > 0 {
|
||||
userList.NewMessageNum = cnt
|
||||
} else {
|
||||
userList.NewMessageNum = 1
|
||||
}
|
||||
//存储当前数据
|
||||
data, _ := json.Marshal(userList)
|
||||
globals.SugarLogger.Debugf("SetUserList data=%s", string(data))
|
||||
err = rdb.RPush(msgID, string(data))
|
||||
ok, err := rdb.ExpireResult(msgID, ExpireTimeDay)
|
||||
if err != nil || !ok {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetNewAndTrim 获取未读条数并清除旧数据
|
||||
func GetNewAndTrim(key string, flag string) (cnt int, err error) {
|
||||
cnt = 0
|
||||
if n, err := rdb.Exists(key); n > 0 && err == nil {
|
||||
s2 := rdb.LRange(key)
|
||||
for i := 0; i < len(s2); i++ {
|
||||
v := UserMessageList{}
|
||||
_ = json.Unmarshal([]byte(s2[i]), &v)
|
||||
if v.UserID == flag {
|
||||
err = rdb.LSet(key, i, "del")
|
||||
err = rdb.LRem(key, 0, "del")
|
||||
s2 = append(s2[:i], s2[i+1:]...)
|
||||
i--
|
||||
if v.NewMessageNum == 0 { //目前为首条
|
||||
cnt++ //赋值1
|
||||
} else {
|
||||
cnt = v.NewMessageNum
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return 0, nil
|
||||
}
|
||||
return cnt, err
|
||||
}
|
||||
|
||||
// GenMsgDetailID 生成查询详细聊天记录ID
|
||||
func GenMsgDetailID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string) {
|
||||
if vendorID == VendorIDMT {
|
||||
var d1 = jxMsg.MsgContent.(mtwmapi.PushContentReq)
|
||||
msgID = utils.Int2Str(d1.AppID) + ":" + d1.AppPoiCode + ":1:" + utils.Int2Str(d1.OpenUserID)
|
||||
}
|
||||
if vendorID == VendorIDELM {
|
||||
var d2 = jxMsg.MsgContent.(ebaiapi.ImMessageSend)
|
||||
msgID = elmAppID + ":" + d2.PlatformShopID + ":3:" + d2.PayLoad.GroupID
|
||||
}
|
||||
return msgID
|
||||
}
|
||||
|
||||
// GenMsgListID 生成展示列表时单条数据ID(部分)
|
||||
func GenMsgListID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string) {
|
||||
if vendorID == VendorIDMT {
|
||||
var d1 = jxMsg.MsgContent.(mtwmapi.PushContentReq)
|
||||
msgID = utils.Int2Str(d1.AppID) + ":" + d1.AppPoiCode + ":1"
|
||||
}
|
||||
if vendorID == VendorIDELM {
|
||||
var d2 = jxMsg.MsgContent.(ebaiapi.ImMessageSend)
|
||||
msgID = elmAppID + ":" + d2.PlatformShopID + ":3"
|
||||
}
|
||||
return msgID
|
||||
}
|
||||
|
||||
// GetImUserList 获取门店用户聊天列表
|
||||
func GetImUserList(req []RelInfo) (map[string][]interface{}, error) {
|
||||
retVal := make(map[string][]interface{}, 0)
|
||||
if len(req) == 0 {
|
||||
return nil, errors.New("msgID不允许为空")
|
||||
}
|
||||
var keys []string
|
||||
for _, i := range req {
|
||||
key := i.AppID + ":" + i.VendorStoreID + ":" + i.VendorID
|
||||
keys = append(keys, key)
|
||||
}
|
||||
for _, j := range keys {
|
||||
temp := rdb.LRange(j)
|
||||
for _, v := range temp {
|
||||
retVal[j] = append(retVal[j], v)
|
||||
//暂时写死
|
||||
//retVal["userList"] = append(retVal["userList"], v)
|
||||
}
|
||||
}
|
||||
return retVal, nil
|
||||
}
|
||||
|
||||
// GetImChatDetail 获取门店用户聊天详情
|
||||
func GetImChatDetail(req []UserRelInfo) (map[string][]interface{}, error) {
|
||||
retVal := make(map[string][]interface{}, 0)
|
||||
if len(req) == 0 {
|
||||
return nil, errors.New("msgID不允许为空")
|
||||
}
|
||||
var keys []string
|
||||
for _, i := range req {
|
||||
key := i.AppID + ":" + i.VendorStoreID + ":" + i.VendorID + ":" + i.UserID
|
||||
keys = append(keys, key)
|
||||
}
|
||||
for _, j := range keys {
|
||||
temp := rdb.LRange(j)
|
||||
for _, v := range temp {
|
||||
retVal[j] = append(retVal[j], v)
|
||||
//retVal["chatDetail"] = append(retVal["chatDetail"], v)
|
||||
}
|
||||
}
|
||||
return retVal, nil
|
||||
}
|
||||
|
||||
// SetJxMsgRead 设置jx消息已读 userID(美团:openUserID;饿了么:groupID)
|
||||
func SetJxMsgRead(appID, vendorStoreID, vendorID, userID string) error {
|
||||
var (
|
||||
temp = UserMessageList{}
|
||||
key = appID + ":" + vendorStoreID + ":" + vendorID
|
||||
)
|
||||
if n, err := rdb.Exists(key); n > 0 && err == nil {
|
||||
s2 := rdb.LRange(key)
|
||||
for i := 0; i < len(s2); i++ {
|
||||
v := UserMessageList{}
|
||||
_ = json.Unmarshal([]byte(s2[i]), &v)
|
||||
if v.UserID == userID {
|
||||
//删除此条数据
|
||||
err = rdb.LSet(key, i, "del")
|
||||
err = rdb.LRem(key, 0, "del")
|
||||
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)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DelRedisByKey 清除redis数据
|
||||
func DelRedisByKey(keys []string) {
|
||||
var errList errlist.ErrList
|
||||
for _, key := range keys {
|
||||
err := rdb.Del(key)
|
||||
if err != nil {
|
||||
errList.AddErr(err)
|
||||
}
|
||||
}
|
||||
if errList.GetErrListAsOne() != nil {
|
||||
globals.SugarLogger.Debugf("DelRedisByKey err=%v", errList.GetErrListAsOne())
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var rel = map[int]string{
|
||||
589: "a81eb3df418d83d6a1a4b7c572156d2f",
|
||||
5873: "41c479790a76f86326f89e8048964739",
|
||||
4123: "df2c88338b85f830cebce2a9eab56628",
|
||||
}
|
||||
|
||||
// DecryptIm 解密操作
|
||||
func DecryptIm(appID int, msg string) (string, error) {
|
||||
data, _ := base64.StdEncoding.DecodeString(msg)
|
||||
key := utils.LimitUTF8StringLen2(rel[appID], 16)
|
||||
res, err := utils.AESCBCDecpryt(data, []byte(key), []byte(key))
|
||||
if len(string(res)) > 0 && err == nil {
|
||||
return string(res), nil
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
// FilterIm 过滤操作
|
||||
func FilterIm(appID int, msg string) bool {
|
||||
var check = "[自动回复]"
|
||||
data, _ := DecryptIm(appID, msg)
|
||||
if len(data) > 0 && strings.Contains(data, check) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package im
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
// SendData 客户端写入参数
|
||||
type SendData struct {
|
||||
VendorID int `json:"vendorID"` //消息来源平台ID 1-美团 3-饿了么
|
||||
Data interface{} `json:"data"` //发送给平台 美团/饿了么消息结构体
|
||||
}
|
||||
|
||||
// JXMsg 京西消息结构体
|
||||
type JXMsg struct {
|
||||
SendType string `json:"sendType"` //消息发送方 jx-商家;mt-美团;elm-饿了么
|
||||
MsgContent interface{} `json:"msgContent"` //美团/饿了么 单聊消息
|
||||
}
|
||||
|
||||
// UserMessageList 用户消息列表
|
||||
type UserMessageList struct {
|
||||
VendorID int `json:"vendorID"` //平台品牌 1-美团 3-饿了么
|
||||
UserID string `json:"userID"` //用户ID
|
||||
NewMessageNum int `json:"NewMessageNum"` //新消息数量
|
||||
LatestMsg string `json:"latestMsg"` //最新一条消息
|
||||
LatestTime int `json:"latestTime"` //最新一条消息发送时间
|
||||
}
|
||||
|
||||
type RelInfo struct {
|
||||
VendorStoreID string `json:"vendorStoreID"` //平台门店id
|
||||
VendorID string `json:"vendorID"` //平台标识id
|
||||
AppID string `json:"appID"` //应用ID
|
||||
}
|
||||
|
||||
type UserRelInfo struct {
|
||||
VendorStoreID string `json:"vendorStoreID"` //平台门店id
|
||||
VendorID string `json:"vendorID"` //平台标识id
|
||||
AppID string `json:"appID"` //应用ID
|
||||
UserID string `json:"userID"` //用户id/groupID
|
||||
}
|
||||
|
||||
var (
|
||||
rdb = api.Cacher
|
||||
VendorIDMT = 1 //im美团
|
||||
VendorIDELM = 3 //im饿了么
|
||||
SendTypeJx = "jx" //京西客户端发送方标识
|
||||
SendTypeMt = "mt" //美团用户发送方标识符
|
||||
SendTypeElm = "elm" //饿了么用户发送方标识符
|
||||
|
||||
)
|
||||
|
||||
const (
|
||||
ExpireTimeDay = 6 * time.Hour //redis过期时间
|
||||
)
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/im"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/im"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
|
||||
@@ -9,6 +9,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
@@ -396,14 +398,14 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
||||
}
|
||||
})
|
||||
// 美团订单完成时,获取跑腿费用
|
||||
if fee, feeErr := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order); feeErr != nil {
|
||||
bill, err := partner.CurOrderManager.LoadWaybill(order.VendorOrderID, model.VendorIDMTWM)
|
||||
if bill == nil && err == nil {
|
||||
bill.ActualFee = fee
|
||||
bill.DesiredFee = fee
|
||||
dao.UpdateEntity(dao.GetDB(), bill, "ActualFee", "DesiredFee")
|
||||
}
|
||||
}
|
||||
//if fee, feeErr := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order); feeErr != nil {
|
||||
// bill, err := partner.CurOrderManager.LoadWaybill(order.VendorOrderID, model.VendorIDMTWM)
|
||||
// if bill == nil && err == nil {
|
||||
// bill.ActualFee = fee
|
||||
// bill.DesiredFee = fee
|
||||
// dao.UpdateEntity(dao.GetDB(), bill, "ActualFee", "DesiredFee")
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,10 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"math"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
@@ -17,9 +21,6 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"math"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -524,10 +524,16 @@ func SwitchAttr(apiObj *mtwmapi.API, vendorStoreID string, vendorCatID int64, na
|
||||
}
|
||||
if v.AttrID == mtwmapi.SpecialAttrBrand || v.AttrID == mtwmapi.SpecialAttrProducer { //单独获取特殊属性
|
||||
if data, err1 := apiObj.CategoryAttrValueList(utils.Str2Int64(v.AttrID), name); err1 == nil && len(data) > 0 {
|
||||
attrValue.ValueList = []ValueList{{ //默认取推荐第一个
|
||||
ValueID: utils.Str2Int(data[0].ValueID),
|
||||
Value: data[0].Value,
|
||||
}}
|
||||
if len(data) > 0 {
|
||||
attrValue.ValueList = []ValueList{{ //默认取推荐第一个
|
||||
ValueID: utils.Str2Int(data[0].ValueID),
|
||||
Value: data[0].Value,
|
||||
}}
|
||||
} else {
|
||||
attrValue.ValueList = []ValueList{{ //兜底处理
|
||||
Value: "其他",
|
||||
}}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if len(v.ValueList) > 0 {
|
||||
@@ -535,6 +541,10 @@ func SwitchAttr(apiObj *mtwmapi.API, vendorStoreID string, vendorCatID int64, na
|
||||
ValueID: utils.Str2Int(v.ValueList[0].ValueID),
|
||||
Value: v.ValueList[0].Value,
|
||||
}}
|
||||
} else { //兜底处理
|
||||
attrValue.ValueList = []ValueList{{
|
||||
Value: "其他",
|
||||
}}
|
||||
}
|
||||
}
|
||||
attrValues = append(attrValues, attrValue)
|
||||
|
||||
@@ -55,12 +55,12 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal
|
||||
retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp")))
|
||||
}
|
||||
|
||||
order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDMTWM)
|
||||
if err == nil && order != nil {
|
||||
fee, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order)
|
||||
retVal.ActualFee = fee
|
||||
retVal.DesiredFee = fee
|
||||
}
|
||||
//order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDMTWM)
|
||||
//if err == nil && order != nil {
|
||||
// fee, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order)
|
||||
// retVal.ActualFee = fee
|
||||
// retVal.DesiredFee = fee
|
||||
//}
|
||||
|
||||
return retVal
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user