|
@@ -5,7 +5,9 @@ import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
+import cn.newfeifan.mall.framework.common.mq.message.order.DistriOrderMessage;
|
|
|
import cn.newfeifan.mall.framework.common.pojo.PageResult;
|
|
|
+import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
|
|
|
import cn.newfeifan.mall.module.member.api.user.MemberUserApi;
|
|
|
import cn.newfeifan.mall.module.member.api.user.dto.MemberUserRespDTO;
|
|
|
import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
|
|
@@ -13,7 +15,9 @@ import cn.newfeifan.mall.module.product.api.sku.ProductSkuApi;
|
|
|
import cn.newfeifan.mall.module.product.api.sku.dto.ProductSkuRespDTO;
|
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
|
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
|
|
|
+import cn.newfeifan.mall.module.trade.controller.app.order.vo.AppTradeOrderDetailRespVO;
|
|
|
import cn.newfeifan.mall.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
|
|
|
+import cn.newfeifan.mall.module.trade.convert.order.TradeOrderConvert;
|
|
|
import cn.newfeifan.mall.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
|
|
|
import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderDO;
|
|
|
import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderItemDO;
|
|
@@ -25,16 +29,22 @@ import cn.newfeifan.mall.module.trade.enums.order.TradeOrderStatusEnum;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.ExpressClientFactory;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
|
|
|
+import cn.newfeifan.mall.module.trade.framework.order.config.TradeOrderProperties;
|
|
|
import cn.newfeifan.mall.module.trade.service.delivery.DeliveryExpressService;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
+import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
|
|
|
import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
+import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_NOT_EXISTS;
|
|
|
import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.ORDER_NOT_FOUND;
|
|
|
|
|
@@ -62,7 +72,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
|
|
|
|
|
|
@Resource
|
|
|
private ProductSkuApi productSkuApi;
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private TradeOrderProperties tradeOrderProperties;
|
|
|
|
|
|
// =================== Order ===================
|
|
|
|
|
@@ -166,7 +177,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
|
|
|
|
|
|
@Override
|
|
|
public Long getOrderCount(Integer status, Long shopId, Long merId) {
|
|
|
- return tradeOrderMapper.selectCountByStatus(status,shopId,merId);
|
|
|
+ return tradeOrderMapper.selectCountByStatus(status, shopId, merId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -185,7 +196,43 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
|
|
|
@Override
|
|
|
public Integer getShopSalesVolume(Long key) {
|
|
|
|
|
|
- return tradeOrderMapper.selectByMerId(key);
|
|
|
+ return tradeOrderMapper.selectByMerId(key);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<TradeOrderDO> getTodayOrder() {
|
|
|
+ // 获取7天之前的订单
|
|
|
+ LocalDateTime start = LocalDateTime.now().minusDays(1).minusDays(7).with(LocalTime.of(3, 0, 0));
|
|
|
+ LocalDateTime end = LocalDateTime.now().minusDays(7).with(LocalTime.of(2, 59, 59));
|
|
|
+
|
|
|
+ return tradeOrderMapper.selectList(new LambdaQueryWrapper<TradeOrderDO>().between(TradeOrderDO::getCreateTime, start, end)
|
|
|
+ .eq(TradeOrderDO::getStatus, 30).eq(TradeOrderDO::getPayStatus, true));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<AppTradeOrderDetailRespVO> cancelOrderBySystem() {
|
|
|
+
|
|
|
+ List<TradeOrderDO> order = getTodayOrder();
|
|
|
+ if (order.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ return order.stream().map(k -> {
|
|
|
+ // 查询订单项
|
|
|
+ List<TradeOrderItemDO> orderItems = getOrderItemListByOrderId(k.getId());
|
|
|
+ // 查询物流公司
|
|
|
+ DeliveryExpressDO express = k.getLogisticsId() != null && k.getLogisticsId() > 0 ?
|
|
|
+ deliveryExpressService.getDeliveryExpress(k.getLogisticsId()) : null;
|
|
|
+ // 最终组合
|
|
|
+ return TradeOrderConvert.INSTANCE.convert02(k, orderItems, tradeOrderProperties, express);
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DistriOrderMessage> queryAllOrder() {
|
|
|
+ // 获取7天之前的订单
|
|
|
+ LocalDateTime start = LocalDateTime.now().minusDays(1).minusDays(7).with(LocalTime.of(3, 0, 0));
|
|
|
+ LocalDateTime end = LocalDateTime.now().minusDays(7).with(LocalTime.of(2, 59, 59));
|
|
|
+ return tradeOrderMapper.queryAllOrder(start, end);
|
|
|
|
|
|
}
|
|
|
|