diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml index 9c50eb8..9250108 100644 --- a/.idea/phpunit.xml +++ b/.idea/phpunit.xml @@ -4,8 +4,8 @@ diff --git a/app/massage/info/UpdateSql.lock b/app/massage/info/UpdateSql.lock new file mode 100644 index 0000000..6faf6e0 --- /dev/null +++ b/app/massage/info/UpdateSql.lock @@ -0,0 +1 @@ +1.0.82 \ No newline at end of file diff --git a/app/shop/info/UpdateSql.lock b/app/shop/info/UpdateSql.lock new file mode 100644 index 0000000..9221e7a --- /dev/null +++ b/app/shop/info/UpdateSql.lock @@ -0,0 +1 @@ +1.0.80 \ No newline at end of file diff --git a/doc/architecture-analysis.md b/doc/architecture-analysis.md new file mode 100644 index 0000000..d810576 --- /dev/null +++ b/doc/architecture-analysis.md @@ -0,0 +1,189 @@ +# 智慧农场项目 架构与技术评估报告 + +> 日期:2025-12-24 + +## 概览 +- 后端:`ThinkPHP 6` 多应用架构(模块:`farm`、`shop`、`admin`、`im`、`member` 等),REST 风格 API,含 WebSocket 能力(Swoole、Workerman)。 +- 前端: + - 管理后台:`Vue 2.x + element-ui + webpack 3`,位于 `uniapp/uni-admin` 与 `web` 两套工程。 + - 业务端:`uni-app` 多端 (`H5/小程序/App`),位于 `uniapp/uni-app`。 + - 小程序编译产物:`front`(微信小程序)目录。 +- 数据层:MySQL(直连配置),Redis(`predis`),缓存使用 ThinkPHP Cache。 +- 运维:日志 `File + SocketLog`,WebSocket 配置与 Worker 配置存在;未检测到标准 CI/CD 流程配置文件。 + +## 架构图 +```mermaid +flowchart LR + subgraph Client + A1[uni-app 客户端]\n(uniapp/uni-app) + A2[微信小程序]\n(front) + A3[管理后台 Vue2]\n(uniapp/uni-admin / web) + end + + A1 -->|HTTP/JSON| B[ThinkPHP 6 多应用 API] + A2 -->|HTTP/JSON| B + A3 -->|HTTP/JSON| B + + subgraph Server + B --- C[(MySQL)] + B --- D[(Redis/Cache)] + B --- E[[WebSocket 服务]] + end + + E -. SocketIO/Swoole/Workerman .- A1 + E -. 推送/订阅 .- A3 +``` + +## 架构模式分析 +- 模式: + - MVC:控制器 + 模型清晰分层,例如 `app/farm/controller/Index.php:37` 与 `app/farm/model/*`。 + - 多应用(模块化单体):通过 `think-multi-app` 将不同业务域拆分为 `farm/shop/admin/im/member` 等模块(`config/app.php:44`、`app/*/route/route.php`)。 + - 事件驱动/实时:引入 `Swoole` 与 `Workerman` 提供 WebSocket 推送(`config/swoole.php:29`、`config/gateway_worker.php:16`)。 +- 优点: + - 模块清晰、域边界明确;路由分组利于权限与网关层控制(`app/farm/route/route.php:6`)。 + - REST 输出统一封装,成功/错误结构一致(`app/ApiRest.php:241`、`app/ApiRest.php:256`)。 + - 实时能力可用于监控/消息等场景(`config/swoole.php:29-43`)。 +- 缺点: + - 配置管理分散且存在硬编码(数据库、CORS),环境隔离不足(`config/database.php:19-27`、`public/index.php:17-19`)。 + - 前端存在多套实现(`uniapp/uni-admin` 与 `web`),技术版本老旧、维护成本偏高(`web/package.json:47`)。 + - WebSocket 路由文件声明与实际代码不一致,存在可维护性风险(`config/swoole.php:33` 指向 `im/controller/websocket.php`,但未找到该文件)。 +- 评估: + - 可扩展性:中等偏上。模块化良好,但需统一配置与网关;前端多仓不利扩展。 + - 可维护性:中等。后端规范可读,但安全/配置问题需治理;前端需升级统一。 + - 性能:中等。Swoole/Worker 可提升实时性能;数据库访问与缓存策略需细化优化。 + +## 技术栈分析 +- 后端: + - `PHP >=7.1`(`composer.json:19`),`ThinkPHP 6.0.*-dev`(`composer.json:20`)。 + - 组件:`topthink/think-view`(模板)、`topthink/think-multi-app`(多应用)、`topthink/think-swoole`(WebSocket)、`predis/predis`(Redis)、`guzzlehttp/guzzle`(HTTP)(`composer.json:21-28`)。 + - 引导入口与路由:`public/index.php:14-31`、`route/app.php:12-14`、各模块 `app/*/route/route.php`。 +- 前端: + - 管理后台 A:`uniapp/uni-admin` 使用 `Vue 2.5.2`、`element-ui 2.10.1`、`webpack 3.x`(`uniapp/uni-admin/package.json:1-50`,`uniapp/uni-admin/config/index.js:51`)。 + - 管理后台 B:`web` 使用 `Vue 2 + webpack 3`(`web/package.json:47-80`)。 + - 业务端:`uniapp/uni-app`(`pages.json:631-656`),依赖 `ezuikit-js`、`jweixin-module`、`vue-lazyload`(`uniapp/uni-app/package.json:1-26`)。 + - 小程序编译产物:`front/app.json:1-207`、多页面与组件定义。 +- 数据库/缓存: + - MySQL 直连,表前缀 `ims_`(`config/database.php:26-55`)。 + - Redis:`predis`,结合自定义 Cache Key 方案(`app/common.php:114-205`)。 +- WebSocket: + - `Swoole` 配置(`config/swoole.php:7-54`),`Workerman` 配置(`config/gateway_worker.php:16-43`、`config/worker_server.php:17-55`)。 + +### 技术选型合理性 +- 后端选型:ThinkPHP 6 性能与学习曲线较友好,国内社群活跃;结合 Swoole 能应对实时业务需求。建议升级到稳定版,并完善 `.env` 与容器化。 +- 前端选型:Vue 2 + webpack 3 已老旧,维护风险增加。建议统一到 `Vue 3 + Vite`;uni-app可继续,但注意版本升级与模块整合。 +- 数据层:直连配置与硬编码需治理;建议引入连接池配置、只读副本与慢查询监控。 + +### 技术栈评估矩阵 +| 层 | 当前技术 | 成熟度 | 社区支持 | 性能 | 维护性 | 长期性 | +|---|---|---|---|---|---|---| +| 后端框架 | ThinkPHP 6 | 高 | 中高 | 中高 | 中 | 中高 | +| 实时服务 | Swoole/Workerman | 高 | 高 | 高 | 中 | 高 | +| 管理后台 | Vue 2 + webpack 3 | 高(历史) | 高(下降) | 中 | 低 | 低 | +| 业务端 | uni-app | 中高 | 高 | 中 | 中 | 中高 | +| 数据库 | MySQL | 高 | 高 | 高 | 中 | 高 | +| 缓存 | Redis (predis) | 高 | 高 | 高 | 高 | 高 | + +## 目录结构分析 +- 根目录关键结构摘要: +``` +app/ + admin|farm|im|shop|member|... # 多应用模块(控制器、模型、路由、语言包等) +config/ # 全局配置(app、database、log、swoole、worker 等) +public/ # 前端入口与重写、静态资源(含 UEditor) +uniapp/uni-admin # Vue2 管理后台工程 +uniapp/uni-app # uni-app 多端工程 +web/ # 另一套 Vue2 管理后台工程 +front/ # 微信小程序编译产物 +extend/ # 第三方库(PHPExcel、alipay、phpqrcode 等) +``` +- 模块划分: + - 按业务域划分(`farm`、`shop`、`im` 等),路由组定义清晰(如 `app/farm/route/route.php:6`)。 + - 公共能力与工具聚合在 `app/common.php` 与 `app/Common/*`、`extend/`。 +- 组织合理性: + - 多应用模块边界明确,利于团队分工与权限隔离。 + - 公共方法集中但较大,建议拆分更细粒度的服务/工具类,增强可测试性与复用性。 + - 前端多套管理后台导致重复建设与维护成本高。 + +## 其他分析项 +### 安全性设计评估 +- 数据库凭据硬编码,且存在外网地址与弱保护(`config/database.php:19-27`)。 +- CORS 允许所有来源与多头部,需谨慎(`public/index.php:17-19`)。 +- 文件上传(UEditor)存在在 `public/static/Ueditor/php/controller.php:1-59`,需增加鉴权、白名单与病毒/脚本扫描。 +- 建议: + - 引入 `.env`(dotenv)管理密钥与环境;CI 注入配置,严禁将密钥入库。 + - 收敛 CORS 到受信域名;为管理端与 API 区分域名与策略。 + - 上传增加鉴权、MIME 校验、大小与类型限制、存储隔离(OSS/CDN),并启用杀毒与内容安全。 + - 审计 SocketLog 配置的 `host/client_ids` 安全性(`config/log.php:45-52`)。 + +### 异常处理机制分析 +- 全局异常处理使用默认 `ExceptionHandle`(`app/ExceptionHandle.php:26-68`),忽略常见业务异常类别。 +- API 错误输出统一封装(`app/ApiRest.php:256-270`、`app/ApiRest.php:550-572`)。 +- 建议: + - 明确统一错误码表与错误分类;区分 4xx/5xx 并记录结构化日志。 + - 在控制器入参处引入统一校验器(`Validate`),并在异常中补充 traceId 与请求上下文。 + +### 日志与监控系统设计 +- 日志:默认文件日志 + `SocketLog` 推送(`config/log.php:18-53`)。 +- 监控:未检测到 APM/指标监控;WebSocket/Worker 仅基础配置。 +- 建议: + - 引入结构化日志(JSON)与日志聚合(ELK/OpenSearch)。 + - 指标监控(Prometheus + Grafana)与应用探针(Swoole 环境适配)。 + - 慢查询与缓存命中率监控;WebSocket 连接与消息指标暴露。 + +### CI/CD 流程评估 +- 未检测到 `GitHub Actions/.github/workflows`、`gitlab-ci.yml`、`Jenkinsfile`。 +- 建议: + - 后端:`composer install --no-dev`、静态分析(`phpstan`)、规范(`php-cs-fixer`)、单测(`phpunit`)、容器镜像构建(Docker)。 + - 前端:`node >= 16`,`pnpm`/`npm ci`、`vite/webpack` 构建与产出归档;多端产物分环境发布。 + - 部署:灰度与回滚策略、配置注入(K8s/Helm 或容器编排)。 + +## 证据与代码定位 +- 框架与依赖:`composer.json:19-28` +- 入口与 CORS:`public/index.php:14-19` +- 路由(示例):`app/farm/route/route.php:6-22`、`route/app.php:12-14` +- 控制器示例:`app/farm/controller/Index.php:37-60` +- 统一响应:`app/ApiRest.php:241-253`、错误:`app/ApiRest.php:256-270` +- 异常处理:`app/ExceptionHandle.php:26-68` +- 数据库配置:`config/database.php:19-27`、连接:`config/database.php:34-55` +- 日志:`config/log.php:18-53` +- WebSocket:`config/swoole.php:29-43`、`config/gateway_worker.php:16-43` +- UEditor 上传:`public/static/Ueditor/php/controller.php:1-59`、`public/static/Ueditor/php/config.json:44-64` + +## 目录结构优化建议 +- 后端: + - 拆分 `app/common.php` 的通用函数为独立服务/工具类,按领域与职责进行分包(`app/Common/*`、`extend/*` 对齐)。 + - 引入 `.env` 与配置中心;移除硬编码,统一 `config/*` 读取策略。 + - 校验器、DTO 与错误码统一;中间件化鉴权与限流。 +- 前端: + - 将双管理后台整合为单一工程(优先 `Vue 3 + Vite`);组件与样式库升级替换。 + - 对 uni-app 组件库与页面进行模块化与代码规范统一。 +- 数据与实时: + - 补齐 Swoole 路由文件与事件处理;统一 WebSocket 协议与命名。 + - 数据库加入读写分离、连接池与慢查询治理;缓存策略梳理(穿透/击穿/雪崩)。 + +## 潜在风险与改进清单 +- 风险: + - 凭据硬编码、CORS 过宽、上传安全不足、WebSocket 文件缺失。 + - 前端技术栈老旧且重复实现,增加维护成本与安全风险。 +- 改进: + - `.env` 与密钥治理、CORS 收敛、上传安全增强(签名、鉴权、扫描)。 + - 前端统一升级;构建链与依赖版本治理。 + - 引入 CI/CD 与质量门禁(lint、测试、静态分析);容器化与可观测性。 + +--- + +## 附:核心代码片段引用 +- `composer.json:19-28` +- `public/index.php:14-19` +- `route/app.php:12-14` +- `app/farm/route/route.php:6-24` +- `app/farm/controller/Index.php:37-75` +- `app/ApiRest.php:241-253`、`256-270`、`550-572` +- `app/ExceptionHandle.php:26-68` +- `config/database.php:19-27`、`34-55` +- `config/log.php:18-53` +- `config/swoole.php:29-43` +- `config/gateway_worker.php:16-43` +- `public/static/Ueditor/php/controller.php:1-59` +- `public/static/Ueditor/php/config.json:44-64` + diff --git a/uniapp/uni-app/.idea/.gitignore b/uniapp/uni-app/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/uniapp/uni-app/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/uniapp/uni-app/.idea/inspectionProfiles/Project_Default.xml b/uniapp/uni-app/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9c69411 --- /dev/null +++ b/uniapp/uni-app/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/uniapp/uni-app/.idea/modules.xml b/uniapp/uni-app/.idea/modules.xml new file mode 100644 index 0000000..e2277c0 --- /dev/null +++ b/uniapp/uni-app/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/uniapp/uni-app/.idea/php.xml b/uniapp/uni-app/.idea/php.xml new file mode 100644 index 0000000..f324872 --- /dev/null +++ b/uniapp/uni-app/.idea/php.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/uniapp/uni-app/.idea/uni-app.iml b/uniapp/uni-app/.idea/uni-app.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/uniapp/uni-app/.idea/uni-app.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/uniapp/uni-app/.idea/vcs.xml b/uniapp/uni-app/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/uniapp/uni-app/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/uniapp/uni-app/claim/static/image/farm/breed-cart.png b/uniapp/uni-app/claim/static/image/farm/breed-cart.png new file mode 100644 index 0000000..a346ad9 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/breed-cart.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/breed-fill.png b/uniapp/uni-app/claim/static/image/farm/breed-fill.png new file mode 100644 index 0000000..be60a49 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/breed-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/breed.png b/uniapp/uni-app/claim/static/image/farm/breed.png new file mode 100644 index 0000000..1a50abc Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/breed.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/claim.png b/uniapp/uni-app/claim/static/image/farm/claim.png new file mode 100644 index 0000000..a435212 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/claim.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/distribution-fill.png b/uniapp/uni-app/claim/static/image/farm/distribution-fill.png new file mode 100644 index 0000000..fbcf47b Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/distribution-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/distribution.png b/uniapp/uni-app/claim/static/image/farm/distribution.png new file mode 100644 index 0000000..86bee7f Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/distribution.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/done-fill.png b/uniapp/uni-app/claim/static/image/farm/done-fill.png new file mode 100644 index 0000000..854805b Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/done-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/done.png b/uniapp/uni-app/claim/static/image/farm/done.png new file mode 100644 index 0000000..b6bbf69 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/done.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/grow-fill.png b/uniapp/uni-app/claim/static/image/farm/grow-fill.png new file mode 100644 index 0000000..f93b12c Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/grow-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/grow.png b/uniapp/uni-app/claim/static/image/farm/grow.png new file mode 100644 index 0000000..4d9dc19 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/grow.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/idcard.png b/uniapp/uni-app/claim/static/image/farm/idcard.png new file mode 100644 index 0000000..81a8b3f Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/idcard.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/idcard_fan.png b/uniapp/uni-app/claim/static/image/farm/idcard_fan.png new file mode 100644 index 0000000..60c0edc Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/idcard_fan.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/order-fill.png b/uniapp/uni-app/claim/static/image/farm/order-fill.png new file mode 100644 index 0000000..376df34 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/order-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/order.png b/uniapp/uni-app/claim/static/image/farm/order.png new file mode 100644 index 0000000..475502c Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/order.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/pay.png b/uniapp/uni-app/claim/static/image/farm/pay.png new file mode 100644 index 0000000..28ad008 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/pay.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/send.png b/uniapp/uni-app/claim/static/image/farm/send.png new file mode 100644 index 0000000..b5e291f Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/send.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/sow-fill.png b/uniapp/uni-app/claim/static/image/farm/sow-fill.png new file mode 100644 index 0000000..65b12bf Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/sow-fill.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/sow.png b/uniapp/uni-app/claim/static/image/farm/sow.png new file mode 100644 index 0000000..cccdd29 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/sow.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/tag.png b/uniapp/uni-app/claim/static/image/farm/tag.png new file mode 100644 index 0000000..8397ba5 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/tag.png differ diff --git a/uniapp/uni-app/claim/static/image/farm/users.png b/uniapp/uni-app/claim/static/image/farm/users.png new file mode 100644 index 0000000..f54c3e0 Binary files /dev/null and b/uniapp/uni-app/claim/static/image/farm/users.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/breed-cart.png b/uniapp/uni-app/farmer/static/image/farm/breed-cart.png new file mode 100644 index 0000000..a346ad9 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/breed-cart.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/breed-fill.png b/uniapp/uni-app/farmer/static/image/farm/breed-fill.png new file mode 100644 index 0000000..be60a49 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/breed-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/breed.png b/uniapp/uni-app/farmer/static/image/farm/breed.png new file mode 100644 index 0000000..1a50abc Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/breed.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/claim.png b/uniapp/uni-app/farmer/static/image/farm/claim.png new file mode 100644 index 0000000..a435212 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/claim.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/distribution-fill.png b/uniapp/uni-app/farmer/static/image/farm/distribution-fill.png new file mode 100644 index 0000000..fbcf47b Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/distribution-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/distribution.png b/uniapp/uni-app/farmer/static/image/farm/distribution.png new file mode 100644 index 0000000..86bee7f Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/distribution.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/done-fill.png b/uniapp/uni-app/farmer/static/image/farm/done-fill.png new file mode 100644 index 0000000..854805b Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/done-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/done.png b/uniapp/uni-app/farmer/static/image/farm/done.png new file mode 100644 index 0000000..b6bbf69 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/done.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/grow-fill.png b/uniapp/uni-app/farmer/static/image/farm/grow-fill.png new file mode 100644 index 0000000..f93b12c Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/grow-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/grow.png b/uniapp/uni-app/farmer/static/image/farm/grow.png new file mode 100644 index 0000000..4d9dc19 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/grow.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/idcard.png b/uniapp/uni-app/farmer/static/image/farm/idcard.png new file mode 100644 index 0000000..81a8b3f Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/idcard.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/idcard_fan.png b/uniapp/uni-app/farmer/static/image/farm/idcard_fan.png new file mode 100644 index 0000000..60c0edc Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/idcard_fan.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/order-fill.png b/uniapp/uni-app/farmer/static/image/farm/order-fill.png new file mode 100644 index 0000000..376df34 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/order-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/order.png b/uniapp/uni-app/farmer/static/image/farm/order.png new file mode 100644 index 0000000..475502c Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/order.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/pay.png b/uniapp/uni-app/farmer/static/image/farm/pay.png new file mode 100644 index 0000000..28ad008 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/pay.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/send.png b/uniapp/uni-app/farmer/static/image/farm/send.png new file mode 100644 index 0000000..b5e291f Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/send.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/sow-fill.png b/uniapp/uni-app/farmer/static/image/farm/sow-fill.png new file mode 100644 index 0000000..65b12bf Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/sow-fill.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/sow.png b/uniapp/uni-app/farmer/static/image/farm/sow.png new file mode 100644 index 0000000..cccdd29 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/sow.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/tag.png b/uniapp/uni-app/farmer/static/image/farm/tag.png new file mode 100644 index 0000000..8397ba5 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/tag.png differ diff --git a/uniapp/uni-app/farmer/static/image/farm/users.png b/uniapp/uni-app/farmer/static/image/farm/users.png new file mode 100644 index 0000000..f54c3e0 Binary files /dev/null and b/uniapp/uni-app/farmer/static/image/farm/users.png differ diff --git a/uniapp/uni-app/land/static/image/farm/breed-cart.png b/uniapp/uni-app/land/static/image/farm/breed-cart.png new file mode 100644 index 0000000..a346ad9 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/breed-cart.png differ diff --git a/uniapp/uni-app/land/static/image/farm/breed-fill.png b/uniapp/uni-app/land/static/image/farm/breed-fill.png new file mode 100644 index 0000000..be60a49 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/breed-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/breed.png b/uniapp/uni-app/land/static/image/farm/breed.png new file mode 100644 index 0000000..1a50abc Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/breed.png differ diff --git a/uniapp/uni-app/land/static/image/farm/claim.png b/uniapp/uni-app/land/static/image/farm/claim.png new file mode 100644 index 0000000..a435212 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/claim.png differ diff --git a/uniapp/uni-app/land/static/image/farm/distribution-fill.png b/uniapp/uni-app/land/static/image/farm/distribution-fill.png new file mode 100644 index 0000000..fbcf47b Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/distribution-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/distribution.png b/uniapp/uni-app/land/static/image/farm/distribution.png new file mode 100644 index 0000000..86bee7f Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/distribution.png differ diff --git a/uniapp/uni-app/land/static/image/farm/done-fill.png b/uniapp/uni-app/land/static/image/farm/done-fill.png new file mode 100644 index 0000000..854805b Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/done-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/done.png b/uniapp/uni-app/land/static/image/farm/done.png new file mode 100644 index 0000000..b6bbf69 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/done.png differ diff --git a/uniapp/uni-app/land/static/image/farm/grow-fill.png b/uniapp/uni-app/land/static/image/farm/grow-fill.png new file mode 100644 index 0000000..f93b12c Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/grow-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/grow.png b/uniapp/uni-app/land/static/image/farm/grow.png new file mode 100644 index 0000000..4d9dc19 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/grow.png differ diff --git a/uniapp/uni-app/land/static/image/farm/idcard.png b/uniapp/uni-app/land/static/image/farm/idcard.png new file mode 100644 index 0000000..81a8b3f Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/idcard.png differ diff --git a/uniapp/uni-app/land/static/image/farm/idcard_fan.png b/uniapp/uni-app/land/static/image/farm/idcard_fan.png new file mode 100644 index 0000000..60c0edc Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/idcard_fan.png differ diff --git a/uniapp/uni-app/land/static/image/farm/order-fill.png b/uniapp/uni-app/land/static/image/farm/order-fill.png new file mode 100644 index 0000000..376df34 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/order-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/order.png b/uniapp/uni-app/land/static/image/farm/order.png new file mode 100644 index 0000000..475502c Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/order.png differ diff --git a/uniapp/uni-app/land/static/image/farm/pay.png b/uniapp/uni-app/land/static/image/farm/pay.png new file mode 100644 index 0000000..28ad008 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/pay.png differ diff --git a/uniapp/uni-app/land/static/image/farm/send.png b/uniapp/uni-app/land/static/image/farm/send.png new file mode 100644 index 0000000..b5e291f Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/send.png differ diff --git a/uniapp/uni-app/land/static/image/farm/sow-fill.png b/uniapp/uni-app/land/static/image/farm/sow-fill.png new file mode 100644 index 0000000..65b12bf Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/sow-fill.png differ diff --git a/uniapp/uni-app/land/static/image/farm/sow.png b/uniapp/uni-app/land/static/image/farm/sow.png new file mode 100644 index 0000000..cccdd29 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/sow.png differ diff --git a/uniapp/uni-app/land/static/image/farm/tag.png b/uniapp/uni-app/land/static/image/farm/tag.png new file mode 100644 index 0000000..8397ba5 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/tag.png differ diff --git a/uniapp/uni-app/land/static/image/farm/users.png b/uniapp/uni-app/land/static/image/farm/users.png new file mode 100644 index 0000000..f54c3e0 Binary files /dev/null and b/uniapp/uni-app/land/static/image/farm/users.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/cart.png b/uniapp/uni-app/shop/static/image/shop/cart.png new file mode 100644 index 0000000..0551358 Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/cart.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/integral.png b/uniapp/uni-app/shop/static/image/shop/integral.png new file mode 100644 index 0000000..0f58a7b Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/integral.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/seckill-nav.png b/uniapp/uni-app/shop/static/image/shop/seckill-nav.png new file mode 100644 index 0000000..fc3873b Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/seckill-nav.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/seckill-store.png b/uniapp/uni-app/shop/static/image/shop/seckill-store.png new file mode 100644 index 0000000..2eb039c Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/seckill-store.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/seckill-tag.png b/uniapp/uni-app/shop/static/image/shop/seckill-tag.png new file mode 100644 index 0000000..1995533 Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/seckill-tag.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/seckill.png b/uniapp/uni-app/shop/static/image/shop/seckill.png new file mode 100644 index 0000000..74186ec Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/seckill.png differ diff --git a/uniapp/uni-app/shop/static/image/shop/sell_out.png b/uniapp/uni-app/shop/static/image/shop/sell_out.png new file mode 100644 index 0000000..602e51b Binary files /dev/null and b/uniapp/uni-app/shop/static/image/shop/sell_out.png differ