• Java项目:智能点餐推荐系统(java+SSM+JSP+BootStrap+Mysql)


    源码获取:俺的博客首页 "资源" 里下载!

    项目介绍

    管理员角色包含以下功能:
    管理员登录,类目管理,用户管理,菜品管理,订单管理,公告管理,留言管理,查看日志等功能。

    用户管理包含以下功能:
    查看首页,用户登录,查看商品详情,查看我的收藏,查看购物车,查看我的订单,提交订单,提交留言,修改个人信息,修改密码等功能。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
    5.是否Maven项目: 是;
    6.数据库:MySql 5.7等版本均可;


    技术栈

    1. 后端:Spring+SpringMVC+Mybatis
    2. 前端:JSP+CSS+JavaScript+jquery+bootstrap+echarts

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
    4. 运行项目,在浏览器中输入http://localhost:8080/shop 登录
    用户账号/密码: user/123456
    管理员账号/密码:admin/admin

     

     

     

     

     

    后台登陆管理控制层:

    1. /**
    2. * 后台登陆
    3. */
    4. @Controller
    5. @RequestMapping("")
    6. public class LoginController {
    7. @Autowired
    8. UserService userService;
    9. @RequestMapping(value="/login",method=RequestMethod.POST)
    10. public String login(Model model, String name, String password){//throws ParseException
    11. Subject subject = SecurityUtils.getSubject();
    12. UsernamePasswordToken token = new UsernamePasswordToken(name,password);
    13. try {
    14. subject.login(token);
    15. User us = userService.getByName(name);
    16. String lastLoginTime = "";
    17. if(us!=null){
    18. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    19. //上次时间
    20. Date time = us.getLasttime();
    21. lastLoginTime = sdf.format(time);
    22. //新时间
    23. String format = sdf.format(new Date());
    24. //stringdate 不处理时间格式会不理想
    25. ParsePosition pos = new ParsePosition(0);
    26. Date strtodate = sdf.parse(format, pos);
    27. us.setLasttime(strtodate);
    28. userService.update(us);
    29. }
    30. if (us.getStatus()==1){
    31. Session session=subject.getSession();
    32. session.setAttribute("subject", subject);
    33. session.setAttribute("lastLoginTime",lastLoginTime);
    34. return "redirect:index";
    35. }else {
    36. model.addAttribute("error", "账号已被停用!");
    37. return "/login";
    38. }
    39. } catch (AuthenticationException e) {
    40. model.addAttribute("error", "验证失败!");
    41. return "/login";
    42. }
    43. }
    44. }

    订单管理控制层:

    1. /**
    2. * 订单模块controller
    3. */
    4. @Controller
    5. @RequestMapping("/order")
    6. public class OrderController {
    7. @Autowired
    8. OrderService orderService;
    9. @Autowired
    10. OrderItemService orderItemService;
    11. /**
    12. * 所有订单
    13. * @param model
    14. * @param page
    15. * @return
    16. */
    17. @RequestMapping("/list")
    18. public String list(Model model, Page page){
    19. PageHelper.offsetPage(page.getStart(),page.getCount());
    20. List<Order> os= orderService.list();
    21. int total = (int) new PageInfo<>(os).getTotal();
    22. page.setTotal(total);
    23. //为订单添加订单项数据
    24. orderItemService.fill(os);
    25. model.addAttribute("os", os);
    26. model.addAttribute("page", page);
    27. model.addAttribute("totals", total);
    28. return "ordermodule/order-list";
    29. }
    30. /**
    31. * 订单发货
    32. * @param o
    33. * @return
    34. */
    35. @RequestMapping("/orderDelivery")
    36. public String delivery(Order o){
    37. o.setStatus(2);
    38. orderService.update(o);
    39. return "redirect:list";
    40. }
    41. /**
    42. * 查看当前订单的订单项
    43. * @param oid
    44. * @param model
    45. * @return
    46. */
    47. @RequestMapping("/seeOrderItem")
    48. public String seeOrderItem(int oid,Model model){
    49. Order o = orderService.get(oid);
    50. orderItemService.fill(o);
    51. model.addAttribute("orderItems",o.getOrderItems());
    52. model.addAttribute("total",o.getOrderItems().size());
    53. model.addAttribute("totalPrice",o.getTotal());
    54. return "ordermodule/orderItem-list";
    55. }
    56. }

    用户管理控制层:

    1. /**
    2. * 管理员controller
    3. */
    4. @Controller
    5. @RequestMapping("/config")
    6. public class UserController {
    7. @Autowired
    8. UserRoleService userRoleService;
    9. @Autowired
    10. UserService userService;
    11. @Autowired
    12. RoleService roleService;
    13. @RequestMapping("/enableStatus")
    14. @ResponseBody
    15. public String enableStatus(@RequestParam(value = "name") String name){
    16. return userService.enableStatus(name);
    17. }
    18. @RequestMapping("/stopStatus")
    19. @ResponseBody
    20. public String stopStatus(@RequestParam(value = "name") String name){
    21. return userService.stopStatus(name);
    22. }
    23. @RequestMapping("/adminAdd")
    24. public String adminadd(Model model){
    25. List<Role> list = roleService.list();
    26. model.addAttribute("rolelist",list);
    27. return "syspage/admin-add";
    28. }
    29. @RequestMapping("/listUser")
    30. public String list(Model model, Page page){
    31. PageHelper.offsetPage(page.getStart(),page.getCount());//分页查询
    32. List<User> us= userService.list();
    33. int total = (int) new PageInfo<>(us).getTotal();//总条数
    34. page.setTotal(total);
    35. model.addAttribute("us", us);//所有用户
    36. model.addAttribute("total",total);
    37. Map<User,List<Role>> user_roles = new HashMap<>();
    38. //每个用户对应的权限
    39. for (User user : us) {
    40. List<Role> roles=roleService.listRoles(user);
    41. user_roles.put(user, roles);
    42. }
    43. model.addAttribute("user_roles", user_roles);
    44. return "syspage/admin-list";
    45. }
    46. /**
    47. * 修改管理员角色
    48. * @param model
    49. * @param id
    50. * @return
    51. */
    52. @RequestMapping("/editUser")
    53. public String edit(Model model,Long id){
    54. List<Role> rs = roleService.list();
    55. model.addAttribute("rs", rs);
    56. User user =userService.get(id);
    57. model.addAttribute("user", user);
    58. //当前拥有的角色
    59. List<Role> roles =roleService.listRoles(user);
    60. model.addAttribute("currentRoles", roles);
    61. return "syspage/admin-edit";
    62. }
    63. @RequestMapping("deleteUser")
    64. public String delete(Model model,long id){
    65. userService.delete(id);
    66. return "redirect:listUser";
    67. }
    68. @RequestMapping("updateUser")
    69. public String update(User user, long[] roleIds){
    70. userRoleService.setRoles(user,roleIds);
    71. String password=user.getPassword();
    72. //如果在修改的时候没有设置密码,就表示不改动密码
    73. if(user.getPassword().length()!=0) {
    74. String salt = new SecureRandomNumberGenerator().nextBytes().toString();
    75. int times = 2;
    76. String algorithmName = "md5";
    77. String encodedPassword = new SimpleHash(algorithmName,password,salt,times).toString();
    78. user.setSalt(salt);
    79. user.setPassword(encodedPassword);
    80. }
    81. else
    82. user.setPassword(null);
    83. userService.update(user);
    84. return "redirect:listUser";
    85. }
    86. @RequestMapping("addUser")
    87. public String add(User user,long[] roleIds){
    88. String salt = new SecureRandomNumberGenerator().nextBytes().toString();//生成随机数
    89. int times = 2;
    90. String algorithmName = "md5";
    91. String encodedPassword = new SimpleHash(algorithmName,user.getPassword(),salt,times).toString();
    92. User u = new User();
    93. u.setName(user.getName());
    94. u.setPassword(encodedPassword);
    95. u.setSalt(salt);
    96. u.setStatus(1);
    97. u.setAddress(user.getAddress());
    98. u.setPhone(user.getPhone());
    99. userService.add(u);
    100. userRoleService.setRoles(u,roleIds);
    101. return "redirect:listUser";
    102. }
    103. }

     源码获取:俺的博客首页 "资源" 里下载!

  • 相关阅读:
    快速搭建PHP管理后台
    TaiShan 200服务器安装Ubuntu 18.04
    java-php-python-ssm郑工社团交流服务信息平台计算机毕业设计
    WPF 常用布局方式
    JS函数组合
    用 Python 自动化处理无聊的事情
    基于tcp协议及数据库sqlite3的云词典项目
    2022春夏系列 KOREANO ESSENTIAL重塑时装生命力
    问:问卷中的多选题数据怎么整理?
    编程模式-表驱动编程
  • 原文地址:https://blog.csdn.net/m0_66863468/article/details/127466140