- 修改genFakeID1,不会生成重复的ID
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi"
|
"git.rosy.net.cn/baseapi/platformapi"
|
||||||
@@ -235,9 +236,25 @@ func IsSkuSpecial(specQuality float32, specUnit string) bool {
|
|||||||
return int(specQuality) == model.SpecialSpecQuality && (specUnit == model.SpecialSpecUnit || specUnit == model.SpecialSpecUnit2)
|
return int(specQuality) == model.SpecialSpecQuality && (specUnit == model.SpecialSpecUnit || specUnit == model.SpecialSpecUnit2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var lastFakeID int64
|
||||||
|
var lastFakeIDMutex sync.RWMutex
|
||||||
|
|
||||||
// 生成一个不重复的临时ID
|
// 生成一个不重复的临时ID
|
||||||
func genFakeID1() int64 {
|
func genFakeID1() int64 {
|
||||||
return time.Now().UnixNano() / 1000000
|
for {
|
||||||
|
fakeID := time.Now().UnixNano() / 1000
|
||||||
|
lastFakeIDMutex.RLock()
|
||||||
|
if fakeID == lastFakeID {
|
||||||
|
lastFakeIDMutex.RUnlock()
|
||||||
|
time.Sleep(1 * time.Microsecond)
|
||||||
|
} else {
|
||||||
|
lastFakeIDMutex.RUnlock()
|
||||||
|
lastFakeIDMutex.Lock()
|
||||||
|
defer lastFakeIDMutex.Unlock()
|
||||||
|
lastFakeID = fakeID
|
||||||
|
return fakeID
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 这个用于没有打开远程同步时的假同步,生成ID使用
|
// 这个用于没有打开远程同步时的假同步,生成ID使用
|
||||||
|
|||||||
@@ -360,3 +360,24 @@ func GetDescImgFieldName(vendorID int) (fieldName string) {
|
|||||||
}
|
}
|
||||||
return fieldName
|
return fieldName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStoresSkusInfo(db *DaoDB, storeIDs, skuIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT *
|
||||||
|
FROM store_sku_bind t1
|
||||||
|
WHERE t1.deleted_at = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
utils.DefaultTimeValue,
|
||||||
|
}
|
||||||
|
if len(storeIDs) > 0 {
|
||||||
|
sql += " AND t1.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
|
}
|
||||||
|
if len(skuIDs) > 0 {
|
||||||
|
sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
|
}
|
||||||
|
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
||||||
|
return storeSkuList, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ const (
|
|||||||
|
|
||||||
FieldVendorOrderID = "VendorOrderID"
|
FieldVendorOrderID = "VendorOrderID"
|
||||||
FieldVendorOrderID2 = "VendorOrderID2"
|
FieldVendorOrderID2 = "VendorOrderID2"
|
||||||
|
|
||||||
|
FieldVendorActID = "VendorActID"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelIDCUL struct {
|
type ModelIDCUL struct {
|
||||||
@@ -80,6 +82,30 @@ const (
|
|||||||
SyncFlagStoreAddress = 16
|
SyncFlagStoreAddress = 16
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func IsSyncStatusNew(syncStatus int) bool {
|
||||||
|
return (syncStatus & SyncFlagNewMask) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsSyncStatusDelete(syncStatus int) bool {
|
||||||
|
return (syncStatus & SyncFlagDeletedMask) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsSyncStatusUpdate(syncStatus int) bool {
|
||||||
|
return (syncStatus & SyncFlagModifiedMask) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsSyncStatusNeedCreate(syncStatus int) bool {
|
||||||
|
return IsSyncStatusNew(syncStatus) && !IsSyncStatusDelete(syncStatus)
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsSyncStatusNeedDelete(syncStatus int) bool {
|
||||||
|
return !IsSyncStatusNew(syncStatus) && IsSyncStatusDelete(syncStatus)
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsSyncStatusNeedUpdate(syncStatus int) bool {
|
||||||
|
return !IsSyncStatusNew(syncStatus) && !IsSyncStatusDelete(syncStatus) && IsSyncStatusUpdate(syncStatus)
|
||||||
|
}
|
||||||
|
|
||||||
// const (
|
// const (
|
||||||
// KeyJdFlag = "jdFlag"
|
// KeyJdFlag = "jdFlag"
|
||||||
// KeyJdSyncedAt = "jdSyncedAt"
|
// KeyJdSyncedAt = "jdSyncedAt"
|
||||||
|
|||||||
Reference in New Issue
Block a user