项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基基于SSM超市管理系统的设计与实现。
功能需求
通过开发基于SSM的超市信息化管理系统,根据超市管理业务流程系统处理,解决超市营业员手动管理的工作看,超市管理员只需要对商品信息、供货商信息、销售价格管理、超市会员信息记录和管理。根据业务要求划分为超市收银员员工用户实现功能为收银、添加会员、当日销售同价查看以及商品检索查看,为超市管理员设计了后台管理系统,超级管理员对整个系统的管理,主要解决商品管理、库存管理、订单管理、销售情况统计以及超市管理系统基础资料的配置。根据业务分析每个功能设计,界面设计简单易懂,操作按钮方便明了,大大提高了超市销售额度和管力度。
具备以下功能:
系统结构设计从整体到细化,根据业务的需要将分为四类用户,针对每种用户功能进行模块化设计,各个模块功能相互联系结合在一起形成一个完整的超市管理系统。前几张对系统功能模块确定,已经分析超市管理系统开发技术要点,超市管理业务过程分析。系统用户为四类:员工、店长、管理员、总经理。员工进行订单管理、添加商品、出售商品等功能。员工的用例图如图3-1所示。
店长进行订单管理、添加商品、出售商品、管理货物的情况、查货等功能。店长用例图如图3-2所示。
管理员进行订单管理、添加商品、出售商品、管理货物的情况、查货、所有权限的管理、所有人员的管理等功能。管理员用例图如图3-3所示。
店长进行订单管理、添加商品、出售商品、管理货物的情况、查货、所有权限的管理、所有人员的管理、查看、查看货物的销售情况等功能。店长的用例图如图3-4所示。
系统功能模块框架图
部分效果图
数据库设计
系统中用到了15张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表
(2)商品信息表
(3)商品类型信息表
(4)菜单信息表
(5)订单表
(6)供应商表
部分代码
/**
* 用户登陆
* @param imageCode
* @param session
* @param user
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/login")
public Map<String, Object> login(String imageCode, HttpSession session, User user) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
if (!session.getAttribute("checkcode").equals(imageCode)) {
map.put("success", false);
map.put("errorInfo", "验证码输入错误!");
return map;
}
Subject subect = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(user.getUserName(), user.getPassword());
try {
subect.login(token);
String userName = (String) SecurityUtils.getSubject().getPrincipal();
User currentUser = userService.findByUserName(userName);
UserRole userRole = userRoleService.findAll(currentUser.getUserName());
List<Menu> menuList = menuService.menuList(userRole.getRoleId());
session.setAttribute("menuList", menuList);
session.setAttribute("currentUser", currentUser);
map.put("success", true);
return map;
} catch (Exception e) {
e.printStackTrace();
map.put("success", false);
map.put("errorInfo", "用户名或者密码错误!");
return map;
}
}
/**
* 查询所有用户 按条件搜索
* @param user
* @param page
* @param limit
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/userList")
public Map<String, Object> userList(User user, @RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "limit", required = false) Integer limit) throws Exception {
Map<String, Object> result = ResponseUtil.resultFye(page, limit);
if(user.getUserName()!=null){
String userName =user.getUserName();
result.put("userName", userName);
}
List<User> userList = userService.findAll(result);
Long count = userService.count(result);
return ResponseUtil.result(userList, count);
}
/**
* 添加用户
* @param user
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/add")
public Map<String, Object> add(User user) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
User userName = userService.findByUserName(user.getUserName());
if (userName == null) {
userService.add(user);
Integer s = user.getRoleId();
UserRole userRole = new UserRole();
userRole.setRoleId(s);
userRole.setUserId(user.getId());
userRoleService.add(userRole);
result.put("success", true);
} else {
result.put("success", false);
result.put("errorInfo", "用户名已存在!");
}
return result;
}
/**
* 删除用户 如有角色对应 删除角色对应关系
* @param id
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value = "id", required = false) Integer id) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
userService.delete(id);
userRoleService.delete(id);
result.put("success", true);
return result;
}
/**
* 更新用户信息
* 更新角色 删除之前的对应关系 添加新的对应关系
* @param user
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/update")
public Map<String, Object> update(User user) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
UserRole userRole = userRoleService.findAll(user.getUserName());
if(userRole.getRoleId()==user.getRoleId()){
userService.update(user);
}else{
userService.update(user);
userRoleService.delete(user.getId());
userRole.setRoleId(user.getRoleId());
userRole.setUserId(user.getId());
userRoleService.add(userRole);
}
result.put("success", true);
return result;
}
/**
* 重置密码
* @param id
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping("/reset")
public Map<String, Object> reset(@RequestParam(value = "id", required = false) Integer id) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
userService.updateReset(id);
result.put("success", true);
return result;
}
@RequestMapping("/logout")
public String logout(HttpSession session)throws Exception{
SecurityUtils.getSubject().logout();
return "redirect:/login.jsp";
}
@ResponseBody
@RequestMapping("/updatepswd")
public Map<String, Object> updatepswd(User user) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
userService.update(user);
result.put("success", true);
return result;
}
安装部署需求
eclipse、idea运行启动
系统部署
系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件
本项目用到的技术和框架
1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:jsp+SSM
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、CSS、SSM
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;