- 修改商家分类,SKU,SKUNAME时,将门店分类,商品相应的同步标志位正确设置
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
)
|
||||
|
||||
func GetSellCities(db *DaoDB, nameID int, vendorID int) (cities []*model.Place, err error) {
|
||||
@@ -70,3 +73,76 @@ func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err er
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func GetSkuByNames(db *DaoDB, nameIDs []int) (skuList []*model.Sku, err error) {
|
||||
sql := `
|
||||
SELECT *
|
||||
FROM sku t1
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(nameIDs) > 0 {
|
||||
sql += " AND t1.name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")"
|
||||
sqlParams = append(sqlParams, nameIDs)
|
||||
}
|
||||
if err = GetRows(db, &skuList, sql, sqlParams...); err == nil {
|
||||
return skuList, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func GetSkuIDByNames(db *DaoDB, nameIDs []int) (skuIDs []int, err error) {
|
||||
skuList, err := GetSkuByNames(db, nameIDs)
|
||||
if err == nil {
|
||||
for _, sku := range skuList {
|
||||
skuIDs = append(skuIDs, sku.ID)
|
||||
}
|
||||
}
|
||||
return skuIDs, err
|
||||
}
|
||||
|
||||
func GetSkuByCats(db *DaoDB, catIDs []int) (skuList []*model.Sku, err error) {
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM sku t1
|
||||
JOIN sku_name t2 ON t2.id = t1.name_id
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(catIDs) > 0 {
|
||||
sql += " AND t2.category_id IN (" + GenQuestionMarks(len(catIDs)) + ")"
|
||||
sqlParams = append(sqlParams, catIDs)
|
||||
}
|
||||
err = GetRows(db, &skuList, sql, sqlParams...)
|
||||
globals.SugarLogger.Debugf("GetSkuByCats err:%v", err)
|
||||
return skuList, err
|
||||
}
|
||||
|
||||
func SetSkuSyncStatus(db *DaoDB, vendorID int, skuIDs []int, syncStatus int) (num int64, err error) {
|
||||
globals.SugarLogger.Debugf("SetSkuSyncStatus, vendorID:%d", vendorID)
|
||||
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||
sql := fmt.Sprintf(`
|
||||
UPDATE sku t1
|
||||
SET t1.%s_sync_status = IF(t1.deleted_at = ?, t1.%s_sync_status | ?, 0)
|
||||
`, fieldPrefix, fieldPrefix)
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
syncStatus,
|
||||
}
|
||||
if (syncStatus & model.SyncFlagNewMask) != 0 {
|
||||
sql += fmt.Sprintf(`,
|
||||
t1.%s_id = 0
|
||||
`, fieldPrefix)
|
||||
}
|
||||
sql += " WHERE 1 = 1"
|
||||
if len(skuIDs) > 0 {
|
||||
sql += " AND t1.id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
}
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
|
||||
@@ -224,8 +224,8 @@ func SetStoreSkuSyncStatus(db *DaoDB, vendorID, storeID int, skuIDs []int, syncS
|
||||
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||
sql := fmt.Sprintf(`
|
||||
UPDATE store_sku_bind
|
||||
SET %s_sync_status = IF(deleted_at = ?, %s_sync_status | ?, 0)
|
||||
UPDATE store_sku_bind t1
|
||||
SET t1.%s_sync_status = IF(t1.deleted_at = ?, t1.%s_sync_status | ?, 0)
|
||||
`, fieldPrefix, fieldPrefix)
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
@@ -233,16 +233,16 @@ func SetStoreSkuSyncStatus(db *DaoDB, vendorID, storeID int, skuIDs []int, syncS
|
||||
}
|
||||
if (syncStatus & model.SyncFlagNewMask) != 0 {
|
||||
sql += fmt.Sprintf(`,
|
||||
%s_id = 0
|
||||
t1.%s_id = 0
|
||||
`, fieldPrefix)
|
||||
}
|
||||
sql += " WHERE 1 = 1"
|
||||
if storeID > 0 {
|
||||
sql += " AND store_id = ?"
|
||||
sql += " AND t1.store_id = ?"
|
||||
sqlParams = append(sqlParams, storeID)
|
||||
}
|
||||
if len(skuIDs) > 0 {
|
||||
sql += " AND sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
}
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
@@ -254,13 +254,16 @@ func SetStoreCategorySyncStatus(db *DaoDB, vendorID, storeID int, catIDs []int,
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||
sql := fmt.Sprintf(`
|
||||
UPDATE store_sku_category_map
|
||||
SET %s_sync_status = %s_sync_status | ?
|
||||
WHERE deleted_at = ? AND store_id = ?
|
||||
SET %s_sync_status = IF(deleted_at = ?, %s_sync_status | ?, 0)
|
||||
`, fieldPrefix, fieldPrefix)
|
||||
sqlParams := []interface{}{
|
||||
syncStatus,
|
||||
utils.DefaultTimeValue,
|
||||
storeID,
|
||||
syncStatus,
|
||||
}
|
||||
sql += " WHERE 1 = 1"
|
||||
if storeID > 0 {
|
||||
sql += " AND store_id = ?"
|
||||
sqlParams = append(sqlParams, storeID)
|
||||
}
|
||||
if len(catIDs) > 0 {
|
||||
sql += " AND category_id IN (" + GenQuestionMarks(len(catIDs)) + ")"
|
||||
|
||||
@@ -58,6 +58,12 @@ func (*StoreSkuCategoryMap) TableUnique() [][]string {
|
||||
}
|
||||
}
|
||||
|
||||
func (*StoreSkuCategoryMap) TableIndex() [][]string {
|
||||
return [][]string{
|
||||
[]string{"CategoryID", "StoreID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
type StoreSkuBind struct {
|
||||
ModelIDCULD
|
||||
|
||||
@@ -88,6 +94,12 @@ func (*StoreSkuBind) TableUnique() [][]string {
|
||||
}
|
||||
}
|
||||
|
||||
func (*StoreSkuBind) TableIndex() [][]string {
|
||||
return [][]string{
|
||||
[]string{"SkuID", "StoreID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
type StoreOpRequest struct {
|
||||
ModelIDCULD // DeletedAt用于表示请求操作结束,而并不一定是删除
|
||||
|
||||
|
||||
Reference in New Issue
Block a user