tanghongbin 5 éve
szülő
commit
a66e46c4fe

+ 28 - 9
controller/LangAVSSController.py

@@ -148,9 +148,10 @@ class LangAVSSView(TemplateView):
             lkModel = None
             if lk_qs.exists():
                 lkModel = lk_qs[0]
-                if lkModel.type == 0:
-                    lkModel.type = 2
-                    lkModel.save()
+                lkModel.type = lkModel.type | 2
+                lkModel.save()
+                # if lkModel.type == 0:
+                #     lkModel.type = 2
 
             else:
                 # 插入新的key
@@ -159,7 +160,7 @@ class LangAVSSView(TemplateView):
                     'word_key': word_key,
                     'addTime': addTime,
                     'updTime': addTime,
-                    'type': 1,
+                    'type': 2,
                 }
                 lkModel = LangKeyModel.objects.create(**lk)
                 # lkModel = lkModel[0]
@@ -209,6 +210,7 @@ class LangAVSSView(TemplateView):
     def do_delete(self, request_dict, response):
         word_key = request_dict.get('word_key', None)
         token = request_dict.get('token', None)
+        word_key_type = request_dict.get('word_key_type', None)
 
         response = ResponseObject()
 
@@ -220,17 +222,34 @@ class LangAVSSView(TemplateView):
         if not user_qs.exists():
             return response.json(403)
 
+        print(word_key_type)
+        if not word_key_type:
+            return response.json(444, 'word_key_type')
+
         if word_key:
             try:
+                word_key_type = int(word_key_type)
+                print(word_key_type)
                 lk_qs = LangKeyModel.objects.filter(word_key=word_key)
                 if lk_qs.exists():
+                #     lk = lk_qs[0]
+                #     if lk.type == 2:
+                #         lk.type = 0
+                #         lk.save()
+                #     else:
+                #         lk_qs.delete()
+                #         LangValModel.objects.filter(lk__word_key=word_key).delete()
                     lk = lk_qs[0]
-                    if lk.type == 2:
-                        lk.type = 0
-                        lk.save()
+                    print(lk.type)
+                    if lk.type < word_key_type:
+                        return response.json(444, 'work_key_type')
                     else:
-                        lk_qs.delete()
-                        LangValModel.objects.filter(lk__word_key=word_key).delete()
+                        lk.type -= word_key_type
+                        if lk.type > 0:
+                            lk.save()
+                        else:
+                            lk_qs.delete()
+                            LangValModel.objects.filter(lk__word_key=word_key).delete()
                 LangLocationModel.objects.filter(lk__word_key=word_key).delete()
                 LangKeyClassModel.objects.filter(lk__word_key=word_key).delete()
             except Exception as e:

+ 6 - 4
controller/LangArea.py

@@ -118,11 +118,11 @@ class LangAreaView(TemplateView):
         type = request_dict.get('type', None)
         # key_list = LangKeyModel.objects.filter().values_list('word_key', flat=True)
         print('id = ' + id)
-        langType = (0, 2)
+        langType = (1, 3, 5, 7)
         if type == 'avss':
-            langType = (1, 2)
+            langType = (2, 3, 6, 7)
         elif type == 'link_ios' or type == 'link_android':
-            langType = (3,)
+            langType = (4, 5, 6, 7)
 
         en_qs = LangKeyModel.objects.filter(langvalmodel__la__id=20, type__in=langType).values('word_key', 'langvalmodel__word_val')
         en_kv = {}
@@ -244,7 +244,7 @@ class LangAreaView(TemplateView):
 
     def get_area_language(self, id):
         result = {}
