# 超市管理 **Repository Path**: gentlemaker/supermarket-management ## Basic Information - **Project Name**: 超市管理 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-04-15 - **Last Updated**: 2024-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 超市管理 ## 问题描述 ### 题目内容与要求 超市管理系统是基于springboot+mybatis+vue完成,其具有5个模块,分别是商品销售管理、商品进货管理、商品库存管理、超市人员管理以及财务管理。 用户可以通过以上功能实现对超市日常事务的管理。 此次题目的完成是基于去年东软实训的总结以及巩固,并且对许多知识的进一步学习。 ### 需求分析 #### 登录 用户在登陆界面输入用户名及密码,后端将前端传递的数据进行账号查询,若查询到此账号信息,并且通过比对密码一致就返回成功信息,并跳转到菜单界面。如果账号密码不正确就返回登陆失败的字样。 #### 销售管理 用户通过登录后进入销售管理界面,可以通过商品查询查询出顾客想要购买的商品信息并将其添加至购物车,选择顾客想要购买商品的参数,在与顾客核实无误后即可点击支付按钮进行支付。如果顾客对某件商品不满意,用户也可以点击删除按钮将此商品从购物车内删除。 #### 进货管理 ##### 添加商品 用户将超市的进货信息录入到系统的进货管理内。用户通过点击添加按钮打开添加商品信息的对话框,并在表单内添加商品的详细信息,在输入完成后点击确定按钮即可添加完成。如果添加成功则会提示添加成功,否则提示添加失败。 同时添加的商品信息也会显示在页面表格内。 ##### 修改商品 用户在进货管理界面可以在想要修改商品的后方点击修改按钮,单机修改按钮后,系统会弹出一个修改对话框,表单内显示了商品的信息,在想要修改的输入框内修改信息即可。修改完成后点击确定按钮,系统会提示修改成功。并且在表格内可以看到已经修改完成的商品信息。 ##### 核实商品 用户在对进货商品核实无误后即可点击核实按钮,在点击核实按钮后会提示商品信息已核实,并且表格状体栏此商品的状态信息转为绿色,代表此商品已经核实。 ##### 搜索商品 用户想要查看某个商品信息即可在搜索栏内输入想要搜索的商品id并点击搜索按钮,系统会弹出一个对话框,表格内显示出搜索的商品信息。也可以在搜索对话框内对商品进行修改核实删除操作。 #### 库存管理 库存管理是对库存商品的一系列修改删除搜索的操作,此界面的所有信息都是在进货管理内通过核实后添加进来的。此界面的删除修改搜索功能与进货管理相同。 #### 人员管理 此界面仅管理员账号可以访问,其他账号登录进入此页面会提示此账号信息无权访问。当管理员用户登陆后,可以对所有账号信息进行管理,也可以修改某个账号权限。 #### 财务管理 此界面是财务管理员对一天的财务信息进行比对核实,此模块分为两个界面,分别是未核实和已核实。 未核实界面通过输入日期显示出当天的财务信息,如果状态为绿色表示当日的财务信息已进行核实,如果为红色表示未核实,需要核实当日账单。在比对无误后点击核实按钮,系统会提示核实成功。 已核实界面是对核实账单的展示,展示了结算用户、结算日期以及结算金额的信息。 ## 概要设计 ### 模块划分 本系统共划分为7个模块。具体介绍如表2.1所示: 表2.1模块划分说明 |序号|模块名称|模块作用|包含函数代码|包含函数名|源文件名称| |--|--|--|--|--|--| |1|登录|比对用户信息|1-1 1-2|Login|login.vue Usercontroller.java| |2|注册|创建账号|2-1 2-2 2-3|signup|login.vue signup.vue Usecontroller.java| |3|销售管理|对商品的销售操作|3-1 3-2 3-3|Search Result Insertdate|Salesmanage.vue Salesmanage.vue Salecontroller.java| |4|进货管理|对商品的添加、查询、修改、核实|4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8|Add Insert Search Search update1 Update Verify verify|Comeinmanagement.vue Commoditycontroller.java| |5|库存管理|对商品的查询、修改|5-1 5-2 5-3 5-4|Search Search update1 update|Inventorymanage.vue Inventorycontroller.java| |6|财务管理|未核实财务信息的查询 未核实财务信息核实 已核实财务信息查询|6-1、6-2 6-3、6-4 6-5、6-6|Searchfinance Verify Insertfinance Search|Conservator.vue Financecontroller.java Finance2.vue Alreadyfincontroller.java| |7|人员管理|查询用户 修改用户权限|7-1 7-2 7-3|Searchuser update1 update|Conservator.vue Superusercontroller.java| ### 文件结构 | 序号 | 文件名称 | 文件作用 | |---|---|---| | 1 | Login.vue | 用户登录以及注册、主页面跳转 | | 2 | Signup.vue | 用户注册 | | 3 | Menu.vue | 菜单页面 | | 4 | Salesmanage.vue | 销售管理页面 | | 5 | Comeinmanage.vue | 进货管理页面 | | 6 | Inventorymanage.vue | 库存管理页面 | | 7 | Peoplemanage.vue | 人员管理权限选择界面 | | 8 | Conservator.vue | 管理员访问人员管理页面 | | 9 | Common.vue | 普通用户访问人员管理页面 | | 10 | Finanace.vue | 未核实权限选择界面 | | 11 | Conservator.vue | 管理员访问未核实财务信息 | | 12 | finanace3.vue | 已核实权限选择 | | 13 | finance2.vue | 管理员访问已核实财务信息 | | 14 | CrosConfig.java | 解决跨域 | | 15 | .controller | 持久层 | | 16 | .entity | 数据库对应的类 | | 17 | .mapper | 对应数据库操作的接口 | | 18 | .service | 业务层,提供各个业务接口以及实现 | | 19 | .xml | 对数据库的操作 | | 20 | Application.properties | 设置数据连接配置 | | 21 | pom.xml | 导入依赖 | | 22 | DemoApplicationTests.java | 入口文件 | ### 调用关系 ![调用关系](picture%E8%B0%83%E7%94%A8%E5%85%B3%E7%B3%BB.png) ## 详细设计 ![功能模块图](picture%E5%8A%9F%E8%83%BD%E6%A8%A1%E5%9D%97%E5%9B%BE.png) ### 网站效果截图 ![登录](picture%E7%99%BB%E5%BD%95.png) ![注册](picture%E6%B3%A8%E5%86%8C.png) ![销售管理](picture%E9%94%80%E5%94%AE%E7%AE%A1%E7%90%86.png) ![进货管理](picture%E8%BF%9B%E8%B4%A7%E7%AE%A1%E7%90%86.png) ![库存管理](picture%E5%BA%93%E5%AD%98%E7%AE%A1%E7%90%86.png) ![人员管理](picture%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86.png) ![权限](picture%E6%9D%83%E9%99%90.png) ![未核实](picture%E6%9C%AA%E6%A0%B8%E5%AE%9E.png) ![已核实](picture%E5%B7%B2%E6%A0%B8%E5%AE%9E.png) ### 数据库设计 > 进货商品表 ``` CREATE TABLE `commodity` ( `id` int(11) NOT NULL AUTO_INCREMENT, `commodityid` varchar(255) NOT NULL, `commodityname` varchar(20) NOT NULL, `commoditynum` int(11) NOT NULL, `commodityprice` double(11,2) NOT NULL, `dateofproduced` date NOT NULL, `datebaozhi` int(20) NOT NULL, `manufacturer` varchar(30) NOT NULL, `commodityaddress` varchar(30) NOT NULL, `delmark` int(11) NOT NULL, `verifymark` int(10) unsigned zerofill NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; ``` 进货商品表,此表内存储进货商品的信息。Id为此表的主键,从1开始逐渐递增;commodityid是商品编号,是一件商品的独有编号;commodityname是商品名称;commoditynum记录了此商品的数量;commodityprice是此商品的单价;dateofproduced记录了商品的生产日期;datebaozhi记录了商品的保质期;manufacturer为商品的生产厂商;commodityaddress为商品的生产地址;delmark为商品的删除记号,当此商品被删除时,便将此记号置为1;verifymark为核实记号,当核实进货商品时便将此记号置为1。 > 库存商品表 ``` CREATE TABLE `inventory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `inventoryid` varchar(20) NOT NULL, `inventoryname` varchar(20) NOT NULL, `inventorynum` int(11) NOT NULL, `inventoryprice` double NOT NULL, `dataofproduced` varchar(20) NOT NULL, `databaozhi` int(11) NOT NULL, `manufactory` varchar(50) NOT NULL, `inventoryaddress` varchar(50) NOT NULL, `delmark` int(10) unsigned zerofill NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; ``` 库存商品表,结构与进货商品表相似。 > 用户表 ``` CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userid` varchar(50) NOT NULL, `username` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, `realname` varchar(20) NOT NULL, `phonenum` varchar(20) NOT NULL, `address` varchar(50) DEFAULT NULL, `authorityid` int(11) DEFAULT NULL, `delmark` int(10) unsigned zerofill NOT NULL, PRIMARY KEY (`id`), KEY `authorityid` (`authorityid`), CONSTRAINT `authorityid` FOREIGN KEY (`authorityid`) REFERENCES `authority` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; ``` 用户表,用来存储所以用户信息。id是此表的主键,从1开始逐渐递增;userid是注册用户的身份证号;username是用户名;password为密码;realname为注册用户的真实姓名;phonenum为注册用户的电话号码;address为注册用户的住址;authorityid为此账号的权限,此变量为外码,与authority表的id对应;delmark为此账号的删除记号。 > 财务表 ``` CREATE TABLE `finance` ( `id` int(11) NOT NULL AUTO_INCREMENT, `commodityid` varchar(20) NOT NULL, `commodityname` varchar(20) NOT NULL, `commoditynum` int(11) DEFAULT NULL, `commodityprice` double DEFAULT NULL, `totalprice` double(11,2) DEFAULT NULL, `financedata` varchar(20) NOT NULL, `dataofproduced` varchar(20) NOT NULL, `databaozhi` int(11) NOT NULL, `manufacturer` varchar(50) NOT NULL, `commodityaddress` varchar(50) DEFAULT NULL, `delmark` int(10) unsigned zerofill NOT NULL, `verifymark` int(10) unsigned zerofill NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; ``` 财务表,id为主键,commodityid、commodityname、commoditynum、commodityprice、dataofproduced、databaozhi、manufacturercommodityaddress、delmark、verifymark与商品表中的值含义相同;totalprice为一次消费购买此商品的总价钱;financedata为消费此商品的日期; > 权限表 ``` CREATE TABLE `authority` ( `id` int(11) NOT NULL AUTO_INCREMENT, `authorityname` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; ``` 权限表,此表记录了所有账号的权限信息,其中id为此表的主键;authorityname为权限名称,当id值为1时,authorityname为管理员权限;id=2,authorityname值为店员权限;id=3,authorityname值为财务管理员权限。 > 财务核实表 ``` CREATE TABLE `fin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userid` int(11) NOT NULL, `verifydate` varchar(20) NOT NULL, `totalprice` double unsigned NOT NULL, PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `userid` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; ``` 财务核实表,用来存储核实后的财务信息,userid为外键,是与用户表的id值对应;verifydate是核实日期;totalprice是当天核实财务的总价钱。