批量发货
This commit is contained in:
@@ -1222,6 +1222,17 @@ public class BuyOrderController {
|
||||
return buyOrderService.delivery(expressCompanyCode, buyOrderProductId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量订单发货(仅支持单商品且数量为1的订单,快递公司固定顺丰 SF)
|
||||
*
|
||||
* @param orderIds 订单 ID 列表
|
||||
* @return R,存在不符合条件的订单时 msg 为逗号拼接的订单号
|
||||
*/
|
||||
@RequestMapping(value = "/batchDelivery", method = RequestMethod.POST)
|
||||
public R batchDelivery(@RequestBody List<Integer> orderIds) throws Exception {
|
||||
return buyOrderService.batchDelivery("SF", orderIds);
|
||||
}
|
||||
|
||||
@RequestMapping("/mytest")
|
||||
public R mytest() throws IOException {
|
||||
String mytest = buyOrderService.mytest();
|
||||
|
||||
@@ -55,6 +55,14 @@ public interface BuyOrderService extends IService<BuyOrder> {
|
||||
*/
|
||||
R delivery(String expressCompanyCode, List<Integer> buyOrderDetailId);
|
||||
|
||||
/**
|
||||
* 批量订单发货(仅支持单商品且数量为1的订单)
|
||||
*
|
||||
* @param expressCompanyCode 快递公司代码
|
||||
* @param orderIds 订单 ID 列表
|
||||
*/
|
||||
R batchDelivery(String expressCompanyCode, List<Integer> orderIds);
|
||||
|
||||
Page<BuyOrder> orderList(BuyOrderListRequestVo requestVo, Boolean isHT);
|
||||
|
||||
Page<BuyOrder> getUserOrderList(UserOrderDto userOrderDto);
|
||||
|
||||
@@ -437,6 +437,22 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
List<Integer> collect = buyOrderProductDao.selectJoinList(BuyOrderProduct.class, buyOrderProductMPJLambdaWrapper).stream().map(BuyOrderProduct::getOrderId).collect(Collectors.toList());
|
||||
wrapper.in(BuyOrder::getOrderId,collect);
|
||||
}
|
||||
if(requestVo.getShowOne()!=null && requestVo.getShowOne()==1){
|
||||
List<Map<String, Object>> list = buyOrderProductService.listMaps(
|
||||
new QueryWrapper<BuyOrderProduct>()
|
||||
.select("order_id orderId")
|
||||
.groupBy("order_id")
|
||||
.having("COUNT(*) = 1 AND SUM(quantity) = 1")
|
||||
);
|
||||
List<Integer> collect = list.stream()
|
||||
.map(map -> ((Number) map.get("orderId")).intValue())
|
||||
.collect(Collectors.toList());
|
||||
if (collect.size() > 0) {
|
||||
wrapper.in(BuyOrder::getOrderId, collect);
|
||||
} else {
|
||||
wrapper.eq(BuyOrder::getOrderId, -1);
|
||||
}
|
||||
}
|
||||
Page<BuyOrder> buyOrderPage = getBaseMapper().selectPage(new Page<BuyOrder>(requestVo.getPageIndex(), requestVo.getPageSize()), wrapper);
|
||||
//丰富订单内容
|
||||
for (BuyOrder b : buyOrderPage.getRecords()){
|
||||
@@ -720,6 +736,40 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R batchDelivery(String expressCompanyCode, List<Integer> orderIds) {
|
||||
if (orderIds == null || orderIds.isEmpty()) {
|
||||
return R.error("订单列表不能为空");
|
||||
}
|
||||
List<Integer> distinctOrderIds = orderIds.stream().distinct().collect(Collectors.toList());
|
||||
List<String> invalidOrderSns = new ArrayList<>();
|
||||
List<Integer> buyOrderProductIds = new ArrayList<>();
|
||||
for (Integer orderId : distinctOrderIds) {
|
||||
BuyOrder buyOrder = getById(orderId);
|
||||
if (buyOrder == null) {
|
||||
invalidOrderSns.add(String.valueOf(orderId));
|
||||
continue;
|
||||
}
|
||||
List<BuyOrderProduct> products = buyOrderProductService.list(
|
||||
new LambdaQueryWrapper<BuyOrderProduct>().eq(BuyOrderProduct::getOrderId, orderId));
|
||||
if (products.size() != 1 || products.get(0).getQuantity() != 1) {
|
||||
invalidOrderSns.add(buyOrder.getOrderSn());
|
||||
} else {
|
||||
buyOrderProductIds.add(products.get(0).getId());
|
||||
}
|
||||
}
|
||||
if (!invalidOrderSns.isEmpty()) {
|
||||
return R.error(String.join(",", invalidOrderSns));
|
||||
}
|
||||
for (Integer buyOrderProductId : buyOrderProductIds) {
|
||||
R result = delivery(expressCompanyCode, Collections.singletonList(buyOrderProductId));
|
||||
if (!Integer.valueOf(0).equals(result.get("code"))) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
public String mytest() throws IOException {
|
||||
String html = "";
|
||||
File file = new File("D:/1.html");
|
||||
|
||||
@@ -55,4 +55,9 @@ public class BuyOrderListRequestVo {
|
||||
* 数据起始位置
|
||||
*/
|
||||
private Integer index;
|
||||
|
||||
/**
|
||||
* 过滤预售
|
||||
*/
|
||||
private Integer showOne;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user