diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 58512894f..5b78c633a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -437,18 +437,6 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric sql := ` FROM sku_name t1 LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = ? - ` - if params["isExd"] != nil { - var idExd = params["isExd"].(bool) - if idExd { - sql += " AND t2.exd_sku_id <> ''" - } else { - sql += " AND t2.exd_sku_id = ''" - } - } else { - sql += " AND t2.exd_sku_id = ''" - } - sql += ` LEFT JOIN sku_name_place_bind t3 ON t1.id = t3.name_id ` sqlParams := []interface{}{ @@ -510,6 +498,16 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric } sql += ")" } + if params["isExd"] != nil { + var idExd = params["isExd"].(bool) + if idExd { + sql += " AND t2.exd_sku_id <> ''" + } else { + sql += " AND t2.exd_sku_id = ''" + } + } else { + sql += " AND t2.exd_sku_id = ''" + } if params["skuCategoryID"] != nil { cat := &model.SkuCategory{} cat.ID = params["skuCategoryID"].(int) @@ -591,49 +589,10 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric sql += " AND t2.status >= ? AND t2.status <= ?" sqlParams = append(sqlParams, fromStatus, toStatus) } - sql += ` - GROUP BY - t1.id, - t1.created_at, - t1.updated_at, - t1.last_operator, - t1.deleted_at, - t1.prefix, - t1.name, - t1.brand_id, - t1.category_id, - t1.jd_category_id, - t1.is_global, - t1.unit, - t1.price, - t1.img, - t1.img2, - t1.img3, - t1.img_watermark, - t1.img_mix, - t1.status, - t1.is_spu, - t1.desc_img, - t1.upc, - t1.ex_prefix, - t1.ex_prefix_begin, - t1.ex_prefix_end, - t1.yb_name_suffix, - t1.jds_stock_switch, - t1.preparation_time, - t1.best_seller - ` - if isQueryMidPrice { - sql += `, - t4.mid_unit_price` - } - if isBySku { - sql += `, - t2.id` - } sqlData := ` SELECT SQL_CALC_FOUND_ROWS + DISTINCT t1.id, t1.created_at, t1.updated_at, @@ -656,42 +615,22 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric t1.is_spu, t1.desc_img, t1.upc, - /* - t1.jd_id, - t1.jd_sync_status, - */ t1.ex_prefix, t1.ex_prefix_begin, t1.ex_prefix_end, t1.yb_name_suffix, t1.jds_stock_switch, t1.preparation_time, - t1.best_seller, + t1.best_seller ` if isQueryMidPrice { - sqlData += " t4.mid_unit_price," + sqlData += ",t4.mid_unit_price" } - sqlData += - ` - CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status, - ',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"), - '","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit, - '","exdSkuID":"', t2.exd_sku_id, - '","eclpID":"', t2.eclp_id, - '","weight":', t2.weight, ',"categoryID":', t2.category_id, ',"nameID":', t2.name_id, - ', "seq":', t2.seq, - ', "minOrderCount":', t2.min_order_count, - ', "ladderBoxNum":', t2.ladder_box_num, - ', "ladderBoxPrice":', t2.ladder_box_price, - "}")), "]") skus_str, - CONCAT("[", GROUP_CONCAT(DISTINCT t3.place_code), "]") places_str - ` + sql + ` - ORDER BY MIN(t2.seq), t1.id DESC + sqlData += sql + ` + ORDER BY t1.id DESC LIMIT ? OFFSET ?` pageSize = jxutils.FormalizePageSize(pageSize) offset = jxutils.FormalizePageOffset(offset) - fmt.Println(sqlData) - fmt.Println(sqlParams) sqlParams = append(sqlParams, pageSize, offset) skuNamesInfo = &SkuNamesInfo{} dao.Begin(db) // todo 这里用事务的原因是,SQL_CALC_FOUND_ROWS会出错 @@ -701,30 +640,28 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric panic(r) } }() - // globals.SugarLogger.Debug(sqlData) - // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db) dao.Commit(db) - var skuIDs []int + // var skuIDs []int for _, skuName := range skuNamesInfo.SkuNames { skuName.FullName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, "", "", 0, "", 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd) - if skuName.SkusStr != "" { - if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { - dao.Rollback(db) - return nil, err - } - for _, v := range skuName.Skus { - skuIDs = append(skuIDs, v.ID) - } - } - if skuName.PlacesStr != "" { - if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { - dao.Rollback(db) - return nil, err - } - } + // if skuName.SkusStr != "" { + // if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { + // dao.Rollback(db) + // return nil, err + // } + // for _, v := range skuName.Skus { + // skuIDs = append(skuIDs, v.ID) + // } + // } + // if skuName.PlacesStr != "" { + // if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { + // dao.Rollback(db) + // return nil, err + // } + // } skuVendorCats, _ := dao.GetSkuVendorCategoryMaps(db, []int{skuName.ID}, []int{model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDJDShop, model.VendorIDJD}, nil) if len(skuVendorCats) > 0 { for _, v := range skuVendorCats { @@ -742,15 +679,36 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric } } } - } - if len(skuIDs) > 0 { - thingMapMap, err2 := dao.GetThingMapMap(db, model.ThingTypeSku, nil, skuIDs) - if err = err2; err == nil { - for _, skuName := range skuNamesInfo.SkuNames { - for _, v := range skuName.Skus { - v.MapList = thingMapMap[int64(v.ID)] + var skus []*model.Sku + sql := ` + SELECT * FROM sku WEHRE deleted_at = ? AND name_id = ? + ` + sqlParams := []interface{}{utils.DefaultTimeValue, skuName.ID} + if err = dao.GetRows(db, &skus, sql, sqlParams); err == nil { + var skusVendors []*model.SkuWithVendor + for _, v := range skus { + skusVendor := &model.SkuWithVendor{ + Sku: v, } + skusVendors = append(skusVendors, skusVendor) } + skuName.Skus = skusVendors + // thingMapMap, err2 := dao.GetThingMapMap(db, model.ThingTypeSku, nil, nil) + // if err = err2; err == nil { + // for _, skuName := range skuNamesInfo.SkuNames { + // for _, v := range skuName.Skus { + // v.MapList = thingMapMap[int64(v.ID)] + // } + // } + // } + } + var places []*model.SkuNamePlaceBind + sql2 := ` + SELECT * FROM sku_name_place_bind WHERE name_id = ? + ` + sqlParams2 := []interface{}{skuName.ID} + if err = dao.GetRows(db, &places, sql2, sqlParams2); err == nil { + } } } else {