kboss/b/reseller/resellerRebateDelete.dspy
2025-07-16 14:27:17 +08:00

128 lines
4.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

async def RebateDelete(ns={}):
"""
reseller rebate delete
id *
:param ns:
:return:
"""
# ns = {
# # 'rebatectl_id': 'yuk5Z5J4',
# 'id': 'a8eDmd63'
# }
db = DBPools()
async with db.sqlorContext('kboss') as sor:
try:
if ns.get('rebatectl_id'):
# 根据id查找对应字段具体内容
ctl_res_li = await sor.R('rp_rebate_ctl', {'id': ns.get('rebatectl_id')})
ctl_res = ctl_res_li[0]
# 获取rebateid 把 rebate 中对应字段删除
rebateid = ctl_res.get('rebateid')
rebate_del_sql = """update rp_rebate set del_flg = '1' where rebateid = '%s';""" % rebateid
await sor.sqlExe(rebate_del_sql, {})
await sor.U('rp_rebate_ctl', {'id': ns.get('rebatectl_id'), 'del_flg': '1'})
# 找到对应end_date的那一条数据并更新 end_date
ctl_find = {
'resellerid': ctl_res.get('resellerid'),
'productid': ctl_res.get('productid'),
'end_date': ctl_res.get('start_date')
}
ctl_data_li = await sor.R('rp_rebate_ctl', ctl_find)
if ctl_data_li:
ctl_data = ctl_data_li[0]
ctl_up = {
'id': ctl_data.get('id'),
'end_date': ctl_res.get('end_date')
}
await sor.U('rp_rebate_ctl', ctl_up)
return {
'status': True,
'msg': 'delete rebate success'
}
except Exception as e:
return {
'status': False,
'err_msg': e
}
async def resellerRebateDelete(ns={}):
"""
reseller rebate delete
id *
:param ns:
:return:
"""
db = DBPools()
async with db.sqlorContext('kboss') as sor:
try:
if ns.get('rebatectl_id'):
# 根据id查找对应字段具体内容
ctl_res_li = await sor.R('rp_rebate_ctl', {'id': ns.get('rebatectl_id')})
ctl_res = ctl_res_li[0]
# 获取rebateid 把 rebate 中对应字段删除
rebateid = ctl_res.get('rebateid')
rebate_del_sql = """update rp_rebate set del_flg = '1' where rebateid = '%s';""" % rebateid
await sor.sqlExe(rebate_del_sql, {})
await sor.U('rp_rebate_ctl', {'id': ns.get('rebatectl_id'), 'del_flg': '1'})
# 找到对应end_date的那一条数据并更新 end_date
ctl_find = {
'resellerid': ctl_res.get('resellerid'),
'productid': ctl_res.get('productid'),
'end_date': ctl_res.get('start_date')
}
ctl_data_li = await sor.R('rp_rebate_ctl', ctl_find)
if ctl_data_li:
ctl_data = ctl_data_li[0]
ctl_up = {
'id': ctl_data.get('id'),
'end_date': ctl_res.get('end_date')
}
await sor.U('rp_rebate_ctl', ctl_up)
return {
'status': True,
'msg': 'delete rebate success'
}
else:
# 把对应id删除
# ns['del_flg'] = '1'
# await sor.U('rp_rebate', ns)
# 查询所在的rebateid是否还剩一个 删除后把ctl对应内容删除
bate_li = await sor.R('rp_rebate', ns)
rebateid = bate_li[0]['rebateid']
bete_count_li = await sor.R('rp_rebate', {'rebateid': rebateid, 'del_flg': '0'})
if len(bete_count_li) == 1:
# 此处按时间段删除
# 查找该时间段对应的ctl中的id
ctl_id_find = {
'rebateid': rebateid,
'del_flg': '0'
}
ctl_id_res = await sor.R('rp_rebate_ctl', ctl_id_find)
rd_res = await RebateDelete({'rebatectl_id': ctl_id_res[0].get('id')})
if not rd_res.get('status'):
return {
'status': False,
'msg': 'rebate only one, but ctl table delete failed'
}
ns['del_flg'] = '1'
await sor.U('rp_rebate', ns)
return {
'status': True,
'msg': 'delete rebate success'
}
except Exception as e:
raise e
return {
'status': False,
'msg': 'delete rebate failed'
}
ret = await resellerRebateDelete(params_kw)
return ret