12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import logging
- import arrow
- from django.conf import settings
- from mongoengine import Q
- from apps.web.agent.models import Agent
- from apps.web.core.utils import JsonErrorResponse
- from apps.web.dealer.models import Dealer
- from apps.web.device.models import Device
- from apps.web.management.models import Manager
- logger = logging.getLogger(__name__)
- def querySimCardList(searchKey, simCardSource, simCardStatus, startTime, endTime, pageIndex, pageSize):
- if startTime is None or endTime is None:
- return JsonErrorResponse(description = u'没有给过期时间')
- start_time = arrow.get(startTime, 'YYYY-MM-DD', tzinfo = settings.TIME_ZONE)
- end_time = arrow.get(endTime, 'YYYY-MM-DD', tzinfo = settings.TIME_ZONE).shift(days = 1)
- query = Device.generate_sim_expire_query(
- expire_start_date = start_time.naive,
- expire_end_date = end_time.naive,
- sim_source = simCardSource,
- sim_status = simCardStatus
- )
- cursor = Device.search(searchKey).filter(Q(__raw__ = query))
- total = cursor.count()
- objs = cursor.paginate(pageIndex, pageSize)
- dataList = []
- for obj in objs: # type: Device
- try:
- dealer = Dealer.objects.get(id = obj.ownerId)
- agent = Agent.objects.get(id = dealer.agentId)
- manager = Manager.objects.get(id = agent.managerId)
- dataList.append({
- 'id': str(obj.id),
- 'imei': obj.devNo,
- 'iccid': obj.iccid,
- 'simCardStatus': obj.simStatus,
- 'simCardBrand': obj.simSource,
- 'expireDate': obj.fixedSimExpireDate,
- 'logicalCode': obj.logicalCode,
- 'dealerNickname': dealer.nickname,
- 'dealerUsername': dealer.username,
- 'agentNickname': agent.nickname,
- 'agentUsername': agent.username,
- 'managerNickname': manager.nickname,
- 'managerUsername': manager.username,
- })
- except Exception, e:
- logger.error('get sim card info failure. logicalCode = {}.'.format(obj.logicalCode))
- return total, dataList
|