|
|
@@ -48,6 +48,7 @@ import com.cyksj.mapper.manage.coupon.CouponUserMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.*;
|
|
|
import com.cyksj.mapper.market.task.TaskTypeMapper;
|
|
|
import com.cyksj.mapper.market.task.UserBindDetailMapper;
|
|
|
+import com.cyksj.mapper.order.ShoppingCartDonMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
|
|
|
import com.cyksj.model.dto.*;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
@@ -69,10 +70,7 @@ import com.cyksj.service.giftcard.GiftCardUserRecordService;
|
|
|
import com.cyksj.service.groups.GroupsFuncService;
|
|
|
import com.cyksj.service.market.MarketFrontService;
|
|
|
import com.cyksj.service.market.task.TaskService;
|
|
|
-import com.cyksj.service.order.OrderCommonService;
|
|
|
-import com.cyksj.service.order.OrderDonPostService;
|
|
|
-import com.cyksj.service.order.OrderDonService;
|
|
|
-import com.cyksj.service.order.OrderMasterDonService;
|
|
|
+import com.cyksj.service.order.*;
|
|
|
import com.cyksj.service.pay.AliPayCommonService;
|
|
|
import com.cyksj.service.relation.GroupRelationClearService;
|
|
|
import com.cyksj.service.relation.GroupRelationFrontService;
|
|
|
@@ -101,6 +99,7 @@ import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.cyksj.enums.GatewayApiCode.GROUP_INDEX_ALREADY_BE_USER;
|
|
|
import static com.cyksj.enums.GatewayApiCode.GROUP_INDEX_NOT_FIND;
|
|
|
@@ -240,6 +239,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final OrderMasterDonService orderMasterDonService;
|
|
|
|
|
|
+ private final ShoppingCartDonMapper shoppingCartDonMapper;
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@@ -584,6 +585,16 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
openId = user.getOpenId();
|
|
|
}
|
|
|
userId = user.getId();
|
|
|
+ List<Long> shopCartIds = payGoods.stream().filter(shopCart -> shopCart.getShopCartId() != null).map(OrderPayRequest::getShopCartId).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(shopCartIds)) {
|
|
|
+ //校验购物车中物品是否一致
|
|
|
+ Integer shopCartCount = shoppingCartDonMapper.selectCount(Wrappers.lambdaQuery(ShoppingCartDon.class)
|
|
|
+ .eq(ShoppingCartDon::getUserId, user.getId())
|
|
|
+ .in(ShoppingCartDon::getId, shopCartIds));
|
|
|
+ if (shopCartIds.size() != shopCartCount) {
|
|
|
+ throw BusinessRuntimeException.getInstance("购物车下单商品错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
for (OrderPayRequest payRequest : payGoods) {
|
|
|
GoodsDonSku sku = null;
|
|
|
Long goodsId;
|
|
|
@@ -910,6 +921,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
closeOrder(orderMasterDon.getId(), null);
|
|
|
});
|
|
|
}
|
|
|
+ if (CollUtil.isNotEmpty(shopCartIds)) {
|
|
|
+ shoppingCartDonMapper.deleteBatchIds(shopCartIds);
|
|
|
+ }
|
|
|
return orderMasterDon;
|
|
|
}
|
|
|
|