aa
This commit is contained in:
@@ -276,12 +276,13 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b
|
||||
var (
|
||||
sqlParams []interface{}
|
||||
db = dao.GetDB()
|
||||
//SkuNames []*dao.StoreSkuNameExt
|
||||
SkuNames []*dao.StoreSkuNameExt
|
||||
)
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, e.id store_id, c.unit_price ,b.id sku_id, b.spec_quality sku_spec_quality,
|
||||
b.spec_unit sku_spec_unit, b.status sku_status, c.stock, c.price bind_price,
|
||||
c.status store_sku_status
|
||||
SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, e.id store_id, c.unit_price
|
||||
-- ,b.id sku_id, b.spec_quality sku_spec_quality,
|
||||
-- b.spec_unit sku_spec_unit, b.status sku_status, c.stock, c.price bind_price,
|
||||
-- c.status store_sku_status
|
||||
FROM sku_name a
|
||||
JOIN sku b ON b.name_id = a.id AND b.deleted_at = ?
|
||||
JOIN store e ON e.deleted_at = ?
|
||||
@@ -368,71 +369,79 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b
|
||||
sql += `
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
var tmpList []*tGetStoresSkusInfo
|
||||
//var tmpList []*tGetStoresSkusInfo
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
offset = jxutils.FormalizePageOffset(offset)
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
txDB, _ := dao.Begin(db)
|
||||
defer dao.Commit(db, txDB)
|
||||
if err = dao.GetRowsTx(txDB, &tmpList, sql, sqlParams...); err == nil {
|
||||
if err = dao.GetRowsTx(txDB, &SkuNames, sql, sqlParams...); err == nil {
|
||||
skuNamesInfo = &dao.StoreSkuNamesInfo{
|
||||
TotalCount: dao.GetLastTotalRowCount2(db, txDB),
|
||||
}
|
||||
// skuNamesInfo.TotalCount = dao.GetLastTotalRowCount2(db, txDB)
|
||||
//for _, v := range tmpList {
|
||||
//var skus []*dao.StoreSkuExt
|
||||
//sql2 := `
|
||||
// SELECT a.id sku_id, a.spec_quality sku_spec_quality, a.spec_unit sku_spec_unit, a.status sku_status,
|
||||
// b.stock, b.price bind_price, b.unit_price,
|
||||
// b.status store_sku_status
|
||||
// FROM sku a
|
||||
// JOIN sku_name c ON a.name_id = c.id AND c.deleted_at = ? AND c.status = ?
|
||||
//`
|
||||
//sqlParams2 := []interface{}{
|
||||
// utils.DefaultTimeValue, model.SkuStatusNormal,
|
||||
//}
|
||||
//if !isFocus {
|
||||
// sql2 += `
|
||||
// LEFT
|
||||
// `
|
||||
//}
|
||||
//sql2 += ` JOIN store_sku_bind b ON a.id = b.sku_id AND b.deleted_at = ? AND b.store_id = ?
|
||||
// WHERE a.deleted_at = ? AND a.name_id = ? AND a.status = ?
|
||||
//`
|
||||
//sqlParams2 = append(sqlParams2, utils.DefaultTimeValue, storeID,
|
||||
// utils.DefaultTimeValue, v.ID, model.SkuStatusNormal,
|
||||
//)
|
||||
//if status != -1 {
|
||||
// sql2 += " AND b.status = ?"
|
||||
// sqlParams2 = append(sqlParams2, status)
|
||||
//}
|
||||
//if err = dao.GetRows(db, &skus, sql2, sqlParams2); err == nil {
|
||||
// v.Skus = skus
|
||||
//}
|
||||
//}
|
||||
storeNameMap := make(map[int64]*dao.StoreSkuNameExt)
|
||||
for _, v := range tmpList {
|
||||
var storeName *dao.StoreSkuNameExt
|
||||
index := jxutils.Combine2Int(v.StoreID, v.ID)
|
||||
if storeNameMap[index] == nil {
|
||||
storeName = &dao.StoreSkuNameExt{
|
||||
StoreID: v.StoreID,
|
||||
StoreName: v.StoreName,
|
||||
SkuName: v.SkuName,
|
||||
UnitPrice: v.UnitPrice,
|
||||
PayPercentage: v.PayPercentage,
|
||||
RealMidUnitPrice: v.RealMidUnitPrice,
|
||||
YbSkuName: v.YbSkuName,
|
||||
AuditUnitPrice: v.AuditUnitPrice,
|
||||
task := tasksch.NewParallelTask("uuu", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
v := batchItemList[0].(*dao.StoreSkuNameExt)
|
||||
var skus []*dao.StoreSkuExt
|
||||
sql2 := `
|
||||
SELECT a.id sku_id, a.spec_quality sku_spec_quality, a.spec_unit sku_spec_unit, a.status sku_status,
|
||||
b.stock, b.price bind_price, b.unit_price,
|
||||
b.status store_sku_status
|
||||
FROM sku a
|
||||
JOIN sku_name c ON a.name_id = c.id AND c.deleted_at = ? AND c.status = ?
|
||||
`
|
||||
sqlParams2 := []interface{}{
|
||||
utils.DefaultTimeValue, model.SkuStatusNormal,
|
||||
}
|
||||
storeNameMap[index] = storeName
|
||||
skuNamesInfo.SkuNames = append(skuNamesInfo.SkuNames, storeName)
|
||||
} else {
|
||||
storeName = storeNameMap[index]
|
||||
}
|
||||
storeName.Skus = append(storeName.Skus, &v.StoreSkuExt)
|
||||
}
|
||||
//skuNamesInfo.SkuNames = SkuNames
|
||||
if !isFocus {
|
||||
sql2 += `
|
||||
LEFT
|
||||
`
|
||||
}
|
||||
sql2 += ` JOIN store_sku_bind b ON a.id = b.sku_id AND b.deleted_at = ? AND b.store_id = ?
|
||||
WHERE a.deleted_at = ? AND a.name_id = ? AND a.status = ?
|
||||
`
|
||||
sqlParams2 = append(sqlParams2, utils.DefaultTimeValue, storeID,
|
||||
utils.DefaultTimeValue, v.ID, model.SkuStatusNormal,
|
||||
)
|
||||
if status != -1 {
|
||||
sql2 += " AND b.status = ?"
|
||||
sqlParams2 = append(sqlParams2, status)
|
||||
}
|
||||
if err = dao.GetRows(db, &skus, sql2, sqlParams2); err == nil {
|
||||
v.Skus = skus
|
||||
}
|
||||
return retVal, err
|
||||
}, SkuNames)
|
||||
tasksch.HandleTask(task, nil, false).Run()
|
||||
task.GetResult(0)
|
||||
//for _, v := range SkuNames {
|
||||
//
|
||||
//}
|
||||
skuNamesInfo.SkuNames = SkuNames
|
||||
//storeNameMap := make(map[int64]*dao.StoreSkuNameExt)
|
||||
//for _, v := range tmpList {
|
||||
// var storeName *dao.StoreSkuNameExt
|
||||
// index := jxutils.Combine2Int(v.StoreID, v.ID)
|
||||
// if storeNameMap[index] == nil {
|
||||
// storeName = &dao.StoreSkuNameExt{
|
||||
// StoreID: v.StoreID,
|
||||
// StoreName: v.StoreName,
|
||||
// SkuName: v.SkuName,
|
||||
// UnitPrice: v.UnitPrice,
|
||||
// PayPercentage: v.PayPercentage,
|
||||
// RealMidUnitPrice: v.RealMidUnitPrice,
|
||||
// YbSkuName: v.YbSkuName,
|
||||
// AuditUnitPrice: v.AuditUnitPrice,
|
||||
// }
|
||||
// storeNameMap[index] = storeName
|
||||
// skuNamesInfo.SkuNames = append(skuNamesInfo.SkuNames, storeName)
|
||||
// } else {
|
||||
// storeName = storeNameMap[index]
|
||||
// }
|
||||
// storeName.Skus = append(storeName.Skus, &v.StoreSkuExt)
|
||||
//}
|
||||
if err == nil {
|
||||
if isFocus {
|
||||
if err == nil {
|
||||
|
||||
Reference in New Issue
Block a user