public RoutineTicket GetTicketByTickedId(int id)
    {
        operation.InitConnection(data_resource);

        string sql = "select routine.*, purchased_tickets.* from routine, purchased_tickets where purchased_tickets.routine_id = routine.routine_id and purchased_tickets.ticket_id = " + id;

        Lucky.LuckyUtils.Log(sql);
        RoutineTicket ticket = new RoutineTicket();

        try
        {
            SqliteDataReader reader = operation.ExecuteQuery(sql);

            if (reader.HasRows)
            {
                reader.Read();

                int begin_time = reader.GetInt32(reader.GetOrdinal("start_time"));
                int end_time   = reader.GetInt32(reader.GetOrdinal("end_time"));
                ticket.SetRoutineId(reader.GetInt32(reader.GetOrdinal("routine_id")));
                ticket.SetEndNode(reader.GetString(reader.GetOrdinal("end_node")));
                ticket.SetStartNode(reader.GetString(reader.GetOrdinal("start_node")));
                ticket.SetType(reader.GetInt32(reader.GetOrdinal("type")));
                ticket.SetBeginTime(GetTodayTime(reader.GetInt32(reader.GetOrdinal("start_time"))));
                ticket.SetEndTime(GetTodayTime(reader.GetInt32(reader.GetOrdinal("end_time"))));
                ticket.SetMoney((int)reader.GetFloat(reader.GetOrdinal("money")));
                SetTicketName(reader, ticket);
                ticket.SetTicketid(reader.GetInt32(reader.GetOrdinal("ticket_id")));

                int actual_begin_time = reader.GetInt32(reader.GetOrdinal("actual_start_time"));
                int actual_end_time   = reader.GetInt32(reader.GetOrdinal("actual_end_time"));

                if (actual_begin_time == 0)
                {
                    ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(begin_time));
                }
                else
                {
                    ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(actual_begin_time));
                }

                if (actual_end_time != 0)
                {
                    ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(actual_end_time));
                }
                else
                {
                    ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(end_time));
                }
            }
        } catch (Exception e)
        {
        }
        finally
        {
            operation.CloseConnection();
        }
        return(ticket);
    }
示例#2
0
    public List <TrafficMessage> HandlingAccident(System.Object taccident)
    {
        //handle ticket delay
        Accident        accident   = taccident as Accident;
        TicketsOperaton tickets    = new TicketsOperaton();
        List <int>      routine_id = tickets.DelayTickets(accident.starttime, accident.location, accident.duration, accident.type);

        TimeManager.instance.Delay(routine_id);
        return(new List <TrafficMessage>());
    }
    public static List <Routine> GetRoutinInfo(SqliteDataReader reader)
    {
        List <Routine> res = new List <Routine>();

        while (reader.Read())
        {
            RoutineTicket ticket     = new RoutineTicket();
            int           begin_time = reader.GetInt32(reader.GetOrdinal("start_time"));
            int           end_time   = reader.GetInt32(reader.GetOrdinal("end_time"));

            ticket.SetRoutineId(reader.GetInt32(reader.GetOrdinal("routine_id")));
            ticket.SetEndNode(reader.GetString(reader.GetOrdinal("end_node")));
            ticket.SetStartNode(reader.GetString(reader.GetOrdinal("start_node")));
            ticket.SetType(reader.GetInt32(reader.GetOrdinal("type")));


            ticket.SetBeginTime(TicketsOperaton.GetTodayTime(begin_time));
            ticket.SetEndTime(TicketsOperaton.GetTodayTime(end_time));

            ticket.SetMoney((int)reader.GetFloat(reader.GetOrdinal("money")));

            int actual_begin_time = reader.GetInt32(reader.GetOrdinal("actual_start_time"));
            int actual_end_time   = reader.GetInt32(reader.GetOrdinal("actual_end_time"));

            if (actual_begin_time == 0)
            {
                ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(begin_time));
            }
            else
            {
                ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(actual_begin_time));
            }

            if (actual_end_time != 0)
            {
                ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(actual_end_time));
            }
            else
            {
                ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(end_time));
            }



            // Lucky.LuckyUtils.Log(ticket.GetRoutineId());

            TicketsOperaton.SetTicketName(reader, ticket);
            res.Add(ticket);
        }
        return(res);
    }
 public void Delay(List <int> delayid)
 {
     foreach (int id in delayid)
     {
         lock (golock)
         {
             if (GoId.ContainsKey(id))
             {
                 RemoveGo(id);
                 TicketsOperaton ticket_operation = new TicketsOperaton();
                 RoutineTicket   ticket           = ticket_operation.GetTicketByTickedId(id);
                 Lucky.LuckyUtils.Log("delay " + ticket.GetActualBeginTime());
                 AddGo(new TicketParam(ticket));
             }
         }
     }
 }
