- 修改genFakeID1,不会生成重复的ID

This commit is contained in:
gazebo
2019-06-06 10:33:04 +08:00
parent 683839c212
commit 1530c85855
3 changed files with 65 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import (
"reflect"
"regexp"
"strings"
"sync"
"time"
"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)
}
var lastFakeID int64
var lastFakeIDMutex sync.RWMutex
// 生成一个不重复的临时ID
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使用

View File

@@ -360,3 +360,24 @@ func GetDescImgFieldName(vendorID int) (fieldName string) {
}
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
}

View File

@@ -45,6 +45,8 @@ const (
FieldVendorOrderID = "VendorOrderID"
FieldVendorOrderID2 = "VendorOrderID2"
FieldVendorActID = "VendorActID"
)
type ModelIDCUL struct {
@@ -80,6 +82,30 @@ const (
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 (
// KeyJdFlag = "jdFlag"
// KeyJdSyncedAt = "jdSyncedAt"