目 录
1 系统需求分析 1
1.1 系统功能分析 2
1.2 系统功能需求 3
1.3 系统性能需求 3
2 可行性分析 5
2.1 研究前提 5
2.2 设计要求 5
2.2.1 安全性 5
2.2.2 系统性能 5
2.2.3 可扩展性 6
3 数据库设计 7
3.1 数据库需求分析 7
3.2 数据库概念结构设计 9
3.3 数据库逻辑结构设计 11
3.4 数据库物理结构设计 14
3.5 数据库的建立 15
3.5.1 数据库的建立 15
3.5.2 初始数据的输入 19
4 各功能模块的设计与实现 25
4.1 系统开发条件 25
4.1.1 开发语言 25
4.1.2 开发框架 25
4.1.3 前端框架 25
4.1.4 集成开发环境 26
4.1.5 Web应用服务器 26
4.1.6 数据库管理系统 26
4.2 用户界面设计 26
4.3 功能模块说明 29
5 实训总结 36
5.1 所遇困难 36
5.2 实验心得 36
6 附件 37
6.1 核心代码(一) 37
6.2 核心代码(二) 39
6.3 核心代码(三) 42
6.4 核心代码(四) 47

1 系统需求分析
超市订单管理系统是一个专为连锁店、超市等商业场所提供订单管理平台的系统。该系统的目标是建立一个订单管理平台,为需要合理规划超市供应链、供应商以及工作人员提供的便捷的平台。该系统的主要业务需求包括记录并维护某超市的供应商信息,以及该超市与供应商之间的交易订单信息,包括三种角色,系统管理员经理,普通员工。
1.1 系统功能分析
本系统主要的功能是实现超市订单管理功能,以便为超市、连锁店提供以及其他负责人提供订单详情、联系方式等,系统的主要功能有以下五个方面:
(1)登录/注销:
管理员可以在网站上登录浏览,离开时注销并退出。
(2)订单管理:
管理员可以浏览所有订单信息,并且通过点击查看了解订单详情信息。
(3)供应商管理:
管理员可以在网站浏览所有供应商信息,并在在与其他供应商达成合作之后,添加相关供应商信息,并且通过点击查看了解他们的联系方式等。
(4)用户管理:
管理员可以管理所有超市员工用户,对用户进行增删改查,对于离职或其他原因的未工作用户给予注销管理。
(5)密码修改:
管理员可对自己的账号密码进行修改,填写对应之前的正确密码以及新密码之后,即完成相关修改密码操作。
(6)搜索功能:
在以上管理界面中,均允许了管理员根据关键字进行搜索,要求搜索框中输入的字段必须完全包含在物品名称中,否则无法查询。

