2
0
Files
build.wfc/docs/02-design/02-WANFi软件系统设计文档v1.4.md
2025-02-26 11:10:52 +08:00

68 KiB
Raw Blame History

修订记录

修订日期 版本号 修订内容 修订人 备注
2024/11/13 V1.0 初稿 张树忠/李昌/蔡育超
2024/11/13 V1.1 完善架构设计和描述 张树忠
2024/11/30 V1.2 增加计费和套餐设计 张树忠
2025/02/17 V1.3 架构修改,去掉多余微服务 张树忠
2025/02/24 V1.4 增加数据库表设计,业务流程图 张树忠

WANFi软件系统设计文档

1. 需求分析

WANFi控制平台用于提供给运营商用于AP设备的管理监控并对终端用户进行管理和计费管理。具体的业务需求概括如下

1.1. 使用对象定义

a) "客户"指购买AP设备的B端公司或组织包含有多个管理和运维人员

b) "用户"指使用改B端提供的的WiFi服务的C端用户一个用户只有一个账号一个账号可以使用多个终端设备

1.2. 平台需求定义

a) 客户平台为B端客户提供的控制和费用管理界面用于AP的远程管理配置运行检测根据API 文档逐一实现 Omada平台上的功能管理用户数据、设备信息和计费信息

b) 用户平台为C端客户提供的个人信息管理用于C端用户缴费以及个人信息管理终端设备管理

c) 客户平台包含用户平台的信息,但用户平台无法获取客户平台信息

1.3. 商业模式定义

a. 客户服务用户(比如运营商):包含完整的客户平台和用户平台功能

b. 客户服务设备(比如农场采购,直接用于农场智能设备,没有用户参与):只需要开发客户平台,以及客户平台中的设备信息管理,无需用户信息管理以及缴费系统

c. 二者在开发系统上和数据库结构上尽可能兼容,保证一套系统可以为二者服务

d. 费用以设备为维度进行管理,即通过数据库管理每一个设备的流量,使用时长等该需求是指一个用户/账号下的多个设备可以单独计费??

e. 费用以用户为维度进行收费,每个用户会收到一个账单,包含账户下设备数量,使用流量,使用时长等

客户平台和用户平台数据库关系图

2. 系统架构设计

2.1. 架构说明

a) 微服务架构

b) B/S模式

c) 支持本地和云部署

2.2. 开发运行环境和技术栈

a) 操作系统:

Ubuntu 22.04

b) 数据库:

MySQL 5.7
  Redis 7.4.2
  MongoDB 7.0.15 用于Omada SDN Controller
  ElasticsSearch 7.1 用于大数据文本的查询 (暂未使用)

c) 后端开发语言:

Java 1.8
  SprintgBoot 2.7
  SpringCloud 2021.0.8
  SpringCloudAlibaba 2021.0.5.0

d) 前端开发语言:

HTML+CSS,
  Vue.js 3.4.27
  AntD 4.2.2

3. 业务流程

3.1. 用户登录注册

  • 用户注册,需填写个人信息,邮箱,手机号,实名认证等
  • 用户连接WANFi时通过网页进行登录
  • 登陆后后端API获取当前连接设备的MAC地址如果该设备未被绑定到数据库中则由后端API将当前设备绑定到数据库中

3.2. 终端设备访问控制

  • 终端设备连接AP热点门户拦截
  • 用户登录判断是否充值有效套餐或者余额是否为0
  • 如果存在套餐流量不为0或者余额部位0则授权终端设备Internet连接准入
  • 用户平台定时监测终端设备上网流量并实时计算套餐流量或余额
  • 如果套餐流量为0且余额为0则去授权终端设备Internet接入权限

4. 数据库设计

4.1. 客户数据库表设计

系统采用 MySQL 数据库,字符集为 utf8mb4主要涉及系统配置、部门、设备、数据字典、定时任务、日志、菜单、角色以及用户管理等模块。

4.1.1. 数据库架构

  • 数据库名称wfc_system_db
  • 字符集utf8mb4
  • 校对规则utf8mb4_general_ci

4.1.2. 客户平台表总览

