Commit f6d110c7c318825d9ed1eee1fd2bb83db122df7f

Authored by 王通
1 parent bd229979

1.百度地图key替换

2.区间子线路+线路文件、报站文件生成的完善,以及线调的处理变化
3.js打包兼容es6
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
@@ -12,7 +12,6 @@ import com.bsth.util.db.DBUtils_MS; @@ -12,7 +12,6 @@ import com.bsth.util.db.DBUtils_MS;
12 import com.google.common.base.Splitter; 12 import com.google.common.base.Splitter;
13 import org.apache.commons.lang3.StringUtils; 13 import org.apache.commons.lang3.StringUtils;
14 import org.geolatte.geom.Polygon; 14 import org.geolatte.geom.Polygon;
15 -import org.springframework.beans.BeanUtils;  
16 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.beans.factory.annotation.Value; 16 import org.springframework.beans.factory.annotation.Value;
18 import org.springframework.data.domain.Sort; 17 import org.springframework.data.domain.Sort;
@@ -1037,47 +1036,56 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ @@ -1037,47 +1036,56 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ
1037 } 1036 }
1038 } 1037 }
1039 1038
  1039 + /**
  1040 + * 组装子线路文件内容
  1041 + * @param lineRegion
  1042 + * @return
  1043 + */
1040 private String subLine2Ftp(LineRegion lineRegion) { 1044 private String subLine2Ftp(LineRegion lineRegion) {
1041 StringBuilder builder = new StringBuilder(); 1045 StringBuilder builder = new StringBuilder();
1042 int len = lineRegion.getStationRoutes().size(); 1046 int len = lineRegion.getStationRoutes().size();
1043 - if (len < 2) throw new RuntimeException("无效的区间线路");  
1044 int idx = 1; 1047 int idx = 1;
1045 - List<LsStationRoute> stationRoutes = new ArrayList<>();  
1046 - stationRoutes.add(lineRegion.getStationRoutes().get(len - 1));  
1047 - stationRoutes.add(lineRegion.getStationRoutes().get(0));  
1048 if (lineRegion.getDirection() == 1) { 1048 if (lineRegion.getDirection() == 1) {
1049 - idx = mergeSubLine(stationRoutes, builder, idx); 1049 + LsStationRoute first = lineRegion.getStationRoutes().get(0), last = lineRegion.getStationRoutes().get(len - 1);
  1050 + spliceRoute(builder, first, idx, false); idx++;
  1051 + spliceRoute(builder, last, idx, true); idx++;
  1052 + }
  1053 + for (int i = 0;i < len;i++) {
  1054 + LsStationRoute route = lineRegion.getStationRoutes().get(i);
  1055 + spliceRoute(builder, route, idx, i == len - 1);
  1056 +
  1057 + idx++;
1050 } 1058 }
1051 - idx = mergeSubLine(lineRegion.getStationRoutes(), builder, idx);  
1052 if (lineRegion.getDirection() == 0) { 1059 if (lineRegion.getDirection() == 0) {
1053 - mergeSubLine(stationRoutes, builder, idx); 1060 + LsStationRoute first = lineRegion.getStationRoutes().get(0), last = lineRegion.getStationRoutes().get(len - 1);
  1061 + spliceRoute(builder, first, idx, false); idx++;
  1062 + spliceRoute(builder, last, idx, true);
1054 } 1063 }
1055 1064
1056 return builder.toString(); 1065 return builder.toString();
1057 } 1066 }
1058 1067
1059 - private int mergeSubLine(List<LsStationRoute> stationRoutes, StringBuilder builder, int idx) {  
1060 - int len = stationRoutes.size();  
1061 - for (int i = 0;i < len;i++) {  
1062 - LsStationRoute route = stationRoutes.get(i);  
1063 - builder.append(route.getCenterPointWgs().getPosition().getCoordinate(0))  
1064 - .append("\t").append(route.getCenterPointWgs().getPosition().getCoordinate(1))  
1065 - .append("\t").append(i == len - 1 ? 2 : 1)  
1066 - .append("\t").append(idx).append("\t");  
1067 - for (int j = 0;j < 8 - route.getStationCode().length();j++) {  
1068 - builder.append("0");  
1069 - }  
1070 - builder.append(route.getStationCode())  
1071 - .append("\t").append((int) route.getDistances().doubleValue() * 1000)  
1072 - .append("\t0")  
1073 - .append("\t").append(route.getStationName())  
1074 - .append("\t").append(route.getStationNameEn())  
1075 - .append("\r\n");  
1076 -  
1077 - idx++; 1068 + /**
  1069 + * 按站点路由进行组装
  1070 + * @param builder
  1071 + * @param route
  1072 + * @param idx
  1073 + * @param isEnd
  1074 + */
  1075 + private void spliceRoute(StringBuilder builder, LsStationRoute route, int idx, boolean isEnd){
  1076 + builder.append(route.getCenterPointWgs().getPosition().getCoordinate(0))
  1077 + .append("\t").append(route.getCenterPointWgs().getPosition().getCoordinate(1))
  1078 + .append("\t").append(isEnd ? 2 : 1)
  1079 + .append("\t").append(idx).append("\t");
  1080 + for (int j = 0;j < 8 - route.getStationCode().length();j++) {
  1081 + builder.append("0");
1078 } 1082 }
1079 -  
1080 - return idx; 1083 + builder.append(route.getStationCode())
  1084 + .append("\t").append((int) route.getDistances().doubleValue() * 1000)
  1085 + .append("\t0")
  1086 + .append("\t").append(route.getStationName())
  1087 + .append("\t").append(route.getStationNameEn())
  1088 + .append("\r\n");
1081 } 1089 }
1082 1090
1083 /** 1091 /**
@@ -1115,8 +1123,8 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1115,8 +1123,8 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1115 downs++; 1123 downs++;
1116 } 1124 }
1117 } 1125 }
1118 - cnBuilder.delete(cnBuilder.length() - 7, cnBuilder.length());  
1119 - enBuilder.delete(enBuilder.length() - 7, enBuilder.length()); 1126 + cnBuilder.delete(cnBuilder.length() - 8, cnBuilder.length() - 1);
  1127 + enBuilder.delete(enBuilder.length() - 8, enBuilder.length() - 1);
1120 1128
1121 // 文本转语音并进行分割 1129 // 文本转语音并进行分割
1122 // 音频存放及压缩文件路径 1130 // 音频存放及压缩文件路径
@@ -1146,15 +1154,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1146,15 +1154,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1146 seq = merge(lineId, "0", seq, seqs, languages); 1154 seq = merge(lineId, "0", seq, seqs, languages);
1147 if (line.getLinePlayType() != 1) { 1155 if (line.getLinePlayType() != 1) {
1148 seqs.clear(); 1156 seqs.clear();
1149 - for (int i = seq;i < ups + downs;i++) {  
1150 - seqs.add(new SeqStationLevel(i, i + 1, 1)); 1157 + for (int i = seq;i <= ups + downs;i++) {
  1158 + seqs.add(new SeqStationLevel(i, i, 1));
1151 } 1159 }
1152 merge(lineId, "0", seq, seqs, languages); 1160 merge(lineId, "0", seq, seqs, languages);
1153 } 1161 }
1154 - zipAudio(String.format("%s%s/", linePath, "0"), voicePath, lineId); 1162 + zipAudio(String.format("%s%s/", linePath, "0"), voicePath);
1155 1163
1156 // 线路区间 1164 // 线路区间
1157 - Map<String, List<SeqStationLevel>> region2map = new HashMap<>(); 1165 + Map<LineRegion, List<SeqStationLevel>> region2map = new HashMap<>();
1158 for (LineRegion lineRegion : lineRegions) { 1166 for (LineRegion lineRegion : lineRegions) {
1159 for (int i = 0;i < objects.size();i++) { 1167 for (int i = 0;i < objects.size();i++) {
1160 Object[] objArr = objects.get(i); 1168 Object[] objArr = objects.get(i);
@@ -1164,10 +1172,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1164,10 +1172,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1164 for (int j = 0;j < lineRegion.getStationRoutes().size();j++) { 1172 for (int j = 0;j < lineRegion.getStationRoutes().size();j++) {
1165 LsStationRoute stationRoute = lineRegion.getStationRoutes().get(j); 1173 LsStationRoute stationRoute = lineRegion.getStationRoutes().get(j);
1166 if (stationCode.equals(stationRoute.getStationCode())) { 1174 if (stationCode.equals(stationRoute.getStationCode())) {
1167 - List<SeqStationLevel> map = region2map.get(lineRegion.getSeq().toString()); 1175 + List<SeqStationLevel> map = region2map.get(lineRegion);
1168 if (map == null) { 1176 if (map == null) {
1169 map = new ArrayList<>(); 1177 map = new ArrayList<>();
1170 - region2map.put(lineRegion.getSeq().toString(), map); 1178 + region2map.put(lineRegion, map);
1171 } 1179 }
1172 map.add(new SeqStationLevel(j + 1, i + 1, direction)); 1180 map.add(new SeqStationLevel(j + 1, i + 1, direction));
1173 break; 1181 break;
@@ -1176,12 +1184,26 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1176,12 +1184,26 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1176 } 1184 }
1177 } 1185 }
1178 } 1186 }
1179 - for (Map.Entry<String, List<SeqStationLevel>> entry : region2map.entrySet()) {  
1180 - String subLineId = entry.getKey(); 1187 + for (Map.Entry<LineRegion, List<SeqStationLevel>> entry : region2map.entrySet()) {
  1188 + LineRegion lineRegion = entry.getKey();
  1189 + String subLineId = lineRegion.getSeq().toString();
1181 List<SeqStationLevel> map = entry.getValue(); 1190 List<SeqStationLevel> map = entry.getValue();
1182 seq = 1; 1191 seq = 1;
1183 - merge(lineId, subLineId, seq, map, languages);  
1184 - zipAudio(String.format("%s%s/", linePath, subLineId), String.format("%s%s-%s.zip", linePath, lineId, subLineId), String.format("%s-%s", lineId, subLineId)); 1192 + if (lineRegion.getDirection() == 1) {
  1193 + List<SeqStationLevel> map1 = new ArrayList<>();
  1194 + map1.add(new SeqStationLevel(1, 1, 0));
  1195 + map1.add(new SeqStationLevel(2, 2, 0));
  1196 + seq = merge(lineId, subLineId, seq, map1, languages);
  1197 + }
  1198 + seq = merge(lineId, subLineId, seq, map, languages);
  1199 + if (lineRegion.getDirection() == 0) {
  1200 + List<SeqStationLevel> map1 = new ArrayList<>();
  1201 + map1.add(new SeqStationLevel(map.size() + 1, 1, 1));
  1202 + map1.add(new SeqStationLevel(map.size() + 2, 2, 1));
  1203 + merge(lineId, subLineId, seq, map1, languages);
  1204 + }
  1205 +
  1206 + zipAudio(String.format("%s%s/", linePath, subLineId), String.format("%s%s-%s.zip", linePath, lineId, subLineId));
1185 } 1207 }
1186 } 1208 }
1187 1209
@@ -1203,28 +1225,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1203,28 +1225,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1203 * @param subLinePath 子线路文件夹 1225 * @param subLinePath 子线路文件夹
1204 * @param voicePath 语音报站文件压缩包路径 1226 * @param voicePath 语音报站文件压缩包路径
1205 */ 1227 */
1206 - private void zipAudio(String subLinePath, String voicePath, String zipFolder) throws Exception { 1228 + private void zipAudio(String subLinePath, String voicePath) throws Exception {
1207 File file = new File(subLinePath); 1229 File file = new File(subLinePath);
1208 ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(voicePath)); 1230 ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(voicePath));
1209 for (File f : file.listFiles()) { 1231 for (File f : file.listFiles()) {
1210 if (f.isFile() && f.getName().endsWith(".mp3")) { 1232 if (f.isFile() && f.getName().endsWith(".mp3")) {
1211 - addFileToZip(zos, f, zipFolder); 1233 + addFileToZip(zos, f);
1212 } 1234 }
1213 } 1235 }
1214 // Key打头音频 1236 // Key打头音频
1215 file = new File(commonPath); 1237 file = new File(commonPath);
1216 for (File f : file.listFiles()) { 1238 for (File f : file.listFiles()) {
1217 if (f.isFile() && f.getName().startsWith("Key-")) { 1239 if (f.isFile() && f.getName().startsWith("Key-")) {
1218 - addFileToZip(zos, f, zipFolder); 1240 + addFileToZip(zos, f);
1219 } 1241 }
1220 } 1242 }
1221 zos.flush(); 1243 zos.flush();
1222 zos.close(); 1244 zos.close();
1223 } 1245 }
1224 1246
1225 - private static void addFileToZip(ZipOutputStream zos, File file, String zipFolder) throws IOException { 1247 + private static void addFileToZip(ZipOutputStream zos, File file) throws IOException {
1226 FileInputStream fis = new FileInputStream(file); 1248 FileInputStream fis = new FileInputStream(file);
1227 - ZipEntry zipEntry = new ZipEntry(String.format("%s/%s", zipFolder, file.getName())); 1249 + ZipEntry zipEntry = new ZipEntry(file.getName());
1228 zos.putNextEntry(zipEntry); 1250 zos.putNextEntry(zipEntry);
1229 1251
1230 byte[] bytes = new byte[4096]; 1252 byte[] bytes = new byte[4096];
@@ -1253,16 +1275,16 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1253,16 +1275,16 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1253 if (current.getStationLevel() > startSeq.getStationLevel()) { 1275 if (current.getStationLevel() > startSeq.getStationLevel()) {
1254 if (i == 1) { 1276 if (i == 1) {
1255 // 生成首站 1277 // 生成首站
1256 - mergeOriginStart(lineId, subLineId, seq, current, terminal, languages);  
1257 - mergeNormalArrive(lineId, subLineId, seq, current, terminal, languages); 1278 + mergeOriginStart(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
  1279 + mergeNormalArrive(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
1258 } else if (current.getStationLevel() == terminal.getStationLevel()) { 1280 } else if (current.getStationLevel() == terminal.getStationLevel()) {
1259 // 生成终点站 1281 // 生成终点站
1260 - mergeNormalStart(lineId, subLineId, seq, current, terminal, languages);  
1261 - mergeTerminalArrive(lineId, subLineId, seq, current, terminal, languages); 1282 + mergeNormalStart(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
  1283 + mergeTerminalArrive(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
1262 } else { 1284 } else {
1263 // 生成中途站 1285 // 生成中途站
1264 - mergeNormalStart(lineId, subLineId, seq, current, terminal, languages);  
1265 - mergeNormalArrive(lineId, subLineId, seq, current, terminal, languages); 1286 + mergeNormalStart(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
  1287 + mergeNormalArrive(lineId, subLineId, seq, current, current.getDirection(), terminal, languages);
1266 } 1288 }
1267 seq++; 1289 seq++;
1268 } 1290 }
@@ -1271,11 +1293,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1271,11 +1293,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1271 return seq; 1293 return seq;
1272 } 1294 }
1273 1295
1274 - private void mergeOriginStart(String lineId, String subLineId, int seq, SeqStationLevel current, SeqStationLevel terminal, Set<String> languages) throws Exception { 1296 + private void mergeOriginStart(String lineId, String subLineId, int seq, SeqStationLevel current, int direction, SeqStationLevel terminal, Set<String> languages) throws Exception {
1275 // 子线路路径 1297 // 子线路路径
1276 String linePath = String.format(linePathPattern, lineId); 1298 String linePath = String.format(linePathPattern, lineId);
1277 String subLinePath = String.format("%s%s/", linePath, subLineId); 1299 String subLinePath = String.format("%s%s/", linePath, subLineId);
1278 - int direction = current.getDirection();  
1279 List<String> arr = Arrays.asList(commonPath + "cn_origin_1.mp3", linePath + String.format("cn/%03d.mp3", 0), commonPath + "cn_origin_2.mp3", linePath + String.format("cn/%03d.mp3", terminal.getStationLevel()), commonPath + "sh_origin_1.mp3", linePath + String.format("sh/%03d.mp3", 0), commonPath + "sh_origin_2.mp3", linePath + String.format("cn/%03d.mp3", terminal.getStationLevel()), commonPath + "cn_start_1.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_2.mp3", commonPath + "sh_start_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_start_2.mp3", commonPath + "en_1.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_3.mp3", commonPath + "sh_start_3.mp3"); 1300 List<String> arr = Arrays.asList(commonPath + "cn_origin_1.mp3", linePath + String.format("cn/%03d.mp3", 0), commonPath + "cn_origin_2.mp3", linePath + String.format("cn/%03d.mp3", terminal.getStationLevel()), commonPath + "sh_origin_1.mp3", linePath + String.format("sh/%03d.mp3", 0), commonPath + "sh_origin_2.mp3", linePath + String.format("cn/%03d.mp3", terminal.getStationLevel()), commonPath + "cn_start_1.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_2.mp3", commonPath + "sh_start_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_start_2.mp3", commonPath + "en_1.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_3.mp3", commonPath + "sh_start_3.mp3");
1280 List<String> inputPaths = new ArrayList<>(); 1301 List<String> inputPaths = new ArrayList<>();
1281 for (String path : arr) { 1302 for (String path : arr) {
@@ -1289,10 +1310,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1289,10 +1310,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1289 AudioOperationUtils.merge(inputPaths, String.format("%s%03da%s-%03d-%s-Start.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn")); 1310 AudioOperationUtils.merge(inputPaths, String.format("%s%03da%s-%03d-%s-Start.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn"));
1290 } 1311 }
1291 1312
1292 - private void mergeNormalStart(String lineId, String subLineId, int seq, SeqStationLevel current, SeqStationLevel terminal, Set<String> languages) throws Exception { 1313 + private void mergeNormalStart(String lineId, String subLineId, int seq, SeqStationLevel current, int direction, SeqStationLevel terminal, Set<String> languages) throws Exception {
1293 String linePath = String.format(linePathPattern, lineId); 1314 String linePath = String.format(linePathPattern, lineId);
1294 String subLinePath = String.format("%s%s/", linePath, subLineId); 1315 String subLinePath = String.format("%s%s/", linePath, subLineId);
1295 - int direction = current.getDirection();  
1296 List<String> arr = Arrays.asList(commonPath + "cn_start.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_2.mp3", commonPath + "sh_start_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_start_2.mp3", commonPath + "en_1.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_3.mp3", commonPath + "sh_start_3.mp3"); 1316 List<String> arr = Arrays.asList(commonPath + "cn_start.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_2.mp3", commonPath + "sh_start_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_start_2.mp3", commonPath + "en_1.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "cn_start_3.mp3", commonPath + "sh_start_3.mp3");
1297 List<String> inputPaths = new ArrayList<>(); 1317 List<String> inputPaths = new ArrayList<>();
1298 for (String path : arr) { 1318 for (String path : arr) {
@@ -1306,10 +1326,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1306,10 +1326,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1306 AudioOperationUtils.merge(inputPaths, String.format("%s%03da%s-%03d-%s-Start.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn")); 1326 AudioOperationUtils.merge(inputPaths, String.format("%s%03da%s-%03d-%s-Start.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn"));
1307 } 1327 }
1308 1328
1309 - private void mergeNormalArrive(String lineId, String subLineId, int seq, SeqStationLevel current, SeqStationLevel terminal, Set<String> languages) throws Exception { 1329 + private void mergeNormalArrive(String lineId, String subLineId, int seq, SeqStationLevel current, int direction, SeqStationLevel terminal, Set<String> languages) throws Exception {
1310 String linePath = String.format(linePathPattern, lineId); 1330 String linePath = String.format(linePathPattern, lineId);
1311 String subLinePath = String.format("%s%s/", linePath, subLineId); 1331 String subLinePath = String.format("%s%s/", linePath, subLineId);
1312 - int direction = current.getDirection();  
1313 List<String> arr = new ArrayList<>(Arrays.asList(commonPath + "cn_arrive.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_arrive_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_arrive_1.mp3", commonPath + "en_2.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()))); 1332 List<String> arr = new ArrayList<>(Arrays.asList(commonPath + "cn_arrive.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_arrive_1.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_arrive_1.mp3", commonPath + "en_2.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel())));
1314 List<String> inputPaths = new ArrayList<>(); 1333 List<String> inputPaths = new ArrayList<>();
1315 if (languages.contains("sh")) { 1334 if (languages.contains("sh")) {
@@ -1337,10 +1356,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -1337,10 +1356,9 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1337 AudioOperationUtils.merge(inputPaths, String.format("%s%03db%s-%03d-%s-Arrive.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn")); 1356 AudioOperationUtils.merge(inputPaths, String.format("%s%03db%s-%03d-%s-Arrive.mp3", subLinePath, seq, direction == 0 ? "u" : "d", direction == 0 ? current.getSeq() : terminal.getSeq() - current.getSeq() + 1, direction == 0 ? "Up" : "Dn"));
1338 } 1357 }
1339 1358
1340 - private void mergeTerminalArrive(String lineId, String subLineId, int seq, SeqStationLevel current, SeqStationLevel terminal, Set<String> languages) throws Exception { 1359 + private void mergeTerminalArrive(String lineId, String subLineId, int seq, SeqStationLevel current, int direction, SeqStationLevel terminal, Set<String> languages) throws Exception {
1341 String linePath = String.format(linePathPattern, lineId); 1360 String linePath = String.format(linePathPattern, lineId);
1342 String subLinePath = String.format("%s%s/", linePath, subLineId); 1361 String subLinePath = String.format("%s%s/", linePath, subLineId);
1343 - int direction = current.getDirection();  
1344 List<String> arr = Arrays.asList(commonPath + "cn_terminal.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_arrive_1.mp3", commonPath + "sh_terminal.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_arrive_1.mp3", commonPath + "en_3.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "terminal_music.mp3"); 1362 List<String> arr = Arrays.asList(commonPath + "cn_terminal.mp3", linePath + String.format("cn/%03d.mp3", current.getStationLevel()), commonPath + "cn_arrive_1.mp3", commonPath + "sh_terminal.mp3", linePath + String.format("sh/%03d.mp3", current.getStationLevel()), commonPath + "sh_arrive_1.mp3", commonPath + "en_3.mp3", linePath + String.format("en/%03d.mp3", current.getStationLevel()), commonPath + "terminal_music.mp3");
1345 List<String> inputPaths = new ArrayList<>(); 1363 List<String> inputPaths = new ArrayList<>();
1346 for (String path : arr) { 1364 for (String path : arr) {