package cn.smbms.controller;import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;import cn.smbms.pojo.User;
import cn.smbms.service.UserService;
import cn.smbms.utils.Constants;
import cn.smbms.utils.PageHelper;
import cn.smbms.utils.UploadHelper;@Controller
public class UserController {@ResourceUserService userService;//更据id删除用户信息@RequestMapping("deleteUserById")public String deleteUserById(String id,Model md) {String msg="";if(userService.deleteUserById(id)) {msg="删除用户成功!";}elsemsg="删除用户失败!";md.addAttribute("msg", msg);return "redirect:getUserList";}//添加修改用户的执行路由信息@RequestMapping("/modifyUserGo")public String modifyUserGo(User user,HttpSession session) {Integer uid=((User)session.getAttribute(Constants.USER_SESSION)).getId();if(null!=user) {user.setModifyBy(uid);user.setModifyDate(new Date());userService.modifyUser(user);}return "redirect:getUserList";}//添加修改用户的界面路由@RequestMapping("/modifyUser")public String modifyUser(String id,Model md) {User user=new User();user=userService.getUserById(id);md.addAttribute("user", user);return "modifyUser";}//修改密码实现方法@RequestMapping("/modifyPasswordGo")public String modifyPasswordGo(String userCode,String userPassword,String newPassword,Model md) {String msg="";if(userService.modifyPasswd(userCode, userPassword, newPassword))msg="修改密码成功!";elsemsg="修改密码失败!";md.addAttribute("msg",msg);return "modifyPasswordFinish";}//添加用户打开修改密码的界面@RequestMapping("/modifyPasswd")public String modifyPasswd() {return "modifyPasswd";}//添加用户处理方法@RequestMapping("addUserGo")public String addUserGo(User user,HttpSession session,HttpServletRequest request,@RequestParam(value ="midPicPath", required = false) MultipartFile attach,@RequestParam(value ="mworkPicPath", required = false) MultipartFile attach1,Model md) {String strIdPicPath=null;String strWorkPicPath=null;Map<String,String> msgMap=new HashMap<String,String>();String savePath= request.getSession().getServletContext().getRealPath("uploads"); msgMap=UploadHelper.saveFile(savePath, attach);if(msgMap.get("flag")=="fail") {md.addAttribute("error",msgMap.get("msg"));return "redirect:addUser";}else {strIdPicPath=msgMap.get("url");}msgMap=UploadHelper.saveFile(savePath, attach1);if(msgMap.get("flag")=="fail") {md.addAttribute("error",msgMap.get("msg"));return "redirect:addUser";}else {strWorkPicPath=msgMap.get("url");}User user1=new User();user1=user;Integer uid=null;uid=((User) session.getAttribute(Constants.USER_SESSION)).getId();if(null!=uid) {user1.setCreatedBy(uid);user1.setIdPicPath(strIdPicPath);user1.setWorkPicPath(strWorkPicPath);if(userService.addUser(user1))return "redirect:getUserList";else {md.addAttribute("error","您还没有登录,请登录!");return "redirect:addUser";}}elsereturn "redirect:login";}//添加用户界面@RequestMapping("addUser")public String addUser() {return "addUser";}//请求登录界面@RequestMapping("/login")public String login() {return "login";}//退出界面@RequestMapping("/logout")public String logout(HttpSession session){session.removeAttribute("user");return "login";}//请求处理程序@RequestMapping("/loginGo")public String loginGo(String userCode,String userPassword,Model md,HttpSession session) {User user=new User();user=userService.checkLogin(userCode, userPassword);if(null!=user) {md.addAttribute("user",user);session.setAttribute(Constants.USER_SESSION, user);return "frame";}else {//md.addAttribute("msg","用户名或密码错误!");throw new RuntimeException("用户名或密码错误!");//return "login";}}//异常处理
//  @ExceptionHandler(value= {RuntimeException.class})
//  public String handlerException(RuntimeException e,HttpServletRequest req) {//      req.setAttribute("e", e);
//      return "error";
//  }@RequestMapping("/main")public String main(HttpSession session) {//检查是否登录if(session.getAttribute("user")==null) {return "redirect:login";}return "main";}//查询用户列表@RequestMapping("/getUserList")public String getUserList(String userName,String roleName,String pageIndex,Model md) {//设置页面容量int pageSize = Constants.pageSize;//当前页码int currentPageNo = 1;if(pageIndex != null){try{currentPageNo = Integer.valueOf(pageIndex);}catch(NumberFormatException e){return "redirect:/user/syserror.html";//response.sendRedirect("syserror.jsp");}}//总数量(表)if(StringUtils.isEmpty(userName))userName="";if(StringUtils.isEmpty(roleName))roleName="";int totalCount    = userService.getUserCount(userName, roleName);//总页数PageHelper pages=new PageHelper();pages.setCurrentPageNo(currentPageNo);pages.setPageSize(pageSize);pages.setTotalCount(totalCount);int totalPageCount = pages.getTotalPageCount();//控制首页和尾页if(currentPageNo < 1){currentPageNo = 1;}else if(currentPageNo > totalPageCount){currentPageNo = totalPageCount;}if(StringUtils.isEmpty(userName)) {userName="";}List<User> users=userService.getUserList(userName,roleName,(currentPageNo-1)*pageSize,pageSize);md.addAttribute("userList", users);md.addAttribute("totalPageCount", totalPageCount);md.addAttribute("totalCount", totalCount);md.addAttribute("currentPageNo", currentPageNo);return "userList";}@RequestMapping("/viewUser")public String viewUser(String id,Model md) {User user=new User();user=userService.getUserById(id);md.addAttribute("user", user);return "viewUser";}
}














