“打造智能售货机系统,基于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 请求 在介绍请求之前&…...
如何高效构建视频数据集:video2frame终极实战指南
如何高效构建视频数据集:video2frame终极实战指南 【免费下载链接】video2frame Yet another easy-to-use tool to extract frames from videos, for deep learning and computer vision. 项目地址: https://gitcode.com/gh_mirrors/vi/video2frame 在计算机…...
开发者专属提示词库:提升AI协作效率的实战指南
1. 项目概述:一个为开发者量身定制的提示词宝库如果你是一名开发者,无论是前端、后端、运维还是算法工程师,我相信你都或多或少地接触过像 ChatGPT 这类大型语言模型。它们能写代码、解 Bug、解释概念,甚至帮你设计架构。但很多时…...
LLM应用快速演示框架:从架构解析到智能体开发的实战指南
1. 项目概述:一个面向开发者的LLM应用快速演示框架最近在GitHub上闲逛,发现了一个名为wronai/llm-demo的项目,点进去一看,瞬间觉得眼前一亮。这可不是又一个简单的“Hello World”式的大语言模型调用示例,而是一个结构…...
基于Kubernetes Lease构建分布式部署锁:解决CI/CD环境下的资源竞争
1. 项目概述:从“clawfight”看一场被遗忘的社区技术博弈看到“2019-02-18/clawfight”这个标题,很多人的第一反应可能是困惑。它不像一个标准的软件项目名,没有清晰的版本号,也没有指明具体的技术栈。但恰恰是这种看似随意的命名…...
Arm Iris组件参数化建模与调试实践
1. Arm Iris组件概述与核心价值Arm Iris组件是Fast Models仿真平台中的关键模块,它为芯片设计验证和软件开发提供了高度参数化的虚拟原型环境。作为一名长期从事Arm架构开发的工程师,我发现Iris组件的设计理念完美体现了"配置即硬件"的思想——…...
多智能体强化学习环境PettingZoo:从核心概念到工程实践
1. 项目概述:从零理解PettingZoo如果你正在寻找一个能让你快速上手、高效构建多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)实验环境的工具,那么Farama Foundation旗下的PettingZoo项目,绝对是你绕不开…...
CI/CD安全最佳实践:保护软件交付流程
CI/CD安全最佳实践:保护软件交付流程 一、CI/CD安全最佳实践概述 1.1 CI/CD安全最佳实践的定义 CI/CD安全最佳实践是指在持续集成和持续部署流程中实施的安全策略和措施。它涵盖代码提交、构建、测试、部署等各个阶段的安全防护。 1.2 CI/CD安全最佳实践的价值 安全…...
基于React的记忆管理UI组件库:openclaw-memory-ui实战指南
1. 项目概述:一个为记忆管理而生的开源UI组件库最近在折腾一个需要处理大量结构化记忆数据的项目,比如知识库、笔记应用或者智能助手的历史对话管理。这类应用的核心痛点在于,数据本身是复杂的、多维的,但传统的列表或表格展示方式…...
AI控制协议标准(ACPS):构建智能体与工具交互的通用语言
1. 项目概述与核心价值最近在开源社区里,一个名为“AI-Control-Protocol-Standard”的项目引起了我的注意。这个由DaibinThink发起的项目,名字听起来就很有分量——“AI控制协议标准”。乍一看,你可能觉得这又是一个关于AI模型如何被调用的技…...
Cursor编辑器状态快照插件开发:一键保存与恢复工作区
1. 项目概述:一个专为开发者设计的“后悔药”如果你是一名重度使用 Cursor 编辑器的开发者,那么你一定经历过这样的场景:在沉浸式编码时,为了快速定位或修改,你可能会频繁地使用CtrlClick跳转到函数定义,或…...
