feat(voucher): 代金券模块宿主接入——build.sh四清单(clone/pip/xls2ui/软链)+pipeline_app.py load_voucher(ticket后,注册送券事件挂钩)+import_init字典种子+index.ui客户'我的代金券'/管理'代金券管理'(is_ticket_staff门禁)菜单;配套voucher仓库6cf7098

This commit is contained in:
yumoqing 2026-09-12 19:07:17 +08:00
parent 5781fb45ff
commit f0a21a51c6
4 changed files with 23 additions and 4 deletions

View File

@ -136,6 +136,11 @@ def init():
from ticket.init import load_ticket
except ImportError:
def load_ticket(): pass
# voucher代金券模板/规则/实例/流水 + 注册送券事件挂钩 organization:c:after
try:
from voucher.init import load_voucher
except ImportError:
def load_voucher(): pass
set_globalvariable()
ServerEnv().get_module_dbname = get_module_dbname
@ -159,6 +164,7 @@ def init():
load_pipeline_service()
load_pipeline_task() # 任务中心交互层:注册 task_detail/step_panel 页面所需 Jinja helper依赖 pipeline_service
load_ticket() # 工单管理:依赖 pipeline_service待办provider注册+llm_bridge+rag_clientagent poller 随 worker 进程启动
load_voucher() # 代金券:规则引擎+注册送券挂钩bind organization:c:after须在任何发券路径前加载
load_pipeline_platform() # 平台内部 agent依赖 pipeline_service 的 llm_bridge
load_pipeline_bidding() # 投标产线能力包(依赖 pipeline_service 的 capability 分发)
load_pipeline_opportunity() # 商机产线能力包(数据来自数据爬取平台内网 HTTP

View File

@ -56,7 +56,7 @@ done
# 注evaluate 只 clone 不 install——其 wwwroot/json/models 嵌套在包内(evaluate/evaluate/)
# 与本脚本 pkgs/<mod>/wwwroot 软链约定不兼容,且依赖 VBench/torch 重环境;
# 待营销产线开发时连同结构规范化一起接入。
for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity ticket; do
for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity ticket voucher; do
cd "$cdir/pkgs"
if [ ! -d "$mod" ]; then
git clone https://git.opencomputing.cn/yumoqing/$mod || echo "SKIP: $mod"
@ -67,7 +67,7 @@ done
# 6. pip install all modules from pkgs/pipeline-service 是普通 install 非 editable部署必 pull+pip install 都做)
# 注意与第 5 步 clone 清单对齐clone 了却不 install 的模块,主程序 try/except 会静默降级——
# 模块整个消失且零报错account_resource 等 4 个此前正是这种状态,测试机靠手工补装)。
for mod in pipeline_core pipeline_ops pipeline-sdlc showcase pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity ticket; do
for mod in pipeline_core pipeline_ops pipeline-sdlc showcase pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity ticket voucher; do
if [ -d "pkgs/$mod" ]; then
"$cdir/py3/bin/pip" install "pkgs/$mod/" 2>&1 | tail -1
fi
@ -101,7 +101,7 @@ fi
# ⚠ 清单不能盲目扩成"全模块动态扫描"product_management/dingdingflow 的生成目录
# 是 git 跟踪的(重生成会弄脏工作树),且第 6 步有 xls2ui 覆盖后的手工修补——
# 新模块入列前先确认其生成目录在模块 .gitignore 内。
for mod in appbase pipeline_core pipeline_ops pipeline-sdlc rbac dapi accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pricing pipeline-llm pipeline-opportunity discount; do
for mod in appbase pipeline_core pipeline_ops pipeline-sdlc rbac dapi accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pricing pipeline-llm pipeline-opportunity discount voucher; do
json_dir="pkgs/$mod/json"
if [ -d "$json_dir" ] && ls "$json_dir"/*.json >/dev/null 2>&1; then
cd "$json_dir"
@ -112,7 +112,7 @@ done
# 8. Link module wwwroot directories (symlinks from pkgs/)
for mod in pipeline-sdlc showcase tenant pipeline_core pipeline_ops appbase app_audit product_management discount pricing unipay rbac dapi accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity pipeline-task ticket; do
for mod in pipeline-sdlc showcase tenant pipeline_core pipeline_ops appbase app_audit product_management discount pricing unipay rbac dapi accounting uapi rag dingdingflow account_resource storage_resource filemgr supplychain pipeline-bidding pipeline-llm pipeline-platform pipeline-opportunity pipeline-task ticket voucher; do
src="pkgs/$mod/wwwroot"
dst="wwwroot/$mod"
if [ -d "$src" ]; then

View File

@ -36,6 +36,7 @@ INIT_MODULES = [
('pipeline-opportunity', 'pkgs/pipeline-opportunity/init/data.json'),
('pipeline-llm', 'pkgs/pipeline-llm/init/data.json'),
('ticket', 'pkgs/ticket/init/data.json'),
('voucher', 'pkgs/voucher/init/data.json'),
]

View File

@ -217,6 +217,12 @@
"icon": "",
"script": "this.open_tab({name:'cust_tickets',label:'我的工单',url:'/ticket/my/index.ui',removable:true})"
},
{
"name": "cust_vouchers",
"label": "我的代金券",
"icon": "",
"script": "this.open_tab({name:'cust_vouchers',label:'我的代金券',url:'/voucher/my/index.ui',removable:true})"
},
{
"name": "cust_account",
"label": "我的账户",
@ -561,6 +567,12 @@
"icon": "",
"script": "this.open_tab({name:'ticket_manage',label:'工单管理',url:'/ticket/manage/index.ui',removable:true})"
},
{
"name": "voucher_manage",
"label": "代金券管理",
"icon": "",
"script": "this.open_tab({name:'voucher_manage',label:'代金券管理',url:'/voucher/index.ui',removable:true})"
},
{% endif %}
{
"name": "sysmgr",