|
|
|
@ -1,159 +1,202 @@
|
|
|
|
|
package com.cn.service.impl;
|
|
|
|
|
package com.cn.service.impl; // 定义服务实现类的包名
|
|
|
|
|
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.sql.SQLException; // 导入SQLException,用于处理数据库操作中可能抛出的异常
|
|
|
|
|
import java.util.ArrayList; // 导入ArrayList类,用于创建动态数组
|
|
|
|
|
import java.util.List; // 导入List接口,用于操作列表集合
|
|
|
|
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
import org.apache.log4j.Logger; // 导入Logger类,用于记录日志信息
|
|
|
|
|
|
|
|
|
|
import com.cn.dao.TrainDao;
|
|
|
|
|
import com.cn.dao.impl.TrainDaoImpl;
|
|
|
|
|
import com.cn.domain.Train;
|
|
|
|
|
import com.cn.service.TrainService;
|
|
|
|
|
import com.cn.dao.TrainDao; // 导入TrainDao接口,用于访问车次数据
|
|
|
|
|
import com.cn.dao.impl.TrainDaoImpl; // 导入TrainDao接口的实现类,用于具体的数据库操作
|
|
|
|
|
import com.cn.domain.Train; // 导入Train类,该类定义了车次的数据结构
|
|
|
|
|
import com.cn.service.TrainService; // 导入TrainService接口,该接口定义了车次服务的方法
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @ClassName: TrainServiceImpl
|
|
|
|
|
* @Description: TrainService的实现类
|
|
|
|
|
* @author: ljy
|
|
|
|
|
* @date: 2019年9月14日 下午10:47:50
|
|
|
|
|
* 实现TrainService接口的类,提供车次服务的具体实现。
|
|
|
|
|
* @ClassName: TrainServiceImpl 类名:TrainServiceImpl
|
|
|
|
|
* @Description: TrainService的实现类,用于处理车次相关的业务逻辑。
|
|
|
|
|
* @author: ljy 实现类的作者
|
|
|
|
|
* @date: 2019年9月14日 下午10:47:50 实现类的创建日期和时间
|
|
|
|
|
*/
|
|
|
|
|
public class TrainServiceImpl implements TrainService {
|
|
|
|
|
|
|
|
|
|
private TrainDao trainDao = new TrainDaoImpl();
|
|
|
|
|
private static Logger logger = Logger.getLogger(TrainServiceImpl.class);
|
|
|
|
|
private TrainDao trainDao = new TrainDaoImpl(); // 成员变量,用于数据库操作的TrainDao对象,使用TrainDaoImpl实现类
|
|
|
|
|
private static Logger logger = Logger.getLogger(TrainServiceImpl.class); // 日志记录器,用于记录日志信息
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 添加车次的方法实现。
|
|
|
|
|
* @param train 要添加的车次对象。
|
|
|
|
|
* @return 返回记录数,表示添加操作影响的行数。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public int add(Train train) {
|
|
|
|
|
int recordNumber = 0;
|
|
|
|
|
if(train!=null) {
|
|
|
|
|
int recordNumber = 0; // 记录数,默认为0
|
|
|
|
|
if(train!=null) { // 检查传入的车次对象是否为null
|
|
|
|
|
try {
|
|
|
|
|
recordNumber = trainDao.add(train);
|
|
|
|
|
recordNumber = trainDao.add(train); // 调用TrainDao的add方法添加车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
logger.debug("TrainServiceImpl.add 中 train为null");
|
|
|
|
|
logger.debug("TrainServiceImpl.add 中 train为null"); // 记录调试日志,当train为null时
|
|
|
|
|
}
|
|
|
|
|
return recordNumber;
|
|
|
|
|
return recordNumber; // 返回记录数
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据车次ID删除车次的方法实现。
|
|
|
|
|
* @param trainId 要删除的车次ID。
|
|
|
|
|
* @return 返回记录数,表示删除操作影响的行数。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public int delete(Integer trainId) {
|
|
|
|
|
int recordNumber = 0;
|
|
|
|
|
if(trainId!=null && trainId!=0) {
|
|
|
|
|
int recordNumber = 0; // 记录数,默认为0
|
|
|
|
|
if(trainId!=null && trainId!=0) { // 检查传入的车次ID是否为null或0
|
|
|
|
|
try {
|
|
|
|
|
recordNumber = trainDao.delete(trainId);
|
|
|
|
|
recordNumber = trainDao.delete(trainId); // 调用TrainDao的delete方法删除车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
logger.debug("TrainServiceImpl.delete 中 trainId为null或0");
|
|
|
|
|
logger.debug("TrainServiceImpl.delete 中 trainId为null或0"); // 记录调试日志,当trainId为null或0时
|
|
|
|
|
}
|
|
|
|
|
return recordNumber;
|
|
|
|
|
return recordNumber; // 返回记录数
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新车次的方法实现。
|
|
|
|
|
* @param train 包含更新信息的车次对象。
|
|
|
|
|
* @return 返回记录数,表示更新操作影响的行数。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public int update(Train train) {
|
|
|
|
|
int recordNumber = 0;
|
|
|
|
|
if(train!=null) {
|
|
|
|
|
int recordNumber = 0; // 记录数,默认为0
|
|
|
|
|
if(train!=null) { // 检查传入的车次对象是否为null
|
|
|
|
|
try {
|
|
|
|
|
recordNumber = trainDao.update(train);
|
|
|
|
|
recordNumber = trainDao.update(train); // 调用TrainDao的update方法更新车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
logger.debug("TrainServiceImpl.update 中 train为null");
|
|
|
|
|
logger.debug("TrainServiceImpl.update 中 train为null"); // 记录调试日志,当train为null时
|
|
|
|
|
}
|
|
|
|
|
return recordNumber;
|
|
|
|
|
return recordNumber; // 返回记录数
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有车次信息的方法实现。
|
|
|
|
|
* @return 返回包含所有车次信息的列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Train> getAll() {
|
|
|
|
|
List<Train> list = null;
|
|
|
|
|
List<Train> list = null; // 车次列表,默认为null
|
|
|
|
|
try {
|
|
|
|
|
list = trainDao.getAll();
|
|
|
|
|
list = trainDao.getAll(); // 调用TrainDao的getAll方法获取所有车次信息
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
return list; // 返回车次列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据车次ID查询车次的方法实现。
|
|
|
|
|
* @param trainId 车次ID。
|
|
|
|
|
* @return 返回包含指定车次ID的车次对象。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Train getById(Integer trainId) {
|
|
|
|
|
Train train = null;
|
|
|
|
|
if(trainId!=null && trainId!=0) {
|
|
|
|
|
Train train = null; // 车次对象,默认为null
|
|
|
|
|
if(trainId!=null && trainId!=0) { // 检查传入的车次ID是否为null或0
|
|
|
|
|
try {
|
|
|
|
|
train = trainDao.getById(trainId);
|
|
|
|
|
train = trainDao.getById(trainId); // 调用TrainDao的getById方法根据车次ID获取车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
logger.debug("TrainServiceImpl.getById 中 trainId为null或0");
|
|
|
|
|
logger.debug("TrainServiceImpl.getById 中 trainId为null或0"); // 记录调试日志,当trainId为null或0时
|
|
|
|
|
}
|
|
|
|
|
return train;
|
|
|
|
|
return train; // 返回车次对象
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据车次号查询车次信息的方法实现。
|
|
|
|
|
* @param trainNumber 车次号。
|
|
|
|
|
* @return 返回包含匹配车次号的所有车次信息的列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Train> getByTrainNumber(String trainNumber) {
|
|
|
|
|
List<Train> list = null;
|
|
|
|
|
if(trainNumber!=null && !"".equals(trainNumber)) {
|
|
|
|
|
List<Train> list = null; // 车次列表,默认为null
|
|
|
|
|
if(trainNumber!=null && !"".equals(trainNumber)) { // 检查传入的车次号是否为空或空字符串
|
|
|
|
|
try {
|
|
|
|
|
list = trainDao.getByTrainNumber(trainNumber);
|
|
|
|
|
list = trainDao.getByTrainNumber(trainNumber); // 调用TrainDao的getByTrainNumber方法根据车次号获取车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
return list; // 返回车次列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据起始站、终点站、开车时间查询车次信息的方法实现。
|
|
|
|
|
* @param startStation 起始站名称。
|
|
|
|
|
* @param endStation 终点站名称。
|
|
|
|
|
* @param startTime 开车时间。
|
|
|
|
|
* @return 返回包含匹配起始站、终点站和开车时间的所有车次信息的列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Train> getByStartEndStation(String startStation, String endStation, String startTime) {
|
|
|
|
|
List<Train> list = null;
|
|
|
|
|
List<Train> list = null; // 车次列表,默认为null
|
|
|
|
|
if(startStation!=null && !"".equals(startStation) && endStation!=null && !"".equals(endStation)
|
|
|
|
|
&& startTime!=null && !"".equals(startTime)) {
|
|
|
|
|
|
|
|
|
|
&& startTime!=null && !"".equals(startTime)) { // 检查传入的起始站、终点站和开车时间是否为空或空字符串
|
|
|
|
|
try {
|
|
|
|
|
list = trainDao.getByStartEndStation(startStation, endStation, startTime);
|
|
|
|
|
list = trainDao.getByStartEndStation(startStation, endStation, startTime); // 调用TrainDao的getByStartEndStation方法根据起始站、终点站和开车时间获取车次
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
logger.debug("TrainServiceImpl.getByStartEndStation: 信息不完整!!!");
|
|
|
|
|
logger.debug("TrainServiceImpl.getByStartEndStation: 信息不完整!!!"); // 记录调试日志,当起始站、终点站或开车时间信息不完整时
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
return list; // 返回车次列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有非重复的起始站的方法实现。
|
|
|
|
|
* @return 返回包含所有非重复起始站的列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Train> getAllStartStation() {
|
|
|
|
|
List<Train> list = null;
|
|
|
|
|
List<Train> list = null; // 车次列表,默认为null
|
|
|
|
|
try {
|
|
|
|
|
list = trainDao.getAllStartStation();
|
|
|
|
|
list = trainDao.getAllStartStation(); // 调用TrainDao的getAllStartStation方法获取所有非重复的起始站
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
return list; // 返回车次列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有非重复的终点站的方法实现。
|
|
|
|
|
* @return 返回包含所有非重复终点站的列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Train> getAllEndStation() {
|
|
|
|
|
List<Train> list = null;
|
|
|
|
|
List<Train> list = null; // 车次列表,默认为null
|
|
|
|
|
try {
|
|
|
|
|
list = trainDao.getAllEndStation();
|
|
|
|
|
list = trainDao.getAllEndStation(); // 调用TrainDao的getAllEndStation方法获取所有非重复的终点站
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
logger.error(e.toString());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.error(e.toString()); // 记录错误日志
|
|
|
|
|
e.printStackTrace(); // 打印异常堆栈跟踪
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
return list; // 返回车次列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|