TakeawaySystemServer/src/main/java/com/example/takeawaysystemserver/service/impl/OrderServiceImpl.java

102 lines
3.4 KiB
Java
Raw Normal View History

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;
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.*;
import com.example.takeawaysystemserver.mapper.OrderMapper;
2024-07-13 03:43:27 +00:00
import com.example.takeawaysystemserver.util.R;
import jakarta.annotation.Resource;
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;
/**
* @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>
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-13 03:43:27 +00:00
return R.ok("添加成功");
}
}