“打造智能售货机系统,基于ruoyi微服务版本开源项目“
目录
# 开篇
售货机术语
1. 表设计说明
2. 页面展示
2.1 区域管理页面
2.2 合作商管理页面
2.3 点位管理页面
3. 建表资源
3.1 创建表的 SQL 语句(包含字段备注)
1. Region 表
2. Node 表
3. Partner 表
4. 创建 tb_vending_machine 表的 SQL 语句
3.2 插入数据的 SQL 语句(无变化)
1. 插入 Region 数据
2. 插入 Partner 数据
3. 插入 Node 数据
4. 插入 VendingMachine数据
3.3 查询数据的 SQL 语句(无变化)
1. 查询所有 Region 数据
2. 查询所有 Partner 数据
3. 查询所有 Node 数据及其相关的 Region 和 Partner 信息
4. AI智能化编程
4.1 下载教程
上篇:“打造智能售货机系统,基于ruoyi微服务版本生成基础代码“-CSDN博客
# 开篇
在现代社会中,智能售货机逐渐成为人们日常生活中不可或缺的一部分。为了更好地练手微服务架构,本章将基于RuoYi-Cloud微服务版本,快速搭建一个智能售货机系统。本章的重点是智能售货机系统下的点位管理模块,包含页面演示和建表资源。
注:系统基于ruoyi-cloud微服务版本,从前端到后端再到AI智能化应用;
售货机术语
为了更好地理解和开发智能售货机系统,首先我们需要了解一些相关术语:
-
区域管理
为了更高效地进行经营管理,公司将运营范围划分为若干个逻辑区域。这些区域可以根据地理位置、客户群体等因素进行划分,有助于企业在不同区域内制定更有针对性的经营策略。
-
点位选择
点位指的是智能售货机的具体放置位置。选择合适的点位是售货机运营成功的关键之一。理想的点位应该具备较高的人流量、便利的交通条件以及良好的安全性。
-
未来售货机功能
智能售货机就像一个自动的小店,里面摆满了各种商品。随着技术的发展,未来的智能售货机将具备更多智能化功能,如自动补货、实时库存监控、个性化推荐等,提升用户体验和运营效率。
-
货道设计
货道设计指的是售货机内部的货道布局,可以想象成超市里的那种货架。合理的货道设计可以提高售货机的存储效率和取货便捷性。
通过本章的学习,我们将了解如何基于RuoYi微服务版本,快速搭建一个智能售货机系统,并掌握点位管理模块的实现方法。帮助我们在实践中能够深入理解微服务架构的优势,并积累宝贵的开发经验。
接下来,本编将详细介绍智能售货机系统的点位管理模块,包括页面演示和建表资源的设计与实现。
1. 表设计说明

这张图片展示了一个智能售货机系统中的点位管理模块的结构图。图中包含区域管理、点位管理、合作商管理和设备管理四个部分,每个部分都有对应的数据库表和行为。下面是对这张图的详细分析:
-
区域管理
表名:tb_region
字段:
id:区域的唯一标识region_name:区域名称- 其他区域相关的基础数据字段
区域管理主要负责对公司运营范围内的逻辑区域进行管理,一个区域下可以包含多个点位。
-
点位管理
表名:tb_node
字段:
id:点位的唯一标识node_name:点位名称- 其他点位相关的基础数据字段
region_id:关联的区域IDpartner_id:关联的合作商ID
点位管理主要负责管理售货机的具体放置位置,一个区域下可以包含多个点位,一个合作商下也可以包含多个点位。
-
合作商管理
表名:tb_partner
字段:
id:合作商的唯一标识partner_name:合作商名称- 其他合作商相关的基础数据字段
合作商管理主要负责管理与公司合作的各种合作商,一个合作商下可以包含多个点位和设备。
-
设备管理
表名:tb_vending_machine
字段:
id:设备的唯一标识inner_code:设备内部代码- 其他设备相关的基础数据字段
node_id:关联的点位IDregion_id:关联的区域IDpartner_id:关联的合作商ID
设备管理主要负责对智能售货机设备的管理,一个区域下可以包含多个设备,一个合作商下可以包含多个设备,一个点位下也可以包含多个设备。
-
关系
区域管理通过
region_id与点位管理和设备管理建立关联。点位管理通过
node_id与设备管理建立关联,通过partner_id与合作商管理建立关联。合作商管理通过
partner_id与点位管理和设备管理建立关联。这个结构图展示了智能售货机系统中如何通过模块化管理区域、点位、合作商和设备,使得整个系统的管理更加高效和清晰。
2. 页面展示
2.1 区域管理页面


