hch
8 天以前 cb653cf75b17b9bdca0b5b9e6b88edf1ca72e90c
Main/System/OpenServerActivity/OperationTimeHepler.cs
@@ -6,16 +6,16 @@
public class OperationTimeHepler : Singleton<OperationTimeHepler>
{
    public Dictionary<Operation, OperationBase> operationDict = new Dictionary<Operation, OperationBase>();
    public Dictionary<OperationType, OperationBase> operationDict = new Dictionary<OperationType, OperationBase>();
    public static StringBuilder textBuilder = new StringBuilder();
    public event Action<Operation> operationTimeUpdateEvent;
    public event Action<Operation> operationServerCloseEvent;//特殊情况下触发
    public event Action<Operation, int> operationEndEvent;//活动结束时间触发  第二个参数0--过活动时间触发  1--过活动天触发
    public event Action<Operation, int> operationStartEvent;//活动开始时间并且满足开启条件触发 第二个参数0--活动时间触发  1--活动天触发
    public event Action<OperationType> operationTimeUpdateEvent;
    public event Action<OperationType> operationServerCloseEvent;//特殊情况下触发
    public event Action<OperationType, int> operationEndEvent;//活动结束时间触发  第二个参数0--过活动时间触发  1--过活动天触发
    public event Action<OperationType, int> operationStartEvent;//活动开始时间并且满足开启条件触发 第二个参数0--活动时间触发  1--活动天触发
    public event Action<int> dayResetEvent;//活动重置事件0-0点 1-5点
    public event Action<Operation> operationAdvanceEvent;//活动在提前开启的时间内
    public event Action<OperationType> operationAdvanceEvent;//活动在提前开启的时间内
    public OperationTimeHepler()
    {
@@ -38,30 +38,30 @@
        {
            return;
        }
        for (int i = 0; i < (int)Operation.max; i++)
        for (int i = 0; i < (int)OperationType.max; i++)
        {
            if (operationDict.ContainsKey((Operation)i))
            if (operationDict.ContainsKey((OperationType)i))
            {
                var operation = operationDict[(Operation)i];
                var operation = operationDict[(OperationType)i];
                if (!operation.inDateNotify && operation.SatisfyOpenCondition()
                    && operation.InDay(TimeUtility.ServerNow))
                {
                    operation.inDateNotify = true;
                    operation.stepDateNotify = false;
                    Debug.LogFormat("{0}  活动天开始", (Operation)i);
                    Debug.LogFormat("{0}  活动天开始", (OperationType)i);
                    if (operationStartEvent != null)
                    {
                        operationStartEvent((Operation)i, 1);
                        operationStartEvent((OperationType)i, 1);
                    }
                }
                else if (!operation.stepDateNotify && !operation.InDay(TimeUtility.ServerNow))
                {
                    operation.inDateNotify = false;
                    operation.stepDateNotify = true;
                    Debug.LogFormat("{0}  活动天结束", (Operation)i);
                    Debug.LogFormat("{0}  活动天结束", (OperationType)i);
                    if (operationEndEvent != null)
                    {
                        operationEndEvent((Operation)i, 1);
                        operationEndEvent((OperationType)i, 1);
                    }
                }
                if (!operation.inTimeNotify && operation.SatisfyOpenCondition()
@@ -69,10 +69,10 @@
                {
                    operation.inTimeNotify = true;
                    operation.stepTimeNotify = false;
                    Debug.LogFormat("{0}  活动时间开始", (Operation)i);
                    Debug.LogFormat("{0}  活动时间开始", (OperationType)i);
                    if (operationStartEvent != null)
                    {
                        operationStartEvent((Operation)i, 0);
                        operationStartEvent((OperationType)i, 0);
                    }
                }
                else if (!operation.stepTimeNotify && !operation.InTime(TimeUtility.ServerNow))
@@ -80,10 +80,10 @@
                    operation.inTimeNotify = false;
                    operation.stepTimeNotify = true;
                    operation.inAdvanceNotify = false;
                    Debug.LogFormat("{0}  活动时间结束", (Operation)i);
                    Debug.LogFormat("{0}  活动时间结束", (OperationType)i);
                    if (operationEndEvent != null)
                    {
                        operationEndEvent((Operation)i, 0);
                        operationEndEvent((OperationType)i, 0);
                    }
                }
@@ -91,10 +91,10 @@
                    && operation.InAdvanceTime(TimeUtility.ServerNow))
                {
                    operation.inAdvanceNotify = true;
                    Debug.LogFormat("{0}  活动提前开启", (Operation)i);
                    Debug.LogFormat("{0}  活动提前开启", (OperationType)i);
                    if (operationAdvanceEvent != null)
                    {
                        operationAdvanceEvent((Operation)i);
                        operationAdvanceEvent((OperationType)i);
                    }
                }
            }
@@ -684,7 +684,7 @@
    //     }
    // }
    public void ForceStopOperation(Operation operationType)
    public void ForceStopOperation(OperationType operationType)
    {
        if (operationDict.ContainsKey(operationType))
        {
@@ -701,12 +701,12 @@
        }
    }
    public bool TryGetOperationTime(Operation type, out OperationBase operation)
    public bool TryGetOperationTime(OperationType type, out OperationBase operation)
    {
        return operationDict.TryGetValue(type, out operation);
    }
    public bool TryGetOperation<T>(Operation type, out T operation) where T : OperationBase
    public bool TryGetOperation<T>(OperationType type, out T operation) where T : OperationBase
    {
        operation = null;
        if (operationDict.ContainsKey(type))
@@ -717,7 +717,7 @@
        return false;
    }
    public bool InOperationTime(Operation type)
    public bool InOperationTime(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -727,7 +727,7 @@
        return false;
    }
    public bool InOperationTime(Operation type, DateTime time)
    public bool InOperationTime(OperationType type, DateTime time)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -737,7 +737,7 @@
        return false;
    }
    public bool InOperationJoinTime(Operation type, DateTime time)
    public bool InOperationJoinTime(OperationType type, DateTime time)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -747,7 +747,7 @@
        return false;
    }
    public bool InOperationDay(Operation type)
    public bool InOperationDay(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -757,7 +757,7 @@
        return false;
    }
    public int GetOperationSurplusTime(Operation type)
    public int GetOperationSurplusTime(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -767,7 +767,7 @@
        return 0;
    }
    public bool InOperationAdvance(Operation type)
    public bool InOperationAdvance(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -777,7 +777,7 @@
        return false;
    }
    public int GetOperationSecondsBeforeStart(Operation type)
    public int GetOperationSecondsBeforeStart(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -787,7 +787,7 @@
        return 0;
    }
    public bool SatisfyOpenCondition(Operation type)
    public bool SatisfyOpenCondition(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -797,7 +797,7 @@
        return false;
    }
    public bool SatisfyOpenCondition(Operation type, DateTime time)
    public bool SatisfyOpenCondition(OperationType type, DateTime time)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -808,7 +808,7 @@
    }
    //活动开启中,有参与进行时间段
    public bool SatisfyJoinCondition(Operation type, DateTime time)
    public bool SatisfyJoinCondition(OperationType type, DateTime time)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -818,7 +818,7 @@
        return false;
    }
    public bool IsPrepareTime(Operation type, DateTime time)
    public bool IsPrepareTime(OperationType type, DateTime time)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -828,7 +828,7 @@
        return false;
    }
    public bool SatisfyAdvanceCondition(Operation type)
    public bool SatisfyAdvanceCondition(OperationType type)
    {
        OperationBase operation;
        if (TryGetOperationTime(type, out operation))
@@ -838,7 +838,7 @@
        return false;
    }
    public void ProcessConditionError(Operation type)
    public void ProcessConditionError(OperationType type)
    {
        if (SatisfyOpenCondition(type))
        {
@@ -1043,7 +1043,7 @@
    }
}
public enum Operation
public enum OperationType
{
    MultipleExp,
    ConsumeRebate,