lcy
2026-04-28 42c8ae5a4fe49c5afdf898da874df55d8d2361cb
Main/System/OpenServerActivity/OperationTimeHepler.cs
@@ -497,72 +497,190 @@
    public void UpdateActTotalRechargeInfo(HAA1D_tagSCActTotalRechargeInfo package)
    {
        OperationBase operationBase = null;
        operationDict.TryGetValue(OperationType.TotalRecharge, out operationBase);
        var opreationType = OperationType.TotalRecharge;
        switch (package.ActNum)
        {
            case 10:
                opreationType = OperationType.TotalRecharge;
                break;
            case 30:
                opreationType = OperationType.FestivalActivity_RechargeTotal;
                break;
        }
        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
        {
            ForceStopOperation(OperationType.TotalRecharge);
            ForceStopOperation(opreationType);
            return;
        }
        else
        {
            if (operationBase == null)
            {
                operationBase = new OperationTotalRechargeInfo();
                operationDict.Add(OperationType.TotalRecharge, operationBase);
            }
            OperationTotalRechargeInfo operation = operationBase as OperationTotalRechargeInfo;
            operation.Reset();
            operation.startDate = ParseOperationDate(package.StartDate);
            operation.endDate = ParseOperationDate(package.EndtDate);
            operation.ActNum = package.ActNum;
            operation.CfgID = package.CfgID;
            var config = ActTotalRechargeConfig.Get(package.CfgID);
            if (config == null)
            {
                SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
                return;
            }
            if (operationTimeUpdateEvent != null)
            {
                operationTimeUpdateEvent(OperationType.TotalRecharge);
            }
        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
        {
            operationBase = new OperationTotalRechargeInfo();
            operationDict.Add(opreationType, operationBase);
        }
        OperationTotalRechargeInfo operation = operationBase as OperationTotalRechargeInfo;
        operation.Reset();
        operation.startDate = ParseOperationDate(package.StartDate);
        operation.endDate = ParseOperationDate(package.EndtDate);
        operation.ActNum = package.ActNum;
        operation.CfgID = package.CfgID;
        var config = ActTotalRechargeConfig.Get(package.CfgID);
        if (config == null)
        {
            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
            return;
        }
        operation.dayReset = config.IsDayReset == 1;
        operationTimeUpdateEvent?.Invoke(opreationType);
    }
    public void UpdateActTotDayRechargeInfo(HAA1B_tagSCActTotDayRechargeInfo package)
    {
        OperationBase operationBase = null;
        operationDict.TryGetValue(OperationType.TotDayRecharge, out operationBase);
        var opreationType = OperationType.TotDayRecharge;
        switch (package.ActNum)
        {
            case 10:
                opreationType = OperationType.TotDayRecharge;
                break;
            case 30:
                opreationType = OperationType.FestivalActivity_RechargeTotDay;
                break;
        }
        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
        {
            ForceStopOperation(OperationType.TotDayRecharge);
            ForceStopOperation(opreationType);
            return;
        }
        else
        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
        {
            if (operationBase == null)
            {
                operationBase = new OperationTotDayRechargeInfo();
                operationDict.Add(OperationType.TotDayRecharge, operationBase);
            }
            OperationTotDayRechargeInfo operation = operationBase as OperationTotDayRechargeInfo;
            operation.Reset();
            operation.startDate = ParseOperationDate(package.StartDate);
            operation.endDate = ParseOperationDate(package.EndtDate);
            operation.ActNum = package.ActNum;
            operation.CfgID = package.CfgID;
            var config = ActTotalRechargeConfig.Get(package.CfgID);
            if (config == null)
            {
                SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
                return;
            }
            operation.dayReset = config.IsDayReset == 1;
            operationTimeUpdateEvent?.Invoke(OperationType.TotDayRecharge);
            operationBase = new OperationTotDayRechargeInfo();
            operationDict.Add(opreationType, operationBase);
        }
        OperationTotDayRechargeInfo operation = operationBase as OperationTotDayRechargeInfo;
        operation.Reset();
        operation.startDate = ParseOperationDate(package.StartDate);
        operation.endDate = ParseOperationDate(package.EndtDate);
        operation.ActNum = package.ActNum;
        operation.CfgID = package.CfgID;
        if (ActTotDayRechargeConfig.Get(package.CfgID) == null)
        {
            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
            return;
        }
        operationTimeUpdateEvent?.Invoke(opreationType);
    }
    public void UpdateFlashSaleActivityInfo(HAA10_tagSCActSpecialSaleInfo package)
    {
        var opreationType = OperationType.FestivalActivity;
        switch (package.ActNum)
        {
            case 30:
                opreationType = OperationType.FestivalActivity;
                break;
        }
        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
        {
            ForceStopOperation(opreationType);
            return;
        }
        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
        {
            operationBase = new OperationFlashSaleActivityInfo();
            operationDict.Add(opreationType, operationBase);
        }
        OperationFlashSaleActivityInfo operation = operationBase as OperationFlashSaleActivityInfo;
        operation.Reset();
        operation.startDate = ParseOperationDate(package.StartDate);
        operation.endDate = ParseOperationDate(package.EndtDate);
        operation.ActNum = package.ActNum;
        operation.CfgID = package.CfgID;
        if (ActSpecialSaleConfig.Get(package.CfgID) == null)
        {
            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
            return;
        }
        operationTimeUpdateEvent?.Invoke(opreationType);
    }
    public void UpdateCheckInActivityInfo(HAA23_tagSCActSignInfo package)
    {
        var opreationType = OperationType.FestivalActivity_CheckIn;
        switch (package.ActNum)
        {
            case 30:
                opreationType = OperationType.FestivalActivity_CheckIn;
                break;
        }
        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
        {
            ForceStopOperation(opreationType);
            return;
        }
        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
        {
            operationBase = new OperationCheckInActivityInfo();
            operationDict.Add(opreationType, operationBase);
        }
        OperationCheckInActivityInfo operation = operationBase as OperationCheckInActivityInfo;
        operation.Reset();
        operation.startDate = ParseOperationDate(package.StartDate);
        operation.endDate = ParseOperationDate(package.EndtDate);
        operation.ActType = package.ActNum;
        operation.CfgID = package.CfgID;
        if (ActSignConfig.Get(package.CfgID) == null)
        {
            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
            return;
        }
        operationTimeUpdateEvent?.Invoke(opreationType);
    }
    public void UpdateMissionActivityInfo(HAA71_tagSCActTaskInfo package)
    {
        var opreationType = OperationType.FestivalActivity_Mission;
        switch (package.ActNum)
        {
            case 30:
                opreationType = OperationType.FestivalActivity_Mission;
                break;
        }
        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
        {
            ForceStopOperation(opreationType);
            return;
        }
        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
        {
            operationBase = new OperationMissionActivityInfo();
            operationDict.Add(opreationType, operationBase);
        }
        OperationMissionActivityInfo operation = operationBase as OperationMissionActivityInfo;
        operation.Reset();
        operation.startDate = ParseOperationDate(package.StartDate);
        operation.endDate = ParseOperationDate(package.EndtDate);
        operation.ActType = package.ActNum;
        operation.CfgID = package.CfgID;
        var config = ActTaskConfig.Get(package.CfgID);
        if (config == null)
        {
            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
            return;
        }
        operation.dayReset = config.IsDayReset == 1;
        operationTimeUpdateEvent?.Invoke(opreationType);
    }
    // public void UpdateActYunShiInfo(HAA87_tagMCActYunshiInfo package)
@@ -1157,5 +1275,10 @@
    HeroReturn = 3, //日期型活动 - 武将返场
    TotalRecharge = 4,//累充活动
    TotDayRecharge = 5, //累充天活动
    FestivalActivity = 6,   //节日活动
    FestivalActivity_RechargeTotDay = 7,   //节日活动-累天充值
    FestivalActivity_RechargeTotal = 8,   //节日活动-累充值
    FestivalActivity_CheckIn = 9,   //节日活动-签到
    FestivalActivity_Mission = 10,   //节日活动-任务
    max,
}