async def providerUpdate(ns={}): """ update new provider `name`: 名称, `description`: 描述, `appid`: 应用id, `providerkey`: 应用key, `state`: 状态, `start_date`: 起效日期, `end_date`: 失效日期, `sale_mode`: 销售方式, `del_flag`: 删除标志 :param ns: :return: """ ns_org = { 'id': ns.get('id'), '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 '', 'emailaddress': ns.get('emailaddress') or '', 'address': ns.get('address') or '', 'main_business': ns.get('main_business') or '', 'orgcode': ns.get('orgcode') or '', 'license_img': ns.get('license_img') or '', 'id_img': ns.get('id_img') or '', 'accountid': ns.get('accountid') or '' } ns_provider = { 'id': ns.get('provider_table_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 '', 'settle_mode': ns.get('settle_mode') or '', 'settle_flowid': ns.get('settle_flowid') or '', 'settle_datep': ns.get('settle_datep') or '', 'start_date': ns.get('start_date') or '', 'end_date': ns.get('end_date') or '', 'sale_mode': ns.get('sale_mode') or '' } ns_sale_protocol = { 'id': ns.get('protocolid'), 'salemode': ns.get('salemode'), 'start_date': ns.get('start_date'), 'end_date': ns.get('end_date'), } db = DBPools() async with db.sqlorContext('kboss') as sor: try: await sor.U('organization',ns_org) await sor.U('provider',ns_provider) await sor.U('saleprotocol',ns_sale_protocol) # 如果只是改起始时间 子表不需要删除 exist_mode_li = await sor.R('saleprotocol', {'id': ns.get('protocolid'), 'del_flg': '0'}) exist_mode = exist_mode_li[0]['salemode'] # 如果模式没有改变 只更新主表内容 if ns.get('protocolfile'): ns_sale_protocol['protocolfile'] = ns.get('protocolfile') if ns.get('settlemode'): ns_sale_protocol['settle_mode'] = ns.get('settle_mode') if ns.get('settle_dp'): ns_sale_protocol['settle_dp'] = ns.get('settle_datep') await sor.U('saleprotocol', ns_sale_protocol) # 如果模式改变 就删除子表protocolid内容 if exist_mode != ns.get('salemode'): up_sql = """update product_salemode set del_flg = '1' where protocolid = '%s';""" % ns.get('protocolid') await sor.sqlExe(up_sql, {}) return { "status": True, "msg": "provider update success" } except Exception as e: raise e return { "status": False, "msg": "provider update failed" } ret = await providerUpdate(params_kw) return ret