Appearance
辣椒卫士 - 技术架构
状态:测试中
系统架构
辣椒卫士由三个核心项目组成,形成完整的技术体系:
| 项目 | 技术栈 | 用途 |
|---|---|---|
| lajiao-mini | 微信小程序原生框架 | 农场主、消费者使用的移动端 |
| lajiao-frontend | Vue 3 + TypeScript | 平台运营人员使用的管理后台 |
| lajiao-backend | Spring Boot + Java 21 | 后端API服务与业务逻辑 |
技术架构图
接入层
微信小程序Web管理后台
↓
网关层
NginxSpring Gateway
↓
服务层
用户服务识别服务商城服务农场服务溯源服务
↓
数据层
MySQLInfluxDBRedisOSS
一、小程序端 (lajiao-mini)
核心功能模块
1. 首页与AI识别
- AI智能识别入口(拍照识别病虫害)
- 识别历史记录
- 今日农事提醒
2. 农场管理
- 地块管理(添加、编辑、查看地块)
- 种植计划(制定、跟踪种植计划)
- 农事记录(施肥、打药、灌溉记录)
- 环境监测(传感器数据展示)
3. 农资商城
- 商品浏览与搜索
- 购物车与订单管理
- 物流查询与售后
4. 溯源管理
- 采收记录
- 溯源码生成
- 产品销售
5. 个人中心
- 我的订单、地址管理
- 优惠券、积分商城
- 分销中心、会员中心
页面清单
| 模块 | 主要页面 |
|---|---|
| 首页 | index(首页)、camera(拍照)、diagnosis(诊断结果) |
| 农场 | farm(农场首页)、field-list(地块列表)、planting-edit(种植计划)、record-edit(农事记录) |
| 商城 | marketplace(商城首页)、product(商品详情)、cart(购物车)、orders(订单列表) |
| 溯源 | trace(溯源首页)、harvest(采收记录)、sell(产品销售) |
| 个人 | profile(个人中心)、address(地址管理)、points-mall(积分商城)、distribute(分销中心) |
二、管理后台 (lajiao-frontend)
核心功能模块
1. 工作台
- 数据概览(今日订单、新增用户、识别次数)
- 待办事项(待审核、待处理订单)
2. AI中心
- 识别记录管理
- 识别结果复核
- 样本数据集管理
3. 智慧农业
- 农场管理、地块管理
- 种植计划审核
- 设备管理(IoT设备)
4. 商品与交易
- 商品管理(上架、下架、库存)
- 订单管理(处理订单、发货)
- 售后管理、供应商管理
5. 会员与运营
- 用户管理、会员等级
- 积分管理、优惠券
- 营销活动、分销管理
6. 数据中心
- 用户分析(增长、留存、活跃)
- 交易分析(销售额、订单量)
- 农业分析(识别统计、农场活跃度)
7. 系统管理
- 角色权限(RBAC)
- 菜单管理、操作日志
三、后端服务 (lajiao-backend)
技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 框架 | Spring Boot 3.2 | 主框架 |
| 语言 | Java 21 LTS | 开发语言 |
| ORM | MyBatis-Plus 3.5 | 数据访问 |
| 安全 | Spring Security + JWT | 认证授权 |
| 数据库 | MySQL 8.0 | 业务数据 |
| 缓存 | Redis 7.0 | 热点数据 |
| 时序数据 | InfluxDB | 传感器数据 |
| 文件存储 | 阿里云OSS | 图片、视频 |
| AI | TensorFlow | 病虫害识别 |
核心服务
| 服务 | 职责 | 核心功能 |
|---|---|---|
| 用户服务 | 用户管理 | 微信登录、JWT认证、权限控制 |
| 识别服务 | AI识别 | 图像上传、AI模型调用、防治方案推荐 |
| 农场服务 | 农场管理 | 农场CRUD、地块管理、农事记录 |
| 商城服务 | 电商交易 | 商品管理、订单管理、支付集成 |
| 溯源服务 | 溯源管理 | 批次管理、溯源码生成、扫码查询 |
| 消息服务 | 消息推送 | 模板消息、短信通知 |
识别服务流程
1. 接收图片接收小程序上传的图片
2. 上传OSS将图片存储到阿里云OSS
3. AI识别调用TensorFlow模型进行识别
4. 返回结果返回病害名称、置信度、防治建议
数据库设计
MySQL 业务表:
sys_user- 用户表farm/farm_field- 农场/地块表product/order- 商品/订单表recognition_task/recognition_result- 识别任务/结果表trace_batch/trace_record- 溯源批次/记录表
InfluxDB 时序数据:
temperature/humidity/light- 环境数据
四、接口规范
请求规范
http
Content-Type: application/json
Authorization: Bearer {jwt_token}
X-Request-Id: {uuid}
X-Device-Type: wechat-miniprogram响应格式
json
{
"code": 200,
"message": "success",
"data": {},
"timestamp": 1700000000
}状态码
| 状态码 | 说明 | 处理方式 |
|---|---|---|
| 200 | 成功 | 正常处理 |
| 400 | 参数错误 | 提示用户检查输入 |
| 401 | 未授权 | 跳转登录页 |
| 403 | 权限不足 | 提示无权限 |
| 404 | 资源不存在 | 提示内容不存在 |
| 500 | 服务器错误 | 提示系统繁忙 |
五、部署架构
生产环境
├── CDN (静态资源加速)
├── Nginx (负载均衡)
├── 小程序端 (微信服务器)
├── 管理后台 (Docker容器)
├── 后端服务 (Docker容器集群)
│ ├── app服务 (4核8G × 3)
│ └── 识别服务 (GPU服务器)
├── MySQL (主从架构)
├── Redis (主从+哨兵)
├── InfluxDB (时序数据库)
└── OSS (对象存储)六、快速开始
本地开发环境搭建
1. 启动后端服务
bash
cd lajiao-backend
./mvnw spring-boot:run -pl app
# API文档: http://localhost:8080/swagger-ui2. 启动管理后台
bash
cd lajiao-frontend
pnpm install
pnpm dev
# 访问: http://localhost:51733. 配置小程序
bash
cd lajiao-mini
# 使用微信开发者工具打开
# 修改 utils/api.js 中的 API_BASE_URL默认账号:admin / admin123