表名 主键 备注说明 说明
sys_config config_id 参数配置表 存储系统参数配置信息
sys_dept dept_id 部门表 存储部门信息
sys_device id 客户平台-设备表 存储设备信息
sys_dict_data dict_code 字典数据表 存储字典数据
sys_dict_type dict_id 字典类型表 存储字典类型
sys_job job_id 定时任务调度表 存储定时任务调度信息
sys_job_log job_log_id 定时任务调度日志表 存储定时任务调度日志信息
sys_logininfor info_id 系统访问记录 存储系统访问记录
sys_menu menu_id 菜单权限表 存储菜单权限信息
sys_oper_log oper_id 操作日志记录 存储操作日志记录
sys_post post_id 岗位信息表 存储岗位信息
sys_role role_id 角色信息表 存储角色信息
sys_role_dept role_id, dept_id 角色和部门关联表 存储角色和部门的关联信息
sys_role_menu role_id, menu_id 角色和菜单关联表 存储角色和菜单的关联信息
sys_user user_id 用户信息表 存储用户信息
sys_user_post user_id, post_id 用户与岗位关联表 存储用户与岗位的关联信息
sys_user_role user_id, role_id 用户和角色关联表 存储用户和角色的关联信息

4.1.3 表结构设计

参数配置表 - sys_config

用于存储全局系统配置参数。

列名 数据类型 约束 说明
config_id int(11) PRIMARY KEY``AUTO_INCREMENT 参数主键
config_name varchar(100) DEFAULT '' 参数名称
config_key varchar(100) DEFAULT '' 参数键名
config_value varchar(500) DEFAULT '' 参数键值
config_type char(1) DEFAULT 'N' 系统内置标识Y表示内置, N表示非内置
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

部门表 - sys_dept

存储各部门信息,支持层级结构。

列名 数据类型 约束 说明
dept_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 部门 ID
parent_id bigint(20) DEFAULT 0 父部门 ID
ancestors varchar(50) DEFAULT '' 祖级列表
dept_name varchar(30) DEFAULT '' 部门名称
order_num int(11) DEFAULT 0 显示顺序
leader varchar(20) NULLABLE 负责人
phone varchar(11) NULLABLE 联系电话
email varchar(50) NULLABLE 邮箱
status char(1) DEFAULT '0' 部门状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在2删除
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

系统设备表 - sys_device

存储客户平台中设备的各项信息。

列名 数据类型 约束 & 默认值 说明
id bigint(20) PRIMARY KEY``AUTO_INCREMENT 主键
site_id varchar(64) NULLABLE 站点 ID
mac varchar(64) NULLABLE MAC 地址
name varchar(64) NULLABLE 设备名称
type varchar(32) NULLABLE 类型
subtype varchar(32) NULLABLE 子类型
device_series_type varchar(32) NULLABLE 产品系列类型
model varchar(64) NULLABLE 设备型号
ip varchar(64) NULLABLE IP 地址
ipv6s varchar(255) NULLABLE IPv6 地址(可能多个)
uptime varchar(64) NULLABLE 在线时长
status int(11) NULLABLE 状态
last_seen bigint(20) NULLABLE 最后在线时间
cpu_util int(11) NULLABLE CPU 利用率
mem_util int(11) NULLABLE 内存利用率
sn varchar(64) NULLABLE 序列号
license_status int(11) NULLABLE 授权状态
tag_name varchar(64) NULLABLE Tag Name
uplink_device_mac varchar(64) NULLABLE Uplink Device Mac
uplink_device_name varchar(64) NULLABLE Uplink Device Name
uplink_device_port varchar(64) NULLABLE Uplink Device Port
link_speed int(11) NULLABLE Link Speed
duplex int(11) NULLABLE Duplex
switch_consistent tinyint(1) NULLABLE Switch Consistent
public_ip varchar(64) NULLABLE Public IP
firmware_version varchar(64) NULLABLE Firmware Version
del_flag tinyint(1) NULLABLE 删除标志0存在 1删除
create_by bigint(20) NULLABLE 创建人
create_time datetime NULLABLE 创建时间
update_by bigint(20) NULLABLE 更新人
update_time datetime NULLABLE 更新时间

字典相关

字典数据表 - sys_dict_data

存储系统使用的字典数据,包含常用的选项列表。

