基于Springboot+Vue的超市管理系统源码

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

文末获取项目下载方式


一、项目背景介绍:

随着社会经济的发展和人们生活水平的提高,超市已成为人们日常购物的主要场所之一。然而,传统的超市管理方式存在诸多问题,如库存管理不精确、销售数据分析困难、员工管理效率低下等。为了提升超市的管理效率和服务质量,许多超市开始引入信息技术,并开发相应的管理系统来辅助管理工作。

本系统的开发旨在利用现代化的软件技术,结合Spring Boot和Vue等流行框架,构建一个功能全面、操作简便的超市管理系统。通过该系统,超市管理者可以实时监控销售情况、管理库存、优化采购计划,并有效地指导员工工作,从而提升超市的经营效益和服务水平。

通过深入研究和实践,本系统旨在为超市管理者提供一套可靠、高效的管理工具,帮助他们更好地应对日常经营中遇到的各种挑战,实现超市管理的智能化、便捷化和精细化。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  6. Redis:redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

三、系统功能模块介绍:

基于Springboot+Vue的超市管理系统源码_第1张图片

四、数据库设计:

1:department(department)

字段名 类型 默认值 列注释
id bigint NULL 主键
name varchar NULL 部门名称
info varchar NULL 描述
state char NULL 状态

2:detail_sale_records(detail_sale_records)

字段名 类型 默认值 列注释
sell_cn varchar NULL 销售订单号
goods_id bigint NULL 商品编号
goods_num bigint NULL 商品数量
goods_price double NULL 销售单价
goods_name varchar NULL 商品名

3:employee(employee)

字段名 类型 默认值 列注释
id bigint NULL 主键
phone varchar NULL 用户名
email varchar NULL 邮箱
address varchar NULL 住址
sex char NULL 性别
password varchar NULL 密码
nick_name varchar NULL 昵称
head_img longtext NULL 头像
state varchar NULL 状态 0:在职 1:离职
isAdmin bit NULL 是否是超管 1:是 0不是
info varchar NULL 描述
createby varchar NULL 创建者
create_time datetime NULL 创建时间
age int NULL 年龄
deptId bigint NULL 部门主键
id_card varchar NULL 身份证号
leave_time datetime NULL 离职时间

4:exchange_point_products_records(exchange_point_products_records)

字段名 类型 默认值 列注释
cn varchar NULL 订单号
goods_id bigint NULL 商品编号
member_id bigint NULL 会员编号
integral bigint NULL 积分
update_time datetime NULL 最近操作时间
updateby varchar NULL 操作者
update_id bigint NULL 操作者编号
state char NULL 状态

5:goods(goods)

字段名 类型 默认值 列注释
id bigint NULL 主键
name varchar NULL 商品名
createby varchar NULL 创建者
create_time datetime NULL 创建时间
category_id bigint NULL 商品分类id
sell_price double NULL 销售价格
purchash_price double NULL 进货价格
update_time datetime NULL 更改时间
updateby varchar NULL 更改者
category_name varchar NULL 分类名
cover_url varchar NULL 商品封面
state char NULL 状态
residue_num bigint NULL 剩余数量
info varchar NULL 备注
sales_volume bigint NULL 销量
inventory bigint NULL 需库存量
shelves bigint NULL 货架上需摆放的数量

6:goods_category(goods_category)

字段名 类型 默认值 列注释
id bigint NULL 主键
name varchar NULL 分类名
info varchar NULL 备注
state char NULL 状态

7:point_products(point_products)

字段名 类型 默认值 列注释
goods_id bigint NULL
goods_name varchar NULL
integral bigint NULL
updateby varchar NULL
update_time datetime NULL
update_id bigint NULL
cover_url varchar NULL
state char NULL

8:store(store)

字段名 类型 默认值 列注释
id bigint NULL 主键
name varchar NULL 仓库名称
address varchar NULL 仓库地址
state char NULL 状态
info varchar NULL 描述

9:supplier(supplier)

字段名 类型 默认值 列注释
cn bigint NULL 编号
name varchar NULL 名称
address varchar NULL 地址
tel varchar NULL 联系电话
info varchar NULL 备注
state char NULL

