def _query_orders_count(self, query_params, query_type): if query_params.need_detail or query_params.skip or query_params.limit: raise ValueError('need_detail or skip or limit should NOT be used to query order count') if query_type == _OrderType.BILL: if query_params.refund_no: raise ValueError('refund_no should NOT be used to query bills') if query_params.need_approval: raise ValueError('need_approval should NOT be used to query bills') partial_url = get_random_host() + self._query_bills_url() + '/count' elif query_type == _OrderType.REFUND: if query_params.spay_result: raise ValueError('spay_result should NOT be used to query refunds') partial_url = get_random_host() + self._query_refunds_url() + '/count' else: return attach_app_sign(query_params, BCReqType.QUERY, self.bc_app) url = partial_url + '?para=' + obj_to_quote_str(query_params) tmp_resp = http_get(url, self.bc_app.timeout) # if err encountered, [0] equals 0 if not tmp_resp[0]: return tmp_resp[1] # [1] contains result dict resp_dict = tmp_resp[1] bc_result = BCResult() set_common_attr(resp_dict, bc_result) if not bc_result.result_code: bc_result.count = resp_dict.get('count') return bc_result
def _query_orders(self, query_params, query_type): if query_type == _OrderType.BILL: if query_params.refund_no: raise ValueError('refund_no should NOT be used to query bills') if query_params.need_approval: raise ValueError( 'need_approval should NOT be used to query bills') partial_url = self._query_bills_url() elif query_type == _OrderType.REFUND: if query_params.spay_result: raise ValueError( 'spay_result should NOT be used to query refunds') partial_url = self._query_refunds_url() else: return if not query_params: query_params = _TmpObject() attach_app_sign(query_params, BCReqType.QUERY, self.bc_app) url = partial_url + '?para=' + obj_to_quote_str(query_params) tmp_resp = http_get(url, self.bc_app.timeout) # if err encountered, [0] equals 0 if not tmp_resp[0]: return tmp_resp[1] # [1] contains result dict resp_dict = tmp_resp[1] bc_result = BCResult() set_common_attr(resp_dict, bc_result) if not bc_result.result_code: if query_type == _OrderType.BILL: order_dict_arr = resp_dict.get('bills') class_name = BCBill else: order_dict_arr = resp_dict.get('refunds') class_name = BCRefund orders = [] if order_dict_arr: orders = [ parse_dict_to_obj(order_dict, class_name) for order_dict in order_dict_arr ] bc_result.count = len(orders) if query_type == _OrderType.BILL: bc_result.bills = orders else: bc_result.refunds = orders return bc_result
def _query_orders(self, query_params, query_type): if query_type == _OrderType.BILL: if query_params.refund_no: raise ValueError('refund_no should NOT be used to query bills') if query_params.need_approval: raise ValueError('need_approval should NOT be used to query bills') partial_url = self._query_bills_url() elif query_type == _OrderType.REFUND: if query_params.spay_result: raise ValueError('spay_result should NOT be used to query refunds') partial_url = self._query_refunds_url() else: return if not query_params: query_params = _TmpObject() attach_app_sign(query_params, BCReqType.QUERY, self.bc_app) url = partial_url + '?para=' + obj_to_quote_str(query_params) tmp_resp = http_get(url, self.bc_app.timeout) # if err encountered, [0] equals 0 if not tmp_resp[0]: return tmp_resp[1] # [1] contains result dict resp_dict = tmp_resp[1] bc_result = BCResult() set_common_attr(resp_dict, bc_result) if not bc_result.result_code: if query_type == _OrderType.BILL: order_dict_arr = resp_dict.get('bills') class_name = BCBill else: order_dict_arr = resp_dict.get('refunds') class_name = BCRefund orders = [] if order_dict_arr: orders = [parse_dict_to_obj(order_dict, class_name) for order_dict in order_dict_arr] bc_result.count = len(orders) if query_type == _OrderType.BILL: bc_result.bills = orders else: bc_result.refunds = orders return bc_result