本网上订票系统应该具备如下功能:
1.查询
分为对车次信息的查询和客户对已订车票信息的查询。要求:
代码已经上传github,下载地址:https://github.com/21503882/train-ticket
1)对车次的查询,可以按照发车车次进行查询; 2)车次信息包括:车号、出发地、目的地、发车日期、开出时刻、票价。
3)座位类型设定。
4)车次信息只允许用户查询,不能修改。
2.订票
通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上订票确定已预订选中的车票。要求:
订票记录应包括:会员名、车号、发车日期、订购日期、订购票数、总价。
3.退票
可退票,通过查询系统,客户可以根据自己的名字找到自己的订票信息,通过退票模块退去已购车票。
本火车站网上订票系统可划分为系统前台和系统后台两部分,前台完成用户查询车次及订票的功能,后台主要完成网站信息的管理与维护。其层次图如图3.1所示。
图3.1火车站网上订票系统的层次图
下图:新会员注册信息
‘
下图为会员登录会员中心——查看网站车票信息,预定车票,成功后在会员中心查看“我的预定”即自己预定的火车票信息
package cn.sfturing.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.sfturing.dao.FavouriteDao;
import cn.sfturing.dao.HospitalDao;
import cn.sfturing.entity.Favourite;
import cn.sfturing.entity.Hospital;
import cn.sfturing.service.HospitalService;
/**
*
* @author sfturing
*
* @date 2017年5月19日
*/
@Service
public class HospitalServiceImpl implements HospitalService {
@Autowired
private HospitalDao hospitalDao;
@Autowired
private FavouriteDao favouriteDao;
@Override
public List<Hospital> findHosByRe() {
return hospitalDao.findHosByRe();
}
@Override
public Hospital findHosById(int id) {
return hospitalDao.findHosById(id);
}
@Override
public int findOrderHosNum(String province, String city, String district, Hospital hospital) {
if (hospital.getHospitalNature() != null && hospital.getHospitalNature().equals("默认")) {
hospital.setHospitalNature(null);
}
if (hospital.getHospitalGrade() != null && hospital.getHospitalGrade().equals("默认")) {
hospital.setHospitalGrade(null);
}
if (province != null && province.equals("默认")) {
province = "";
}
if (city != null && city.equals("默认")) {
city = "";
}
if (district != null && district.equals("默认")) {
district = "";
}
if (province.equals("") && city.equals("") && district.equals("")) {
} else if (!province.equals("") && city.equals("") && district.equals("")) {
hospital.setHospitalAddress(province);
} else if (!province.equals("") && !city.equals("") && district.equals("")) {
hospital.setHospitalAddress(city);
} else if (!province.equals("") && !city.equals("") && !district.equals("")) {
hospital.setHospitalArea(district);
}
return hospitalDao.findOrderHosNum(hospital.getHospitalName(), hospital.getIsMedicalInsurance(),
hospital.getHospitalGrade(), hospital.getHospitalNature(), hospital.getHospitalAddress(),
hospital.getHospitalArea());
}
@Override
public List<Hospital> findfindOrderHos(int start, int size) {
return hospitalDao.findOrderHos(start, size);
}
@Override
public List<String> findHosOpenGrade() {
// TODO Auto-generated method stub
return hospitalDao.findHosOpenGrade();
}
@Override
public List<String> findHosGrade() {
// TODO Auto-generated method stub
return hospitalDao.findHosGrade();
}
@Override
public List<String> findHosOpenNature() {
// TODO Auto-generated method stub
return hospitalDao.findHosOpenNature();
}
@Override
public List<String> findHosNature() {
// TODO Auto-generated method stub
return hospitalDao.findHosNature();
}
@Override
public List<Hospital> findHosByConditon(String province, String city, String district, Hospital hospital, int start,
int size) {
if (hospital.getHospitalNature() != null && hospital.getHospitalNature().equals("默认")) {
hospital.setHospitalNature(null);
}
if (hospital.getHospitalGrade() != null && hospital.getHospitalGrade().equals("默认")) {
hospital.setHospitalGrade(null);
}
if (province != null && province.equals("默认")) {
province = "";
}
if (city != null && city.equals("默认")) {
city = "";
}
if (district != null && district.equals("默认")) {
district = "";
}
if (province.equals("") && city.equals("") && district.equals("")) {
} else if (!province.equals("") && city.equals("") && district.equals("")) {
hospital.setHospitalAddress(province);
} else if (!province.equals("") && !city.equals("") && district.equals("")) {
hospital.setHospitalAddress(city);
} else if (!province.equals("") && !city.equals("") && !district.equals("")) {
hospital.setHospitalArea(district);
}
return hospitalDao.findHosByCondition(hospital.getHospitalName(), hospital.getIsMedicalInsurance(),
hospital.getHospitalGrade(), hospital.getHospitalNature(), hospital.getHospitalAddress(),
hospital.getHospitalArea(), start, size);
}
@Override
public Hospital findHosByName(String hosptalName) {
// TODO Auto-generated method stub
return hospitalDao.findHosByName(hosptalName);
}
@Override
public List<Hospital> findOpenHos() {
// TODO Auto-generated method stub
return hospitalDao.findOpenHos();
}
@Override
public int findAllHosNum(String province, String city, String district, Hospital hospital) {
if (hospital.getHospitalNature() != null && hospital.getHospitalNature().equals("默认")) {
hospital.setHospitalNature(null);
}
if (hospital.getHospitalGrade() != null && hospital.getHospitalGrade().equals("默认")) {
hospital.setHospitalGrade(null);
}
if (province != null && province.equals("默认")) {
province = "";
}
if (city != null && city.equals("默认")) {
city = "";
}
if (district != null && district.equals("默认")) {
district = "";
}
if (province.equals("") && city.equals("") && district.equals("")) {
} else if (!province.equals("") && city.equals("") && district.equals("")) {
hospital.setHospitalAddress(province);
} else if (!province.equals("") && !city.equals("") && district.equals("")) {
hospital.setHospitalAddress(city);
} else if (!province.equals("") && !city.equals("") && !district.equals("")) {
hospital.setHospitalArea(district);
}
return hospitalDao.findAllHosNum(hospital.getHospitalName(), hospital.getIsMedicalInsurance(),
hospital.getHospitalGrade(), hospital.getHospitalNature(), hospital.getHospitalAddress(),
hospital.getHospitalArea());
}
@Override
public List<Hospital> findAllHosByConditon(String province, String city, String district, Hospital hospital,
int start, int size) {
if (hospital.getHospitalNature() != null && hospital.getHospitalNature().equals("默认")) {
hospital.setHospitalNature(null);
}
if (hospital.getHospitalGrade() != null && hospital.getHospitalGrade().equals("默认")) {
hospital.setHospitalGrade(null);
}
if (province != null && province.equals("默认")) {
province = "";
}
if (city != null && city.equals("默认")) {
city = "";
}
if (district != null && district.equals("默认")) {
district = "";
}
if (province.equals("") && city.equals("") && district.equals("")) {
} else if (!province.equals("") && city.equals("") && district.equals("")) {
hospital.setHospitalAddress(province);
} else if (!province.equals("") && !city.equals("") && district.equals("")) {
hospital.setHospitalAddress(city);
} else if (!province.equals("") && !city.equals("") && !district.equals("")) {
hospital.setHospitalArea(district);
}
return hospitalDao.findAllHosByCondition(hospital.getHospitalName(), hospital.getIsMedicalInsurance(),
hospital.getHospitalGrade(), hospital.getHospitalNature(), hospital.getHospitalAddress(),
hospital.getHospitalArea(), start, size);
}
@Override
public int favourite(int userId, int hospitalId) {
if(favouriteDao.findFavByuserIdAndHosId(userId, hospitalId) == null){
Favourite favourite = new Favourite();
favourite.setUserId(userId);
favourite.setHospitalId(hospitalId);
//默认isLIke == 0
favouriteDao.insetFavourite(favourite);
}
Favourite favouriteInfo = favouriteDao.findFavByuserIdAndHosId(userId, hospitalId);
int isLike = favouriteInfo.getIsLike();
//如果isLIke == 0,则点击的是关注,设置isLike==1
if(isLike == 0){
favouriteDao.addFavourite(favouriteInfo.getId());
isLike=1;
}else{
//如果isLIke == 1,则点击的是关注,设置isLike==0
favouriteDao.cancelFavourite(favouriteInfo.getId());
isLike=0;
}
return isLike;
}
@Override
public List<Hospital> findFavHos(List<Favourite> favourites) {
// TODO Auto-generated method stub
return hospitalDao.findFavHos(favourites);
}
}
代码已经上传github,下载地址:https://github.com/21503882/train-ticket