1
This commit is contained in:
@@ -928,12 +928,41 @@ func StoreOpenAll(ctx *jxcontext.Context) {
|
|||||||
// globals.SugarLogger.Debug("StoreOpenAll skuID is Complete")
|
// globals.SugarLogger.Debug("StoreOpenAll skuID is Complete")
|
||||||
//}
|
//}
|
||||||
|
|
||||||
// 对比本地商品和平台商品差异(价格和规格),不同的重新同步
|
// CheckSkuDiffBetweenJxAndVendor2 对比本地商品和平台商品差异(价格和规格),不同的重新同步
|
||||||
func CheckSkuDiffBetweenJxAndVendor2(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
func CheckSkuDiffBetweenJxAndVendor2(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) error {
|
||||||
//db := dao.GetDB()
|
//var (
|
||||||
|
// db = dao.GetDB()
|
||||||
|
// errList = make([]error, 0, 0)
|
||||||
|
//)
|
||||||
//for _, v := range storeIDList {
|
//for _, v := range storeIDList {
|
||||||
// //storeMapList, err := dao.GetStoresMapList(db, vendorIDList, []int{v}, []int{model.StoreStatusOpened, model.StoreStatusHaveRest, model.StoreStatusClosed}, status, model.StoreIsSyncYes, "", "", "")
|
// // 1.判断本地门店是否开启了同步,未开启的跳过
|
||||||
|
// storeMapList, err := dao.GetStoresMapList(db, vendorIDList, []int{v}, []int{model.StoreStatusOpened, model.StoreStatusHaveRest, model.StoreStatusClosed}, model.StoreStatusOpened, model.StoreIsSyncYes, "", "", "")
|
||||||
|
// if err != nil {
|
||||||
|
// errList = append(errList, fmt.Errorf("门店id[%d]查询异常:%v", v, err))
|
||||||
|
// continue
|
||||||
// }
|
// }
|
||||||
|
// if len(storeMapList) == model.NO {
|
||||||
|
// errList = append(errList, fmt.Errorf("门店id[%d],未绑定平台账号或者同步未打开", v))
|
||||||
|
// continue
|
||||||
|
// }
|
||||||
|
// // 2.查询本地商品列表,存储sku_id,vendor_price,weight
|
||||||
|
// skuList, skuErr := dao.GetStoreSkuBindPriceAndWeight(db, v)
|
||||||
|
// if len(skuList) == model.NO || skuErr != nil {
|
||||||
|
// errList = append(errList, fmt.Errorf("门店id[%d],商品为空或错误:%v", v, skuErr))
|
||||||
|
// continue
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 查询平台门店所有商品
|
||||||
|
// for _, storeMap := range storeMapList {
|
||||||
|
// singleStoreHandler := partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||||
|
// // 淘宝需要storeSkuList有值
|
||||||
|
// vendorSkuInfoList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, v, storeMap.VendorStoreID, nil)
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// // 3.比对价格和规格重量,不同的以本地为基础开始重新同步
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
//入口函数,校验本地商品京西和其他平台的差异
|
//入口函数,校验本地商品京西和其他平台的差异
|
||||||
|
|||||||
@@ -2105,3 +2105,35 @@ func GetStoresSkusForManageState(db *DaoDB, storeID, status int) (storeSkuList [
|
|||||||
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
||||||
return storeSkuList, err
|
return storeSkuList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SkuPriceAndWeight struct {
|
||||||
|
SkuId int64 `orm:"column(sku_id)" json:"skuId"` // 商品本地id
|
||||||
|
MtwmPrice int64 `orm:"column(mtwm_price)" json:"mtwmPrice"` // 美团平台价
|
||||||
|
JdPrice int64 `orm:"column(jd_price)" json:"jdPrice"` // 京东平台价
|
||||||
|
EbaiPrice int64 `orm:"column(ebai_price)" json:"ebaiPrice"` // 饿百平台价
|
||||||
|
TaoPrice int64 `orm:"column(tao_price)" json:"taoPrice"` // 淘宝平台价
|
||||||
|
DdPrice int64 `orm:"column(dd_price)" json:"ddPrice"` // 抖店平台价
|
||||||
|
Weight int64 `orm:"column(weight)" json:"weight"` // 商品规格重量
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStoreSkuBindPriceAndWeight 获取门店绑定商品平台价格和规格
|
||||||
|
func GetStoreSkuBindPriceAndWeight(db *DaoDB, storeId int) (skuList map[string]*SkuPriceAndWeight, err error) {
|
||||||
|
sql := ` SELECT b.sku_id,b.mtwm_price,b.jd_price,b.ebai_price,b.tao_price,b.dd_price,s.weight FROM store_sku_bind b
|
||||||
|
INNER JOIN sku s ON s.id = b.sku_id
|
||||||
|
WHERE b.store_id = ? AND b.deleted_at = ?
|
||||||
|
`
|
||||||
|
result := make([]*SkuPriceAndWeight, 0, 0)
|
||||||
|
sqlParams := []interface{}{storeId, utils.DefaultTimeValue}
|
||||||
|
if err = GetRows(db, &result, sql, sqlParams...); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(result) != model.NO {
|
||||||
|
skuMap := make(map[string]*SkuPriceAndWeight, 0)
|
||||||
|
for _, v := range result {
|
||||||
|
skuMap[utils.Int64ToStr(v.SkuId)] = v
|
||||||
|
}
|
||||||
|
return skuMap, nil
|
||||||
|
}
|
||||||
|
return nil, errors.New("门店不存在商品数据")
|
||||||
|
}
|
||||||
|
|||||||
@@ -149,17 +149,18 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
|
|||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// msg-status 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消
|
||||||
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
|
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
|
||||||
// 订单回调全额退款接口时,将订单状态修改为取消
|
// 订单回调全额退款接口时,将订单状态修改为取消
|
||||||
refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
|
refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
|
||||||
if refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && msg.Cmd == mtwmapi.MsgTypeOrderRefund {
|
if (refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && msg.Cmd == mtwmapi.MsgTypeOrderRefund) || refundData.Status == "21" {
|
||||||
order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM)
|
order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM)
|
||||||
order.Status = model.OrderStatusCanceled
|
order.Status = model.OrderStatusCanceled
|
||||||
dao.UpdateEntity(dao.GetDB(), order, "Status")
|
dao.UpdateEntity(dao.GetDB(), order, "Status")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新订单平台自动同意退单,某一些情况下产生的运单没退!这个处理一下!
|
// 新订单平台自动同意退单,某一些情况下产生的运单没退!这个处理一下!
|
||||||
if refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && (msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderAgree) {
|
if (refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && (msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderAgree)) || refundData.Status == "21" {
|
||||||
wayBill, _ := dao.GetWaybills(dao.GetDB(), orderStatus.RefVendorOrderID, nil)
|
wayBill, _ := dao.GetWaybills(dao.GetDB(), orderStatus.RefVendorOrderID, nil)
|
||||||
for _, v := range wayBill {
|
for _, v := range wayBill {
|
||||||
handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID)
|
handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID)
|
||||||
|
|||||||
Reference in New Issue
Block a user