|
@@ -48,9 +48,18 @@ public class FsStoreUserEndCategoryScrmServiceImpl implements IFsStoreUserEndCat
|
|
|
List<FsStoreProductScrm> products = fsStoreProductScrmMapper.getStoreProductInProductIds(productIds);
|
|
List<FsStoreProductScrm> products = fsStoreProductScrmMapper.getStoreProductInProductIds(productIds);
|
|
|
Map<Long, FsStoreProductScrm> productMap = products.stream().collect(Collectors.toMap(FsStoreProductScrm::getProductId, p -> p, (a, b) -> a));
|
|
Map<Long, FsStoreProductScrm> productMap = products.stream().collect(Collectors.toMap(FsStoreProductScrm::getProductId, p -> p, (a, b) -> a));
|
|
|
List<FsStoreProductTagNameVO> tagNames = productTagRelationMapper.selectProductTagNamesByProductIds(productIds);
|
|
List<FsStoreProductTagNameVO> tagNames = productTagRelationMapper.selectProductTagNamesByProductIds(productIds);
|
|
|
- Map<Long, List<String>> tagMap = new LinkedHashMap<>();
|
|
|
|
|
|
|
+ // 按商品ID分组,每个商品的标签列表按sort排序
|
|
|
|
|
+ Map<Long, List<FsStoreProductTagNameVO>> tagVoMap = new LinkedHashMap<>();
|
|
|
for (FsStoreProductTagNameVO tn : tagNames) {
|
|
for (FsStoreProductTagNameVO tn : tagNames) {
|
|
|
- tagMap.computeIfAbsent(tn.getProductId(), k -> new ArrayList<>()).add(tn.getTagName());
|
|
|
|
|
|
|
+ tagVoMap.computeIfAbsent(tn.getProductId(), k -> new ArrayList<>()).add(tn);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 转换为标签名称列表,已按sort排序(SQL已排序)
|
|
|
|
|
+ Map<Long, List<String>> tagMap = new LinkedHashMap<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<FsStoreProductTagNameVO>> entry : tagVoMap.entrySet()) {
|
|
|
|
|
+ List<String> tagNameList = entry.getValue().stream()
|
|
|
|
|
+ .map(FsStoreProductTagNameVO::getTagName)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ tagMap.put(entry.getKey(), tagNameList);
|
|
|
}
|
|
}
|
|
|
List<FsStoreUserEndCategoryProductVO> result = new ArrayList<>();
|
|
List<FsStoreUserEndCategoryProductVO> result = new ArrayList<>();
|
|
|
for (Long pid : productIds) {
|
|
for (Long pid : productIds) {
|
|
@@ -87,9 +96,18 @@ public class FsStoreUserEndCategoryScrmServiceImpl implements IFsStoreUserEndCat
|
|
|
List<FsStoreProductScrm> products = fsStoreProductScrmMapper.getStoreProductInProductIdsForApp(productIds);
|
|
List<FsStoreProductScrm> products = fsStoreProductScrmMapper.getStoreProductInProductIdsForApp(productIds);
|
|
|
Map<Long, FsStoreProductScrm> productMap = products.stream().collect(Collectors.toMap(FsStoreProductScrm::getProductId, p -> p, (a, b) -> a));
|
|
Map<Long, FsStoreProductScrm> productMap = products.stream().collect(Collectors.toMap(FsStoreProductScrm::getProductId, p -> p, (a, b) -> a));
|
|
|
List<FsStoreProductTagNameVO> tagNames = productTagRelationMapper.selectProductTagNamesByProductIds(productIds);
|
|
List<FsStoreProductTagNameVO> tagNames = productTagRelationMapper.selectProductTagNamesByProductIds(productIds);
|
|
|
- Map<Long, List<String>> tagMap = new LinkedHashMap<>();
|
|
|
|
|
|
|
+ // 按商品ID分组,每个商品的标签列表按sort排序
|
|
|
|
|
+ Map<Long, List<FsStoreProductTagNameVO>> tagVoMap = new LinkedHashMap<>();
|
|
|
for (FsStoreProductTagNameVO tn : tagNames) {
|
|
for (FsStoreProductTagNameVO tn : tagNames) {
|
|
|
- tagMap.computeIfAbsent(tn.getProductId(), k -> new ArrayList<>()).add(tn.getTagName());
|
|
|
|
|
|
|
+ tagVoMap.computeIfAbsent(tn.getProductId(), k -> new ArrayList<>()).add(tn);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 转换为标签名称列表,已按sort排序(SQL已排序)
|
|
|
|
|
+ Map<Long, List<String>> tagMap = new LinkedHashMap<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<FsStoreProductTagNameVO>> entry : tagVoMap.entrySet()) {
|
|
|
|
|
+ List<String> tagNameList = entry.getValue().stream()
|
|
|
|
|
+ .map(FsStoreProductTagNameVO::getTagName)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ tagMap.put(entry.getKey(), tagNameList);
|
|
|
}
|
|
}
|
|
|
List<FsStoreUserEndCategoryProductVO> result = new ArrayList<>();
|
|
List<FsStoreUserEndCategoryProductVO> result = new ArrayList<>();
|
|
|
for (Long pid : productIds) {
|
|
for (Long pid : productIds) {
|