f1694401 by 冯轩

MOD:invoice-api

1 parent 820e4b70
......@@ -17,6 +17,7 @@ from webargs import fields, validate
from webargs.djangoparser import use_args, parser
from settings import conf
from common import response
from common import response2
from common.mixins import GenericView,DocGenericView
from common.tools.file_tools import file_write
from common.redis_cache import redis_handler as rh
......@@ -1964,8 +1965,8 @@ class InvoiceExcelView(GenericView):
#authentication_classes = [OAuth2AuthenticationWithUser]
# 下载发票excel
@use_args(invoice_download_args, location='querystring')
def get(self, request, args):
@use_args(invoice_download_args, location='data')
def post(self, request, args):
application_ids = args.get('application_ids')
application_entity = args.get('application_entity')
self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333'))
......@@ -2009,8 +2010,8 @@ class InvoiceQueryInfoView(GenericView):
#permission_classes = [IsAuthenticated]
#authentication_classes = [OAuth2AuthenticationWithUser]
@use_args(invoice_download_args, location='querystring')
def get(self, request, args):
@use_args(invoice_download_args, location='data')
def post(self, request, args):
application_ids = args.get('application_ids')
application_entity = args.get('application_entity')
self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333'))
......@@ -2037,7 +2038,7 @@ class InvoiceQueryInfoView(GenericView):
self.running_log.info("java invoice info api finish, applicationIds:{0},{1}".format(application_ids, resp.text))
res_json = json.loads(resp.text)
java_result = res_json.get('result')
return response.ok(data=java_result)
return response2.ok(data=java_result)
except Exception as e:
self.running_log.error("invoice info request to java error, url:{0}, param:{1}, errorMsg:{2}".format(
url, json.dumps(body), traceback.format_exc()))
......
import enum
from django.http import JsonResponse, HttpResponse
from .named_enum import NamedEnum
def res_content(meta_status, msg, data=None):
res = {'code': meta_status, 'msg': msg}
if data is not None:
res['result'] = data
return res
@enum.unique
class MetaStatus(NamedEnum):
SUCCESS = (0, 'success')
NEED_LOGIN = (1, 'need login')
INVALID_PARAMS = (2, 'invalid params')
INTERNAL_ERROR = (3, 'internal error')
NOT_EXIST = (4, 'object not exist')
ASYNC_WAIT = (5, 'async wait')
NO_PERMISSION = (6, 'no permission')
ILLEGAL_OPERATION = (7, 'illegal operation')
NEED_UPDATE = (8, 'need update')
class APIResponse(JsonResponse):
def __init__(self, meta_status, data=None, msg='', json_dumps_params=None, **kwargs):
data = res_content(meta_status, msg, data)
json_dumps_params = json_dumps_params or {'ensure_ascii': False}
kwargs['json_dumps_params'] = json_dumps_params
super().__init__(data, **kwargs)
def ok(**kwargs):
return APIResponse(10000, msg=MetaStatus.SUCCESS.verbose_name, **kwargs)
def error_msg(msg='internal error', **kwargs):
return APIResponse(MetaStatus.INTERNAL_ERROR.value, msg=msg, **kwargs)
def need_update(**kwargs):
return APIResponse(MetaStatus.NEED_UPDATE.value, msg=MetaStatus.NEED_UPDATE.verbose_name, **kwargs)
def excel_response(file_name, io_content):
http_response = HttpResponse(content_type="application/vnd.ms-excel")
http_response['Content-Disposition'] = 'attachment;filename={0}.xlsx'.format(file_name)
http_response.write(io_content.getvalue())
return http_response
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!