Java實(shí)戰(zhàn)之火車(chē)票預(yù)訂系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目運(yùn)行
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項(xiàng)目技術(shù):
JSP + Servlert + html+ css + JavaScript + JQuery + Ajax 等等;
二、效果圖







三、核心代碼
個(gè)人中心Controller
/**
* 個(gè)人中心Controller
*/
@Controller
public class UserInforController {
@Autowired
private UserInforServiceImpl userInforService = null;
/**
* 修改密碼操作
* @param oldPassword
* @param newPassword
* @param rePassword
* @param httpSession
* @return
*/
@RequestMapping("changePassword.do")
@ResponseBody
public Map<String, String> changePassword(String oldPassword, String newPassword,
String rePassword, HttpSession httpSession){
HashMap<String, String> map = new HashMap<String, String>();
if (newPassword.equals(rePassword)){
SystemManager admin = (SystemManager) httpSession.getAttribute("admin");
String encodeByMD5 = MD5Utils.encodeByMD5(oldPassword);
if (encodeByMD5.equals(admin.getSmPassword())){
String newPasswords = MD5Utils.encodeByMD5(newPassword);
admin.setSmPassword(newPasswords);
userInforService.updateSystemManagePassword(admin.getSmId(),admin);
map.put("type","success");
map.put("msg","密碼修改成功");
return map;
}else{
map.put("type","error");
map.put("msg","原密碼錯(cuò)誤");
return map;
}
}else{
map.put("type","error");
map.put("msg","兩次密碼不一致");
return map;
}
}
/**
* 員工修改個(gè)人密碼
* @param oldPassword
* @param newPassword
* @param rePassword
* @param httpSession
* @return
*/
@RequestMapping("changeEmployeePassword.do")
@ResponseBody
public Map<String, String> changeEmployeePassword(String oldPassword, String newPassword,
String rePassword, HttpSession httpSession){
HashMap<String, String> map = new HashMap<String, String>();
if (newPassword.equals(rePassword)){
Integer eid = (Integer) httpSession.getAttribute("employeeId");
try {
userInforService.updateEmployeePassword(eid, oldPassword, newPassword);
map.put("type","success");
map.put("msg","密碼修改成功");
return map;
} catch (CustomException e) {
map.put("type","error");
map.put("msg","原密碼錯(cuò)誤");
return map;
}
}else{
map.put("type","error");
map.put("msg","兩次密碼不一致");
return map;
}
}
/**
* 查看個(gè)人信息
* @param httpSession
* @return
*/
@RequestMapping("inforEmployee.do")
public @ResponseBody EmployeeCustomVo getInforEmployee(HttpSession httpSession){
Integer id = (Integer) httpSession.getAttribute("employeeId");
EmployeeCustomVo employeeCustomVo = userInforService.getInforEmployee(id);
return employeeCustomVo;
}
/**
* 修改個(gè)人信息
* @param httpSession
* @param employee
* @return
*/
@ResponseBody
@RequestMapping("updateInforEmployee.do")
public Message updateInforEmployee(HttpSession httpSession, Employee employee){
Integer id = (Integer) httpSession.getAttribute("employeeId");
employee.seteId(id);
if(userInforService.updateEmploueeById(id,employee)<=0) {
return Message.error("修改信息失敗");
}
return Message.success();
}
/**
* 個(gè)人工資信息
* @param pageNum
* @param limit
* @param year
* @param httpSession
* @return
* @throws Exception
*/
@RequestMapping("employeeSalaryList.do")
@ResponseBody
public EmployeeSalaryVO findSelective(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="10") int limit,
@RequestParam(value="year", defaultValue="1") String year,
HttpSession httpSession) throws Exception {
Integer eId = (Integer) httpSession.getAttribute("employeeId");
//pageNum:起始頁(yè)面 pageSize:每頁(yè)的大小
PageHelper.startPage(pageNum,limit);
//查找條件,一定要緊跟在startPage后
List<Salary> salaryList = userInforService.getEmployeeSalaryList(eId, year);
PageInfo pageResult = new PageInfo(salaryList);
//設(shè)置前臺(tái)需要的數(shù)據(jù)
EmployeeSalaryVO employeeSalaryVO = new EmployeeSalaryVO();
employeeSalaryVO.setCode(0);
employeeSalaryVO.setMsg("");
employeeSalaryVO.setCount((int) pageResult.getTotal());
employeeSalaryVO.setData(pageResult.getList());
return employeeSalaryVO;
}
}管理員和員工登陸控制
/**
* @Author: admin
* @Description: 管理員和員工登陸控制
**/
@Controller
public class LoginController {
@Autowired
private LoginServiceImpl loginService = null;
/**
* @Author: admin
* @Description: 驗(yàn)證碼變更
* @Date: 14:33 2021/10/5
* @Param: [request, response]
* @Return: void
**/
@RequestMapping(value = "/changeCode.do")
@ResponseBody
public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// 驗(yàn)證碼存儲(chǔ)在session的identifyingCode,屬性中
CaptchaUtil.outputCaptcha(request, response);
}
// 獲取員工登陸界面
@RequestMapping("/")
public String getLoginPage(){
return "employee/login.html";
}
// 獲取管理員登陸界面
@RequestMapping("/admin.do")
public String getAdminLoginPage(HttpServletRequest request){
String realPath = request.getServletContext().getRealPath("/");
request.getSession().setAttribute("realPath", realPath);
return "admin/adminLogin.html";
}
/**
* 員工登錄操作
* @param model
* @param httpSession
* @param username
* @param password
* @param identifyingcode
* @return
*/
@RequestMapping(value = "/employeeLogin.do")
@ResponseBody
public Message employeeLogin(HttpSession httpSession, String username,
String password, String identifyingcode)
{
if(StringUtils.isEmpty(username)) {
return Message.error("請(qǐng)?zhí)顚?xiě)工號(hào)");
}
if(StringUtils.isEmpty(password)) {
return Message.error("請(qǐng)?zhí)顚?xiě)密碼");
}
if(StringUtils.isEmpty(identifyingcode)) {
return Message.error("請(qǐng)?zhí)顚?xiě)驗(yàn)證碼");
}
String code = (String) httpSession.getAttribute("identifyingCode");
if(!identifyingcode.equalsIgnoreCase(code)){
return Message.error("驗(yàn)證碼錯(cuò)誤");
}
Employee employee = loginService.findEmployeeByIdAndPassword(username, password);
if(employee==null) {
return Message.error("工號(hào)或密碼錯(cuò)誤");
}
httpSession.setAttribute("employeeId",employee.geteId());
return Message.success("員工登錄成功");
}
@RequestMapping(value = "/loginSuccess.do")
public String loginSucceses(Model model) throws Exception
{
return "employee/index.html";
}
/**
* 管理員登錄操作
* @param model
* @param httpSession
* @param username
* @param password
* @param identifyingcode
* @return
*/
@RequestMapping(value = "/adminLogin.do")
@ResponseBody
public Message adminLogin(HttpSession httpSession, String username,
String password, String identifyingcode)
{
if(StringUtils.isEmpty(username)) {
return Message.error("請(qǐng)?zhí)顚?xiě)賬號(hào)");
}
if(StringUtils.isEmpty(password)) {
return Message.error("請(qǐng)?zhí)顚?xiě)密碼");
}
if(StringUtils.isEmpty(identifyingcode)) {
return Message.error("請(qǐng)?zhí)顚?xiě)驗(yàn)證碼");
}
String code = (String) httpSession.getAttribute("identifyingCode");
if(identifyingcode.equalsIgnoreCase(code)){
SystemManager manager = loginService.findSystemManagerByIdAndPassword(username, password);
if(manager==null) {
return Message.error("賬號(hào)或密碼錯(cuò)誤");
}
// 保存到session
httpSession.setAttribute("admin",manager);
return Message.success("登錄成功");
}else {
return Message.error("驗(yàn)證碼錯(cuò)誤");
}
}
@RequestMapping(value = "/getAdminAccount.do")
@ResponseBody
public String getAdminAccount(HttpSession httpSession){
SystemManager systemManager = (SystemManager) httpSession.getAttribute("admin");
// SystemManager manager = loginService.findSystemManagerById(id);
return systemManager.getSmAccount();
}
@RequestMapping(value = "/getEmployeeAccount.do")
@ResponseBody
public Map<String,String> getEmployeeAccount(HttpSession httpSession){
Integer id = (Integer) httpSession.getAttribute("employeeId");
Employee employee = loginService.findEmployeeById(id);
HashMap<String, String> map = new HashMap<String, String>();
map.put("account",employee.geteAccount());
map.put("name",employee.geteName());
return map;
}
@RequestMapping(value = "/logout.do")
public String logout(HttpSession httpSession){
httpSession.removeAttribute("employeeId");
return "redirect:/";
}
@RequestMapping(value = "/logoutAdmin.do")
public String logoutAdmin(HttpSession httpSession){
httpSession.removeAttribute("admin");
return "redirect:/admin.do";
}
}用戶管理操作
/**
* 用戶管理操作
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 用戶添加頁(yè)面
* @return
*/
@GetMapping("/add")
public String create() {
return "user/add";
}
/**
* 用戶添加操作
* @param user
* @return
*/
@PostMapping("/add")
@ResponseBody
public Map<String, Object> add(@RequestBody User user) {
if(StringUtils.isEmpty(user.getUserName())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)用戶名").getMap();
}
if(StringUtils.isEmpty(user.getName())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)名稱").getMap();
}
if(StringUtils.isEmpty(user.getUserPwd())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)密碼").getMap();
}
int result = userService.create(user);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 根據(jù)id刪除
* @param id
* @return
*/
@PostMapping("/delete/{id}")
@ResponseBody
public Map<String, Object> delete(@PathVariable("id") Integer id) {
int result = userService.delete(id);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
//批量刪除
@PostMapping("/delete")
@ResponseBody
public Map<String, Object> delete(String ids) {
int result = userService.delete(ids);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 編輯用戶信息操作
* @param user
* @return
*/
@PostMapping("/edit")
@ResponseBody
public Map<String, Object> edit(@RequestBody User user) {
if(StringUtils.isEmpty(user.getUserName())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)用戶名").getMap();
}
if(StringUtils.isEmpty(user.getName())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)名稱").getMap();
}
if(StringUtils.isEmpty(user.getUserPwd())){
return MapControl.getInstance().error("請(qǐng)?zhí)顚?xiě)密碼").getMap();
}
int result = userService.update(user);
if (result <= 0) {
return MapControl.getInstance().error().getMap();
}
return MapControl.getInstance().success().getMap();
}
/**
* 根據(jù)id查詢,跳轉(zhuǎn)修改頁(yè)面
* @param id
* @param modelMap
* @return
*/
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, ModelMap modelMap) {
User user = userService.detail(id);
modelMap.addAttribute("user", user);
return "user/edit";
}
//查詢所有
@PostMapping("/query")
@ResponseBody
public Map<String, Object> query(@RequestBody User user) {
List<User> list = userService.query(user);
Integer count = userService.count(user);
return MapControl.getInstance().success().page(list, count).getMap();
}
//跳轉(zhuǎn)列表頁(yè)面
@GetMapping("/list")
public String list() {
return "user/list";
}
}以上就是Java實(shí)戰(zhàn)之火車(chē)票預(yù)訂系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java火車(chē)票預(yù)訂系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
生產(chǎn)者消費(fèi)者模型ThreadLocal原理及實(shí)例詳解
這篇文章主要介紹了生產(chǎn)者消費(fèi)者模型ThreadLocal原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
手?jǐn)]一個(gè)Spring?Boot?Starter并上傳到Maven中央倉(cāng)庫(kù)
本文主要介紹了手?jǐn)]一個(gè)Spring?Boot?Starter并上傳到Maven中央倉(cāng)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Java實(shí)戰(zhàn)之王者榮耀的英雄是怎么產(chǎn)生的?
這篇文章主要介紹了Java實(shí)戰(zhàn)之王者榮耀的英雄是怎么產(chǎn)生的?文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié)
這篇文章主要介紹了Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié),需要的朋友可以參考下2017-06-06
使用BigDecimal去掉小數(shù)點(diǎn)后無(wú)用的0
這篇文章主要介紹了使用BigDecimal去掉小數(shù)點(diǎn)后無(wú)用的0操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

