UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java
@@ -25,4 +25,6 @@ * @return */ List<Map<String, Object>> scanCodeQueryLines(@Param("driverId") Integer driverId); List<Map<String, Object>> queryLinesByStopoverIds(@Param("stopoverIds")List<Integer> stopoverIds, @Param("type")Integer type); } UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java
@@ -16,4 +16,10 @@ * @return */ List<Map<String, Object>> querySite(@Param("startSiteId") Integer startSiteId); /** * 根据起点站点获取线路相关的终点站点 * @param startSiteId * @return */ List<Map<String, Object>> querySite_(@Param("startSiteId") Integer startSiteId); } UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml
@@ -33,4 +33,20 @@ left join t_line b on (a.lineId = b.id) where b.state = 1 and a.driverId = #{driverId} </select> <select id="queryLinesByStopoverIds" resultType="java.util.Map"> select a.id as id, a.name as name, c.name as siteName from t_line a left join t_line_site b on (a.id = b.lineId) left join t_site c on (b.siteId = c.id) where a.state = 1 and b.type = #{type} <if test="null != stopoverIds"> and b.lineId in <foreach item="item" collection="stopoverIds" index="index" separator="," close=")" open="("> #{item} </foreach> </if> </select> </mapper> UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml
@@ -31,4 +31,15 @@ and a.id in(select siteId from t_line_site where lineId in(select lineId from t_line_site where siteId = #{startSiteId} and type = 1) and type = 2) </if> </select> <select id="querySite_" resultType="map"> select * from ( select id as id, `name` as `name`, provinceCode as cityCode, province as cityName from t_site where province like '%市' and state = 1 UNION ALL select id as id, `name` as `name`, cityCode as cityCode, city as cityName from t_site where province not like '%市' and state = 1 ) as a where 1 = 1 <if test="null != startSiteId"> and a.id in(select siteId from t_line_site where lineId in(select lineId from t_line_site where siteId = #{startSiteId} and type = 1) and (type = 2 or type = 3)) </if> </select> </mapper> UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java
@@ -5,11 +5,13 @@ import com.stylefeng.guns.modular.crossCity.model.Line; import com.stylefeng.guns.modular.crossCity.server.ILineService; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service @@ -30,6 +32,20 @@ public List<Map<String, Object>> queryLines(Integer startId, Integer endId, Integer driverId) throws Exception { List<Map<String, Object>> list1 = lineMapper.queryLines(startId, 1); List<Map<String, Object>> list2 = lineMapper.queryLines(endId, 2); // 结束站点为经停站的 List<Map<String, Object>> list4 = lineMapper.queryLines(endId, 3); if(!CollectionUtils.isEmpty(list4)){ List<Integer> stopoverIds = new ArrayList<>(); for (Map<String, Object> stopoverStation : list4) { Integer stopoverId = Integer.valueOf(stopoverStation.get("id").toString()); stopoverIds.add(stopoverId); } stopoverIds = stopoverIds.stream().distinct().collect(Collectors.toList()); // 查询经停站的终点 List<Map<String, Object>> endList = lineMapper.queryLinesByStopoverIds(stopoverIds,2); list2.addAll(endList); } list2 = list2.stream().distinct().collect(Collectors.toList()); List<Map<String, Object>> list = new ArrayList<>(); for(Map<String, Object> map1 : list1){ Integer id1 = Integer.valueOf(map1.get("id").toString()); UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java
@@ -40,7 +40,9 @@ if(null == startSiteId){ sites = siteMapper.querySite(null); }else{ sites = siteMapper.querySite(startSiteId); // sites = siteMapper.querySite(startSiteId); // 查询终点和经停站 sites = siteMapper.querySite_(startSiteId); } Set<String> set = new HashSet<>(); for(Map<String, Object> site : sites) {