基于SSM的超市订单管理系统设计与实现相关推荐

  1. 基于Springboot的超市订单管理系统设计与实现

    目录 摘要 I Abstract II 1 系统需求分析 1 1.1 系统功能分析 1 1.2 系统功能需求 2 1.3 系统性能需求 2 2 可行性分析 3 2.1 研究前提 3 2.2 设计要求 ...

  2. asp毕业设计——基于asp+access的订单管理系统设计与实现(毕业论文+程序源码)——订单管理系统

    基于asp+access的订单管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的订单管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...

  3. 基于SSM架构的新闻管理系统设计与实现论文

    标题基于SSM架构的新闻管理系统设计与实现 摘 要 当代社会发展迅速,电脑和网络已经是人们日常生活中必不可或缺的收取信息的工具,起到了至关重要的作用,而随着网络与计算机的发展,网站行业也迅速发展起来, ...

  4. [计算机毕设]基于java的超市积分管理系统设计与实现(项目报告+答辩PPT+源代码+数据库)

    项目说明报告 基于java的超市积分管理系统 随着计算机和网络的不断革新,世界已经进入了前所未有的电子时代.作为实用性强.应用范围广泛的会员管理系统也正在被越来越多的各类企业用于消费管理领域.然而,那 ...

  5. 基于SSM社区网格化小区管理系统设计

    开发软件:Eclipse/Idea + Jdk1.7 + Mysql 这是一个基于SSM框架开发的社区网络化管理系统,一共有2个身份包括管理员和网格员.网格员登录后可以修改个人信息密码,添加工作日志包 ...

  6. JSP+MySQL基于SSM框架的教室管理系统设计与实现

    本教室管理系统主要包括系统用户管理模块.楼层信息管理模块.校内新闻管理.教室信息管理.登录模块.和退出模块等多个模块.它帮助教室管理实现了信息化.网络化,通过测试,实现了系统设计目标,相比传统的管理模 ...

  7. 基于SSM框架的投票管理系统设计与实现

    目 录 摘 要 I ABSTRACT II 1 绪论 1 1.1 选题的背景和意义 1 1.2 国内外研究现状 2 1.2.1 国内的研究现状 2 1.2.2 国外的研究现状 2 1.3 论文组织结构 ...

  8. 基于SSM的公益捐赠管理系统设计与实现 Spring+SpringMVC+MyBatis

    全套程序源码+数据库文本 文档都在,可以和帖主交流 项目地址:http://www.lw225.cn/lwlist.php?pclass=JSP 第一章 概述 1.1 研究背景 随着市场经济的发展,市 ...

  9. 基于JAVA干洗店订单管理系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA干洗店订单管理系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA干洗店订单管理系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...

最新文章

  1. 如何搭建高可用Redis服务
  2. 【洛谷 P2464】[SDOI2008]郁闷的小J(线段树)
  3. 当心花招,关注全闪存性能
  4. D3 Data Visualization in Ext JS
  5. 网络知识:各种缓存核心知识整理,值得收藏!
  6. CSS魔法堂:那个被我们忽略的outline 1
  7. 43request对象 续
  8. 从零开始搭二维激光SLAM --- 写作计划
  9. ei会议和ei源刊的区别_Ei期刊和ei会议论文有哪些区别
  10. LimeSDR有用的网页链接
  11. 学习笔记 JavaScript ES6 声明方式const(二)
  12. mysql横竖表转换
  13. javaMailSender 发送邮件设置昵称
  14. 手把手教你搭建SpringCloud项目(十六)集成Stream消息驱动
  15. [转帖]LCD与LED的区别之背光原理与优缺点对比介绍
  16. 教育行业一般用什么邮箱,教育邮箱推荐
  17. WorkFlow .Net 流程撤回
  18. ORA-01578: ORACLE 数据块损坏 之奇妙处理 DBV
  19. 动态联编与静态联编的区别
  20. python量化策略——海龟交易策略(长期)

热门文章

  1. oracle游标增大,ORACLE 硬件解析高的问题解决--修改SESSION_CACHED_CURSORS游标缓存参数...
  2. 5g网站服务器宽带,5g服务器优势特点详解
  3. 发明专利可以增加几个申请人
  4. 高光谱遥感影像分类研究进展 --- (15年论文,方法主要是常规处理,但是写的比较细)
  5. 共享登录状态解决方案
  6. 服务器安全狗在什么位置,服务器安全狗之服务器体检操作教程
  7. shell-手机屏幕录制
  8. niva mysql_OpenStack juno版 安装配置——第五章(Nova)
  9. 车辆运动控制(5)点质量车辆动力学模型
  10. javascript 学习笔记(3)