You've already forked FrameTour-BE
feat(service): 批量获取景区和设备信息
- 在 DeviceRepository 中添加批量获取设备信息的方法 - 在 ScenicRepository 中添加批量获取景区信息的方法 - 修改 OrderServiceImpl,使用批量方法获取景区名称 - 移除多个 mapper 文件中冗余的景区信息查询
This commit is contained in:
@@ -53,6 +53,7 @@ import com.ycwl.basic.pay.adapter.IPayAdapter;
|
||||
import com.ycwl.basic.pay.entity.PayResponse;
|
||||
import com.ycwl.basic.repository.FaceRepository;
|
||||
import com.ycwl.basic.repository.PriceRepository;
|
||||
import com.ycwl.basic.repository.ScenicRepository;
|
||||
import com.ycwl.basic.repository.TemplateRepository;
|
||||
import com.ycwl.basic.repository.VideoRepository;
|
||||
import com.ycwl.basic.repository.VideoTaskRepository;
|
||||
@@ -129,6 +130,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Autowired
|
||||
private ScenicService scenicService;
|
||||
@Autowired
|
||||
private ScenicRepository scenicRepository;
|
||||
@Autowired
|
||||
private VideoMapper videoMapper;
|
||||
@Autowired
|
||||
private IVoucherService iVoucherService;
|
||||
@@ -139,7 +142,21 @@ public class OrderServiceImpl implements OrderService {
|
||||
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
|
||||
PageHelper.startPage(query.getPageNum(), query.getPageSize());
|
||||
List<OrderRespVO> list = orderMapper.list(query);
|
||||
|
||||
// 批量获取景区名称
|
||||
List<Long> scenicIds = list.stream()
|
||||
.map(OrderRespVO::getScenicId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||
|
||||
list.forEach(item -> {
|
||||
// 设置景区名称
|
||||
if (item.getScenicId() != null) {
|
||||
item.setScenicName(scenicNames.get(item.getScenicId()));
|
||||
}
|
||||
|
||||
if (Integer.valueOf(-1).equals(item.getType())) {
|
||||
item.setGoodsName("一口价");
|
||||
item.setOrderType("一口价");
|
||||
@@ -181,8 +198,21 @@ public class OrderServiceImpl implements OrderService {
|
||||
public ApiResponse<PageInfo<OrderRespVO>> pageQueryDetail(OrderReqQuery query) {
|
||||
PageHelper.startPage(query.getPageNum(), query.getPageSize());
|
||||
List<OrderRespVO> list = orderMapper.listDetail(query);
|
||||
|
||||
// 批量获取景区名称
|
||||
List<Long> scenicIds = list.stream()
|
||||
.map(OrderRespVO::getScenicId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||
|
||||
for (OrderRespVO item : list) {
|
||||
item.setPrice(item.getPayPrice());
|
||||
// 设置景区名称
|
||||
if (item.getScenicId() != null) {
|
||||
item.setScenicName(scenicNames.get(item.getScenicId()));
|
||||
}
|
||||
}
|
||||
PageInfo<OrderRespVO> pageInfo = new PageInfo<>(list);
|
||||
return ApiResponse.success(pageInfo);
|
||||
@@ -191,8 +221,21 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Override
|
||||
public ApiResponse<List<OrderRespVO>> list(OrderReqQuery query) {
|
||||
List<OrderRespVO> list = orderMapper.list(query);
|
||||
|
||||
// 批量获取景区名称
|
||||
List<Long> scenicIds = list.stream()
|
||||
.map(OrderRespVO::getScenicId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||
|
||||
for (OrderRespVO item : list) {
|
||||
item.setPrice(item.getPayPrice());
|
||||
// 设置景区名称
|
||||
if (item.getScenicId() != null) {
|
||||
item.setScenicName(scenicNames.get(item.getScenicId()));
|
||||
}
|
||||
}
|
||||
return ApiResponse.success(list);
|
||||
}
|
||||
@@ -318,6 +361,18 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
});
|
||||
order.setGoodsList(goodsList);
|
||||
|
||||
// 设置景区名称
|
||||
if (order.getScenicId() != null) {
|
||||
try {
|
||||
String scenicName = scenicRepository.batchGetScenicNames(List.of(order.getScenicId()))
|
||||
.get(order.getScenicId());
|
||||
order.setScenicName(scenicName);
|
||||
} catch (Exception e) {
|
||||
log.warn("获取景区名称失败: {}", order.getScenicId(), e);
|
||||
}
|
||||
}
|
||||
|
||||
return ApiResponse.success(order);
|
||||
}
|
||||
|
||||
@@ -437,6 +492,22 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 批量获取景区名称
|
||||
List<Long> scenicIds = list.stream()
|
||||
.map(OrderAppRespVO::getScenicId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||
|
||||
// 设置景区名称
|
||||
list.forEach(order -> {
|
||||
if (order.getScenicId() != null) {
|
||||
order.setScenicName(scenicNames.get(order.getScenicId()));
|
||||
}
|
||||
});
|
||||
|
||||
PageInfo<OrderAppRespVO> pageInfo = new PageInfo<>(list);
|
||||
return ApiResponse.success(pageInfo);
|
||||
}
|
||||
@@ -444,6 +515,18 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Override
|
||||
public ApiResponse<OrderAppRespVO> appDetail(Long id) {
|
||||
OrderAppRespVO orderAppRespVO = orderMapper.appDetail(id);
|
||||
|
||||
// 设置景区名称
|
||||
if (orderAppRespVO != null && orderAppRespVO.getScenicId() != null) {
|
||||
try {
|
||||
String scenicName = scenicRepository.batchGetScenicNames(List.of(orderAppRespVO.getScenicId()))
|
||||
.get(orderAppRespVO.getScenicId());
|
||||
orderAppRespVO.setScenicName(scenicName);
|
||||
} catch (Exception e) {
|
||||
log.warn("获取景区名称失败: {}", orderAppRespVO.getScenicId(), e);
|
||||
}
|
||||
}
|
||||
|
||||
return ApiResponse.success(orderAppRespVO);
|
||||
}
|
||||
|
||||
@@ -484,7 +567,21 @@ public class OrderServiceImpl implements OrderService {
|
||||
public ApiResponse<PageInfo<OrderRespVO>> refundPageQuery(OrderReqQuery query) {
|
||||
PageHelper.startPage(query.getPageNum(), query.getPageSize());
|
||||
List<OrderRespVO> list = orderMapper.refundList(query);
|
||||
|
||||
// 批量获取景区名称
|
||||
List<Long> scenicIds = list.stream()
|
||||
.map(OrderRespVO::getScenicId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||
|
||||
list.forEach(item -> {
|
||||
// 设置景区名称
|
||||
if (item.getScenicId() != null) {
|
||||
item.setScenicName(scenicNames.get(item.getScenicId()));
|
||||
}
|
||||
|
||||
if (Integer.valueOf(-1).equals(item.getType())) {
|
||||
item.setGoodsName("一口价");
|
||||
item.setOrderType("一口价");
|
||||
|
Reference in New Issue
Block a user