Sfoglia il codice sorgente

司机端修改乘客上车逻辑

fllmoyu 4 anni fa
parent
commit
8672b86d6e

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dao/PriceInfoDAO.java

@@ -15,4 +15,6 @@ public interface PriceInfoDAO {
 	int delete(String id);
 	List<PriceInfo> list();
 	List<PriceInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
+
+    PriceInfo findByStartStationAndEndStation(String ticketUpStationId, String ticketDownStationId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/PriceInfoService.java

@@ -14,4 +14,6 @@ public interface PriceInfoService {
 	int delete(String id);
 	List<PriceInfo> list();
 	Page<PriceInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+
+    PriceInfo findByStartStationAndEndStation(String ticketUpStationId, String ticketDownStationId);
 }

+ 112 - 104
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/PassengerInfoServiceImpl.java

@@ -24,113 +24,121 @@ import com.jpsoft.bus.modules.common.dto.Sort;
 import com.github.pagehelper.PageHelper;
 
 @Transactional
-@Component(value="passengerInfoService")
+@Component(value = "passengerInfoService")
 public class PassengerInfoServiceImpl implements PassengerInfoService {
-	@Resource(name="passengerInfoDAO")
-	private PassengerInfoDAO passengerInfoDAO;
-
-	@Autowired
-	private BaiduService baiduService;
-
-	@Override
-	public PassengerInfo get(String id) {
-		// TODO Auto-generated method stub
-		return passengerInfoDAO.get(id);
-	}
-
-	@Override
-	public int insert(PassengerInfo model) {
-		// TODO Auto-generated method stub
-		//model.setId(UUID.randomUUID().toString());
-
-		return passengerInfoDAO.insert(model);
-	}
-
-	@Override
-	public int update(PassengerInfo model) {
-		// TODO Auto-generated method stub
-		return passengerInfoDAO.update(model);
-	}
-
-	@Override
-	public int delete(String id) {
-		// TODO Auto-generated method stub
-		return passengerInfoDAO.delete(id);
-	}
-
-	@Override
-	public boolean exist(String id) {
-		// TODO Auto-generated method stub
-		int count = passengerInfoDAO.exist(id);
-
-		return count > 0 ? true : false;
-	}
-
-	@Override
-	public List<PassengerInfo> list() {
-		// TODO Auto-generated method stub
-		return passengerInfoDAO.list();
-	}
-
-	@Override
-	public Page<PassengerInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-        Page<PassengerInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-            passengerInfoDAO.search(searchParams,sortList);
+    @Resource(name = "passengerInfoDAO")
+    private PassengerInfoDAO passengerInfoDAO;
+
+    @Autowired
+    private BaiduService baiduService;
+
+    @Override
+    public PassengerInfo get(String id) {
+        // TODO Auto-generated method stub
+        return passengerInfoDAO.get(id);
+    }
+
+    @Override
+    public int insert(PassengerInfo model) {
+        // TODO Auto-generated method stub
+        //model.setId(UUID.randomUUID().toString());
+
+        return passengerInfoDAO.insert(model);
+    }
+
+    @Override
+    public int update(PassengerInfo model) {
+        // TODO Auto-generated method stub
+        return passengerInfoDAO.update(model);
+    }
+
+    @Override
+    public int delete(String id) {
+        // TODO Auto-generated method stub
+        return passengerInfoDAO.delete(id);
+    }
+
+    @Override
+    public boolean exist(String id) {
+        // TODO Auto-generated method stub
+        int count = passengerInfoDAO.exist(id);
+
+        return count > 0 ? true : false;
+    }
+
+    @Override
+    public List<PassengerInfo> list() {
+        // TODO Auto-generated method stub
+        return passengerInfoDAO.list();
+    }
+
+    @Override
+    public Page<PassengerInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
+        Page<PassengerInfo> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {
+            passengerInfoDAO.search(searchParams, sortList);
         });
 
         return page;
-	}
-
-	@Override
-	public List<PassengerInfo> findByPersonIdShiftIdStatus(Long personId, String shiftId, String status) {
-		return passengerInfoDAO.findByPersonIdShiftIdStatus(personId,shiftId,status);
-	}
-
-	@Override
-	public void passengerFace(VehicleInfo vehicleInfo, ShiftInfo shiftInfo, String retFileUrl, String recordTime, String stationId,String personId) throws Exception {
-		Date recordDate = DateUtil.parse(recordTime,"yyyy-MM-dd HH:mm:ss");
-
-		//查询是否有已上车的乘客记录
-		List<PassengerInfo> passengerInfoList = findByPersonIdShiftIdStatus(Long.parseLong(personId),shiftInfo.getId(),"1");
-
-		if (passengerInfoList.size()>0){
-			PassengerInfo passengerInfo = passengerInfoList.get(0);
-			passengerInfo.setDownTime(recordDate);
-			passengerInfo.setDownStationId(stationId);
-			passengerInfo.setStatus("2");
-			update(passengerInfo);
-		}
-		else {
-			PassengerInfo passengerInfo = new PassengerInfo();
-			passengerInfo.setId(UUID.randomUUID().toString());
-			passengerInfo.setVehicleShiftId(shiftInfo.getId());
-			passengerInfo.setVehiclePersonId(Long.parseLong(personId));
-			passengerInfo.setUpTime(recordDate);
-			passengerInfo.setUpStationId(stationId);
-			passengerInfo.setStatus("1");
-			passengerInfo.setPayStatus("0");
-			passengerInfo.setCreateTime(new Date());
-
-			if (StringUtils.isNotEmpty(retFileUrl)){
-				passengerInfo.setImageUrl(retFileUrl);
+    }
+
+    @Override
+    public List<PassengerInfo> findByPersonIdShiftIdStatus(Long personId, String shiftId, String status) {
+        return passengerInfoDAO.findByPersonIdShiftIdStatus(personId, shiftId, status);
+    }
+
+    @Override
+    public void passengerFace(VehicleInfo vehicleInfo, ShiftInfo shiftInfo, String retFileUrl, String recordTime, String stationId, String personId) throws Exception {
+        Date recordDate = DateUtil.parse(recordTime, "yyyy-MM-dd HH:mm:ss");
+
+        //查询是否有已上车的乘客记录
+        List<PassengerInfo> passengerInfoList = findByPersonIdShiftIdStatus(Long.parseLong(personId), shiftInfo.getId(), "1");
+
+        if (passengerInfoList.size() > 0) {
+            PassengerInfo passengerInfo = passengerInfoList.get(0);
+            passengerInfo.setDownTime(recordDate);
+            passengerInfo.setDownStationId(stationId);
+            passengerInfo.setStatus("2");
+            update(passengerInfo);
+        } else {
+
+            //查询此班次是否有已下车的记录
+            List<PassengerInfo> passengerInfoList1 = findByPersonIdShiftIdStatus(Long.parseLong(personId), shiftInfo.getId(), "2");
+            if (passengerInfoList1.size() == 0) {
+                PassengerInfo passengerInfo = new PassengerInfo();
+                passengerInfo.setId(UUID.randomUUID().toString());
+                passengerInfo.setVehicleShiftId(shiftInfo.getId());
+                passengerInfo.setVehiclePersonId(Long.parseLong(personId));
+                passengerInfo.setUpTime(recordDate);
+                passengerInfo.setUpStationId(stationId);
+                passengerInfo.setStatus("1");
+                passengerInfo.setPayStatus("0");
+                passengerInfo.setCreateTime(new Date());
+
+                if (StringUtils.isNotEmpty(retFileUrl)) {
+                    passengerInfo.setImageUrl(retFileUrl);
+                } else {
+                    //如果没有上车记录,但有已下车记录,则读取之前记录的头像信息
+                    List<PassengerInfo> downList = findByPersonIdShiftIdStatus(Long.parseLong(personId), shiftInfo.getId(), "2");
+
+                    if (downList.size() > 0) {
+                        passengerInfo.setImageUrl(downList.get(0).getImageUrl());
+                    }
+                }
+
+                insert(passengerInfo);
+
+                String groupId = CommonUtil.getProvinceNum(vehicleInfo.getLicensePlateNumber()) + StrUtil.sub(vehicleInfo.getLicensePlateNumber(), 1, 10);
+
+                if (StringUtils.isNotEmpty(groupId)) {
+                    //将图片上传到百度AI人脸识别,  userInfo 1:司机,2:乘客
+                    baiduService.faceUserAdd(retFileUrl, groupId, personId, "2");
+                }
+
+            }else {
+				PassengerInfo passengerInfo = passengerInfoList1.get(0);
+				passengerInfo.setStatus("1");
+				update(passengerInfo);
 			}
-			else {
-				//如果没有上车记录,但有已下车记录,则读取之前记录的头像信息
-				List<PassengerInfo> downList = findByPersonIdShiftIdStatus(Long.parseLong(personId), shiftInfo.getId(), "2");
-
-				if (downList.size()>0){
-					passengerInfo.setImageUrl(downList.get(0).getImageUrl());
-				}
-			}
-
-			insert(passengerInfo);
-
-			String groupId = CommonUtil.getProvinceNum(vehicleInfo.getLicensePlateNumber()) + StrUtil.sub(vehicleInfo.getLicensePlateNumber(),1,10);
-
-			if (StringUtils.isNotEmpty(groupId)) {
-				//将图片上传到百度AI人脸识别,  userInfo 1:司机,2:乘客
-				baiduService.faceUserAdd(retFileUrl, groupId, personId, "2");
-			}
-		}
-	}
+        }
+    }
 }

