小组成员分工
dwl:主要完成订单模块的代码实现、测试和修改
hlw:主要完成景点模块的代码实现、测试和修改
cz:主要完成环境搭建和配置
xzy:主要完成用户登录模块的代码实现、测试和修改
lxp:主要完成后台管理的的代码实现、测试和修改
jxr:主要完成数据库完成
项目介绍
完成了示例项目的用户管理员登陆、查看搜索景点、收藏景点、订票等
收藏:
public String on(Collect collect, @RequestParam(name = “from”, required = true) String from, HttpSession session) {
System.out.println(“------------”);
boolean on = collectService.saveCollect(collect);
if (on) {
session.setAttribute(“message”, “收藏成功”);
} else {
session.setAttribute(“message”, “收藏失败”);
}
return “redirect:” + from;
}
登录:
@Controller
@RequestMapping(“user”)
public class UserController {
@Autowired
private UserService userService;
@GetMapping("getUser")
public String getUser(int id){
User user = userService.queryUser(id);
System.out.println(user);
return "front/user";
}
@PostMapping("login")
public String getUser(User user, HttpServletRequest request, HttpSession session){
User u = userService.getUserByUsernameAndPassword(user);
System.out.println(u);
if (u!=null){
System.out.println("登录成功");
session.setAttribute("user",u);
// 重定向至景点
String path = "redirect:/attraction/list";
return path;
}else {
System.out.println("登录失败");
// 如果登录失败或错误则应该跳转至login界面或者专门的错误提醒页面
return "front/login";
}
}
}
购票:
@Controller
@RequestMapping(“/order”)
public class OrderController {
@Autowired
private OrderService orderService;
@Autowired
private AttractionService attractionService;
@Transactional
@PostMapping("buy")
public String buy(Order order, @RequestParam(name = "from", required = true) String from, HttpSession session) {
System.out.println(order);
//type:订单类型:1:景点订单;2:酒店订单;3:攻略订单
if (order.getType() == Type.attraction) {
Attraction attraction = attractionService.getAttractionById(order.getOid());
if (orderService.saveOrder(order)) {
session.setAttribute("message", "购买成功");
} else {
session.setAttribute("message", "购买失败,你今天已经购买过景点门票了哦!");
}
}
return "redirect:" + from;
}
}
跳转景点详情:
@RequestMapping(“/{id}”)
public String getAttractionById(@PathVariable(name = “id”) int id, HttpServletRequest request) {
// 获取景点
Attraction attraction = attractionService.getAttractionById(id);
request.setAttribute(“attraction”, attraction);
// 获取用户
User user = (User) request.getSession().getAttribute(“user”);
if (user != null) {
int userID = user.getId();
// 判断该用户是否已收藏此景点
boolean isCollect = collectService.isCollect(userID, Type.attraction, id);
request.setAttribute(“isCollect”, isCollect);
// 判断该用户是否已购买此景点
Order order = orderService.getOrderByTypeAndIDs(userID, Type.attraction, id);
if(order!=null){
// 比较购买时间(年月日)与今天(年月日)是否相等
String pattern = “yyyy-MM-dd”;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date createTimeDate = order.getOrderTime();
String createTimeString = simpleDateFormat.format(createTimeDate);
Date todayTimeDate = new Date();
String todayTimeString = simpleDateFormat.format(todayTimeDate);
if (createTimeString.equals(todayTimeString)) {
request.setAttribute(“isOrder”, true);
} else {
request.setAttribute(“isOrder”, false);
}
}else{
request.setAttribute(“isOrder”, false);
}
} else {
request.setAttribute(“isOrder”, false);
}
return “front/attraction_detail”;
}
学习总结
五天的课程转眼即逝,接触时间比较少,但是在老师生动幽默的讲授下,也是收获多多。
首先,在最开始的环境配置中,tomcat和MySQL的环境变量不能盲目粘贴复制老师的文档内容,要根据自己的具体安装路径来配置环境变量。
然后,再跟老师的同步进行下,出现了一个没有头目的错误,项目刚刚搭建好,运行无法出现hello world,然后查了资料,运行成功会出现
把Application context里从/改为/项目名称_war才可以进行。
然后,继续完善项目,接着出现错误“一个或多个筛选器启动失败”,经过一大堆文章查看都没有解决问题,一度进度停滞。最后,灵光一现,更改了tomcat版本才可以正常运行。
其中,删除tomcat一定要删除干净,不然无法安装新的tomcat。
先去任务管理器找到tomcat结束任务,然后在DOS窗口中以管理员权限执行sc delete Tomcat9即可。