Пример #1
0
def getPayResult(request):
    response={}
    logger = logging.getLogger('Pack.app')
    logger.info('----------request--------------')
    logger.info(request.body)
    info = json.loads(request.body)
    logger.info(info)
    charge_succeeded = info['type']
    _chargeNO = info['data']['object']['id']
    if charge_succeeded == 'charge.succeeded':
        orderQuery = Order.objects.select_related().filter(thirdChargeNO = _chargeNO)
        if not orderQuery.exists():
            response['code'] = -1
            response['errorMessage'] = '获取chargeid失败'
            return HttpResponse(json.dumps(response),content_type="application/json")
        orderQuery.update(status = '1')
        saler = orderQuery[0].saler
        _deviceInfo = saler.deviceInfo
        if(len(_deviceInfo and "iOS") == 3):
            pushRst = pushAPN(saler.deviceToken,'0',str(orderQuery[0].id))
            logger.info(pushRst)
        elif(len(_deviceInfo and 'Android') == 7):
            pushRst = pushMessageToSingle(saler.clientID,'0',str(orderQuery[0].id))

        submitRecord = u'订单支付成功,请等待商家确认'
        record = OrderRecord(record = submitRecord,order=orderQuery[0],date = datetime.datetime.now())
        record.save()

        return HttpResponse('200')
    return HttpResponse('500')
Пример #2
0
def tableTask(orderId):
    logger = logging.getLogger('Pack.app')
    logger.info("tableTask")
    logger.info(orderId)
    print('tableTask')
    time.sleep(60*5)
    try:
        order = Order.objects.get(id = orderId)
    except:
        print('no such order')
    if str(order.status) == '0':
        order.status = '100'
        order.save()
        record = u'您的订单失效了,已取消'
        record = OrderRecord(record = record,order=order,date = datetime.datetime.now())
        record.save()
        _tableId = order.tableId
        try:
            table = Table.objects.get(id = _tableId)
        except:
            logger.info('not found such table')
        else:
            table.status = '0'
            table.userId = ''
            table.lockTimeStamp = '0'
            table.save()
        _deviceInfo = order.saler.deviceInfo
        if(len(_deviceInfo and "iOS") == 3):
            pushRst = pushAPN(order.user.deviceToken,'1001',str(order.id))
            logger.info(pushRst)
        elif(len(_deviceInfo and 'Android') == 7):
            pushRst = pushMessageToSingle(order.user.clientID,'1001',str(order.id))
            print(pushRst['result'])
            if pushRst['result'] != 'successed_online':
                notify(order.saler.telephone,'1')
Пример #3
0
def finishOrder(request):
    logger = logging.getLogger('Pack.app')
    response = {}
    response['data'] = {}
    response['errorMsg'] = ""
    _waiterOrderId = request.session.get('waiterOrderId')
    if not _waiterOrderId:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    ##################JUDGE############
    _lastLoginTime = request.session.get('lastLoginTime')
    if not _lastLoginTime:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    try:
        waiterOrder = WaiterOrder.objects.select_related().get(id = _waiterOrderId)
    except ObjectDoesNotExist:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
    if _lastLoginTime != waiterOrder.lastLoginTime:
        response['code'] = 1
        response['errorMsg'] = '上次登录失效,请重新登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    ####################END#################

    _orderId = request.REQUEST.get('orderId')
    if _orderId == None or _orderId == '':
        response['code'] = -1
        response['errorMsg'] = '获取orderId失败'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")

    try:
        order = Order.objects.get(id = _orderId)
    except ObjectDoesNotExist:
        response['code'] = -1
        response['errorMsg'] = '获取餐桌信息失败'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")

    if order.status == '0':
        if order.userId == '':
            order.status = '4'
            order.save()
            submitRecord = u'就餐完毕'.encode('utf-8')
            record = OrderRecord(record = submitRecord,order=order,date = datetime.datetime.now())
            record.save()

            try:
                table = Table.objects.get(id = str(order.tableId))
            except ObjectDoesNotExist:
                response['code'] = -1
                response['errorMsg'] = '获取餐桌信息失败'
                return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
            table.status = '0'
            table.save()
            response['code'] = 0
            return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
        else:
            order.status = '2'
            order.save()
            submitRecord = u'就餐完毕'.encode('utf-8')
            record = OrderRecord(record = submitRecord,order=order,date = datetime.datetime.now())
            record.save()
            tableLockQuery = TableLock.objects.select_related().filter(user__id = order.userId).filter(table__id
                        = str(order.tableId)).filter(isValid = True)
            if not tableLockQuery.exists():
                logger.info('不存在该tableLockQuery')
                try:
                    table = Table.objects.get(id = str(order.tableId))
                except ObjectDoesNotExist:
                    response['code'] = -1
                    response['errorMsg'] = '获取餐桌信息失败'
                    return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
                table.status = '0'
                table.save()
                response['code'] = 0
                return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
            else:
                user = tableLockQuery[0].user
                tableLockQuery.update(isValid = False)
                _deviceInfo = user.deviceInfo
                if(len(_deviceInfo and "iOS") == 3):
                    pass
    #               pushRst = pushAPN(saler.deviceToken,'0',str(orderQuery[0].id))
                elif(len(_deviceInfo and 'Android') == 7):
                    pass
    #               pushRst = pushMessageToSingle(saler.clientID,'0',str(orderQuery[0].id))

                try:
                    table = Table.objects.get(id = str(order.tableId))
                except ObjectDoesNotExist:
                    response['code'] = -1
                    response['errorMsg'] = '获取餐桌信息失败'
                    return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
                table = tableLockQuery[0].table
                table.status = '0'
                table.save()
                response['code'] = 0
                return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
