- 活动商品后台分页,GetActStoreSkuInfo分页,添加keyword

This commit is contained in:
gazebo
2019-08-09 11:19:43 +08:00
parent edff61d85c
commit d8f3b7f467
5 changed files with 69 additions and 14 deletions

View File

@@ -191,4 +191,13 @@ type ActStoreSku2 struct {
StoreName string `json:"storeName"`
VendorSkuID string `orm:"column(vendor_sku_id)" json:"vendorSkuID"`
SkuName string `json:"skuName"`
Prefix string `json:"-"`
SkuNameName string `orm:"column(sku_name_name)" json:"-"`
Unit string `orm:"size(8)" json:"-"`
SpecQuality float32 `json:"-"`
SpecUnit string `json:"-"`
Comment string `json:"-"`
}

View File

@@ -69,14 +69,18 @@ func GetActVendorInfo(db *DaoDB, actID int, vendorIDs []int) (actMap map[int]*mo
return actMap, err
}
func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int) (actStoreSkuList []*model.ActStoreSku2, err error) {
func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int, keyword string, offset, pageSize int) (totalCount int, actStoreSkuList []*model.ActStoreSku2, err error) {
globals.SugarLogger.Debugf("GetActStoreSkuVendorList actID:%d", actID)
offset = FormalizePageOffset(offset)
pageSize = FormalizePageSize(pageSize)
leftOrEmpty := ""
if len(vendorIDs) == 1 && vendorIDs[0] == -1 {
leftOrEmpty = "LEFT"
}
sql := fmt.Sprintf(`
SELECT t1.*,
SELECT SQL_CALC_FOUND_ROWS
t1.*,
t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.actual_act_price, t2.vendor_price,
t3.vendor_store_id,
CASE t2.vendor_id
@@ -89,7 +93,9 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
ELSE
''
END vendor_sku_id,
t6.name store_name
t4.comment, t4.spec_quality, t4.spec_unit,
t6.name store_name,
t7.name sku_name_name, t7.unit, t7.prefix
FROM act_store_sku t1
%s JOIN act_store_sku_map t2 ON t2.act_id = ? AND t2.bind_id = t1.id AND t2.deleted_at = ?`, leftOrEmpty)
sqlParams := []interface{}{
@@ -106,6 +112,7 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
JOIN sku t4 ON t4.id = t1.sku_id
LEFT JOIN store_sku_bind t5 ON t5.sku_id = t1.sku_id AND t5.store_id = t1.store_id AND t5.deleted_at = ?
LEFT JOIN store t6 ON t6.id = t1.store_id
JOIN sku_name t7 ON t7.id = t4.name_id
WHERE t1.act_id = ?
`, leftOrEmpty)
sqlParams = append(sqlParams,
@@ -113,6 +120,16 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
utils.DefaultTimeValue,
actID,
)
if keyword != "" {
keywordLike := "%" + keyword + "%"
sql += " AND (t7.namke LIKE ? OR t6.name LIKE ?"
sqlParams = append(sqlParams, keywordLike, keywordLike)
if intKeyword := int(utils.Str2Int64WithDefault(keyword, 0)); intKeyword > 0 {
sql += " OR t1.sku_id = ? OR t1.store_id = ?"
sqlParams = append(sqlParams, intKeyword, intKeyword)
}
sql += ")"
}
if leftOrEmpty != "" {
sql += " AND t1.deleted_at = ?"
sqlParams = append(sqlParams, utils.DefaultTimeValue)
@@ -125,11 +142,17 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
sqlParams = append(sqlParams, skuIDs)
}
globals.SugarLogger.Debug(sql)
globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
sql += " LIMIT ? OFFSET ?;"
sqlParams = append(sqlParams, pageSize, offset)
// globals.SugarLogger.Debug(sql)
// globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
// globals.SugarLogger.Debug(utils.Format4Output(actStoreSkuList, false))
err = GetRows(db, &actStoreSkuList, sql, sqlParams...)
return actStoreSkuList, err
Begin(db)
defer Rollback(db)
if err = GetRows(db, &actStoreSkuList, sql, sqlParams...); err == nil {
totalCount = GetLastTotalRowCount(db)
}
return totalCount, actStoreSkuList, err
}
func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int) (actStoreSkuMap map[int][]*model.ActStoreSku2, err error) {
@@ -137,7 +160,7 @@ func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
if len(vendorIDs) == 1 && vendorIDs[0] == -1 {
leftOrEmpty = "LEFT"
}
actStoreSkuList, err := GetActStoreSkuVendorList(db, actID, vendorIDs, storeIDs, skuIDs)
_, actStoreSkuList, err := GetActStoreSkuVendorList(db, actID, vendorIDs, storeIDs, skuIDs, "", 0, -1)
if err == nil {
actStoreSkuMap = make(map[int][]*model.ActStoreSku2)
for _, v := range actStoreSkuList {