|
@@ -39,47 +39,50 @@ class SearchToolView(TemplateView):
|
|
|
|
|
|
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_context':
|
|
|
- return self.do_query(request_dict, response, userID)
|
|
|
- elif operation == 'query_key':
|
|
|
- return self.do_query_key(request_dict, response, userID)
|
|
|
- elif operation == 'query_location':
|
|
|
- return self.do_query_location(request_dict, response, userID)
|
|
|
- elif operation == 'query_translation':
|
|
|
- return self.do_query_translation(request_dict, response, userID)
|
|
|
- elif operation == 'query_saveOrEditKeyFrom':
|
|
|
- return self.do_query_saveOrEditKeyFrom(request_dict, response)
|
|
|
- elif operation == 'query_saveOrEditLocationFrom':
|
|
|
- return self.do_query_saveOrEditLocationFrom(request_dict, response)
|
|
|
- elif operation == 'query_saveOrEditTranslationFrom':
|
|
|
- return self.do_query_saveOrEditTranslationFrom(request_dict, response, userID)
|
|
|
- elif operation == 'saveOrExitKey':
|
|
|
- return self.do_saveOrExitKey(request_dict, response)
|
|
|
- elif operation == 'saveOrExitLocation':
|
|
|
- return self.do_saveOrExitLocation(request_dict, response)
|
|
|
- elif operation == 'saveOrExitTranslation':
|
|
|
- return self.do_saveOrExitTranslation(request_dict, response)
|
|
|
- elif operation == 'deleteKey':
|
|
|
- return self.do_deleteKey(request_dict, response)
|
|
|
- elif operation == 'reset':
|
|
|
- return self.do_reset(request_dict, response, userID)
|
|
|
- else:
|
|
|
- return response.json(414)
|
|
|
-
|
|
|
-
|
|
|
+ if (operation == 'add_single'):
|
|
|
+ return self.do_add_single(request_dict, response)
|
|
|
else:
|
|
|
- return response.json(tko.code)
|
|
|
+ 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_context':
|
|
|
+ return self.do_query(request_dict, response, userID)
|
|
|
+ elif operation == 'query_key':
|
|
|
+ return self.do_query_key(request_dict, response, userID)
|
|
|
+ elif operation == 'query_location':
|
|
|
+ return self.do_query_location(request_dict, response, userID)
|
|
|
+ elif operation == 'query_translation':
|
|
|
+ return self.do_query_translation(request_dict, response, userID)
|
|
|
+ elif operation == 'query_saveOrEditKeyFrom':
|
|
|
+ return self.do_query_saveOrEditKeyFrom(request_dict, response)
|
|
|
+ elif operation == 'query_saveOrEditLocationFrom':
|
|
|
+ return self.do_query_saveOrEditLocationFrom(request_dict, response)
|
|
|
+ elif operation == 'query_saveOrEditTranslationFrom':
|
|
|
+ return self.do_query_saveOrEditTranslationFrom(request_dict, response, userID)
|
|
|
+ elif operation == 'saveOrExitKey':
|
|
|
+ return self.do_saveOrExitKey(request_dict, response)
|
|
|
+ elif operation == 'saveOrExitLocation':
|
|
|
+ return self.do_saveOrExitLocation(request_dict, response)
|
|
|
+ elif operation == 'saveOrExitTranslation':
|
|
|
+ return self.do_saveOrExitTranslation(request_dict, response)
|
|
|
+ elif operation == 'deleteKey':
|
|
|
+ return self.do_deleteKey(request_dict, response)
|
|
|
+ elif operation == 'deleteLocation':
|
|
|
+ return self.do_deleteLocation(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)
|
|
@@ -223,7 +226,7 @@ class SearchToolView(TemplateView):
|
|
|
count = search_qs.count()
|
|
|
|
|
|
if orderByupdate == 1:
|
|
|
- search_qs = search_qs.order_by('updTime')
|
|
|
+ search_qs = search_qs.order_by('lk__updTime')
|
|
|
else:
|
|
|
search_qs = search_qs.order_by('-lk__updTime')
|
|
|
search_qs = search_qs[(page - 1) * line:page * line]
|
|
@@ -274,10 +277,12 @@ class SearchToolView(TemplateView):
|
|
|
|
|
|
count = search_qs.count()
|
|
|
|
|
|
- if orderByupdate == 1:
|
|
|
- search_qs = search_qs.order_by('updTime')
|
|
|
- else:
|
|
|
- search_qs = search_qs.order_by('-lk__updTime')
|
|
|
+ # if orderByupdate == 1:
|
|
|
+ # search_qs = search_qs.order_by('updTime')
|
|
|
+ # else:
|
|
|
+ # search_qs = search_qs.order_by('-lk__updTime')
|
|
|
+ # 根据 word_key 字母排序
|
|
|
+ search_qs = search_qs.order_by('lk__word_key')
|
|
|
search_qs = search_qs[(page - 1) * line:page * line]
|
|
|
|
|
|
lw_dict = {}
|
|
@@ -312,7 +317,7 @@ class SearchToolView(TemplateView):
|
|
|
k_list = []
|
|
|
for bk in block_qs:
|
|
|
k_list.append(bk['searchtoolkeymodel__lk__id'])
|
|
|
- lk_qs = LangKeyModel.objects.filter(id__in=k_list).values('id', 'word_key')
|
|
|
+ lk_qs = LangKeyModel.objects.filter(id__in=k_list).values('id', 'word_key', 'updTime')
|
|
|
|
|
|
if searchKey and searchVal:
|
|
|
if searchKey == 'key':
|
|
@@ -322,11 +327,12 @@ class SearchToolView(TemplateView):
|
|
|
lk_qs = lk_qs.filter(langvalmodel__word_val__contains=searchVal, langvalmodel__la__lang=searchKey)
|
|
|
count = lk_qs.count()
|
|
|
# lk_qs = lk_qs[(page - 1) * line:page * line].values_list('word_key', flat=True)
|
|
|
+
|
|
|
if orderByupdate == 1:
|
|
|
lk_qs = lk_qs.order_by('updTime')
|
|
|
else:
|
|
|
lk_qs = lk_qs.order_by('-updTime')
|
|
|
- lk_qs = lk_qs[(page - 1) * line:page * line].values('id', 'word_key', 'updTime')
|
|
|
+ lk_qs = lk_qs[(page - 1) * line:page * line]
|
|
|
k_list = []
|
|
|
lw_dict = {}
|
|
|
for lk in lk_qs:
|
|
@@ -337,6 +343,7 @@ class SearchToolView(TemplateView):
|
|
|
user = UserModel.objects.get(id=userID)
|
|
|
lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
|
|
|
lang_perm_ls = list(lang_perm_ql)
|
|
|
+
|
|
|
for lv in lv_qs:
|
|
|
lang = lv['la__lang']
|
|
|
# print('lang=%s' % lang)
|
|
@@ -545,6 +552,18 @@ class SearchToolView(TemplateView):
|
|
|
else:
|
|
|
return response.json(0)
|
|
|
|
|
|
+
|
|
|
+ def do_deleteLocation(self, request_dict, response):
|
|
|
+ id = request_dict.get('id', None)
|
|
|
+ try:
|
|
|
+ LangLocationModel.objects.get(id=id).delete()
|
|
|
+
|
|
|
+ except Exception as 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)
|
|
@@ -562,3 +581,87 @@ class SearchToolView(TemplateView):
|
|
|
return response.json(10,"数据已重置")
|
|
|
|
|
|
|
|
|
+ def do_add_single(self, request_dict, response):
|
|
|
+ word_class = request_dict.get('word_class', None)
|
|
|
+ word_key = request_dict.get('word_key', None)
|
|
|
+ word_array = request_dict.get('word_array', None)
|
|
|
+ location_array = request_dict.get('location_array', None)
|
|
|
+
|
|
|
+ if (word_class and word_key and word_array and location_array):
|
|
|
+ # SearchToolBlock
|
|
|
+ # 检查是否已有该 name
|
|
|
+ searchToolBlock_qs = SearchToolBlock.objects.filter(name=word_class)
|
|
|
+ if searchToolBlock_qs.exists(): # 更新 updTime
|
|
|
+ addTime = int(time.time())
|
|
|
+ searchToolBlock_model = searchToolBlock_qs[0]
|
|
|
+ searchToolBlock_model.updTime = addTime
|
|
|
+ searchToolBlock_model.save()
|
|
|
+ else: # 插入新数据
|
|
|
+ addTime = int(time.time())
|
|
|
+ dataDict = {
|
|
|
+ 'name' : word_class,
|
|
|
+ 'type': '0',
|
|
|
+ 'addTime': addTime,
|
|
|
+ 'updTime': addTime,
|
|
|
+ }
|
|
|
+ searchToolBlock_model = SearchToolBlock.objects.create(**dataDict)
|
|
|
+ searchToolBlock_model = searchToolBlock_qs[0]
|
|
|
+ dataDict.clear()
|
|
|
+
|
|
|
+ # LangKeyModel,SearchToolKeyModel
|
|
|
+ word_key = word_class + '_' + word_key # 拼接word_class和word_key,避免word_key重复时写不进
|
|
|
+ # 检查是否已有该 word_key
|
|
|
+ langKey_qs = LangKeyModel.objects.filter(word_key=word_key)
|
|
|
+ if langKey_qs.exists(): # 更新 updTime
|
|
|
+ addTime = int(time.time())
|
|
|
+ langKey_model = langKey_qs[0]
|
|
|
+ langKey_model.updTime = addTime
|
|
|
+ langKey_model.save()
|
|
|
+ else: # 插入新数据, 更新SearchToolKeyModel
|
|
|
+ addTime = int(time.time())
|
|
|
+ dataDict = {
|
|
|
+ 'word_key': word_key,
|
|
|
+ 'project_id': 4,
|
|
|
+ 'addTime': addTime,
|
|
|
+ 'updTime': addTime,
|
|
|
+ }
|
|
|
+ langKey_model = LangKeyModel.objects.create(**dataDict)
|
|
|
+ dataDict.clear()
|
|
|
+ # SearchToolKeyModel.objects.create(bk_id=searchToolBlock_model.id, lk_id=langKey_model.id)
|
|
|
+ SearchToolKeyModel.objects.create(bk=searchToolBlock_model, lk=langKey_model)
|
|
|
+
|
|
|
+ # LangLocationModel
|
|
|
+ locations = list(location_array)
|
|
|
+ for location in locations:
|
|
|
+ # 不更新ls,filename和line三者都相等的
|
|
|
+ if not LangLocationModel.objects.filter(lk=langKey_model, filename=location['filename'], line=location['line']).exists():
|
|
|
+ dataDict = {
|
|
|
+ 'lk': langKey_model,
|
|
|
+ 'filename': location['filename'],
|
|
|
+ 'line': location['line']
|
|
|
+ }
|
|
|
+ LangLocationModel.objects.create(**dataDict)
|
|
|
+ dataDict.clear()
|
|
|
+
|
|
|
+ # LangValModel
|
|
|
+ translations = list(word_array)
|
|
|
+ for translation in translations:
|
|
|
+ la_id = translation['la_id']
|
|
|
+ langArea = LangAreaModel.objects.filter(id=la_id)[0]
|
|
|
+ translationValue = translation['val']
|
|
|
+ addTime = int(time.time())
|
|
|
+
|
|
|
+ dataDict = {
|
|
|
+ 'lk': langKey_model,
|
|
|
+ 'la': langArea,
|
|
|
+ 'word_val': translationValue,
|
|
|
+ 'addTime': addTime,
|
|
|
+ 'updTime': addTime,
|
|
|
+ 'status': 1,
|
|
|
+ }
|
|
|
+ LangValModel.objects.create(**dataDict)
|
|
|
+ dataDict.clear()
|
|
|
+
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(444)
|