|
@@ -43,6 +43,7 @@ import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static org.jeecg.modules.system.constant.DefIndexConst.FACILITY_INFO;
|
|
|
|
|
@@ -168,15 +169,25 @@ public class DetailServiceImpl implements IDetailService {
|
|
|
.eq(AppSitePriceRules::getSitePlaceId, appSitePlace.getId())
|
|
|
.last("limit 1").orderByDesc(AppSitePriceRules::getSellingPrice));
|
|
|
PlaceInfoVO.PlaceInfoMsgVO placeInfoMsgVO = new PlaceInfoVO.PlaceInfoMsgVO();
|
|
|
+ // 1. 先获取所有符合条件的订单ID列表(单次查询)
|
|
|
+ List<String> orderIdList = appOrderMapper.selectList(Wrappers.<AppOrder>lambdaQuery()
|
|
|
+ .select(AppOrder::getId) // 仅查询ID字段
|
|
|
+ .eq(AppOrder::getOrgCode, appSitePlace.getOrgCode())
|
|
|
+ .eq(AppOrder::getType, 0)
|
|
|
+ .eq(AppOrder::getOrderType, 0))
|
|
|
+ .stream()
|
|
|
+ .map(order -> order.getId().toString()) // 假设getId()返回Long
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 2. 使用ID列表直接统计关联记录(单次查询)
|
|
|
+ int salesCount = Math.toIntExact(appOrderProInfoMapper.selectCount(Wrappers.<AppOrderProInfo>lambdaQuery()
|
|
|
+ .in(AppOrderProInfo::getOrderId, orderIdList)));
|
|
|
placeInfoMsgVO.setName(appSitePlace.getName())
|
|
|
.setId(appSitePlace.getId())
|
|
|
.setCategory(getCategoryName(appSite.getCategoryId()))
|
|
|
.setCover(appSitePlace.getCover().split(",")[0])
|
|
|
.setReminder(appSitePlace.getReminder())
|
|
|
- .setSales(Math.toIntExact(appOrderMapper.selectCount(Wrappers.<AppOrder>lambdaQuery()
|
|
|
- .eq(AppOrder::getOrgCode, appSitePlace.getOrgCode())
|
|
|
- .eq(AppOrder::getType,0)
|
|
|
- .eq(AppOrder::getOrderType,0))))
|
|
|
+ .setSales(salesCount)
|
|
|
.setRefundType(appSitePlace.getRefundType());
|
|
|
if(appSitePriceRules!=null){
|
|
|
placeInfoMsgVO.setOriginalPrice(appSitePriceRules.getOriginalPrice());
|