- 5个CRUD JSON从自定义格式重写为规范格式(tblname/alias/params) - 13个新CRUD dspy文件(create/update/delete + noop) - product_resource_delete含级联删除product_resource_supplier - product_subscription CRUD含完整校验 - product_usage_log只读(noop dspy) - load_path.py注册所有新增API和CRUD路径
22 lines
884 B
Plaintext
22 lines
884 B
Plaintext
result = {'widgettype': 'Message', 'options': {'title': 'Error', 'message': 'Invalid', 'type': 'error'}}
|
|
|
|
try:
|
|
dbname = get_module_dbname('product_management')
|
|
record_id = params_kw.get('id')
|
|
if not record_id:
|
|
raise ValueError('Missing id')
|
|
|
|
async with DBPools().sqlorContext(dbname) as sor:
|
|
# Cascade delete suppliers
|
|
await sor.sqlExe(
|
|
"DELETE FROM product_resource_supplier WHERE product_resource_id = ${id}$",
|
|
{'id': record_id}
|
|
)
|
|
await sor.D('product_resource', {'id': record_id})
|
|
|
|
result = {'widgettype': 'Message', 'options': {'title': 'Success', 'message': '资源绑定已删除(含供应商关联)', 'type': 'success'}}
|
|
except Exception as e:
|
|
result['options'] = {'title': 'Error', 'message': '删除失败: ' + str(e), 'type': 'error'}
|
|
|
|
return json.dumps(result, ensure_ascii=False)
|