+ 11 - 6
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/PriceInfoServiceImpl.java

@@ -29,14 +29,14 @@ public class PriceInfoServiceImpl implements PriceInfoService {
 	public int insert(PriceInfo model) {
 		// TODO Auto-generated method stub
 		//model.setId(UUID.randomUUID().toString());
-		
+
 		return priceInfoDAO.insert(model);
 	}
 
 	@Override
 	public int update(PriceInfo model) {
 		// TODO Auto-generated method stub
-		return priceInfoDAO.update(model);		
+		return priceInfoDAO.update(model);
 	}
 
 	@Override
@@ -49,22 +49,27 @@ public class PriceInfoServiceImpl implements PriceInfoService {
 	public boolean exist(String id) {
 		// TODO Auto-generated method stub
 		int count = priceInfoDAO.exist(id);
-		
+
 		return count > 0 ? true : false;
 	}
-	
+
 	@Override
 	public List<PriceInfo> list() {
 		// TODO Auto-generated method stub
 		return priceInfoDAO.list();
 	}
-		
+
 	@Override
 	public Page<PriceInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
         Page<PriceInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
             priceInfoDAO.search(searchParams,sortList);
         });
-        
+
         return page;
 	}
+
+	@Override
+	public PriceInfo findByStartStationAndEndStation(String ticketUpStationId, String ticketDownStationId) {
+		return priceInfoDAO.findByStartStationAndEndStation(ticketUpStationId,ticketDownStationId);
+	}
 }

