Ver Fonte

APP端商品详情增加到货通知逻辑

FengChaoYu há 20 horas atrás
pai
commit
aea63584a2

+ 3 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSpecSecBean.java

@@ -43,4 +43,7 @@ public class GoodsSpecSecBean extends GoodsSpec {
     @ApiModelProperty("满件条件最优惠的单价(满件商品才有该字段)")
     private BigDecimal promotionFullPiecePrice;
 
+    @ApiModelProperty("是否已记录到货通知")
+    private boolean adviceNotice = false;
+
 }

+ 24 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/goods/GoodsLogic.java

@@ -66,6 +66,8 @@ public class GoodsLogic {
     GoodsDetailService goodsDetailService;
     @Resource
     GoodsAdviceNoticeService goodsAdviceNoticeService;
+    @Resource
+    GoodsAdviceNoticeItemService goodsAdviceNoticeItemService;
 
     /**
      * 商品列表
@@ -207,6 +209,28 @@ public class GoodsLogic {
             if (goodsSpec.getOrgPrice().doubleValue() == 0) {
                 goodsSpec.setOrgPrice(goodsSpec.getOrgGoodsPrice());
             }
+
+            // 如果物料库存为0
+            if (goodsSpec.getStockNum() <= 0) {
+                final GoodsAdviceNotice notice = goodsAdviceNoticeService.lambdaQuery()
+                        .eq(GoodsAdviceNotice::getCompanyWechatId, goods.getCompanyWechatId())
+                        .eq(GoodsAdviceNotice::getGoodsId, goodsId)
+                        .eq(GoodsAdviceNotice::getGoodsSpecId, goodsSpec.getGoodsSpecId())
+                        .eq(GoodsAdviceNotice::getGoodsMaterialId, goodsSpec.getGoodsCode())
+                        .eq(GoodsAdviceNotice::getIsNotice, false)
+                        .one();
+
+                // 如果有到货通知未执行的
+                if (Objects.nonNull(notice)) {
+                    final Integer count = goodsAdviceNoticeItemService.lambdaQuery()
+                            .eq(GoodsAdviceNoticeItem::getGoodsAdviceNoticeId, notice.getId())
+                            .eq(GoodsAdviceNoticeItem::getUserId, user.getUserId())
+                            .count();
+                    if (count > 0) {
+                        goodsSpec.setAdviceNotice(true);
+                    }
+                }
+            }
         }
 
         // 总商品库存