aa
This commit is contained in:
@@ -89,6 +89,7 @@ type StoreSkuBindInfo struct {
|
||||
SubStoreID int `json:"subStoreID,omitempty"`
|
||||
StatusSaleBegin int16 `json:"statusSaleBegin" validate:"max=2359,min=1,ltfield=StatusSaleEnd"` //商品可售时间范围
|
||||
StatusSaleEnd int16 `json:"statusSaleEnd" validate:"max=2359,min=1"`
|
||||
UPC string `json:"upc"`
|
||||
Skus []*StoreSkuBindSkuInfo `json:"skus,omitempty"`
|
||||
}
|
||||
|
||||
@@ -1065,10 +1066,18 @@ func uniqueStoreIDs(storeIDs []int) []int {
|
||||
|
||||
func uniqueStoreNameBind(skuBindInfos []*StoreSkuBindInfo) (outSkuBindInfos []*StoreSkuBindInfo) {
|
||||
nameIDMap := make(map[int]int)
|
||||
upcMap := make(map[string]int)
|
||||
for _, v := range skuBindInfos {
|
||||
if nameIDMap[v.NameID] != 1 {
|
||||
outSkuBindInfos = append(outSkuBindInfos, v)
|
||||
nameIDMap[v.NameID] = 1
|
||||
if v.NameID != 0 {
|
||||
if nameIDMap[v.NameID] != 1 {
|
||||
outSkuBindInfos = append(outSkuBindInfos, v)
|
||||
nameIDMap[v.NameID] = 1
|
||||
}
|
||||
} else if v.UPC != "" {
|
||||
if upcMap[v.UPC] != 1 {
|
||||
outSkuBindInfos = append(outSkuBindInfos, v)
|
||||
upcMap[v.UPC] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return outSkuBindInfos
|
||||
@@ -1153,16 +1162,32 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
||||
LEFT JOIN (
|
||||
SELECT t7.store_id, t8.name_id, CAST(AVG(t7.unit_price) AS SIGNED) unit_price
|
||||
FROM store_sku_bind t7
|
||||
JOIN sku t8 ON t8.id = t7.sku_id AND t8.name_id = ?
|
||||
JOIN sku t8 ON t8.id = t7.sku_id
|
||||
`
|
||||
if skuBindInfo.NameID != 0 {
|
||||
sql += " AND t8.name_id = ?"
|
||||
sqlParams = append(sqlParams, skuBindInfo.NameID)
|
||||
} else if skuBindInfo.UPC != "" {
|
||||
sql += " JOIN sku_name t9 ON t9.id = t8.name_id AND t9.upc = ?"
|
||||
sqlParams = append(sqlParams, skuBindInfo.UPC)
|
||||
}
|
||||
sql += `
|
||||
WHERE t7.deleted_at = ? AND t7.store_id = ?
|
||||
GROUP BY 1,2
|
||||
) t5 ON t5.store_id = ts.id AND t5.name_id = t1.name_id`
|
||||
sqlParams = append(sqlParams, skuBindInfo.NameID, utils.DefaultTimeValue, storeID)
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue, storeID)
|
||||
}
|
||||
sql += `
|
||||
WHERE t1.name_id = ? AND t1.deleted_at = ?
|
||||
sql += " WHERE 1 = 1"
|
||||
if skuBindInfo.NameID != 0 {
|
||||
sql += " AND t1.name_id = ?"
|
||||
sqlParams = append(sqlParams, skuBindInfo.NameID)
|
||||
} else if skuBindInfo.UPC != "" {
|
||||
sql += " AND t3.upc = ?"
|
||||
sqlParams = append(sqlParams, skuBindInfo.UPC)
|
||||
}
|
||||
sql += ` AND t1.deleted_at = ?
|
||||
FOR UPDATE`
|
||||
sqlParams = append(sqlParams, skuBindInfo.NameID, utils.DefaultTimeValue)
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||
// globals.SugarLogger.Debug(sql)
|
||||
if err = dao.GetRows(db, &allBinds, sql, sqlParams...); err == nil {
|
||||
if len(allBinds) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user