phase-0-tasks.md 12 KB

阶段零:环境准备 — 详细任务清单

工期:0.5周(2.5天) 目标:开发环境就绪,所有外部依赖到位,项目骨架可运行 本阶段不走 Team A/B/C/D 流程,直接执行


任务总览

Day 1(并行)                    Day 2(并行)                 Day 3(串行)
┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐
│ T0.1 项目骨架初始化   │  │ T0.4 数据库建表      │  │ T0.7 编译验证+冒烟   │
│ T0.2 Git仓库初始化   │  │ T0.5 Redis/短信配置  │  │ T0.8 阶段一准备      │
│ T0.3 本地开发环境     │  │ T0.6 OSS/微信配置    │  │                     │
└─────────────────────┘  └─────────────────────┘  └─────────────────────┘

T0.1 Spring Boot 项目初始化

属性 说明
负责 后端
前置
耗时 0.5天
并行 T0.2, T0.3

具体操作

  1. 创建 Gradle 多模块骨架(CRRC 模式,根目录无 settings.gradle)

    service/
    ├── com.fenzhitech.crrc.service-common/     # 共享库(DTO/VO/常量)
    ├── com.fenzhitech.crrc.service-user/       # 用户模块
    ├── com.fenzhitech.crrc.service-system/     # 系统管理模块(角色/账号/字典/日志)
    ├── com.fenzhitech.crrc.service-audit/      # 审核模块
    ├── com.fenzhitech.crrc.service-trade/      # 交易模块(招工/报名/拨号)
    ├── com.fenzhitech.crrc.service-goods/      # 货源模块(果农货源/客商找货)
    ├── com.fenzhitech.crrc.service-message/    # 消息模块(短信/通知)
    ├── com.fenzhitech.crrc.service-file/       # 文件模块(OSS/视频/照片)
    ├── com.fenzhitech.crrc.gateway-pc/         # PC网关
    ├── com.fenzhitech.crrc.gateway-mobile/     # 移动端网关(小程序)
    └── com.fenzhitech.crrc.gateway-management/ # 管理端网关(后台)
    
  2. 每个模块的 build.gradle 配置

    • Java 8 源码兼容
    • Spring Boot 1.5.9 依赖
    • MyBatis starter
    • MySQL connector
    • 阿里云 OSS SDK
    • 阿里云短信 SDK
    • Redis starter
    • JWT 库(jjwt)
    • Apache POI(Excel 处理)
  3. service-common 共享库初始化

    • 基础 DTO/VO 框架类
    • 统一响应体 ApiResult<T>
    • 通用异常类
    • 分页工具
  4. application.properties 基础配置

    • 数据库连接(占位符)
    • MyBatis 配置
    • Redis 连接(占位符)
    • OSS 配置(占位符)
    • 短信配置(占位符)
    • JWT 密钥(占位符)

验收标准

  • 每个模块 ./gradlew compileJava 零错误
  • service-common 编译通过后,其他模块可引用其类
  • 各模块目录结构符合 CRRC 规范

T0.2 Git 仓库初始化

属性 说明
负责 全员
前置
耗时 0.25天
并行 T0.1, T0.3

具体操作

  1. 初始化本地仓库

    cd D:/ai_coding_project
    git init
    
  2. 创建 .gitignore

    # 编译产物
    target/
    build/
    *.class
    *.jar
    *.war
    
    # IDE
    .idea/
    *.iml
    *.ipr
    *.iws
    .vscode/
    .settings/
    .project
    .classpath
    
    # 系统
    .DS_Store
    Thumbs.db
    *.log
    
    # 环境配置(含密钥)
    .env
    application-local.properties
    application-prod.properties
    
    # Node
    node_modules/
    dist/
    
  3. 创建 deliveries/ 目录结构

    deliveries/
    ├── team-a-requirement/
    ├── team-b-architecture/
    ├── team-c-coding/
    └── team-d-testing/
    
  4. 创建 docs/ 目录结构(已有文档保留)

    docs/
    ├── charter.md                  # 项目章程
    ├── acceptance-criteria.md      # 里程碑验收标准
    ├── project-log.md              # 项目生命周期日志
    ├── environment-checklist.md    # 环境就绪检查
    └── reviews/                    # 评审记录
    
  5. 首次提交到 main 分支

    git add .gitignore docs/ deliveries/
    git commit -m "[milestone-0] 项目初始化:目录结构+文档"
    
  6. 配置远程仓库(Gogs)

    git remote add origin <gogs-url>
    git push -u origin main
    

