You've already forked FrameTour-BE
feat(service): 批量设置景区名称
- 在多个服务实现类中添加批量获取景区名称的方法- 优化了景区名称的设置逻辑,提高了查询效率 -涉及的服务包括: - ProfitSharingRecordServiceImpl - BrokerServiceImpl - CouponServiceImpl - SourceServiceImpl - TemplateServiceImpl
This commit is contained in:
@@ -12,6 +12,7 @@ import com.ycwl.basic.profitsharing.entity.ProfitSharingUser;
|
|||||||
import com.ycwl.basic.profitsharing.mapper.ProfitSharingRecordMapper;
|
import com.ycwl.basic.profitsharing.mapper.ProfitSharingRecordMapper;
|
||||||
import com.ycwl.basic.profitsharing.repository.ProfitSharingRepository;
|
import com.ycwl.basic.profitsharing.repository.ProfitSharingRepository;
|
||||||
import com.ycwl.basic.profitsharing.service.ProfitSharingRecordService;
|
import com.ycwl.basic.profitsharing.service.ProfitSharingRecordService;
|
||||||
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -29,6 +30,8 @@ public class ProfitSharingRecordServiceImpl implements ProfitSharingRecordServic
|
|||||||
private ProfitSharingRecordMapper profitSharingRecordMapper;
|
private ProfitSharingRecordMapper profitSharingRecordMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProfitSharingRepository profitSharingRepository;
|
private ProfitSharingRepository profitSharingRepository;
|
||||||
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -42,7 +45,19 @@ public class ProfitSharingRecordServiceImpl implements ProfitSharingRecordServic
|
|||||||
return respVo;
|
return respVo;
|
||||||
}
|
}
|
||||||
List<ProfitSharingRecordRespVO> recordList = profitSharingRecordMapper.listByOrderIds(list.stream().map(ProfitSharingRecordGroupVO::getOrderId).collect(Collectors.toList()));
|
List<ProfitSharingRecordRespVO> recordList = profitSharingRecordMapper.listByOrderIds(list.stream().map(ProfitSharingRecordGroupVO::getOrderId).collect(Collectors.toList()));
|
||||||
List<Long> scenicList = recordList.stream().map(ProfitSharingRecordRespVO::getScenicId).distinct().collect(Collectors.toList());
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = recordList.stream().map(ProfitSharingRecordRespVO::getScenicId).distinct().collect(Collectors.toList());
|
||||||
|
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||||
|
|
||||||
|
// 设置景区名称
|
||||||
|
recordList.forEach(item -> {
|
||||||
|
if (item.getScenicId() != null) {
|
||||||
|
item.setScenicName(scenicNames.get(item.getScenicId()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
List<Long> scenicList = scenicIds;
|
||||||
List<ProfitSharingConfig> scenicConfig = scenicList.stream()
|
List<ProfitSharingConfig> scenicConfig = scenicList.stream()
|
||||||
.map(scenicId -> profitSharingRepository.getScenicConfig(scenicId))
|
.map(scenicId -> profitSharingRepository.getScenicConfig(scenicId))
|
||||||
.filter(item -> !Objects.isNull(item) && !Objects.isNull(item.getUsers()))
|
.filter(item -> !Objects.isNull(item) && !Objects.isNull(item.getUsers()))
|
||||||
|
@@ -6,11 +6,15 @@ import com.ycwl.basic.mapper.BrokerMapper;
|
|||||||
import com.ycwl.basic.model.pc.broker.entity.BrokerEntity;
|
import com.ycwl.basic.model.pc.broker.entity.BrokerEntity;
|
||||||
import com.ycwl.basic.model.pc.broker.req.BrokerReqQuery;
|
import com.ycwl.basic.model.pc.broker.req.BrokerReqQuery;
|
||||||
import com.ycwl.basic.model.pc.broker.resp.BrokerRespVO;
|
import com.ycwl.basic.model.pc.broker.resp.BrokerRespVO;
|
||||||
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.service.pc.BrokerService;
|
import com.ycwl.basic.service.pc.BrokerService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:longbinbin
|
* @Author:longbinbin
|
||||||
@@ -21,18 +25,53 @@ public class BrokerServiceImpl implements BrokerService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BrokerMapper brokerMapper;
|
private BrokerMapper brokerMapper;
|
||||||
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<BrokerRespVO> pageQuery(BrokerReqQuery brokerReqQuery) {
|
public PageInfo<BrokerRespVO> pageQuery(BrokerReqQuery brokerReqQuery) {
|
||||||
PageHelper.startPage(brokerReqQuery.getPageNum(),brokerReqQuery.getPageSize());
|
PageHelper.startPage(brokerReqQuery.getPageNum(),brokerReqQuery.getPageSize());
|
||||||
List<BrokerRespVO> list = brokerMapper.list(brokerReqQuery);
|
List<BrokerRespVO> list = brokerMapper.list(brokerReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(BrokerRespVO::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()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
PageInfo<BrokerRespVO> pageInfo = new PageInfo(list);
|
PageInfo<BrokerRespVO> pageInfo = new PageInfo(list);
|
||||||
return pageInfo;
|
return pageInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BrokerRespVO> list(BrokerReqQuery brokerReqQuery) {
|
public List<BrokerRespVO> list(BrokerReqQuery brokerReqQuery) {
|
||||||
return brokerMapper.list(brokerReqQuery);
|
List<BrokerRespVO> list = brokerMapper.list(brokerReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(BrokerRespVO::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()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,17 +3,23 @@ import com.ycwl.basic.mapper.CouponMapper;
|
|||||||
import com.ycwl.basic.model.pc.coupon.entity.CouponEntity;
|
import com.ycwl.basic.model.pc.coupon.entity.CouponEntity;
|
||||||
import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq;
|
import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq;
|
||||||
import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO;
|
import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO;
|
||||||
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.service.pc.CouponService;
|
import com.ycwl.basic.service.pc.CouponService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class CouponServiceImpl implements CouponService {
|
public class CouponServiceImpl implements CouponService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponMapper couponMapper;
|
private CouponMapper couponMapper;
|
||||||
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer add(CouponEntity coupon) {
|
public Integer add(CouponEntity coupon) {
|
||||||
@@ -38,6 +44,22 @@ public class CouponServiceImpl implements CouponService {
|
|||||||
@Override
|
@Override
|
||||||
public List<CouponRespVO> list(CouponQueryReq query) {
|
public List<CouponRespVO> list(CouponQueryReq query) {
|
||||||
List<CouponRespVO> list = couponMapper.selectByQuery(query);
|
List<CouponRespVO> list = couponMapper.selectByQuery(query);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(CouponRespVO::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()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -28,6 +28,9 @@ import java.net.MalformedURLException;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.ycwl.basic.constant.StorageConstant.PHOTO_PATH;
|
import static com.ycwl.basic.constant.StorageConstant.PHOTO_PATH;
|
||||||
|
|
||||||
@@ -52,14 +55,31 @@ public class SourceServiceImpl implements SourceService {
|
|||||||
public ApiResponse<PageInfo<SourceRespVO>> pageQuery(SourceReqQuery sourceReqQuery) {
|
public ApiResponse<PageInfo<SourceRespVO>> pageQuery(SourceReqQuery sourceReqQuery) {
|
||||||
PageHelper.startPage(sourceReqQuery.getPageNum(), sourceReqQuery.getPageSize());
|
PageHelper.startPage(sourceReqQuery.getPageNum(), sourceReqQuery.getPageSize());
|
||||||
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
|
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(SourceRespVO::getScenicId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||||
|
|
||||||
|
// 批量获取设备名称
|
||||||
|
List<Long> deviceIds = list.stream()
|
||||||
|
.map(SourceRespVO::getDeviceId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<Long, String> deviceNames = deviceRepository.batchGetDeviceNames(deviceIds);
|
||||||
|
|
||||||
list.forEach(sourceRespVO -> {
|
list.forEach(sourceRespVO -> {
|
||||||
ScenicEntity scenic = scenicRepository.getScenic(sourceRespVO.getScenicId());
|
// 设置景区名称
|
||||||
if (scenic != null) {
|
if (sourceRespVO.getScenicId() != null) {
|
||||||
sourceRespVO.setScenicName(scenic.getName());
|
sourceRespVO.setScenicName(scenicNames.get(sourceRespVO.getScenicId()));
|
||||||
}
|
}
|
||||||
DeviceEntity device = deviceRepository.getDevice(sourceRespVO.getDeviceId());
|
// 设置设备名称
|
||||||
if (device != null) {
|
if (sourceRespVO.getDeviceId() != null) {
|
||||||
sourceRespVO.setDeviceName(device.getName());
|
sourceRespVO.setDeviceName(deviceNames.get(sourceRespVO.getDeviceId()));
|
||||||
}
|
}
|
||||||
if (sourceRespVO.getVideoUrl() != null) {
|
if (sourceRespVO.getVideoUrl() != null) {
|
||||||
try {
|
try {
|
||||||
@@ -82,7 +102,32 @@ public class SourceServiceImpl implements SourceService {
|
|||||||
@Override
|
@Override
|
||||||
public ApiResponse<List<SourceRespVO>> list(SourceReqQuery sourceReqQuery) {
|
public ApiResponse<List<SourceRespVO>> list(SourceReqQuery sourceReqQuery) {
|
||||||
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
|
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(SourceRespVO::getScenicId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
|
||||||
|
|
||||||
|
// 批量获取设备名称
|
||||||
|
List<Long> deviceIds = list.stream()
|
||||||
|
.map(SourceRespVO::getDeviceId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<Long, String> deviceNames = deviceRepository.batchGetDeviceNames(deviceIds);
|
||||||
|
|
||||||
list.forEach(sourceRespVO -> {
|
list.forEach(sourceRespVO -> {
|
||||||
|
// 设置景区名称
|
||||||
|
if (sourceRespVO.getScenicId() != null) {
|
||||||
|
sourceRespVO.setScenicName(scenicNames.get(sourceRespVO.getScenicId()));
|
||||||
|
}
|
||||||
|
// 设置设备名称
|
||||||
|
if (sourceRespVO.getDeviceId() != null) {
|
||||||
|
sourceRespVO.setDeviceName(deviceNames.get(sourceRespVO.getDeviceId()));
|
||||||
|
}
|
||||||
if (sourceRespVO.getVideoUrl() != null) {
|
if (sourceRespVO.getVideoUrl() != null) {
|
||||||
try {
|
try {
|
||||||
URL url = new URL(sourceRespVO.getVideoUrl());
|
URL url = new URL(sourceRespVO.getVideoUrl());
|
||||||
|
@@ -11,6 +11,7 @@ import com.ycwl.basic.pricing.enums.ProductType;
|
|||||||
import com.ycwl.basic.pricing.service.IPricingManagementService;
|
import com.ycwl.basic.pricing.service.IPricingManagementService;
|
||||||
import com.ycwl.basic.service.pc.TemplateService;
|
import com.ycwl.basic.service.pc.TemplateService;
|
||||||
import com.ycwl.basic.repository.TemplateRepository;
|
import com.ycwl.basic.repository.TemplateRepository;
|
||||||
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
import com.ycwl.basic.utils.SnowFlakeUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -18,8 +19,11 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:longbinbin
|
* @Author:longbinbin
|
||||||
@@ -33,19 +37,54 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TemplateRepository templateRepository;
|
private TemplateRepository templateRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
@Autowired
|
||||||
private IPricingManagementService pricingManagementService;
|
private IPricingManagementService pricingManagementService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery) {
|
public ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery) {
|
||||||
PageHelper.startPage(templateReqQuery.getPageNum(), templateReqQuery.getPageSize());
|
PageHelper.startPage(templateReqQuery.getPageNum(), templateReqQuery.getPageSize());
|
||||||
List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
|
List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(TemplateRespVO::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()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
PageInfo<TemplateRespVO> pageInfo = new PageInfo<>(list);
|
PageInfo<TemplateRespVO> pageInfo = new PageInfo<>(list);
|
||||||
return ApiResponse.success(pageInfo);
|
return ApiResponse.success(pageInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<List<TemplateRespVO>> list(TemplateReqQuery templateReqQuery) {
|
public ApiResponse<List<TemplateRespVO>> list(TemplateReqQuery templateReqQuery) {
|
||||||
return ApiResponse.success(templateMapper.list(templateReqQuery));
|
List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
|
||||||
|
|
||||||
|
// 批量获取景区名称
|
||||||
|
List<Long> scenicIds = list.stream()
|
||||||
|
.map(TemplateRespVO::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()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return ApiResponse.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user