diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java index 910e309..3850ade 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java @@ -290,15 +290,22 @@ public class ReturnApprovalApplicationService { orderGoodsModel.setStatus(2); // 6表示已完成退货 orderGoodsModel.updateById(); - // 更新商品库存 - GoodsModel goodsModel = goodsModelFactory.loadById(orderGoodsModel.getGoodsId()); - goodsModel.setStock(goodsModel.getStock() + orderGoodsModel.getQuantity()); - goodsModel.updateById(); + if (orderGoodsModel.getMode()!= null && orderGoodsModel.getMode().equals(3)) { + // 模式为3,需要更新柜子格口状态 + CabinetCellEntity cell = cabinetCellService.getById(orderGoodsModel.getCellId()); + cell.setIsRented(0); + cell.updateById(); + } else { + // 更新商品库存 + GoodsModel goodsModel = goodsModelFactory.loadById(orderGoodsModel.getGoodsId()); + goodsModel.setStock(goodsModel.getStock() + orderGoodsModel.getQuantity()); + goodsModel.updateById(); - // 更新格口库存 - CabinetCellModel cabinetCellModel = cabinetCellModelFactory.loadById(orderGoodsModel.getCellId()); - cabinetCellModel.setStock(cabinetCellModel.getStock() + orderGoodsModel.getQuantity()); - cabinetCellModel.updateById(); + // 更新格口库存 + CabinetCellModel cabinetCellModel = cabinetCellModelFactory.loadById(orderGoodsModel.getCellId()); + cabinetCellModel.setStock(cabinetCellModel.getStock() + orderGoodsModel.getQuantity()); + cabinetCellModel.updateById(); + } } @@ -729,9 +736,7 @@ public class ReturnApprovalApplicationService { orderGoodsModel.setStatus(5); orderGoodsModel.updateById(); - GoodsModel goodsModel = goodsModelFactory.loadById(orderGoods.getGoodsId()); - // 如果商品免审批,则自动审批 - if (goodsModel.getAutoApproval().equals(1)) { + if (orderGoods.getMode() != null && orderGoods.getMode().equals(3)) { UpdateReturnApprovalCommand approveCommand = new UpdateReturnApprovalCommand(); approveCommand.setCorpid(command.getCorpid()); approveCommand.setApprovalId(returnApprovalModel.getApprovalId()); @@ -739,6 +744,18 @@ public class ReturnApprovalApplicationService { approveCommand.setAuditName("自动审批"); approveCommand.setAuditRemark("自动审批"); approveApproval(approveCommand); + } else { + GoodsModel goodsModel = goodsModelFactory.loadById(orderGoods.getGoodsId()); + // 如果商品免审批,则自动审批 + if (goodsModel.getAutoApproval().equals(1)) { + UpdateReturnApprovalCommand approveCommand = new UpdateReturnApprovalCommand(); + approveCommand.setCorpid(command.getCorpid()); + approveCommand.setApprovalId(returnApprovalModel.getApprovalId()); + approveCommand.setReturnAmount(orderGoods.getTotalAmount()); + approveCommand.setAuditName("自动审批"); + approveCommand.setAuditRemark("自动审批"); + approveApproval(approveCommand); + } } // 发送审核消息 diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java index d8b6179..1bbb39f 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java @@ -182,6 +182,7 @@ public class OrderApplicationService { orderModel.setUserid(command.getQyUserid()); orderModel.setName(command.getName()); orderModel.setIsDeductStock(0); + orderModel.setMode(command.getMode()); orderModel.insert(); goodsList.forEach(goods -> { @@ -326,12 +327,18 @@ public class OrderApplicationService { goodsModel.setUpdateTime(new Date()); goodsModel.setDeleted(false); - // 计算商品金额并验证库存 - goodsModel.calculateTotal(); - goodsModel.validateQuantity(); CabinetCellEntity cabinetCellEntity = cabinetCellService.getById(goodsModel.getCellId()); - if (cabinetCellEntity == null || cabinetCellEntity.getStock() < goodsModel.getQuantity()) { - throw new ApiException(ErrorCode.FAILED, "柜子库存不足"); + + if (orderModel.getMode() != null && orderModel.getMode().equals(3)) { + goodsModel.setPrice(cabinetCellEntity.getCellPrice()); + goodsModel.setTotalAmount(cabinetCellEntity.getCellPrice()); + } else { + // 计算商品金额并验证库存 + goodsModel.calculateTotal(); + goodsModel.validateQuantity(); + if (cabinetCellEntity == null || cabinetCellEntity.getStock() < goodsModel.getQuantity()) { + throw new ApiException(ErrorCode.FAILED, "柜子库存不足"); + } } // 保存订单商品 diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/command/SubmitOrderCommand.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/command/SubmitOrderCommand.java index ef157ac..96ed1ac 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/command/SubmitOrderCommand.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/command/SubmitOrderCommand.java @@ -31,6 +31,9 @@ public class SubmitOrderCommand { @ApiModelProperty("联系电话") private String mobile; + @ApiModelProperty("运行模式(0-支付模式 1-审批模式 2-借还模式 3-会员模式 4-耗材模式)") + private Integer mode; + @ApiModelProperty("企业微信用户ID或汇邦云用户ID") private String qyUserid; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/model/OrderModel.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/model/OrderModel.java index 0608442..2a58a31 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/model/OrderModel.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/model/OrderModel.java @@ -10,6 +10,7 @@ import com.agileboot.domain.cabinet.cell.db.CabinetCellService; import com.agileboot.domain.shop.goods.db.ShopGoodsEntity; import com.agileboot.domain.shop.goods.db.ShopGoodsService; import com.agileboot.domain.shop.order.db.ShopOrderEntity; +import com.agileboot.domain.shop.order.db.ShopOrderGoodsEntity; import com.agileboot.domain.shop.order.db.ShopOrderGoodsService; import com.agileboot.domain.shop.order.db.ShopOrderService; import java.math.BigDecimal; @@ -98,10 +99,19 @@ public class OrderModel extends ShopOrderEntity { this.updateById(); if (!isDeductStock) { - orderGoodsService.selectByOrderId(this.getOrderId()).forEach(orderGoods -> { - // 扣减库存 - deductGoodsStock(orderGoods.getGoodsId(), orderGoods.getQuantity(), orderGoods.getCellId()); - }); + List orderGoodsList = orderGoodsService.selectByOrderId(this.getOrderId()); + if (this.getMode() != null && this.getMode().equals(3)) { + for (ShopOrderGoodsEntity orderGoods : orderGoodsList) { + CabinetCellEntity cell = cabinetCellService.getById(orderGoods.getCellId()); + cell.setIsRented(1); + cell.updateById(); + } + } else { + orderGoodsList.forEach(orderGoods -> { + // 扣减库存 + deductGoodsStock(orderGoods.getGoodsId(), orderGoods.getQuantity(), orderGoods.getCellId()); + }); + } } }