验收标准

  • git log 可见首次提交
  • .gitignore 正确排除编译产物和 IDE 文件
  • deliveries/ 目录结构完整
  • 远程仓库可 push/pull

T0.3 本地开发环境

属性 说明
负责 全员
前置
耗时 0.25天
并行 T0.1, T0.2

具体操作

  1. JDK 8 安装验证

    java -version   # 确认 1.8.x
    javac -version
    
  2. Gradle 安装验证(各模块自带 gradlew,无需全局安装)

    cd com.fenzhitech.crrc.service-user
    ./gradlew --version
    
  3. MySQL 客户端安装(Navicat / DBeaver / MySQL Workbench)

  4. 微信开发者工具安装(用于小程序开发和调试)

  5. Redis 客户端安装(redis-cli 或 RedisDesktopManager)

验收标准

  • JDK 8 可用
  • gradlew 可执行
  • MySQL 客户端可连接数据库
  • 微信开发者工具已安装

T0.4 数据库初始化

属性 说明
负责 后端
前置 T0.1(项目骨架)
耗时 0.5天
并行 T0.5, T0.6

具体操作

  1. 创建数据库

    CREATE DATABASE crrc DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  2. 执行全量建表 SQL(15张表,基于 requirements-specification.md 3.1 节)

| 序号 | 表名 | 说明 | 阶段一状态 | |------|------|------|-----------| | 1 | sys_user | 用户基础表 | 有数据 | | 2 | user_identity | 身份关联表 | 有数据 | | 3 | grower_profile | 果农档案表 | 有数据 | | 4 | worker_profile | 工人档案表 | 有数据 | | 5 | buyer_profile | 客商档案表 | 有数据 | | 6 | supplier_shop | 农资店铺表 | 有数据 | | 7 | recruit_info | 招工信息表 | 空表 | | 8 | worker_apply | 工人报名表 | 空表 | | 9 | phone_unlock_record | 联系授权记录 | 空表 | | 10 | call_log | 拨号日志表 | 空表 | | 11 | sms_daily_limit | 短信限流表 | 空表 | | 12 | market_price | 今日行情表 | 有数据 | | 13 | audit_log | 审核日志表 | 有数据 | | 14 | operation_log | 操作日志表 | 有数据 | | 15 | complaint | 投诉表 | 空表 |

  1. 核心索引创建

    • sys_user: phone_hash UNIQUE, openid UNIQUE, status INDEX
    • user_identity: user_id INDEX, identity_type INDEX
    • grower_profile: user_identity_id INDEX, (latitude,longitude) 复合索引, audit_status INDEX
    • worker_profile: user_identity_id INDEX, status INDEX
    • recruit_info: user_identity_id INDEX, status INDEX, keyword_flag INDEX, (latitude,longitude) 复合索引
    • buyer_profile: user_identity_id INDEX
    • phone_unlock_record: buyer_identity_id INDEX, grower_identity_id INDEX, expire_time INDEX
    • call_log: caller_identity_id INDEX, callee_identity_id INDEX
    • sms_daily_limit: (worker_identity_id, farmer_identity_id, sms_date) UNIQUE
    • market_price: variety INDEX, update_date INDEX
    • audit_log: operator_id INDEX
    • operation_log: operator_id INDEX
  2. 初始数据导入

    • 字典数据:苹果品种、工种类型、农资种类、行政区划(洒渔镇下辖村)
    • 超级管理员账号

验收标准

  • 15张表全部创建成功
  • 索引创建完整
  • 初始字典数据已导入
  • 应用可连接数据库

T0.5 Redis + 短信配置

属性 说明
负责 运维
前置
耗时 0.25天
并行 T0.4, T0.6

