批量发货
This commit is contained in:
@@ -1222,6 +1222,17 @@ public class BuyOrderController {
|
|||||||
return buyOrderService.delivery(expressCompanyCode, buyOrderProductId);
|
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")
|
@RequestMapping("/mytest")
|
||||||
public R mytest() throws IOException {
|
public R mytest() throws IOException {
|
||||||
String mytest = buyOrderService.mytest();
|
String mytest = buyOrderService.mytest();
|
||||||
|
|||||||
@@ -55,6 +55,14 @@ public interface BuyOrderService extends IService<BuyOrder> {
|
|||||||
*/
|
*/
|
||||||
R delivery(String expressCompanyCode, List<Integer> buyOrderDetailId);
|
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> orderList(BuyOrderListRequestVo requestVo, Boolean isHT);
|
||||||
|
|
||||||
Page<BuyOrder> getUserOrderList(UserOrderDto userOrderDto);
|
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());
|
List<Integer> collect = buyOrderProductDao.selectJoinList(BuyOrderProduct.class, buyOrderProductMPJLambdaWrapper).stream().map(BuyOrderProduct::getOrderId).collect(Collectors.toList());
|
||||||
wrapper.in(BuyOrder::getOrderId,collect);
|
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);
|
Page<BuyOrder> buyOrderPage = getBaseMapper().selectPage(new Page<BuyOrder>(requestVo.getPageIndex(), requestVo.getPageSize()), wrapper);
|
||||||
//丰富订单内容
|
//丰富订单内容
|
||||||
for (BuyOrder b : buyOrderPage.getRecords()){
|
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 {
|
public String mytest() throws IOException {
|
||||||
String html = "";
|
String html = "";
|
||||||
File file = new File("D:/1.html");
|
File file = new File("D:/1.html");
|
||||||
|
|||||||
@@ -55,4 +55,9 @@ public class BuyOrderListRequestVo {
|
|||||||
* 数据起始位置
|
* 数据起始位置
|
||||||
*/
|
*/
|
||||||
private Integer index;
|
private Integer index;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 过滤预售
|
||||||
|
*/
|
||||||
|
private Integer showOne;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user