Skip to content

Commit

Permalink
feature: 商城 BFF 层开发根据订单号查询订单 (#48)
Browse files Browse the repository at this point in the history
  • Loading branch information
magestacks committed Apr 18, 2023
1 parent eb08717 commit 1a9e4ce
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.opengoofy.congomall.bff.biz.service;

import org.opengoofy.congomall.bff.biz.dto.req.adapter.OrderCreateAdapterReqDTO;
import org.opengoofy.congomall.bff.biz.dto.resp.adapter.OrderAdapterRespDTO;
import org.opengoofy.congomall.bff.biz.dto.resp.adapter.OrderResultAdapterRespDTO;

/**
Expand Down Expand Up @@ -46,4 +47,12 @@ public interface OrderService {
* @return 订单列表返回数据
*/
OrderResultAdapterRespDTO listOrder(Integer page, Integer size, String userId);

/**
* 根据订单号查询订单详细记录
*
* @param orderSn 订单号
* @return 订单详细返回记录
*/
OrderAdapterRespDTO getOrderDetail(String orderSn);
}
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,43 @@ public OrderResultAdapterRespDTO listOrder(Integer page, Integer size, String us
}
return new OrderResultAdapterRespDTO(orderListResult.size(), orderListResult);
}

@Override
public OrderAdapterRespDTO getOrderDetail(String orderSn) {
Result<OrderRespDTO> orderDetailRemoteResult;
OrderRespDTO orderRespDTO;
try {
orderDetailRemoteResult = orderRemoteService.getOrderByOrderSn(orderSn);
if (!orderDetailRemoteResult.isSuccess() || orderDetailRemoteResult.getData() == null) {
throw new ServiceException("调用订单服务查询详情失败");
}
orderRespDTO = orderDetailRemoteResult.getData();
} catch (Throwable ex) {
log.error("调用订单服务查询详情失败", ex);
throw ex;
}
OrderAdapterRespDTO orderListResult = new OrderAdapterRespDTO();
orderListResult.setOrderId(orderRespDTO.getOrderSn());
orderListResult.setOrderTotal(orderRespDTO.getTotalAmount().intValue());
orderListResult.setOrderStatus(String.valueOf(orderRespDTO.getStatus()));
orderListResult.setFinishDate(orderRespDTO.getReceiveTime());
orderListResult.setCreateDate(orderRespDTO.getCreateTime());
OrderAddressAdapterRespDTO addressInfo = new OrderAddressAdapterRespDTO();
addressInfo.setTel(orderRespDTO.getCneePhone());
addressInfo.setStreetName(orderRespDTO.getCneeDetailAddress());
addressInfo.setUserName(orderRespDTO.getCneeName());
orderListResult.setAddressInfo(addressInfo);
List<OrderGoodsAdapterRespDTO> goodsList = new ArrayList<>();
for (OrderProductRespDTO item : orderRespDTO.getOrderProducts()) {
OrderGoodsAdapterRespDTO goods = new OrderGoodsAdapterRespDTO();
goods.setProductId(item.getProductId());
goods.setProductImg(item.getProductPic());
goods.setProductName(item.getProductName());
goods.setProductNum(item.getProductQuantity());
goods.setSalePrice(item.getProductPrice().intValue());
goodsList.add(goods);
}
orderListResult.setGoodsList(goodsList);
return orderListResult;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,10 @@ public interface OrderRemoteService {
*/
@GetMapping("/api/order/customer-user/{customerUserId}")
Result<List<OrderRespDTO>> getOrderByCustomerUserId(@PathVariable("customerUserId") String customerUserId);

/**
* 根据订单号查询订单信息
*/
@GetMapping("/api/order/{orderSn}")
Result<OrderRespDTO> getOrderByOrderSn(@PathVariable("orderSn") String orderSn);
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import lombok.RequiredArgsConstructor;
import org.opengoofy.congomall.bff.biz.common.ResultT;
import org.opengoofy.congomall.bff.biz.dto.req.adapter.OrderCreateAdapterReqDTO;
import org.opengoofy.congomall.bff.biz.dto.resp.adapter.OrderAdapterRespDTO;
import org.opengoofy.congomall.bff.biz.dto.resp.adapter.OrderResultAdapterRespDTO;
import org.opengoofy.congomall.bff.biz.service.OrderService;
import org.springframework.web.bind.annotation.GetMapping;
Expand Down Expand Up @@ -54,11 +55,21 @@ public ResultT<String> addOrder(@RequestBody OrderCreateAdapterReqDTO requestPar
@ApiOperation(value = "订单列表查询", notes = "订单列表查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "用户商品列表第几页", required = true, example = "1"),
@ApiImplicitParam(name = "size", value = "用户商品列表每页多少条数据", required = true, example = "10")
@ApiImplicitParam(name = "size", value = "用户商品列表每页多少条数据", required = true, example = "10"),
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, example = "1634554535496892416")
})
public ResultT<OrderResultAdapterRespDTO> listOrder(@RequestParam("page") Integer page,
@RequestParam("size") Integer size,
@RequestParam("userId") String userId) {
return ResultT.success(orderService.listOrder(page, size, userId));
}

@GetMapping("/member/orderDetail")
@ApiOperation(value = "订单查询", notes = "根据订单号查询订单")
@ApiImplicitParams({
@ApiImplicitParam(name = "orderId", value = "订单ID", required = true, example = "1648278169705656320")
})
public ResultT<OrderAdapterRespDTO> getOrderDetail(@RequestParam("orderId") String orderSn) {
return ResultT.success(orderService.getOrderDetail(orderSn));
}
}

0 comments on commit 1a9e4ce

Please sign in to comment.