实际修改: - 店铺维度报表新增真实数据库条件查询:店铺字段走共享镜像 SQL WHERE,主体/能否变更/生效/失效走生命周期行级过滤(左闭右开) - 店铺负责人/部门负责人/利润中心改为店铺账号 PostgreSQL 镜像值, 按店铺名称关联,未匹配时回退经营分析副本库原值 - 能否变更按主表 platform 判定(唯品会MP/淘工厂=否,其余=是), 筛选改为 是/否 下拉;默认生效时间 2026-07-01,失效未记录显示存续中 - 主体维度经营报表接入生命周期收入窗口与注册地址解析市字段 - 同步更新视图测试并重写 StoreReportRepositoryTest 匹配 SQLite 实现 验证:容器内 tests/Feature/Business + tests/Unit/EcommerceFinance + tests/Unit/Business 共 324 passed / 4 skipped;真实数据端到端验证 (无筛选 1935 行、负责人/利润中心/失效区间筛选抽样全对)。 无新增数据库迁移,不涉及生产数据写入。
84 lines
2.5 KiB
YAML
84 lines
2.5 KiB
YAML
# 本地开发/测试用 Compose 文件
|
||
# - app 通过 runtime/.env 读取当前系统数据库配置
|
||
# - mysql 只用于首次登录和填写“系统数据库”前的临时引导
|
||
# - 保存系统数据库后,用户、设置和云数据库登记都来自共享系统数据库
|
||
#
|
||
# 标准启动:bash deploy/local-init.sh(自动判断是否需要重建镜像)
|
||
# 停止: docker compose -f docker-compose.local.yml down
|
||
# 日志: docker compose -f docker-compose.local.yml logs -f app
|
||
#
|
||
# 不要把生产 APP_KEY、其他开发者的 .env 或云数据库密码复制到本机。
|
||
|
||
services:
|
||
app:
|
||
build:
|
||
context: .
|
||
dockerfile: deploy/Dockerfile.local
|
||
image: jiangling_akaunting:local
|
||
container_name: jiangling_app
|
||
restart: unless-stopped
|
||
depends_on:
|
||
mysql:
|
||
condition: service_healthy
|
||
ports:
|
||
- "127.0.0.1:18088:18088"
|
||
volumes:
|
||
- ./runtime/.env:/var/www/html/.env
|
||
- ./runtime/bills.sqlite:/var/www/html/runtime/bills.sqlite:ro
|
||
- jiangling_storage:/var/www/html/storage
|
||
- ./app:/var/www/html/app
|
||
- ./config:/var/www/html/config
|
||
- ./database:/var/www/html/database
|
||
- ./deploy:/var/www/html/deploy
|
||
- ./modules:/var/www/html/modules
|
||
- ./resources:/var/www/html/resources
|
||
- ./routes:/var/www/html/routes
|
||
- ./scripts:/var/www/html/scripts
|
||
- ./tests:/var/www/html/tests
|
||
networks:
|
||
- jiangling_net
|
||
healthcheck:
|
||
test: ["CMD", "jiangling-healthcheck"]
|
||
interval: 15s
|
||
timeout: 5s
|
||
retries: 10
|
||
start_period: 60s
|
||
|
||
mysql:
|
||
image: mysql:8.0
|
||
container_name: jiangling_mysql
|
||
restart: unless-stopped
|
||
# 这些凭据只属于回环地址上的临时引导库,不是团队共享数据库凭据。
|
||
environment:
|
||
MYSQL_ROOT_PASSWORD: rootpass
|
||
MYSQL_DATABASE: akaunting
|
||
MYSQL_USER: akaunting
|
||
MYSQL_PASSWORD: akaunting123
|
||
command:
|
||
- --character-set-server=utf8mb4
|
||
- --collation-server=utf8mb4_unicode_ci
|
||
- --default-authentication-plugin=mysql_native_password
|
||
volumes:
|
||
- jiangling_mysql:/var/lib/mysql
|
||
ports:
|
||
- "127.0.0.1:13306:3306"
|
||
networks:
|
||
- jiangling_net
|
||
healthcheck:
|
||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
|
||
interval: 5s
|
||
timeout: 5s
|
||
retries: 20
|
||
start_period: 30s
|
||
|
||
volumes:
|
||
jiangling_storage:
|
||
name: jiangling_storage
|
||
jiangling_mysql:
|
||
name: jiangling_mysql
|
||
|
||
networks:
|
||
jiangling_net:
|
||
name: jiangling_net
|
||
driver: bridge
|