diff --git a/business/partner/purchase/mtwm/callback.go b/business/partner/purchase/mtwm/callback.go index 96cb1b3aa..8b052275e 100644 --- a/business/partner/purchase/mtwm/callback.go +++ b/business/partner/purchase/mtwm/callback.go @@ -11,6 +11,7 @@ import ( "net/http" "net/url" "strings" + "time" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -48,26 +49,31 @@ func OnCallbackMsg(msg *mtwmapi.CallbackMsg, msgType string) (response *mtwmapi. if len(dataMap) != 0 { var storeMap = make(map[string]map[int][]string, 0) var skuStatus = make(map[int][]string, 0) + var operate = make(map[string]string, 0) for _, v := range dataMap { if v.AppFoodCode != "" && v.AppPoiCode != "" { skuStatus[v.DiffContents.IsSoldOut.Result] = append(skuStatus[v.DiffContents.IsSoldOut.Result], v.AppFoodCode) storeMap[v.AppPoiCode] = skuStatus + operate[v.AppFoodCode] = fmt.Sprintf("%s:%s:0↑-1↓:前%d->后%d", v.OpAppKey, v.OpName, v.DiffContents.IsSoldOut.Origin, v.DiffContents.IsSoldOut.Result) } } for k, v := range storeMap { storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), k, model.VendorIDMTWM, "") if storeDetail != nil { for k2, v2 := range v { + if len(v2) == 0 { + continue + } switch k2 { case 1: // 下架 param := []interface{}{} - param = append(param, 0, mtwmapi.MsgTypeSkuUpdate, storeDetail.ID, v2) - sql := `UPDATE store_sku_bind SET status = ?,last_operator = ? WHERE store_id = ? AND sku_id IN` + "(" + dao.GenQuestionMarks(len(v2)) + ")" + param = append(param, 0, operate[v2[0]], time.Now(), storeDetail.ID, v2) + sql := `UPDATE store_sku_bind SET status = ?,last_operator = ?,updated_at = ? WHERE store_id = ? AND sku_id IN` + "(" + dao.GenQuestionMarks(len(v2)) + ")" dao.ExecuteSQL(dao.GetDB(), sql, param...) case 0: // 上架 param := []interface{}{} - param = append(param, 1, mtwmapi.MsgTypeSkuUpdate, storeDetail.ID, v2) - sql := `UPDATE store_sku_bind SET status = ?,last_operator = ? WHERE store_id = ? AND sku_id IN` + "(" + dao.GenQuestionMarks(len(v2)) + ")" + param = append(param, 1, operate[v2[0]], time.Now(), storeDetail.ID, v2) + sql := `UPDATE store_sku_bind SET status = ?,last_operator = ?,updated_at = ? WHERE store_id = ? AND sku_id IN` + "(" + dao.GenQuestionMarks(len(v2)) + ")" dao.ExecuteSQL(dao.GetDB(), sql, param...) } }