This commit is contained in:
苏尹岚
2021-03-17 15:30:33 +08:00
parent 1ae86dcdf5
commit 1990f986f5

View File

@@ -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 {