列名 数据类型 约束 说明
dict_code bigint(20) PRIMARY KEY``AUTO_INCREMENT 字典编码
dict_sort int(11) DEFAULT 0 字典排序
dict_label varchar(100) DEFAULT '' 字典标签
dict_value varchar(100) DEFAULT '' 字典键值
dict_type varchar(100) DEFAULT '' 字典类型
css_class varchar(100) NULLABLE 样式属性(扩展)
list_class varchar(100) NULLABLE 列表显示样式
is_default char(1) DEFAULT 'Y' 是否默认Y/N
status char(1) DEFAULT '0' 状态0正常 1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

字典类型表 - sys_dict_type

存放字典分组及类型定义。

列名 数据类型 约束 说明
dict_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 字典主键
dict_name varchar(100) DEFAULT '' 字典名称
dict_type varchar(100) DEFAULT ''``UNIQUE 字典类型标识
status char(1) DEFAULT '0' 状态0正常 1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

定时任务相关

定时任务表 - sys_job

存储各定时任务的配置信息。

列名 数据类型 约束 说明
job_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 任务ID
job_name varchar(64) NOT NULL, DEFAULT '' 任务名称
job_group varchar(64) NOT NULL, DEFAULT 'DEFAULT' 任务组名称
invoke_target varchar(500) NOT NULL 调用目标字符串
cron_expression varchar(255) DEFAULT '' CRON 表达式
misfire_policy varchar(20) DEFAULT '3' 错误处理策略1立即执行 2执行一次 3放弃执行
concurrent char(1) DEFAULT '1' 是否并发执行0允许、1禁止
status char(1) DEFAULT '0' 任务状态0正常 1暂停
create_by varchar(64) NULLABLE 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) NULLABLE 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注信息

记录示例包括 Omada 同步任务及初始化任务。

定时任务日志表 - sys_job_log

记录任务执行的日志信息。

列名 数据类型 约束 说明
job_log_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 任务日志ID
job_name varchar(64) NOT NULL 任务名称
job_group varchar(64) NOT NULL 任务组名称
invoke_target varchar(500) NOT NULL 调用目标字符串
job_message varchar(500) 可空 日志信息
status char(1) DEFAULT '0' 执行状态0成功、1失败
exception_info varchar(2000) DEFAULT '' 异常信息
create_time datetime NULLABLE 执行时间

系统访问记录 - sys_logininfor

记录系统用户的登录访问情况。

列名 数据类型 约束 说明
info_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 访问记录主键
user_name varchar(50) DEFAULT '' 用户账号
ipaddr varchar(128) DEFAULT '' 登录 IP 地址
status char(1) DEFAULT '0' 登录状态0成功1失败
msg varchar(255) DEFAULT '' 提示信息
access_time datetime NULLABLE 访问时间

辅助索引包括 status 及 access_time。


菜单权限表 - sys_menu

存储系统菜单信息以及相应的访问权限标识。

列名 数据类型 约束 说明
menu_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 菜单 ID
menu_name varchar(50) NOT NULL 菜单名称,如 'menu.system.management'
parent_id bigint(20) DEFAULT 0 父级菜单 ID
order_num int(11) DEFAULT 0 显示顺序
path varchar(200) DEFAULT '' 路由地址
component varchar(255) DEFAULT NULL 组件路径
menu_type char(1) 类型M:目录, C:菜单, F:按钮)
visible char(1) DEFAULT '0' 菜单显示状态0显示1隐藏
status char(1) DEFAULT '0' 菜单状态0正常1停用
perms varchar(100) DEFAULT NULL 权限标识
icon varchar(100) DEFAULT '#' 菜单图标
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT '' 备注
name varchar(30) DEFAULT NULL 菜单 key作为前端标识使用

记录插入部分展示了系统管理、工具、账户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理以及多项操作权限的菜单。


操作日志记录 - sys_oper_log

记录用户在系统中的各项操作,用于安全审计。