-        lkc_qs = LangKeyModel.objects.filter(langvalmodel__la__id=id, type__in=(1, 2)).values('word_key',
+        lkc_qs = LangKeyModel.objects.filter(langvalmodel__la__id=id, type__in=(2, 3, 6, 7)).values('word_key',
                                                                                                  'langkeyclassmodel__clazz__name',
                                                                                                  'langvalmodel__word_val',
                                                                                                  'langlocationmodel__filename',
@@ -300,6 +300,8 @@ class LangAreaView(TemplateView):
             return 'nl'
         elif id == 32:  # 越南语
             return 'vi'
+        else:
+            return 'en'
 
 
 class exportLangView(TemplateView):

+ 37 - 12
controller/LangWord.py

@@ -69,7 +69,9 @@ class LangWordView(TemplateView):
     def do_add(self, request_dict, response):
         word_key = request_dict.get('word_key', None)
         word_arr = request_dict.get('word_arr', None)
-        word_key_type = request_dict.get('word_key_type', 0)
+        word_key_type = request_dict.get('word_key_type', None)
+        if not word_key_type:
+            return response.json(444, 'word_key_type')
         nowTime = int(time.time())
         lang_key_dict = {
             'word_key': word_key,
@@ -81,9 +83,21 @@ class LangWordView(TemplateView):
             # var_dump(lang_key_dict)
             lk = LangKeyModel.objects.filter(word_key=word_key)
             if lk.exists():
-                var_dump(list(lk))
-
-                return response.json(473,'key已存在')
+                print(lk[0].type)
+                print(word_key_type)
+                type = lk[0].type & word_key_type
+                print(type)
+                if lk[0].type & word_key_type != 0:
+                    var_dump(list(lk))
+                    return response.json(473,'key已存在')
+                else:
+                    type = word_key_type | lk[0].type
+                    data = {
+                        'type': type,
+                        'updTime': nowTime
+                    }
+                    lk.update(**data)
+                    return response.json(0)
             lk = LangKeyModel.objects.create(**lang_key_dict)
             for w in word_arr:
                 LangValModel.objects.create(la_id=w['la_id'], lk_id=lk.id, addTime=nowTime, updTime=nowTime,
@@ -147,20 +161,31 @@ class LangWordView(TemplateView):
             return response.json(404)
 
     def do_delete(self, request_dict, userID, response):
+        print('delete')
         user_qs = UserModel.objects.filter(id=userID, username='admin')
         if not user_qs.exists():
             return response.json(403)
         word_key = request_dict.get('word_key', None)
+        word_key_type = request_dict.get('work_key_type', None)
+        print(word_key_type)
+        if not word_key_type:
+            return response.json(444, 'work_key_type')
         try:
+            word_key_type = int(word_key_type)
+            print(word_key_type)
             lk_qs = LangKeyModel.objects.filter(word_key=word_key)
             if lk_qs.exists():
                 lk = lk_qs[0]
-                if lk.type == 2:
-                    lk.type = 1
-                    lk.save()
+                print(lk.type)
+                if lk.type < word_key_type:
+                    return response.json(444, 'work_key_type')
                 else:
-                    lk_qs.delete()
-                    LangValModel.objects.filter(lk__word_key=word_key).delete()
+                    lk.type -= word_key_type
+                    if lk.type > 0:
+                        lk.save()
+                    else:
+                        lk_qs.delete()
+                        LangValModel.objects.filter(lk__word_key=word_key).delete()
         except Exception as e:
             return response.json(404, repr(e))
         else:
@@ -187,12 +212,12 @@ class LangWordView(TemplateView):
             tmpType = int(langType)
             print(tmpType)
             if tmpType == 0:
-                lk_qs = LangKeyModel.objects.filter(type__in=(0, 2))
+                lk_qs = LangKeyModel.objects.filter(type__in=(1, 3, 5, 7))
                 print(lk_qs)
             elif tmpType == 1:
-                lk_qs = LangKeyModel.objects.filter(type__in=(1, 2))
+                lk_qs = LangKeyModel.objects.filter(type__in=(2, 3, 6, 7))
             elif tmpType == 2:
-                lk_qs = LangKeyModel.objects.filter(type=3)
+                lk_qs = LangKeyModel.objects.filter(type__in=(4, 5, 6, 7))
 
             if searchKey and searchVal:
                 if searchKey == 'key':

+ 4 - 1
model/models.py

@@ -54,7 +54,10 @@ class LangKeyModel(models.Model):
     word_key = models.CharField(default='', max_length=64, verbose_name='词汇键', unique=True)
     addTime = models.IntegerField(default=0, verbose_name='添加时间')
     updTime = models.IntegerField(default=0, verbose_name='更新时间')
-    type = models.SmallIntegerField(default=0, verbose_name='词汇键类型')  # 0:移动端;1:pc端(avss);2:两端共同拥有
+    '''
+    # 00000001:移动端;00000010:pc端(avss);00000100:Zosi Link
+    '''
+    type = models.SmallIntegerField(default=1, verbose_name='词汇键类型')
 
     class Meta:
         ordering = ('-addTime',)

+ 2 - 1
web/avss_index.html

@@ -492,7 +492,8 @@
         if (r) {
             let post_data = {
                 'token': $.cookie('access_token'),
-                'word_key': langKey
+                'word_key': langKey,
+                'word_key_type': 2
             }
             console.log(post_data)
             $.postJSON(

+ 3 - 1
web/index.html

@@ -442,6 +442,7 @@
                 }
             })
             post_data['word_arr'] = post_list
+            post_data['word_key_type'] = 1
             console.log(post_data)
             $.postJSON(
                 http_ip_prot + 'langWord/add', JSON.stringify(post_data),
@@ -493,7 +494,8 @@
         if (r) {
             let post_data = {
                 'token': $.cookie('access_token'),
-                'word_key': langKey
+                'word_key': langKey,
+                'work_key_type': 1
             }
             console.log(post_data)
             $.postJSON(

+ 4 - 3
web/zosi_link_index.html

@@ -441,7 +441,7 @@
                 }
             })
             post_data['word_arr'] = post_list
-            post_data['word_key_type'] = 3
+            post_data['word_key_type'] = 4
             console.log(post_data)
             $.postJSON(
                 http_ip_prot + 'langWord/add', JSON.stringify(post_data),
@@ -493,11 +493,12 @@
         if (r) {
             let post_data = {
                 'token': $.cookie('access_token'),
-                'word_key': langKey
+                'word_key': langKey,
+                'work_key_type': 4
             }
             console.log(post_data)
             $.postJSON(
-                http_ip_prot + 'avss/delete', JSON.stringify(post_data),
+                http_ip_prot + 'langWord/delete', JSON.stringify(post_data),
                 function (data) {
                     if (data['code'] == 0) {
                         // console.log(data['res'])