Commit Graph

24 Commits

Author SHA1 Message Date
mzl92 21c1d6afd9 fix: WhatsApp截图OSS对象键双斜杠(OSS_MAIN_DIR自带尾斜杠)
rtrim 尾斜杠后再拼接,避免 x_server//crm_whatsapp/;已入库记录的键与
OSS对象位置一致不受影响,仅影响后续导入。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 10:45:35 +08:00
mzl92 09fdd7a5d5 fix: 询盘导入命令 notify-only 改为从 manifest 读分配结果
问题:--no-notify 建档后号码/邮箱已入库,--notify-only 重新解析时会被
去重逻辑全部判为重复,导致补发邮件变"共 0 条"。
修复:建档成功即把每人分配明细存入 manifest(groups),notify-only 从
manifest 读取补发(无 manifest 则报错提示先跑 --no-notify/完整命令)。
顺带修复重跑场景:无新建档时沿用已有 manifest 结果,不会误发空邮件。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 10:14:40 +08:00
mzl92 37e63637a4 feat: 合塑谷歌网站whatsapp询盘导入命令(截图传OSS+建档+分配+邮件)
新命令 inquiry:import-hesu-google-wa:
- 解析 WhatsApp 询盘 Excel(列头:WhatsApp号码/最后留言/截图文件名等)
- 号码归一化(去横线空格);contacts=号码、号码存 WhatsApp 字段、phone/email 空
- 按号码去重:对比库内 crm_customer 的 WhatsApp 与 phone 两列 + 文件内同号只留首条
- 截图按文件名从 --images-dir 找图传 OSS(OSS_MAIN_DIR/crm_whatsapp/),
  对象键写入 desc_collect;缺失/失败不阻断,dry-run 只报数量不上传
- 建档口径:corp_id=1、channel_id=4、type=2、grade=0、magnitude=2、created_at=当前
- --users 轮询分配;汇总邮件复用 InquiryDigestMail,manifest 防重发
- 支持 --dry-run / --no-notify / --notify-only / --only-user 分步执行

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-18 16:26:31 +08:00
mzl92 3a3ed12fd5 feat: 合塑谷歌网站询盘导入命令(新询盘建档+分配+邮件)
新命令 inquiry:import-hesu-google,处理库外新询盘 Excel:
- 按表头名解析(客户姓名/电话WhatsApp合并列/邮箱/留言内容/产品页链接)
- 建档固定口径:corp_id=1(合塑)、channel_id=4(合塑谷歌)、type=2(导入)、
  grade=0、magnitude=2、created_at=当前时间、code 走模型钩子自动生成
- desc_collect=留言内容+产品页链接,intended_vehicles=从 URL 提取车型 slug
- 去重:电话或邮箱与现有未删除客户重复(含文件内重复)跳过并列清单
- 轮询分配 --users;汇总邮件复用 InquiryDigestMail,manifest 防重发
- 支持 --dry-run / --no-notify / --notify-only / --only-user 分步执行

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-18 14:40:53 +08:00
mzl92 b2684ecbb2 feat: 询盘批量分配接入事务写库与汇总邮件发送
- applyAssignments: 单事务更新 crm_customer.user_id + 写 crm_customer_his
- sendDigests: 按 user 表邮箱每人发一封汇总邮件,失败重试1次
- manifest: runtime 下 JSON 记录 emailed 状态,防重复发送
- 新增 --no-notify(只写库不发邮件),与 --notify-only 配合分步执行

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 15:09:52 +08:00
mzl92 61c34db99e feat: 新增询盘批量分配命令(骨架+Excel解析+code匹配+dry-run)
- InquiryDigestMail: 汇总邮件 HTML 模板
- InquiryBulkAssignCommand: assign 轮询、parseExcel、matchCustomers(code+排除软删除)、dry-run 报告、--self-test

写库/发邮件逻辑见后续提交。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 14:56:36 +08:00
mzl92 eea13a2a58 Merge branch 'develop'
# Conflicts:
#	app/command/InquiryImportFbCommand.php
#	app/inquiry/utils/FbLeadHeaderMapper.php
2025-12-12 17:52:20 +08:00
mzl92 85a79193a6 ts 2025-12-11 15:23:02 +08:00
mzl92 38deea3b0d Merge branch 'develop' 2025-12-11 15:07:55 +08:00
mzl92 b60df7f5cf ts 2025-12-10 20:26:21 +08:00
mzl92 628429af66 Merge branch 'develop' 2025-12-10 20:18:46 +08:00
mzl92 80fbf6c35a Merge branch 'develop'
# Conflicts:
#	config/route.php
2025-11-11 16:46:22 +08:00
18338781771 8ba5895810 crm反改询单归属 2025-08-26 15:50:29 +08:00
18338781771 d90a8b05ce 组员客户数 2025-08-14 15:28:15 +08:00
18338781771 f4a2966b1e 分配派卡离职人员客户 2025-08-13 17:44:05 +08:00
18338781771 e3c985e601 跟单人修改 2025-08-06 17:42:24 +08:00
mzl92 a315ad33f1 Merge branch 'feature/mzl_dev'
# Conflicts:
#	app/command/TbCommand.php
#	app/common/utils/email/Emails.php
#	app/controller/IndexController.php
#	app/functions.php
2025-08-04 18:11:44 +08:00
mzl92 b2d4119e46 Merge branch 'feature/mzl_dev' 2025-08-04 14:03:57 +08:00
18338781771 c8380ade82 客户创建时间脚本 2025-08-01 13:53:40 +08:00
18338781771 1c7ca2a999 初始化用户密码 2025-07-31 10:02:46 +08:00
18338781771 dc5766d87a Merge branch 'feature/crmAdmin0717' 2025-07-30 15:16:36 +08:00
18338781771 269bd7168e 公海区分 2025-07-30 15:15:57 +08:00
mzl92 c641b5cb1f 修改脚本 2025-07-29 19:02:49 +08:00
mzl92 d74b374198 Merge branch 'develop' 2025-07-29 09:00:04 +08:00