|
@@ -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
|