using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TEAMModelOS.SDK.DI; using TEAMModelOS.SDK.Extension; using TEAMModelOS.SDK.Models.Dtos; using static OpenXmlPowerTools.RevisionProcessor; namespace TEAMModelOS.SDK.Models.Service { public static class SystemService { public static async Task RecordAccumulateData(AzureRedisFactory azureRedis,DingDing dingDing, Accumulate accumulate) { if (!string.IsNullOrWhiteSpace(accumulate.key) && !string.IsNullOrWhiteSpace(accumulate.target) && !string.IsNullOrWhiteSpace(accumulate.id) && !string.IsNullOrWhiteSpace(accumulate.name) && !string.IsNullOrWhiteSpace(accumulate.scope) && !string.IsNullOrWhiteSpace(accumulate.client)) { await RecordAccumulateData(azureRedis, accumulate.key, accumulate.target, accumulate.id, accumulate.name, accumulate.scope, accumulate.client, accumulate.count); } else { await dingDing.SendBotMsg($"IES累计数据变更统计参数异常,{accumulate.ToJsonString()}", GroupNames.成都开发測試群組); } } /// /// 记录累计数据 /// public static async Task RecordAccumulateData(AzureRedisFactory azureRedis, string key, string target, string id, string name, string scope, string client,int count) { if (!string.IsNullOrWhiteSpace(key) && !string.IsNullOrWhiteSpace(target) && !string.IsNullOrWhiteSpace(id) && !string.IsNullOrWhiteSpace(name) && !string.IsNullOrWhiteSpace(scope)&& !string.IsNullOrWhiteSpace(client)) { //处理UTC时差 var nowTime = DateTimeOffset.UtcNow.GetGMTTime(); int difference = (DayOfWeek.Sunday - nowTime.DayOfWeek + 7) % 7; //1-7的结果0-6 var day = nowTime.ToString("yyyyMMdd"); string redisKey = $"Accumulate:Daily:{scope}:{key}:{day}"; string member = $"{target}::{id}::{client}::{name}"; await azureRedis.GetRedisClient(8).SortedSetIncrementAsync(redisKey, member, count); await azureRedis.GetRedisClient(8).KeyExpireAsync(redisKey,new TimeSpan((difference+1)*24, 10,0)); //if (key.Equals("lesson") || key.StartsWith("login_")) //{ // redisKey = $"Accumulate:Daily:ies:{key}:{day}"; // if (scope.Equals("school")) // { // member = $"ies::{id}::{name}"; // } // else { // member = $"ies::ies::{name}"; // } // await azureRedis.GetRedisClient(8).SortedSetIncrementAsync(redisKey, member, 1); //} } } } }