|
@@ -3,13 +3,16 @@
|
|
|
import os
|
|
|
import traceback
|
|
|
|
|
|
+from django.http import HttpResponse
|
|
|
from django.utils.decorators import method_decorator
|
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
from django.views.generic.base import View
|
|
|
|
|
|
from Ansjer.config import BASE_DIR
|
|
|
+from Model.models import FAQModel
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
|
+from var_dump import var_dump
|
|
|
|
|
|
|
|
|
class FAQUploadView(View):
|
|
@@ -30,12 +33,17 @@ class FAQUploadView(View):
|
|
|
return self.validate(fileName, request_dict)
|
|
|
|
|
|
def validate(self, fileName, request_dict):
|
|
|
+
|
|
|
token = TokenObject(request_dict.get('token', None))
|
|
|
|
|
|
response = ResponseObject()
|
|
|
if token.code != 0:
|
|
|
return response.json(token.code)
|
|
|
|
|
|
+ # own_permission = ModelService.check_perm(userID=token.userID, permID=120)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+
|
|
|
try:
|
|
|
path = '/'.join((BASE_DIR, 'static/FAQImages')).replace('\\', '/') + '/'
|
|
|
if not os.path.exists(path):
|
|
@@ -63,11 +71,46 @@ class FAQUploadView(View):
|
|
|
else:
|
|
|
index = file_name.find('static/')
|
|
|
filePath = file_name[index:]
|
|
|
+ # filePath = SERVER_DOMAIN + 'faq/image/' + filePath
|
|
|
+ filePath = "http://192.168.136.35:8000/" + 'faq/image/' + filePath
|
|
|
return response.json(0, {'filePath': filePath})
|
|
|
|
|
|
|
|
|
-class FAQView(View):
|
|
|
+class getFAQImage(View):
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ filePath = kwargs.get('filePath', None)
|
|
|
+ filePath.encode(encoding='utf-8', errors='strict')
|
|
|
+ response = ResponseObject()
|
|
|
+ return self.getFile(filePath, response)
|
|
|
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'gb2312'
|
|
|
+ filePath = kwargs.get('filePath', None)
|
|
|
+ response = ResponseObject()
|
|
|
+ filePath.encode(encoding='gb2312', errors='strict')
|
|
|
+ return self.getFile(filePath, response)
|
|
|
+
|
|
|
+ def getFile(self, filePath, response):
|
|
|
+ if filePath:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ return response.json(800)
|
|
|
+ fullPath = os.path.join(BASE_DIR, filePath).replace('\\', '/')
|
|
|
+
|
|
|
+ var_dump(fullPath)
|
|
|
+ if os.path.isfile(fullPath):
|
|
|
+ try:
|
|
|
+ Imagedata = open(fullPath, 'rb').read()
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(906, repr(e))
|
|
|
+ else:
|
|
|
+ return HttpResponse(Imagedata, content_type="image/jpeg")
|
|
|
+ else:
|
|
|
+ return response.json(907)
|
|
|
+
|
|
|
+
|
|
|
+class FAQView(View):
|
|
|
@method_decorator(csrf_exempt)
|
|
|
def dispatch(self, *args, **kwargs):
|
|
|
return super(FAQView, self).dispatch(*args, **kwargs)
|
|
@@ -85,4 +128,108 @@ class FAQView(View):
|
|
|
return self.validate(request_dict, operation)
|
|
|
|
|
|
def validate(self, request_dict, operation):
|
|
|
- return
|
|
|
+ token = TokenObject(request_dict.get('token', None))
|
|
|
+ response = ResponseObject()
|
|
|
+ if token.code != 0:
|
|
|
+ return response.json(token.code)
|
|
|
+
|
|
|
+ if operation == 'add':
|
|
|
+ return self.do_add(token.userID, request_dict, response)
|
|
|
+ elif operation == 'query':
|
|
|
+ return self.do_query(token.userID, request_dict, response)
|
|
|
+ elif operation == 'update':
|
|
|
+ return self.do_update(token.userID, request_dict, response)
|
|
|
+ elif operation == 'delete':
|
|
|
+ return self.do_delete(token.userID, request_dict, response)
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+ def do_add(self, userID, request_dict, response):
|
|
|
+
|
|
|
+ # own_permission = ModelService.check_perm(userID=userID, permID=120)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+
|
|
|
+ title = request_dict.get('title', None)
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+
|
|
|
+ if title and content:
|
|
|
+ FAQModel.objects.create(**{
|
|
|
+ 'title': title,
|
|
|
+ 'content': content
|
|
|
+ })
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ def do_query(self, userID, request_dict, response):
|
|
|
+
|
|
|
+ page = request_dict.get('page', None)
|
|
|
+ line = request_dict.get('line', None)
|
|
|
+ search_key = request_dict.get('search_key', None)
|
|
|
+
|
|
|
+ if page and line:
|
|
|
+ if search_key:
|
|
|
+ # own_permission = ModelService.check_perm(userID=userID, permID=110)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+ faq_qs = FAQModel.objects.filter(title__contains=search_key)
|
|
|
+ else:
|
|
|
+ # own_permission = ModelService.check_perm(userID=userID, permID=100)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+
|
|
|
+ faq_qs = FAQModel.objects.filter()
|
|
|
+
|
|
|
+ if not faq_qs.exists():
|
|
|
+ return response.json(0, [])
|
|
|
+
|
|
|
+ page = int(page)
|
|
|
+ line = int(line)
|
|
|
+ start = (page - 1) * line
|
|
|
+ end = start + line
|
|
|
+ faq_qs = faq_qs.values()[start:end]
|
|
|
+ return response.json(0, list(faq_qs))
|
|
|
+ else:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ def do_update(self, userID, request_dict, response):
|
|
|
+ # own_permission = ModelService.check_perm(userID=userID, permID=130)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+
|
|
|
+ id = request_dict.get('id', None)
|
|
|
+ title = request_dict.get('title', None)
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+
|
|
|
+ if id:
|
|
|
+ data = {}
|
|
|
+
|
|
|
+ if title:
|
|
|
+ data['title'] = title
|
|
|
+
|
|
|
+ if content:
|
|
|
+ data['content'] = content
|
|
|
+
|
|
|
+ FAQModel.objects.filter(id=id).update(**data)
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ def do_delete(self, userID, request_dict, response):
|
|
|
+
|
|
|
+ # own_permission = ModelService.check_perm(userID=userID, permID=140)
|
|
|
+ # if own_permission is not True:
|
|
|
+ # return response.json(404)
|
|
|
+
|
|
|
+ id = request_dict.get('id', None)
|
|
|
+ if id:
|
|
|
+ try:
|
|
|
+ FAQModel.objects.filter(id=id).delete()
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(173)
|
|
|
+ else:
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(444)
|