2024-07-11 09:19:14 +00:00
|
|
|
package com.example.takeawaysystemserver.service.impl;
|
|
|
|
|
2024-07-13 03:43:27 +00:00
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
2024-07-11 09:19:14 +00:00
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
2024-07-13 03:43:27 +00:00
|
|
|
import com.example.takeawaysystemserver.constant.CommonStatusConstant;
|
|
|
|
import com.example.takeawaysystemserver.entity.*;
|
|
|
|
import com.example.takeawaysystemserver.mapper.OrderItemMapper;
|
|
|
|
import com.example.takeawaysystemserver.service.*;
|
2024-07-11 09:19:14 +00:00
|
|
|
import com.example.takeawaysystemserver.mapper.OrderMapper;
|
2024-07-13 03:43:27 +00:00
|
|
|
import com.example.takeawaysystemserver.util.R;
|
|
|
|
import jakarta.annotation.Resource;
|
2024-07-11 09:19:14 +00:00
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
2024-07-13 03:43:27 +00:00
|
|
|
import java.util.List;
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
2024-07-11 09:19:14 +00:00
|
|
|
/**
|
|
|
|
* @author qiushengyu
|
|
|
|
* @description 针对表【order】的数据库操作Service实现
|
|
|
|
* @createDate 2024-07-11 17:13:46
|
|
|
|
*/
|
|
|
|
@Service
|
2024-07-13 03:43:27 +00:00
|
|
|
public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderList>
|
2024-07-11 09:19:14 +00:00
|
|
|
implements OrderService{
|
2024-07-13 03:43:27 +00:00
|
|
|
@Resource
|
|
|
|
private UserServiceImpl userServiceImpl;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
private ShoppingCartService shoppingCartService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
private UserService userService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
private AddressService addressService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
private OrderItemService orderItemService;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public R<String> addOrders(String token, OrderList order) {
|
|
|
|
Integer id = Integer.parseInt(userServiceImpl.getUserId(token));
|
|
|
|
LambdaQueryWrapper<ShoppingCart> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
wrapper.eq(ShoppingCart::getUserId,id);
|
|
|
|
List<ShoppingCart> 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<OrderItem> 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);
|
2024-07-11 09:19:14 +00:00
|
|
|
|
2024-07-13 03:43:27 +00:00
|
|
|
return R.ok("添加成功");
|
|
|
|
}
|
2024-07-11 09:19:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|