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

52 lines
1.7 KiB
Plaintext

async def productDelete(ns={}):
"""
delect product
only use primary key to delete
:param ns:
:return:
"""
db = DBPools()
async with db.sqlorContext('kboss') as sor:
if not ns.get('id'):
return {
"status": False,
"msg": "product id is empty, please check",
}
try:
ns['del_flg'] = '1'
await sor.U('product', ns)
productid = ns.get('id')
table_list = ['rp_discount', 'floorprice', 'rp_rebate_ctl', 'cp_discount']
for tabl in table_list:
update_sql = """update %s set end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY), del_flg = '1' where productid = '%s'""" % (tabl, productid)
await sor.sqlExe(update_sql, {})
rebate_sql = """select * from rp_rebate_ctl where productid = '%s'""" % productid
rebates = await sor.sqlExe(rebate_sql, {})
rebate_set = tuple([item.get('rebateid') for item in rebates])
if len(rebate_set) == 1:
rebate_set += ('Na',)
if not rebate_set:
return {
'status': True,
'msg': 'product delete success',
'warn': 'rebate is empty'
}
rebate_update_sql = """update rp_rebate set del_flg = '1' where rebateid in {}""".format(rebate_set)
await sor.sqlExe(rebate_update_sql, {})
return {
"status": True,
"msg": "product delete success",
}
except Exception as e:
raise e
return {
"status": False,
"msg": "product delete failed"
}
ret = await productDelete(params_kw)
return ret