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 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