[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"knowledge-\u002Fapi\u002Fknowledge\u002Fteam-documents\u002F09":3,"knowledge-related-\u002Fknowledge\u002Fteam-documents\u002F09":627,"knowledge-series-\u002Fknowledge\u002Fteam-documents\u002F09":653},{"source":4,"connector":5,"page":6},"sqlite","better-sqlite3",{"path":7,"title":8,"description":9,"category":10,"tags":11,"date":14,"pinned":15,"draft":15,"body":16,"seo":623,"stem":624,"id":625,"extension":626},"\u002Fknowledge\u002Fteam-documents\u002F09","同业主重复单提醒规则","梳理商家系统与 BOSS 系统中触发「同业主重复单」提醒的完整场景、不触发的场景、背后的业务含义与边界案例，并说明该规则与前端提示交互的配合注意事项。","团队文档",[12,13],"team","payment","2020-06-07",false,{"type":17,"value":18,"toc":607},"minimark",[19,22,26,39,48,52,125,128,174,177,184,211,214,217,281,284,287,369,372,375,439,442,445,465,468,504,507,554,557,592,595],[20,21,8],"h1",{"id":8},[23,24,25],"h2",{"id":25},"背景",[27,28,29,30,34,35,38],"p",{},"「同业主重复单」提醒是下单链路中的一道风控\u002F体验提示：当同一业主在短时间内被重复下单（服务单或商品销售单）时，系统需要提前告知操作人，避免因误操作或信息不同步导致重复扣款、重复派单，增加客服与售后成本。由于下单入口分散在",[31,32,33],"strong",{},"商家系统","（新版\u002F旧版）与",[31,36,37],{},"内部 BOSS 系统","多个模块，规则容易出现「有的入口触发、有的入口不触发」的认知差异，因此单独梳理成规则文档，作为前后端与客服排查问题时的统一口径。",[27,40,41,42,47],{},"该规则的诉求方主要有两类：一是商家\u002F客服在操作层面希望「少点一次是一次」，减少手滑造成的额外单据；二是财务\u002F风控层面希望在扣款前留有一道人工确认关口，降低资金纠纷概率。梳理本文的直接动因，是此前排查一次线上问题（见 ",[43,44,46],"a",{"href":45},"\u002Fknowledge\u002Fteam-documents\u002F11","系统下单（重复单提示框）异常复盘","）时发现，前后端对「哪些场景该触发提醒」的理解并不完全一致，因此需要一份权威文档统一口径。",[23,49,51],{"id":50},"会触发同业主重复单提醒的场景","会触发「同业主重复单」提醒的场景",[53,54,55,71],"table",{},[56,57,58],"thead",{},[59,60,61,65,68],"tr",{},[62,63,64],"th",{},"系统\u002F入口",[62,66,67],{},"操作",[62,69,70],{},"说明",[72,73,74,86,95,106,115],"tbody",{},[59,75,76,80,83],{},[77,78,79],"td",{},"新版\u002F旧版商家系统",[77,81,82],{},"提交「下服务单」",[77,84,85],{},"提交时触发检测",[59,87,88,90,93],{},[77,89,79],{},[77,91,92],{},"提交「下商品销售单」",[77,94,85],{},[59,96,97,100,103],{},[77,98,99],{},"BOSS 系统",[77,101,102],{},"控制面板「便捷下服务单」",[77,104,105],{},"下单时触发检测",[59,107,108,110,113],{},[77,109,99],{},[77,111,112],{},"控制面板「新版\u002F老版便捷下轨道单」",[77,114,105],{},[59,116,117,119,122],{},[77,118,99],{},[77,120,121],{},"服务单列表 \u002F 客服服务单列表，草稿箱服务单执行正式下单",[77,123,124],{},"由草稿转正式下单时触发检测",[23,126,127],{"id":127},"不会触发提醒的场景",[53,129,130,140],{},[56,131,132],{},[59,133,134,136,138],{},[62,135,64],{},[62,137,67],{},[62,139,70],{},[72,141,142,152,163],{},[59,143,144,146,149],{},[77,145,79],{},[77,147,148],{},"商品销售单处于草稿箱状态",[77,150,151],{},"无论列表批量下单还是详情下单，草稿箱状态下均不触发检测",[59,153,154,157,160],{},[77,155,156],{},"商品销售单列表",[77,158,159],{},"批量下单并直接扣款",[77,161,162],{},"仅在「待付款\u002F草稿箱」状态下才触发检测，正式已支付订单不再重复检测",[59,164,165,168,171],{},[77,166,167],{},"商品销售单详情",[77,169,170],{},"详情页下单并跳转支付页手动支付",[77,172,173],{},"同上，仅「待付款\u002F草稿箱」状态下触发",[23,175,176],{"id":176},"业务含义",[27,178,179,180,183],{},"规则设计的核心逻辑可以概括为：",[31,181,182],{},"「正式下单」动作才需要检测，「草稿」「已完成」等非正式下单状态不检测","。",[185,186,187,194,208],"ul",{},[188,189,190,193],"li",{},[31,191,192],{},"服务单","：只要是正式提交下单动作（无论来自商家系统还是 BOSS 系统入口），都视为「可能产生实际履约与扣费」的动作，因此统一检测；",[188,195,196,199,200,203,204,207],{},[31,197,198],{},"商品销售单","：区分了「草稿箱」与「待付款」两种前置状态——纯草稿箱状态下的批量\u002F详情操作不检测（因为草稿本身允许反复修改、暂存，不产生实际业务影响），但",[31,201,202],{},"草稿箱执行下单","或",[31,205,206],{},"待付款状态","下的下单\u002F支付动作会检测（因为这一步会真正扣款或推进流程）；",[188,209,210],{},"换句话说，规则本质是在「资金\u002F履约动作即将真正发生」的临界点做拦截，而不是在“单据被创建”的时刻做拦截。",[23,212,213],{"id":213},"数据口径与统计建议",[27,215,216],{},"为便于后续复盘规则效果，建议在检测触发时统一上报以下字段，作为数据分析的最小口径：",[53,218,219,228],{},[56,220,221],{},[59,222,223,226],{},[62,224,225],{},"字段",[62,227,70],{},[72,229,230,241,251,261,271],{},[59,231,232,238],{},[77,233,234],{},[235,236,237],"code",{},"triggerSource",[77,239,240],{},"触发入口（商家系统新版\u002F旧版、BOSS 控制面板、草稿转正式下单等）",[59,242,243,248],{},[77,244,245],{},[235,246,247],{},"ownerId",[77,249,250],{},"业主标识，用于统计同业主命中频次",[59,252,253,258],{},[77,254,255],{},[235,256,257],{},"duplicateOrderNo",[77,259,260],{},"被判定为重复的历史单号",[59,262,263,268],{},[77,264,265],{},[235,266,267],{},"userAction",[77,269,270],{},"操作人最终选择（取消 \u002F 继续下单）",[59,272,273,278],{},[77,274,275],{},[235,276,277],{},"timeGapSeconds",[77,279,280],{},"与上一笔单据的时间间隔",[27,282,283],{},"有了统一口径后，运营和产品可以定期review「继续下单」占比：若某入口「继续下单」比例异常偏高，可能说明该场景本身存在业务上合理的短时多单需求，规则或提示文案需要针对性调整，而不是简单地认为规则失效。",[23,285,286],{"id":286},"边界案例",[53,288,289,303],{},[56,290,291],{},[59,292,293,296,300],{},[62,294,295],{},"场景",[62,297,299],{"align":298},"center","是否触发",[62,301,302],{},"原因",[72,304,305,316,327,338,348,359],{},[59,306,307,310,313],{},[77,308,309],{},"商品销售单从草稿箱新建但未提交",[77,311,312],{"align":298},"否",[77,314,315],{},"未触发正式下单动作",[59,317,318,321,324],{},[77,319,320],{},"商品销售单草稿箱状态下，批量选中多条并直接扣款",[77,322,323],{"align":298},"是",[77,325,326],{},"该操作会立即产生扣款，属于正式下单动作",[59,328,329,332,335],{},[77,330,331],{},"商品销售单详情页点击下单，跳转支付页但未支付",[77,333,334],{"align":298},"是（检测节点在跳转前）",[77,336,337],{},"检测发生在“下单”动作触发时，而非等待用户完成支付后",[59,339,340,343,345],{},[77,341,342],{},"服务单已是正式状态（非草稿），再次编辑保存",[77,344,312],{"align":298},[77,346,347],{},"编辑保存不等同于重新下单，不会重复触发检测",[59,349,350,353,356],{},[77,351,352],{},"BOSS 系统草稿箱服务单被删除后重新创建同类单",[77,354,355],{"align":298},"视为新的下单动作，按创建后的下单节点触发",[77,357,358],{},"删除后原草稿失效，新单据走正常检测逻辑",[59,360,361,364,366],{},[77,362,363],{},"同一业主在不同入口（商家系统 + BOSS）几乎同时下单",[77,365,323],{"align":298},[77,367,368],{},"检测逻辑与入口无关，只与业主维度、时间窗口和单据状态相关",[23,370,371],{"id":371},"检测规则的技术实现要点",[27,373,374],{},"规则本身是后端判断，但前端在对接检测结果时，需要注意以下几点，避免因前端处理不当而放大规则本身的复杂度：",[53,376,377,389],{},[56,378,379],{},[59,380,381,384,387],{},[62,382,383],{},"环节",[62,385,386],{},"建议做法",[62,388,302],{},[72,390,391,402,417,428],{},[59,392,393,396,399],{},[77,394,395],{},"检测时机",[77,397,398],{},"在「提交下单\u002F扣款」这一步的接口调用中触发，而非表单填写过程中",[77,400,401],{},"与规则设计初衷一致，避免用户还在编辑时被打断",[59,403,404,407,414],{},[77,405,406],{},"返回结构",[77,408,409,410,413],{},"后端应返回结构化字段（如 ",[235,411,412],{},"duplicateOrderInfo: { orderNo, createTime }","），而非仅一个布尔值",[77,415,416],{},"便于前端拼装具体提示文案，而不是笼统提示",[59,418,419,422,425],{},[77,420,421],{},"二次确认",[77,423,424],{},"前端应提供「取消」与「继续下单」两个明确选项，且默认焦点建议落在「取消」",[77,426,427],{},"降低误触继续下单的概率",[59,429,430,433,436],{},[77,431,432],{},"多入口复用",[77,434,435],{},"各入口封装统一的「重复单确认」组件\u002F函数，内部逻辑不重复实现",[77,437,438],{},"避免不同入口对同一提示的交互细节出现差异",[23,440,441],{"id":441},"与业务流程的配合",[27,443,444],{},"「同业主重复单」提醒不是孤立功能，需要与下单流程中的其他环节配合：",[185,446,447,453,459],{},[188,448,449,452],{},[31,450,451],{},"与草稿箱功能配合","：草稿箱的存在本身就是为了让用户可以反复修改而不产生实际影响，因此检测规则刻意跳过纯草稿状态，前端在草稿箱列表页也应避免出现「重复单」提示，防止用户误以为草稿也被计入检测；",[188,454,455,458],{},[31,456,457],{},"与客服工作台配合","：客服代下单时同样应触发该检测，且客服端的提示文案可以比商家端更详细（例如带上「该业主近 30 分钟内已有 2 笔订单」），帮助客服快速判断是否需要人工核实；",[188,460,461,464],{},[31,462,463],{},"与售后退款流程配合","：若确认为误重复下单，售后处理时应能追溯到检测提醒是否弹出过、操作人是否点击了「继续下单」，作为责任判断的辅助依据（建议保留操作日志）。",[23,466,467],{"id":467},"与前端提示交互的注意事项",[469,470,471,477,486,492,498],"ol",{},[188,472,473,476],{},[31,474,475],{},"弹窗只提示，不强制拦截","：提醒的目的是让操作人二次确认，业务上通常仍需保留「确认继续下单」的选项，避免因误报阻断正常业务（例如同一业主确实需要短时间内下多单）；",[188,478,479,482,483,485],{},[31,480,481],{},"避免与其他弹层冲突","：下单链路中可能同时存在「加载中」「其他业务弹窗」等浮层，需确保「重复单提醒」弹窗的关闭逻辑独立、不被其他浮层的批量关闭操作误关闭（可参考 ",[43,484,46],{"href":45}," 中的教训）；",[188,487,488,491],{},[31,489,490],{},"文案需体现具体依据","：建议提示文案中带出「该业主近期已有单据」的关键信息（如单号、下单时间），而非仅一句笼统提示，降低操作人误判概率；",[188,493,494,497],{},[31,495,496],{},"草稿箱与正式下单的状态提示应保持一致","：由于规则本身区分了草稿箱与正式状态，前端在单据列表中也应清晰展示当前状态，避免操作人误以为「草稿箱操作也会被检测」而产生困惑；",[188,499,500,503],{},[31,501,502],{},"多入口需保持规则一致","：新增下单入口（如未来新增的小程序下单入口）时，应默认继承本规则，而不是自行实现一套检测逻辑，避免出现「有的入口触发、有的入口不触发」的认知割裂。",[23,505,506],{"id":506},"回归检查清单",[185,508,511,521,527,533,539,548],{"className":509},[510],"contains-task-list",[188,512,515,520],{"className":513},[514],"task-list-item",[516,517],"input",{"disabled":518,"type":519},true,"checkbox"," 覆盖表中列出的全部触发入口（商家系统新版\u002F旧版、BOSS 系统各便捷下单模块、草稿转正式下单），逐一验证提醒正常弹出；",[188,522,524,526],{"className":523},[514],[516,525],{"disabled":518,"type":519}," 覆盖表中列出的全部不触发场景（草稿箱批量\u002F详情操作、已支付订单再操作），确认不会误触发提醒；",[188,528,530,532],{"className":529},[514],[516,531],{"disabled":518,"type":519}," 提醒弹窗展示的具体信息（单号、下单时间）与实际重复单据一致，不存在信息错位；",[188,534,536,538],{"className":535},[514],[516,537],{"disabled":518,"type":519}," 「取消」与「继续下单」两个操作分支均可正常走完后续流程，无卡死或白屏；",[188,540,542,544,545,547],{"className":541},[514],[516,543],{"disabled":518,"type":519}," 弹窗展示与其他浮层（加载态、其他业务提示）不冲突，参考 ",[43,546,46],{"href":45}," 中的教训重点验证；",[188,549,551,553],{"className":550},[514],[516,552],{"disabled":518,"type":519}," 同一业主短时间内在不同入口（商家系统 + BOSS）下单，两个入口均能正确感知到对方产生的单据。",[23,555,556],{"id":556},"常见疑问",[469,558,559,568,576,584],{},[188,560,561,564,567],{},[31,562,563],{},"草稿箱状态下为什么不检测？",[565,566],"br",{},"\n草稿本身允许反复保存与修改，不代表用户一定会提交，若在草稿阶段就提醒，容易造成大量无意义打扰，因此规则统一放在「正式下单\u002F扣款」这一临界点检测。",[188,569,570,573,575],{},[31,571,572],{},"不同业务线（服务单\u002F商品销售单）的检测时间窗口是否一致？",[565,574],{},"\n本文未展开具体时间窗口数值（属于可配置的业务参数），前端在展示提示文案时不建议硬编码固定时长描述，应以后端返回的实际信息为准。",[188,577,578,581,583],{},[31,579,580],{},"该规则是否会影响正常的批量代客下单场景？",[565,582],{},"\n会正常触发检测，但这属于设计预期内的行为：批量代客下单时若确实存在同业主多单，操作人应通过「继续下单」二次确认，而不是绕过检测。",[188,585,586,589,591],{},[31,587,588],{},"规则未来是否会扩展到跨业主维度（如同地址、同联系电话）？",[565,590],{},"\n本文仅覆盖「同业主」维度的现状规则；若后续新增其他维度的重复检测，应作为独立规则补充说明，避免与本文档描述的口径混淆。",[23,593,594],{"id":594},"相关链接",[185,596,597,601],{},[188,598,599],{},[43,600,46],{"href":45},[188,602,603],{},[43,604,606],{"href":605},"\u002Fknowledge\u002Fteam-documents\u002F12","系统自动更新说明",{"title":608,"searchDepth":609,"depth":609,"links":610},"",2,[611,612,613,614,615,616,617,618,619,620,621,622],{"id":25,"depth":609,"text":25},{"id":50,"depth":609,"text":51},{"id":127,"depth":609,"text":127},{"id":176,"depth":609,"text":176},{"id":213,"depth":609,"text":213},{"id":286,"depth":609,"text":286},{"id":371,"depth":609,"text":371},{"id":441,"depth":609,"text":441},{"id":467,"depth":609,"text":467},{"id":506,"depth":609,"text":506},{"id":556,"depth":609,"text":556},{"id":594,"depth":609,"text":594},{"title":8,"description":9},"knowledge\u002Fteam-documents\u002F09","knowledge\u002Fknowledge\u002Fteam-documents\u002F09.md","md",{"items":628},[629,634,638,643,647,649],{"path":630,"title":631,"description":632,"category":10,"score":633},"\u002Fknowledge\u002Fteam-documents\u002F03","键盘弹起导致底部被顶起问题（H5 适配）","在移动端 H5 页面中，当用户聚焦 input、textarea 等可编辑元素、软键盘弹出时，常见表现包括：",9,{"path":635,"title":636,"description":637,"category":10,"score":633},"\u002Fknowledge\u002Fteam-documents\u002F17","支付中转页面升级实践","本次需求是支付链路升级：在兼容原有支付能力的基础上，新增不同版本的支付方案（如原生微信支付、小程序拉起支付）。",{"path":639,"title":640,"description":641,"category":10,"score":642},"\u002Fknowledge\u002Fteam-documents\u002F19","GridView 宫格加载渲染优化","系统首页 GridView 宫格模块接口耗时不高，但首次进入总耗时接近 22s。复盘耗时分层定位过程、代码层面的瓶颈（约 2000 行、100 个 tab 重复节点）、优化手段与最终指标对比。",6,{"path":644,"title":645,"description":646,"category":10,"score":642},"\u002Fknowledge\u002Fteam-documents\u002F06","企业微信与小程序工单问题","企微师傅端与商家小程序端长期共用一套代码，页面与组件嵌套边界不清晰、引入规范缺失、公共代码与端侧代码耦合度高，导致维护成本持续上升。本文给出拆分为两套独立项目的架构建议，并说明边界划分、迁移注意事项与性能优化方向。",{"path":605,"title":606,"description":648,"category":10,"score":642},"对比商家系统与 BOSS 系统在发版后的更新体验差异，说明两者共用的离线缓存\u002FPWA 插件的自动更新与手动提示更新两种模式，并结合知识库《网站更新（一）（二）》给出统一策略建议。",{"path":650,"title":651,"description":652,"category":10,"score":642},"\u002Fknowledge\u002Fteam-documents\u002F13","新商家系统性能优化实践","商家系统新版本上线后，团队持续针对构建效率与用户体验做了一轮系统性优化。本文记录核心方案与落地结果，供后续版本复用。",{"series":654,"title":655,"items":656,"index":728,"prev":729,"next":730},"team-documents","team documents",[657,661,665,667,671,675,677,681,685,686,690,692,694,696,700,704,708,710,714,716,720,724],{"path":658,"title":659,"date":660,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F01","执行价格弹窗：表头 \u002F 表体合并与可配置表格","2024-07-27",{"path":662,"title":663,"date":664,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F02","防篡改水印","2024-01-09",{"path":630,"title":631,"date":666,"pinned":15},"2024-09-17",{"path":668,"title":669,"date":670,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F04","老系统升级与兼容改造实践","2024-12-12",{"path":672,"title":673,"date":674,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F05","内部插件 \u002F 工具库开发实践","2021-08-19",{"path":644,"title":645,"date":676,"pinned":15},"2025-10-01",{"path":678,"title":679,"date":680,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F07","企业微信群工具打开缓慢原因分析","2020-04-12",{"path":682,"title":683,"date":684,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F08","属性排序需求","2024-06-16",{"path":7,"title":8,"date":14,"pinned":15},{"path":687,"title":688,"date":689,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F10","图片上传前的自定义水印实践","2021-06-10",{"path":45,"title":46,"date":691,"pinned":15},"2023-11-21",{"path":605,"title":606,"date":693,"pinned":15},"2025-05-26",{"path":650,"title":651,"date":695,"pinned":15},"2025-04-08",{"path":697,"title":698,"date":699,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F14","选项卡切换与 Loading 状态封装","2019-11-03",{"path":701,"title":702,"date":703,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F15","移动端返回事件触发两次问题复盘","2021-03-09",{"path":705,"title":706,"date":707,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F16","在线协作表格接入实践","2023-10-27",{"path":635,"title":636,"date":709,"pinned":15},"2022-10-15",{"path":711,"title":712,"date":713,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F18","中英文输入法下搜索触发冲突复盘","2024-09-01",{"path":639,"title":640,"date":715,"pinned":15},"2026-03-17",{"path":717,"title":718,"date":719,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F20","H5 GPS 定位问题说明","2023-08-31",{"path":721,"title":722,"date":723,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F21","vxe-table 行 Hover 联动高亮","2024-08-31",{"path":725,"title":726,"date":727,"pinned":15},"\u002Fknowledge\u002Fteam-documents\u002F22","企业微信 uni-app H5：OAuth 回退白屏与列表缓存","2023-08-17",8,{"path":682,"title":683,"date":684,"pinned":15},{"path":687,"title":688,"date":689,"pinned":15}]