2.2 合作商管理页面



2.3 点位管理页面



3. 建表资源
3.1 创建表的 SQL 语句(包含字段备注)
1. Region 表
CREATE TABLE tb_region (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '区域 ID',region_name VARCHAR(255) NOT NULL COMMENT '区域名称',create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',create_by VARCHAR(64) COMMENT '创建人',update_by VARCHAR(64) COMMENT '修改人',remark TEXT COMMENT '备注'
) COMMENT '区域表';
2. Node 表
CREATE TABLE tb_node (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '点位 ID',node_name VARCHAR(255) NOT NULL COMMENT '点位名称',address VARCHAR(255) COMMENT '详细地址',business_type VARCHAR(64) COMMENT '业务类型',region_id INT COMMENT '区域 ID',partner_id INT COMMENT '合作商 ID',create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',create_by VARCHAR(64) COMMENT '创建人',update_by VARCHAR(64) COMMENT '修改人',remark TEXT COMMENT '备注',FOREIGN KEY (region_id) REFERENCES tb_region(id),FOREIGN KEY (partner_id) REFERENCES tb_partner(id)
) COMMENT '点位表';
3. Partner 表
CREATE TABLE tb_partner (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '合作商 ID',partner_name VARCHAR(255) NOT NULL COMMENT '合作商名称',contact_person VARCHAR(64) COMMENT '联系人',contact_phone VARCHAR(15) COMMENT '联系电话',profit_ratio INT COMMENT '分成比例',account VARCHAR(64) COMMENT '账号',password VARCHAR(64) COMMENT '密码',create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',create_by VARCHAR(64) COMMENT '创建人',update_by VARCHAR(64) COMMENT '修改人',remark TEXT COMMENT '备注'
) COMMENT '合作商表';
4. 创建 tb_vending_machine 表的 SQL 语句
CREATE TABLE tb_vending_machine (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键 ID',inner_code BIGINT NOT NULL COMMENT '设备编号',channel_max_capacity INT COMMENT '设备容盘',node_id INT COMMENT '点位 ID',addr VARCHAR(100) COMMENT '详细地址',last_supply_time DATETIME COMMENT '上次补货时间',business_type INT COMMENT '商业类型',region_id INT COMMENT '区域 ID',partner_id INT COMMENT '合作商 ID',vm_type_id INT COMMENT '设备型号',vm_status INT COMMENT '设备状态,0:未投放; 1:运营; 2:维修',running_status VARCHAR(100) COMMENT '运行状态',longitude DOUBLE COMMENT '经度',latitude DOUBLE COMMENT '纬度',client_id VARCHAR(50) COMMENT '客户端连接 ID,用于 EMQ 认证',policy_id BIGINT COMMENT '策略 ID',create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',FOREIGN KEY (node_id) REFERENCES tb_node(id),FOREIGN KEY (region_id) REFERENCES tb_region(id),FOREIGN KEY (partner_id) REFERENCES tb_partner(id)
) COMMENT '设备表';
3.2 插入数据的 SQL 语句(无变化)
1. 插入 Region 数据
INSERT INTO tb_region (region_name, create_by, remark)
VALUES
('华东', 'admin', '东部地区'),
('华南', 'admin', '南部地区');
2. 插入 Partner 数据
INSERT INTO tb_partner (partner_name, contact_person, contact_phone, profit_ratio, account, password, create_by, remark)
VALUES
('合作商A', '张三', '12345678901', 20, 'accountA', 'passwordA', 'admin', '优质合作商'),
('合作商B', '李四', '19876543210', 15, 'accountB', 'passwordB', 'admin', '重要合作商');
3. 插入 Node 数据
INSERT INTO tb_node (node_name, address, business_type, region_id, partner_id, create_by, remark)
VALUES
('节点1', '地址1', '旅游区', 1, 1, 'admin', '优质点位'),
('节点2', '地址2', '商场写字楼', 2, 2, 'admin', '主要点位');
4. 插入 VendingMachine数据
INSERT INTO tb_vending_machine (inner_code, channel_max_capacity, node_id, addr, last_supply_time, business_type, region_id, partner_id, vm_type_id, vm_status, running_status, longitude, latitude, client_id, policy_id, create_time, update_time
)
VALUES
-- 设备1,关联 node_id 1
(1000001, 100, 1, '地址1', '2024-06-01 12:00:00', 1, 1, 1, 1, 1, '正常运行', 116.391, 39.907, 'client_1', 1, '2024-06-01 12:00:00', '2024-06-01 12:00:00'),
-- 设备2,关联 node_id 1
(1000002, 100, 1, '地址1', '2024-06-02 13:00:00', 1, 1, 1, 1, 1, '正常运行', 116.392, 39.908, 'client_2', 1, '2024-06-02 13:00:00', '2024-06-02 13:00:00'),
-- 设备3,关联 node_id 1
(1000003, 100, 1, '地址1', '2024-06-03 14:00:00', 1, 1, 1, 1, 1, '正常运行', 116.393, 39.909, 'client_3', 1, '2024-06-03 14:00:00', '2024-06-03 14:00:00'),
-- 设备4,关联 node_id 1
(1000004, 100, 1, '地址1', '2024-06-04 15:00:00', 1, 1, 1, 1, 1, '正常运行', 116.394, 39.910, 'client_4', 1, '2024-06-04 15:00:00', '2024-06-04 15:00:00'),
-- 设备5,关联 node_id 1
(1000005, 100, 1, '地址1', '2024-06-05 16:00:00', 1, 1, 1, 1, 1, '正常运行', 116.395, 39.911, 'client_5', 1, '2024-06-05 16:00:00', '2024-06-05 16:00:00'),
-- 设备6,关联 node_id 2
(1000006, 100, 2, '地址2', '2024-06-06 17:00:00', 2, 2, 2, 2, 1, '正常运行', 117.391, 38.907, 'client_6', 1, '2024-06-06 17:00:00', '2024-06-06 17:00:00'),
-- 设备7,关联 node_id 2
(1000007, 100, 2, '地址2', '2024-06-07 18:00:00', 2, 2, 2, 2, 1, '正常运行', 117.392, 38.908, 'client_7', 1, '2024-06-07 18:00:00', '2024-06-07 18:00:00'),
-- 设备8,关联 node_id 2
(1000008, 100, 2, '地址2', '2024-06-08 19:00:00', 2, 2, 2, 2, 1, '正常运行', 117.393, 38.909, 'client_8', 1, '2024-06-08 19:00:00', '2024-06-08 19:00:00'),
-- 设备9,关联 node_id 2
(1000009, 100, 2, '地址2', '2024-06-09 20:00:00', 2, 2, 2, 2, 1, '正常运行', 117.394, 38.910, 'client_9', 1, '2024-06-09 20:00:00', '2024-06-09 20:00:00'),
-- 设备10,关联 node_id 2
(1000010, 100, 2, '地址2', '2024-06-10 21:00:00', 2, 2, 2, 2, 1, '正常运行', 117.395, 38.911, 'client_10', 1, '2024-06-10 21:00:00', '2024-06-10 21:00:00');
3.3 查询数据的 SQL 语句(无变化)
1. 查询所有 Region 数据
SELECT * FROM tb_region;
2. 查询所有 Partner 数据
SELECT * FROM tb_partner;
3. 查询所有 Node 数据及其相关的 Region 和 Partner 信息
SELECT n.id AS node_id,n.node_name,n.address,n.business_type,r.region_name,p.partner_name,n.create_time,n.update_time,n.create_by,n.update_by,n.remark
FROM tb_node n
JOIN tb_region r ON n.region_id = r.id
JOIN tb_partner p ON n.partner_id = p.id;
4. AI智能化编程

