--- name: "wellness" description: "管理按摩放松记录:查询/新增技师联系人(cc_contract)和放松记录(cc_contract_record),本地 MySQL wellness 库。" status: proposal version: "v1" date: "2026-08-25T13:29:04.543Z" --- # Wellness — 按摩放松记录管理 管理本地 MySQL `wellness` 数据库,专注**按摩/放松**方向的技师联系人(联系方式)与每次放松记录的**查询与新增**。统计功能后续扩展。 ## 数据库连接 本库 `wellness` 是 agent `wellness` 的本地私有库:库名 = agent id,账号 `agent_wellness`,唯一入口 `db-conn.sh`。 ```bash # 推荐(新机制唯一入口) ~/.openclaw/scripts/db-conn.sh wellness --sql "" # 也可以走 db-query skill(内部同样走 db-conn.sh) python3 /home/yangxuan/.openclaw/workspace/skills/db-query/scripts/db_query.py --database wellness --query "" ``` - 连接方式:本机 Docker MySQL 容器,账号 `agent_wellness`(**禁止 root、禁止 docker exec 直连、禁止跨库**) - 口令存 `~/.openclaw/.env` 的 `DB_PASSWORD_放松保健`,由 `db-conn.sh` 内部读取(不进命令行、不打印) - 执行路径:`/home/yangxuan/.openclaw/workspace/skills/db-query/scripts/db_query.py` ## 表结构 ### cc_contract — 技师/联系人 | 字段 | 类型 | 说明 | |------|------|------| | id | varchar(32) PK | 联系人 id | | name | varchar(100) UNIQUE | 名称(唯一) | | face_url | varchar(200) | 头像地址 | | wechat / qq / phone | varchar(100) | 微信 / QQ / 电话 | | address | varchar(500) | 地址 | | is_read | tinyint | 是否已阅 | | price | int | 价格 | | description / comment | text | 描述 / 评论 | | group_type | int | 组别:0自营 1客服 2spa | | score | int | 评分 | | gmt_create / gmt_update | datetime | 创建 / 更新时间 | | status | tinyint | 0有效 1无效 | | deleted | bit(1) | 是否删除 | ### cc_contract_record — 每次放松记录 | 字段 | 类型 | 说明 | |------|------|------| | id | varchar(50) PK | 记录 id | | contract_id | varchar(32) | 对应联系人 id(必填) | | contract_name | varchar(100) | 名称(冗余) | | record_date | date | 日期(必填) | | record_locale | varchar(200) | 地点(必填) | | price | int | 价格 | | score | int | 评分 | | comment | text | 评论 | | gmt_create / gmt_update | datetime | 创建 / 更新时间 | ## 操作规范 ### 1. 查询 - 查联系人:`SELECT id,name,phone,wechat,qq,address,price,score,group_type,comment FROM cc_contract WHERE deleted=0 AND status=0`(可加 name LIKE / group_type / price 过滤) - 查一次记录:`SELECT contract_name,record_date,record_locale,price,score,comment FROM cc_contract_record WHERE deleted=0 AND status=0 ORDER BY record_date DESC`(可加 contract_id / 日期范围过滤) - 按技师查历史:`... WHERE contract_id='' ...` - 展示给用户时用中文清晰呈现,联系方式公开非敏感 ### 2. 记录(新增) **新增技师联系人**: ```sql INSERT INTO cc_contract (id, name, wechat, qq, phone, address, price, description, comment, group_type, is_delete, status, deleted, gmt_create, gmt_update, score) VALUES (UUID(), '', '', '', '', '
', , '', '', , 0, 0, 0, NOW(), NOW(), ) ``` > `` 用 `UUID()` 生成(32位无横线)。若 name 已存在会因 UNIQUE 冲突报错,先查询确认。 **新增一次放松记录**: ```sql INSERT INTO cc_contract_record (id, contract_id, contract_name, record_date, record_locale, price, score, comment, is_delete, status, deleted, gmt_create, gmt_update) VALUES (UUID(), '', '', '', '', , , '', 0, 0, 0, NOW(), NOW()) ``` > contract_id 需先从 cc_contract 查到对应联系人 id;record_date 用 `YYYY-MM-DD`;record_locale 必填。 ### 3. 更新 / 软删 - 更新联系人/记录:`UPDATE ... WHERE id=''`(保留软删字段不变) - 软删:`UPDATE cc_contract SET status=1,deleted=1 WHERE id=''`(不物理删除) ⚠️ **写入前先 SELECT 确认目标存在**,避免误操作。所有写入均通过 db-query 脚本执行。 ## 通用原则 - 全程中文交互 - 联系方式非敏感信息,正常展示,但**不向第三方外泄** - 任何删除/批量修改操作前,先向杨轩展示精确清单并确认 - 统计/报表功能后续扩展,暂不做