149 lines
3.7 KiB
Go
149 lines
3.7 KiB
Go
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) {
|
|
cities = []*model.Place{}
|
|
sql := `
|
|
SELECT DISTINCT t3.*
|
|
FROM sku_name_place_bind t1
|
|
JOIN place t2 ON t1.place_code = t2.code
|
|
JOIN place t3 ON (t2.level = 2 AND t2.code = t3.code) OR (t2.level = 1 AND t2.code = t3.parent_code)
|
|
WHERE t1.name_id = ?
|
|
`
|
|
if vendorID == model.VendorIDJD {
|
|
sql += "AND t3.jd_code <> 0\n"
|
|
}
|
|
return cities, GetRows(db, &cities, sql, nameID)
|
|
}
|
|
|
|
func DeleteSkuNamePlace(db *DaoDB, nameID int, placeCodes []int) (num int64, err error) {
|
|
sql := `
|
|
DELETE
|
|
FROM sku_name_place_bind
|
|
WHERE name_id = ?
|
|
`
|
|
sqlParams := []interface{}{
|
|
nameID,
|
|
}
|
|
if len(placeCodes) > 0 {
|
|
sql += " AND place_code IN (" + GenQuestionMarks(len(placeCodes)) + ")"
|
|
sqlParams = append(sqlParams, placeCodes)
|
|
}
|
|
return ExecuteSQL(db, sql, sqlParams...)
|
|
}
|
|
|
|
func GetSkuNameByHashCode(db *DaoDB, hashCode string) (skuName *model.SkuName, err error) {
|
|
sql := `
|
|
SELECT *
|
|
FROM sku_name
|
|
WHERE img_hash_code = ?
|
|
`
|
|
sqlParams := []interface{}{
|
|
hashCode,
|
|
}
|
|
skuName = &model.SkuName{}
|
|
if err = GetRow(db, skuName, sql, sqlParams...); err == nil {
|
|
return skuName, nil
|
|
}
|
|
return nil, err
|
|
}
|
|
|
|
func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err error) {
|
|
sql := `
|
|
SELECT *
|
|
FROM sku_name t1
|
|
WHERE t1.deleted_at = ?
|
|
`
|
|
sqlParams := []interface{}{
|
|
utils.DefaultTimeValue,
|
|
}
|
|
if len(nameIDs) > 0 {
|
|
sql += " AND t1.id IN (" + GenQuestionMarks(len(nameIDs)) + ")"
|
|
sqlParams = append(sqlParams, nameIDs)
|
|
}
|
|
if err = GetRows(db, &skuNameList, sql, sqlParams...); err == nil {
|
|
return skuNameList, nil
|
|
}
|
|
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...)
|
|
}
|