Эх сурвалжийг харах

优化产品入库二维码/有奖征文缩略图/删除ICCID接口

zhangdongming 1 сар өмнө
parent
commit
0c48938083

+ 26 - 4
AdminController/EvaluationActivityController.py

@@ -47,9 +47,9 @@ class EvaluationActivityView(View):
             return self.add_activity_user(user_id, request_dict, response)
         elif operation == 'editActivityUser':
             return self.edit_activity_user(request_dict, response)
-        elif operation == 'addStoryCollectionUser':     # 新增故事征集客户信息
+        elif operation == 'addStoryCollectionUser':  # 新增故事征集客户信息
             return self.add_story_collection_user(user_id, request_dict, response)
-        elif operation == 'addStoryCollectionUserSuccess':     # 新增故事征集客户信息成功回调
+        elif operation == 'addStoryCollectionUserSuccess':  # 新增故事征集客户信息成功回调
             return self.add_story_collection_user_success(user_id, request_dict, response)
         else:
             return response.json(404)
@@ -303,9 +303,31 @@ class EvaluationActivityView(View):
             if phone:
                 user_qs = user_qs.filter(phone=phone)
             count = user_qs.count()
+            # 华为云
+            obs_client = ObsClient(
+                access_key_id=HUAWEICLOUD_AK, secret_access_key=HUAWEICLOUD_SK, server=HUAWEICLOUD_OBS_SERVER)
+
             user_qs = user_qs.values('id', 'user_name', 'phone', 'age', 'address', 'sex', 'is_selected', 'activity_id',
-                                     'usage_environment', 'is_reports')[(page - 1) * line:page * line]
-            return response.json(0, {'list': list(user_qs), 'count': count})
+                                     'usage_environment', 'is_reports', 'story',
+                                     'file_1_name', 'file_2_name')[(page - 1) * line:page * line]
+            activity_list = []
+            for item in user_qs:
+                activity_dict = {'id': item['id'], 'user_name': item['user_name'], 'phone': item['phone'],
+                                 'age': item['age'], 'address': item['address'], 'sex': item['sex'],
+                                 'is_selected': item['is_selected'], 'activity_id': item['activity_id'],
+                                 'usage_environment': item['usage_environment'], 'is_reports': item['is_reports'],
+                                 'story': item['story'], 'file_1_name': '', 'file_2_name': ''}
+                if item['file_1_name']:
+                    create_res = obs_client.createSignedUrl(
+                        method='GET', bucketName=HUAWEICLOUD_SERVER_BUKET, objectKey=item['file_1_name'], expires=300)
+                    activity_dict['file_1_name'] = create_res.signedUrl
+                if item['file_2_name']:
+                    create_res = obs_client.createSignedUrl(
+                        method='GET', bucketName=HUAWEICLOUD_SERVER_BUKET, objectKey=item['file_1_name'], expires=300)
+                    activity_dict['file_2_name'] = create_res.signedUrl
+                activity_list.append(activity_dict)
+
+            return response.json(0, {'list': activity_list, 'count': count})
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 

+ 14 - 0
AdminController/ProductsSchemeManageController.py

@@ -336,6 +336,19 @@ class ProductsSchemeManageView(View):
 
     def _scheme_to_dict(self, scheme):
         """方案对象序列化(优化点:集中管理序列化逻辑)"""
+        # 定义需要包含在str_schema中的字段
+        schema_fields = [
+            'flash', 'main_controller', 'wifi', 'four_g',
+            'sensor', 'ddr', 'ad', 'phy'
+        ]
+
+        # 获取字段值,过滤掉空值
+        schema_values = [getattr(scheme, field, '') for field in schema_fields]
+        valid_values = [v for v in schema_values if v]  # 过滤空字符串
+
+        # 拼接字符串模式,不保留空值位置
+        str_schema = '+'.join(valid_values)
+
         return {
             'id': scheme.id,
             'orderNumber': scheme.order_number,
@@ -352,6 +365,7 @@ class ProductsSchemeManageView(View):
             'customerCode': scheme.customer_code,
             'phy': scheme.phy,
             'remark': scheme.remark,
+            'strSchema': str_schema,
             'createdTime': scheme.created_time,
             'createdBy': scheme.created_by
         }

+ 53 - 12
AdminController/UnicomManageController.py

@@ -84,6 +84,9 @@ class UnicomManageControllerView(View):
             # 获取/筛选用户信息
             elif operation == 'filter/user':
                 return self.get_user_info(request_dict, response)
+            # 删除卡信息
+            elif operation == 'delCardInfoByIccid':
+                return self.delete_combo(request, request_dict, response)
             # 充值流量
             elif operation == 'getFlowPackages':
                 return self.get_flow_packages(request_dict, response)