示例#5
0
    public List <TrafficMessage> BuyingTickets(System.Object value)
    {
        int id = (int)value;

        Debug.Log("id " + id);
        TicketsOperaton ticket_operation = new TicketsOperaton();
        int             ticketid         = ticket_operation.BuyTickets(id);

        if (ticketid == 0)
        {
            Lucky.LuckyUtils.Log("ticket id error");
            return(null);
        }
        RoutineTicket ticket = ticket_operation.GetTicketByTickedId(ticketid);

        Lucky.LuckyUtils.Log("ticket " + ticket.GetRoutineStartNode() + " " + ticket.GetBeginTime() + " " + ticket.GetTicketId());
        TimeManager.instance.AddGo(new TicketParam(ticket));
        Lucky.LuckyUtils.Log("buy ticket id " + ticket.GetTicketId() + " routtine id" + ticket.GetRoutineId());
        return(new List <TrafficMessage>());
    }
示例#6
0
    void Start()
    {
        RegisterMsg(true);
        AudioManager.Instance.PlayMusic(Audios.BG, true);
        NoteBtn.onClick.AddListener(delegate()
        {
            Show();
            TimeManager.instance.SetNormalSpeed();
        });
        TicketsOperaton to = new TicketsOperaton();

        if (to.RefundAllTickets())
        {
            Lucky.LuckyUtils.Log("successful");
        }
        else
        {
            Lucky.LuckyUtils.Log("fail");
        }
    }
示例#7
0
    private List <TrafficMessage> DeleteTickets(System.Object value)
    {
        int id = (int)value;

        Lucky.LuckyUtils.Log("delete ticket id " + id);
        TicketsOperaton ticket_operation = new TicketsOperaton();

        RoutineTicket ticket = ticket_operation.GetTicketByTickedId(id);

        Lucky.LuckyUtils.Log("delte routine id " + ticket.GetRoutineId());

        bool abc = ticket_operation.RefundTicket(id);

        if (abc)
        {
            TimeManager.instance.RemoveGo(ticket.GetRoutineId());
            return(new List <TrafficMessage>());
        }
        else
        {
            return(null);
        }
    }
    public List <RoutineTicket> GetUserTickets(DateTime time)
    {
        UInt64 ts = RoutineOperation.GetSeconds(time);

        operation.InitConnection(data_resource);
        UInt64 seconds = RoutineOperation.GetSeconds(time);
        // string sql = "select routine.*, purchased_tickets.* from routine, purchased_tickets where purchased_tickets.routine_id = routine.routine_id ";
        string sql = "select routine.*, purchased_tickets.* from routine, purchased_tickets where purchased_tickets.routine_id = routine.routine_id and ((routine.start_time > "
                     + seconds + "  and routine.actual_start_time = 0) or (routine.actual_start_time > 0 and routine.actual_start_time > " + seconds + "))";

        Lucky.LuckyUtils.Log(sql);
        List <RoutineTicket> res = new List <RoutineTicket>();

        try
        {
            SqliteDataReader reader = operation.ExecuteQuery(sql);
            while (reader.Read())
            {
                RoutineTicket ticket     = new RoutineTicket();
                int           begin_time = reader.GetInt32(reader.GetOrdinal("start_time"));
                int           end_time   = reader.GetInt32(reader.GetOrdinal("end_time"));
                ticket.SetRoutineId(reader.GetInt32(reader.GetOrdinal("routine_id")));
                ticket.SetEndNode(reader.GetString(reader.GetOrdinal("end_node")));
                ticket.SetStartNode(reader.GetString(reader.GetOrdinal("start_node")));
                ticket.SetType(reader.GetInt32(reader.GetOrdinal("type")));
                ticket.SetBeginTime(GetTodayTime(reader.GetInt32(reader.GetOrdinal("start_time"))));
                ticket.SetEndTime(GetTodayTime(reader.GetInt32(reader.GetOrdinal("end_time"))));
                ticket.SetMoney((int)reader.GetFloat(reader.GetOrdinal("money")));
                SetTicketName(reader, ticket);
                int actual_begin_time = reader.GetInt32(reader.GetOrdinal("actual_start_time"));
                int actual_end_time   = reader.GetInt32(reader.GetOrdinal("actual_end_time"));

                if (actual_begin_time == 0)
                {
                    ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(begin_time));
                }
                else
                {
                    ticket.SetActualBeginTime(TicketsOperaton.GetTodayTime(actual_begin_time));
                }

                if (actual_end_time != 0)
                {
                    ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(actual_end_time));
                }
                else
                {
                    ticket.SetActualEndTime(TicketsOperaton.GetTodayTime(end_time));
                }

                ticket.SetTicketid(reader.GetInt32(reader.GetOrdinal("ticket_id")));

                res.Add(ticket);
            }
        }
        catch (Exception e)
        {
            Lucky.LuckyUtils.Log(e.StackTrace);
        }
        finally
        {
            operation.CloseConnection();
            Lucky.LuckyUtils.Log(res.Count);
        }
        return(res);
    }
