Browse Source

商家端分类获取去重处理

multiwx
dy-hu 11 months ago
parent
commit
9607c212e3
  1. 13
      cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductClassifyServiceImpl.java

13
cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductClassifyServiceImpl.java

@ -35,6 +35,9 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@Service
@ -62,11 +65,12 @@ public class CereProductClassifyServiceImpl implements CereProductClassifyServic
@Override
public List<Classify> getFirstClassify(ClassifyParam param) throws CoBusinessException {
String project = ContextUtil.getProject();
List<Classify> classifies=null;
List<Long> classifyIdList = new ArrayList<>();
if(EmptyUtils.isEmpty(param.getClassifyId())){
//查询所有一级类目
classifies = cereProductClassifyDAO.getFirstClassify(ContextUtil.getProject(), null);
classifies = cereProductClassifyDAO.getFirstClassify(project, null);
}else {
//查询所有二级类目
classifies = cereProductClassifyDAO.getFirstClassify(ContextUtil.getProject(), param.getClassifyId());
@ -138,6 +142,8 @@ public class CereProductClassifyServiceImpl implements CereProductClassifyServic
param.setProject(ContextUtil.getProject());
List<Product> list=cereProductClassifyDAO.getClaasifyProducts(param);
if(!EmptyUtils.isEmpty(list)){
//可能会存在重复商品元素去重处理
list = list.stream().filter(distinctByKey(Product::getProductId)).collect(Collectors.toList());
list.forEach(a -> {
//查询付款人数
a.setUsers(cerePlatformShopservice.findPayUsers(a.getProductId()));
@ -157,6 +163,11 @@ public class CereProductClassifyServiceImpl implements CereProductClassifyServic
return page;
}
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
@Override
public Page getClassifyProducts2(ClassifyProductParam param, CereBuyerUser user) {
PageHelper.startPage(param.getPage(),param.getPageSize());

Loading…
Cancel
Save