This commit is contained in:
邹宗楠
2023-12-06 09:41:12 +08:00
parent 711dc8a96c
commit 34833993c1
3 changed files with 69 additions and 7 deletions

View File

@@ -928,12 +928,41 @@ func StoreOpenAll(ctx *jxcontext.Context) {
// globals.SugarLogger.Debug("StoreOpenAll skuID is Complete")
//}
// 对比本地商品和平台商品差异(价格和规格),不同的重新同步
func CheckSkuDiffBetweenJxAndVendor2(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
//db := dao.GetDB()
// CheckSkuDiffBetweenJxAndVendor2 对比本地商品和平台商品差异(价格和规格),不同的重新同步
func CheckSkuDiffBetweenJxAndVendor2(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) error {
//var (
// db = dao.GetDB()
// errList = make([]error, 0, 0)
//)
//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
}
//入口函数,校验本地商品京西和其他平台的差异

View File

@@ -2105,3 +2105,35 @@ func GetStoresSkusForManageState(db *DaoDB, storeID, status int) (storeSkuList [
err = GetRows(db, &storeSkuList, sql, sqlParams...)
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("门店不存在商品数据")
}

View File

@@ -149,17 +149,18 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
}
} else {
// msg-status 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
// 订单回调全额退款接口时,将订单状态修改为取消
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.Status = model.OrderStatusCanceled
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)
for _, v := range wayBill {
handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID)
@@ -168,7 +169,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
}
}
}
}
}
return mtwmapi.Err2CallbackResponse(err, "")