目录
4. 创建 tb_vending_machine 表的 SQL 语句
3. 查询所有 Node 数据及其相关的 Region 和 Partner 信息
上篇:“打造智能售货机系统,基于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 点位管理页面
2.4 设备管理
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下载安装: