票务商品的结算/拆单/加购流程强依赖虚拟商品类型(site_type=3)。 当商品设为票务(item_type=ticket)时,三层防御锁定 site_type: 1. UI 层(新增 AdminGoodsSaveForbid 钩子) 监听 plugins_service_goods_base_forbid_operate_data, 把 site_type 加入禁用列表,触发 saveinfo.html 第 228 行 disabled 渲染。 2. 服务端层(AdminGoodsSaveHandle) plugins_service_goods_save_handle 票务分支新增 $params['data']['site_type'] = 3,强制覆盖。 3. 前端 JS 层(AdminGoodsSave) 新增 syncSiteTypeLock(),watch(isTicket) 中调用, isTicket=true 强制 value=3 + disabled; isTicket=false 解除(仅移除插件添加的标记)。 仅在票务关闭(item_type=normal)后才允许修改 site_type。 风险等级:LOW(gitnexus detect_changes: 0 affected processes) |
||
|---|---|---|
| .. | ||
| AdminGoodsIndex.php | ||
| AdminGoodsSave.php | ||
| AdminGoodsSaveForbid.php | ||
| AdminGoodsSaveHandle.php | ||
| DiyHomeCityRouter.php | ||
| ViewGoodsCss.php | ||