列名 数据类型 约束 说明
oper_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 日志主键
title varchar(50) DEFAULT '' 模块标题
business_type int(11) DEFAULT 0 业务类型0其它、1新增、2修改、3删除
method varchar(100) DEFAULT '' 方法名称
request_method varchar(10) DEFAULT '' 请求方式
oper_name varchar(50) DEFAULT '' 操作人员
dept_name varchar(50) DEFAULT '' 部门名称
oper_url varchar(255) DEFAULT '' 请求 URL
oper_ip varchar(128) DEFAULT '' IP 地址
oper_location varchar(255) DEFAULT '' 操作地点
oper_param varchar(2000) DEFAULT '' 请求参数
json_result varchar(2000) DEFAULT '' 返回结果
status int(11) DEFAULT 0 操作状态0正常、1异常
error_msg varchar(2000) DEFAULT '' 错误消息
oper_time datetime NULLABLE 操作时间
cost_time bigint(20) DEFAULT 0 消耗时间(毫秒)

附带建立了 business_type、status 及 oper_time 的索引。


岗位信息表 - sys_post

记录系统中定义的岗位信息。

列名 数据类型 约束 说明
post_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 岗位 ID
post_code varchar(64) NOT NULL 岗位编码
post_name varchar(50) NOT NULL 岗位名称
post_sort int(11) NOT NULL 显示顺序
status char(1) NOT NULL 状态0正常、1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT NULL 备注

示例记录定义了 administrator、manager、hr 及 user 岗位。


用户信息表 - sys_user

存储用户账号及相关信息,实现系统登录和管理。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 用户 ID
dept_id bigint(20) NULLABLE 所属部门 ID
user_name varchar(30) NOT NULL 用户账号
nick_name varchar(30) NOT NULL 用户昵称
user_type varchar(2) DEFAULT '00' 用户类型例如00系统用户
email varchar(50) DEFAULT '' 用户邮箱
phonenumber varchar(11) DEFAULT '' 手机号码
sex char(1) DEFAULT '0' 性别0男、1女、2未知
avatar varchar(100) DEFAULT '' 头像地址
password varchar(100) DEFAULT '' 密码(通常加密存储,如 bcrypt 结果)
status char(1) DEFAULT '0' 帐号状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在、2删除
login_ip varchar(128) DEFAULT '' 最后登录IP
login_date datetime NULLABLE 最后登录时间
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT NULL 备注

系统默认记录了超级管理员super、管理员admin等用户信息。


用户与岗位关联表 - sys_user_post

用于关联用户与其所属岗位。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY (联合主键) 用户 ID
post_id bigint(20) PRIMARY KEY (联合主键) 岗位 ID

用户与角色关联表 - sys_user_role

用于关联用户与分配的角色,实现权限管理。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY (联合主键) 用户 ID
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID

插入示例中,用户 1 分配了角色 1Supervisor用户 2 分配了角色 2Administrator


角色信息表 - sys_role

定义系统内各角色及其基本属性。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY``AUTO_INCREMENT 角色 ID
role_name varchar(30) NOT NULL 角色名称
role_key varchar(100) NOT NULL 角色权限字符串(作为 RBAC 标识)
role_sort int(11) 可空 显示顺序
data_scope char(1) DEFAULT '1' 数据权限范围(例如全部、自定、部门等)
menu_check_strictly tinyint(1) DEFAULT 1 菜单树选择时是否关联显示
dept_check_strictly tinyint(1) DEFAULT 1 部门树选择时是否关联显示
status char(1) NOT NULL 角色状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在、2删除
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

示例中定义了 Supervisor、Administrator 及 User 角色。


角色与部门关联表 - sys_role_dept

用于关联角色和部门,控制数据权限。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID
dept_id bigint(20) PRIMARY KEY (联合主键) 部门 ID

角色与菜单关联表 - sys_role_menu

用于关联角色与菜单,实现系统权限的控制。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID
menu_id bigint(20) PRIMARY KEY (联合主键) 菜单 ID

4.1.4. 关系与数据流

  • 用户-角色:通过 sys_user_role 表实现,一个用户可以拥有多个角色。
  • 角色-菜单:通过 sys_role_menu 表关联角色与菜单,实现权限分配。
  • 用户-岗位:通过 sys_user_post 实现,方便对岗位信息管理。
  • 角色-部门:通过 sys_role_dept 表实现角色对部门数据的访问控制。
  • 数据字典sys_dict_type 定义字典类型,sys_dict_data 存储各字典项,系统中各模块均可引用以保证数据一致性。

4.2. 用户平台数据库表设计

