• Java项目:SSM的食堂点餐系统


    作者主页:Java毕设网

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    一、相关文档

            系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:个人中心、用户管理、食堂管理、食堂菜单管理、菜系分类管理、消息留言管理、留言板管理、系统管理、订单管理等功能。

            用户进入系统可以进行个人中心、消息留言管理、我的收藏管理、订单管理等。

    二、项目介绍

    角色:管理员、用户

    前台用户可以实现商品浏览,加入购物车,加入收藏,预定,选座,个人信息管理,收货信息管理,收藏管理,评论功能,我的订单等。
    食堂:个人中心、修改密码、个人信息、食堂菜单管理、菜系分类管理、消息留言管理、订单管理
    系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:个人中心、用户管理、食堂管理、食堂菜单管理、菜系分类管理、消息留言管理、留言板管理、系统管理、订单管理等功能。
    由于本程序规模不大,可供课程设计,毕业设计学习演示之用

    三、环境需要

    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项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
    6.数据库:MySql 5.7/8.0等版本均可;

    四、技术栈

    后端:SSM(Spring+SpringMVC+Mybatis)
    前端:JSP+CSS+JS+JQUERY+Layui

    五、使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
    3. 将项目中db.xml配置文件中的数据库配置改为自己的配置,然后运行;
    前台:http://localhost:8080/jspmjy54g/front/index.jsp

    后台:http://localhost:8080/jspmjy54g/jsp/login.jsp

    六、运行截图

    前台界面

    ​​​

    后台界面 

    ​​​​

    七、相关代码

    订单管理控制器

    1. @RestController
    2. @RequestMapping("/orders")
    3. public class OrdersController {
    4. @Autowired
    5. private OrdersService ordersService;
    6. /**
    7. * 后端列表
    8. */
    9. @RequestMapping("/page")
    10. public R page(@RequestParam Map params,OrdersEntity orders, HttpServletRequest request){
    11. if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    12. orders.setUserid((Long)request.getSession().getAttribute("userId"));
    13. }
    14. EntityWrapper ew = new EntityWrapper();
    15. PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
    16. request.setAttribute("data", page);
    17. return R.ok().put("data", page);
    18. }
    19. /**
    20. * 前端列表
    21. */
    22. @RequestMapping("/list")
    23. public R list(@RequestParam Map params,OrdersEntity orders, HttpServletRequest request){
    24. EntityWrapper ew = new EntityWrapper();
    25. PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
    26. request.setAttribute("data", page);
    27. return R.ok().put("data", page);
    28. }
    29. /**
    30. * 列表
    31. */
    32. @RequestMapping("/lists")
    33. public R list( OrdersEntity orders){
    34. EntityWrapper ew = new EntityWrapper();
    35. ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
    36. return R.ok().put("data", ordersService.selectListView(ew));
    37. }
    38. /**
    39. * 查询
    40. */
    41. @RequestMapping("/query")
    42. public R query(OrdersEntity orders){
    43. EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();
    44. ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
    45. OrdersView ordersView = ordersService.selectView(ew);
    46. return R.ok("查询订单成功").put("data", ordersView);
    47. }
    48. /**
    49. * 后端详情
    50. */
    51. @RequestMapping("/info/{id}")
    52. public R info(@PathVariable("id") Long id){
    53. OrdersEntity orders = ordersService.selectById(id);
    54. return R.ok().put("data", orders);
    55. }
    56. /**
    57. * 前端详情
    58. */
    59. @RequestMapping("/detail/{id}")
    60. public R detail(@PathVariable("id") Long id){
    61. OrdersEntity orders = ordersService.selectById(id);
    62. return R.ok().put("data", orders);
    63. }
    64. /**
    65. * 后端保存
    66. */
    67. @RequestMapping("/save")
    68. public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){
    69. orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    70. //ValidatorUtils.validateEntity(orders);
    71. orders.setUserid((Long)request.getSession().getAttribute("userId"));
    72. ordersService.insert(orders);
    73. return R.ok();
    74. }
    75. /**
    76. * 前端保存
    77. */
    78. @RequestMapping("/add")
    79. public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){
    80. orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    81. //ValidatorUtils.validateEntity(orders);
    82. ordersService.insert(orders);
    83. return R.ok();
    84. }
    85. /**
    86. * 修改
    87. */
    88. @RequestMapping("/update")
    89. public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){
    90. //ValidatorUtils.validateEntity(orders);
    91. ordersService.updateById(orders);//全部更新
    92. return R.ok();
    93. }
    94. /**
    95. * 删除
    96. */
    97. @RequestMapping("/delete")
    98. public R delete(@RequestBody Long[] ids){
    99. ordersService.deleteBatchIds(Arrays.asList(ids));
    100. return R.ok();
    101. }
    102. /**
    103. * 提醒接口
    104. */
    105. @RequestMapping("/remind/{columnName}/{type}")
    106. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    107. @PathVariable("type") String type,@RequestParam Map map) {
    108. map.put("column", columnName);
    109. map.put("type", type);
    110. if(type.equals("2")) {
    111. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    112. Calendar c = Calendar.getInstance();
    113. Date remindStartDate = null;
    114. Date remindEndDate = null;
    115. if(map.get("remindstart")!=null) {
    116. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    117. c.setTime(new Date());
    118. c.add(Calendar.DAY_OF_MONTH,remindStart);
    119. remindStartDate = c.getTime();
    120. map.put("remindstart", sdf.format(remindStartDate));
    121. }
    122. if(map.get("remindend")!=null) {
    123. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    124. c.setTime(new Date());
    125. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    126. remindEndDate = c.getTime();
    127. map.put("remindend", sdf.format(remindEndDate));
    128. }
    129. }
    130. Wrapper wrapper = new EntityWrapper();
    131. if(map.get("remindstart")!=null) {
    132. wrapper.ge(columnName, map.get("remindstart"));
    133. }
    134. if(map.get("remindend")!=null) {
    135. wrapper.le(columnName, map.get("remindend"));
    136. }
    137. if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    138. wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));
    139. }
    140. int count = ordersService.selectCount(wrapper);
    141. return R.ok().put("count", count);
    142. }
    143. }

    食堂相关控制器

    1. @RestController
    2. @RequestMapping("/shitang")
    3. public class ShitangController {
    4. @Autowired
    5. private ShitangService shitangService;
    6. @Autowired
    7. private TokenService tokenService;
    8. /**
    9. * 登录
    10. */
    11. @IgnoreAuth
    12. @RequestMapping(value = "/login")
    13. public R login(String username, String password, String captcha, HttpServletRequest request) {
    14. ShitangEntity user = shitangService.selectOne(new EntityWrapper().eq("shitanghao", username));
    15. if(user==null || !user.getMima().equals(password)) {
    16. return R.error("账号或密码不正确");
    17. }
    18. String token = tokenService.generateToken(user.getId(), username,"shitang", "管理员" );
    19. return R.ok().put("token", token);
    20. }
    21. /**
    22. * 注册
    23. */
    24. @IgnoreAuth
    25. @RequestMapping("/register")
    26. public R register(@RequestBody ShitangEntity shitang){
    27. //ValidatorUtils.validateEntity(shitang);
    28. ShitangEntity user = shitangService.selectOne(new EntityWrapper().eq("shitanghao", shitang.getShitanghao()));
    29. if(user!=null) {
    30. return R.error("注册用户已存在");
    31. }
    32. Long uId = new Date().getTime();
    33. shitang.setId(uId);
    34. shitangService.insert(shitang);
    35. return R.ok();
    36. }
    37. /**
    38. * 退出
    39. */
    40. @RequestMapping("/logout")
    41. public R logout(HttpServletRequest request) {
    42. request.getSession().invalidate();
    43. return R.ok("退出成功");
    44. }
    45. /**
    46. * 获取用户的session用户信息
    47. */
    48. @RequestMapping("/session")
    49. public R getCurrUser(HttpServletRequest request){
    50. Long id = (Long)request.getSession().getAttribute("userId");
    51. ShitangEntity user = shitangService.selectById(id);
    52. return R.ok().put("data", user);
    53. }
    54. /**
    55. * 密码重置
    56. */
    57. @IgnoreAuth
    58. @RequestMapping(value = "/resetPass")
    59. public R resetPass(String username, HttpServletRequest request){
    60. ShitangEntity user = shitangService.selectOne(new EntityWrapper().eq("shitanghao", username));
    61. if(user==null) {
    62. return R.error("账号不存在");
    63. }
    64. user.setMima("123456");
    65. shitangService.updateById(user);
    66. return R.ok("密码已重置为:123456");
    67. }
    68. /**
    69. * 后端列表
    70. */
    71. @RequestMapping("/page")
    72. public R page(@RequestParam Map params,ShitangEntity shitang, HttpServletRequest request){
    73. EntityWrapper ew = new EntityWrapper();
    74. PageUtils page = shitangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shitang), params), params));
    75. request.setAttribute("data", page);
    76. return R.ok().put("data", page);
    77. }
    78. /**
    79. * 前端列表
    80. */
    81. @RequestMapping("/list")
    82. public R list(@RequestParam Map params,ShitangEntity shitang, HttpServletRequest request){
    83. EntityWrapper ew = new EntityWrapper();
    84. PageUtils page = shitangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shitang), params), params));
    85. request.setAttribute("data", page);
    86. return R.ok().put("data", page);
    87. }
    88. /**
    89. * 列表
    90. */
    91. @RequestMapping("/lists")
    92. public R list( ShitangEntity shitang){
    93. EntityWrapper ew = new EntityWrapper();
    94. ew.allEq(MPUtil.allEQMapPre( shitang, "shitang"));
    95. return R.ok().put("data", shitangService.selectListView(ew));
    96. }
    97. /**
    98. * 查询
    99. */
    100. @RequestMapping("/query")
    101. public R query(ShitangEntity shitang){
    102. EntityWrapper< ShitangEntity> ew = new EntityWrapper< ShitangEntity>();
    103. ew.allEq(MPUtil.allEQMapPre( shitang, "shitang"));
    104. ShitangView shitangView = shitangService.selectView(ew);
    105. return R.ok("查询食堂成功").put("data", shitangView);
    106. }
    107. /**
    108. * 后端详情
    109. */
    110. @RequestMapping("/info/{id}")
    111. public R info(@PathVariable("id") Long id){
    112. ShitangEntity shitang = shitangService.selectById(id);
    113. return R.ok().put("data", shitang);
    114. }
    115. /**
    116. * 前端详情
    117. */
    118. @RequestMapping("/detail/{id}")
    119. public R detail(@PathVariable("id") Long id){
    120. ShitangEntity shitang = shitangService.selectById(id);
    121. return R.ok().put("data", shitang);
    122. }
    123. /**
    124. * 后端保存
    125. */
    126. @RequestMapping("/save")
    127. public R save(@RequestBody ShitangEntity shitang, HttpServletRequest request){
    128. shitang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    129. //ValidatorUtils.validateEntity(shitang);
    130. ShitangEntity user = shitangService.selectOne(new EntityWrapper().eq("shitanghao", shitang.getShitanghao()));
    131. if(user!=null) {
    132. return R.error("用户已存在");
    133. }
    134. shitang.setId(new Date().getTime());
    135. shitangService.insert(shitang);
    136. return R.ok();
    137. }
    138. /**
    139. * 前端保存
    140. */
    141. @RequestMapping("/add")
    142. public R add(@RequestBody ShitangEntity shitang, HttpServletRequest request){
    143. shitang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    144. //ValidatorUtils.validateEntity(shitang);
    145. ShitangEntity user = shitangService.selectOne(new EntityWrapper().eq("shitanghao", shitang.getShitanghao()));
    146. if(user!=null) {
    147. return R.error("用户已存在");
    148. }
    149. shitang.setId(new Date().getTime());
    150. shitangService.insert(shitang);
    151. return R.ok();
    152. }
    153. /**
    154. * 修改
    155. */
    156. @RequestMapping("/update")
    157. public R update(@RequestBody ShitangEntity shitang, HttpServletRequest request){
    158. //ValidatorUtils.validateEntity(shitang);
    159. shitangService.updateById(shitang);//全部更新
    160. return R.ok();
    161. }
    162. /**
    163. * 删除
    164. */
    165. @RequestMapping("/delete")
    166. public R delete(@RequestBody Long[] ids){
    167. shitangService.deleteBatchIds(Arrays.asList(ids));
    168. return R.ok();
    169. }
    170. /**
    171. * 提醒接口
    172. */
    173. @RequestMapping("/remind/{columnName}/{type}")
    174. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    175. @PathVariable("type") String type,@RequestParam Map map) {
    176. map.put("column", columnName);
    177. map.put("type", type);
    178. if(type.equals("2")) {
    179. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    180. Calendar c = Calendar.getInstance();
    181. Date remindStartDate = null;
    182. Date remindEndDate = null;
    183. if(map.get("remindstart")!=null) {
    184. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    185. c.setTime(new Date());
    186. c.add(Calendar.DAY_OF_MONTH,remindStart);
    187. remindStartDate = c.getTime();
    188. map.put("remindstart", sdf.format(remindStartDate));
    189. }
    190. if(map.get("remindend")!=null) {
    191. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    192. c.setTime(new Date());
    193. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    194. remindEndDate = c.getTime();
    195. map.put("remindend", sdf.format(remindEndDate));
    196. }
    197. }
    198. Wrapper wrapper = new EntityWrapper();
    199. if(map.get("remindstart")!=null) {
    200. wrapper.ge(columnName, map.get("remindstart"));
    201. }
    202. if(map.get("remindend")!=null) {
    203. wrapper.le(columnName, map.get("remindend"));
    204. }
    205. int count = shitangService.selectCount(wrapper);
    206. return R.ok().put("count", count);
    207. }
    208. }

    八、如果也想学习本系统,下面领取。关注并回复:261ssm

  • 相关阅读:
    Listener: 监听器
    pycharm2023关闭项目后一直显示正在关闭项目-解决办法
    【Python数据科学 | 11】应用实战:我的第一个开源项目-基金定投回测工具
    超过50%的测试员不懂“测试”,凭什么月薪20k?
    CI/CD - jenkins
    SpringBoot
    Codeforces Round #818 (Div. 2)
    计算机毕业设计选什么题目好?springboot 高校就业管理系统
    【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵
    SSH Keylogger密码抓取
  • 原文地址:https://blog.csdn.net/qq_21856275/article/details/133247249