|
@@ -30,6 +30,7 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* 会员优惠券服务-实现类
|
|
@@ -142,9 +143,10 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
+ List<Map<String, Object>> projectGoodsList = new ArrayList<>();
|
|
|
//判断商品是否符合
|
|
|
if (!mercCoupon.getBoolean("isAllGoods")) {
|
|
|
- List<Map<String, Object>> projectGoodsList = goodsService.list(
|
|
|
+ projectGoodsList = goodsService.list(
|
|
|
new JHashMap<String, Object>()
|
|
|
.set("goodsIdList", goodsIdList)
|
|
|
.set("actId", memberCoupon.getCouponId())
|
|
@@ -155,13 +157,30 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //计算该券的商品总价
|
|
|
+ List<Map<String, Object>> finalProjectGoodsList = projectGoodsList;
|
|
|
+ Stream<JMap<String, Object>> jMapStream = goodsList.stream().filter(g -> {
|
|
|
+ if (mercCoupon.getBoolean("isAllGoods")) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ String goodsId = g.getString("goodsId");
|
|
|
+ for (Map<String, Object> projectGoods : finalProjectGoodsList) {
|
|
|
+ if (Objects.equals(projectGoods.get("goodsId"), goodsId)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ Integer couponGoodsPrice = jMapStream.map(g -> g.getInt("price") * g.getInt("num")).reduce(0, Integer::sum);
|
|
|
+
|
|
|
//判断价格是否符合
|
|
|
if (Objects.equals(mercCoupon.getString("type"), CouponTypeEnum.T_1.getCode())) {
|
|
|
//满减判断价格
|
|
|
JSONArray priceJson = JSONUtil.parseArray(mercCoupon.getString("price"));
|
|
|
JSONObject priceObject = priceJson.getJSONObject(0);
|
|
|
Integer limit = Integer.valueOf(priceObject.get("limit").toString());
|
|
|
- if (orderAmount < limit) {
|
|
|
+ if (couponGoodsPrice < limit) {
|
|
|
continue;
|
|
|
}
|
|
|
}
|