update emf implement
Change-Id: Id967eb0034a7fad33755b7e805b3d73ff49cd79f
diff --git a/src/main/java/cheat/Cheat.java b/src/main/java/cheat/Cheat.java
index 3eecaff..270f2fd 100644
--- a/src/main/java/cheat/Cheat.java
+++ b/src/main/java/cheat/Cheat.java
@@ -1,11 +1,14 @@
package cheat;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.transaction.Transactional;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.EntityTransaction;
import org.apache.commons.lang3.tuple.Pair;
@@ -19,94 +22,138 @@
public class Cheat implements CheatInterfnterface {
- @PersistenceContext
- private EntityManager entityManager;
+ private EntityManagerFactory emf;
+
+ public Cheat() {
+ 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 Cheat(EntityManagerFactory emf) {
+ this.emf = emf;
+ }
+
+ private EntityManager getEntityManager() {
+ return emf.createEntityManager();
+ }
@Override
- @Transactional
public boolean AddAppeal(Appeal appeal) {
+ EntityManager em = getEntityManager();
+ EntityTransaction tx = em.getTransaction();
try {
- entityManager.persist(appeal);
+ tx.begin();
+ em.persist(appeal);
+ tx.commit();
} catch (Exception e) {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
e.printStackTrace();
return false;
+ } finally {
+ em.close();
}
return true;
}
@Override
public Appeal GetAppeal(String appealid) {
+ EntityManager em = getEntityManager();
try {
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
+ JPAQueryFactory queryFactory = new JPAQueryFactory(em);
QAppeal qAppeal = QAppeal.appeal;
Appeal appeal = queryFactory
- .selectFrom(qAppeal)
- .where(qAppeal.appealid.eq(appealid))
- .fetchOne();
+ .selectFrom(qAppeal)
+ .where(qAppeal.appealid.eq(appealid))
+ .fetchOne();
return appeal;
} catch (Exception e) {
e.printStackTrace();
return null;
+ } finally {
+ em.close();
}
}
@Override
public Appeal[] GetAppealList() {
+ EntityManager em = getEntityManager();
try {
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
+ JPAQueryFactory queryFactory = new JPAQueryFactory(em);
QAppeal qAppeal = QAppeal.appeal;
List<Appeal> appeals = queryFactory
- .selectFrom(qAppeal)
- .fetch();
+ .selectFrom(qAppeal)
+ .fetch();
return appeals.toArray(new Appeal[0]);
} catch (Exception e) {
e.printStackTrace();
return null;
+ } finally {
+ em.close();
}
}
@Override
public boolean HandleAppeal(String appealid, Integer status) {
+ EntityManager em = getEntityManager();
+ EntityTransaction tx = em.getTransaction();
try {
- Appeal appeal = GetAppeal(appealid);
+ tx.begin();
+ Appeal appeal = em.find(Appeal.class, appealid);
if (appeal != null) {
appeal.status = status;
- entityManager.merge(appeal);
- User user = entityManager.find(User.class, appeal.appealuserid);
+ em.merge(appeal);
+ User user = em.find(User.class, appeal.appealuserid);
if (user != null && user.accountstate != false) {
if (status == 1) {
user.accountstate = false;
}
- entityManager.merge(user);
+ em.merge(user);
}
+ tx.commit();
return true;
}
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
}
}
@Override
public Pair<String, String>[] GetFakeSeed() {
List<Pair<String, String>> fakeSeeds = new ArrayList<>();
+ EntityManager em = getEntityManager();
try {
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
+ JPAQueryFactory queryFactory = new JPAQueryFactory(em);
QSeed qSeed = QSeed.seed;
List<com.querydsl.core.Tuple> results = queryFactory
- .select(qSeed.seedid, qSeed.seeduserid)
- .from(qSeed)
- .where(qSeed.faketime.gt(new config().FakeTime))
- .fetch();
+ .select(qSeed.seedid, qSeed.seeduserid)
+ .from(qSeed)
+ .where(qSeed.faketime.gt(new config().FakeTime))
+ .fetch();
for (com.querydsl.core.Tuple result : results) {
String seedid = result.get(qSeed.seedid);
- String userid = result.get(qSeed.seeduserid);
+ String userid = result.get(qSeed.seeduserid);
fakeSeeds.add(Pair.of(seedid, userid));
}
} catch (Exception e) {
e.printStackTrace();
return null;
+ } finally {
+ em.close();
}
return fakeSeeds.toArray(new Pair[0]);
}
@@ -114,20 +161,23 @@
@Override
public String[] GetPunishedUserList() {
List<String> punishedUsers = new ArrayList<>();
+ EntityManager em = getEntityManager();
try {
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
+ JPAQueryFactory queryFactory = new JPAQueryFactory(em);
entity.QUser qUser = entity.QUser.user;
List<String> results = queryFactory
- .select(qUser.userid)
- .from(qUser)
- .where(qUser.accountstate.isTrue())
- .fetch();
+ .select(qUser.userid)
+ .from(qUser)
+ .where(qUser.accountstate.isTrue())
+ .fetch();
for (String userid : results) {
punishedUsers.add(userid);
}
} catch (Exception e) {
e.printStackTrace();
return null;
+ } finally {
+ em.close();
}
return punishedUsers.toArray(new String[0]);
}
@@ -148,21 +198,17 @@
// int n = tasks.size();
// if (n == 0) continue;
-
// double[] xArr = new double[n];
// for (int i = 0; i < n; i++) {
// TransRecord t = tasks.get(i);
// xArr[i] = Math.max(0, t.upload - t.download);
// }
-
// double sum = 0;
// for (double x : xArr) sum += x;
// double mu = sum / n;
-
// double sqSum = 0;
// for (double x : xArr) sqSum += (x - mu) * (x - mu);
// double sigma = Math.sqrt(sqSum / n);
-
// for (int i = 0; i < n; i++) {
// if (Math.abs(xArr[i] - mu) > 3 * sigma) {
// User user = entityManager.find(User.class, tasks.get(i).downloaduserid);
@@ -177,27 +223,37 @@
}
@Override
- public void DetectFakeSeed(){
+ public void DetectFakeSeed() {
}
@Override
- public boolean DetectFakeSeed(String seedid){
+ public boolean DetectFakeSeed(String seedid) {
return false;
}
@Override
- public void PunishUser(){
- JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
- entity.QUser qUser = entity.QUser.user;
- List<User> users = queryFactory
- .selectFrom(qUser)
- .where(qUser.detectedCount.gt(new entity.config().CheatTime)
- .or(qUser.fakeDetectedCount.gt(new entity.config().FakeTime)))
- .fetch();
+ public void PunishUser() {
+ EntityManager em = getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ JPAQueryFactory queryFactory = new JPAQueryFactory(em);
+ entity.QUser qUser = entity.QUser.user;
+ List<User> users = queryFactory
+ .selectFrom(qUser)
+ .where(qUser.detectedCount.gt(new entity.config().CheatTime)
+ .or(qUser.fakeDetectedCount.gt(new entity.config().FakeTime)))
+ .fetch();
- for (User user : users) {
- user.accountstate = true;
- entityManager.merge(user);
+ for (User user : users) {
+ user.accountstate = true;
+ em.merge(user);
+ }
+ tx.commit();
+ } catch (Exception e) {
+ if (tx.isActive()) tx.rollback();
+ } finally {
+ em.close();
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index ae1fe94..766c90a 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -1,12 +1,12 @@
package database;
-// import java.lang.invoke.TypeDescriptor;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
import com.querydsl.jpa.impl.JPAQuery;
@@ -25,42 +25,66 @@
import entity.UserStar;
public class Database1 implements DataManagerInterface {
- @PersistenceContext
- private EntityManager entitymanager;
+
+ private EntityManagerFactory emf;
+
+ public Database1() {
+ entity.config cfg = new entity.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 Database1(EntityManagerFactory emf) {
+ this.emf = emf;
+ }
+
+ private EntityManager getEntityManager() {
+ return emf.createEntityManager();
+ }
// 返回状态:0 success,1 邮箱重复,2其他原因
@Override
- public int RegisterUser(User userinfo){
- try{
- JPAQuery<String> query = new JPAQuery<>(entitymanager);
+ public int RegisterUser(User userinfo) {
+ EntityManager em = getEntityManager();
+ try {
+ JPAQuery<String> query = new JPAQuery<>(em);
QUser u = QUser.user;
List<String> allEmails = query.select(u.email).from(u).fetch();
- if(allEmails.contains(userinfo.email)){
+ if (allEmails.contains(userinfo.email)) {
return 1;
}
- entitymanager.persist(userinfo);
+ em.getTransaction().begin();
+ em.persist(userinfo);
+ em.getTransaction().commit();
return 0;
- }catch(Exception e){
+ } catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
-
+
}
// 返回状态:0 success,1 不存在,2其他原因
@Override
- public int UpdateInformation(User userinfo){
+ public int UpdateInformation(User userinfo) {
+ EntityManager em = getEntityManager();
try {
if (userinfo.userid == null) {
return 2; // userid为null直接返回错误
}
- JPAQuery<User> query = new JPAQuery<>(entitymanager);
+ JPAQuery<User> query = new JPAQuery<>(em);
QUser u = QUser.user;
User updateUser = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
- if(updateUser == null){
+ if (updateUser == null) {
return 1;
}
// 只更新需要的字段,避免破坏持久化状态和关联关系
@@ -74,242 +98,305 @@
updateUser.accountstate = userinfo.accountstate;
updateUser.invitetimes = userinfo.invitetimes;
// 如有其他字段也一并赋值
- entitymanager.merge(updateUser);
+ em.getTransaction().begin();
+ em.merge(updateUser);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
-
+
}
// 返回用户的全部基本信息
@Override
- public User GetInformation(String userid){
- User user = entitymanager.find(User.class, userid);
- return user;
+ public User GetInformation(String userid) {
+ EntityManager em = getEntityManager();
+ try {
+ User user = em.find(User.class, userid);
+ return user;
+ } finally {
+ em.close();
+ }
}
//返回用户的全部pt站信息
@Override
- public UserPT GetInformationPT(String userid){
- UserPT userPT = entitymanager.find(UserPT.class, userid);
- return userPT;
+ public UserPT GetInformationPT(String userid) {
+ EntityManager em = getEntityManager();
+ try {
+ UserPT userPT = em.find(UserPT.class, userid);
+ return userPT;
+ } finally {
+ em.close();
+ }
}
//返回状态:0 success,1 邮箱重复,2其他原因
@Override
- public int UpdateInformationPT(UserPT userinfo){
- try{
- JPAQuery<UserPT> query = new JPAQuery<>(entitymanager);
+ public int UpdateInformationPT(UserPT userinfo) {
+ EntityManager em = getEntityManager();
+ try {
+ JPAQuery<UserPT> query = new JPAQuery<>(em);
QUserPT u = QUserPT.userPT;
UserPT userPT = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
-
- if(userPT == null){
+
+ if (userPT == null) {
return 1;
}
userPT = userinfo;
- entitymanager.merge(userPT);
+ em.getTransaction().begin();
+ em.merge(userPT);
+ em.getTransaction().commit();
return 0;
- }catch(Exception e){
+ } catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
}
//返回状态:0 success,1 id重复,2其他原因
@Override
- public int RegisterUserPT(UserPT userinfo){
+ public int RegisterUserPT(UserPT userinfo) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<UserPT> query = new JPAQuery<>(entitymanager);
+ JPAQuery<UserPT> query = new JPAQuery<>(em);
QUserPT u = QUserPT.userPT;
UserPT checkUserPT = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
if (checkUserPT != null) {
return 1;
}
- entitymanager.persist(userinfo);
+ em.getTransaction().begin();
+ em.persist(userinfo);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
}
//返回种子的全部信息
@Override
- public Seed GetSeedInformation(String seedid){
- JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
- QSeed s = QSeed.seed;
- Seed seed = query.select(s).from(s).where(s.seedid.eq(seedid)).fetchOne();
- return seed;
+ public Seed GetSeedInformation(String seedid) {
+ EntityManager em = getEntityManager();
+ try {
+ JPAQuery<Seed> query = new JPAQuery<>(em);
+ QSeed s = QSeed.seed;
+ Seed seed = query.select(s).from(s).where(s.seedid.eq(seedid)).fetchOne();
+ return seed;
+ } finally {
+ em.close();
+ }
}
//添加一个新的种子,0成功,其他失败信息待定;
@Override
- public int RegisterSeed(Seed seedinfo){
+ public int RegisterSeed(Seed seedinfo) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
+ JPAQuery<Seed> query = new JPAQuery<>(em);
QSeed s = QSeed.seed;
Seed seed = query.select(s).from(s).where(s.seedid.eq(seedinfo.seedid)).fetchOne();
if (seed != null) {
return 1;
}
- entitymanager.persist(seedinfo);
+ em.getTransaction().begin();
+ em.persist(seedinfo);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
}
//接收新的种子然后更新其全部属性
@Override
- public int UpdateSeed(Seed seedinfo){
+ public int UpdateSeed(Seed seedinfo) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
+ JPAQuery<Seed> query = new JPAQuery<>(em);
QSeed s = QSeed.seed;
Seed seed = query.select(s).from(s).where(s.seedid.eq(seedinfo.seedid)).fetchOne();
if (seed == null) {
return 1;
}
seed = seedinfo;
- entitymanager.merge(seed);
+ em.getTransaction().begin();
+ em.merge(seed);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
}
//传入搜索的关键词或句子,返回搜索到的种子信息(按照公共字符数量排序)
@Override
- public Seed[] SearchSeed(String userQ){
- JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
- QSeed s = QSeed.seed;
- List<Seed> seeds = query.select(s).from(s).fetch();
+ public Seed[] SearchSeed(String userQ) {
+ EntityManager em = getEntityManager();
+ try {
+ JPAQuery<Seed> query = new JPAQuery<>(em);
+ QSeed s = QSeed.seed;
+ List<Seed> seeds = query.select(s).from(s).fetch();
- if (seeds == null || userQ == null || userQ.trim().isEmpty()) {
+ if (seeds == null || userQ == null || userQ.trim().isEmpty()) {
+ return seeds.toArray(new Seed[0]);
+ }
+
+ String processedQuery = userQ.toLowerCase().trim();
+ Map<Seed, Integer> seedCountMap = new HashMap<>();
+ for (Seed seed : seeds) {
+ String title = seed.title.toLowerCase().trim();
+ int count = countCommonCharacter(processedQuery, title);
+ seedCountMap.put(seed, count);
+ }
+ seeds.sort((s1, s2) -> {
+ int count1 = seedCountMap.getOrDefault(s1, 0);
+ int count2 = seedCountMap.getOrDefault(s2, 0);
+ return Integer.compare(count2, count1);
+ });
+
return seeds.toArray(new Seed[0]);
+ } finally {
+ em.close();
}
-
- String processedQuery = userQ.toLowerCase().trim();
- Map<Seed, Integer> seedCountMap = new HashMap<>();
- for(Seed seed : seeds){
- String title = seed.title.toLowerCase().trim();
- int count = countCommonCharacter(processedQuery, title);
- seedCountMap.put(seed, count);
- }
- seeds.sort((s1, s2) -> {
- int count1 = seedCountMap.getOrDefault(s1, 0);
- int count2 = seedCountMap.getOrDefault(s2, 0);
- return Integer.compare(count2, count1);
- });
-
- return seeds.toArray(new Seed[0]);
}
//计算字符串公共字符数量
- private int countCommonCharacter(String str1, String str2){
+ private int countCommonCharacter(String str1, String str2) {
Map<Character, Integer> map1 = new HashMap<>();
Map<Character, Integer> map2 = new HashMap<>();
- for(char c : str1.toCharArray()){
+ for (char c : str1.toCharArray()) {
if (!Character.isWhitespace(c)) {
map1.put(c, map1.getOrDefault(c, 0) + 1);
}
}
- for(char c : str2.toCharArray()){
+ for (char c : str2.toCharArray()) {
if (!Character.isWhitespace(c)) {
map2.put(c, map2.getOrDefault(c, 0) + 1);
}
}
int res = 0;
- for(char c : map1.keySet()){
+ for (char c : map1.keySet()) {
if (map2.containsKey(c)) {
res += Math.min(map1.get(c), map2.get(c));
}
-
+
}
return res;
}
//返回状态:0 success,1 重复,2其他原因
@Override
- public int AddNotice(Notice notice){
+ public int AddNotice(Notice notice) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<Notice> query = new JPAQuery<>(entitymanager);
+ JPAQuery<Notice> query = new JPAQuery<>(em);
QNotice n = QNotice.notice;
Notice checkNotice = query.select(n).from(n).where(n.noticeid.eq(notice.noticeid)).fetchOne();
if (checkNotice != null) {
return 1;
}
-
- entitymanager.persist(notice);
+
+ em.getTransaction().begin();
+ em.persist(notice);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
-
+
}
//返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean UpdateNotice(Notice notice){
+ public boolean UpdateNotice(Notice notice) {
+ EntityManager em = getEntityManager();
try {
- Notice oldNotice = entitymanager.find(Notice.class, notice.noticeid);
+ Notice oldNotice = em.find(Notice.class, notice.noticeid);
if (oldNotice == null) {
return false;
}
oldNotice = notice;
- entitymanager.merge(oldNotice);
+ em.getTransaction().begin();
+ em.merge(oldNotice);
+ em.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
+ } finally {
+ em.close();
}
}
//删除公告,返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean DeleteNotice(String noticeid){
+ public boolean DeleteNotice(String noticeid) {
+ EntityManager em = getEntityManager();
try {
- Notice notice = entitymanager.find(Notice.class, noticeid);
+ Notice notice = em.find(Notice.class, noticeid);
if (notice == null) {
return false;
}
- entitymanager.remove(notice);
+ em.getTransaction().begin();
+ em.remove(notice);
+ em.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
+ } finally {
+ em.close();
}
-
+
}
//获取用户的剩余邀请次数
- public int GetUserAvailableInviteTimes(String userid){
+ public int GetUserAvailableInviteTimes(String userid) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<Integer> query = new JPAQuery<>(entitymanager);
+ JPAQuery<Integer> query = new JPAQuery<>(em);
QUser u = QUser.user;
int invite_left = query.select(u.invitetimes).from(u).where(u.userid.eq(userid)).fetchOne();
-
+
return invite_left;
} catch (Exception e) {
e.printStackTrace();
return -1;
+ } finally {
+ em.close();
}
-
+
}
//邀请用户,返回状态:0 success,1 剩余次数不足,2,3其他原因
@Override
- public int InviteUser(String inviterid,String inviteemail){
+ public int InviteUser(String inviterid, String inviteemail) {
+ EntityManager em = getEntityManager();
try {
- User user = entitymanager.find(User.class, inviterid);
+ User user = em.find(User.class, inviterid);
if (user == null || !user.email.equals(inviteemail)) {
return 3;
}
@@ -317,158 +404,176 @@
return 1;
}
user.invitetimes -= 1;
- entitymanager.merge(user);
+ em.getTransaction().begin();
+ em.merge(user);
+ em.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 2;
+ } finally {
+ em.close();
}
-
+
}
//添加一个收藏,返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean AddCollect(String userid,String seedid){
- JPAQuery<User> query2 = new JPAQuery<>(entitymanager);
- QUser u2 = QUser.user;
- User user = query2.select(u2).from(u2).where(u2.userid.eq(userid)).fetchOne();
- if (user == null) {
- return false;
- }
- JPAQuery<Seed> query3 = new JPAQuery<>(entitymanager);
- QSeed p = QSeed.seed;
- Seed seed = query3.select(p).from(p).where(p.seedid.eq(seedid)).fetchOne();
- if (seed == null) {
- return false;
- }
- JPAQuery<String> query = new JPAQuery<>(entitymanager);
- QUserStar u = QUserStar.userStar;
- List<String> allSeedId = query.select(u.seedid).from(u).where(u.userid.eq(userid)).fetch();
+ public boolean AddCollect(String userid, String seedid) {
+ EntityManager em = getEntityManager();
+ try {
+ JPAQuery<User> query2 = new JPAQuery<>(em);
+ QUser u2 = QUser.user;
+ User user = query2.select(u2).from(u2).where(u2.userid.eq(userid)).fetchOne();
+ if (user == null) {
+ return false;
+ }
+ JPAQuery<Seed> query3 = new JPAQuery<>(em);
+ QSeed p = QSeed.seed;
+ Seed seed = query3.select(p).from(p).where(p.seedid.eq(seedid)).fetchOne();
+ if (seed == null) {
+ return false;
+ }
+ JPAQuery<String> query = new JPAQuery<>(em);
+ QUserStar u = QUserStar.userStar;
+ List<String> allSeedId = query.select(u.seedid).from(u).where(u.userid.eq(userid)).fetch();
- if (allSeedId.contains(seedid)) {
+ if (allSeedId.contains(seedid)) {
+ return false;
+ }
+ UserStar userStar = new UserStar();
+ userStar.userid = userid;
+ userStar.seedid = seedid;
+ em.getTransaction().begin();
+ em.persist(userStar);
+ em.getTransaction().commit();
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
return false;
+ } finally {
+ em.close();
}
- UserStar userStar = new UserStar();
- userStar.userid = userid;
- userStar.seedid = seedid;
- entitymanager.persist(userStar);
- return true;
}
//删除一个收藏,返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean DeleteCollect(String userid,String seedid){
+ public boolean DeleteCollect(String userid, String seedid) {
+ EntityManager em = getEntityManager();
try {
- JPAQuery<UserStar> query = new JPAQuery<>(entitymanager);
+ JPAQuery<UserStar> query = new JPAQuery<>(em);
QUserStar u = QUserStar.userStar;
UserStar userStar = query.select(u).from(u).where(u.userid.eq(userid).and(u.seedid.eq(seedid))).fetchOne();
if (userStar == null) {
return true; // 收藏不存在
}
- entitymanager.remove(userStar);
+ em.getTransaction().begin();
+ em.remove(userStar);
+ em.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
+ } finally {
+ em.close();
}
-
+
}
@Override
- public int AddBegSeed(BegInfo info){
+ public int AddBegSeed(BegInfo info) {
return 0;
}
@Override
- public int UpdateBegSeed(BegInfo info){
+ public int UpdateBegSeed(BegInfo info) {
return 0;
}
@Override
- public int DeleteBegSeed(String begid){
+ public int DeleteBegSeed(String begid) {
return 0;
}
@Override
- public int VoteSeed(String begId, String seedId, String userId){
+ public int VoteSeed(String begId, String seedId, String userId) {
return 0;
}
@Override
- public int SubmitSeed(String begid,Seed seed){
+ public int SubmitSeed(String begid, Seed seed) {
return 0;
}
@Override
- public void SettleBeg(){
-
+ public void SettleBeg() {
+
}
@Override
- public int AddPost(Post post){
+ public int AddPost(Post post) {
return 0;
}
@Override
- public int UpdatePost(Post post){
+ public int UpdatePost(Post post) {
return 0;
}
@Override
- public int DeletePost(String postid){
+ public int DeletePost(String postid) {
return 0;
}
@Override
- public int AddComment(String postid, String userid, String comment){
+ public int AddComment(String postid, String userid, String comment) {
return 0;
}
@Override
- public int DeleteComment(String postid,String commentid){
+ public int DeleteComment(String postid, String commentid) {
return 0;
}
@Override
- public boolean ExchangeMagicToUpload(String userid,int magic)//将魔力值兑换为上传量,返回状态:0 success,1 不存在,2其他原因
+ public boolean ExchangeMagicToUpload(String userid, int magic)//将魔力值兑换为上传量,返回状态:0 success,1 不存在,2其他原因
{
return true;
}
-
+
@Override
- public boolean ExchangeMagicToDownload(String userid,int magic)
- {
+ public boolean ExchangeMagicToDownload(String userid, int magic) {
return true;
}//将魔力值兑换为下载量,返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean ExchangeMagicToVip(String userid,int magic){
+ public boolean ExchangeMagicToVip(String userid, int magic) {
return true;
}
//将魔力值兑换为VIP次数,返回状态:0 success,1 不存在,2其他原因
@Override
- public boolean UploadTransmitProfile(Profile profile){
+ public boolean UploadTransmitProfile(Profile profile) {
return true;
}
@Override
- public Profile GetTransmitProfile(String profileid){
+ public Profile GetTransmitProfile(String profileid) {
Profile profile = new Profile();
return profile;
}
//获取迁移信息
-
+
@Override
- public boolean ExamTransmitProfile(String profileid,boolean result){
+ public boolean ExamTransmitProfile(String profileid, boolean result) {
return true;
}
+
//审核迁移信息,0成功,1失败
@Override
- public Profile[] GetTransmitProfileList(){
+ public Profile[] GetTransmitProfileList() {
return new Profile[0];
}
//获取所有迁移信息
}
-