|
|
@@ -146,9 +146,7 @@ public class GoodsDonController {
|
|
|
.select(GoodsDonSku::getPrice));
|
|
|
Optional.ofNullable(goodsDonSku).ifPresent(sku -> {
|
|
|
goods.setPrice(goodsDonSku.getPrice());
|
|
|
- goods.setSoldNum(goods.getVirtualSold() + orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, goods.getId())
|
|
|
- .notIn(OrderDon::getStatus, Constant.noOrderStatus)));
|
|
|
+ goods.setSoldNum(getGoodsSold(goods.getId(), goods.getVirtualSold()));
|
|
|
});
|
|
|
});
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
@@ -171,11 +169,9 @@ public class GoodsDonController {
|
|
|
search.getDataList().forEach(data -> {
|
|
|
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).orderBy(GoodsDonSku::getPrice).asc().build()));
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getVirtualSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getVirtualSold()));
|
|
|
|
|
|
- Optional.ofNullable(data.getSkuList()).ifPresent(skuList -> {
|
|
|
+ Optional.ofNullable(data.getSkuList()).ifPresent(skuList -> {
|
|
|
if (skuList.size() > 0) {
|
|
|
GoodsDonSku goodsDonSku = skuList.get(0);
|
|
|
data.setPrice(goodsDonSku.getPrice());
|
|
|
@@ -254,9 +250,7 @@ public class GoodsDonController {
|
|
|
}
|
|
|
DateTime now = DateTime.now();
|
|
|
list.forEach(data -> {
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, null));
|
|
|
|
|
|
//设置特定价格
|
|
|
@@ -299,9 +293,7 @@ public class GoodsDonController {
|
|
|
|
|
|
DateTime now = DateTime.now();
|
|
|
list.forEach(data -> {
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, null));
|
|
|
|
|
|
//设置特定价格
|
|
|
@@ -371,9 +363,7 @@ public class GoodsDonController {
|
|
|
builder.orderBy(GoodsDonSkuFrontView::getSorted).asc();
|
|
|
}
|
|
|
views.setSkuList(beanSearcher.searchAll(GoodsDonSkuFrontView.class, builder.build()));
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, views.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- views.setSold(sold + views.getSold());
|
|
|
+ views.setSold(getGoodsSold(views.getId(), views.getSold()));
|
|
|
List<GoodsDonQaFrontView> donQaFrontViews = beanSearcher.searchAll(GoodsDonQaFrontView.class, MapUtils.builder().field(GoodsDonQaFrontView::getGoodsId, id).field(GoodsDonQaFrontView::getType, 1).build());
|
|
|
views.setQuestions(donQaFrontViews);
|
|
|
redisService.setNx(goodsDetailKey, views, RedisService.key.YH_HOME_PAGHE_CACHE.getTimeout() + 60 * RandomUtil.randomInt(10));
|
|
|
@@ -493,9 +483,8 @@ public class GoodsDonController {
|
|
|
data.setMonths(minPriceUserOwnsSku.getMonths());
|
|
|
data.setDays(minPriceUserOwnsSku.getDays());
|
|
|
}
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(data.getSold() + sold);
|
|
|
+ //销量
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));
|
|
|
//设置特定价格
|
|
|
setSpecificPrice(data, fUid, dsUserId.get());
|
|
|
return true;
|
|
|
@@ -870,9 +859,7 @@ public class GoodsDonController {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getGoodsId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getGoodsId(), data.getSold()));
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getGoodsId(), now, 1, null));
|
|
|
});
|
|
|
}
|
|
|
@@ -926,9 +913,7 @@ public class GoodsDonController {
|
|
|
}
|
|
|
DateTime now = DateTime.now();
|
|
|
list.forEach(data->{
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, yhsId));
|
|
|
});
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(list);
|
|
|
@@ -989,9 +974,7 @@ public class GoodsDonController {
|
|
|
}
|
|
|
List<GoodsFrontListCategoryView> goodsFrontListViews = beanSearcher.searchAll(GoodsFrontListCategoryView.class, mapBuilder.build());
|
|
|
goodsFrontListViews.forEach(data -> {
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));;
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, null));
|
|
|
});
|
|
|
redisService.setNx(categoryGoodsKey, goodsFrontListViews, RedisService.key.YH_HOME_PAGHE_CACHE.getTimeout() + 10 * 60);
|
|
|
@@ -1063,9 +1046,7 @@ public class GoodsDonController {
|
|
|
builder.put("condition", condition);
|
|
|
List<YhShopGoodsFrontCategoryView> list = beanSearcher.searchAll(YhShopGoodsFrontCategoryView.class, builder.build());
|
|
|
list.forEach(data->{
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- data.setSold(sold + data.getSold());
|
|
|
+ data.setSold(getGoodsSold(data.getId(), data.getSold()));
|
|
|
data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, yhsId));
|
|
|
//重新设置最低价格规格
|
|
|
YhShopGoodsSku sku = yhShopGoodsSkuMapper.selectMinPriceSkuByYhsId(yhsId, data.getId());
|
|
|
@@ -1219,9 +1200,7 @@ public class GoodsDonController {
|
|
|
subsidyDetail.setSpecs(beanSearcher.searchFirst(GoodsDonSpecFrontView.class, MapUtils.builder().field(GoodsDonSpecFrontView::getGoodsId, subsidyDetail.getId()).build()));
|
|
|
MapBuilder builder = MapUtils.builder().field(GoodsDonSkuSubsidyDetailView::getGoodsId, subsidyDetail.getId());
|
|
|
subsidyDetail.setSkuList(beanSearcher.searchAll(GoodsDonSkuSubsidyDetailView.class, builder.build()));
|
|
|
- Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .eq(OrderDon::getGoodsId, subsidyDetail.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
- subsidyDetail.setSold(sold + subsidyDetail.getSold());
|
|
|
+ subsidyDetail.setSold(getGoodsSold(subsidyDetail.getId(), subsidyDetail.getSold()));
|
|
|
|
|
|
redisService.setNx(goodsDetailKey, Jsons.toJson(subsidyDetail), RedisService.key.YH_HOME_PAGHE_CACHE.getTimeout() + 60 * RandomUtil.randomInt(10));
|
|
|
}
|
|
|
@@ -1281,5 +1260,22 @@ public class GoodsDonController {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取平台销量
|
|
|
+ * @param goodsId
|
|
|
+ * @param virtualSold
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Integer getGoodsSold(Long goodsId, Integer virtualSold) {
|
|
|
+ Object soldObj = redisService.get(RedisService.key.YH_HOME_PAGHE_CACHE.getName() + "sold:" + goodsId);
|
|
|
+ if (soldObj == null) {
|
|
|
+ Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
+ .eq(OrderDon::getGoodsId, goodsId).notIn(OrderDon::getStatus, Constant.noOrderStatus));
|
|
|
+ soldObj = sold + virtualSold;
|
|
|
+ redisService.set(RedisService.key.YH_HOME_PAGHE_CACHE.getName() + "sold:" + goodsId, soldObj, RedisService.key.YH_HOME_PAGHE_CACHE.getTimeout());
|
|
|
+ }
|
|
|
+ return Integer.parseInt(soldObj.toString());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|