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