4.2.1. 数据库架构

  • 数据库名称wfc_user_db
  • 字符集utf8mb4
  • 校对规则utf8mb4_general_ci

4.2.2. 用户平台表总览


表名 主键 备注说明 说明
u_account id 用户平台-账户表 存储用户账户信息(余额、套餐、流量、时长等)
u_account_package id 用户平台-账户套餐表 存储账户对应的套餐信息,如套餐流量、时长、有效期等
u_bill id 用户平台-账单表 存储账单记录,包括金额、状态、支付信息等
u_bill_rule id 用户平台-计费规则表 存储计费规则,包括价格、流量、单位及状态等
u_cdr id 用户平台_用户话单表 存储用户话单数据,如流量、速率、数据包信息等
u_cdr_history id 用户平台_话单历史表 存储详细话单历史记录,包括时长、流量等
u_client id 用户平台_用户设备表 存储用户设备信息如设备名称、mac 地址、设备类型等
u_device id 用户平台_AP设备表 存储 AP无线接入点设备信息
u_order id 用户平台-订单表 存储订单信息,包括订单编号、订单金额及状态等
u_package id 用户平台-套餐表 存储套餐信息,如套餐价格、流量、时长、设备数等
u_payment id 用户平台-支付表 存储支付相关信息,包括支付名称、类型、网关、证书等
u_rate_limit id 用户平台-带宽限速表 存储限速设置,如下行/上行限速及启用状态
u_recharge recharge_id 用户平台_用户信息表 存储充值信息,关联 u_user 表;外键约束确保用户存在
u_user user_id 用户平台_用户信息表 存储用户基本信息,包括用户名、昵称、邮件、密码等
u_kyc kyc_id 用户平台_用户信息表 存储实名认证信息KYC包括真实姓名、证件类型、状态等

4.2.2. 表结构设计


用户账号信息 - u_account

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
user_id bigint(20) YES NULL 用户ID
balance decimal(18,4) YES NULL 余额
balance_used decimal(18,4) YES NULL 余额已使用
package_id bigint(20) YES NULL 套餐ID
start_time datetime YES NULL 开始时间
end_time datetime YES NULL 结束时间
traffic bigint(20) YES NULL 流量
traffic_used bigint(20) YES NULL 流量已使用
duration bigint(20) YES NULL 时长
duration_used bigint(20) YES NULL 时长已使用
client_num int(11) YES NULL 在线设备数
client_num_used int(11) YES NULL 在线设备数已使用
expired_time datetime YES NULL 失效时间
package_name varchar(64) YES NULL 套餐名称
period_num int(11) YES NULL 有效期数
period_type tinyint(4) YES NULL 有效期类型
price decimal(18,4) YES NULL 价格
remark varchar(500) YES NULL 备注
rate_limit_enable tinyint(1) YES 0 带宽是否限制
traffic_enable tinyint(1) YES 0 流量是否限制
duration_enable tinyint(1) YES 0 时长是否限制
client_num_enable tinyint(1) YES 0 在线设备数是否限制
rate_limit_name varchar(32) YES NULL 限速名称
down_limit bigint(20) YES NULL 下行限速
down_limit_enable tinyint(1) YES 0 下行限速启用
up_limit bigint(20) YES NULL 上行限速
up_limit_enable tinyint(1) YES 0 上行限速启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

账号与套餐关系表 - u_account_package

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
account_id bigint(20) YES NULL 账户ID
package_id bigint(20) YES NULL 套餐ID
traffic bigint(20) YES NULL 流量
duration bigint(20) YES NULL 时长
client_num int(11) YES NULL 在线设备数
expired_time datetime YES NULL 失效时间
package_name varchar(64) YES NULL 套餐名称
period_num int(11) YES NULL 有效期数
period_type tinyint(4) YES NULL 有效期类型
price decimal(18,4) YES NULL 价格
remark varchar(500) YES NULL 备注
rate_limit_enable tinyint(1) YES 0 带宽是否限制
traffic_enable tinyint(1) YES 0 流量是否限制
duration_enable tinyint(1) YES 0 时长是否限制
client_num_enable tinyint(1) YES 0 在线设备数是否限制
rate_limit_name varchar(32) YES NULL 限速名称
down_limit bigint(20) YES NULL 下行限速
down_limit_enable tinyint(1) YES 0 下行限速启用
up_limit bigint(20) YES NULL 上行限速
up_limit_enable tinyint(1) YES 0 上行限速启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

