Example #1
0
 /// <summary>
 /// 构造配置(如果没有的话)
 /// </summary>
 public void makeConfig()
 {
     if (config == null)
     {
         config = ActivityConfig.get(id);
     }
 }
Example #2
0
 /// <summary>
 /// 重载配置
 /// </summary>
 public void reloadConfig()
 {
     config = ActivityConfig.get(id);
 }
Example #3
0
    /** 检查单个初始化 */
    private void runOnTime(ActivityData data)
    {
        ActivityConfig config = ActivityConfig.get(data.id);

        long nextEnd   = config.endTimeT.getNextTime();
        long nextStart = config.startTimeT.getNextTime();

        bool isRunning;

        //没有关闭时间
        if (config.endTimeT.isEmpty())
        {
            isRunning = true;
        }
        else
        {
            //已关闭
            if (nextEnd == -1L)
            {
                isRunning = false;
            }
            else
            {
                if (nextStart == -1L)
                {
                    isRunning = true;
                }
                else
                {
                    //根据两个时间差判定开关
                    isRunning = nextStart > nextEnd;
                }
            }
        }

        if (data.isRunning != isRunning || data.nextTurnTime == 0)
        {
            if (isRunning)
            {
                doActivityOpen(data, nextEnd, false);
            }
            else
            {
                doActivityClose(data, nextStart, false);
            }
        }
        else
        {
            long nextTurn = isRunning ? nextEnd : nextStart;

            //需要计算
            if (data.nextTurnTime != nextTurn)
            {
                //配置变更
                if (data.nextTurnTime == -1)
                {
                    data.nextTurnTime = nextTurn;
                }
                else
                {
                    long now = me.getTimeMillis();

                    //之前的时间
                    if (data.nextTurnTime < now)
                    {
                        //开关一下
                        if (isRunning)
                        {
                            doActivityClose(data, nextStart, false);
                            doActivityOpen(data, nextEnd, false);
                        }
                        else
                        {
                            doActivityOpen(data, nextEnd, false);
                            doActivityClose(data, nextStart, false);
                        }
                    }
                    else
                    {
                        data.nextTurnTime = nextTurn;
                    }
                }
            }
        }

        if (data.nextResetTime == 0)
        {
            data.nextResetTime = config.resetTimeT.getNextTime();
        }
        else
        {
            long nextResetTime = config.resetTimeT.getNextTime();

            if (nextResetTime != data.nextResetTime)
            {
                //配置变更
                if (data.nextResetTime == -1)
                {
                    data.nextResetTime = nextResetTime;
                }
                else
                {
                    long now = me.getTimeMillis();

                    if (data.nextResetTime < now)
                    {
                        doActivityReset(data, nextResetTime, false);
                    }
                }
            }
        }
    }