package com.ruoyi.order.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.core.enums.OrderStatusEnum;
|
import com.ruoyi.order.domain.pojo.OrderMall;
|
import com.ruoyi.order.mapper.OrderMapper;
|
import com.ruoyi.order.service.IOrderMallService;
|
import com.ruoyi.order.service.IOrderService;
|
import com.ruoyi.order.util.OrderUtil;
|
import com.ruoyi.system.api.domain.Order;
|
import com.ruoyi.system.api.domain.dto.OrderDTO;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
import javax.annotation.Resource;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* <p>
|
* 订单表 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2024-05-16
|
*/
|
@Service
|
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
|
|
|
@Resource
|
private IOrderService orderService;
|
@Resource
|
private IOrderMallService orderMallService;
|
@Override
|
public void saveOrderOne(OrderDTO OrderDTO) {
|
Order order=new Order();
|
String prefix = OrderUtil.getOrderNoForPrefix("XM");
|
order.setOrderNo(prefix);
|
order.setOrderTime(OrderDTO.getOrderTime());
|
order.setOrderFrom(OrderDTO.getOrderFrom());
|
order.setAuctionType(OrderDTO.getAuctionType());
|
order.setMemberId(OrderDTO.getMemberId());
|
order.setTotalAmount(OrderDTO.getTotalAmount());
|
order.setOrderStatus(OrderStatusEnum.TO_PLAY);
|
order.setGoodsQuantity(OrderDTO.getGoodsQuantity());
|
order.setReceiverName(OrderDTO.getReceiverName());
|
order.setReceiverphone(OrderDTO.getReceiverphone());
|
order.setReceiverCity(OrderDTO.getReceiverCity());
|
order.setReceiverDetailAddress(OrderDTO.getReceiverDetailAddress());
|
order.setBound(OrderDTO.getBound());
|
orderService.save(order);
|
}
|
|
/**
|
* 获取某个商品的已购会员数
|
*
|
* @param id 秒杀商品id
|
* @return 已购会员数
|
*/
|
@Override
|
public Integer getSeckillMembers(Long id) {
|
return baseMapper.getSeckillMembers(id);
|
}
|
|
/**
|
* 获取团购商品已购数量
|
*
|
* @param id 团购商品id
|
* @return 团购商品已购数量
|
*/
|
@Override
|
public Integer getGroupPurchasesGoodsNum(Long id) {
|
Set<Long> orderIdSet = orderMallService.lambdaQuery().eq(OrderMall::getActivityId, id)
|
.list()
|
.stream().map(OrderMall::getOrderId).collect(
|
Collectors.toSet());
|
List<Order> list = this.lambdaQuery().in(Order::getId, orderIdSet)
|
.in(Order::getOrderStatus, OrderStatusEnum.TO_BE_SHIPPED,
|
OrderStatusEnum.GOODS_TO_BE_RECEIVED, OrderStatusEnum.FINISHED).list();
|
return list.stream().map(Order::getGoodsQuantity).reduce(0, Integer::sum);
|
}
|
|
/**
|
* 根据团购商品id获取团购商品订单
|
*
|
* @param id 团购商品id
|
* @return 订单列表
|
*/
|
@Override
|
public List<Order> getOrderByGroupPurchaseId(Long id) {
|
return baseMapper.getOrderByGroupPurchaseId(id);
|
}
|
}
|