账单表 - u_bill

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
user_id bigint(20) YES NULL 用户ID
cdr_history_id bigint(20) YES NULL 话单记录ID
type tinyint(4) YES NULL 类型
amount decimal(18,4) YES NULL 金额
status tinyint(4) YES NULL 状态
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

计费规则表 - u_bill_rule

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
price decimal(18,4) YES NULL 价格
traffic bigint(20) YES NULL 流量
unit tinyint(4) YES NULL 单位
enable tinyint(1) YES NULL 是否启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

话单表 - u_cdr

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT CDR ID
user_id bigint(20) YES NULL User ID link to u_user
client_id bigint(20) YES NULL Client ID
device_id bigint(20) YES NULL Device ID
ssid varchar(64) YES NULL Wireless SSID name
rx_rate bigint(20) YES NULL rx rate
tx_rate bigint(20) YES NULL tx rate
down_packet bigint(20) YES NULL Number of downstream packets
up_packet bigint(20) YES NULL Number of upstream packets
traffic_down bigint(20) YES NULL Downstream traffic (Byte)
traffic_up bigint(20) YES NULL Upstream traffic (Byte)
rate_limit_profile_id varchar(16) YES NULL Rate limit profile ID
up_time bigint(20) YES NULL Up time (unit: s)
last_seen_time bigint(20) YES NULL Last found time, timestamp (ms)
activity bigint(20) YES NULL Activity download speed (Bytes/s)
del_flag char(1) YES '0' delete flag
create_by bigint(20) YES NULL creater
create_time datetime YES NULL create time
update_by bigint(20) YES NULL updater
update_time datetime YES NULL update time

历史话单表 - u_cdr_history

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT CDR Detail ID
cdr_id bigint(20) YES NULL CDR ID
traffic_down bigint(20) YES NULL Downstream traffic (Byte)
traffic_up bigint(20) YES NULL Upstream traffic (Byte)
start_time bigint(20) YES NULL Start time
end_time bigint(20) YES NULL End time
duration bigint(20) YES NULL Duration(s)
del_flag char(1) YES '0' delete flag
create_by bigint(20) YES NULL creater
create_time datetime YES NULL create time
update_by bigint(20) YES NULL updater
update_time datetime YES NULL update time

终端信息表 - u_client

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT Client ID
user_id bigint(20) YES NULL User ID link to u_user
site_id varchar(64) YES NULL Site ID
client_name varchar(64) YES NULL Client Name
client_device_type varchar(16) YES NULL Client device type
client_mac varchar(32) YES NULL Client mac address
del_flag char(1) YES '0' delete flag
create_by bigint(20) YES NULL creater
create_time datetime YES NULL create time
update_by bigint(20) YES NULL updater
update_time datetime YES NULL update time

设备表 - u_device

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT Device ID
user_id bigint(20) YES NULL User ID link to u_user
device_name varchar(64) YES NULL Device Name
device_ip varchar(16) YES NULL Device ip
device_mac varchar(32) YES NULL Device mac
device_model varchar(32) YES NULL Device model
del_flag char(1) YES '0' delete flag
create_by bigint(20) YES NULL creater
create_time datetime YES NULL create time
update_by bigint(20) YES NULL updater
update_time datetime YES NULL update time

订单表 - u_order

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
user_id bigint(20) YES NULL 用户ID
package_id bigint(20) YES NULL 套餐ID
payment_id bigint(20) YES NULL 支付ID
order_no varchar(64) YES NULL 订单编号
type tinyint(4) YES NULL 订单类型0套餐 1充值
order_amount decimal(18,4) YES NULL 订单金额
status tinyint(4) YES NULL 订单状态(0待支付 1已支付 2已取消)
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

