chengma
|
f201bcc4bf
|
feat: 安全领取并分派采购任务 (#72)
|
2026-08-10 00:05:40 +08:00 |
|
chengma
|
460619392f
|
docs: 归档任务 #71
|
2026-08-09 23:40:18 +08:00 |
|
chengma
|
311d55f0da
|
feat: 实现采购任务安全演练 (#71)
|
2026-08-09 23:39:37 +08:00 |
|
chengma
|
dbc08dc0ec
|
docs: 归档任务 #69
|
2026-08-09 22:56:00 +08:00 |
|
chengma
|
4433e3af37
|
feat: 完成规格映射与采购任务创建 (#69)
|
2026-08-09 22:55:14 +08:00 |
|
chengma
|
610e9e3749
|
docs: 归档任务 #70
|
2026-08-09 22:48:51 +08:00 |
|
chengma
|
a6c573a76a
|
fix: 允许等待重试任务手动重新执行 (#70)
|
2026-08-09 22:47:44 +08:00 |
|
chengma
|
5df5398f32
|
docs: 归档任务 #68
|
2026-08-09 22:41:26 +08:00 |
|
chengma
|
518e6df349
|
feat: 统一蝦皮与顺运宝 PDD 关联入口 (#68)
|
2026-08-09 22:40:58 +08:00 |
|
chengma
|
eb0e296b7c
|
docs: 归档任务 #67
|
2026-08-09 22:34:34 +08:00 |
|
chengma
|
c6ef54dce1
|
feat: 建立顺运宝采购处理状态 (#67)
|
2026-08-09 22:32:19 +08:00 |
|
chengma
|
c01f3f8b0e
|
docs: 归档任务 #66
|
2026-08-09 22:20:21 +08:00 |
|
chengma
|
ff8cdd77c3
|
fix: Wi-Fi 恢复失败后继续搜索设备 (#66)
|
2026-08-09 22:18:55 +08:00 |
|
chengma
|
8643c37211
|
docs: 归档任务 #65
|
2026-08-09 22:05:35 +08:00 |
|
chengma
|
e9a190eed7
|
style: 右对齐 Admin 底栏提示 (#65)
|
2026-08-09 22:05:11 +08:00 |
|
chengma
|
95df15747a
|
docs: 归档任务 #64
|
2026-08-09 21:52:07 +08:00 |
|
chengma
|
155dd3b4a2
|
feat: 统一 Admin 主列表分页 (#64)
|
2026-08-09 21:51:20 +08:00 |
|
chengma
|
5c9ebd968c
|
docs: 归档任务 #63
|
2026-08-09 21:45:28 +08:00 |
|
chengma
|
eda3661604
|
feat: 增加采集任务重新执行入口 (#63)
|
2026-08-09 21:44:29 +08:00 |
|
chengma
|
72821eaaef
|
docs: 修正任务 #46 归档格式
|
2026-08-09 21:23:06 +08:00 |
|
chengma
|
2756999a08
|
docs: 归档任务 #47
|
2026-08-09 21:22:49 +08:00 |
|
chengma
|
d062d38ffc
|
docs: 归档任务 #46
|
2026-08-09 21:22:49 +08:00 |
|
chengma
|
453dcf7c5f
|
docs: 归档任务 #48
|
2026-08-09 21:14:58 +08:00 |
|
chengma
|
e5abbfd4b9
|
docs: 归档任务 #62
|
2026-08-09 21:02:58 +08:00 |
|
chengma
|
d8a24247df
|
fix: 同步记录弹窗改为局部刷新 (#62)
|
2026-08-09 21:02:28 +08:00 |
|
chengma
|
ee1e060e3a
|
docs: 归档任务 #61
|
2026-08-09 20:41:51 +08:00 |
|
chengma
|
3fd863da64
|
feat: 优化顺运宝同步反馈与记录刷新 (#61)
|
2026-08-09 20:41:24 +08:00 |
|
chengma
|
59d70b2d64
|
docs: 归档任务 #60
|
2026-08-09 19:01:31 +08:00 |
|
chengma
|
919522ff79
|
fix: 修复顺运宝分页总数误判 (#60)
|
2026-08-09 19:01:04 +08:00 |
|
chengma
|
3bd9c9a2c3
|
docs: 归档任务 #59
|
2026-08-09 18:23:33 +08:00 |
|
chengma
|
05a54b044d
|
feat: 统一顺运宝日期同步并记录历史 (#59)
|
2026-08-09 18:22:58 +08:00 |
|
chengma
|
ea7932db63
|
docs: 归档任务 #58
|
2026-08-09 17:18:55 +08:00 |
|
chengma
|
4b5cd13807
|
fix: 增强顺运宝同步完整性保护 (#58)
|
2026-08-09 17:17:42 +08:00 |
|
chengma
|
17b8f53113
|
docs: 归档任务 #57
|
2026-08-09 16:50:20 +08:00 |
|
chengma
|
008bb87620
|
feat: 支持管理员自助修改密码 (#57)
|
2026-08-09 16:49:28 +08:00 |
|
chengma
|
2cbb98f09c
|
docs: 归档任务 #56
|
2026-08-09 16:32:12 +08:00 |
|
chengma
|
ff75b271ee
|
fix: 防止拖选内容误关闭弹窗 (#56)
|
2026-08-09 16:31:41 +08:00 |
|
chengma
|
64318b92a0
|
docs: 归档任务 #55
|
2026-08-09 16:15:30 +08:00 |
|
chengma
|
2cce9e3888
|
fix: 用户密码最小长度调整为六位 (#55)
|
2026-08-09 16:14:58 +08:00 |
|
chengma
|
ac9e227ee7
|
docs: 归档任务 #54
|
2026-08-09 16:03:13 +08:00 |
|
chengma
|
e0c0dac7a0
|
feat: 增加客户端采购员归属管理 (#54)
|
2026-08-09 16:02:25 +08:00 |
|
chengma
|
0181170457
|
docs: 归档任务 #52
|
2026-08-09 13:57:17 +08:00 |
|
chengma
|
cbc01f8b39
|
docs: 归档任务 #51
|
2026-08-09 13:51:34 +08:00 |
|
chengma
|
771e2ee616
|
docs: 归档任务 #50
|
2026-08-09 13:37:23 +08:00 |
|
chengma
|
0a7db404a1
|
feat: 实现 Admin 首次初始化与网页登录 (#50)
|
2026-08-09 13:36:41 +08:00 |
|
chengma
|
1064ffed59
|
docs: 归档任务 #53
|
2026-08-09 13:24:36 +08:00 |
|
chengma
|
a18d4e67ae
|
feat: 顺运宝支持指定日期同步 (#53)
|
2026-08-09 13:24:02 +08:00 |
|
chengma
|
24b6c742c1
|
docs: 归档任务 #49
|
2026-08-09 13:12:58 +08:00 |
|
chengma
|
fc03388ed4
|
docs: 定义 Admin 登录与账号管理基线 (#49)
|
2026-08-09 13:12:03 +08:00 |
|
 chengmaandClaude Opus 5
|
2e686b17a4
|
feat: 顺运宝登录接入验证码自动识别 (#47)
#46 的登录只有手工输验证码一条路,而会话 24 小时就过期——每天第一次
同步都得有人在场,将来也做不了定时同步。
docs/admin/08 §8 当时写死"不引入 OCR 服务",理由是"多一个必须先启动的
东西"。那条判断基于示例脚本里的 http://127.0.0.1:8000/ocr(本机服务)。
用户提供了托管地址后前提不成立,本工单推翻它——文档里改写并保留原文,
让后来人知道这个决定变过、为什么变。
OCR 优先、手工兜底:识别成功直接登录,失败或服务不可达降级到 #46 已有的
手工弹窗,并在弹窗里说明是"已尝试 N 次"还是"服务不可用"。手工路径不删,
外部服务挂了不该让整个同步功能不可用。
识别失败也是 code:200。实测拿无文字图片探测 https://ocr.ilapage.cn/ocr
返回 {"code":200,"message":"Success","data":""}——不是错误码。所以
Recognize 只负责"这次 HTTP 调用有没有问题",空 data 照常返回 (", nil),
业务校验交给调用方;空 data 和长度不对收敛到同一个 len(code) != 4,
一条规则覆盖两种情况。
不合格的验证码不拿去登录:白费一次尝试,且频繁错误登录可能触发风控。
审查时变异测试发现这条没有测试守着——原测试只断言"重新取图了"和
"最终登录成功",禁用长度校验后依然成立。已补 loginRecorder 记录每次
提交到 /am/auth/login 的 code,断言登录只被调用一次且提交的是合格的那个。
每次重试重新取图(同一张图再识别结果一样,且可能已被上次失败的登录作废);
OCR 用独立 HTTP 客户端不带顺运宝 Cookie;验证码图片只在内存里传,不落盘。
OCR 不可达立即降级、不占用重试次数——对着连不上的地址重试 5 次,
操作员要等 50 秒才看到手工输入框,结果注定一样。
测试全部用 httptest,不打真实的 ocr.ilapage.cn 和 shunyunbaoerp.com。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-09 12:35:02 +08:00 |
|