示例#9
0
    private List <TrafficMessage> GetingBuyTickets(System.Object tdt)
    {
        DateTime dt = (DateTime)tdt;

        Lucky.LuckyUtils.Log("abc " + dt);
        TicketsOperaton      ticket_operation = new TicketsOperaton();
        List <RoutineTicket> all_tickets      = ticket_operation.GetUserTickets(dt);

        List <TrafficMessage> finaldata = new List <TrafficMessage>();

        foreach (RoutineTicket rt in all_tickets)
        {
            DateTime starttime = rt.GetActualBeginTime();
            DateTime stoptime  = rt.GetAcutalEndTime();

            string start = rt.GetRoutineStartNode();
            string stop  = rt.GetEndNode();

            string ticketname = rt.GetTicketName();
            string money      = rt.GetMoney() + "";

            int id = rt.GetTicketId();

            TimeSpan ts      = stoptime - starttime;
            string   usetime = "";
            if (ts.Hours < 10)
            {
                usetime += "0";
            }
            usetime += ts.Hours + ":";
            if (ts.Minutes < 10)
            {
                usetime += "0";
            }
            usetime += ts.Minutes;

            Lucky.LuckyUtils.Log("start time " + starttime);
            Lucky.LuckyUtils.Log("get ticked id " + id);
            Lucky.LuckyUtils.Log("get routined id  " + rt.GetRoutineId());

            /*
             * // 第一次开启App,将没有加载的数据放入TimeManager
             * if (!isFirstLoad)
             * {
             *  TimeManager.instance.AddGo(new TicketParam(rt));
             *  isFirstLoad = true;
             * }
             */

            Lucky.LuckyUtils.Log("start time " + starttime + " plan start time " + rt.GetBeginTime());
            Lucky.LuckyUtils.Log("stop time " + stoptime + " plan stop time " + rt.GetEndTime());
            if ((DateTime.Compare(starttime, rt.GetBeginTime()) == 0) && (DateTime.Compare(stoptime, rt.GetEndTime()) == 0))
            {
                finaldata.Add(new TrafficMessage(starttime.ToString("HH:mm"), start, usetime, ticketname, stoptime.ToString("HH:mm"), stop, money, false, false, id, (TrafficType)rt.Type()));
            }
            else
            {
                finaldata.Add(new TrafficMessage(starttime.ToString("HH:mm"), start, usetime, ticketname, stoptime.ToString("HH:mm"), stop, money, false, true, id, (TrafficType)rt.Type()));
            }
        }

        Lucky.LuckyUtils.Log("count " + finaldata.Count);

        return(finaldata);
    }