From fb599e610cd54b415cfb59db02d1c5bf91c1afe4 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 15:44:25 +0800 Subject: [PATCH 01/11] fix ebai BaseFreightMoney --- business/partner/purchase/ebai/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index af3773b66..edecc89ce 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -206,7 +206,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo OrderCreatedAt: getTimeFromInterface(orderMap["create_time"]), OriginalData: string(utils.MustMarshal(result)), ActualPayPrice: utils.ForceInterface2Int64(orderMap["user_fee"]), - BaseFreightMoney: utils.ForceInterface2Int64(result["send_fee"]), + BaseFreightMoney: utils.ForceInterface2Int64(orderMap["send_fee"]), TotalShopMoney: utils.ForceInterface2Int64(orderMap["shop_fee"]), DeliveryType: mapDeliveryType(int(utils.ForceInterface2Int64(orderMap["delivery_party"]))), From 01247221c41058a3bf08f593aec062b4c7c127f7 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 16:15:14 +0800 Subject: [PATCH 02/11] =?UTF-8?q?SkuName.Upc=E6=94=B9=E4=B8=BA*string?= =?UTF-8?q?=EF=BC=88=E4=BB=A5=E6=94=AF=E6=8C=81null=E5=8F=8A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 49 ++++++++++++++++++--------------- business/model/sku.go | 7 +++-- globals/refutil/refutil.go | 11 +++++++- globals/refutil/refutil_test.go | 37 +++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 26 deletions(-) create mode 100644 globals/refutil/refutil_test.go diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 05f80c6eb..f6a0e6c8c 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -659,17 +659,19 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s if hasSensitiveWord, err := CheckHasSensitiveWord(skuNameExt.Name); hasSensitiveWord { return nil, err } - - db := dao.GetDB() - if skuNameExt.Upc != "" { - err = dao.GetEntity(db, &skuNameExt.SkuName, "Upc") - if err == nil { - return nil, fmt.Errorf("UPC:%s重复", skuNameExt.Upc) - } else if !dao.IsNoRowsError(err) { - return nil, err - } - err = nil + if utils.Pointer2String(skuNameExt.Upc) == "" { + skuNameExt.Upc = nil } + db := dao.GetDB() + // if skuNameExt.Upc != "" { + // err = dao.GetEntity(db, &skuNameExt.SkuName, "Upc") + // if err == nil { + // return nil, fmt.Errorf("UPC:%s重复", skuNameExt.Upc) + // } else if !dao.IsNoRowsError(err) { + // return nil, err + // } + // err = nil + // } skuNameExt.SkuName.Status = model.SkuStatusNormal if skuNameExt.IsSpu == 1 { return nil, fmt.Errorf("不允许创建多规格商品") @@ -789,19 +791,22 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf valid = utils.RemoveGeneralMapKeys(valid, model.FieldSpecQuality, model.FieldSpecUnit) _, hasPlaces := payload["places"] if len(valid) > 0 || hasPlaces { - globals.SugarLogger.Debugf("UpdateSkuName valid:%s", utils.Format4Output(valid, false)) - if upc, _ := valid["upc"].(string); upc != "" { - skuName := &model.SkuName{ - Upc: upc, - } - err = dao.GetEntity(db, skuName, "Upc") - if err == nil { - return 0, fmt.Errorf("UPC:%s重复", upc) - } else if !dao.IsNoRowsError(err) { - return 0, err - } - err = nil + if upc, _ := valid["Upc"].(string); upc == "" { + valid["Upc"] = nil } + globals.SugarLogger.Debugf("UpdateSkuName valid:%s", utils.Format4Output(valid, false)) + // if upc, _ := valid["Upc"].(string); upc != "" { + // skuName := &model.SkuName{ + // Upc: upc, + // } + // err = dao.GetEntity(db, skuName, "Upc") + // if err == nil { + // return 0, fmt.Errorf("UPC:%s重复", upc) + // } else if !dao.IsNoRowsError(err) { + // return 0, err + // } + // err = nil + // } for _, imgName := range []string{"img", "img2"} { if valid[imgName] != nil { if imgStr := utils.Interface2String(valid[imgName]); imgStr != "" { diff --git a/business/model/sku.go b/business/model/sku.go index 86af76811..0f95d741f 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -193,9 +193,9 @@ type SkuName struct { DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述 // DescImgEbai string `orm:"size(255)" json:"descImgEbai"` // 饿百的商品详情图片描述RTF - Upc string `orm:"size(20);index"` - Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status - IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU + Upc *string `orm:"size(20)"` + Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status + IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU JdID int64 `orm:"column(jd_id);null;index" json:"jdID"` JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` @@ -206,6 +206,7 @@ type SkuName struct { func (*SkuName) TableUnique() [][]string { return [][]string{ []string{"Name", "Prefix", "SpecQuality", "SpecUnit", "Unit", "IsSpu", "DeletedAt"}, + // []string{"Upc", "DeletedAt"}, } } diff --git a/globals/refutil/refutil.go b/globals/refutil/refutil.go index f4c559d0b..1e7ac52ee 100644 --- a/globals/refutil/refutil.go +++ b/globals/refutil/refutil.go @@ -92,5 +92,14 @@ func FilterMapByFieldList(mapData map[string]interface{}, fields []string) (vali } func IsValueEqual(value1, value2 interface{}) bool { - return fmt.Sprint(value1) == fmt.Sprint(value2) + return Interface2String(value1) == Interface2String(value2) +} + +func Interface2String(value interface{}) (str string) { + valueType := reflect.TypeOf(value) + if valueType.Kind() == reflect.Ptr { + value = reflect.ValueOf(value).Elem() + } + str = fmt.Sprint(value) + return str } diff --git a/globals/refutil/refutil_test.go b/globals/refutil/refutil_test.go new file mode 100644 index 000000000..e0596f4be --- /dev/null +++ b/globals/refutil/refutil_test.go @@ -0,0 +1,37 @@ +package refutil + +import ( + "testing" + + "git.rosy.net.cn/baseapi/utils" +) + +func TestIsValueEqual(t *testing.T) { + for _, v := range [][]interface{}{ + []interface{}{ + false, + 1, + "1.0", + }, + []interface{}{ + true, + "1", + utils.String2Pointer("1"), + }, + []interface{}{ + true, + "1", + 1, + }, + []interface{}{ + true, + int64(100), + int(100), + }, + } { + result := IsValueEqual(v[1], v[2]) + if result != v[0].(bool) { + t.Fatalf("%v,%v, desired:%v, get:%v", v[1], v[2], v[0], result) + } + } +} From 54aeef6b4af7ec03a5850c343183fddb518b40fa Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 17:27:30 +0800 Subject: [PATCH 03/11] fk --- business/jxcallback/scheduler/defsch/defsch.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index ca06e95df..32e575ba0 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -160,6 +160,7 @@ func (s *WatchOrderInfo) updateOrderStoreFeature(order *model.GoodsOrder) (err e s.autoPickupTimeoutMinute = int(storeDetail.AutoPickup) s.isDeliveryCompetition = storeDetail.DeliveryCompetition != 0 } + globals.SugarLogger.Debugf("updateOrderStoreFeature2 orderID:%s, isDeliveryCompetition:%t", order.VendorOrderID, s.isDeliveryCompetition) return err } From c730a28f19d8265cdb06f307c13cab31692feafa Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 18:14:57 +0800 Subject: [PATCH 04/11] act.QueryActs --- business/model/dao/act.go | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/business/model/dao/act.go b/business/model/dao/act.go index 3564ac70c..4d15fcf8e 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -204,25 +204,25 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keywo SELECT t1.*, t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.remark map_remark - FROM act t1 - LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ?` - sqlParams = []interface{}{utils.DefaultTimeValue} - if syncStatus >= 0 { - sql += " AND (t2.sync_status = ? OR t2.sync_status & ? <> 0)" - sqlParams = append(sqlParams, syncStatus, syncStatus) - } - } else if syncStatus >= 0 { - sql += " JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ? AND (t2.sync_status = ? OR t2.sync_status & ? <> 0)" - sqlParams = append(sqlParams, utils.DefaultTimeValue, syncStatus, syncStatus) + FROM act t1` + } + sql += " LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ?" + sqlParams = append(sqlParams, utils.DefaultTimeValue) + if syncStatus >= 0 { + sql += " AND (t2.sync_status = ? OR t2.sync_status & ? <> 0)" + sqlParams = append(sqlParams, syncStatus, syncStatus) } sql += ` WHERE t1.deleted_at = ?` + if syncStatus >= 0 { + sql += " AND t2.id IS NOT NULL" + } sqlParams = append(sqlParams, utils.DefaultTimeValue) keywordInt := int64(0) if keyword != "" { keywordLike := "%" + keyword + "%" - sql += " AND ( t1.name LIKE ? OR t1.advertising LIKE ? OR t1.remark LIKE ?" - sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike) + sql += " AND ( t1.name LIKE ? OR t1.advertising LIKE ? OR t1.remark LIKE ? OR t2.vendor_act_id LIKE ?" + sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike) keywordInt = utils.Str2Int64WithDefault(keyword, 0) if keywordInt > 0 { sql += ` @@ -321,9 +321,12 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keywo t2.id map_id, t2.vendor_id, t2.vendor_org_code, t2.vendor_act_id, t2.sync_status, t2.remark map_remark FROM act t1 LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ? - WHERE t1.id IN (` + GenQuestionMarks(len(idList)) + `) - ORDER BY t1.id DESC, t2.vendor_id - ` + WHERE t1.id IN (` + GenQuestionMarks(len(idList)) + `)` + if syncStatus >= 0 { + sql += " AND t2.id IS NOT NULL" + } + sql += ` + ORDER BY t1.id DESC, t2.vendor_id` sqlParams = []interface{}{ utils.DefaultTimeValue, idList, From ee0b400294d162da19d073409054b58d2903e3f8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 18:23:05 +0800 Subject: [PATCH 05/11] =?UTF-8?q?SkuName=E6=B7=BB=E5=8A=A0Upc,=20DeletedAt?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/sku.go b/business/model/sku.go index 0f95d741f..92fd817ee 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -206,7 +206,7 @@ type SkuName struct { func (*SkuName) TableUnique() [][]string { return [][]string{ []string{"Name", "Prefix", "SpecQuality", "SpecUnit", "Unit", "IsSpu", "DeletedAt"}, - // []string{"Upc", "DeletedAt"}, + []string{"Upc", "DeletedAt"}, } } From 20aeabd160a24d10a15d264eb94ef1c7da5e7cf8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 23 Dec 2019 18:28:21 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E5=8E=BB=E6=8E=89SkuName.Name=E7=9A=84?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/sku.go b/business/model/sku.go index 92fd817ee..b0895ba5d 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -169,7 +169,7 @@ type SkuName struct { ModelIDCULD Prefix string `orm:"size(255)" json:"prefix"` - Name string `orm:"size(255);index" json:"name"` + Name string `orm:"size(255)" json:"name"` ExPrefix string `orm:"size(255)" json:"exPrefix"` ExPrefixBegin *time.Time `orm:"null" json:"exPrefixBegin"` From e8352cd4128cb84be94a1d70d6a1add65b2b24b0 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Dec 2019 09:27:01 +0800 Subject: [PATCH 07/11] fk --- globals/refutil/refutil.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/globals/refutil/refutil.go b/globals/refutil/refutil.go index 1e7ac52ee..412ca8b55 100644 --- a/globals/refutil/refutil.go +++ b/globals/refutil/refutil.go @@ -92,6 +92,9 @@ func FilterMapByFieldList(mapData map[string]interface{}, fields []string) (vali } func IsValueEqual(value1, value2 interface{}) bool { + if value1 == nil || value2 == nil { + return value1 == value2 + } return Interface2String(value1) == Interface2String(value2) } From 3d8781ca0fbbe5941bfb0c4a71ee4255df71bfe1 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Dec 2019 10:41:46 +0800 Subject: [PATCH 08/11] UpdateActPrice4StoreSkuNameNew --- business/model/dao/store_sku.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 712136722..2d77070a2 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1280,8 +1280,11 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI if actStoreSku := actStoreSkuMap4EarningPrice.GetActStoreSku(skuName.StoreID, v.SkuID, -1); actStoreSku != nil { v.EarningPrice = int(actStoreSku.EarningPrice) v.EarningActID = actStoreSku.ActID - } else if v.EarningPrice == 0 { - v.EarningPrice = int(jxutils.CaculateSkuEarningPrice(int64(v.BindPrice), int64(v.BindPrice), skuName.PayPercentage)) + } else { + earningPrice := int(jxutils.CaculateSkuEarningPrice(int64(v.BindPrice), int64(v.BindPrice), skuName.PayPercentage)) + if earningPrice < v.EbaiPrice { + v.EbaiPrice = earningPrice + } } } } else { @@ -1290,3 +1293,18 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI } return err } + +func GetDeletedStoreSkuBind(db *DaoDB, storeID, skuID int) (storeSkuBind *model.StoreSkuBind) { + sql := ` + SELECT a.* + FROM store_sku_bind a + WHERE a.store_id = ? AND a.sku_id = ? + ORDER BY a.deleted_at DESC` + sqlParams := []interface{}{ + storeID, skuID, + } + if err := GetRow(db, &storeSkuBind, sql, sqlParams...); err != nil { + storeSkuBind = nil + } + return storeSkuBind +} From a8dbf891598a37a560a7429235b639ab23e86272 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Dec 2019 10:44:46 +0800 Subject: [PATCH 09/11] fk --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 2d77070a2..469b16567 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1283,7 +1283,7 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI } else { earningPrice := int(jxutils.CaculateSkuEarningPrice(int64(v.BindPrice), int64(v.BindPrice), skuName.PayPercentage)) if earningPrice < v.EbaiPrice { - v.EbaiPrice = earningPrice + v.EarningPrice = earningPrice } } } From f6e7cb255101e53428a36cfb2125a24ad7223fda Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Dec 2019 10:58:06 +0800 Subject: [PATCH 10/11] =?UTF-8?q?dao.GetOrders=E4=B8=AD=EF=BC=8C=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E5=AF=BC=E5=87=BA=E8=AE=A2=E5=8D=95SKU=E7=BB=93?= =?UTF-8?q?=E7=AE=97=E4=BF=A1=E6=81=AF=E6=97=B6=EF=BC=8CSKU=E7=9A=84earnin?= =?UTF-8?q?g=5Fprice=E5=9C=A8=E6=B2=A1=E6=9C=89=E7=BB=93=E7=AE=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=B6=EF=BC=8C=E5=A1=AB0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 344d0caba..8acf4cf02 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -734,7 +734,7 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat IF(t3.jx_sku_id > 0, t3.jx_sku_id, t3.sku_id) sku_id, t3.count sku_count2, t3.shop_price sku_shop_price, - t3.earning_price sku_earning_price, + IF(t3.store_sub_id = 0, 0, t3.earning_price) sku_earning_price, t3.sale_price sku_sale_price, t3.sku_name` } From 904acbf3de94bc99803cff6e45b8be49e02b7708 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Dec 2019 11:11:13 +0800 Subject: [PATCH 11/11] =?UTF-8?q?updateStoresSkusWithoutSync=E4=B8=AD=20?= =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=95=86=E5=93=81=E6=97=B6=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=9C=89=E5=88=A0=E9=99=A4=E7=9A=84=E7=9B=B8=E5=BA=94?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E5=95=86=E5=93=81=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=88=A0=E9=99=A4=EF=BC=88=E8=80=8C=E4=B8=8D?= =?UTF-8?q?=E6=98=AF=E6=96=B0=E5=BB=BA=EF=BC=89=20=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E5=9C=A8=E5=88=A0=E9=99=A4=E6=9F=90?= =?UTF-8?q?=E4=B8=AA=E9=97=A8=E5=BA=97=E5=95=86=E5=93=81=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=EF=BC=8C=E5=8F=88=E6=8A=8A=E5=95=86=E5=93=81=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E5=85=B3=E6=B3=A8=E3=80=82=20=E6=89=80=E4=BB=A5=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E5=A4=84=E7=90=86=E6=88=90=E6=81=A2=E5=A4=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E8=AE=B0=E5=BD=95=EF=BC=8C=E8=BF=99=E6=A0=B7?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 21 +++++++++++++++++---- business/model/dao/store_sku_test.go | 5 +++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index dd3ac73b5..3e69bd1dc 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1021,11 +1021,24 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask) dao.WrapAddIDCULDEntity(skuBind, userName) globals.SugarLogger.Debug(utils.Format4Output(skuBind, false)) - if err = dao.CreateEntity(db, skuBind); err != nil { - dao.Rollback(db) - return nil, err + if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil { + if err = dao.CreateEntity(db, skuBind); err != nil { + dao.Rollback(db) + return nil, err + } + num = 1 + } else { + // 需要处理,在删除某个门店商品,同步失败的情况下,又把商品重新关注。 + // 所以统一处理成恢复删除的记录,这样避免问题 + skuBind.ID = deletedSku.ID + // vendorSkuID的赋值意义不大 + skuBind.MtwmID = deletedSku.MtwmID + skuBind.EbaiID = deletedSku.EbaiID + if num, err = dao.UpdateEntity(db, skuBind); err != nil { + dao.Rollback(db) + return nil, err + } } - num = 1 } } else { skuBind = &v.StoreSkuBind diff --git a/business/model/dao/store_sku_test.go b/business/model/dao/store_sku_test.go index cf9e569d8..9ef743329 100644 --- a/business/model/dao/store_sku_test.go +++ b/business/model/dao/store_sku_test.go @@ -23,3 +23,8 @@ func TestGetStoreSkus(t *testing.T) { } globals.SugarLogger.Debug(utils.Format4Output(skuList, false)) } + +func TestGetDeletedStoreSkuBind(t *testing.T) { + storeSkuBind := GetDeletedStoreSkuBind(GetDB(), 100123, 30648) + globals.SugarLogger.Debug(utils.Format4Output(storeSkuBind, false)) +}