if (!filePath.getParentFile().exists()) {
filePath.getParentFile().mkdirs();
System.out.println(“创建目录” + filePath);
}
picture=filePath+“”;
// 写入文件
file.transferTo(filePath);
Content content=new Content();
//设置日期格式
SimpleDateFormat df = new SimpleDateFormat(“yyyyMMddHHmmss”);
// new Date()为获取当前系统时间
content.setContentId(“C”+df.format(new Date()));
content.setDescribe(describe);
content.setPicture(picture);
content.setUrl(url);
contentManageServiceImpl.addContent(content);
response.sendRedirect(request.getContextPath()+“/admin/list_content.html”);
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect(request.getContextPath()+“/admin/add_content.html”);
}
}
else {
response.sendRedirect(request.getContextPath()+“/admin/add_content.html”);
}
}
5.7 广告信息列表
后台系统管理员完成添加广告以后跳转到广告信息列表页面,本页面展示的是添加到数据库的所有广告信息,如下图所示,系统管理员可以通过查询,删除等操作来管理广告信息,详情见表5.5。
5.8 查看个人信息
后台系统管理员可以查看个人的用户名,密码,邮箱,手机号等信息,由于时间有限,这里以只实现了查看用户名,密码的功能,见下图所示,其他功能后期添加。
由于系统管理员在登陆系统后把个人信息存到redis数据库中,在页面初始化时从redis数据库中查找处个人信息从到cookie中,查看个人信息就是从cookie中提取数据并设置到页面中,具体代码如下:
//初始化
$scope.adminEntity={};
$scope.init=function () {
console.log($.cookie(‘key’));
adminManageService.init($.cookie(‘key’)).success(function (res) {
console.log(res)
$scope.adminEntity=res;
});
}
5.9 修改个人信息
后台系统管理员也对用户名,密码,邮箱,手机号等信息进行修改,点击个人信息修改按钮进入页面修改个人信息,修改后点击保存等检查填写的信息无误后提示完成修改,为了确保用户名字段的唯一性,用户名一项无法修改。主要代码以controller层为例:
@RequestMapping(“editAdmin”)
public Result editAdmin(@RequestBody AdminUser adminUser){
try {
adminManageServiceImpl.editAdmin(adminUser);
redisTemplate.boundValueOps(adminUser.getUser()).set(adminUser);
return new Result(true, “修改成功”);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return new Result(false, “修改失败”);
}
}
5.10 用户登录
用户在进行机票预定,留言评论等功能时需要登录前台系统后才能进行,在浏览器地址栏输入http://localhost:8081/flyTicket-portal-web/default/login.html回车进入如下图所示界面。
用户进行到登录界面,输入正确的用户名和密码就可以登录到前台系统,登录顺序图如下图所示。
主要代码以controller层代码为例:
app.controller(‘portalLoginManageController’,function(
s
c
o
p
e
,
scope,
scope,controller,portalLoginManageService){
KaTeX parse error: Expected '}', got 'EOF' at end of input: …seController',{scope:$scope});
//初始化
$scope.userEntity={userName:null,userPwd:null};
$scope.login=function(){
if($scope.userEntity.userNamenull || $scope.userEntity.userName.trim()“”){
alert(“用户名为空”);
}
else{
if($scope.userEntity.userPwdnull || $scope.userEntity.userPwd.trim()“”){
alert(“密码为空”);
}
else{ portalLoginManageService.login($scope.userEntity).success(function(res){
if(res.result==false){
alert(res.message)
}
else{
window.location.href=“index.html#?key=”+$scope.userEntity.userName;
}
});
}
};
}
});
5.11 航班信息展示
5.12 航班信息查询
用户可以通过航班查询功能精确查找到所需信息,节省时间简化操作。通过输入航班类型、出发时间、出发城市、到达城市等搜索条件实现航班查询。比图以成都为到达城市为例,搜索结果如下图所示。
代码以dao层PortalManageMapper.xml类例:
<?xml version="1.0" encoding="UTF-8"?>
select * from flight as f
and f.flight_start_time like concat(‘%’,#{flightStartTime1},‘%’)
and f.flight_start_place like concat(‘%’,#{flightStartPlace},‘%’)
and f.flight_end_place like concat(‘%’,#{flightEndPlace},‘%’)
5.13 航班信息详情
航班信息详情是对某一航班信息的详细情况进行展示,如下图所示。用户点击选定航班,航班详细信息以下拉列表的形式展现给用户。
主要代码如下:
//保留n位小数
$scope.weishu=function(price,n){
return new Number(price).toFixed(n);
}
//下拉详情
$scope.lists=function(flightNumber){
//收缩状态
if($(“#F_”+flightNumber).is(“:visible”)){
$scope.reloadList();
}
$(“#F_”+flightNumber).animate({
height:‘toggle’
});
}
//判断最低价
$scope.minPrice=function(flightHighPrice,flightMiddlePrice,flightBasePrice){
return (flightHighPrice<=flightMiddlePrice?flightHighPrice:flightMiddlePrice)<=flightBasePrice?(flightHighPrice<=flightMiddlePrice?flightHighPrice:flightMiddlePrice):flightBasePrice
}
//判断是否有票
$scope.isKickets=function(kicketsNumber,flightNumber,temp){
/console.log(flightNumber)/
if(kicketsNumber>0){
$(“#”+temp+“_”+flightNumber).css({
color:“green”
});
return “有票”;
}
else{
$(“#”+temp+“_”+flightNumber).css({
color:“red”
});
return “无票”;
}
}
5.14 登录用户信息展示
游客访问前台系统时,在页面头部显示“请登录”字样,如下图所示信息,而网站用户登录后则显示“您好,XXX”字样,如下图所示。
5.15 留言板
点击前台系统右上角“留言板”按钮进入都留言页面如下图所示。留言评论是前台系统使用者完成注册后具有的功能,用户可以通过留言评论功能对所购班次机票进行全方位的评价,也可以对其在使用过程中遇到的问题进行反馈。
主要代码以前台系统controller层DiscussManageController.java类例:
package com.cafuc.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.collections.FastArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cafuc.pojo.Discuss;
import com.cafuc.pojo.Flight;
import com.cafuc.pojo.PageResult;
import com.cafuc.pojo.Result;
import com.cafuc.service.IDiscussManageService;
import com.cafuc.service.IPortalManageService;
@RestController
@RequestMapping(“discussManage”)
public class DiscussManageController {
@Resource
private IDiscussManageService discussManageService;
@RequestMapping(“addDiscuss”)
public Result addDiscuss(@RequestBody Discuss discuss){
try {
System.out.println(discuss);
discussManageService.addDiscuss(discuss);
return new Result(true, “评论成功”);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return new Result(false, “评论失败”);
}
}
@RequestMapping(“init”)
public List init(){
return discussManageService.init();
}
}
5.16 订单填写
订单填写是机票预定中不可缺少的步骤之一,用户找到自己所需班次后点击订票按钮进入订单信息填写页面,用户所填写的信息包括乘机人信息和联系人信息量大模块,如下图所示。填写完信息后点击提交订单按钮,等待验证数据的有效性,确定填写无误后完成提交,填写订单的前提是用户已经登录系统。
5.17 订单详情
填写订单信息完成订单提交后弹出订单详情页面提示用户检查航班信息和填写的用户信息,如下图所示。确保信息无误后点击确认付款按钮跳转到订单支付页面。
订单确认功能主要代码如下:
@RequestMapping(“/ack”)
public void ack(Order order,HttpServletRequest request,HttpServletResponse response) throws IOException {
try {
if(order.getOrderDate() ==null) {
order.setOrderDate(new Date());
}
HttpSession httpSession=request.getSession();
httpSession.setAttribute(“order”, order);
System.out.println(request.getSession().getAttribute(“order”));
response.sendRedirect(request.getContextPath()+“/pay/index.jsp”);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
5.18 订单支付
机票预订系统的订单支付功能使用的是支付宝沙箱环境支付,蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。登录支付宝沙箱平台依次完成生成买家和卖家账号信息、生成RSA秘钥、设置公钥信息、设置应用网关等应用环境配置。完成配置后下载官方测试代码,本系统选择的是电脑应用java版本,然后将下载的项目导入到eclipse工作空间。最后设置核心配置文件信息,打开flyTicket-portal-web项目下com.alipay.config包中的AlipayConfig.java文件配置如下信息:
//沙箱APPID
public static final String app_id = “这里需要自己申请”;
//沙箱私钥
public static final String merchant_private_key = “这里需要自己申请”;
//支付宝公钥
public static final String alipay_public_key = “这里需要自己申请”;
//沙箱网关地址
public static final String gatewayUrl = “https://openapi.alipaydev.com/gateway.do”;
//服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = “http://localhost:8081/flyTicket-portal-web/pay/notify_url.jsp”;
//页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = “http://localhost:8081/flyTicket-portal-web/orderManage/complete”;
完成以上配置后就可以实现订单支付功能了。点击确认付款后跳转到如下图所示界面。
点击付款按钮后如下图所示,可以登录账户付款,也可以使用手机端沙箱支付宝完成付款。
完成付款后如下图所示
主要代码如下:
//支付完成后
@RequestMapping(“complete”)
public void complete(HttpServletRequest request,HttpServletResponse response) throws IOException {
System.out.println(request.getSession().getAttribute(“order”));
Order order=(Order)request.getSession().getAttribute(“order”);
try {
//将数据插入到订单表中
orderManageService.insertOrder(order);
//更改库存
Flight flight=orderManageService.findOneByFlightNumber(order.getFlightNumber());
if(order.getGrade().equals(“f”)) {
flight.setFlightHighNumber(flight.getFlightHighNumber()-1);
}
else if(order.getGrade().equals(“b”)) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。
因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!
由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频
如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
flight.setFlightHighNumber(flight.getFlightHighNumber()-1);
}
else if(order.getGrade().equals(“b”)) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。
因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
[外链图片转存中…(img-4cCnJF9z-1712570674440)]
[外链图片转存中…(img-YrCXplC9-1712570674441)]
[外链图片转存中…(img-wChcATK6-1712570674441)]
既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!
由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频
如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-FxlweMi9-1712570674441)]
版权归原作者 2401_84183628 所有, 如有侵权,请联系我们删除。