salescrm/b/user/user_providerAdd.dspy
2025-10-27 15:50:44 +08:00

121 lines
4.5 KiB
Plaintext

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