@@ -126,7 +129,7 @@ class UnicomManageControllerView(View):
                 return self.batch_order_flow_package(request, request_dict, response, userID)
             elif operation == 'updateFlowComboById':  # 根据ID更新流量套餐
                 return self.update_flow_combo_by_id(request_dict, response)
-            if operation == 'verifyPackageExport':
+            elif operation == 'verifyPackageExport':
                 return self.verify_package_export_excel(request, request_dict, response)
             elif operation == 'batchSerialNumberCombo':  # 批量查询序列号绑定iccid情况
                 return self.batch_serial_number_combo(request, response)
@@ -339,6 +342,39 @@ class UnicomManageControllerView(View):
             print(e)
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def delete_combo(request, request_dict, response):
+        iccid = request_dict.get('iccid')
+        if not iccid:
+            return response.json(444, '缺少必要参数: iccid')
+
+        try:
+            with transaction.atomic():
+                # 查询设备记录
+                ud_qs = UnicomDeviceInfo.objects.filter(iccid=iccid)
+
+                if not ud_qs.exists():
+                    return response.json(404, '未找到指定ICCID的物联卡信息')
+                # 删除设备信息
+                ud_qs.delete()
+                # 记录操作日志
+                ip = CommonService.get_ip_address(request)
+                log_data = {
+                    'ip': ip,
+                    'user_id': 1,
+                    'status': 200,
+                    'time': int(time.time()),
+                    'url': 'unicom/manage/delCardInfoByIccid',
+                    'content': json.dumps(request_dict, default=str),
+                    'operation': f'删除物联卡信息: ICCID={iccid}, 设备信息已脱敏',
+                }
+                LogModel.objects.create(**log_data)
+
+            return response.json(0, '删除成功')
+        except Exception as e:
+            LOGGER.error(f"删除ICCID未知错误: {str(e)}", exc_info=True)
+            return response.json(500, '系统内部错误,请联系管理员')
+
     @staticmethod
     def query_sql_4g():
         """
@@ -943,7 +979,8 @@ class UnicomManageControllerView(View):
             re_data = {'iccid': iccid}
             if card_type == 0:
 
-                status_dict = {1: '已激活', 2: '可激活', 3: '已停用', 4: '已失效', 5: '可测试', 6: '库存', 7: '已更换', 8: '已清除'}
+                status_dict = {1: '已激活', 2: '可激活', 3: '已停用', 4: '已失效', 5: '可测试', 6: '库存', 7: '已更换',
+                               8: '已清除'}
                 result = UnicomObjeect().query_device_status(**re_data)
                 res_dict = UnicomObjeect().get_text_dict(result)
                 return status_dict.get(int(res_dict['data']['status']), 'N/A')
@@ -954,6 +991,7 @@ class UnicomManageControllerView(View):
                 data = {'iccid': iccid, 'operator': 3}
                 wx_tech = WXTechObject()
                 result = wx_tech.get_cards_info(**data)
+                LOGGER.info(f'查询iccid{iccid}状态结果:{result}')
                 return status_dict.get(int(result['data']['cardStatusCode']), 'N/A')
 
             elif card_type == 3:
@@ -975,7 +1013,8 @@ class UnicomManageControllerView(View):
             else:
                 return 'N/A'
         except Exception as e:
-            print(repr(e))
+            LOGGER.error('查询ICCID卡状态异常iccid:{},:errLine:{}, errMsg:{}'
+                         .format(iccid, e.__traceback__.tb_lineno, repr(e)))
             return 'N/A'
 
     @classmethod
@@ -1585,14 +1624,17 @@ class UnicomManageControllerView(View):
             return response.json(444)
 
         try:
-            # 读取序列号文件
-            serial_numbers = [line.decode('utf-8').strip() for line in serial_number_file.readlines()]
-            if all(len(serial_number) == 9 for serial_number in serial_numbers):
-                thread = threading.Thread(target=cls.batch_order_flow,
-                                          args=(serial_numbers, package_id, request, request_dict, user_id))
-                thread.start()
-            else:
-                return response.json(10, "请导入9位序列号")
+            # 读取序列号文件并处理
+            serial_numbers = []
+            for line in serial_number_file.readlines():
+                # 去除空格并截取前9个字符
+                cleaned_line = line.decode('utf-8').strip().replace(' ', '')[0:9]
+                serial_numbers.append(cleaned_line)
+
+            thread = threading.Thread(target=cls.batch_order_flow,
+                                      args=(serial_numbers, package_id, request, request_dict, user_id))
+            thread.start()
+
             return response.json(0)
 
         except Exception as e:
@@ -1688,4 +1730,3 @@ class UnicomManageControllerView(View):
                 result_dict['no_iccid'].append(serial_no)
 
         return response.json(0, result_dict)
-