套餐表 - u_package

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
rate_limit_id bigint(20) YES NULL 带宽限速ID
package_name varchar(64) YES NULL 套餐名称
period_num int(11) YES NULL 有效期数
period_type tinyint(4) YES NULL 有效期类型
price decimal(18,4) YES NULL 价格
traffic bigint(20) YES NULL 流量
duration bigint(20) YES NULL 时长
client_num int(11) YES NULL 在线设备数
remark varchar(500) YES NULL 备注
rate_limit_enable tinyint(1) YES 0 带宽是否限制
traffic_enable tinyint(1) YES 0 流量是否限制
duration_enable tinyint(1) YES 0 时长是否限制
client_num_enable tinyint(1) YES 0 在线设备数是否限制
package_enable tinyint(1) YES 0 套餐是否启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

支付表 - u_payment

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
name varchar(32) YES NULL 支付名称
type tinyint(4) YES NULL 类型0支付宝 1微信 2信用卡
appId varchar(32) YES NULL 应用编号
server_url varchar(32) YES NULL 支付网关
domain varchar(32) YES NULL 外网访问项目的域名
private_key varchar(128) YES NULL 应用私钥
public_key varchar(128) YES NULL 应用公钥
app_cert_path varchar(64) YES NULL 应用公钥证书
cert_path varchar(64) YES NULL 公钥证书
root_cert_path varchar(64) YES NULL 根证书
enable tinyint(1) YES NULL 是否启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES NULL 创建人
create_time datetime YES NULL 创建时间
update_by bigint(20) YES NULL 更新人
update_time datetime YES NULL 更新时间

限速表 - u_rate_limit

字段名称 数据类型 是否允许 NULL 默认值 额外属性 注释
id bigint(20) NO AUTO_INCREMENT 主键
rate_limit_name varchar(32) YES NULL 限速名称
down_limit bigint(20) YES NULL 下行限速
down_limit_enable tinyint(1) YES 0 下行限速启用
up_limit bigint(20) YES NULL 上行限速
up_limit_enable tinyint(1) YES 0 上行限速启用
del_flag tinyint(1) YES 0 删除标志0存在 1删除
create_by bigint(20) YES

充值表 - u_recharge

字段名称 数据类型 允许 NULL 默认值 自增 注释
recharge_id bigint(20) NO AUTO_INCREMENT Recharge ID
user_id bigint(20) YES NULL User ID link to u_user
fee double YES NULL
status enum('unpaid','paid') YES 'unpaid'
create_by varchar(32) YES '' create name
create_time datetime YES NULL create time

用户信息表 - u_user

字段名称 数据类型 允许 NULL 默认值 自增 注释
user_id bigint(20) NO AUTO_INCREMENT 用户ID
dept_id bigint(20) YES NULL 部门ID
user_name varchar(30) NO 用户账号
nick_name varchar(30) NO 用户昵称
full_name varchar(64) YES NULL 用户姓名
user_type varchar(2) YES '00' 用户类型00系统用户
email varchar(50) YES '' 用户邮箱
phonenumber varchar(15) YES '' 手机号码
sex char(1) YES '0' 用户性别0男 1女 2未知
avatar varchar(100) YES '' 头像地址
password varchar(100) YES '' 密码
age int(11) YES NULL 年龄
birth_date date YES NULL 出生日期
address varchar(255) YES NULL 地址
status char(1) YES '0' 帐号状态0正常 1停用
del_flag char(1) YES '0' 删除标志0代表存在 2代表删除
login_ip varchar(128) YES '' 最后登录IP
login_date datetime YES NULL 最后登录时间
create_by varchar(64) YES '' 创建者
create_time datetime YES NULL 创建时间
update_by varchar(64) YES '' 更新者
update_time datetime YES NULL 更新时间
remark varchar(500) YES NULL 备注

KYC表 - u_kyc

字段名称 数据类型 允许 NULL 默认值 自增 注释
kyc_id bigint(20) NO AUTO_INCREMENT ID
user_id bigint(20) YES NULL link to user_id of u_user
real_name varchar(64) YES NULL
birth_date date YES NULL
id_type enum YES NULL identify type('DRIVERS_LICENSE','PASSPORT','RESIDENCE_PERMIT','STUDENT_ID','MEDICARE_CARD','BIRTH_CERTIFICATE')
id_file varchar(128) YES '' ID file
identify_picture varchar(128) YES NULL identify picture
status enum YES 'PENDING' KYC Status: 1-VERIFIED/2-UNVERIFIED/3-PENDING/4-REJECTED
description varchar(255) YES NULL
del_flag char(1) YES '0' 删除标志0代表存在 2代表删除
create_by varchar(64) YES '' 创建者
create_time datetime YES NULL 创建时间
update_by varchar(64) YES '' 更新者
update_time datetime YES NULL 更新时间

