def bento_refund(): page = request.args.get('page') limit = request.args.get('limit') acc_name = request.args.get('acc_name') order_num = request.args.get('order_num') time_range = request.args.get('time_range') name_sql = "" order_sql = "" time_sql = "" if acc_name: name_sql = "account.name='{}'".format(acc_name) if order_num: order_sql = "account_trans.card_no='{}'".format(order_num) if time_range: min_time = time_range.split(' - ')[0] + ' 00:00:00' max_time = time_range.split(' - ')[1] + ' 23:59:59' time_sql = "account_trans.do_date BETWEEN '{}' and '{}'".format(min_time, max_time) if name_sql and time_sql and order_sql: sql_all = "AND " + name_sql + " AND " + order_sql + " AND " + time_sql elif name_sql and order_sql: sql_all = "AND " + name_sql + " AND " + order_sql elif time_sql and order_sql: sql_all = "AND " + time_sql + " AND " + order_sql elif name_sql and time_sql: sql_all = "AND " + name_sql + " AND " + time_sql elif name_sql: sql_all = "AND " + name_sql elif order_sql: sql_all = "AND " + order_sql elif time_range: sql_all = "AND " + time_sql else: sql_all = "" results = {"code": RET.OK, "msg": MSG.OK, "count": 0, "data": ""} task_info = SqlData.bento_refund_data(sql_all) if len(task_info) == 0: results['MSG'] = MSG.NODATA return jsonify(results) page_list = list() task_info = sorted(task_info, key=operator.itemgetter('time')) task_info = list(reversed(task_info)) for i in range(0, len(task_info), int(limit)): page_list.append(task_info[i:i + int(limit)]) data = page_list[int(page) - 1] for o in data: x_time = o.get("time") user_id = o.get("user_id") sum_money = SqlData.search_bento_sum_money(user_id=user_id, x_time=x_time) sum_refund = SqlData.search_bento_sum_refund(user_id=user_id, x_time=x_time) o["sum_balance"] = round(sum_money, 2) o["sum_refund"] = round(sum_refund, 2) results['data'] = data results['count'] = len(task_info) return jsonify(results)
def bento_refund(): page = request.args.get('page') limit = request.args.get('limit') acc_name = request.args.get('acc_name') order_num = request.args.get('order_num') time_range = request.args.get('time_range') name_sql = "" order_sql = "" time_sql = "" if acc_name: name_sql = "account.name='{}'".format(acc_name) if order_num: order_sql = "account_trans.card_no='{}'".format(order_num) if time_range: min_time = time_range.split(' - ')[0] + ' 00:00:00' max_time = time_range.split(' - ')[1] + ' 23:59:59' time_sql = "account_trans.do_date BETWEEN '{}' and '{}'".format( min_time, max_time) if name_sql and time_sql and order_sql: sql_all = "AND " + name_sql + " AND " + order_sql + " AND " + time_sql elif name_sql and order_sql: sql_all = "AND " + name_sql + " AND " + order_sql elif time_sql and order_sql: sql_all = "AND " + time_sql + " AND " + order_sql elif name_sql and time_sql: sql_all = "AND " + name_sql + " AND " + time_sql elif name_sql: sql_all = "AND " + name_sql elif order_sql: sql_all = "AND " + order_sql elif time_range: sql_all = "AND " + time_sql else: sql_all = "" results = {"code": RET.OK, "msg": MSG.OK, "count": 0, "data": ""} task_info = SqlData.bento_refund_data(sql_all) if len(task_info) == 0: results['MSG'] = MSG.NODATA return jsonify(results) page_list = list() task_info = sorted(task_info, key=operator.itemgetter('time')) task_info = list(reversed(task_info)) for i in range(0, len(task_info), int(limit)): page_list.append(task_info[i:i + int(limit)]) data = page_list[int(page) - 1] # 处理不同充值类型的显示方式(系统, 退款) """ sum_data = 0 for i in list(reversed(data)): sum_data = float(i.get("money")) + sum_data i.update({ "sum_balance": sum_data }) info_list_1 = list() for n in data: trans_type = n.get('trans_type') if trans_type == '退款': n['refund'] = '' info_list_1.append(n) # 查询当次充值时的账号总充值金额 info_list = list() for o in info_list_1: x_time = o.get('time') user_id = o.get('user_id') sum_money = SqlData.search_time_sum_money(x_time, user_id) o['sum_balance'] = round(sum_money, 2) info_list.append(o) """ for o in data: x_time = o.get("time") user_id = o.get("user_id") sum_money = SqlData.search_bento_sum_money(user_id=user_id, x_time=x_time) sum_refund = SqlData.search_bento_sum_refund(user_id=user_id, x_time=x_time) o["sum_balance"] = round(sum_money, 2) o["sum_refund"] = round(sum_refund, 2) results['data'] = data results['count'] = len(task_info) return jsonify(results)