10:t_detail_store_goods(t_detail_store_goods)

字段名 类型 默认值 列注释
cn varchar NULL
goods_id bigint NULL
goods_num int NULL
goods_name varchar NULL
goods_price double NULL 0:入库 1:出库
type char NULL
createid bigint NULL
create_time datetime NULL
state char NULL 0:正常 1:过期 2:下架
info varchar NULL
expiry_time datetime NULL 过期时间
createby varchar NULL
birth_time datetime NULL 生产时间
state1 char NULL 0:正常 1:删除 2:待处理
store_id bigint NULL
supplier_id bigint NULL 供货商编号
supplier_name varchar NULL 供货商名称
untreated_num bigint NULL 待处理数量

11:t_emp_role(t_emp_role)

字段名 类型 默认值 列注释
id bigint NULL 主键
eid bigint NULL 用户id
rid bigint NULL 角色id

12:t_goods_store(t_goods_store)

字段名 类型 默认值 列注释
goods_id bigint NULL 商品编号
store_id bigint NULL 仓库编号
in_num bigint NULL 入库数数量
residue_num bigint NULL 剩余数量
store_name varchar NULL 仓库名

13:t_member(t_member)

字段名 类型 默认值 列注释
id bigint NULL
name varchar NULL 姓名
phone varchar NULL 手机号
password varchar NULL 密码
email varchar NULL 邮箱
state char NULL 状态
info varchar NULL 描述
integral bigint NULL 会员积分

14:t_menu(t_menu)

字段名 类型 默认值 列注释
id bigint NULL 主键
label varchar NULL 名称
purl varchar NULL 地址
type varchar NULL 类型 0:目录 1 菜单 2 按钮
parent_id bigint NULL 父id
parent_label varchar NULL 父名称
info varchar NULL 描述
state varchar NULL 状态
flag varchar NULL 权限的唯一标识
icon varchar NULL 图标
component varchar NULL 组件路径

15:t_role(t_role)

字段名 类型 默认值 列注释
id bigint NULL 主键
name varchar NULL 角色名
info varchar NULL 描述
state char NULL 状态 0: 正常 -1:停用

16:t_role_menu(t_role_menu)

字段名 类型 默认值 列注释
id int NULL
rid bigint NULL 角色id
mid bigint NULL 菜单id

17:t_sale_records(t_sale_records)

字段名 类型 默认值 列注释
cn varchar NULL
eid bigint NULL
sellway char NULL
sell_time datetime NULL
state char NULL 0:正常 1:删除
info varchar NULL 备注
sellby varchar NULL
sell_total bigint NULL 销售总数量
sell_totalmoney double NULL 销售总金额
type char NULL 0:非会员消费 1:会员消费
member_phone varchar NULL 顾客会员号码

五、功能模块:

登录

销售管理

  • 销售主页
  • 销售记录基于Springboot+Vue的超市管理系统源码_第2张图片
  • 积分兑换记录基于Springboot+Vue的超市管理系统源码_第3张图片

人事管理

  • 部门管理基于Springboot+Vue的超市管理系统源码_第4张图片
  • 员工管理基于Springboot+Vue的超市管理系统源码_第5张图片

个人中心

  • 密码修改
  • 个人资料

库存管理

  • 仓库管理基于Springboot+Vue的超市管理系统源码_第6张图片
  • 出库明细基于Springboot+Vue的超市管理系统源码_第7张图片
  • 入库明细基于Springboot+Vue的超市管理系统源码_第8张图片
  • 供货商信息基于Springboot+Vue的超市管理系统源码_第9张图片
  • 库存统计基于Springboot+Vue的超市管理系统源码_第10张图片

会员管理

  • 会员信息基于Springboot+Vue的超市管理系统源码_第11张图片

系统管理

  • 角色管理基于Springboot+Vue的超市管理系统源码_第12张图片
  • 菜单管理基于Springboot+Vue的超市管理系统源码_第13张图片

