目录
# 开篇
售货机术语
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下载安装: