130 lines
4.4 KiB
Plaintext
130 lines
4.4 KiB
Plaintext
async def providerAdd(ns={}):
|
|
"""
|
|
add new provider
|
|
`name`: 名称,
|
|
`description`: 描述,
|
|
`appid`: 应用id,
|
|
`providerkey`: 应用key,
|
|
`state`: 状态,
|
|
`start_date`: 起效日期,
|
|
`end_date`: 失效日期,
|
|
`sale_mode`: 销售方式,
|
|
`del_flag`: 删除标志
|
|
:param ns:
|
|
:return:
|
|
"""
|
|
ns_org = {
|
|
'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(),
|
|
'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'),
|
|
# 'sale_mode': ns.get('sale_mode') or '',
|
|
'settle_mode': ns.get('settle_mode') or '',
|
|
'settle_flowid': ns.get('settle_flowid') or '',
|
|
'settle_datep': ns.get('settle_datep')
|
|
|
|
}
|
|
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(),
|
|
'offer_salemanid': ns.get('offer_salemanid'),
|
|
'offer_orgid': ns_org['id'],
|
|
'bid_orgid': ns.get('orgid'),
|
|
'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
|
|
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
org_code = ns.get('orgcode')
|
|
# bind the orgcode
|
|
if not org_code:
|
|
return {
|
|
'status': False,
|
|
'msg': 'provider add failed, orgcode is empty'
|
|
}
|
|
# filter by orgcode
|
|
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'
|
|
}
|
|
if not ns.get('orgid'):
|
|
orgid_li = await sor.R('users', {'id': await get_user()})
|
|
orgid = orgid_li[0].get('orgid') if orgid_li else ''
|
|
if not orgid:
|
|
return {
|
|
'status': False,
|
|
'msg': 'can not find orgid by the user'
|
|
}
|
|
else:
|
|
orgid = ns.get('orgid')
|
|
|
|
# 供应商parentid 和 运营机构id相同
|
|
ns_org['parentid'] = 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, orgid, ns_org['id'])
|
|
return {
|
|
"status": True,
|
|
"msg": "provider add success"
|
|
}
|
|
except Exception as e:
|
|
raise e
|
|
return {
|
|
"status": False,
|
|
"msg": "provider add failed"
|
|
}
|
|
|
|
|
|
|
|
ret = await providerAdd(params_kw)
|
|
return ret |