商品管理

  • 分类管理基于Springboot+Vue的超市管理系统源码_第14张图片
  • 商品信息基于Springboot+Vue的超市管理系统源码_第15张图片
  • 积分商品基于Springboot+Vue的超市管理系统源码_第16张图片
  • 销售统计基于Springboot+Vue的超市管理系统源码_第17张图片

六、代码示例:

/**
生成验证码
 */
@GetMapping("/captchaImage")
public AjaxResult getCode(HttpServletResponse response) throws IOException
{
 AjaxResult ajax = AjaxResult.success();
 boolean captchaEnabled = configService.selectCaptchaEnabled();
 ajax.put("captchaEnabled", captchaEnabled);
 if (!captchaEnabled)
 {
 return ajax;
 } // 保存验证码信息
 String uuid = IdUtils.simpleUUID();
 String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
 String capStr = null, code = null;
 BufferedImage image = null;
 // 生成验证码
 String captchaType = RuoYiConfig.getCaptchaType();
 if ("math".equals(captchaType))
 {
 String capText = captchaProducerMath.createText();
 capStr = capText.substring(0, capText.lastIndexOf("@"));
 code = capText.substring(capText.lastIndexOf("@") + 1);
 image = captchaProducerMath.createImage(capStr);
 }
 else if ("char".equals(captchaType))
 {
 capStr = code = captchaProducer.createText();
 image = captchaProducer.createImage(capStr);
 }
 redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
 // 转换流信息写出
 FastByteArrayOutputStream os = new FastByteArrayOutputStream();
 try
 {
 ImageIO.write(image, "jpg", os);
 }
 catch (IOException e)
 {
 return AjaxResult.error(e.getMessage());
 }
 ajax.put("uuid", uuid);
 ajax.put("img", Base64.encode(os.toByteArray()));
 return ajax;

}
/**
通用的本地文件上传
@param multipartFile 文件对象@return 文件访问链接URL
 */
@PostMapping("/file")
public SimpleResponse uploadImg(@RequestParam("file") MultipartFile file) {
 // 文件后缀
 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
 File savePathFile = new File(newTomcatFolder);
 if (!savePathFile.exists()) {
 // 若不存在该目录,则创建目录
 savePathFile.mkdir();
 }
 // 通过UUID生成唯一文件名
 String filename = UUID.randomUUID() + "." + suffix;
 try {
 // 将文件保存指定目录
 file.transferTo(new File(newTomcatFolder + filename));
 } catch (Exception e) {
 e.printStackTrace();
 return SimpleResponse.error("保存文件异常");
 }
 // 返回访问链接
 return SimpleResponse.success(newTomcatHost + filename);
}
/**用户登录
 */
@PostMapping("/login")
public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {
 if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {
 return ReturnMsg.error("用户名或密码错误!");
 }
 ManageDTO manageDTO = new ManageDTO();
 manageDTO.setUserName(param.get("username"));
 manageDTO.setPassWord(param.get("password"));
 QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);
 manageDTOQueryWrapper.last("limit 1");
 ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);
 if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");
 Map<String, Object> map = new HashMap<>();
 map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
 map.put("introduction", adminDTOS.getName() + ",你好!");
 map.put("name", adminDTOS.getName());
 map.put("roles", Arrays.asList("admin"));
 map.put("type", adminDTOS.getStatus());
 Map<String, String> returnMap = new HashMap<>();
 String uuid = UUID.randomUUID().toString();
 returnMap.put("token", uuid);
 userInfoMap.put(uuid, JSON.toJSONString(map));
 return ReturnMsg.ok(returnMap);
}

七、项目总结:

通过对基于Springboot+Vue的超市管理系统源码的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于Springboot+Vue的超市管理系统源码的程序时,
我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,
程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,
借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于Springboot+Vue的超市管理系统源码得以正常运行。
基于Springboot+Vue的超市管理系统源码在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:
(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。
(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于Springboot+Vue的超市管理系统源码中的相关网站更贴合。
(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,
同时对服务器上资源占用的比例进行降低。
基于Springboot+Vue的超市管理系统源码的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。
基于Springboot+Vue的超市管理系统源码的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式

链接点击直达:下载链接

你可能感兴趣的:(优质毕业设计,spring,boot,vue.js,后端,超市管理)