+ 12 - 2
common/src/main/resources/mapper/bus/PriceInfo.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!-- namespace必须指向DAO接口 -->
 <mapper namespace="com.jpsoft.bus.modules.bus.dao.PriceInfoDAO">
@@ -76,7 +76,7 @@
 	where id_=#{id}
 	</update>
 	<select id="get" parameterType="string" resultMap="PriceInfoMap">
-		select 
+		select
 id_,start_station_id,end_station_id,distance_,price_,create_by,create_time,update_by,update_time,del_flag		from bus_price_info where id_=#{0}
 	</select>
 	<select id="exist" parameterType="string" resultType="int">
@@ -98,4 +98,14 @@ id_,start_station_id,end_station_id,distance_,price_,create_by,create_time,updat
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+
+	<select id="findByStartStationAndEndStation" resultMap="PriceInfoMap">
+		<![CDATA[
+		select * from bus_price_info
+		where del_flag = 0
+		and start_station_id = #{ticketUpStationId}
+		and end_station_id = #{ticketDownStationId}
+		limit 1
+		]]>
+	</select>
 </mapper>

+ 18 - 4
web/src/main/java/com/jpsoft/bus/modules/driver/controller/DriverApiController.java

@@ -55,6 +55,9 @@ public class DriverApiController {
     @Autowired
     private ShiftInfoService shiftInfoService;
 
+    @Autowired
+    private PriceInfoService priceInfoService;
+
     @Autowired
     private BaiduService baiduService;
 
@@ -662,18 +665,29 @@ public class DriverApiController {
             @ApiImplicitParam(name = "token", value = "令牌", paramType = "form"),
             @ApiImplicitParam(name = "subject", value = "目标(不传)", paramType = "form"),
             @ApiImplicitParam(name = "ticketUpStationId", value = "乘客买票站点id", required = true, paramType = "form"),
-            @ApiImplicitParam(name = "ticketDownStationId", value = "乘客买票下车站点id", required = true, paramType = "form")
+            @ApiImplicitParam(name = "ticketDownStationId", value = "乘客买票下车站点id", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "ticketType", value = "购票类型(1:儿童票,2:成人票)", required = true, paramType = "form")
     })
-    public MessageResult<Map> ticketAmount(String ticketUpStationId,String ticketDownStationId,String token, @RequestAttribute String subject) {
+    public MessageResult<Map> ticketAmount(String ticketUpStationId,String ticketDownStationId,String ticketType,String token, @RequestAttribute String subject) {
         MessageResult<Map> messageResult = new MessageResult<>();
 
         try {
 
 
+            PriceInfo priceInfo = priceInfoService.findByStartStationAndEndStation(ticketUpStationId,ticketDownStationId);
+            if (priceInfo == null){
+                throw new Exception("站点间没有价格标准");
+            }
 
+            BigDecimal price = priceInfo.getPrice();
+            if ("1".equals(ticketType)){
+                price = price.divide(new BigDecimal(2));
+            }
+            Map<String,Object> map = new HashMap<>();
+            map.put("price",price);
+            map.put("distance",priceInfo.getDistance());
 
-
-
+            messageResult.setData(map);
             messageResult.setResult(true);
             messageResult.setCode(200);
         } catch (Exception ex) {