Пример #4
0
def addSkusWithOrder(request):
    logger = logging.getLogger('Pack.app')
    response = {}
    response['data'] = {}
    response['errorMsg'] = ""
    _waiterOrderId = request.session.get('waiterOrderId')
    if not _waiterOrderId:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    ##################JUDGE############
    _lastLoginTime = request.session.get('lastLoginTime')
    if not _lastLoginTime:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    try:
        waiterOrder = WaiterOrder.objects.select_related().get(id = _waiterOrderId)
    except ObjectDoesNotExist:
        response['code'] = 1
        response['errorMsg'] = '请先登录'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
    if _lastLoginTime != waiterOrder.lastLoginTime:
        response['code'] = 1
        response['errorMsg'] = '上次登录失效,请重新登录'
        return HttpResponse(json.dumps(response),content_type="application/json")
    ####################END#################

    _orderId = request.REQUEST.get('orderId')
    _priceTotal = request.REQUEST.get('priceTotal')
    _categoryList = request.REQUEST.get('categoryList')
    if _priceTotal == None or _priceTotal == '':
        response['code'] = -1
        response['errorMsg'] = '获取总计价格失败'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
    if _orderId == None or _orderId == '':
        response['code'] = -1
        response['errorMsg'] = '获取orderId失败'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
    if _categoryList == None or _categoryList == '':
        response['code'] = -1
        response['errorMsg'] = '请输入对应关系'
        return HttpResponse(json.dumps(response),content_type="application/json")
    __categoryList = json.loads(_categoryList)


    try:
        order = Order.objects.get(id = _orderId)
    except ObjectDoesNotExist:
        response['code'] = -1
        response['errorMsg'] = '获取餐桌信息失败'
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")

    if order.status == '0':
        priceTotal = float(order.pricetotal) + float(_priceTotal)
        order.pricetotal = priceTotal
        order.save()
        submitRecord = u'加菜成功'.encode('utf-8')
        record = OrderRecord(record = submitRecord,order=order,date = datetime.datetime.now())
        record.save()

        _orderSKUList = []
        for category in __categoryList:
            categoryId = category['categoryId']
            try:
                tableCategory = TableCategory.objects.select_realted().filter(table__id = str(table.id)).filter(
                    category__id =  str(categoryId))[0]
            except IndexError:
                response['code'] = -1
                response['errorMsg'] = '获取tableCategory失败'
                return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")
            skuList = category['skuList']
            for sku in skuList:
                _id = sku['skuId']
                _name = sku['skuName']
                _quantity = sku['skuQuantity']
                _sizeName = sku['skuSizeName']
                _price = sku['skuPrice']
                _orderSKUList.append(OrderSku(order = order,tableId = str(order.tableId) ,skuId = _id,  skuName = _name,
                    skuQuantity =int(_quantity),skuSizeName =_sizeName, skuPrice = _price,status = '0',waiterOrderId = str(
                    tableCategory.waiterOrder.id),cookId = str(tableCategory.cook.id),waiterServeId = str(
                    tableCategory.waiterServe.id)))
            cook = tableCategory.cook
            _deviceInfo = cook.deviceInfo
            OrderSku.objects.bulk_create(_orderSKUList)
            if(len(_deviceInfo and "iOS") == 3):
                pass
#               pushRst = pushAPN(saler.deviceToken,'0',str(orderQuery[0].id))
            elif(len(_deviceInfo and 'Android') == 7):
                pass
#               pushRst = pushMessageToSingle(saler.clientID,'0',str(orderQuery[0].id))
            response['code'] = 0
            return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")

    else:
        response['code'] = -1
        response['errorMsg'] = ''
        return HttpResponse(json.dumps(response,ensure_ascii=False),content_type="application/json")