添加定时触发函数
Change-Id: Ic4320637c4f5a0ee95f45fc37c80e244ddecc870
diff --git a/src/main/java/cheat/Cheat.java b/src/main/java/cheat/Cheat.java
index 1141c5b..5ca7c04 100644
--- a/src/main/java/cheat/Cheat.java
+++ b/src/main/java/cheat/Cheat.java
@@ -418,17 +418,30 @@
@Override
public void PunishUser(){
EntityManager entityManager = emf.createEntityManager();
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
- entity.QUser qUser = entity.QUser.user;
- List<User> users = queryFactory
- .selectFrom(qUser)
- .where(qUser.detectedCount.gt(config.getCheatTime())
- .or(qUser.fakeDetectedCount.gt(config.getFakeTime())))
- .fetch();
-
- for (User user : users) {
- user.accountstate = true;
- entityManager.merge(user);
+ try {
+ JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
+ entity.QUser qUser = entity.QUser.user;
+ List<User> users = queryFactory
+ .selectFrom(qUser)
+ .where(qUser.detectedCount.gt(config.getCheatTime())
+ .or(qUser.fakeDetectedCount.gt(config.getFakeTime())))
+ .fetch();
+ if (users.isEmpty()) {
+ System.out.println("No users to punish.");
+ return;
+ }
+ entityManager.getTransaction().begin();
+ for (User user : users) {
+ user.accountstate = true;
+ entityManager.merge(user);
+ }
+ entityManager.getTransaction().commit();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (entityManager != null) {
+ entityManager.close();
+ }
}
}