xuhy
2025-08-19 629c5b1816332300fd164a2e85551b212c62b0d4
跨城的多站点用户接口
6个文件已修改
55 ■■■■■ 已修改文件
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) {