|
|
@@ -20,8 +20,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@Service
|
|
|
@@ -41,17 +41,45 @@ public class GoodsRuleServiceImpl extends ServiceImpl<GoodsRuleMapper, GoodsRule
|
|
|
// List<GoodsRule> goodsRules = baseMapper.selectList(new QueryWrapper<GoodsRule>().eq(shopId!=null, "shop_id", shopId));
|
|
|
if(page==null || limit==null){
|
|
|
List<GoodsRule> goodsRules = baseMapper.selectList(new QueryWrapper<GoodsRule>().eq(shopId!=null, "shop_id", shopId));
|
|
|
- for (GoodsRule r : goodsRules) {
|
|
|
- r.setRuleValue(goodsRuleValueService.selectGoodsRuleValue(r.getId()));
|
|
|
+ List<Long> idList = goodsRules.stream().map(GoodsRule::getId).collect(Collectors.toList());
|
|
|
+ if (idList.size()>0) {
|
|
|
+ List<GoodsRuleValue> goodsRuleValueList = goodsRuleValueService.list(new QueryWrapper<GoodsRuleValue>().in("rule_id", idList));
|
|
|
+ Map<Long, ArrayList<GoodsRuleValue>> map = goodsRuleValueList.stream().collect(Collectors.toMap(
|
|
|
+ GoodsRuleValue::getRuleId,
|
|
|
+ goodsAttrValue -> new ArrayList<>(Collections.singletonList(goodsAttrValue)),
|
|
|
+ (oldList, newList) -> {
|
|
|
+ oldList.addAll(newList);
|
|
|
+ return oldList;
|
|
|
+ }
|
|
|
+ ));
|
|
|
+ for (GoodsRule r : goodsRules) {
|
|
|
+// r.setRuleValue(goodsRuleValueService.selectGoodsRuleValue(r.getId()));
|
|
|
+ r.setRuleValue(map.get(r.getId()));
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return Result.success().put("data",goodsRules);
|
|
|
}else{
|
|
|
Page<GoodsRule> pages=new Page<>(page,limit);
|
|
|
IPage<GoodsRule> goodsRules = goodsRuleMapper.selectRuleByShopId(pages,shopId, shopName);
|
|
|
List<GoodsRule> records = goodsRules.getRecords();
|
|
|
- for (GoodsRule r : records) {
|
|
|
- r.setRuleValue(goodsRuleValueService.selectGoodsRuleValue(r.getId()));
|
|
|
+ List<Long> idList = records.stream().map(GoodsRule::getId).collect(Collectors.toList());
|
|
|
+ if (idList.size()>0) {
|
|
|
+ List<GoodsRuleValue> goodsRuleValueList = goodsRuleValueService.list(new QueryWrapper<GoodsRuleValue>().in("rule_id", idList));
|
|
|
+ Map<Long, ArrayList<GoodsRuleValue>> map = goodsRuleValueList.stream().collect(Collectors.toMap(
|
|
|
+ GoodsRuleValue::getRuleId,
|
|
|
+ goodsAttrValue -> new ArrayList<>(Collections.singletonList(goodsAttrValue)),
|
|
|
+ (oldList, newList) -> {
|
|
|
+ oldList.addAll(newList);
|
|
|
+ return oldList;
|
|
|
+ }
|
|
|
+ ));
|
|
|
+ for (GoodsRule r : records) {
|
|
|
+// r.setRuleValue(goodsRuleValueService.selectGoodsRuleValue(r.getId()));
|
|
|
+ r.setRuleValue(map.get(r.getId()));
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return Result.success().put("data",goodsRules);
|
|
|
}
|
|
|
|