diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 0d7fc699..0abf45b8 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -79,6 +79,35 @@ public class OrderController extends BaseController { @Autowired private GoodsStandardService goodsStandardService; + @PostMapping("/can/assign") + @ResponseBody + public AjaxResult canAssign(@RequestBody AppOrderAssignRequest request){ + try { + // 找出原单的数量 + List orderGoodsList = orderGoodsService.selectByOrderMasterId(request.getOrderMasterId()); + // 找出原单关联的细单的商品数量 + List orderDetailList = orderDetailService.selectByOrderMasterId(request.getOrderMasterId()); + for (OrderDetail orderDetail : orderDetailList){ + // 子单数量 + List orderDetailGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId()); + + // 计算剩余未分配的商品数量 + for (OrderGoods detailGoods : orderDetailGoodsList) { + for(OrderGoods masterGoods : orderGoodsList){ + if(masterGoods.getGoodsStandardId() == detailGoods.getGoodsStandardId()){ + masterGoods.setGoodsNum(masterGoods.getGoodsNum() - detailGoods.getGoodsNum()); + } + } + } + } + //计算新单的数量 + return AjaxResult.success(orderGoodsList); + }catch (Exception e){ + e.printStackTrace(); + return AjaxResult.error(e.getMessage()); + } + } + @PostMapping("/assign") @ResponseBody @Transactional(rollbackFor = Exception.class) diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderGoods.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderGoods.java index d6c76156..50ea3b1a 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderGoods.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderGoods.java @@ -20,9 +20,12 @@ public class OrderGoods extends BaseEntity { @Excel(name = "订单商品id") private Long orderGoodsId; - @Excel(name = "订单id, 可以为主单或者细单", cellType = Excel.ColumnType.NUMERIC) + @Excel(name = "订单id, 主单", cellType = Excel.ColumnType.NUMERIC) private Long orderId; + @Excel(name = "子订单id, 细单", cellType = Excel.ColumnType.NUMERIC) + private Long orderDetailId; + @Excel(name = "商品规格id", cellType = Excel.ColumnType.NUMERIC) private Long goodsStandardId; diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java index 2e12acf7..3adead48 100644 --- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java @@ -37,6 +37,12 @@ public interface OrderDetailMapper { */ OrderDetail selectById(Long orderDetailId); + /** + * @param orderMasterId 主订单id + * @return 详细订单 + */ + List selectByOrderMasterId(@Param("orderMasterId") Long orderMasterId); + /** * 批量删除细单表信息 * diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderGoodsMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderGoodsMapper.java index 4375b595..8a83e08e 100644 --- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderGoodsMapper.java +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderGoodsMapper.java @@ -35,6 +35,8 @@ public interface OrderGoodsMapper { List selectByOrderId(Long orderId); + List selectByOrderDetailId(@Param("orderDetailId") Long orderDetailId); + /** * 批量删除订单商品信息 * diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java index 8e078cde..1a649b74 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java @@ -37,6 +37,12 @@ public interface OrderDetailService { */ OrderDetail selectById(Long orderDetailId); + /** + * @param orderMasterId 主订单id + * @return 详细订单 + */ + List selectByOrderMasterId(Long orderMasterId); + /** * @param ids 详细订单ids * @return 删除结果 diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderGoodsService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderGoodsService.java index d70a5352..06423d77 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderGoodsService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderGoodsService.java @@ -20,6 +20,8 @@ public interface OrderGoodsService { List selectByOrderMasterId(Long orderMasterId); + List selectByOrderDetailId(Long orderDetailId); + /** * @param orderGoods 订单商品属性 */ diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 662a5412..d830f0d0 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -53,6 +53,11 @@ public class OrderDetailServiceImpl implements OrderDetailService { return orderDetailMapper.selectById(orderDetailId); } + @Override + public List selectByOrderMasterId(Long orderMasterId) { + return orderDetailMapper.selectByOrderMasterId(orderMasterId); + } + @Override public int deleteOrderDetailByIds(String ids) { Long[] orderDetailIds = Convert.toLongArray(ids); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderGoodsServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderGoodsServiceImpl.java index bd018419..515659de 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderGoodsServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderGoodsServiceImpl.java @@ -31,6 +31,11 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { return orderGoodsMapper.selectByOrderId(orderMasterId); } + @Override + public List selectByOrderDetailId(Long orderDetailId) { + return orderGoodsMapper.selectByOrderDetailId(orderDetailId); + } + @Override public int updateOrderGoods(OrderGoods orderGoods) { Assert.notNull(orderGoods.getOrderGoodsId(), "OrderGoodsId cannot be null!"); diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 65c4bbeb..753ad61f 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -69,6 +69,11 @@ WHERE id = #{orderDetailId} + + + DELETE FROM order_detail WHERE id IN diff --git a/ghy-order/src/main/resources/mapper/order/OrderGoodsMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderGoodsMapper.xml index 2b80b5a0..a68db5c5 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderGoodsMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderGoodsMapper.xml @@ -96,6 +96,15 @@ + + DELETE FROM order_goods WHERE order_goods_id IN