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
|
e096157063
|
feat: 备货单成交统计报告生成脚本(固定工具)
scripts/stock_deal_report.py:从 Navicat 全库 dump 流式解析 stock_orders/items,
按单据日期统计成交(有备货单即成交),支持单月/区间:
- 剔除草稿/拒绝/作废;初终版(object_id 互指)同月并存只计终版
- 新车/二手车按明细 mileage 判定;国家取清关目的国
- 输出 PDF 报告(月度分布/车型/国家/业务员/详单)+ 详单 CSV
- 每个 dump 自动建解析缓存,重跑秒级
用法:python3 scripts/stock_deal_report.py --year 2026 --month 7
python3 scripts/stock_deal_report.py --frm 2026-01 --to 2026-06
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-14 09:49:25 +08:00 |
|
mzl92
|
06b0647fc4
|
feat: 备货单车辆明细支持 attachment 附件字段
按前端对接文档,stock_order_items 每辆车支持附件 [{url,original_name}]:
- 模型 StockOrderItems:fillable 增加 attachment,新增 $casts=['attachment'=>'array']
(写自动 json_encode 落库、读自动 decode 回显)
- processVehicleItems:create 前归一化 attachment 为数组(store/update 共用此路径)
- generateVehicleUniqueId:排除 attachment,避免附件影响车辆去重/数量
show/detail 经模型 items 关系 + cast 自动回显 attachment;字段已由前端在库表就绪。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-06 15:01:03 +08:00 |
|
mzl92
|
6e2e8e1cc6
|
feat: 备货单列表支持 view_scope(all/self) 视图切换(仅 user_id=73)
在 /crm/stock/order/list 的 buildQueryConfig index 分支最前面短路:
- 仅当前用户 uid=73 且传 view_scope 时生效,最高优先级,覆盖角色范围逻辑
- all:自己和别人的单,排除草稿(approval_status>=1)
- self:只看自己(salesperson_id=73,含自己草稿)
- 非73用户或未传该参数:走原逻辑,向后兼容,无越权
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-06 11:49:28 +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
|
3d3caddc7d
|
docs: 询盘批量分配+汇总邮件方案设计
崔琪2.xlsx 1427 条询盘按 Excel 行序轮询分配给 6 名业务员,
更新 crm_customer.user_id 并发每人一封汇总邮件。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-17 14:46:04 +08:00 |
|
mzl92
|
b89ac48dd8
|
feat: 新增业务人员公共接口(role_id=2,全量返回)
- PublicApiController 新增 staffList():通过 user_roles 关联筛选业务人员
- 返回 id/name/sn/phone/email,支持 keyword 模糊匹配,不分页全量返回
- 路由组新增 /common/public/staff/list
- .gitignore 忽略 docs/*.sql(数据导出文件,不入库)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 13:37:48 +08:00 |
|
mzl92
|
71dca13119
|
fix: fb_leads 导入时对 full_name 增加 URL 过滤与长度截断
修复询盘自动导入因 full_name 含粘连 URL(如 "Saif Ullahhttps://...")
导致同步到 inquiry_log.contacts(varchar 255) 时超长报错、整批回滚卡死的问题。
- 新增 normalizeFullName():去掉粘连 URL + 截断到 255
- switch 新增 full_name 分支
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-16 16:47:42 +08:00 |
|
mzl92
|
35d98c16e9
|
feat: 新增备货单公共 API 接口(PI 号/VIN 号列表)
- 新增 ApiKeyAuth 中间件(hash_equals 防时序攻击)
- 新增 PublicApiController(piList/vinList 两个只读接口)
- 仅返回已审批通过(approval_status=2)的数据,支持分页和模糊搜索
- LIKE 通配符已转义,异常信息不暴露内部细节
- 附对接文档 docs/public-stock-api.md
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-02 17:44:53 +08:00 |
|
mzl92
|
929bae6f13
|
Finish Hotfix-1
|
2026-03-16 14:37:54 +08:00 |
|
mzl92
|
a72b30a699
|
调整合塑询单分配人
|
2026-03-16 14:37:39 +08:00 |
|
18338781771
|
75a59a7197
|
优化
|
2026-03-03 17:44:10 +08:00 |
|
18338781771
|
30f3e211af
|
抓取品牌
|
2026-02-05 09:16:24 +08:00 |
|
18338781771
|
eee09316df
|
抓取车型信息
|
2026-02-04 17:35:08 +08:00 |
|
mzl
|
2da3804953
|
Finish Hotfix-1
|
2026-02-03 11:15:03 +08:00 |
|
mzl
|
eae699cd27
|
ts
|
2026-02-03 11:14:45 +08:00 |
|
18338781771
|
4ea4204ff4
|
渠道调整
|
2026-02-03 10:51:08 +08:00 |
|
18338781771
|
67a39917f0
|
过滤未提交的
|
2026-01-22 17:20:29 +08:00 |
|
mzl92
|
b6851cdef0
|
Finish Hotfix-1
|
2026-01-22 10:15:19 +08:00 |
|
mzl92
|
733996f346
|
修改询盘自动配置
|
2026-01-22 10:15:05 +08:00 |
|
18338781771
|
607de6c70a
|
超管
|
2026-01-20 15:41:24 +08:00 |
|
18338781771
|
e7c5e17592
|
内勤可以看自己组员的备货单
|
2026-01-20 15:30:24 +08:00 |
|
mzl92
|
2ec89a880a
|
Finish Hotfix-1
|
2026-01-08 15:08:44 +08:00 |
|
mzl92
|
dffaac5b07
|
ts
|
2026-01-08 15:08:35 +08:00 |
|
mzl92
|
907be759a0
|
Finish Hotfix-1
|
2026-01-08 15:04:47 +08:00 |
|
mzl92
|
f7b94da39f
|
ts
|
2026-01-08 15:04:39 +08:00 |
|
mzl92
|
c6fada47fc
|
Finish Hotfix-1
|
2026-01-08 15:02:05 +08:00 |
|
mzl92
|
b09e695ca7
|
ts
|
2026-01-08 15:01:51 +08:00 |
|
mzl92
|
de39108efa
|
Finish Hotfix-1
|
2026-01-08 14:49:54 +08:00 |
|
mzl92
|
7dceb4b828
|
ts
|
2026-01-08 14:49:44 +08:00 |
|
mzl92
|
d056ba5f6f
|
Finish Hotfix-1
|
2026-01-08 09:14:34 +08:00 |
|
mzl92
|
99551bba7f
|
移除加纳询盘独立分配
|
2026-01-08 09:14:17 +08:00 |
|
18338781771
|
5e06b1737c
|
Merge branch 'hotfix/email'
|
2026-01-05 09:44:33 +08:00 |
|
18338781771
|
b43335c0d9
|
邮件清洗查询状态过滤
|
2026-01-05 09:44:26 +08:00 |
|
18338781771
|
ac6bfcf16c
|
Merge branch 'hotfix/email'
|
2026-01-04 16:13:55 +08:00 |
|
18338781771
|
9f74934f37
|
邮件
|
2026-01-04 16:13:21 +08:00 |
|
18338781771
|
9776df8289
|
Merge branch 'hotfix/email'
|
2026-01-04 15:50:50 +08:00 |
|
18338781771
|
6178084612
|
邮件
|
2026-01-04 15:50:43 +08:00 |
|
18338781771
|
d58c33e758
|
Merge branch 'hotfix/email'
|
2026-01-04 14:40:54 +08:00 |
|
18338781771
|
24e45f93db
|
邮件
|
2026-01-04 14:40:43 +08:00 |
|
18338781771
|
530d72071f
|
Merge branch 'hotfix/email'
|
2026-01-04 13:39:59 +08:00 |
|
18338781771
|
8382a47a8c
|
邮件处理
|
2026-01-04 13:32:15 +08:00 |
|
18338781771
|
f83e578bed
|
Merge branch 'hotfix/email'
|
2026-01-04 13:26:12 +08:00 |
|
18338781771
|
2c00a35b6a
|
发布人
|
2026-01-04 13:26:00 +08:00 |
|
18338781771
|
cd597b9605
|
Merge branch 'hotfix/email'
|
2026-01-04 11:46:28 +08:00 |
|
18338781771
|
259a7d2ae6
|
判断询盘
|
2026-01-04 11:46:04 +08:00 |
|
18338781771
|
10d3701ab0
|
Merge branch 'hotfix/email'
|
2026-01-04 11:02:59 +08:00 |
|