45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
async def home_page_product_menu_add(ns={}):
|
|
"""
|
|
添加首页产品菜单
|
|
:param ns: 包含菜单信息的字典
|
|
"""
|
|
ns_dic = {
|
|
'id': uuid(), # 固定写法
|
|
'parent_id': ns.get('parent_id'), # NULL表示一级菜单
|
|
'menu_level': ns.get('menu_level'), # 1-一级, 2-二级, 3-三级
|
|
'title': ns.get('title'),
|
|
'sort_order': ns.get('sort_order', 0)
|
|
}
|
|
|
|
|
|
# 验证必填字段
|
|
# if not ns_dic.get('menu_level') or not ns_dic.get('title'):
|
|
# return {
|
|
# 'status': False,
|
|
# 'msg': 'menu_level and title are required'
|
|
# }
|
|
|
|
if int(ns.get('menu_level')) > 1 and not ns.get('parent_id'):
|
|
return {
|
|
'status': False,
|
|
'msg': 'parent_id is required for menu_level > 1'
|
|
}
|
|
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
try:
|
|
await sor.C('home_page_product_menu', ns_dic)
|
|
return {
|
|
'status': True,
|
|
'msg': 'create menu success',
|
|
'data': {'id': ns_dic['id']}
|
|
}
|
|
except Exception as e:
|
|
await sor.rollback()
|
|
return {
|
|
'status': False,
|
|
'msg': 'create menu failed, %s' % str(e)
|
|
}
|
|
|
|
ret = await home_page_product_menu_add(params_kw)
|
|
return ret |