示例#1
0
    def refund_ticket(self):
        orderno = request.params['orderno']
        ticket_flag = request.params['ticket_flag']
        seats = request.params['sid']

        order = Order.getby_orderno(orderno)
        if not order:
            return Code.order_does_not_exist, {'orderno': orderno}
        # 订单是否已打印
        if order.status == OrderStatus.printed.value:
            return Code.ticket_printed_already, {}
        # 订单是否支付
        if order.status != OrderStatus.paid.value:
            return Code.order_not_paid_yet, {}
        # 核对订单码
        if not order.validate(ticket_flag):
            return Code.ticket_flag_error, {'ticket_flag': ticket_flag}
        refund_num = PlaySeat.refund(orderno, order.pid, seats)
        # 退票数
        if not refund_num:
            return Code.ticket_refund_failed, {}
        order.status = OrderStatus.refund.value
        order.refund_time = datetime.now()
        order.save()
        return {'refund_num': refund_num}
示例#2
0
    def refund(self):
        orderno = request.params["orderno"]
        ticket_flag = request.params["ticket_flag"]
        seats = request.params["sid"]

        order = Order.getby_orderno(orderno)
        if not order:
            return Code.order_does_not_exist, {"orderno": orderno}
        # 判断是否出票
        if order.status == OrderStatus.printed.value:
            return Code.ticket_printed_already, {}
        # 订单是否支付
        if order.status != OrderStatus.paid.value:
            return Code.order_not_paid_yet, {}
        # 判断取票码
        if not order.validate(ticket_flag):
            return Code.ticket_flag_error, {"ticket_flag": ticket_flag}

        refund_num = PlaySeat.refund(orderno, order.pid, seats)

        if not refund_num:
            return Code.ticket_refund_failed, {}

        order.status = OrderStatus.refund.value
        order.refund_time = datetime.now()
        order.save()

        return {"refund_num": refund_num}