|
@@ -237,18 +237,28 @@ public class UserDeliverOrderController extends BaseApiController {
|
|
|
}
|
|
|
|
|
|
List<Long> goodsIdList = prizeStorageList.stream().map(UserPrizeStorage::getGoodsId).collect(Collectors.toList());
|
|
|
- int count = goodsService.count(new LambdaQueryWrapper<Goods>()
|
|
|
- .in(Goods::getGoodsId, goodsIdList)
|
|
|
- .eq(Goods::getType, GoodsTypeEnum.REAL_GOODS.getValue()));
|
|
|
- // 比对是否所有商品都是实物商品
|
|
|
- if (goodsIdList.size() != count) {
|
|
|
- return AjaxResult.error("实物商品和卡密商品不能混合提货");
|
|
|
+ List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>()
|
|
|
+ .in(Goods::getGoodsId, goodsIdList));
|
|
|
+
|
|
|
+ Integer goodsType = goodsList.get(0).getType();
|
|
|
+ // 设置订单类型
|
|
|
+ if (GoodsTypeEnum.CARD_GOODS.getValue().equals(goodsType)) {
|
|
|
+ orderSettleVO.setOrderType(DeliverOrderTypeEnum.ORDINARY.getValue());
|
|
|
+ } else {
|
|
|
+ orderSettleVO.setOrderType(DeliverOrderTypeEnum.CARD.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ for (Goods goods : goodsList) {
|
|
|
+ if (!goodsType.equals(goods.getType())) {
|
|
|
+ return AjaxResult.error("实物商品和卡密商品不能混合提货");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 计算运费
|
|
|
UserAddr userAddr = orderSettleVO.getAddr();
|
|
|
// 地址不为空,并且是实物商品,计算运费
|
|
|
- if (Objects.nonNull(userAddr) && count > 0) {
|
|
|
+ if (Objects.nonNull(userAddr) && GoodsTypeEnum.REAL_GOODS.getValue().equals(goodsType)) {
|
|
|
// TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
|
|
|
ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(
|
|
|
shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());
|