async def user_providerAdd(ns={}): """ add new provider `name`: 名称, `description`: 描述, `appid`: 应用id, `providerkey`: 应用key, `state`: 状态, `start_date`: 起效日期, `end_date`: 失效日期, `sale_mode`: 销售方式, `del_flag`: 删除标志 :param ns: :return: """ db = DBPools() async with db.sqlorContext('kboss') as sor: userorg = await sor.R('users',{'id':ns.get('user_id')}) providers = await sor.R('provider',{'user_ worgid': userorg[0]['orgid'],'del_flg':'0'}) if len(providers) >= 1: return {'status': False, 'msg': '已有该供应商'} ns_org = { 'id': uuid(), # 'id': UUID(), 'orgname': ns.get('orgname') or '', 'contactor': ns.get('contactor') or '', 'contactor_phone': ns.get('contactor_phone') or '', 'province_id': ns.get('province_id') or '', 'city_id': ns.get('city_id') or '', 'distinct_id': ns.get('distinct_id') or '', 'address': ns.get('address') or '', 'main_business': ns.get('main_business') or '', 'orgcode': ns.get('orgcode') or '', 'emailaddress': ns.get('emailaddress'), 'license_img': ns.get('license_img') or '', 'id_img': ns.get('id_img') or '', 'org_type': 4, 'accountid': ns.get('accountid') or '' } ns_provider = { 'id': uuid(), # 'id': UUID(), 'orgid': ns_org['id'], 'name': ns.get('name') or '', 'description': ns.get('description') or '', 'appid': ns.get('appid') or '', 'providerkey': ns.get('providerkey') or '', 'state': ns.get('state') or 0, 'start_date': ns.get('start_date'), 'end_date': ns.get('end_date'), 'settle_mode': ns.get('settle_mode') or '', 'settle_flowid': ns.get('settle_flowid') or '', 'settle_datep': ns.get('settle_datep'), 'user_orgid': userorg[0]['orgid'] or '' } if ns.get('salemode') == '0': ns_provider['discount_mode'] = 1 elif ns.get('salemode') == '1': ns_provider['rebate_mode'] = 1 elif ns.get('salemode') == '2': ns_provider['floorprice_mode'] = 1 ns_sale_mode = { 'id': uuid(), # 'id': UUID(), 'offer_salemanid': ns.get('offer_salemanid'), 'offer_orgid': ns_org['id'], 'bid_orgid': 'mIWUHBeeDM8mwAFPIQ8pS', 'salemode': ns.get('salemode'), 'settlemode': ns.get('settle_mode'), 'settle_dp': ns.get('settle_datep'), 'protocolfile': ns.get('protocolfile'), 'start_date': ns.get('start_date'), 'end_date': ns.get('end_date') } sdate = str(ns.get('start_date')) if sdate.isdigit(): timeStamp = int(ns.get('start_date')) timeArray = time.localtime(timeStamp) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) ns_provider['start_date'] = otherStyleTime else: ns_provider['start_date'] = sdate org_code = ns.get('orgcode') if not org_code: return { 'status': False, 'msg': 'provider add failed, orgcode is empty' } res = await sor.R('organization', {}) orgcodes = [orgc.get('orgcode') for orgc in res] if org_code in orgcodes: return { 'status': False, 'msg': 'provider add failed, orgcode has already exist' } # 供应商parentid 和 运营机构id相同 ns_org['parentid'] = userorg[0]['orgid'] if not ns_provider.get('start_date'): ns_provider['start_date'] = time.strftime('%Y-%m-%d %H:%M:%S') if not ns_provider.get('end_date'): ns_provider['end_date'] = '9999-12-31' try: await sor.C('organization', ns_org) await sor.C('provider', ns_provider) await sor.C('saleprotocol', ns_sale_mode) await openProviderAccounts(sor, userorg[0]['orgid'], ns_org['id']) return { "status": True, "msg": "渠道添加成功" } except Exception as e: raise e return { "status": False, "msg": "provider add failed" } ret = await user_providerAdd(params_kw) return ret