Selaa lähdekoodia

fix 处理sql过慢

zoujiajian 3 vuotta sitten
vanhempi
sitoutus
b0e68997de

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonPopularizeView.java

@@ -88,7 +88,7 @@ public class GoodsDonPopularizeView {
 	/**
 	 * 已售
 	 */
-	@DbField("select count(*) from order_don od where od.status not in ('close','noPayment') and od.goods_id = g.id")
+	@DbIgnore
 	private Integer sold;
 
 	/**

+ 3 - 1
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -99,7 +99,9 @@ public class GoodsDonController {
             });
             data.setSpecs(beanSearcher.searchFirst(GoodsDonSpec.class, MapUtils.builder().field(GoodsDonSpec::getGoodsId, data.getId()).build()));
             data.setSkuList(beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, data.getId()).field(GoodsDonSku::getStatus, true).build()));
-            data.setSold(data.getSold() + data.getVirtualSold());
+            Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
+                    .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
+            data.setSold(sold + data.getVirtualSold());
             SearchResult<OrderComment> orderComments = beanSearcher.search(OrderComment.class,
                     MapUtils.builder().field(OrderComment::getGoodsId, data.getId())
                             .orderBy(OrderComment::getId).desc()