5. 功能模块设计

5.1. 客户平台

  1. Dashboard:主控制面板,提供系统概览。

  2. 设备管理

    • AP设备管理:管理接入点设备。
    • 无线网络:配置和管理无线网络。
    • 门户:管理门户设置。
    • 终端设备管理:管理连接的终端设备。
    • 监控/配置/启停/移除/纳管:对设备进行监控、配置、启动、停止、移除和纳管操作。
  3. 用户管理

    • 用户信息:查看和管理用户信息。
    • KYC状态管理用户的KYC了解你的客户状态包括未KYC和已KYC。
    • MAC管理设备的MAC地址。
    • 话单管理:查询通话记录,包括时长和流量。
  4. 账单管理

    • 查询:查询账单信息。
    • KYC审核审核用户的KYC信息包括批准和拒绝操作。
  5. 计费管理

    • 计费规则:设置计费规则。
    • 限速设置:配置网络限速。
    • 套餐管理:管理计费套餐,包括查询、增加、修改和删除操作。
  6. 系统管理

    • 账号管理:管理系统账号。
    • 角色管理:管理用户角色。
    • 菜单管理:管理系统菜单。
    • 字典管理:管理系统字典。
    • 日志管理:管理系统日志。
    • 任务管理:管理系统任务。

这些功能模块共同构成了一个全面的管理门户,支持设备、用户、账单和系统的综合管理。

5.2 用户平台

  1. 账号注册

    • 个人信息填写:包括账户名、姓名、年龄、性别、电话、邮箱、地址等信息。
    • 协议声明和签署:用户需同意相关协议。
    • 获取验证码:通过邮箱获取验证码进行验证。
  2. 登录

    • 忘记密码:提供找回密码功能,通过邮箱重置密码。
  3. 用户平台

    • 主页/仪表盘:用户主界面,提供系统概览。
    • 套餐购买:提供套餐购买功能,支持多种支付方式,包括支付宝和微信支付。
    • 余额充值:提供余额充值功能,支持多种支付方式,包括支付宝和微信支付。
  4. 终端设备

    • 当前设备:查询当前连接的设备。
    • 历史设备:查询历史连接的设备。
  5. 充值服务

    • 余额充值:提供余额充值功能。
    • 套餐办理:办理新的套餐。
  6. 账单

    • 充值记录:查询充值记录。
    • 上网记录:查询上网记录。
    • 套餐记录:查询套餐记录。
  7. 个人信息

    • 修改信息:修改个人信息。
    • 修改密码:修改账户密码。
    • KYC认证进行KYC认证需人工审核。

这些功能模块共同构成了一个全面的用户平台,支持用户注册、登录、套餐购买、设备管理、充值服务、账单查询和个人信息管理等功能。

6. 计费和套餐设计

  1. 计算周期

    • 支持小时、天、月、年等不同的计算周期。
  2. 时间限制

    • 时段限制:支持小时、天或不限。
    • 计算差值:根据时间限制计算差值。
  3. 流量限制

    • 支持设置不同的流量限制流量1、流量2等或不限。
  4. 设备数据限制

    • 支持设置不同的设备数量限制数量1、数量2等或不限。
  5. 带宽限制

    • 支持设置不同的带宽限制带宽1、带宽2等或不限。
  6. 计算规则

    • 计时:支持按秒、分钟、小时、天或不限进行计时。
    • 计算类型当前仅支持预付费单位可以是KB、MB等。
    • 等头流量处理:支持向上取整或四舍五入。
    • 价格:支持按天或月设置价格周期。
  7. 封闭设置

    • 支持设置封闭金额和期初限制。
  8. 规则设置

    • 当前仅支持单一规则规则1不支持多种规则选择。
  9. 备注

    • 当前仅支持预付费模式。
    • 标注“NA”的选项当前不支持。

计费套餐和计费规则共同构成了一个灵活的计费套餐和规则配置系统,支持根据时间、流量、设备和带宽等不同维度进行计费规则的定制。