perf:爬虫数据拉取优化
This commit is contained in:
@@ -2,6 +2,7 @@ package com.xiang.xservice.fwd.schedule;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.xiang.xservice.basic.common.req.BaseRequest;
|
||||||
import com.xiang.xservice.basic.config.MyThreadFactory;
|
import com.xiang.xservice.basic.config.MyThreadFactory;
|
||||||
import com.xiang.xservice.basic.utils.DateUtils;
|
import com.xiang.xservice.basic.utils.DateUtils;
|
||||||
import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo;
|
import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo;
|
||||||
@@ -69,196 +70,202 @@ public class PullDataFromFWDJob {
|
|||||||
@Scheduled(cron = "0 0 1 1/1 * ?")
|
@Scheduled(cron = "0 0 1 1/1 * ?")
|
||||||
@PostMapping("/pullProjectsDataJob")
|
@PostMapping("/pullProjectsDataJob")
|
||||||
public void pullProjectsDataJob() {
|
public void pullProjectsDataJob() {
|
||||||
ProjectsResp showProjectsFromHttp = performServiceHttp.getShowProjectsFromHttp();
|
int i = 0;
|
||||||
if (Objects.isNull(showProjectsFromHttp)) {
|
while (true) {
|
||||||
return;
|
i++;
|
||||||
}
|
BaseRequest request = new BaseRequest();
|
||||||
List<ProjectList> projectList = showProjectsFromHttp.getList();
|
request.setCurrent(i);
|
||||||
|
request.setPageSize(10 * i);
|
||||||
|
ProjectsResp showProjectsFromHttp = performServiceHttp.getShowProjectsFromHttp(request);
|
||||||
|
if (Objects.isNull(showProjectsFromHttp)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isEmpty(showProjectsFromHttp.getList())) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
List<ProjectList> projectList = showProjectsFromHttp.getList();
|
||||||
|
|
||||||
List<CompletableFuture> futureList = Lists.newArrayList();
|
List<CompletableFuture> futureList = Lists.newArrayList();
|
||||||
for (ProjectList project : projectList) {
|
for (ProjectList project : projectList) {
|
||||||
CompletableFuture future = CompletableFuture.runAsync(() -> {
|
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
|
||||||
ProjectInfoResp projectInfoFromHttp = performServiceHttp.getProjectInfoFromHttp(project.getProjectId());
|
ProjectInfoResp projectInfoFromHttp = performServiceHttp.getProjectInfoFromHttp(project.getProjectId());
|
||||||
Perform performsByProjectIdFromHttp = performServiceHttp.getPerformsByProjectIdFromHttp(project.getProjectId());
|
Perform performsByProjectIdFromHttp = performServiceHttp.getPerformsByProjectIdFromHttp(project.getProjectId());
|
||||||
if (Objects.nonNull(projectInfoFromHttp) && Objects.nonNull(performsByProjectIdFromHttp)) {
|
if (Objects.nonNull(projectInfoFromHttp) && Objects.nonNull(performsByProjectIdFromHttp)) {
|
||||||
FPerformProjectInfo projectInfo = performProjectInfoMapper.getProjectByProjectId(project.getProjectId());
|
FPerformProjectInfo projectInfo = performProjectInfoMapper.getProjectByProjectId(project.getProjectId());
|
||||||
if (Objects.nonNull(projectInfo)) {
|
if (Objects.nonNull(projectInfo)) {
|
||||||
// 更新projectInfo的信息
|
// 更新projectInfo的信息
|
||||||
projectInfo.setNameDisplay(projectInfoFromHttp.getNameDisplay());
|
projectInfo.setNameDisplay(projectInfoFromHttp.getNameDisplay());
|
||||||
projectInfo.setStatus(projectInfoFromHttp.getStatus());
|
projectInfo.setStatus(projectInfoFromHttp.getStatus());
|
||||||
projectInfo.setProjectSource(projectInfoFromHttp.getProjectSource());
|
projectInfo.setProjectSource(projectInfoFromHttp.getProjectSource());
|
||||||
projectInfo.setIsHasSeat(projectInfoFromHttp.getIsHasSeat());
|
projectInfo.setIsHasSeat(projectInfoFromHttp.getIsHasSeat());
|
||||||
projectInfo.setIsChoiceSeat(projectInfoFromHttp.getIsChoiceSeat());
|
projectInfo.setIsChoiceSeat(projectInfoFromHttp.getIsChoiceSeat());
|
||||||
projectInfo.setHighestPrice(projectInfoFromHttp.getHighPrice());
|
projectInfo.setHighestPrice(projectInfoFromHttp.getHighPrice());
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectStartDate())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectStartDate())) {
|
||||||
projectInfo.setProjectStartDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectStartDate()));
|
projectInfo.setProjectStartDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectStartDate()));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectEndDate())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectEndDate())) {
|
||||||
projectInfo.setProjectEndDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectEndDate()));
|
projectInfo.setProjectEndDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectEndDate()));
|
||||||
}
|
}
|
||||||
projectInfo.setSubClassifyName(projectInfoFromHttp.getSubClassifyName());
|
projectInfo.setSubClassifyName(projectInfoFromHttp.getSubClassifyName());
|
||||||
projectInfo.setProjectName(project.getName());
|
projectInfo.setProjectName(project.getName());
|
||||||
projectInfo.setBizId(project.getBizId());
|
projectInfo.setBizId(project.getBizId());
|
||||||
projectInfo.setTagName(project.getTagName());
|
projectInfo.setTagName(project.getTagName());
|
||||||
projectInfo.setTagRemark(project.getTagRemark());
|
projectInfo.setTagRemark(project.getTagRemark());
|
||||||
projectInfo.setProjectCity(project.getCity());
|
projectInfo.setProjectCity(project.getCity());
|
||||||
projectInfo.setShortCity(project.getShortCity());
|
projectInfo.setShortCity(project.getShortCity());
|
||||||
projectInfo.setVenueName(project.getVenueName());
|
projectInfo.setVenueName(project.getVenueName());
|
||||||
projectInfo.setLowestPrice(project.getLowestPrice());
|
projectInfo.setLowestPrice(project.getLowestPrice());
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getPreSaleTime())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getPreSaleTime())) {
|
||||||
projectInfo.setPreSaleTime(DateUtils.getDateTimeFromStr(projectInfoFromHttp.getPreSaleTime()));
|
projectInfo.setPreSaleTime(DateUtils.getDateTimeFromStr(projectInfoFromHttp.getPreSaleTime()));
|
||||||
}
|
}
|
||||||
performProjectInfoMapper.update(projectInfo);
|
performProjectInfoMapper.update(projectInfo);
|
||||||
List<FPerformSeatInfo> fPerformSeatInfoInsertList = Lists.newArrayList();
|
List<FPerformSeatInfo> fPerformSeatInfoInsertList = Lists.newArrayList();
|
||||||
if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) {
|
if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) {
|
||||||
for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) {
|
for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) {
|
||||||
if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) {
|
if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) {
|
||||||
for (PerformDetail performDetail : performInfo.getPerformInfo()) {
|
for (PerformDetail performDetail : performInfo.getPerformInfo()) {
|
||||||
if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) {
|
if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) {
|
||||||
|
|
||||||
List<Long> seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList();
|
List<Long> seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList();
|
||||||
Map<Long, Boolean> seatMap = getSeatMap(seatPlanIds);
|
Map<Long, Boolean> seatMap = getSeatMap(seatPlanIds);
|
||||||
if (MapUtils.isEmpty(seatMap)) continue;
|
if (MapUtils.isEmpty(seatMap)) continue;
|
||||||
for (SeatPlan seatPlan : performDetail.getSeatPlans()) {
|
for (SeatPlan seatPlan : performDetail.getSeatPlans()) {
|
||||||
if (!seatMap.containsKey(seatPlan.getSeatPlanId())) {
|
if (!seatMap.containsKey(seatPlan.getSeatPlanId())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!seatMap.get(seatPlan.getSeatPlanId())) {
|
FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo();
|
||||||
continue;
|
fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId());
|
||||||
}
|
fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName());
|
||||||
FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo();
|
fPerformSeatInfo.setPerformId(seatPlan.getPerformId());
|
||||||
fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId());
|
fPerformSeatInfo.setPerformName(seatPlan.getPerformName());
|
||||||
fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName());
|
fPerformSeatInfo.setStopSale(seatPlan.getStopSale());
|
||||||
fPerformSeatInfo.setPerformId(seatPlan.getPerformId());
|
fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus());
|
||||||
fPerformSeatInfo.setPerformName(seatPlan.getPerformName());
|
fPerformSeatInfo.setPrice(seatPlan.getPrice());
|
||||||
fPerformSeatInfo.setStopSale(seatPlan.getStopSale());
|
fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice());
|
||||||
fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus());
|
fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus());
|
||||||
fPerformSeatInfo.setPrice(seatPlan.getPrice());
|
fPerformSeatInfo.setQuantity(seatPlan.getQuantity());
|
||||||
fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice());
|
fPerformSeatInfo.setStatus(seatPlan.getStatus());
|
||||||
fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus());
|
fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock());
|
||||||
fPerformSeatInfo.setQuantity(seatPlan.getQuantity());
|
fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock());
|
||||||
fPerformSeatInfo.setStatus(seatPlan.getStatus());
|
fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock());
|
||||||
fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock());
|
fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity());
|
||||||
fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock());
|
fPerformSeatInfo.setAshShow(seatPlan.getAshShow());
|
||||||
fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock());
|
fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShow());
|
||||||
fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity());
|
fPerformSeatInfo.setSelectable(seatPlan.getSelectable());
|
||||||
fPerformSeatInfo.setAshShow(seatPlan.getAshShow());
|
fPerformSeatInfo.setDisplay(seatPlan.getDisplay());
|
||||||
fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShow());
|
fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity());
|
||||||
fPerformSeatInfo.setSelectable(seatPlan.getSelectable());
|
fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity());
|
||||||
fPerformSeatInfo.setDisplay(seatPlan.getDisplay());
|
if (StringUtils.isNotBlank(seatPlan.getSaleTime())) {
|
||||||
fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity());
|
fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime()));
|
||||||
fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity());
|
}
|
||||||
if (StringUtils.isNotBlank(seatPlan.getSaleTime())) {
|
fPerformSeatInfo.setProjectId(project.getProjectId());
|
||||||
fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime()));
|
fPerformSeatInfo.setSoldOut(seatMap.get(seatPlan.getSeatPlanId()) ? 1 : 0);
|
||||||
}
|
FPerformSeatInfo seatInfo = performSeatInfoMapper.getPerformSeatInfoBySeatIdAndPerformIdAndProjectId(fPerformSeatInfo.getSeatPlanId(), fPerformSeatInfo.getPerformId(), project.getProjectId());
|
||||||
fPerformSeatInfo.setProjectId(project.getProjectId());
|
if (Objects.nonNull(seatInfo)) {
|
||||||
FPerformSeatInfo seatInfo = performSeatInfoMapper.getPerformSeatInfoBySeatIdAndPerformIdAndProjectId(fPerformSeatInfo.getSeatPlanId(), fPerformSeatInfo.getPerformId(), project.getProjectId());
|
fPerformSeatInfo.setId(seatInfo.getId());
|
||||||
if (Objects.nonNull(seatInfo)) {
|
performSeatInfoMapper.update(fPerformSeatInfo);
|
||||||
fPerformSeatInfo.setId(seatInfo.getId());
|
} else {
|
||||||
performSeatInfoMapper.update(fPerformSeatInfo);
|
fPerformSeatInfoInsertList.add(fPerformSeatInfo);
|
||||||
} else {
|
}
|
||||||
fPerformSeatInfoInsertList.add(fPerformSeatInfo);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(fPerformSeatInfoInsertList)) {
|
if (CollectionUtils.isNotEmpty(fPerformSeatInfoInsertList)) {
|
||||||
performSeatInfoMapper.batchSave(fPerformSeatInfoInsertList);
|
performSeatInfoMapper.batchSave(fPerformSeatInfoInsertList);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 新增projectInfo的信息
|
// 新增projectInfo的信息
|
||||||
FPerformProjectInfo fPerformProjectInfo = new FPerformProjectInfo();
|
FPerformProjectInfo fPerformProjectInfo = new FPerformProjectInfo();
|
||||||
fPerformProjectInfo.setNameDisplay(projectInfoFromHttp.getNameDisplay());
|
fPerformProjectInfo.setNameDisplay(projectInfoFromHttp.getNameDisplay());
|
||||||
fPerformProjectInfo.setStatus(projectInfoFromHttp.getStatus());
|
fPerformProjectInfo.setStatus(projectInfoFromHttp.getStatus());
|
||||||
fPerformProjectInfo.setProjectSource(projectInfoFromHttp.getProjectSource());
|
fPerformProjectInfo.setProjectSource(projectInfoFromHttp.getProjectSource());
|
||||||
fPerformProjectInfo.setIsHasSeat(projectInfoFromHttp.getIsHasSeat());
|
fPerformProjectInfo.setIsHasSeat(projectInfoFromHttp.getIsHasSeat());
|
||||||
fPerformProjectInfo.setIsChoiceSeat(projectInfoFromHttp.getIsChoiceSeat());
|
fPerformProjectInfo.setIsChoiceSeat(projectInfoFromHttp.getIsChoiceSeat());
|
||||||
fPerformProjectInfo.setHighestPrice(projectInfoFromHttp.getHighPrice());
|
fPerformProjectInfo.setHighestPrice(projectInfoFromHttp.getHighPrice());
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectStartDate())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectStartDate())) {
|
||||||
fPerformProjectInfo.setProjectStartDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectStartDate()));
|
fPerformProjectInfo.setProjectStartDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectStartDate()));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectEndDate())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getProjectEndDate())) {
|
||||||
fPerformProjectInfo.setProjectEndDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectEndDate()));
|
fPerformProjectInfo.setProjectEndDate(DateUtils.getDateFromStr(projectInfoFromHttp.getProjectEndDate()));
|
||||||
}
|
}
|
||||||
fPerformProjectInfo.setSubClassifyName(projectInfoFromHttp.getSubClassifyName());
|
fPerformProjectInfo.setSubClassifyName(projectInfoFromHttp.getSubClassifyName());
|
||||||
|
|
||||||
fPerformProjectInfo.setProjectName(project.getName());
|
fPerformProjectInfo.setProjectName(project.getName());
|
||||||
fPerformProjectInfo.setBizId(project.getBizId());
|
fPerformProjectInfo.setBizId(project.getBizId());
|
||||||
fPerformProjectInfo.setProjectId(project.getProjectId());
|
fPerformProjectInfo.setProjectId(project.getProjectId());
|
||||||
fPerformProjectInfo.setTagName(project.getTagName());
|
fPerformProjectInfo.setTagName(project.getTagName());
|
||||||
fPerformProjectInfo.setTagRemark(project.getTagRemark());
|
fPerformProjectInfo.setTagRemark(project.getTagRemark());
|
||||||
fPerformProjectInfo.setProjectCity(project.getCity());
|
fPerformProjectInfo.setProjectCity(project.getCity());
|
||||||
fPerformProjectInfo.setShortCity(project.getShortCity());
|
fPerformProjectInfo.setShortCity(project.getShortCity());
|
||||||
fPerformProjectInfo.setVenueName(project.getVenueName());
|
fPerformProjectInfo.setVenueName(project.getVenueName());
|
||||||
fPerformProjectInfo.setLowestPrice(project.getLowestPrice());
|
fPerformProjectInfo.setLowestPrice(project.getLowestPrice());
|
||||||
if (StringUtils.isNotBlank(projectInfoFromHttp.getPreSaleTime())) {
|
if (StringUtils.isNotBlank(projectInfoFromHttp.getPreSaleTime())) {
|
||||||
fPerformProjectInfo.setPreSaleTime(DateUtils.getDateTimeFromStr(projectInfoFromHttp.getPreSaleTime()));
|
fPerformProjectInfo.setPreSaleTime(DateUtils.getDateTimeFromStr(projectInfoFromHttp.getPreSaleTime()));
|
||||||
}
|
}
|
||||||
performProjectInfoMapper.insert(fPerformProjectInfo);
|
performProjectInfoMapper.insert(fPerformProjectInfo);
|
||||||
|
|
||||||
List<FPerformSeatInfo> fPerformSeatInfos = Lists.newArrayList();
|
List<FPerformSeatInfo> fPerformSeatInfos = Lists.newArrayList();
|
||||||
if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) {
|
if (CollectionUtils.isNotEmpty(performsByProjectIdFromHttp.getPerformInfos())) {
|
||||||
for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) {
|
for (PerformInfo performInfo : performsByProjectIdFromHttp.getPerformInfos()) {
|
||||||
if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) {
|
if (CollectionUtils.isNotEmpty(performInfo.getPerformInfo())) {
|
||||||
for (PerformDetail performDetail : performInfo.getPerformInfo()) {
|
for (PerformDetail performDetail : performInfo.getPerformInfo()) {
|
||||||
if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) {
|
if (CollectionUtils.isNotEmpty(performDetail.getSeatPlans())) {
|
||||||
List<Long> seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList();
|
List<Long> seatPlanIds = performDetail.getSeatPlans().stream().map(SeatPlan::getSeatPlanId).toList();
|
||||||
Map<Long, Boolean> seatMap = getSeatMap(seatPlanIds);
|
Map<Long, Boolean> seatMap = getSeatMap(seatPlanIds);
|
||||||
if (MapUtils.isEmpty(seatMap)) continue;
|
if (MapUtils.isEmpty(seatMap)) continue;
|
||||||
for (SeatPlan seatPlan : performDetail.getSeatPlans()) {
|
for (SeatPlan seatPlan : performDetail.getSeatPlans()) {
|
||||||
if (!seatMap.containsKey(seatPlan.getSeatPlanId())) {
|
if (!seatMap.containsKey(seatPlan.getSeatPlanId())) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo();
|
||||||
|
fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId());
|
||||||
|
fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName());
|
||||||
|
fPerformSeatInfo.setPerformId(seatPlan.getPerformId());
|
||||||
|
fPerformSeatInfo.setPerformName(seatPlan.getPerformName());
|
||||||
|
fPerformSeatInfo.setStopSale(seatPlan.getStopSale());
|
||||||
|
fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus());
|
||||||
|
fPerformSeatInfo.setPrice(seatPlan.getPrice());
|
||||||
|
fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice());
|
||||||
|
fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus());
|
||||||
|
fPerformSeatInfo.setQuantity(seatPlan.getQuantity());
|
||||||
|
fPerformSeatInfo.setStatus(seatPlan.getStatus());
|
||||||
|
fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock());
|
||||||
|
fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock());
|
||||||
|
fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock());
|
||||||
|
fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity());
|
||||||
|
fPerformSeatInfo.setAshShow(seatPlan.getAshShow());
|
||||||
|
fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShow());
|
||||||
|
fPerformSeatInfo.setSelectable(seatPlan.getSelectable());
|
||||||
|
fPerformSeatInfo.setDisplay(seatPlan.getDisplay());
|
||||||
|
fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity());
|
||||||
|
fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity());
|
||||||
|
if (StringUtils.isNotBlank(seatPlan.getSaleTime())) {
|
||||||
|
fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime()));
|
||||||
|
}
|
||||||
|
fPerformSeatInfo.setProjectId(project.getProjectId());
|
||||||
|
fPerformSeatInfo.setSoldOut(seatMap.get(seatPlan.getSeatPlanId()) ? 1 : 0);
|
||||||
}
|
}
|
||||||
if (!seatMap.get(seatPlan.getSeatPlanId())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
FPerformSeatInfo fPerformSeatInfo = new FPerformSeatInfo();
|
|
||||||
fPerformSeatInfo.setSeatPlanId(seatPlan.getSeatPlanId());
|
|
||||||
fPerformSeatInfo.setSeatPlanName(seatPlan.getSeatPlanName());
|
|
||||||
fPerformSeatInfo.setPerformId(seatPlan.getPerformId());
|
|
||||||
fPerformSeatInfo.setPerformName(seatPlan.getPerformName());
|
|
||||||
fPerformSeatInfo.setStopSale(seatPlan.getStopSale());
|
|
||||||
fPerformSeatInfo.setShelfStatus(seatPlan.getShelfStatus());
|
|
||||||
fPerformSeatInfo.setPrice(seatPlan.getPrice());
|
|
||||||
fPerformSeatInfo.setDiscountPrice(seatPlan.getDiscountPrice());
|
|
||||||
fPerformSeatInfo.setSubStatus(seatPlan.getSubStatus());
|
|
||||||
fPerformSeatInfo.setQuantity(seatPlan.getQuantity());
|
|
||||||
fPerformSeatInfo.setStatus(seatPlan.getStatus());
|
|
||||||
fPerformSeatInfo.setMaxSellStock(seatPlan.getMaxSellStock());
|
|
||||||
fPerformSeatInfo.setSoldStock(seatPlan.getSoldStock());
|
|
||||||
fPerformSeatInfo.setLeftStock(seatPlan.getLeftStock());
|
|
||||||
fPerformSeatInfo.setAbleSaleQuantity(seatPlan.getAbleSaleQuantity());
|
|
||||||
fPerformSeatInfo.setAshShow(seatPlan.getAshShow());
|
|
||||||
fPerformSeatInfo.setAshShowDesc(seatPlan.getAshShow());
|
|
||||||
fPerformSeatInfo.setSelectable(seatPlan.getSelectable());
|
|
||||||
fPerformSeatInfo.setDisplay(seatPlan.getDisplay());
|
|
||||||
fPerformSeatInfo.setAvailableTicketQuantity(seatPlan.getAvailableTicketQuantity());
|
|
||||||
fPerformSeatInfo.setAvailableAllTicketQuantity(seatPlan.getAvailableAllTicketQuantity());
|
|
||||||
if (StringUtils.isNotBlank(seatPlan.getSaleTime())) {
|
|
||||||
fPerformSeatInfo.setSaleTime(DateUtils.getTimeFromStr(seatPlan.getSaleTime()));
|
|
||||||
}
|
|
||||||
fPerformSeatInfo.setProjectId(project.getProjectId());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(fPerformSeatInfos)) {
|
if (CollectionUtils.isNotEmpty(fPerformSeatInfos)) {
|
||||||
performSeatInfoMapper.batchSave(fPerformSeatInfos);
|
performSeatInfoMapper.batchSave(fPerformSeatInfos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}, es);
|
||||||
}, es);
|
futureList.add(future);
|
||||||
futureList.add(future);
|
}
|
||||||
|
CompletableFuture[] futureArr = futureList.toArray(futureList.toArray(new CompletableFuture[0]));
|
||||||
|
CompletableFuture.allOf(futureArr).join();
|
||||||
}
|
}
|
||||||
CompletableFuture[] futureArr = futureList.toArray(futureList.toArray(new CompletableFuture[0]));
|
|
||||||
CompletableFuture.allOf(futureArr).join();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Long, Boolean> getSeatMap(List<Long> seatPlanIds) {
|
private Map<Long, Boolean> getSeatMap(List<Long> seatPlanIds) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.xiang.xservice.fwd.server;
|
package com.xiang.xservice.fwd.server;
|
||||||
|
|
||||||
|
import com.xiang.xservice.basic.common.req.BaseRequest;
|
||||||
import com.xiang.xservice.basic.common.resp.Result;
|
import com.xiang.xservice.basic.common.resp.Result;
|
||||||
import com.xiang.xservice.fwd.entity.resp.http.perform.Perform;
|
import com.xiang.xservice.fwd.entity.resp.http.perform.Perform;
|
||||||
import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectsResp;
|
import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectsResp;
|
||||||
@@ -30,7 +31,7 @@ public class FwdOuterController {
|
|||||||
|
|
||||||
@GetMapping("/getShowProjects")
|
@GetMapping("/getShowProjects")
|
||||||
public Result<ProjectsResp> getShowProjects() {
|
public Result<ProjectsResp> getShowProjects() {
|
||||||
ProjectsResp showProjectsFromHttp = performServiceHttp.getShowProjectsFromHttp();
|
ProjectsResp showProjectsFromHttp = performServiceHttp.getShowProjectsFromHttp(new BaseRequest());
|
||||||
return Result.success("查询成功!", showProjectsFromHttp);
|
return Result.success("查询成功!", showProjectsFromHttp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.xiang.xservice.fwd.service;
|
package com.xiang.xservice.fwd.service;
|
||||||
|
|
||||||
|
import com.xiang.xservice.basic.common.req.BaseRequest;
|
||||||
import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq;
|
import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq;
|
||||||
import com.xiang.xservice.fwd.entity.resp.http.perform.Perform;
|
import com.xiang.xservice.fwd.entity.resp.http.perform.Perform;
|
||||||
import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectInfoResp;
|
import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectInfoResp;
|
||||||
@@ -15,7 +16,7 @@ public interface IPerformServiceHttp {
|
|||||||
* http请求查询全部演出列表
|
* http请求查询全部演出列表
|
||||||
* @return ProjectsResp
|
* @return ProjectsResp
|
||||||
*/
|
*/
|
||||||
ProjectsResp getShowProjectsFromHttp();
|
ProjectsResp getShowProjectsFromHttp(BaseRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http请求根据projectId查询演出详情
|
* http请求根据projectId查询演出详情
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.xiang.xservice.basic.common.req.BaseRequest;
|
||||||
import com.xiang.xservice.basic.utils.HttpUtils;
|
import com.xiang.xservice.basic.utils.HttpUtils;
|
||||||
import com.xiang.xservice.basic.utils.JsonUtils;
|
import com.xiang.xservice.basic.utils.JsonUtils;
|
||||||
import com.xiang.xservice.fwd.constants.CodeConstants;
|
import com.xiang.xservice.fwd.constants.CodeConstants;
|
||||||
@@ -31,13 +32,19 @@ import java.util.Objects;
|
|||||||
public class PerformServiceHttpServiceImpl implements IPerformServiceHttp {
|
public class PerformServiceHttpServiceImpl implements IPerformServiceHttp {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProjectsResp getShowProjectsFromHttp() {
|
public ProjectsResp getShowProjectsFromHttp(BaseRequest request) {
|
||||||
int pageNum = 1;
|
|
||||||
int pageSize = 9999;
|
|
||||||
Map<String, String> params = Maps.newHashMap();
|
Map<String, String> params = Maps.newHashMap();
|
||||||
params.put("projectModuleId", "7");
|
params.put("projectModuleId", "7");
|
||||||
params.put("pageNum", String.valueOf(pageNum));
|
if (Objects.isNull(request.getCurrent())) {
|
||||||
params.put("pageSize", String.valueOf(pageSize));
|
params.put("pageNum", String.valueOf(1));
|
||||||
|
} else {
|
||||||
|
params.put("pageNum", String.valueOf(request.getCurrent()));
|
||||||
|
}
|
||||||
|
if (Objects.isNull(request.getPageSize())) {
|
||||||
|
params.put("pageSize", String.valueOf(10));
|
||||||
|
} else {
|
||||||
|
params.put("pageSize", String.valueOf(request.getPageSize()));
|
||||||
|
}
|
||||||
String respStr = HttpUtils.doGet(UrlConstants.PROJECTS_URL, buildFWDHeaders(null), params);
|
String respStr = HttpUtils.doGet(UrlConstants.PROJECTS_URL, buildFWDHeaders(null), params);
|
||||||
if (StringUtils.isBlank(respStr)) {
|
if (StringUtils.isBlank(respStr)) {
|
||||||
return new ProjectsResp();
|
return new ProjectsResp();
|
||||||
|
|||||||
@@ -62,6 +62,9 @@ public class PerformServiceImpl implements IPerformService {
|
|||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
for (FPerformSeatInfo fPerformSeatInfo : seatInfoByProjectId) {
|
for (FPerformSeatInfo fPerformSeatInfo : seatInfoByProjectId) {
|
||||||
|
if (1 == fPerformSeatInfo.getSoldOut()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ProjectOrderCreateReq projectOrderCreateReq = new ProjectOrderCreateReq();
|
ProjectOrderCreateReq projectOrderCreateReq = new ProjectOrderCreateReq();
|
||||||
projectOrderCreateReq.setDeliveryType(1);
|
projectOrderCreateReq.setDeliveryType(1);
|
||||||
projectOrderCreateReq.setContactName("朱吉祥");
|
projectOrderCreateReq.setContactName("朱吉祥");
|
||||||
|
|||||||
Reference in New Issue
Block a user