|
@@ -2,15 +2,20 @@ package com.jpsoft.bus.modules.mobile.controller;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.symmetric.DES;
|
|
|
+import cn.hutool.db.sql.Order;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.jpsoft.bus.config.OSSConfig;
|
|
|
+import com.jpsoft.bus.modules.base.dto.PassengerOrderDTO;
|
|
|
+import com.jpsoft.bus.modules.base.entity.MergeOrderInfo;
|
|
|
+import com.jpsoft.bus.modules.base.entity.OrderInfo;
|
|
|
+import com.jpsoft.bus.modules.base.service.MergeOrderInfoService;
|
|
|
+import com.jpsoft.bus.modules.base.service.OrderInfoService;
|
|
|
+import com.jpsoft.bus.modules.bus.dto.PassengerDetailDTO;
|
|
|
+import com.jpsoft.bus.modules.bus.dto.VehicleStationDTO;
|
|
|
import com.jpsoft.bus.modules.bus.entity.*;
|
|
|
import com.jpsoft.bus.modules.bus.service.*;
|
|
|
import com.jpsoft.bus.modules.common.dto.MessageResult;
|
|
|
-import com.jpsoft.bus.modules.common.utils.DES3;
|
|
|
-import com.jpsoft.bus.modules.common.utils.JwtUtil;
|
|
|
-import com.jpsoft.bus.modules.common.utils.OSSUtil;
|
|
|
-import com.jpsoft.bus.modules.common.utils.SMSUtil;
|
|
|
+import com.jpsoft.bus.modules.common.utils.*;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
@@ -28,10 +33,8 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
import sun.security.krb5.internal.crypto.Des3;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
@@ -53,6 +56,15 @@ public class PassengerApiController {
|
|
|
@Autowired
|
|
|
private BaiduService baiduService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OrderInfoService orderInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PassengerInfoService passengerInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MergeOrderInfoService mergeOrderInfoService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private RedisTemplate redisTemplate;
|
|
|
|
|
@@ -181,16 +193,8 @@ public class PassengerApiController {
|
|
|
userId = userInfo.getId();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
token = JwtUtil.createToken(jwtSecret, String.valueOf(userId), DateTime.now().plusHours(6).toDate());
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("token", token);
|
|
|
map.put("userInfo", userInfo);
|
|
@@ -238,16 +242,25 @@ public class PassengerApiController {
|
|
|
//结束站点
|
|
|
StationInfo endStation = stationInfoService.get(shiftInfo.getEndStationId());
|
|
|
|
|
|
+ //线路所有站点
|
|
|
+ List<StationInfo> stationInfoList = stationInfoService.findByRouteId(shiftInfo.getRouteId());
|
|
|
+
|
|
|
+ // List<VehicleStationDTO> vehicleStationDTOList = stationInfoService.getVehicleStationDTO(shiftInfo,stationInfoList);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("startStation",startStation.getName());
|
|
|
+ map.put("startStationId",startStation.getId());
|
|
|
+ map.put("startStationCoordinate",startStation.getLongitude() + "|" +startStation.getLatitude());
|
|
|
map.put("endStation",endStation.getName());
|
|
|
+ map.put("endStationId",endStation.getId());
|
|
|
+ map.put("endStationCoordinate",endStation.getLongitude() + "|" + endStation.getLatitude());
|
|
|
map.put("startTime",routeInfo.getStartTime());
|
|
|
map.put("endTime",routeInfo.getEndTime());
|
|
|
map.put("routeName",routeInfo.getName());
|
|
|
map.put("mapPath",routeInfo.getMapPath());
|
|
|
- map.put("longitude",vehicleInfo.getLongitude());
|
|
|
- map.put("latitude",vehicleInfo.getLatitude());
|
|
|
+ // map.put("stationList",vehicleStationDTOList);
|
|
|
messageResult.setData(map);
|
|
|
messageResult.setResult(true);
|
|
|
messageResult.setCode(200);
|
|
@@ -260,6 +273,160 @@ public class PassengerApiController {
|
|
|
return messageResult;
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("getVehicleStationInfo")
|
|
|
+ @ApiOperation(value = "获取车辆站点的位置")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "id", value = "车辆id", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<List<VehicleStationDTO>> getVehicleStationInfo(String id) {
|
|
|
+ MessageResult<List<VehicleStationDTO>> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleIdAndStatus(id, "1");
|
|
|
+
|
|
|
+ if (shiftInfoList.size() == 0) {
|
|
|
+ throw new Exception("当前车辆没有正运行的班次");
|
|
|
+ }
|
|
|
+
|
|
|
+ //班次信息
|
|
|
+ ShiftInfo shiftInfo = shiftInfoList.get(0);
|
|
|
+
|
|
|
+ //车辆信息
|
|
|
+ VehicleInfo vehicleInfo = vehicleInfoService.get(id);
|
|
|
+
|
|
|
+ //线路所有站点
|
|
|
+ List<StationInfo> stationInfoList = stationInfoService.findByRouteId(shiftInfo.getRouteId());
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ List<VehicleStationDTO> vehicleStationDTOList = stationInfoService.getVehicleStationDTO(shiftInfo,stationInfoList);
|
|
|
+ messageResult.setData(vehicleStationDTOList);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error(ex.getMessage());
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("getVehicleInfo")
|
|
|
+ @ApiOperation(value = "获取车辆的位置")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "id", value = "车辆id", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> getVehicleInfo(String id) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleIdAndStatus(id, "1");
|
|
|
+
|
|
|
+ if (shiftInfoList.size() == 0) {
|
|
|
+ throw new Exception("当前车辆没有正运行的班次");
|
|
|
+ }
|
|
|
+
|
|
|
+ //班次信息
|
|
|
+ ShiftInfo shiftInfo = shiftInfoList.get(0);
|
|
|
+
|
|
|
+ //车辆信息
|
|
|
+ VehicleInfo vehicleInfo = vehicleInfoService.get(id);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("longitude", vehicleInfo.getLongitude());
|
|
|
+ map.put("latitude", vehicleInfo.getLatitude());
|
|
|
+ map.put("currentStationId",shiftInfo.getCurrentStationId());
|
|
|
+ messageResult.setData(map);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error(ex.getMessage());
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("getPassengerInfo")
|
|
|
+ @ApiOperation(value = "获取微信在当前车辆添加乘客信息")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "id", value = "车辆id", required = true, paramType = "form"),
|
|
|
+ @ApiImplicitParam(name = "openId", value = "openId", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> getVehicleInfo(String id,String openId) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleIdAndStatus(id, "1");
|
|
|
+
|
|
|
+ if (shiftInfoList.size() == 0) {
|
|
|
+ throw new Exception("当前车辆没有正运行的班次");
|
|
|
+ }
|
|
|
+
|
|
|
+ //班次信息
|
|
|
+ ShiftInfo shiftInfo = shiftInfoList.get(0);
|
|
|
+
|
|
|
+ //车辆信息
|
|
|
+ VehicleInfo vehicleInfo = vehicleInfoService.get(id);
|
|
|
+
|
|
|
+ List<MergeOrderInfo> mergeOrderInfoList = mergeOrderInfoService.findByOpenIdShiftIdPayStatus(openId,shiftInfo.getId(),10);
|
|
|
+
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ List<PassengerOrderDTO> passengerOrderDTOList = new ArrayList<>();
|
|
|
+ if (mergeOrderInfoList.size()>0){
|
|
|
+ MergeOrderInfo mergeOrderInfo = mergeOrderInfoList.get(0);
|
|
|
+ List<OrderInfo> orderInfoList = orderInfoService.findByMergeOrderId(mergeOrderInfo.getId());
|
|
|
+
|
|
|
+ if (orderInfoList.size()>0){
|
|
|
+ for (OrderInfo orderInfo : orderInfoList){
|
|
|
+
|
|
|
+
|
|
|
+ PassengerInfo passengerInfo = passengerInfoService.get(orderInfo.getPassengerId());
|
|
|
+ //购票始发站
|
|
|
+ StationInfo start = stationInfoService.get(passengerInfo.getTicketUpStationId());
|
|
|
+ //购票终点站
|
|
|
+ StationInfo end = stationInfoService.get(passengerInfo.getTicketDownStationId());
|
|
|
+ PassengerOrderDTO passengerOrderDTO = new PassengerOrderDTO();
|
|
|
+ passengerOrderDTO.setId(orderInfo.getPassengerId());
|
|
|
+ passengerOrderDTO.setImageUrl(passengerInfo.getImageUrl());
|
|
|
+ passengerOrderDTO.setTicketUpStationName(start.getName());
|
|
|
+ passengerOrderDTO.setTicketUpStationId(start.getId());
|
|
|
+ passengerOrderDTO.setTicketDownStationId(end.getId());
|
|
|
+ passengerOrderDTO.setTicketDownStationName(end.getName());
|
|
|
+ passengerOrderDTO.setTicketType(orderInfo.getTicketType());
|
|
|
+ passengerOrderDTO.setTicketTypeStr(passengerOrderDTO.getTicketTypeStr(passengerOrderDTO.getTicketType()));
|
|
|
+ passengerOrderDTO.setGoodsTicket(orderInfo.getGoodsTicket());
|
|
|
+ passengerOrderDTO.setTotalFee(orderInfo.getTotalFee());
|
|
|
+ passengerOrderDTOList.add(passengerOrderDTO);
|
|
|
+
|
|
|
+ totalAmount = totalAmount.add(orderInfo.getTotalFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("totalAmount", totalAmount);
|
|
|
+ map.put("list", passengerOrderDTOList);
|
|
|
+ messageResult.setData(map);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error(ex.getMessage());
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@PostMapping("upload")
|
|
|
@ApiOperation(value = "人员照片上传")
|
|
|
@ApiImplicitParams({
|
|
@@ -288,8 +455,8 @@ public class PassengerApiController {
|
|
|
}
|
|
|
|
|
|
|
|
|
- @PostMapping("matchFaceImage")
|
|
|
- @ApiOperation(value = "匹配照片")
|
|
|
+ @PostMapping("getMatchFaceImage")
|
|
|
+ @ApiOperation(value = "获取匹配度高的照片")
|
|
|
@ApiImplicitParams({
|
|
|
@ApiImplicitParam(name = "faceImageUrl", value = "人脸照片", required = true, paramType = "form"),
|
|
|
@ApiImplicitParam(name = "id", value = "车辆id", required = true, paramType = "form")
|
|
@@ -301,9 +468,12 @@ public class PassengerApiController {
|
|
|
//车辆
|
|
|
VehicleInfo vehicleInfo = vehicleInfoService.get(id);
|
|
|
//人脸库id
|
|
|
- String groupId = StrUtil.sub(vehicleInfo.getLicensePlateNumber(),1,-1);
|
|
|
+ String groupId = CommonUtil.getProvinceNum(vehicleInfo.getLicensePlateNumber()) + StrUtil.sub(vehicleInfo.getLicensePlateNumber(), 1, 10);
|
|
|
|
|
|
- // baiduService.faceSearch();
|
|
|
+ Long personId = baiduService.faceSearch(faceImageUrl,"URL",groupId);
|
|
|
+ if (personId == null){
|
|
|
+ throw new Exception("无匹配照片");
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|