当先锋百科网

首页 1 2 3 4 5 6 7

项目描述

临近学期结束,还是毕业设计,你还在做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;
其它软件:截图工具、常用浏览器;