通用设计实现商品、商城后台管理系统,vue+elementui+springboot前后端分离实现
创始人
2025-06-01 04:22:48
0

一.前言

作者一直都有打算想做一个通用的商品、商城类后台管理系统,这样的好处就是以后需要实现什么系统网站等,可充分复用系统和其逻辑,即使有改动也是在小范围,符合良好的开发思维。

主要的想法就是设计好模块管理功能,数据结构设计符合平常化,主要有几点:

  1. 功能设计,商品、商城类一般都包含这几大模块:首页轮播图、商品分类、推荐分类、商品管理、订单管理、评论管理、管理员管理等;
  2. 配置类设计,配置的东西一般要求可复用,避免重复不必要的开发,并且简单易用,例如一些字典、参数的配置;
  3. 数据库表结构、字段属性设计合理
  4. 接口访问参数等设计合理

以上是作者的一些观点或想法,说起来容易,做起来不难(哈哈哈),但是需要时间,最近作者也是忙得焦皮烂额(吐槽一下,资本家总有理由压榨你,可能ta还觉得你欠ta的,哈哈哈哈

二.项目效果图

登录,还是最平常的登录,token登录
在这里插入图片描述
欢迎页
在这里插入图片描述
个人中心,信息、密码修改等
在这里插入图片描述
管理员管理
在这里插入图片描述
在这里插入图片描述
商品分类,树形列表,一对多层级关系
在这里插入图片描述
在这里插入图片描述
首页轮播图
在这里插入图片描述
推荐分类,一对多关系,绑定商品分类(不能父级分类)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
商品管理,最多上传9张图片,商品详情支持富文本录入,图片等,所属商品分类支持多选,一对多关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置类相关
字典配置,一些日常生活中规范的描述可利用字典来配置实现,也是等价于代码里面的枚举,通过唯一编码code来确定
在这里插入图片描述
在这里插入图片描述
参数配置,与字典类似,通过唯一编码code来确定,支持富文本录入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.正式入手实现,数据表设计

这里看表设计,表之间的联系,自然就明白了其中只逻辑,很关键的也是很重要的作为程序员的一个基础,以下是作者目前设计所涉及的数据表:

-- 系统管理员
CREATE TABLE `admin` (`id` bigint NOT NULL COMMENT '主键',`username` varchar(60) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '登录密码',`real_name` varchar(32) DEFAULT NULL COMMENT '姓名',`gender` tinyint(1) DEFAULT 0 COMMENT '用户性别 0保密 1男 2女',`avatar` varchar(300) DEFAULT NULL COMMENT '头像',`phone` varchar(20) DEFAULT NULL COMMENT '手机',`email` varchar(60) DEFAULT NULL COMMENT '邮箱',`remark` varchar(200) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',`admin_type` tinyint(1) DEFAULT '1' COMMENT '管理员类型 0超级管理员  1普通管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `admin_key_username` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统管理员';-- 商品分类
CREATE TABLE `product_type` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父主键',`type_name` varchar(255) NOT NULL COMMENT '分类名称',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类';-- 首页推荐分类
CREATE TABLE `recommend_type` (`id` bigint NOT NULL COMMENT '主键',`name` varchar(255) NOT NULL COMMENT '分类名称',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类';-- 首页推荐分类行项目
CREATE TABLE `recommend_type_item` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父级主键',`product_type_id` bigint NOT NULL DEFAULT 0 COMMENT '商品分类主键',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类行项目';-- 商品CREATE TABLE `product`
(`id` bigint NOT NULL COMMENT '主键',`product_name` varchar(225) NOT NULL COMMENT '商品名称',`product_des` varchar(225) DEFAULT NULL COMMENT '商品描述',`price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品单价',`original_price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品原价',`material` varchar(225) DEFAULT NULL COMMENT '材料',`pack` varchar(225) DEFAULT NULL COMMENT '包装',`send_word` varchar(225) DEFAULT NULL COMMENT '寄语',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`cover_path` varchar(500) DEFAULT NULL COMMENT '商品封面图片',`img_path` varchar(2000) DEFAULT NULL COMMENT '商品图片,多张英文逗号分割',`content` longtext DEFAULT NULL COMMENT '商品详情内容',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`stock` int NOT NULL DEFAULT 0 COMMENT '商品库存',`sale_num` int NOT NULL DEFAULT 0 COMMENT '商品销量',`version` int NOT NULL DEFAULT 0 COMMENT '版本号',`status` tinyint(1) DEFAULT 1 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='商品';-- 商品所属分类
CREATE TABLE `product_type_item` (`id` bigint NOT NULL COMMENT '主键',`product_id` bigint NOT NULL DEFAULT 0 COMMENT '商品主键',`product_type_id` bigint NOT NULL DEFAULT 0 COMMENT '商品分类主键',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类行项目';-- 系统字典
CREATE TABLE `system_dict` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父主键',`code` varchar(255) NOT NULL COMMENT '字典编码',`dict_key` int DEFAULT NULL COMMENT '字典值',`dict_name` varchar(255) NOT NULL COMMENT '字典名称',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '字典备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统字典';-- 系统参数
CREATE TABLE `system_param` (`id` bigint NOT NULL COMMENT '主键',`code` varchar(255) NOT NULL COMMENT '参数编码,唯一',`title` varchar(255) NOT NULL COMMENT '标题',`content` longtext NOT NULL COMMENT '内容',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统参数';-- 2022-10-19 用户信息
CREATE TABLE `user_info`
(`id` bigint NOT NULL COMMENT '主键',`nickname` varchar(10) NOT NULL COMMENT '用户名称',`phone` varchar(20) NOT NULL COMMENT '手机号',`password` varchar(255) NOT NULL COMMENT '登录密码 加密',`avatar` varchar(225) DEFAULT NULL COMMENT '头像',`gender`  TINYINT(1) DEFAULT 0 COMMENT '性别 0保密 1男 2女',`signature` varchar(225) DEFAULT NULL COMMENT '个性签名',`remark` varchar(225) DEFAULT NULL COMMENT '备注',`status`  TINYINT(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_time` datetime(0) COMMENT '创建时间',`update_time` datetime(0) COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `phone` (`phone`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='用户信息';-- 首页轮播图CREATE TABLE `banner`
(`id` bigint NOT NULL COMMENT '主键',`img_path` varchar(500) DEFAULT NULL COMMENT '图片路径',`route_path` varchar(255) DEFAULT NULL COMMENT '路由路径',`route_param` varchar(255) DEFAULT NULL COMMENT '路由参数(json格式)',`sort`  INT(11) NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(225) DEFAULT NULL COMMENT '备注',`status`  TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='首页轮播图';-- 订单
CREATE TABLE `product_order` (`id` bigint NOT NULL COMMENT '主键',`order_num` varchar(100) DEFAULT NULL COMMENT '订单号',`user_id` bigint NOT NULL COMMENT '所属用户',`pay_amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额',`send_time` datetime DEFAULT NULL COMMENT '送货日期',`send_type` tinyint(1) DEFAULT 1 COMMENT '送货时间类型(系统字典)',`receiver_name` varchar(225) NOT NULL COMMENT '收货人姓名',`receiver_phone` varchar(225) NOT NULL COMMENT '收货人联系电话',`receiver_addr` varchar(225) NOT NULL COMMENT '收货人地址',`receiver_remark` varchar(225) DEFAULT NULL COMMENT '收货人备注',`pay_status` tinyint(1) DEFAULT 1 COMMENT '支付状态 1待支付 2已支付 3支付失败 4已取消',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `order_num` (`order_num`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单';-- 订单行项目
CREATE TABLE `product_order_item` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '订单主键',`order_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订单号',`product_id` bigint NOT NULL COMMENT '商品主键',`product_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称',`product_des` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商品描述',`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品单价',`original_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品原价',`cover_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商品封面图片',`product_num` int DEFAULT '0' COMMENT '商品购买数量',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='订单行项目';-- 商品评论CREATE TABLE `product_comment`
(`id` bigint NOT NULL COMMENT '主键',`user_id` bigint NOT NULL COMMENT '用户主键',`product_id` bigint NOT NULL COMMENT '商品主键',`order_id` bigint NOT NULL COMMENT '订单主键',`order_item_id` bigint NOT NULL COMMENT '订单行项目主键',`content` varchar(1000) DEFAULT NULL COMMENT '评论内容',`img_path` varchar(2000) DEFAULT NULL COMMENT '商品图片,多张英文逗号分割',`status`  TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',`create_time` datetime(0) COMMENT '创建时间',`update_time` datetime(0) COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='商品评论';

四.总结

暂时订单、评论还未实现,后期继续增加菜单管理,管理员角色、权限管理等,有兴趣的同学可以关注一下,期待作者可以快点实现和完善功能,当然,对应此管理后台的商城网站作者已经有了构思,管理后台实现后,即着手去实现商城网站,让它成为一套完整的系统。

有任何问题的朋友可通过博客最后的名片添加作者或留言、私聊都可。
感谢您的阅读~

相关内容

热门资讯

十日谈·法治护航一带一路 | ... 我的法律职业生涯开始于2010年,那一年,我进入一家外国律所实习。在第一个七年里,我参与了许多跨境投...
瀚蓝环境将于6月27日召开股东... 金融界6月2日消息,瀚蓝环境发布公告,将于2025年6月27日召开第1次临时股东大会,网络投票同日进...
资讯┃蓝天彬律师参加瀛和刑辩论... 滥用管辖权链接点进行违法管辖,跨地区抓捕民营企业家以及员工,是当前民营经济保护的焦点问题和痛点问题。...
原创 国... 国际调解院公约的签署仪式于最近在充满活力的香港举行。国际调解院的总部设立在这座国际大都会,参与到这一...
英国商界人士:美国关税政策成为... 新华社伦敦6月2日电(记者郑博非)英国一些商界人士近日在全球英国2025年贸易展会上接受新华社记者采...
一女子立遗嘱给宠物狗留了十几万... 据广州日报报道,近日,广州一名52岁离异女子立遗嘱,划出10余万元留给4只宠物狗,相关报道引发热议。...
全球媒体聚焦|香格里拉对话会:... 为期三天的第22届香格里拉对话会6月1日闭幕。多家外媒认为,会议暴露出美国和欧洲在亚洲问题上的紧张关...
南京开放“以债换房”政策,可直... ⇧点蓝色字关注“互联网联合辟谣平台” 近日,有“南京二手房零首付李经理”“合肥瑶珺房地产代理有限公司...
一公司骗享约61万,被罚885... 近日,国家税务总局重庆市税务局公布两起骗享税费优惠政策典型案件,分别是重庆百子讯科技有限公司违规享受...