zhangdongming 1 сар өмнө
parent
commit
7321a6fb40

+ 1 - 0
Ansjer/urls.py

@@ -211,6 +211,7 @@ urlpatterns = [
     re_path(r'^alexa/(?P<operation>.*)$', Alexa.AlexaConnectNum.as_view()),
     re_path(r'^faq/upload', FAQController.FAQUploadView.as_view()),
     re_path(r'^faq/image/(?P<filePath>.*)$', FAQController.getFAQImage.as_view()),
+    re_path(r'^faq/helpLink/(?P<filePath>.*)$', FAQController.HelpLinkView.as_view()),
     re_path(r'^faq/(?P<operation>.*)$', FAQController.FAQView.as_view()),
     re_path(r'^ios/authsign', UserController.AppleAuthLogin.as_view()),
     re_path(r'^appLog/(?P<operation>.*)$', AppLogController.AppLogView.as_view()),

+ 57 - 1
Controller/FAQController.py

@@ -14,7 +14,7 @@ from django.views.generic.base import View
 
 import Ansjer
 from Ansjer.config import BASE_DIR, SERVER_TYPE, SERVER_DOMAIN, SERVER_DOMAIN_SSL
-from Model.models import FAQModel
+from Model.models import FAQModel, HelpLink
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -389,3 +389,59 @@ class FAQView(View):
                 'content': json.dumps(data).replace("\'", "\"").replace("XX??????XX", "\'")
             })
         return response.json(0)
+
+class HelpLinkView(View):
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        response = ResponseObject('en')
+        tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
+        if tko.code != 0:
+            return response.json(tko.code)
+        response.lang = tko.lang
+        userID = tko.userID
+        if operation == 'queryFAQByDeviceType':  # 获取电池电量列表
+            return HelpLinkView.query_faq_by_device_type(request, request_dict, response)
+        else:
+            return response.json(414)
+
+    @staticmethod
+    def query_faq_by_device_type(request, request_dict, response):
+        """根据设备类型和语言查询帮助链接"""
+        device_type = request_dict.get('device_type')
+        lang = request_dict.get('lang')
+        
+        if not device_type or not lang:
+            return response.json(444, {'message': 'device_type和lang参数不能为空'})
+            
+        try:
+            # 查询匹配的帮助链接
+            help_link = HelpLink.objects.filter(
+                device_type=device_type,
+                lang=lang,
+                is_active=True
+            ).first()
+            
+            if not help_link:
+                return response.json(173)
+                
+            # 构建返回数据
+            data = {
+                'url': help_link.url,
+                'title': help_link.title,
+                'description': help_link.description
+            }
+            
+            return response.json(0, data)
+            
+        except Exception as e:
+            print(f"查询帮助链接出错: {str(e)}")
+            return response.json(500, {'message': '服务器内部错误'})

+ 18 - 1
Model/models.py

@@ -5938,4 +5938,21 @@ class ProductTroubleshoot(models.Model):
 
     class Meta:
         db_table = 'product_troubleshoot'
-        verbose_name = "产品异常记录"
+        verbose_name = "产品异常记录"
+
+
+class HelpLink(models.Model):
+    """帮助链接表,关联设备类型和语言,存储对应的官网帮助链接"""
+    id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
+    device_type = models.IntegerField(default=0, verbose_name='设备类型')
+    lang = models.CharField(max_length=16, verbose_name="语言")
+    url = models.CharField(max_length=512, verbose_name="帮助链接")
+    title = models.CharField(max_length=100, blank=True, verbose_name="链接标题")
+    description = models.CharField(max_length=200, blank=True, verbose_name="链接描述")
+    is_active = models.BooleanField(default=True, verbose_name="是否启用")
+    created_time = models.IntegerField(default=0, verbose_name='创建时间')
+    updated_time = models.IntegerField(default=0, verbose_name='更新时间')
+
+    class Meta:
+        db_table = 'help_link'
+        verbose_name = "使用帮助链接"