package com.l7tech.server.cluster;

import com.l7tech.gateway.common.cluster.ServiceUsage;
import com.l7tech.server.util.ManagedTimerTask;
import com.l7tech.util.ExceptionUtils;
import java.util.List;
import java.util.logging.Level;
import org.hibernate.HibernateException;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionTemplate;

class aa extends ManagedTimerTask {
   private final ApplicationContext c;
   private TransactionTemplate d;
   private HibernateTemplate e;
   private final String f;
   final MysqlServiceUsageManager this$0;
   private static final String g;

   private aa(MysqlServiceUsageManager var1, ApplicationContext var2, HibernateTemplate var3, PlatformTransactionManager var4, String var5) {
      this.this$0 = var1;
      this.c = var2;
      this.e = var3;
      this.f = var5;
      this.d = new TransactionTemplate(var4);
      this.d.setReadOnly(false);
   }

   @Override
   protected void doRun() {
      this.a();
   }

   private void a() {
      List var1 = this.this$0.getServiceUsageFromCache(this.f);
      this.record(var1);
   }

   public void record(List<ServiceUsage> var1) {
      try {
         this.d.execute(this::lambda$record$0);
      } catch (HibernateException var3) {
         MysqlServiceUsageManager.a.log(Level.SEVERE, g, ExceptionUtils.getDebugException(var3));
      }
   }

   private Object lambda$record$0(List var1, TransactionStatus var2) {
      return this.e.execute(new s(this, var1));
   }

   static {
      String var10002 = b(33, b("&a\u0004/~&&\nzQ1\u007fe'\u0017jQ0\u007ft>\fm\u0014cou)\u0002k"));
      byte var10001 = -1;
      g = var10002;
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 105);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 68;
            case 1 -> 47;
            case 2 -> 80;
            case 3 -> 98;
            case 4 -> 59;
            case 5 -> 39;
            default -> 105;
         });
      }

      return new String(var10001).intern();
   }
}
