f1694401 by 冯轩

MOD:invoice-api

1 parent 820e4b70
...@@ -17,6 +17,7 @@ from webargs import fields, validate ...@@ -17,6 +17,7 @@ from webargs import fields, validate
17 from webargs.djangoparser import use_args, parser 17 from webargs.djangoparser import use_args, parser
18 from settings import conf 18 from settings import conf
19 from common import response 19 from common import response
20 from common import response2
20 from common.mixins import GenericView,DocGenericView 21 from common.mixins import GenericView,DocGenericView
21 from common.tools.file_tools import file_write 22 from common.tools.file_tools import file_write
22 from common.redis_cache import redis_handler as rh 23 from common.redis_cache import redis_handler as rh
...@@ -1964,8 +1965,8 @@ class InvoiceExcelView(GenericView): ...@@ -1964,8 +1965,8 @@ class InvoiceExcelView(GenericView):
1964 #authentication_classes = [OAuth2AuthenticationWithUser] 1965 #authentication_classes = [OAuth2AuthenticationWithUser]
1965 1966
1966 # 下载发票excel 1967 # 下载发票excel
1967 @use_args(invoice_download_args, location='querystring') 1968 @use_args(invoice_download_args, location='data')
1968 def get(self, request, args): 1969 def post(self, request, args):
1969 application_ids = args.get('application_ids') 1970 application_ids = args.get('application_ids')
1970 application_entity = args.get('application_entity') 1971 application_entity = args.get('application_entity')
1971 self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333')) 1972 self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333'))
...@@ -2009,8 +2010,8 @@ class InvoiceQueryInfoView(GenericView): ...@@ -2009,8 +2010,8 @@ class InvoiceQueryInfoView(GenericView):
2009 #permission_classes = [IsAuthenticated] 2010 #permission_classes = [IsAuthenticated]
2010 #authentication_classes = [OAuth2AuthenticationWithUser] 2011 #authentication_classes = [OAuth2AuthenticationWithUser]
2011 2012
2012 @use_args(invoice_download_args, location='querystring') 2013 @use_args(invoice_download_args, location='data')
2013 def get(self, request, args): 2014 def post(self, request, args):
2014 application_ids = args.get('application_ids') 2015 application_ids = args.get('application_ids')
2015 application_entity = args.get('application_entity') 2016 application_entity = args.get('application_entity')
2016 self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333')) 2017 self.running_log.info('[InvoiceExcelView] [user_role={0}] '.format('111222333'))
...@@ -2037,7 +2038,7 @@ class InvoiceQueryInfoView(GenericView): ...@@ -2037,7 +2038,7 @@ class InvoiceQueryInfoView(GenericView):
2037 self.running_log.info("java invoice info api finish, applicationIds:{0},{1}".format(application_ids, resp.text)) 2038 self.running_log.info("java invoice info api finish, applicationIds:{0},{1}".format(application_ids, resp.text))
2038 res_json = json.loads(resp.text) 2039 res_json = json.loads(resp.text)
2039 java_result = res_json.get('result') 2040 java_result = res_json.get('result')
2040 return response.ok(data=java_result) 2041 return response2.ok(data=java_result)
2041 except Exception as e: 2042 except Exception as e:
2042 self.running_log.error("invoice info request to java error, url:{0}, param:{1}, errorMsg:{2}".format( 2043 self.running_log.error("invoice info request to java error, url:{0}, param:{1}, errorMsg:{2}".format(
2043 url, json.dumps(body), traceback.format_exc())) 2044 url, json.dumps(body), traceback.format_exc()))
......
1 import enum
2 from django.http import JsonResponse, HttpResponse
3 from .named_enum import NamedEnum
4
5
6 def res_content(meta_status, msg, data=None):
7 res = {'code': meta_status, 'msg': msg}
8 if data is not None:
9 res['result'] = data
10 return res
11
12
13 @enum.unique
14 class MetaStatus(NamedEnum):
15 SUCCESS = (0, 'success')
16 NEED_LOGIN = (1, 'need login')
17 INVALID_PARAMS = (2, 'invalid params')
18 INTERNAL_ERROR = (3, 'internal error')
19 NOT_EXIST = (4, 'object not exist')
20 ASYNC_WAIT = (5, 'async wait')
21 NO_PERMISSION = (6, 'no permission')
22 ILLEGAL_OPERATION = (7, 'illegal operation')
23 NEED_UPDATE = (8, 'need update')
24
25
26 class APIResponse(JsonResponse):
27 def __init__(self, meta_status, data=None, msg='', json_dumps_params=None, **kwargs):
28 data = res_content(meta_status, msg, data)
29 json_dumps_params = json_dumps_params or {'ensure_ascii': False}
30 kwargs['json_dumps_params'] = json_dumps_params
31 super().__init__(data, **kwargs)
32
33
34 def ok(**kwargs):
35 return APIResponse(10000, msg=MetaStatus.SUCCESS.verbose_name, **kwargs)
36
37
38 def error_msg(msg='internal error', **kwargs):
39 return APIResponse(MetaStatus.INTERNAL_ERROR.value, msg=msg, **kwargs)
40
41
42 def need_update(**kwargs):
43 return APIResponse(MetaStatus.NEED_UPDATE.value, msg=MetaStatus.NEED_UPDATE.verbose_name, **kwargs)
44
45
46 def excel_response(file_name, io_content):
47 http_response = HttpResponse(content_type="application/vnd.ms-excel")
48 http_response['Content-Disposition'] = 'attachment;filename={0}.xlsx'.format(file_name)
49 http_response.write(io_content.getvalue())
50 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!