Browse Source

后台上传/编辑大模型许可证接口

locky 3 months ago
parent
commit
fd8aa16965
1 changed files with 26 additions and 11 deletions
  1. 26 11
      AdminController/DeviceManagementController.py

+ 26 - 11
AdminController/DeviceManagementController.py

@@ -138,7 +138,7 @@ class DeviceManagement(View):
             elif operation == 'getBaiduBigModelLicense':  # 查询大模型许可证
                 return self.get_baidu_big_model_license(request_dict, response)
             elif operation == 'addBaiduBigModelLicense':  # 添加大模型许可证
-                return self.add_baidu_big_model_license(request_dict, response)
+                return self.add_baidu_big_model_license(request, response)
             elif operation == 'editBaiduBigModelLicense':  # 编辑大模型许可证
                 return self.edit_baidu_big_model_license(request, request_dict, response)
             elif operation == 'delBaiduBigModelLicense':   # 删除大模型许可证
@@ -1971,15 +1971,29 @@ class DeviceManagement(View):
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     @staticmethod
-    def add_baidu_big_model_license(request_dict, response):
+    def add_baidu_big_model_license(request, response):
         """添加百度大模型许可证"""
+        file = request.FILES.get('file', None)
+        if not file:
+            return response.json(444)
         try:
-            serial = CommonService.createOrderID()[:9]  # 生成9位序列号
-            license_name = f"许可证_{serial}"
+            license_name = str(file)
             now_time = int(time.time())
-            
+
+            # 上传文件到华为云OBS
+            obs_client = ObsClient(
+                access_key_id=HUAWEICLOUD_AK,
+                secret_access_key=HUAWEICLOUD_SK,
+                server=HUAWEICLOUD_OBS_SERVER
+            )
+            resp = obs_client.putObject(
+                bucketName=HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET,
+                objectKey=license_name,
+                content=file
+            )
+            assert resp.status < 300
+
             BaiduBigModelLicense.objects.create(
-                serial=serial,
                 license_name=license_name,
                 created_time=now_time,
                 updated_time=now_time
@@ -1988,10 +2002,11 @@ class DeviceManagement(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-    def edit_baidu_big_model_license(self, request, request_dict, response):
+    @staticmethod
+    def edit_baidu_big_model_license(request, request_dict, response):
         """编辑百度大模型许可证"""
         license_id = request_dict.get('id')
-        license_name = request_dict.get('licenseName')
+        serial = request_dict.get('serial')
         use_status = request_dict.get('useStatus')
 
         if not license_id:
@@ -2001,10 +2016,10 @@ class DeviceManagement(View):
             update_data = {
                 'updated_time': int(time.time())
             }
-            if license_name:
-                update_data['license_name'] = license_name
+            if serial:
+                update_data['serial'] = serial
             if use_status is not None:
-                update_data['use_status'] = use_status
+                update_data['use_status'] = int(use_status)
 
             BaiduBigModelLicense.objects.filter(id=license_id).update(**update_data)
             return response.json(0)