This commit is contained in:
gazebo
2018-09-14 11:21:45 +08:00
parent 315e202312
commit 4bfb7c235a
7 changed files with 106 additions and 12 deletions

View File

@@ -2,7 +2,6 @@ package cms
import (
"strconv"
"strings"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
@@ -26,6 +25,9 @@ type StoreSkuBindInfo struct {
IsFocus int `json:"isFocus"` // -1不关注0忽略1关注
IsSale int `json:"isSale"` // -1不可售0忽略1可售
Price int `json:"price"`
ElmID int64 `json:"elmID"`
EbaiID int64 `json:"ebaiID"`
}
func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *StoreSkuNamesInfo, err error) {
@@ -85,8 +87,15 @@ func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, of
sqlParams = append(sqlParams, params["unit"].(string))
}
if params["skuID"] != nil {
sql += " AND t2.id = ?"
sqlParams = append(sqlParams, params["skuID"].(int))
skuID, ok := params["skuID"].(int)
if ok {
sql += " AND t2.id = ?"
sqlParams = append(sqlParams, skuID)
} else {
skuIDs := params["skuID"].([]interface{})
sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
sqlParams = append(sqlParams, skuIDs)
}
}
if params["fromStatus"] != nil {
fromStatus := params["fromStatus"].(int)
@@ -166,12 +175,10 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
db := dao.GetDB()
var existBinds []*model.StoreSkuBind
skuIDs := make([]int, len(skuBinds))
placeHolders := make([]string, len(skuBinds))
for k, v := range skuBinds {
skuIDs[k] = v.SkuID
placeHolders[k] = "?"
}
questions := "(" + strings.Join(placeHolders, ",") + ")"
questions := "(" + dao.GenQuestionMarks(len(skuBinds)) + ")"
if err = dao.GetRows(db, &existBinds, `
SELECT *
FROM store_sku_bind
@@ -201,6 +208,9 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
if skuBind != nil {
if v.Price != 0 {
skuBind.Price = v.Price
skuBind.JdSyncStatus |= model.SyncFlagPriceMask
skuBind.ElmSyncStatus |= model.SyncFlagPriceMask
skuBind.EbaiSyncStatus |= model.SyncFlagPriceMask
}
if v.IsSale != 0 {
if v.IsSale == 1 {
@@ -208,6 +218,9 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
} else {
skuBind.Status = model.StoreSkuBindStatusDontSale
}
skuBind.JdSyncStatus |= model.SyncFlagSaleMask
skuBind.ElmSyncStatus |= model.SyncFlagSaleMask
skuBind.EbaiSyncStatus |= model.SyncFlagSaleMask
}
if ok {
if v.IsFocus == -1 {
@@ -217,13 +230,20 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
})
} else {
// todo 如果修改ebai与elm ID怎么处理呢
skuBind.DeletedAt = utils.DefaultTimeValue
skuBind.JdSyncStatus = model.SyncFlagModifiedMask
skuBind.ElmSyncStatus = model.SyncFlagModifiedMask
skuBind.EbaiSyncStatus = model.SyncFlagModifiedMask
skuBind.JdSyncStatus |= model.SyncFlagModifiedMask
skuBind.ElmSyncStatus |= model.SyncFlagModifiedMask
skuBind.EbaiSyncStatus |= model.SyncFlagModifiedMask
_, err = dao.UpdateEntity(db, skuBind)
}
} else {
if v.EbaiID != 0 {
skuBind.EbaiID = v.EbaiID
}
if v.ElmID != 0 {
skuBind.ElmID = v.ElmID
}
skuBind.JdSyncStatus = model.SyncFlagNewMask
skuBind.ElmSyncStatus = model.SyncFlagNewMask
skuBind.EbaiSyncStatus = model.SyncFlagNewMask
@@ -236,7 +256,7 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
}
}
dao.Commit(db)
err = CurVendorSync.SyncStoreSku(db, storeID, -1, false, userName)
err = CurVendorSync.SyncStoreSku(db, storeID, skuIDs, false, userName)
}
return num, err
}