Trae搭建Android项目:智能存储柜表结构设计以及实体生成

# SmartCabinet 数据库ER图

scss 复制代码
┌─────────────────────────────────────────────────────────────────────────────────┐
│                                    SmartCabinet 数据库设计                        │
└─────────────────────────────────────────────────────────────────────────────────┘

┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│     users       │         │    cabinets     │         │ configurations  │
│   (用户表)       │         │    (柜表)        │         │   (配置表)       │
├─────────────────┤         ├─────────────────┤         ├─────────────────┤
│ id (PK)         │         │ id (PK)         │         │ id (PK)         │
│ employee_id     │         │ cabinet_number  │         │ type            │
│ name            │         │ board_id        │         │ key             │
│ phone_number    │         │ lock_id         │         │ value           │
│ position        │         │ status          │         │ create_time     │
│ gender          │         │ usage_status    │         │ update_time     │
│ status          │         │ create_time     │         └─────────────────┘
│ card_number     │         │ update_time     │
│ feature_code    │         └─────────────────┘
│ create_time     │                    │
│ update_time     │                    │
└─────────────────┘                    │
         │                             │
         │                             │
         │                             │ 
         │                             │
         ▼                             ▼
┌─────────────────┐         ┌─────────────────┐
│  user_cabinets  │         │ operation_logs  │
│ (用户柜关联表)    │         │  (操作日志表)     │
├─────────────────┤         ├─────────────────┤
│ id (PK)         │         │ id (PK)         │
│ cabinet_id (FK) │◄────────┤ user_id (FK)    │
│ user_id (FK)    │         │ employee_id     │
└─────────────────┘         │ name            │
                            │ type            │
                            │ parameters      │
                            │ cabinet_id (FK) │◄────────┐
                            │ cabinet_number  │         │
                            │ board_id        │         │
                            │ lock_id         │         │
                            │ status          │         │
                            └─────────────────┘         │
                                                        │
                                                        │ 
                                                        │
                                                        ▼
                                               ┌─────────────────┐
                                               │  usage_records  │
                                               │  (使用记录表)     │
                                               ├─────────────────┤
                                               │ id (PK)         │
                                               │ user_id (FK)    │
                                               │ employee_id     │
                                               │ name            │
                                               │ cabinet_id (FK) │
                                               │ cabinet_number  │
                                               │ board_id        │
                                               │ lock_id         │
                                               │ status          │
                                               │ take_time       │
                                               │ return_time     │
                                               └─────────────────┘

开启Trae的对话框,输入

makefile 复制代码
柜表:ID、柜号、板ID、锁ID、状态、使用状态、创建时间、修改时间

用户表:ID、工号、姓名、手机号、岗位、性别、状态、卡号、特征码、创建时间、修改时间

用户柜关联表:ID、柜ID、用户ID

配置表:ID、类型、键、值、创建时间、修改时间

使用记录表:ID、用户ID、工号、姓名、柜ID、柜号、板ID、锁ID、状态 取 还、取出时间、归还时间

操作日志表:ID、用户ID、工号、姓名、类型 刷卡、人脸识别、密码、参数、柜ID、柜号、板ID、锁ID、状态 

呈现效果

对用户的增删改查基础功能已经实现,但是有的时候用户很多,我们又不想一条一条的添加,先通过接口的形式直接添加或者修改,还记得上一篇文章《# Trae搭建Android开发:项目中Ktor的引入与使用实践》 ,他可以为我们实现这个功能。

在上面截图中我们能看到有一个网络配置的菜单,接下来我们实现这个功能:

  • 实现网络配置模块 Ktor服务器管理功能

主要功能

1. 服务器状态管理

  • 启动服务器: 启动Ktor HTTP服务器
  • 停止服务器: 停止当前运行的服务器
  • 状态显示: 实时显示服务器运行状态

2. 网络配置

  • 端口配置: 设置服务器监听端口(1-65535)
  • 主机配置: 设置服务器监听地址
  • 配置应用: 应用新的网络配置

3. 网络状态检查

  • 网络连接检查: 检查设备网络连接状态
  • IP地址显示: 显示本地IP地址信息
  • 连接类型识别: 识别WiFi、移动网络、以太网等连接类型

bash 复制代码
服务器信息:
• 状态:运行中
• 地址:http://$host:$port
• 支持CORS
• JSON格式
• 用户管理API

API接口:
• GET /api/users - 获取所有用户
• GET /api/users/{id} - 获取指定用户
• GET /api/users/search?query={query} - 搜索用户
• POST /api/users - 创建用户
• PUT /api/users/{id} - 更新用户
• DELETE /api/users/{id} - 删除用户

我们使用Apifox测试一下

到这里我们已经完成了智能存储柜表结构设计和通过接口的形式对用户的增删改查,接下来我们继续完成串口配置、人脸识别等相关功能。关注"Harry技术"公众号,获取最新动态!

相关推荐
爱笑鱼1 小时前
Handler(一):post 之后,Runnable 到底在哪个线程执行?
android
木木子222 小时前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
雨白2 小时前
C 语言基础:结构体、联合体与枚举
android
阿巴斯甜3 小时前
Android 代码混淆
android
apihz5 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
浪客川6 小时前
AOSP源码隐藏状态栏
android·aosp
没有了遇见7 小时前
AI Agent 是什么?—— 一文理解 LLM、Memory、Skills、Tools、MCP、Workflow,Context
android·前端·程序员
知行合一。。。7 小时前
LangChain--07--智能体、Agent的基本用法
android·数据库·langchain
御坂嘀喵7 小时前
Speed Tools:一套低侵入的 Android 插件化 + 动态换肤 + 字体切换框架
android·gitee
浮江雾7 小时前
Flutter第三节----Dart中的数据类型
android·开发语言·学习·flutter·入门·函数