机房管理系统有管理员,审核员和学生3类用户。具有七大功能模块。系统用例图,如图4.1所示:
代码已经上传github,下载地址:https://github.com/21503882/machine-room
图1.1 系统用例图
1.2 主要功能需求讲解
1.2.1 用户登陆功能
系统有管理员,审核员和学生3类用户,它们都是一个登陆界面,各有不同的权限。用户登陆后,系统提取用户权限,按照不同的用户权限执行不同的操作。
1.2.2 修改密码功能
在人员信息管理中模块,学生可以修改自己的登陆密码。管理员只能在数据库中进行手动修改密码。
1.2.3 审核功能
在审核信息管理模块中,审核员登陆后对管理员所编排的课程进行逐条的审核,若通过,当管理员进入后就不能再对课表进行修改等功能,若审核不通过,可以加上审核评语,管理员根据审核评语对课表进行修改。
1.2.4 排课功能
在排课信息管理模块中,管理员逐条的对班级信息、课程信息、机房信息等基本表中的信息进行选择。还要对周次、节数等信息进行选择,这又对所有信息进行选择才能添加到课表中去。
1.2.5 人员管理功能
管理员可以对各种权限的人员进行添加,修改、删除。同时管理员可以对所添加的人员进行设置权限。
1.3 细节分析
在班级信息管理模块中,对所录入的信息如果班级编号相同,则给出提示该条记录已经存在。在课程信息管理模块中,如过所录入的是同一门课程,则给出相应的提示。在排课管理模块中,如果当录入的课程、班级、机房、周数、节数同时相同时,则不能录入,并跳到错误页面给出相应的提示。在录入机房时,机房中有一个机房总人数的字段,在班级信息管理模块中有个班级人数,在录入课表时,当录入的班级总人数大于机房的人数,则提示错误。
用户登陆界面,如图6.1所示
图1.2 用户登陆界面
图1.3 班级信息管理界面
图1.4 课程信息管理界面
图1.5 机房信息管理界面
图1.6 电脑信息管理界面
图1.7 审核信息管理界面
图1.8 排课管理模块界面
人员管理
审核员登录
班级管理
审核管理
学生登录
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.hungry.pojo.Cart;
import cn.hungry.pojo.Category;
import cn.hungry.pojo.Food;
import cn.hungry.pojo.Order;
import cn.hungry.pojo.OrderItem;
import cn.hungry.pojo.User;
import cn.hungry.service.CartService;
import cn.hungry.service.CategoryService;
import cn.hungry.service.FoodService;
import cn.hungry.service.OrderItemService;
import cn.hungry.service.OrderService;
import cn.hungry.service.UserService;
@Controller
public class ForeController {
@Autowired
CategoryService categoryService;
@Autowired
FoodService foodService;
@Autowired
UserService userService;
@Autowired
CartService cartService;
@Autowired
OrderItemService orderItemService;
@Autowired
OrderService orderService;
@RequestMapping("home")
public String home(Model model,HttpSession session) {
List<Category> cs = categoryService.list();
foodService.fill(cs);
User user = (User) session.getAttribute("user");
model.addAttribute("user",user);
model.addAttribute("cs",cs);
return "fore/home";
}
@RequestMapping("shoppingCart")
public String shoppingCart(Model model,HttpSession session) {
//session 获取用户id
User user = (User) session.getAttribute("user");
List<OrderItem> ois = orderItemService.listCartByUser(user.getId());
Float totalPrice = orderItemService.getTotalPrice(ois);
/*for(OrderItem oi : ois) {
Float orderItemPrice = (Float)(oi.getNumber()*oi.getFood().getPrice());
System.out.println(orderItemPrice);
oi.setOrderItemPrice(orderItemPrice);
}*/
int foodNumber = orderItemService.getCartCountByUid(user.getId());
model.addAttribute("user",user);
model.addAttribute("foodNumber",foodNumber);
model.addAttribute("totalPrice", totalPrice);
model.addAttribute("ois", ois);
return "fore/shoppingCart";
}
@RequestMapping("search")
public String search() {
return "fore/search";
}
@RequestMapping("toSearch")
public String toSearch(Model model,HttpSession session,String keyword) {
List<Food> fs = foodService.search(keyword);
User user = (User) session.getAttribute("user");
model.addAttribute("user",user);
model.addAttribute("fs",fs);
return "fore/showSearch";
}
@RequestMapping("order")
public String order(Model model,HttpSession session) {
//session 获取用户id
User user = (User) session.getAttribute("user");
List<Order> os = orderService.listByUser(user.getId());
//有查询所有有oid的orderitem
for(Order o : os) {
o.setOis(orderItemService.listOrderByUser(user.getId(),o.getId()));
}
model.addAttribute("user",user);
model.addAttribute("os", os);
return "fore/order";
}
@RequestMapping("confirmReceive")
public String confirmReceive(Order o) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
o.setConfirm_date(df.format(new Date()));
orderService.setConfirm_date(o);
return "redirect:order";
}
@RequestMapping("deleteOrder")
public String deleteOrder(Order o) {
orderService.delete(o);
return "redirect:order";
}
@RequestMapping("confirmPay")
public String confirmPay(int oid) {
orderService.setPay(oid);
return "redirect:order";
}
@RequestMapping("pay")
public String pay(int oid,Model model) {
System.out.println("pay"+oid);
//List<OrderItem> ois = orderItemService.listByUser(1);
Float totalPrice = orderService.getTotalPrice(oid);
System.out.println("Float"+totalPrice);
model.addAttribute("oid", oid);
model.addAttribute("totalPrice", totalPrice);
return "fore/pay";
}
@RequestMapping("deleteCartItem")
public String deleteCartItem(int oiid,HttpSession session) {
User user = (User) session.getAttribute("user");
orderItemService.deleteCartItem(user.getId(),oiid);
return "redirect:shoppingCart";
}
@ResponseBody
@RequestMapping("creatOrder")
public int creatOrder(Order order,HttpSession session) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
//session 获取用户id
User user = (User) session.getAttribute("user");
order.setUid(user.getId());
// + (int)((Math.random()*9+1)*1000000)+""
order.setOrder_code(df.format(new Date()) + (int)((Math.random()*9+1)*1000));
order.setCreate_date(df2.format(new Date()));// new Date()为获取当前系统时间
orderService.add(order);
System.out.println(order.getId());
if(orderItemService.creatOrder(order.getId(), user.getId())) {
return order.getId();
}else {
return 0;
}
}
@RequestMapping("forefood")
public String food(int id, Model model,HttpSession session) {
//session 获取用户id
User user = (User) session.getAttribute("user");
int cartCount = orderItemService.getCartCountByUid(user.getId());
Food fs = foodService.get(id);
model.addAttribute("cartCount", cartCount);
model.addAttribute("fs",fs);
return "fore/food";
}
/*
*
*/
@ResponseBody
@RequestMapping("addCart")
public Integer addCart(OrderItem orderItem,HttpSession session) {
//session 获取用户id
User user = (User) session.getAttribute("user");
OrderItem oi = orderItemService.checkFidExistCart(user.getId(), orderItem.getFid());
if(oi==null) {
orderItem.setUid(user.getId());
if(orderItemService.addCart(orderItem)) {
int cartCount = orderItemService.getCartCountByUid(user.getId());
System.out.println(cartCount);
return cartCount;
}else {
return null;
}
}else {
orderItem.setUid(user.getId());
orderItem.setNumber(oi.getNumber()+orderItem.getNumber());
if(orderItemService.updateNumber(orderItem)) {
int cartCount = orderItemService.getCartCountByUid(user.getId());
System.out.println(cartCount);
return cartCount;
}
return null;
}
}
@RequestMapping("CategoryPage")
public String CategoryPage(Food f,Model model) {
List<Food> fs = foodService.list(f.getCid());
Category cs = categoryService.get(f.getCid());
model.addAttribute("cs",cs);
model.addAttribute("fs",fs);
return "fore/CategoryPage";
}
}
代码已经上传github,下载地址:https://github.com/21503882/machine-room