package com.example.takeawaysystemserver.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.takeawaysystemserver.constant.CommonStatusConstant; import com.example.takeawaysystemserver.entity.*; import com.example.takeawaysystemserver.mapper.OrderItemMapper; import com.example.takeawaysystemserver.service.*; import com.example.takeawaysystemserver.mapper.OrderMapper; import com.example.takeawaysystemserver.util.R; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** * @author qiushengyu * @description 针对表【order】的数据库操作Service实现 * @createDate 2024-07-11 17:13:46 */ @Service public class OrderServiceImpl extends ServiceImpl implements OrderService{ @Resource private UserServiceImpl userServiceImpl; @Resource private ShoppingCartService shoppingCartService; @Resource private UserService userService; @Resource private AddressService addressService; @Resource private OrderItemService orderItemService; @Override public R addOrders(String token, OrderList order) { Integer id = Integer.parseInt(userServiceImpl.getUserId(token)); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ShoppingCart::getUserId,id); List shoppingCarts = shoppingCartService.list(wrapper); if (shoppingCarts == null || shoppingCarts.isEmpty()){ return R.fail(CommonStatusConstant.SHOPPINGCART_ERROR); } System.out.println(order); User user = userService.getById(id); Integer addressId = order.getAddressId(); Address address = addressService.getById(addressId); System.out.println(address); if (address == null){ return R.fail(CommonStatusConstant.ADDRESS_ERROR); } long orderId = IdWorker.getId(); AtomicInteger amount = new AtomicInteger(0); List orderItems = shoppingCarts.stream().map((item) -> { OrderItem orderItem = new OrderItem(); orderItem.setOrderId(orderId); orderItem.setCount(item.getNumber()); orderItem.setDishId(item.getDishId()); orderItem.setPrice(item.getAmount()); return orderItem; }).toList(); order.setId(orderId); order.setUserId(id); order.setAddress((address.getProvince() == null ? "" : address.getProvince()) + (address.getCity() == null ? "" : address.getCity()) + (address.getDistrict() == null ? "" : address.getDistrict()) + (address.getDetail() == null ? "" : address.getDetail())); System.out.println(order); boolean save = this.save(order); if (!save){ return R.fail(CommonStatusConstant.INSERT_ERROR); } boolean b = orderItemService.saveBatch(orderItems); if (!b){ return R.fail(CommonStatusConstant.INSERT_ERROR); } shoppingCartService.remove(wrapper); return R.ok("添加成功"); } }