如图中使用:输入代码表述,使用ai智能化编程;
4.1 下载教程
idea中搜索tongyi;

下载后使用阿里云账号登录使用;

vscode下载安装:

相关文章:
“打造智能售货机系统,基于ruoyi微服务版本开源项目“
目录 # 开篇 售货机术语 1. 表设计说明 2. 页面展示 2.1 区域管理页面 2.2 合作商管理页面 2.3 点位管理页面 3. 建表资源 3.1 创建表的 SQL 语句(包含字段备注) 1. Region 表 2. Node 表 3. Partner 表 4. 创建 tb_vending_machine 表的 S…...
LeetCode347:前K个高频元素
题目描述 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 解题思想 使用优先队列 priority_queue<Type, Container, Functional> Type 就是数据类型,Container 就是容器类型(C…...
2.线上论坛项目
一、项目介绍 线上论坛 相关技术:SpringBootSpringMvcMybatisMysqlSwagger项目简介:本项目是一个功能丰富的线上论坛,用户可编辑、发布、删除帖子,并评论、点赞。帖子按版块分类,方便查找。同时,用户可以…...
Java面试题:讨论synchronized关键字和java.util.concurrent包中的同步工具,如Lock和Semaphore
在 Java 中,synchronized 关键字和 java.util.concurrent 包中的同步工具都是用来控制多线程环境下的并发访问,以防止数据竞争和确保线程安全。下面是对 synchronized 关键字和 java.util.concurrent 包中的一些同步工具的讨论,包括它们的特点…...
酱香型白酒派系介绍
酱香型白酒作为中国传统白酒的重要流派,以其独特的酱香和复杂的酿造工艺而著称。在酱香型白酒中,形成了多个派系,各具特色。 以下是关于北派、茅派、川派和黔派等各个派系的详细介绍。 一、北派 地理位置:主要产于秦岭和淮河以…...
编译chamfer3D报错
python setup.py install编译chamfer3D报错 出现nvcc fatal : Unsupported gpu architecture ‘compute_86‘的问题,是因为显卡与cuda版本支持的算力不匹配。 nvcc fatal : Unsupported gpu architecture ‘compute_86’ ninja: build stopped: subcommand failed. …...
BuildConfig类找不到,BuildConfig.java类不在编译加载路径问题解决
今天用buildConfigField设置编译时常量遇到了问题,访问不到BuildConfig类,import导包也找不到类,具体设置如下: defaultConfig {applicationId com.sample.abcminSdk 28targetSdk 33versionCode getVerInt()//1versionName getVer…...
海外版coze前端代码助手
定位 解决前端同事的开发问题 参数配置 测试 支持 最屌的大模型及语音播报。 体验地址 海外版前端代码助手 需要魔法才能体验油...
python pyautogui实现图片识别点击失败后重试
安装库 pip install Pillow pip install opencv-python confidence作用 confidence 参数是用于指定图像匹配的信度(或置信度)的,它表示图像匹配的准确程度。这个参数的值在 0 到 1 之间,数值越高表示匹配的要求越严格。 具体来…...
怎么看电脑实时充电功率
因为我想测试不同的充电器给电脑充电的速度,所以就想找一款软件可以看电脑当前充电功率的软件,我给一个图 直接搜索就可以下载了,charge rate就是功率,这里是毫瓦,换算单位是 1000mw1w 所以我这里充电功率是65w&…...
Qt 实战(4)信号与槽 | 4.2、自定义信号与槽
文章目录 一、自定义信号与槽1、自定义信号2、自定义槽3、连接信号与槽4、总结 前言: 在Qt框架中,信号(signals)和槽(slots)机制是对象间通信的核心。这种机制允许对象在特定事件发生时发出信号,…...
Android开发系列(六)Jetpack Compose之Box
Box是一个用来组合和控制子元素布局的组件。它可以在一个矩形区域内排列一个或多个子元素,并根据所提供的参数来控制它们的位置、大小和样式。 Box的功能类似传统的FrameLayout。 下面通过示例了解Box的使用方法,首先看一个最简单的示例,如下…...
51单片机STC89C52RC——4.1 独立按键(数码管显示按键值)
目录 目录 目的 一,STC单片机模块 二,矩阵按键模块 2.1 针脚定义 编辑 2.2 矩阵按键位置 2.3 如何理解按键按下后针脚的高低电平 2.3.1 错误理解1 2.3.2 错误理解2 2.3.3 正确判定按下的是那个按键的逻辑 2.3.4 判定按键按下的依次扫描程…...
解决双击bootstrap.bat没有生成b2.exe文件
双击bootstrap.bat但是并没有没有生成b2.exe文件,会报如下错误: "cl" 不是内部或外部命令,也不是可运行的程序 或批处理文件。D:\cppsoft\boost_1_85_0\tools\build\src\engine>dir *.exe 驱动器 D 中的卷是 Data 卷的序列号是…...
AI穿戴设备是未来手机的终结者?中国AI商业化的未来预测
AI技术的发展正处于商业化应用的关键阶段,而中国在互联网时代已凭借商业化应用逆袭。AI算法大模型虽强大,但真正普惠民众需与设备深度结合。穿戴式智能设备就成为了新战场,AI算法与穿戴设备结合能释放更大工作效率。私人助理AI将成趋势&#…...
FPGA+Nvidia Orin NX+AI 异构视频图像处理开发平台在高端医疗和工业检测的应用,支持定制,支持国产化
FPGAGPU 异构架构视频图像处理开发平台,它结合了 AMD Zynq UltraScale MPSoC(FPGA)与 NVIDIA Jetson Orin NX(GPU)的强大功能,能够应用于对图像精准度和实时性有着严苛要求的行业领域。 Zynq UltraScale MP…...
2000-2023年各省名义GDP、实际GDP、GDP平减指数数据(含原始数据+计算过程+计算结果)(以2000年为基期)
2000-2023年各省名义GDP、实际GDP、GDP平减指数数据(含原始数据计算过程计算结果)(以2000年为基期) 1、时间:2000-2023年 2、范围:31省 3、指标:名义GDP、国内生产总值指数、实际GDP、GDP平减…...
python学习—字典(Dictionary)
系列文章目录 python学习—列表和元组 python学习—循环语句-控制流 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停,游戏抽签抽奖 python学习—合并多个Ex…...
鸿蒙开发:【组件启动规则(FA模型)】
组件启动规则(FA模型) 启动组件是指一切启动或连接应用组件的行为: 启动PageAbility、ServiceAbility,如使用startAbility()等相关接口。连接ServiceAbility、DataAbility,如使用connectAbility()、acquireDataAbili…...
网络编程5----初识http
1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同,它是“一问一答”形式的,所以要分为请求和响应两部分看待,同时,请求和响应的格式是不同的,我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…...
Linux内核构建系统:Makefile、Kconfig与.config解析
1. Linux内核构建系统核心组件解析1.1 内核构建系统概述Linux内核作为复杂的开源项目,其构建系统由三个关键组件构成:Makefile、Kconfig和.config文件。这三个组件协同工作,构成了内核模块化构建的基础架构。1.1.1 组件类比关系Kconfig&#…...
SEO_避开这些常见误区,让你的SEO效果翻倍
<h2>避开这些常见误区,让你的SEO效果翻倍</h2> <p>在当今的互联网时代,搜索引擎优化(SEO)已经成为了每个网站和博客运营者必须掌握的技能之一。许多人在进行SEO时却会犯一些常见的错误,这些错误不仅…...
深入浅出:图解程序控制、中断和DMA的工作原理与性能差异
深入浅出:图解程序控制、中断和DMA的工作原理与性能差异 想象你在一家餐厅点餐:第一种方式是服务员每隔30秒就来问你"好了吗";第二种是你按服务铃,服务员立刻过来;第三种是厨房直接把菜送到你桌上——这正是…...
智慧医疗泡罩药板药片缺失缺陷检测数据集VOC+YOLO格式1300张3类别
注意数据集中图片大约500张是原图剩余为增强图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1300标注数量(xml文件个数):1300…...
Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令)
Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令) 在Linux服务器运维的日常工作中,有些故障排查点往往被工程师们忽视,直到问题爆发才追悔莫及。本文将揭示五个最容易被忽略但至关重要的排查技巧ÿ…...
vLLM-v0.17.1实战案例:HuggingFace模型无缝接入+多LoRA高效推理
vLLM-v0.17.1实战案例:HuggingFace模型无缝接入多LoRA高效推理 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,由加州大学伯克利分校的天空计算实验室(Sky Computing Lab)开发,现已发展为社区驱动的开源项目。…...
收藏!AI大模型产品经理学习路线(2026最新),从零基础到专家,收藏这一篇就够
一、AI产品经理和和通用型产品经理的异同: 市面上不同的公司对产品经理的定位有很大的差别,一名合格的产品经理是能对软件产品整个生命周期负责的人。 思考框架相同: AI产品经理和通用型软件产品经理的底层思考框架是一样的,都是…...
【CPython 3.13无锁并发白皮书】:全球首批实测团队披露的4类典型崩溃场景与修复参数
第一章:Python 无锁 GIL 环境下的并发模型配置概览Python 的全局解释器锁(GIL)本质上限制了 CPython 中多线程对 CPU 密集型任务的并行执行能力。然而,“无锁 GIL 环境”并非指 GIL 被移除,而是指通过绕过 GIL 依赖的并…...
C++ 模板与泛型编程入门
C 模板与泛型编程入门 模板把类型(及非类型参数)作为参数,在编译期由编译器按用法生成具体函数或类,是 C 泛型编程与 STL 的基础。下文以 Max、简单类模板、选择排序及可定制比较器为例说明常见写法;排序复杂度为 (O(…...
《B4410 [GESP202509 一级] 金字塔》
题目背景 对应的选择、判断题:https://ti.luogu.com.cn/problemset/1189 题目描述 金字塔由 n 层石块垒成。从塔底向上,每层依次需要 nn,(n−1)(n−1),⋯,22,11 块石块。请问搭建金字塔总共需要多少块石块? 输入格式 一行,一…...
