- cms/: Python包(合并原entcms+dingdingflow) - init.py: 791行,load_cms()注册所有CRUD+审批函数 - dingtalk_client.py: 钉钉API客户端 - models/: 7个表定义JSON(5个CMS+2个DD) - json/: 7个CRUD定义JSON - wwwroot/: 管理后台CRUD页面和API(37个dspy) - init/data.yaml: 模块初始数据(appcodes/appcodes_kv/分类/栏目/配置) - scripts/load_path.py: RBAC权限配置 - pyproject.toml: pip-installable包定义 - 删除: app/, conf/, build.sh, entcms/, dingdingflow/等webapp文件 - 数据库访问统一为DBPools()+_get_dbname()动态模式
46 lines
1.7 KiB
Plaintext
46 lines
1.7 KiB
Plaintext
result = {'success': False, 'message': 'Invalid callback'}
|
|
|
|
try:
|
|
# DingTalk callback data comes via params_kw (POST body auto-parsed)
|
|
callback_data = {}
|
|
|
|
# params_kw contains the parsed POST body fields
|
|
process_instance_id = params_kw.get('processInstanceId', '')
|
|
callback_type = params_kw.get('type', '')
|
|
callback_result = params_kw.get('result', '')
|
|
staff_id = params_kw.get('staffId', '')
|
|
process_code = params_kw.get('processCode', '')
|
|
remark = params_kw.get('remark', '')
|
|
|
|
# Also handle nested JSON body case where entire body is under a key
|
|
if not process_instance_id:
|
|
body = params_kw.get('body', None)
|
|
if isinstance(body, dict):
|
|
process_instance_id = body.get('processInstanceId', '')
|
|
callback_type = body.get('type', '')
|
|
callback_result = body.get('result', '')
|
|
staff_id = body.get('staffId', '')
|
|
process_code = body.get('processCode', '')
|
|
remark = body.get('remark', '')
|
|
|
|
callback_data = {
|
|
'processInstanceId': process_instance_id,
|
|
'type': callback_type,
|
|
'result': callback_result,
|
|
'staffId': staff_id,
|
|
'processCode': process_code,
|
|
'remark': remark,
|
|
}
|
|
|
|
if not process_instance_id:
|
|
result = {'success': False, 'message': 'Missing processInstanceId'}
|
|
else:
|
|
# Call the handle_dingtalk_callback function registered via load_dingdingflow()
|
|
callback_result_data = await handle_dingtalk_callback(callback_data)
|
|
result = callback_result_data
|
|
|
|
except Exception as e:
|
|
result = {'success': False, 'message': f'Callback processing error: {str(e)}'}
|
|
|
|
return result
|