1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- # -*- encoding: utf-8 -*-
- """
- @File : UnicomComboTaskController.py
- @Time : 2022/6/30 16:23
- @Author : stephen
- @Email : zhangdongming@asj6.wecom.work
- @Software: PyCharm
- """
- import logging
- import time
- from django.db import transaction
- from django.views import View
- from Model.models import UnicomComboOrderInfo, UnicomCombo, Order_Model
- from Object.ResponseObject import ResponseObject
- from Object.UnicomObject import UnicomObjeect
- class UnicomComboTaskView(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()
- print(request)
- if operation == 'check-activate':
- return self.check_activate_combo(request_dict, response)
- @classmethod
- def check_activate_combo(cls, request_dict, response):
- """
- 定时检查是否有次月激活套餐
- @param request_dict:
- @param response:
- @return:
- """
- logger = logging.getLogger('info')
- print(request_dict)
- logger.info('定时检查是否有次月激活联通套餐')
- now_time = int(time.time())
- combo_order_info_qs = UnicomComboOrderInfo.objects.filter(status=0, next_month_activate=True,
- activation_time__lte=now_time,
- expire_time__gte=now_time, is_del=0).values()
- if not combo_order_info_qs.exists():
- return response.json(0)
- try:
- now_time = int(time.time())
- with transaction.atomic():
- unicom_api = UnicomObjeect()
- for item in combo_order_info_qs:
- if item['order_id']:
- order_id = item['order_id']
- order_qs = Order_Model.objects.filter(orderID=order_id, status=1)
- if not order_qs.exists():
- logger.info('当前已付款联通订单套餐不存在:orderId={}'.format(order_id))
- continue
- combo_id = item['combo_id']
- combo_qs = UnicomCombo.objects.filter(id=combo_id).values()
- if combo_qs.exists():
- item['status'] = 1
- item['updated_time'] = now_time
- params = {'iccid': item['iccid']}
- result = unicom_api.verify_device(**params)
- result = unicom_api.get_text_dict(result)
- if result and result['success']:
- # 1:已激活;2:可激活;3:已停用;4:已失效;5:可测试;6:库存;7:已更换;8:已清除;
- status = result['data']['status']
- if status != 1:
- up_data = {'iccid': item['iccid'], 'status': 1}
- device_result = UnicomObjeect.update_device_state(**up_data)
- device_result = UnicomObjeect.get_text_dict(device_result)
- if device_result and device_result['success']:
- UnicomComboOrderInfo.objects.filter(id=item['id']) \
- .update(status=1, updated_time=now_time)
- else:
- UnicomComboOrderInfo.objects.filter(id=item['id']) \
- .update(status=1, updated_time=now_time)
- logger.info('激活成功,订单编号:{}'.format(order_id))
- return response.json(0)
- except Exception as e:
- print(e)
- return response.json(177, repr(e))
|