Java實戰(zhàn)之校園外賣點餐系統(tǒng)的實現(xiàn)
一、項目簡述
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項目技術:
JSP +Spring + SpringMVC + MyBatis + css + JavaScript + JQuery + Ajax + layui+ maven等等。
二、效果圖展示
三、核心代碼
管理員controller控制層
/** * 管理員controller */ @Controller @RequestMapping("/config") public class UserController { @Autowired UserRoleService userRoleService; @Autowired UserService userService; @Autowired RoleService roleService; @RequestMapping("/enableStatus") @ResponseBody public String enableStatus(@RequestParam(value = "name") String name){ return userService.enableStatus(name); } @RequestMapping("/stopStatus") @ResponseBody public String stopStatus(@RequestParam(value = "name") String name){ return userService.stopStatus(name); } @RequestMapping("/adminAdd") public String adminadd(Model model){ List<Role> list = roleService.list(); model.addAttribute("rolelist",list); return "syspage/admin-add"; } @RequestMapping("/listUser") public String list(Model model, Page page){ PageHelper.offsetPage(page.getStart(),page.getCount());//分頁查詢 List<User> us= userService.list(); int total = (int) new PageInfo<>(us).getTotal();//總條數(shù) page.setTotal(total); model.addAttribute("us", us);//所有用戶 model.addAttribute("total",total); Map<User,List<Role>> user_roles = new HashMap<>(); //每個用戶對應的權限 for (User user : us) { List<Role> roles=roleService.listRoles(user); user_roles.put(user, roles); } model.addAttribute("user_roles", user_roles); return "syspage/admin-list"; } /** * 修改管理員角色 * @param model * @param id * @return */ @RequestMapping("/editUser") public String edit(Model model,Long id){ List<Role> rs = roleService.list(); model.addAttribute("rs", rs); User user =userService.get(id); model.addAttribute("user", user); //當前擁有的角色 List<Role> roles =roleService.listRoles(user); model.addAttribute("currentRoles", roles); return "syspage/admin-edit"; } @RequestMapping("deleteUser") public String delete(Model model,long id){ userService.delete(id); return "redirect:listUser"; } @RequestMapping("updateUser") public String update(User user, long[] roleIds){ userRoleService.setRoles(user,roleIds); String password=user.getPassword(); //如果在修改的時候沒有設置密碼,就表示不改動密碼 if(user.getPassword().length()!=0) { String salt = new SecureRandomNumberGenerator().nextBytes().toString(); int times = 2; String algorithmName = "md5"; String encodedPassword = new SimpleHash(algorithmName,password,salt,times).toString(); user.setSalt(salt); user.setPassword(encodedPassword); } else user.setPassword(null); userService.update(user); return "redirect:listUser"; } @RequestMapping("addUser") public String add(User user,long[] roleIds){ String salt = new SecureRandomNumberGenerator().nextBytes().toString();//生成隨機數(shù) int times = 2; String algorithmName = "md5"; String encodedPassword = new SimpleHash(algorithmName,user.getPassword(),salt,times).toString(); User u = new User(); u.setName(user.getName()); u.setPassword(encodedPassword); u.setSalt(salt); u.setStatus(1); u.setAddress(user.getAddress()); u.setPhone(user.getPhone()); userService.add(u); userRoleService.setRoles(u,roleIds); return "redirect:listUser"; } }
管理員角色controler控制層
/** * 管理員角色controler */ @Controller @RequestMapping("/config") public class RoleController { @Autowired RoleService roleService; @Autowired RolePermissionService rolePermissionService; @Autowired PermissionService permissionService; @RequestMapping("/addRoleUI") public String addRole(){ return "syspage/admin-role-add"; } @RequestMapping("/listRole") public String list(Model model, Page page){ PageHelper.offsetPage(page.getStart(),page.getCount());//分頁查詢 List<Role> rs= roleService.list(); int total = (int) new PageInfo<>(rs).getTotal();//總條數(shù) page.setTotal(total); model.addAttribute("rs", rs); model.addAttribute("roleSize",total); Map<Role,List<Permission>> role_permissions = new HashMap<>(); for (Role role : rs) { List<Permission> ps = permissionService.list(role); role_permissions.put(role, ps); } model.addAttribute("role_permissions", role_permissions); return "syspage/admin-role"; } @RequestMapping("/editRole") public String list(Model model,long id){ Role role =roleService.get(id); model.addAttribute("role", role); //所有權限 List<Permission> ps = permissionService.list(); model.addAttribute("ps", ps); //當前管理員擁有的權限 List<Permission> currentPermissions = permissionService.list(role); model.addAttribute("currentPermissions", currentPermissions); return "syspage/admin-role-edit"; } @RequestMapping("/updateRole") public String update(Role role,long[] permissionIds){ rolePermissionService.setPermissions(role, permissionIds); roleService.update(role); return "redirect:listRole"; } @RequestMapping("/addRole") public String list(Model model,Role role){ roleService.add(role); return "redirect:listRole"; } @RequestMapping("/deleteRole") public String delete(Model model,long id){ roleService.delete(id); return "redirect:listRole"; } }
后臺登錄控制層
/** * 后臺登陸 */ @Controller @RequestMapping("") public class LoginController { @Autowired UserService userService; @RequestMapping(value="/login",method=RequestMethod.POST) public String login(Model model, String name, String password){//throws ParseException Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(name,password); try { subject.login(token); User us = userService.getByName(name); String lastLoginTime = ""; if(us!=null){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //上次時間 Date time = us.getLasttime(); lastLoginTime = sdf.format(time); //新時間 String format = sdf.format(new Date()); //string轉date 不處理時間格式會不理想 ParsePosition pos = new ParsePosition(0); Date strtodate = sdf.parse(format, pos); us.setLasttime(strtodate); userService.update(us); } if (us.getStatus()==1){ Session session=subject.getSession(); session.setAttribute("subject", subject); session.setAttribute("lastLoginTime",lastLoginTime); return "redirect:index"; }else { model.addAttribute("error", "賬號已被停用!"); return "/login"; } } catch (AuthenticationException e) { model.addAttribute("error", "驗證失??!"); return "/login"; } } }
訂單模塊controller控制層
/** * 訂單模塊controller */ @Controller @RequestMapping("/order") public class OrderController { @Autowired OrderService orderService; @Autowired OrderItemService orderItemService; /** * 所有訂單 * @param model * @param page * @return */ @RequestMapping("/list") public String list(Model model, Page page){ PageHelper.offsetPage(page.getStart(),page.getCount()); List<Order> os= orderService.list(); int total = (int) new PageInfo<>(os).getTotal(); page.setTotal(total); //為訂單添加訂單項數(shù)據(jù) orderItemService.fill(os); model.addAttribute("os", os); model.addAttribute("page", page); model.addAttribute("totals", total); return "ordermodule/order-list"; } /** * 訂單發(fā)貨 * @param o * @return */ @RequestMapping("/orderDelivery") public String delivery(Order o){ o.setStatus(2); orderService.update(o); return "redirect:list"; } /** * 查看當前訂單的訂單項 * @param oid * @param model * @return */ @RequestMapping("/seeOrderItem") public String seeOrderItem(int oid,Model model){ Order o = orderService.get(oid); orderItemService.fill(o); model.addAttribute("orderItems",o.getOrderItems()); model.addAttribute("total",o.getOrderItems().size()); model.addAttribute("totalPrice",o.getTotal()); return "ordermodule/orderItem-list"; } }
以上就是Java實戰(zhàn)之校園外賣點餐系統(tǒng)的實現(xiàn)的詳細內容,更多關于Java點餐系統(tǒng)的資料請關注腳本之家其它相關文章!
相關文章
Java集合框架迭代器Iterator實現(xiàn)原理解析
這篇文章主要介紹了Java集合框架迭代器Iterator實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08Java實用小技能之快速創(chuàng)建List常用幾種方式
java集合可以說無論是面試、刷題還是工作中都是非常常用的,下面這篇文章主要給大家介紹了關于Java實用小技能之快速創(chuàng)建List常用的幾種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-12-12IDEA使用properties配置文件進行mysql數(shù)據(jù)庫連接的教程圖解
Properties類是 鍵和值均為字符串的可以永久存儲到文件中的key-value集合。這篇文章主要介紹了IDEA使用properties配置文件進行mysql數(shù)據(jù)路連接 ,需要的朋友可以參考下2018-10-10解決mapper.xml中resultType映射類型的問題
這篇文章主要介紹了解決mapper.xml中resultType映射類型的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06JDK1.8使用的垃圾回收器和執(zhí)行GC的時長以及GC的頻率方式
這篇文章主要介紹了JDK1.8使用的垃圾回收器和執(zhí)行GC的時長以及GC的頻率方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05