show(@ApiParam(name = "orderNo", value = "订单id", readOnly = true) @PathVariable Long orderId) {
+ try {
+ OrderInfo orderInfo = orderInfoService.getOrderInfoById(orderId);
+ return Result.ok(orderInfo);
+ } catch (Exception e) {
+ throw new RuntimeException("获取订单详情信息异常", e);
+ }
+ }
+
+
+}
diff --git a/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/OrderInfoService.java b/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/OrderInfoService.java
index 42571d7..bea2237 100644
--- a/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/OrderInfoService.java
+++ b/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/OrderInfoService.java
@@ -1,12 +1,13 @@
package com.yovinchen.xlcs.order.service;
-import com.yovinchen.xlcs.model.order.OrderInfo;
-import com.yovinchen.xlcs.vo.order.OrderConfirmVo;
-import com.yovinchen.xlcs.vo.order.OrderSubmitVo;
-import com.yovinchen.xlcs.vo.order.OrderUserQueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.yovinchen.xlcs.model.order.OrderInfo;
+import com.yovinchen.xlcs.vo.order.OrderConfirmVo;
+import com.yovinchen.xlcs.vo.order.OrderQueryVo;
+import com.yovinchen.xlcs.vo.order.OrderSubmitVo;
+import com.yovinchen.xlcs.vo.order.OrderUserQueryVo;
/**
*
@@ -57,11 +58,20 @@ public interface OrderInfoService extends IService {
void orderPay(String orderNo);
/**
- * 订单查询
+ * 订单(用户)查询
*
* @param pageParam
* @param orderUserQueryVo
* @return
*/
IPage getOrderInfoByUserIdPage(Page pageParam, OrderUserQueryVo orderUserQueryVo);
+
+ /**
+ * 订单(后台)查询
+ *
+ * @param pageParam
+ * @param orderQueryVo
+ * @return
+ */
+ IPage selectPage(Page pageParam, OrderQueryVo orderQueryVo);
}
diff --git a/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/impl/OrderInfoServiceImpl.java b/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/impl/OrderInfoServiceImpl.java
index 1043fa4..c08adfd 100644
--- a/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/impl/OrderInfoServiceImpl.java
+++ b/xlcs-parent/service/service-order/src/main/java/com/yovinchen/xlcs/order/service/impl/OrderInfoServiceImpl.java
@@ -1,5 +1,9 @@
package com.yovinchen.xlcs.order.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yovinchen.xlcs.client.activity.ActivityFeignClient;
import com.yovinchen.xlcs.client.cart.CartFeignClient;
import com.yovinchen.xlcs.client.product.ProductFeignClient;
@@ -15,23 +19,15 @@ import com.yovinchen.xlcs.model.activity.CouponInfo;
import com.yovinchen.xlcs.model.order.CartInfo;
import com.yovinchen.xlcs.model.order.OrderInfo;
import com.yovinchen.xlcs.model.order.OrderItem;
-import com.yovinchen.xlcs.enums.*;
import com.yovinchen.xlcs.mq.constant.MqConst;
import com.yovinchen.xlcs.mq.service.RabbitService;
import com.yovinchen.xlcs.order.mapper.OrderInfoMapper;
import com.yovinchen.xlcs.order.mapper.OrderItemMapper;
import com.yovinchen.xlcs.order.service.OrderInfoService;
import com.yovinchen.xlcs.order.service.OrderItemService;
-import com.yovinchen.xlcs.vo.order.CartInfoVo;
-import com.yovinchen.xlcs.vo.order.OrderConfirmVo;
-import com.yovinchen.xlcs.vo.order.OrderSubmitVo;
-import com.yovinchen.xlcs.vo.order.OrderUserQueryVo;
+import com.yovinchen.xlcs.vo.order.*;
import com.yovinchen.xlcs.vo.product.SkuStockLockVo;
import com.yovinchen.xlcs.vo.user.LeaderAddressVo;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.data.redis.core.RedisTemplate;
@@ -98,7 +94,8 @@ public class OrderInfoServiceImpl extends ServiceImpl cartInfoList = cartFeignClient.getCartCheckedList(userId);
//2、购物车有很多商品,商品不同类型,重点处理普通类型商品
- List commonSkuList = cartInfoList.stream().filter(cartInfo -> Objects.equals(cartInfo.getSkuType(), SkuType.COMMON.getCode())).collect(Collectors.toList());
+ List commonSkuList = cartInfoList.stream()
+ .filter(cartInfo -> Objects.equals(cartInfo.getSkuType(), SkuType.COMMON.getCode()))
+ .collect(Collectors.toList());
//3、把获取购物车里面普通类型商品list集合,
// List转换List
if (!CollectionUtils.isEmpty(commonSkuList)) {
- List commonStockLockVoList = commonSkuList.stream().map(item -> {
- SkuStockLockVo skuStockLockVo = new SkuStockLockVo();
- skuStockLockVo.setSkuId(item.getSkuId());
- skuStockLockVo.setSkuNum(item.getSkuNum());
- return skuStockLockVo;
- }).collect(Collectors.toList());
+ List commonStockLockVoList = commonSkuList.stream()
+ .map(item -> {
+ SkuStockLockVo skuStockLockVo = new SkuStockLockVo();
+ skuStockLockVo.setSkuId(item.getSkuId());
+ skuStockLockVo.setSkuNum(item.getSkuNum());
+ return skuStockLockVo;
+ })
+ .collect(Collectors.toList());
//4、远程调用service-product模块实现锁定商品
//// 验证库存并锁定库存,保证具备原子性
@@ -187,7 +188,7 @@ public class OrderInfoServiceImpl extends ServiceImpl hashOperations = redisTemplate.boundHashOps(orderSkuKey);
cartInfoList.forEach(cartInfo -> {
- if (Boolean.TRUE.equals(hashOperations.hasKey(cartInfo.getSkuId().toString()))) {
- Integer orderSkuNum = hashOperations.get(cartInfo.getSkuId().toString()) + cartInfo.getSkuNum();
- hashOperations.put(cartInfo.getSkuId().toString(), orderSkuNum);
+ if (Boolean.TRUE.equals(hashOperations.hasKey(cartInfo.getSkuId()
+ .toString()))) {
+ Integer orderSkuNum = hashOperations.get(cartInfo.getSkuId()
+ .toString()) + cartInfo.getSkuNum();
+ hashOperations.put(cartInfo.getSkuId()
+ .toString(), orderSkuNum);
}
});
redisTemplate.expire(orderSkuKey, DateUtil.getCurrentExpireTimes(), TimeUnit.SECONDS);
@@ -355,7 +363,7 @@ public class OrderInfoServiceImpl extends ServiceImpl selectPage(Page pageParam, OrderQueryVo orderQueryVo) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ //获取查询信息
+ String receiver = orderQueryVo.getReceiver();
+ String orderNo = orderQueryVo.getOrderNo();
+ OrderStatus orderStatus = orderQueryVo.getOrderStatus();
+ Long leaderId = orderQueryVo.getLeaderId();
+ Long wareId = orderQueryVo.getWareId();
+ String createTimeBegin = orderQueryVo.getCreateTimeBegin();
+ String createTimeEnd = orderQueryVo.getCreateTimeEnd();
+ //拼接查询信息
+ wrapper.like(!StringUtils.isEmpty(receiver), OrderInfo::getReceiverName, receiver)
+ .or()
+ .like(!StringUtils.isEmpty(receiver), OrderInfo::getReceiverPhone, receiver)
+ .eq(!StringUtils.isEmpty(orderNo), OrderInfo::getOrderNo, orderNo)
+ .eq(!StringUtils.isEmpty(orderStatus), OrderInfo::getOrderStatus, orderStatus)
+ .eq(!StringUtils.isEmpty(leaderId), OrderInfo::getLeaderId, leaderId)
+ .eq(!StringUtils.isEmpty(wareId), OrderInfo::getWareId, wareId)
+ .ge(!StringUtils.isEmpty(createTimeBegin), OrderInfo::getCreateTime, createTimeBegin)
+ .le(!StringUtils.isEmpty(createTimeEnd), OrderInfo::getCreateTime, createTimeEnd);
+
+
+ IPage pageModel = baseMapper.selectPage(pageParam, wrapper);
+
+ //获取每个订单,把每个订单里面订单项查询封装
+ List orderInfoList = pageModel.getRecords();
+ for (OrderInfo orderInfo : orderInfoList) {
+ //根据订单id查询里面所有订单项列表
+ List orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper()
+ .eq(OrderItem::getOrderId, orderInfo.getId()));
+ //把订单项集合封装到每个订单里面
+ orderInfo.setOrderItemList(orderItemList);
+ //封装订单状态名称
+ orderInfo.getParam()
+ .put("orderStatusName", orderInfo.getOrderStatus()
+ .getComment());
}
return pageModel;
}
@@ -393,7 +451,8 @@ public class OrderInfoServiceImpl extends ServiceImpl cartInfoList) {
BigDecimal total = new BigDecimal(0);
for (CartInfo cartInfo : cartInfoList) {
- BigDecimal itemTotal = cartInfo.getCartPrice().multiply(new BigDecimal(cartInfo.getSkuNum()));
+ BigDecimal itemTotal = cartInfo.getCartPrice()
+ .multiply(new BigDecimal(cartInfo.getSkuNum()));
total = total.add(itemTotal);
}
return total;
@@ -424,12 +483,14 @@ public class OrderInfoServiceImpl extends ServiceImpl impl
Long categoryId = skuInfoQueryVo.getCategoryId();
//封装条件
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
- if (!StringUtils.isEmpty(keyword)) {
- wrapper.like(SkuInfo::getSkuName, keyword);
- }
- if (!StringUtils.isEmpty(skuType)) {
- wrapper.eq(SkuInfo::getSkuType, skuType);
- }
- if (!StringUtils.isEmpty(categoryId)) {
- wrapper.eq(SkuInfo::getCategoryId, categoryId);
- }
+ // 动态添加条件
+ wrapper.like(!StringUtils.isEmpty(keyword), SkuInfo::getSkuName, keyword)
+ .eq(!StringUtils.isEmpty(skuType), SkuInfo::getSkuType, skuType)
+ .eq(!StringUtils.isEmpty(categoryId), SkuInfo::getCategoryId, categoryId);
+
//调用方法查询
return baseMapper.selectPage(pageParam, wrapper);
}