jacy
71f508e02b
feat: multi-module iteration
2026-08-04 21:38:49 +08:00
jacy
9d96c73246
feat: 技术支持工单/企微权限/开发版本管理/消息推送等迭代
2026-08-04 21:32:13 +08:00
jacy
89fd333702
feat(analytics): persona logging upgrade and Sentry system config
...
Add client-logging SDK, expanded event taxonomy, API observability, admin domain events UI, and move SENTRY_DSN to HQ system settings with @sentry/node bootstrap after config preload.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 22:30:02 +08:00
jacy
ab10431001
feat(trade): connect WeChat refund API and callback flow
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 21:45:33 +08:00
jacy
e93e4b8f84
feat: audit diff, mock SMS 999888, env photos, proxy pay lock, mini-user UX
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 20:47:28 +08:00
jacy
ffa753707b
feat: 套餐折叠、小程序 staging API、首页去筛选、企微日志权限
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 20:17:52 +08:00
jacy
3c19b7dd97
feat(store): 门店套餐 v3.4.10 全端实现
...
新增 StorePackage 与变更审核流,覆盖总部直存、合伙/门店提审、C 端展示与套餐异议工单;同步 PRD/开发文档与 REQ 索引。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 19:30:59 +08:00
jacy
dc30932012
feat(redeem): 核销记录标记扫码/手机号并支持方式统计
...
落库 RedeemChannel,门店记录页增加统计按钮,HQ 可按方式筛选。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 16:21:38 +08:00
jacy
54fca99208
feat(settlement): 统一门店账单列表合并 T+1 与手动提现
...
总部财务以门店账单为唯一入口;新增 store-settlements API,去掉独立提现审菜单并更新企微引导文案。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 16:04:45 +08:00
jacy
26472f8678
fix(settlement): 全部门店可未出账提现并企微提醒
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 15:43:24 +08:00
jacy
f3353bbce5
feat(settlement): 门店未出账手动提现与总部审核(OPT-010)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 15:32:01 +08:00
jacy
021b9e0329
fix(mini-user): 门店核销走马灯改用 JS 位移
...
微信端 CSS max-content/百分比 transform 不可靠;改为测量宽度后 translateX 滚动,并上移到店名下方。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 14:33:31 +08:00
jacy
4a5b9eaffa
feat(store): 门店详情核销记录走马灯
...
新增 GET /stores/:id/recent-redeems,C 端在门店详情区上方循环展示脱敏核销动态。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 14:16:06 +08:00
jacy
fa3484041e
feat(store): 门店可见白名单(对齐商品)
...
HQ 可配置 visibilityWhitelistEnabled + 手机号;C 端公开门店列表/详情按登录手机号过滤;登录态变化后小程序重新拉门店列表。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 13:58:35 +08:00
jacy
87c4af7364
客服电话 → 13203801799(CUSTOMER_SERVICE_PHONE,协议文案走常量自动同步)
...
权益页去掉分享按钮,菜单分享保留
支付成功改 reLaunch 清栈;订单列表返回首页
减数量低于起购时 toast「同城/跨城/现场提货至少购买 N 瓶」
核销成功可评星并 POST /redeem/ratings;HQ 新增「门店评价」页 /store-ratings
成功页「回到首页」改用 .redeem-cancel-btn,不再撑破布局
历史记录改为核销流水:GET /redeem/records;生产库已有 2 笔(用户 13073729990)可验证。权益明细字段映射也一并修了
我的页头像提高点击层级,避免被卡片遮挡
2026-08-03 13:09:59 +08:00
jacy
9f67221457
商品白名单
2026-08-03 12:53:39 +08:00
jacy
0621ac18fb
fix(ops): skip WeCom alerts for mini-program audit navigate noise
...
Filter anonymous mini-app page-not-found client errors (often WeChat review bots) from webhook while still logging and persisting.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 21:52:13 +08:00
jacy
442f1ea842
该商品不支持跨城配送,请更换为开城城市内的收货地址
2026-08-02 21:41:50 +08:00
jacy
847a3f0dc3
feat(catalog): add product fulfillment flags and auto SKU
...
Enable online/cross-city/on-site purchase switches with trade gates, HQ and proxy UI, and server-generated DK SKUs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 18:10:16 +08:00
jacy
205c1110c2
feat(ops): add client error reporting API and frontend hooks
...
Collect mini-user/shop/partner JS errors via POST /common/client-errors, persist logs, and push fatal/error to WeCom.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 16:27:08 +08:00
jacy
3328c52cb4
feat(ops): WeCom webhook alerts for pay/redeem anomalies
...
Add outbound group-bot alerts, rate/amount rules, stuck-order cron, HQ test button, and health db/redis checks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 16:01:30 +08:00
jacy
cb6ecaaba6
fix(trade): on-site pickup pay success marks order COMPLETED
2026-08-02 13:42:15 +08:00
jacy
ab3b230d01
fix(h5-shop): tip unbound WeChat login to use phone first
2026-08-02 13:15:47 +08:00
jacy
09e732bfa3
微信JSSDK对接,代下单支付
2026-08-02 11:49:35 +08:00
jacy
50ba6e9c56
概览页增加表格统计
2026-08-02 11:16:51 +08:00
jacy
6a23e79f4c
chore(deploy): add same-host staging stack next to production
...
dev deploys to /opt/dukang-staging (819x, *-test domains); main deploys to production. Staging uses full Mock with shared WeChat app ids.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 11:37:18 +08:00
jacy
8d6c0f9ac0
feat(ops): partner proxy order list and HQ order delete
...
CI / verify (pull_request) Has been cancelled
Add partner-facing proxy order list/detail; unlock SUPER_ADMIN order delete with cascade cleanup and type filter.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 10:10:39 +08:00
jacy
51f2b5fbfa
fix(trade): simplify proxy order and respect product whitelist
...
Drop SMS verification for HQ/partner proxy orders; keep form draft across product picker; hide whitelist-only products from partner catalog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 09:43:16 +08:00
jacy
2cd4e25682
feat(ops): add HQ admin proxy order and mini-user store session fixes
...
Align HQ orders page with partner dual-SMS offline proxy flow; improve mini-user stores session and WeChat confirm-receive handling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 09:18:19 +08:00
jacy
1a0afb6d39
feat(trade): WeChat confirm-receive component + admin status log columns
...
Open weappOrderConfirm in mini-user so users confirm in-app instead of
service notice; verify via get_order before completing. Show operator/remark
on admin order status timeline.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:48:44 +08:00
jacy
05dffbfa15
fix(wechat): use getStableAccessToken to avoid 40001
...
Switch mini/OA tokens to stable_token and retry shipping upload once on invalid credential.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:04:02 +08:00
jacy
a0a6c14758
feat(trade): WeChat trade-manage push + delay shipping upload
...
Receive trade_manage_order_settlement to sync confirm-receive/settle;
wait ~65s and retry on 10060001 before upload_shipping_info.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 15:37:42 +08:00
jacy
ed7fd4e013
feat(catalog): product visibility whitelist by phone
...
Admin can limit ON_SALE products to test phones; C-end filters by user phone.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 15:08:57 +08:00
jacy
bf9cd1bffd
feat(trade): upload WeChat mini program shipping info
...
Hook SHIPPING and on-site pickup to upload_shipping_info for settlement unlock.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 14:35:21 +08:00
jacy
f396cb1fef
feat(partner): map pick UX and Tencent LBS SN signature
...
Hide locate on store forms; restore optimized locpicker overlay.
Add TENCENT_LBS_SECRET_KEY and server-side sig for WebServiceAPI.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 12:56:51 +08:00
jacy
b0ff254cd8
fix(partner): use server LBS search instead of locpicker iframe
...
Avoid Tencent locpicker _listTap crash when selecting POI in WeChat WebView.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 11:31:02 +08:00
jacy
c3362851ff
fix(partner): restore Tencent locpicker iframe for store map pick
...
Partner H5 store create/edit uses locpicker again; expose LBS key for iframe.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 11:20:22 +08:00
jacy
309b180087
feat(admin): link city-partner store count; fix benefitUsageRule null string
...
CI / verify (pull_request) Has been cancelled
City partner storeCount jumps to /stores?partnerId=; normalize empty/null text so usage rule is not saved as literal "null.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 16:03:56 +08:00
jacy
118d57d710
feat(admin): delete store staff; city store count links to filtered list
...
CI / verify (pull_request) Has been cancelled
HQ can remove store sub-accounts from primary account detail; cities table store count jumps to /stores?cityId=.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 15:43:09 +08:00
jacy
0cb2b2cebb
feat(admin): store detail edit with login phone sync; tighten HQ UI
...
CI / verify (pull_request) Has been cancelled
HQ store update now syncs store_account.phone for shop login; expand editable store fields. System version only for SUPER_ADMIN; permissions checklist layout polish.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 15:10:14 +08:00
jacy
daeb24bbeb
feat(admin): gate user/order/city delete behind assignable HQ permissions
...
CI / verify (pull_request) Has been cancelled
Add users_delete, orders_delete, cities_delete; default HQ (incl. super admin) has none until explicitly granted.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 14:01:18 +08:00
jacy
b920c894b9
feat(admin): city delete with impact preview; optional partner fields
...
CI / verify (pull_request) Has been cancelled
Allow deleting open cities after listing partners/stores; company name, address, and districts optional on partner create.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:33:12 +08:00
jacy
37038a7591
fix(api): surface LLM network errors for WeCom AI replies
...
CI / verify (pull_request) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 12:59:49 +08:00
jacy
944306e45c
fix(admin,partner): replace Tencent iframe picker with server LBS search
...
CI / verify (pull_request) Has been cancelled
Avoid locpicker formatted_addresses crash; proxy suggest/nearby/reverse via /common/lbs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 12:56:50 +08:00
jacy
9ed0c24d11
fix(admin,partner): harden Tencent locpicker coords and confirm flow
...
CI / verify (pull_request) Has been cancelled
Accept latlng-only postMessage, confirm before apply, and read LBS key per request.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 00:47:08 +08:00
jacy
e2fd28a35b
fix(partner): drop store-create SMS verify; keep qualification aspect ratio
...
CI / verify (pull_request) Has been cancelled
Partner H5 no longer requires store phone SMS on create; qualification overlay uses height auto with widthFix.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 00:34:31 +08:00
jacy
15c35c49de
分享功能和资质文件展示
2026-07-28 00:31:31 +08:00
jacy
a49d8d99b6
fix(partner): drop pickup store and reorder promo on proxy order
...
CI / verify (pull_request) Has been cancelled
On-site pickup no longer requires a store; move optional promo above fulfillment mode.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 00:19:52 +08:00
jacy
b59d4484ec
feat(partner): complete proxy order with dual SMS and pickup
...
CI / verify (pull_request) Has been cancelled
Add partner/customer SMS confirm, address auto-receive or on-site
pickup, proxy placer fields, PARTNER_PROXY user source, and C-end badge.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 00:04:59 +08:00
jacy
cd23119470
feat(mini-user): enable share on home/benefit and OSS qualification
...
CI / verify (pull_request) Has been cancelled
Wire WeChat share on home and benefit tabs; serve mine qualification
from OSS; mask phones on admin users and wechat bindings pages.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 23:41:29 +08:00