浏览代码

乘客端购票流程

fllmoyu 4 年之前
父节点
当前提交
86ea6336f8

+ 16 - 6
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/PassengerInfoServiceImpl.java

@@ -316,18 +316,21 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
         }
 
         BigDecimal price = priceInfo.getPrice();
-        /*if ("1".equals(ticketType)) {
-            price = price.divide(new BigDecimal(2));
-        }*/
 
-        BigDecimal totalTicketPrice =price.multiply(new BigDecimal(passengerList.size()));
+        BigDecimal goodTicketPrice = new BigDecimal(goodsTicket);
+
+        BigDecimal total = goodTicketPrice;
+
+
+
+       /* BigDecimal totalTicketPrice =price.multiply(new BigDecimal(passengerList.size()));
 
         BigDecimal goodTicketPrice = new BigDecimal(goodsTicket);
 
         BigDecimal total = totalTicketPrice.add(goodTicketPrice);
         if (total.compareTo(new BigDecimal(totalFee)) != 0) {
             throw new Exception("票价有误,请重新创建");
-        }
+        }*/
 
 
         String paymentId = "";
@@ -380,12 +383,15 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
      //   for (String passengerId : passengerList) {
 
         for (int n = 0;n<passengerList.size();n++){
+            BigDecimal price1 = price;
             String passengerId = passengerList.get(n);
             String ticketType = ticketTypeList.get(n);
             if ("1".equals(ticketType)) {
-                price = price.divide(new BigDecimal(2));
+                price1 = price1.divide(new BigDecimal(2));
             }
 
+            total = total.add(price1);
+
             PassengerRecordDTO passengerRecordDTO = new PassengerRecordDTO();
 
             OrderInfo orderInfo0 = orderInfoService.findByPassengerIdMergeOrderId(passengerId,mergeId);
@@ -448,6 +454,10 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
                 throw new Exception("乘客已下车");
             }
         }
+
+        if (total.compareTo(new BigDecimal(totalFee)) != 0) {
+            throw new Exception("票价有误,请重新创建");
+        }
         mergeOrderDTO.setPassengerRecordDTOList(passengerRecordDTOList);
 
 

+ 3 - 0
common/src/main/resources/mapper/bus/PassengerMessage.xml

@@ -102,6 +102,9 @@ id_,open_id,passenger_id,read_status,create_by,create_time,update_by,update_time
 			<if test="searchParams.payStatus != null">
 				and b.pay_status = #{searchParams.payStatus}
 			</if>
+			<if test="searchParams.passengerStatus != null">
+				and b.status_ = #{searchParams.passengerStatus}
+			</if>
 			<if test="searchParams.readStatus != null">
 				and a.read_status = #{searchParams.readStatus}
 			</if>

+ 24 - 2
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/PassengerApiController.java

@@ -431,6 +431,7 @@ public class PassengerApiController {
             searchParams.put("payStatus","2");
             searchParams.put("shiftStatus","1");
             searchParams.put("shiftId",shiftInfo.getId());
+            searchParams.put("passengerStatus","1");
             searchParams.put("routeName",routeInfo.getName());
 
             List<Sort> sortList = new ArrayList<>();
@@ -719,7 +720,7 @@ public class PassengerApiController {
             @ApiImplicitParam(name = "latitude", value = "纬度", required = true, paramType = "form")
     })
     public MessageResult<List<NearbyStationDTO>> passengerNearbyStation(String longitude, String latitude, @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
-                                                                        @RequestParam(value = "pageSize", defaultValue = "2") int pageSize) {
+                                                                        @RequestParam(value = "pageSize", defaultValue = "5") int pageSize) {
         MessageResult<List<NearbyStationDTO>> messageResult = new MessageResult<>();
 
         try {
@@ -748,8 +749,27 @@ public class PassengerApiController {
 
             List<NearbyStationDTO> nearbyStationDTOList = new ArrayList<>();
             List<String> shiftIdList = new ArrayList<>();
+            List<StationInfo> stationInfos0 = new ArrayList<>();
             if (stationInfoList.size() > 0) {
-                for (StationInfo stationInfo : stationInfoList) {
+                int dis0 = 500;
+                StationInfo stationInfo0 = null;
+                for (StationInfo stationInfo : stationInfoList){
+                    //距离
+                    GlobalCoordinates source = new GlobalCoordinates(stationInfo.getLatitude(), stationInfo.getLongitude());
+                    GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(latitude), Double.valueOf(longitude));
+
+                    double meter1 = CommonUtil.getDistanceMeter(source, target, Ellipsoid.Sphere);
+
+                    int dis = (new Double(meter1)).intValue();
+                    if (dis<dis0){
+                        stationInfo0 = stationInfo;
+                        dis0 = dis;
+                    }
+                }
+                stationInfos0.add(stationInfo0);
+
+
+                for (StationInfo stationInfo : stationInfos0) {
 
                     RouteInfo routeInfo0 = routeInfoService.get(stationInfo.getRouteId());
 
@@ -974,6 +994,7 @@ public class PassengerApiController {
             Map<String,Object> searchParams = new HashMap<>();
             searchParams.put("openId",openId);
             searchParams.put("payStatus","2");
+            searchParams.put("passengerStatus","1");
             searchParams.put("shiftStatus","1");
 
             List<Sort> sortList = new ArrayList<>();
@@ -1054,6 +1075,7 @@ public class PassengerApiController {
             searchParams.put("openId",openId);
             searchParams.put("readStatus",false);
             searchParams.put("shiftStatus","1");
+            searchParams.put("passengerStatus","1");
             searchParams.put("payStatus","2");
 
             List<Sort> sortList = new ArrayList<>();