rebase and resubmit
Change-Id: I840888ad5aadceaacb5cd64c6472614cd82ffe17
diff --git a/src/main/java/tracker/Tracker.java b/src/main/java/tracker/Tracker.java
index 8addf61..d53c258 100644
--- a/src/main/java/tracker/Tracker.java
+++ b/src/main/java/tracker/Tracker.java
@@ -1,19 +1,39 @@
package tracker;
import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
+
import com.querydsl.jpa.impl.JPAUpdateClause;
-import object.QUserPT;
-import object.UserPT;
-import object.TTorent;
-import object.TransRecord;
+
+import entity.TTorent;
+import entity.TransRecord;
+import entity.config;
+import entity.QUserPT;
public class Tracker implements TrackerInterface {
- private static final EntityManagerFactory emf =
- Persistence.createEntityManagerFactory("myPersistenceUnit");
+ private final EntityManagerFactory emf;
+
+ // 默认构造:产线数据库
+ public Tracker() {
+ config cfg = new config();
+ Map<String,Object> props = new HashMap<>();
+ props.put("javax.persistence.jdbc.url",
+ "jdbc:mysql://" + cfg.SqlURL + "/" + cfg.Database);
+ props.put("javax.persistence.jdbc.user", cfg.SqlUsername);
+ props.put("javax.persistence.jdbc.password", cfg.SqlPassword);
+ this.emf = Persistence.createEntityManagerFactory("myPersistenceUnit", props);
+ }
+
+ // 测试传入:测试库
+ public Tracker(EntityManagerFactory emf) {
+ this.emf = emf;
+ }
@Override
public boolean AddUpLoad(String userid, int upload) {
@@ -27,38 +47,56 @@
.set(q.upload, q.upload.add(upload))
.execute();
tx.commit();
- return updated > 0;
+ // 成功时 updated>0 返回 false,失败时返回 true
+ return updated <= 0;
} catch(Exception e) {
if (tx.isActive()) tx.rollback();
- return false;
+ return true;
} finally {
em.close();
}
}
@Override
- public boolean ReduceUpLoad(String userid,int upload){
- return false;
- };//给用户减上传量,返回0成功,返回1失败;
+ public boolean ReduceUpLoad(String userid, int upload){
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ QUserPT q = QUserPT.userPT;
+ long updated = new JPAUpdateClause(em, q)
+ .where(q.userid.eq(userid))
+ .set(q.upload, q.upload.subtract(upload))
+ .execute();
+ tx.commit();
+ // 成功时 updated>0 返回 false,失败时返回 true
+ return updated <= 0;
+ } catch(Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return true;
+ } finally {
+ em.close();
+ }
+ }
@Override
public boolean AddDownload(String userid,int download){
- return false;
+ return true;
};//给用户增加下载量,返回0成功,返回1失败;
@Override
public boolean ReduceDownload(String userid,int download){
- return false;
+ return true;
};//给用户减少下载量,返回0成功,返回1失败;
@Override
public boolean AddMagic(String userid,int magic){
- return false;
+ return true;
};//给用户增加魔力值,返回0成功,返回1失败;
@Override
public boolean ReduceMagic(String userid,int magic){
- return false;
+ return true;
};//给用户减少魔力值,返回0成功,返回1失败;
@Override
diff --git a/src/main/java/tracker/TrackerInterface.java b/src/main/java/tracker/TrackerInterface.java
index 872d9ad..0c2df5c 100644
--- a/src/main/java/tracker/TrackerInterface.java
+++ b/src/main/java/tracker/TrackerInterface.java
@@ -1,8 +1,8 @@
package tracker;
import java.io.File;
-import object.TTorent;
-import object.TransRecord;
+import entity.TTorent;
+import entity.TransRecord;
public interface TrackerInterface{
public boolean AddUpLoad(String userid,int upload);//给用户新增上传量,返回0成功,返回1失败;
public boolean ReduceUpLoad(String userid,int upload);//给用户减上传量,返回0成功,返回1失败;