def get_order(cls, tx_id): """ 根据交易ID查询订单 :param tx_id: :return: """ order_id = OrderUtils.parse_tx_id(tx_id) return cls.get_order_by_order_id(order_id)
def query_by_tx_id(cls, tx_id): """ 根据交易ID查询订单 :param tx_id: :return: """ if cls.is_base_order(): raise RuntimeError('can not query by base order') order_id = OrderUtils.parse_tx_id(tx_id) g_order_id = GlobalOrderId.query_global_id(order_id) if not g_order_id: return None return cls.query_by_order_id(g_order_id.merchant, order_id, g_order_id.create_time)
def get(self): """ 订单修改日志 :return: """ if not request.args: return ResponseSuccess( message= "参数规则:?merchant=test&date=20190901&order_id=123&uid=123&ref_id=xxx&export=1," "必填参数:merchant," "可选参数:date,order_id,uid,ref_id,export," "当不填写date时,默认查询当天所有的数据").as_response() try: date = request.args.get('date') if date: date = DateTimeKit.str_to_datetime( date, DateTimeFormatEnum.TIGHT_DAY_FORMAT, to_date=True) else: date = DateTimeKit.get_cur_date() except: return ResponseSuccess( message="请输入有效的查询日期,格式为:20190901").as_response() q_params = dict() order_id = request.args.get('order_id') try: order_id = OrderUtils.parse_tx_id(order_id) except: pass if order_id: q_params['order_id'] = order_id uid = request.args.get('uid') if uid: q_params['uid'] = uid ref_id = request.args.get('ref_id') if ref_id: q_params['ref_id'] = ref_id if not q_params: return ResponseSuccess( message="必须输入 order_id/uid/ref_id 其中一个或多个参数").as_response() events = OrderEvent.query_model(query_fields=q_params, date=date) rst = list() for event in events: rst.append( dict( create_time=event.create_time, order_id=event.order_id, uid=event.uid, ref_id=event.ref_id, data_before=event.data_before, data_after=event.data_after, )) rst = sorted(rst, key=lambda x: x['create_time'], reverse=True) for x in rst: x['create_time'] = DateTimeKit.datetime_to_str(x['create_time']) if rst and request.args.get('export'): filename = 'order_events_%s.csv' % DateTimeKit.datetime_to_str( date, DateTimeFormatEnum.TIGHT_DAY_FORMAT) return CsvKit.send_csv(rst, filename=filename, fields=rst[0].keys()) return ResponseSuccess(bs_data=rst).as_response()