Bladeren bron

五兴兑换流量增加日志写入表

zhangdongming 2 jaren geleden
bovenliggende
commit
f067bbc1ef
1 gewijzigde bestanden met toevoegingen van 36 en 6 verwijderingen
  1. 36 6
      Controller/UnicomCombo/WXTechController.py

+ 36 - 6
Controller/UnicomCombo/WXTechController.py

@@ -13,7 +13,8 @@ from django.views import View
 
 from Ansjer.config import LOGGER
 from Controller.UnicomCombo.UnicomComboController import UnicomComboView
-from Model.models import UnicomDeviceInfo, Order_Model, UnicomComboExperienceHistory, UnicomCombo, ExchangeCode
+from Model.models import UnicomDeviceInfo, Order_Model, UnicomComboExperienceHistory, UnicomCombo, ExchangeCode, \
+    LogModel
 from Object.Enums.WXOperatorEnum import WXOperatorEnum
 from Object.Enums.WXStartTypeEnum import WXStartTypeEnum
 from Object.ResponseObject import ResponseObject
@@ -64,7 +65,7 @@ class WXTechController(View):
             elif operation == 'createOrder':
                 return self.create_order_package(request_dict, response)
             elif operation == 'exchangePackage':
-                return self.wx_exchange_package(request_dict, response)
+                return self.wx_exchange_package(request_dict, response, request)
 
         @classmethod
         def get_cards_info(cls, request_dict, response):
@@ -215,20 +216,21 @@ class WXTechController(View):
                 return response.json(500, repr(e))
 
         @classmethod
-        def wx_exchange_package(cls, request_dict, response):
+        def wx_exchange_package(cls, request_dict, response, request):
             """
-            五兴兑换套餐包
+            使用兑换码订购五兴五年流量套餐包
             """
+            ip = CommonService.get_ip_address(request)
             try:
                 code = request_dict.get('code')
                 serial_number = request_dict.get('serialNumber')
+                LOGGER.info('*****WXTechController.wx_exchange_package:params,{}'.format(request_dict))
                 if not all([code, serial_number]):
                     return response.json(444)  # 参数缺失
                 # 校验兑换码格式是否正确
                 if not (code.isalnum() and len(code) == 10):
                     return response.json(10040)  # 兑换码格式错误
                 card_type = 1
-                #  查询设备信息
                 device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number, card_type=card_type) \
                     .values('iccid')
                 if not device_info_qs.exists():
@@ -256,9 +258,37 @@ class WXTechController(View):
                     experience_history_vo = {'iccid': iccid, 'experience_type': 1, 'do_time': int(time.time())}
                     UnicomComboExperienceHistory.objects.create(**experience_history_vo)
                     exchange_code_qs.update(status=True)
+                    cls.save_log(ip, 200, '兑换成功{},{}'.format(serial_number, code))
                     return response.json(0)
+                cls.save_log(ip, 10040, '兑换失败{},{}'.format(serial_number, code))
                 return response.json(10040)
             except Exception as e:
-                LOGGER.info('*****WXTechController.delete_card_package:errLine:{}, errMsg:{}'
+                LOGGER.info('*****WXTechController.wx_exchange_package:errLine:{}, errMsg:{}'
                             .format(e.__traceback__.tb_lineno, repr(e)))
+                cls.save_log(ip, 500, '兑换内部错误')
                 return response.json(500, repr(e))
+
+        @staticmethod
+        def save_log(ip, code, operation):
+            """
+            保存操作日志
+            @param ip: ip地址
+            @param code: 状态码
+            @param operation: 操作说明
+            @return: 保存结果
+            """
+            try:
+                log = {
+                    'ip': ip,
+                    'user_id': 1,
+                    'status': code,
+                    'time': int(time.time()),
+                    'operation': operation,
+                    'url': 'unicom/open/wxtech/exchangePackage',
+                }
+                LogModel.objects.create(**log)
+                return True
+            except Exception as e:
+                LOGGER.info('*****WXTechController.save_log:errLine:{}, errMsg:{}'
+                            .format(e.__traceback__.tb_lineno, repr(e)))
+                return False