火车差标估价金额调整
This commit is contained in:
parent
626968a7f0
commit
af6feb405a
|
@ -92,7 +92,7 @@ public class RankController {
|
|||
.setPrice(travelStandardsData.getPrice())
|
||||
.setCityTag(travelStandardsData.getCityTag());
|
||||
List<TravelStandards> travelStandardsList = travelStandardsRepository.findByTravelStandards(travelStandards);
|
||||
if (travelStandardsList.isEmpty()) {
|
||||
if (!travelStandardsList.isEmpty()) {
|
||||
return Result.error("该差标已经存在,不可重复添加!");
|
||||
}
|
||||
travelStandards = travelStandardsRepository.save(travelStandards);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.chint.application.queryies.estimate;
|
||||
|
||||
import com.chint.domain.aggregates.standards.CityTag;
|
||||
import com.chint.domain.aggregates.standards.TrainStandards;
|
||||
import com.chint.domain.aggregates.standards.TravelStandards;
|
||||
import com.chint.domain.aggregates.user.User;
|
||||
import com.chint.domain.repository.CityRepository;
|
||||
|
@ -21,13 +22,18 @@ import com.chint.interfaces.rest.ctrip.dto.estimate.response.TrainValuationResul
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static com.chint.domain.aggregates.standards.TrainStandards.trainStandardsMap;
|
||||
import static com.chint.infrastructure.constant.LegConstant.LEG_TYPE_HOTEL;
|
||||
|
||||
@Component
|
||||
|
@ -69,6 +75,23 @@ public class CTripEstimatePrice implements EstimatePrice {
|
|||
String.valueOf(seatMaxPriceInfo.getMaxPrice()),
|
||||
seatCode);
|
||||
});
|
||||
|
||||
//根据差标等级获取可报销最大酒店金额
|
||||
//1.获取该用户的差标等级
|
||||
User user = BaseContext.getCurrentUser();//用户
|
||||
String standardLevel = user.getStandardLevel();//差旅等级
|
||||
String trainStandards = trainStandardsMap.get(standardLevel);//获取可报销座位
|
||||
Optional<String> optional = trainPriceData.getSeatInfoList().stream()
|
||||
.filter(seatInfo -> {
|
||||
Pattern pattern = Pattern.compile("\\b" + seatInfo.getSeatName() + "\\b");
|
||||
return pattern.matcher(trainStandards).find();//过滤符合对应座位的火车数据
|
||||
})
|
||||
.map(TrainPriceData.SeatInfo::getSeatPrice)
|
||||
.max(Comparator.comparing(BigDecimal::new));//获取最大值
|
||||
if (optional.isPresent()) {
|
||||
String maxPrice = optional.get();
|
||||
trainPriceData.setMaxPrice(maxPrice);
|
||||
}
|
||||
return trainPriceData;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ public class CityTag {
|
|||
static {
|
||||
cityMap = new HashMap<>();
|
||||
//直辖市
|
||||
cityMap.put("北京", "1");
|
||||
cityMap.put("上海", "1");
|
||||
cityMap.put("北京", "3");
|
||||
cityMap.put("上海", "3");
|
||||
cityMap.put("天津", "1");
|
||||
cityMap.put("重庆", "1");
|
||||
//省会城市
|
||||
|
@ -29,7 +29,7 @@ public class CityTag {
|
|||
cityMap.put("郑州", "1");
|
||||
cityMap.put("武汉", "1");
|
||||
cityMap.put("长沙", "1");
|
||||
cityMap.put("广州", "1");
|
||||
cityMap.put("广州", "3");
|
||||
cityMap.put("南宁", "1");
|
||||
cityMap.put("海口", "1");
|
||||
cityMap.put("成都", "1");
|
||||
|
@ -40,10 +40,12 @@ public class CityTag {
|
|||
cityMap.put("兰州", "1");
|
||||
cityMap.put("西宁", "1");
|
||||
cityMap.put("银川", "1");
|
||||
cityMap.put("乌鲁木齐市", "1");
|
||||
cityMap.put("乌鲁木齐", "1");
|
||||
//特别行政区
|
||||
cityMap.put("香港", "1");
|
||||
cityMap.put("澳门", "1");
|
||||
cityMap.put("深圳", "3");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.chint.domain.aggregates.standards;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static com.chint.infrastructure.constant.RankConstant.*;
|
||||
|
||||
public class TrainStandards {
|
||||
public static final HashMap<String, String> trainStandardsMap;
|
||||
|
||||
static {
|
||||
trainStandardsMap = new HashMap<>();
|
||||
String oneStandards = "商务座,一等双软,一等座,二等座,高级软卧,一等双软";
|
||||
String twoStandards = "一等座,高级软卧,一等双软,动卧,软卧,硬卧,硬座";
|
||||
String threeStandards = "一等座,一等双软,二等座,软卧,硬卧,硬座";
|
||||
String fourStandards = "二等座,二等双软,软卧,无座,硬卧,硬座";
|
||||
trainStandardsMap.put(STANDARD_LEVEL_ONE, oneStandards);
|
||||
trainStandardsMap.put(STANDARD_LEVEL_TWO, twoStandards);
|
||||
trainStandardsMap.put(STANDARD_LEVEL_THREE, threeStandards);
|
||||
trainStandardsMap.put(STANDARD_LEVEL_FOUR, fourStandards);
|
||||
}
|
||||
}
|
|
@ -24,6 +24,6 @@ public class TravelStandards {
|
|||
//差标等级
|
||||
private String standardLevel;
|
||||
//城市类别
|
||||
private String cityTag;//1:直辖市,省会,特别行政区,2:其它城市
|
||||
private String cityTag;//1:直辖市,省会,特别行政区,2:其它城市,3:北上广深
|
||||
}
|
||||
|
||||
|
|
|
@ -30,11 +30,60 @@ public class LYOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
public TrainOrderDetail createTrainOrderDetail(Object trainOrderDetailData) {
|
||||
TrainDetailResponse trainDetailResponse = (TrainDetailResponse) trainOrderDetailData;
|
||||
TrainDetailResponse.TrainDetailData data = trainDetailResponse.getData();
|
||||
TrainDetailResponse.TravelData travelData = data.getTravelData();
|
||||
TrainOrderDetail trainOrderDetail = new TrainOrderDetail();
|
||||
//映射值
|
||||
trainOrderDetail.setOrderNo(data.getOrderNo())
|
||||
.setOverStandard(String.valueOf(data.getRuleViolate()))
|
||||
;
|
||||
/*trainOrderDetail.setOrderNo(data.getOrderNo())
|
||||
.setOverStandard(null)
|
||||
.setParentOrderNo()
|
||||
.setOriginalOrderNo(null)
|
||||
.setOrderStatus(null)
|
||||
.setAccountCompanyId()
|
||||
.setAccountCompanyName()
|
||||
.setReceiptsNum(travelData.getTravelApplyNo())
|
||||
.setScheduleNum()
|
||||
.setBookingUserCode(data.getOutEmployeeId())
|
||||
.setBookingName()
|
||||
.setBookingUserPhone()
|
||||
.setCreateTime()
|
||||
.setStartTime()
|
||||
.setArriveTime()
|
||||
.setFromStationName()
|
||||
.setToStationName()
|
||||
.setTrainNo()
|
||||
.setFromCity()
|
||||
.setToCity()
|
||||
.setRunTime()
|
||||
.setOrderAmount()
|
||||
.setPreServiceFee()
|
||||
.setPostServiceFee()
|
||||
.setRefundAmount()
|
||||
.setChangeDifference()
|
||||
.setChangeCost()
|
||||
.setTickets()
|
||||
.setSeatType()
|
||||
.setSeatName()
|
||||
.setTicketPrice()
|
||||
.setRefundCost()
|
||||
.setRefundPrice()
|
||||
.setStandardItems()
|
||||
.setUserName()
|
||||
.setUserCode()
|
||||
.setOverStandard()
|
||||
.setPhone()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
.setBOOK_ORG_STRUCT_1()
|
||||
.setBOOK_ORG_STRUCT_2()
|
||||
.setBOOK_ORG_STRUCT_3()
|
||||
.setPaymentType()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
;*/
|
||||
|
||||
return trainOrderDetail;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public class TrainPriceData {
|
|||
}
|
||||
|
||||
@Data
|
||||
private static class SeatInfo {
|
||||
public static class SeatInfo {
|
||||
private String seatName;
|
||||
private String seatPrice;
|
||||
private String seatCode;
|
||||
|
|
|
@ -53,7 +53,6 @@ public class TrainDetailResponse {
|
|||
private int bookType;
|
||||
private int trainIndex;
|
||||
private String relationOrderNo;
|
||||
private Boolean ruleViolate;
|
||||
// Constructors, Getters, and Setters
|
||||
}
|
||||
@Data
|
||||
|
|
Loading…
Reference in New Issue