123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
- @AUTHOR: ASJRD018
- @NAME: langer
- @software: PyCharm
- @DATE: 2020/8/21 15:44
- @Version: python3.6
- @MODIFY DECORD:ansjer dev
- """
- from var_dump import var_dump
- import json
- from django.http import HttpResponse
- from django.views.generic import TemplateView
- from django.views.decorators.csrf import csrf_exempt
- from django.utils.decorators import method_decorator
- from object.ResponseObject import ResponseObject
- from django.contrib.auth.hashers import make_password, check_password
- from model.models import UserModel, LangSetModel, LangAreaModel, LangKeyModel, LangValModel, LangPermModel, \
- SearchToolBlock, SearchToolMessage
- import time
- from object.TokenObject import TokenObject
- from django.db.models import Q
- class SearchToolView(TemplateView):
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation', None)
- request_dict = json.loads(request.body.decode('utf-8'))
- return self.validate(request_dict, operation)
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- request_dict = request.GET
- operation = kwargs.get('operation', None)
- return self.validate(request_dict, operation)
- def validate(self, request_dict, operation):
- response = ResponseObject()
- token = request_dict.get('token', None)
- tko = TokenObject(token)
- if tko.code == 0:
- userID = tko.userID
- if operation == 'add':
- return self.do_add(request_dict, response)
- elif operation == 'update':
- return self.do_update(request_dict, response, userID)
- elif operation == 'delete':
- return self.do_delete(request_dict, response)
- # search index table
- elif operation == 'query':
- return self.do_query(request_dict, response, userID)
- elif operation == 'query_message':
- return self.do_query_message(request_dict, response, userID)
- elif operation == 'query_saveOrEditMessage':
- return self.do_query_saveOrEditMessage(request_dict, response)
- elif operation == 'saveOrExitMsg':
- return self.do_saveOrExitMsg(request_dict, response)
- elif operation == 'deletemessage':
- return self.do_deletemessage(request_dict, response)
- elif operation == 'reset':
- return self.do_reset(request_dict, response, userID)
- else:
- return response.json(414)
- else:
- return response.json(tko.code)
- def do_add(self, request_dict, response):
- mokuainame = request_dict.get('name', None)
- type = request_dict.get('type', None)
- if not type:
- return response.json(444, 'type')
- lk = SearchToolBlock.objects.filter(name=mokuainame)
- if lk.exists():
- return response.json(404, repr("已存在模块名"))
- nowTime = int(time.time())
- try:
- SearchToolBlock.objects.create(name=mokuainame,type=type, addTime=nowTime, updTime=nowTime)
- except Exception as e:
- print(repr(e))
- return response.json(404, repr(e))
- else:
- return response.json(0)
- '''
- post_data = {
- word_key_id:1,
- word_key:xxx,
- word_arr:[
- {'lang':'','val':''},
- {'lang':'','val':''},
- {'lang':'','val':''}
- ]
- }
- '''
- def do_update(self, request_dict, response, userID):
- mokuainame = request_dict.get('name', None)
- mokuaitype = request_dict.get('type', None)
- mokuaiid = request_dict.get('id', None)
- mk = SearchToolBlock.objects.filter(name=mokuainame)
- if mk.exists():
- return response.json(404, repr("已存在模块名"))
- lk = SearchToolBlock.objects.filter(id=mokuaiid)
- nowTime = int(time.time())
- if lk.exists():
- lk.update(updTime=nowTime,name=mokuainame)
- return response.json(0)
- else:
- return response.json(404)
- def do_delete(self, request_dict, response):
- print('delete')
- mokuaiid = request_dict.get('id', None)
- try:
- SearchToolBlock.objects.get(id=mokuaiid).delete()
- except Exception as e:
- return response.json(404, repr(e))
- else:
- return response.json(0)
- def do_query(self, request_dict, response, userID):
- page = int(request_dict.get('page', None))
- line = int(request_dict.get('line', None))
- searchKey = request_dict.get('searchKey', None)
- searchVal = request_dict.get('searchVal', None)
- type = request_dict.get('type', None)
- if searchKey:
- searchKey = searchKey.strip()
- if searchVal:
- searchKey = searchKey.strip()
- orderByupdate = request_dict.get('orderByupdate', 0)
- if page and line:
- search_qs = SearchToolBlock.objects.filter(type__contains=type).values('name', 'type', 'id','updTime')
- if type == 0:
- search_qs = SearchToolBlock.objects.filter(type__in=(0))
- elif type == 1:
- search_qs = SearchToolBlock.objects.filter(type__in=(1))
- if searchKey and searchVal:
- search_qs = search_qs.filter(name__contains=searchVal)
- count = search_qs.count()
- if orderByupdate == 1:
- search_qs = search_qs.order_by('updTime')
- else:
- search_qs = search_qs.order_by('-updTime')
- search_qs = search_qs[(page - 1) * line:page * line]
- k_list = []
- lw_dict = {}
- for lk in search_qs:
- k_list.append(lk['name'])
- lw_dict[lk['name']] = {'updTime': lk['updTime']}
- res = {
- 'la_list': list(search_qs),
- 'lw_dict': lw_dict,
- # 'lk_list': list(lk_qs),
- # 'lv_list': list(lv_qs)
- 'count': count
- }
- return response.json(0, res)
- else:
- return response.json(444, 'page,line')
- def do_query_message(self, request_dict, response, userID):
- page = int(request_dict.get('page', None))
- line = int(request_dict.get('line', None))
- searchKey = request_dict.get('searchKey', None)
- searchVal = request_dict.get('searchVal', None)
- type = request_dict.get('type', None)
- if searchKey:
- searchKey = searchKey.strip()
- if searchVal:
- searchKey = searchKey.strip()
- orderByupdate = request_dict.get('orderByupdate', 0)
- if page and line:
- block_qs = SearchToolBlock.objects.filter(type__contains=type).values('id','name')
- k_list = []
- for bk in block_qs:
- k_list.append(bk['id'])
- search_qs = SearchToolMessage.objects.filter(type__contains=type,bk__id__in=k_list).values('location','line','source','translation','type','updTime','id','bk__id','bk__name')
- if type == 0:
- search_qs = SearchToolBlock.objects.filter(type__in=(0))
- elif type == 1:
- search_qs = SearchToolBlock.objects.filter(type__in=(1))
- if searchKey and searchVal:
- if searchKey == 'bk_name':
- search_qs = search_qs.filter(bk__name__contains=searchVal)
- if searchKey == 'location':
- search_qs = search_qs.filter(location__contains=searchVal)
- if searchKey == 'line':
- search_qs = search_qs.filter(line__contains=searchVal)
- if searchKey == 'source':
- search_qs = search_qs.filter(source__contains=searchVal)
- if searchKey == 'translation':
- search_qs = search_qs.filter(translation__contains=searchVal)
- count = search_qs.count()
- if orderByupdate == 1:
- search_qs = search_qs.order_by('updTime')
- else:
- search_qs = search_qs.order_by('-updTime')
- search_qs = search_qs[(page - 1) * line:page * line]
- lw_dict = {}
- for lk in search_qs:
- lw_dict[lk['id']] = {'location': lk['location'], 'line': lk['line'], 'source': lk['source'],'translation': lk['translation'], 'updTime': lk['updTime'], 'bk_id': lk['bk__id'],'name': lk['bk__name']}
- res = {
- 'la_list': lw_dict,
- 'count': count
- }
- return response.json(0, res)
- else:
- return response.json(444, 'page,line')
- def do_query_saveOrEditMessage(self, request_dict, response):
- messageid = request_dict.get('messageid', None)
- type = request_dict.get('type', None)
- block_qs = SearchToolBlock.objects.filter(type=type).values('id', 'name')
- if messageid:
- search_qs = SearchToolMessage.objects.filter(id=messageid).values('location','line','source','translation','type','updTime','id','bk__id','bk__name')
- search_qs = search_qs.order_by('-updTime')
- lw_dict = {}
- for lk in search_qs:
- lw_dict[lk['id']] = {'location': lk['location'], 'line': lk['line'], 'source': lk['source'],
- 'translation': lk['translation'], 'updTime': lk['updTime'], 'bk_id': lk['bk__id'],
- 'name': lk['bk__name']}
- res = {
- 'la_list': lw_dict,
- 'lw_dict': list(block_qs)
- }
- return response.json(0, res)
- else:
- res = {
- 'lw_dict': list(block_qs)
- }
- return response.json(0, res)
- def do_saveOrExitMsg(self, request_dict, response):
- id = request_dict.get('id', None)
- bk_id = request_dict.get('bk_id', None)
- location = request_dict.get('location', None)
- line = request_dict.get('line', None)
- source = request_dict.get('source', None)
- translation = request_dict.get('translation', None)
- type = request_dict.get('type', None)
- if not type:
- return response.json(444, 'type')
- nowTime = int(time.time())
- try:
- if id:
- nowTime = int(time.time())
- update_dict = {
- 'bk_id': bk_id,
- 'location': location,
- 'line': line,
- 'source': source,
- 'translation': translation,
- 'type': type,
- 'updTime': nowTime
- }
- SearchToolMessage.objects.filter(id=id).update(**update_dict)
- else:
- SearchToolMessage.objects.create(location=location, line=line, source=source, translation=translation, type=type, bk_id=bk_id, addTime=nowTime, updTime=nowTime)
- except Exception as e:
- print(repr(e))
- return response.json(404, repr(e))
- else:
- return response.json(0)
- def do_deletemessage(self, request_dict, response):
- print('delete')
- messageid = request_dict.get('id', None)
- try:
- SearchToolMessage.objects.get(id=messageid).delete()
- except Exception as e:
- return response.json(404, repr(e))
- else:
- return response.json(0)
- def do_reset(self, request_dict, response, userID):
- return response.json(10,"数据已重置")
|