package com.swust.om.controller;
import com.swust.om.pojo.BookTable;
import com.swust.om.pojo.Order;
import com.swust.om.pojo.User;
import com.swust.om.service.BookTableService;
import com.swust.om.service.OrderService;
import com.swust.om.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class UserController {
@Autowired
private UserService userService;
@Autowired
private BookTableService bookTableService;
@Autowired
private OrderService orderService;
/**
* 跳转登录页
*
* @return
*/
@GetMapping("/login")
public String loginPage() {
return "login";
}
/**
* 跳转注册页
*
* @return
*/
@GetMapping("/register")
public String registerPage() {
return "register";
}
/**
* 跳转用户信息页面
*
* @return
*/
@GetMapping("/userInfo")
public String userInfoPage() {
return "user_info";
}
/**
* 跳转用户订单页面
*
* @return
*/
@GetMapping("/userOrder")
public String userOrderPage(Model model, HttpSession session) {
// 获取当前用户
User user = (User) session.getAttribute("user");
// 根据用户名获取订座列表
List<BookTable> bookTableList = bookTableService.queryAllBookTable(user.getUserName());
// 根据用户名获取订餐列表
List<Order> orderList = orderService.getOrderByName(user.getUserName());
model.addAttribute("bookTableList", bookTableList);
model.addAttribute("orderList", orderList);
return "user_order";
}
/**
* 解决重定向session丢失问题
* 因为在重定向后无法获取cookie的请求头所以会导致无法获取session
*/
@GetMapping("/index")
public String index() {
return "index";
}
/**
* 登录逻辑处理
*
* @param model
* @return
*/
@PostMapping("/login")
public String userLogin(Model model, HttpSession session, User user) {
User u = userService.selectUserByName(user.getUserName());
if (u != null) { // 进行登录验证
// 查看用户是否处于激活状态
if (u.getUserActive() == 1) {
if (user.getUserPassword().equals(u.getUserPassword())) {
session.setAttribute("user", u);
return "redirect:/";
} else {
model.addAttribute("msg", "密码错误");
}
} else {
model.addAttribute("msg", "该用户已被封禁");
}
} else {
model.addAttribute("msg", "用户名不存在");
}
return "login";
}
/**
* 用户注册逻辑 处理
*
* @param model
* @param session
* @param user 注册用户信息
* @return
*/
@PostMapping("/register")
public String userRegister(Model model, HttpSession session, User user) {
User u = userService.selectUserByName(user.getUserName());
if (u != null) {
model.addAttribute("msg", "用户已存在");
} else { // 进行注册
// 添加注册时间
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
user.setUserRegistertime(dateString);
// 激活用户 将user_active 设置为一
user.setUserActive(1);
// 添加用户进数据库
userService.addUser(user);
System.out.println(user.getId());
session.setAttribute("user", user);
return "redirect:/";
}
return "register";
}
/**
* 用户注销
*
* @return 首页
*/
@GetMapping("/logout")
public String logout(HttpSession session) {
User user = (User) session.getAttribute("user");
if (user != null) {
session.removeAttribute("user");
}
return "redirect:/index";
}
/**
* 用户修改信息
*
* @param data 信息表单数据
* @return
*/
@ResponseBody
@PostMapping("/updateUserInfo")
public Map<String, String> updateUserInfo(HttpSession session, @RequestBody Map<String, String> data) {
//获取表单数据
String userName = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String sex = data.get("sex");
// 查看修改的用户名是否存在
User u = userService.selectUserByName(userName);
// 获取当前登录用户
User user = (User) session.getAttribute("user");
Map<String, String> map = new HashMap<>();
if (u == null || userName.equals(user.getUserName())) {// 进行修改操作
// 待修改用户
userService.updateUserInfo(user.getUserName(), data);
// 修改session用户
user.setUserName(userName);
user.setUserEmail(email);
user.setUserPhone(phone);
user.setUserSex(sex);
session.setAttribute("user", user);
map.put("msg", "修改成功");
} else {
map.put("msg", "该用户名已被使用");
}
return map;
}
/**
* 用户修改个人密码
*
* @param data 信息表单数据
* @return
*/
@ResponseBody
@PostMapping("/updateUserPassword")
public Map<String, String> updateUserPassword(HttpSession session, @RequestBody Map<String, String> data) {
String password = data.get("password");
String password2 = data.get("password2");
Map<String, String> map = new HashMap<>();
if (password.equals(password2)) { // 进行密码修改操作
User user = (User) session.getAttribute("user");// 获取当前登录用户
// 根据用户名修改密码
userService.updateUserPassword(user.getUserName(), password);
map.put("msg", "修改成功");
} else {
map.put("msg", "两次密码不一致");
}
return map;
}
/**
* 用户取消订座订单
*
* @return
*/
@GetMapping("/cancelBookTable")
public String cancelBookTable(@RequestParam("id") Long id) {
bookTableService.cancelBookTable(id);
return "redirect:/userOrder";
}
/**
* 用户取消订座订餐
*
* @return
*/
@GetMapping("/cancelOrder")
public String cancelOrder(@RequestParam("id") Long id) {
orderService.cancelOrder(id);
return "redirect:/userOrder";
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目是基于Html的订餐管理系统设计源码,包含360个文件,其中包括76个JavaScript文件、54个CSS文件、47个HTML文件、44个Java源文件、22个MAP文件、18个JPG图片文件、13个XML文件、12个WOFF文件、12个WOFF2文件和10个EOT文件。该项目是一个订餐管理系统,具备前台订餐和后台管理功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于Html的订餐管理系统设计源码 (359个子文件)
semantic.css 614KB
semantic.css 614KB
bootstrap.css 193KB
bootstrap.css 193KB
bootstrap.min.css 156KB
bootstrap.min.css 156KB
bootstrap.min.css 111KB
bootstrap.min.css 111KB
icofont.min.css 90KB
icofont.min.css 90KB
layui.css 78KB
layui.css 78KB
animate.css 76KB
animate.css 76KB
bootstrap-grid.css 66KB
bootstrap-grid.css 66KB
boxicons.css 65KB
boxicons.css 65KB
animate.min.css 57KB
animate.min.css 57KB
boxicons.min.css 52KB
boxicons.min.css 52KB
bootstrap-grid.min.css 50KB
bootstrap-grid.min.css 50KB
aos.css 25KB
aos.css 25KB
style.css 23KB
style.css 23KB
venobox.css 19KB
venobox.css 19KB
layer.css 14KB
layer.css 14KB
animations.css 7KB
animations.css 7KB
laydate.css 7KB
laydate.css 7KB
formstyle.css 5KB
formstyle.css 5KB
bootstrap-reboot.css 5KB
bootstrap-reboot.css 5KB
bootstrap-reboot.min.css 4KB
bootstrap-reboot.min.css 4KB
me.css 4KB
me.css 4KB
code.css 1KB
code.css 1KB
style.css 1KB
style.css 1KB
bootstrapValidator.css 756B
bootstrapValidator.css 756B
transformations.css 653B
transformations.css 653B
jquery.bs_pagination.min.css 285B
jquery.bs_pagination.min.css 285B
boxicons.eot 224KB
boxicons.eot 224KB
icons.eot 104KB
icons.eot 104KB
brand-icons.eot 96KB
brand-icons.eot 96KB
iconfont.eot 46KB
iconfont.eot 46KB
outline-icons.eot 30KB
outline-icons.eot 30KB
loading-0.gif 6KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-2.gif 2KB
loading-1.gif 701B
loading-1.gif 701B
.gitignore 292B
demo.html 34KB
demo.html 34KB
index.html 15KB
index.html 15KB
dish1.html 14KB
about.html 12KB
about.html 12KB
dish_list.html 11KB
dish_list.html 11KB
dish.html 11KB
dish.html 11KB
order.html 10KB
order.html 10KB
order_manage.html 10KB
order_manage.html 10KB
user_info.html 9KB
user_info.html 9KB
user_order.html 8KB
user_order.html 8KB
pay_money.html 7KB
paymoney.html 7KB
pay_money.html 7KB
dishlist.html 7KB
book_manage.html 7KB
book_manage.html 7KB
dish_add.html 6KB
dish_add.html 6KB
user.html 6KB
user.html 6KB
共 359 条
- 1
- 2
- 3
- 4
资源评论
沐知全栈开发
- 粉丝: 5689
- 资源: 5215
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 手势字母识别-基于YOLOv9实现的手势字母识别算法-附项目源码-优质项目实战.zip
- 通过javascript语言实现一个简易的待办事项列表
- 通过PHP代码编写实现通过表单上传文件保存到服务器功能
- 视觉里程计-基于OpenCV实现的视觉里程计-附项目源码-优质项目实战.zip
- 视觉计数-基于Transformer实现的广义视觉计数算法-附项目源码-优质项目实战.zip
- 视觉测距-基于SIFT特征匹配的双目立体视觉测距实现-附项目源码-优质项目实战.zip
- 通过C#实现在控制台读取文件内容并输出到控制台
- 使用Pytorch实现的各种GAN-CycleGAN-GRAGAN等-项目源码-附完整流程教程.zip
- 通过GO语言编写实现一个简单HTTP服务器
- 使用Matlab计算步进电机加速曲线生成分析图-项目分享-优质项目.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功