具体操作

  1. Redis 部署

    • 安装 Redis
    • 配置持久化(RDB/AOF)
    • 配置密码
    • 记录连接信息到 docs/mysql数据库配置.txt
  2. 阿里云短信申请

    • 申请短信签名:"洒渔用工"
    • 报备短信模板:
      • 模板1:报名通知 【洒渔用工】${workerName}(${workType})对您的招工感兴趣,联系电话:${phone}
      • 模板2:审核提醒 【洒渔用工】您提交的${type}信息已${result},请及时查看
    • 获取 AccessKey ID 和 Secret
    • 配置到 application.properties

验收标准

  • Redis 可连接,支持读写
  • 短信签名已通过审核
  • 短信模板已报备
  • 发送测试短信成功

T0.6 OSS + 微信配置

属性 说明
负责 运维
前置
耗时 0.25天
并行 T0.4, T0.5

具体操作

  1. 阿里云 OSS 配置

    • 创建 Bucket(如 sayu-app)
    • 配置访问策略(私有读写)
    • 配置 CORS(允许小程序域名)
    • 获取 AccessKey ID 和 Secret
    • 记录 Endpoint、Bucket 名称
  2. 微信小程序账号

    • 申请小程序 AppID
    • 配置服务器域名(request 合法域名、uploadFile 合法域名)
    • 获取 AppID 和 AppSecret
    • 配置到 application.properties

验收标准

  • OSS Bucket 可访问,能上传/下载测试文件
  • OSS CORS 配置正确
  • 微信小程序 AppID 就绪
  • 服务器域名已配置

T0.7 编译验证 + 冒烟

属性 说明
负责 后端
前置 T0.1, T0.4
耗时 0.25天
并行 无(串行)

具体操作

  1. 依赖链编译验证

    # 先编译共享库
    cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
    
    # 再编译各业务模块
    cd com.fenzhitech.crrc.service-user && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-system && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-audit && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-trade && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-goods && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-message && ./gradlew compileJava
    cd com.fenzhitech.crrc.service-file && ./gradlew compileJava
    
  2. 网关编译验证

    cd com.fenzhitech.crrc.gateway-mobile && ./gradlew compileJava
    cd com.fenzhitech.crrc.gateway-management && ./gradlew compileJava
    
  3. 启动冒烟测试

    cd com.fenzhitech.crrc.gateway-management && ./gradlew bootRun
    # 确认启动无报错,日志无 ERROR
    
  4. CI/CD 脚本验证

    • 配置编译验证脚本(遍历所有模块执行 ./gradlew compileJava)
    • 验证脚本可执行

验收标准

  • 所有模块 ./gradlew compileJava 零错误
  • ./gradlew bootRun 启动无报错
  • 启动日志无 ERROR
  • CI/CD 编译脚本可执行

T0.8 阶段一准备

属性 说明
负责 全员
前置 T0.7
耗时 0.25天
并行

具体操作

  1. 提交阶段零成果到 main

    git add .
    git commit -m "[milestone-0] 环境准备完成:项目骨架+数据库+外部服务配置"
    git push origin main
    
  2. 创建 docs/charter.md(项目章程)

    • 项目目标
    • 验收标准(引用 requirements-specification.md)
    • 四阶段里程碑定义
  3. 创建 docs/acceptance-criteria.md(里程碑验收标准)

    • M1 需求分析验收条件
    • M2 架构设计验收条件
    • M3 编码实现验收条件
    • M4 测试验收验收条件
  4. 创建 docs/project-log.md(项目日志)

    • 记录阶段零完成
  5. 准备阶段一派单

    • 提炼阶段零关键信息给 Team A

验收标准

  • main 分支包含完整项目骨架
  • charter.md 和 acceptance-criteria.md 就绪
  • project-log.md 已记录
  • 可以向 Team A 派单

环境就绪检查清单

序号 检查项 状态
1 项目骨架可编译通过(./gradlew compileJava 零错误)
2 数据库连接正常,全量表结构创建完成
3 OSS Bucket 可访问,能上传/下载测试文件
4 短信 SDK 可调用(发送测试短信成功)
5 Redis 连接正常
6 微信小程序开发者账号就绪
7 Git 仓库可 push/pull
8 ./gradlew bootRun 启动无报错