blob: 8c3bbb4d397f7734889be4228d28499f7e1e46e4 [file] [log] [blame]
rootcd436562025-05-08 14:09:19 +00001package database;
2
root0dbc9812025-05-19 04:41:57 +00003import java.util.HashMap;
4import java.util.List;
5import java.util.Map;
6
7import javax.persistence.EntityManager;
Raverf79fdb62025-06-03 06:02:49 +00008import javax.persistence.PersistenceContext;
root678fd3e2025-06-03 14:20:20 +00009import javax.persistence.Persistence;
root0dbc9812025-05-19 04:41:57 +000010
11import com.querydsl.jpa.impl.JPAQuery;
12
13import entity.BegInfo;
14import entity.Notice;
15import entity.Post;
16import entity.Profile;
17import entity.QNotice;
18import entity.QSeed;
19import entity.QUser;
20import entity.QUserPT;
21import entity.QUserStar;
TRM-codingcdfe5482025-06-06 17:31:01 +080022import entity.QUserInvite;
root0dbc9812025-05-19 04:41:57 +000023import entity.Seed;
24import entity.User;
25import entity.UserPT;
26import entity.UserStar;
Raverf79fdb62025-06-03 06:02:49 +000027import entity.config;
root0dbc9812025-05-19 04:41:57 +000028
29public class Database1 implements DataManagerInterface {
Raverf79fdb62025-06-03 06:02:49 +000030 @PersistenceContext
31 private final EntityManager entitymanager;
root678fd3e2025-06-03 14:20:20 +000032
33 public Database1() {
Raverf79fdb62025-06-03 06:02:49 +000034 config cfg = new config();
35 Map<String,Object> props = new HashMap<>();
36 props.put("javax.persistence.jdbc.url",
37 "jdbc:mysql://" + cfg.SqlURL + "/" + cfg.Database);
root678fd3e2025-06-03 14:20:20 +000038 props.put("javax.persistence.jdbc.user", cfg.SqlUsername);
39 props.put("javax.persistence.jdbc.password", cfg.SqlPassword);
Raverf79fdb62025-06-03 06:02:49 +000040 this.entitymanager = Persistence.createEntityManagerFactory("myPersistenceUnit", props).createEntityManager();
root678fd3e2025-06-03 14:20:20 +000041 }
TRM-codingcdfe5482025-06-06 17:31:01 +080042 @Override
43 public String LoginUser(User userinfo){
44 try {
45 // 检查传入的参数是否合法
46 if (userinfo == null || userinfo.password == null) {
47 return null;
48 }
49
50 // 用户名和邮箱应该有且仅有一个不为空
51 boolean hasUsername = userinfo.username != null && !userinfo.username.isEmpty();
52 boolean hasEmail = userinfo.email != null && !userinfo.email.isEmpty();
53
54 // 如果两个都为空或两个都不为空,返回null
55 if ((!hasUsername && !hasEmail) || (hasUsername && hasEmail)) {
56 return null;
57 }
58
59 JPAQuery<User> query = new JPAQuery<>(entitymanager);
60 QUser u = QUser.user;
61 User foundUser = null;
62
63 if (hasUsername) {
64 // 通过用户名和密码查找
65 foundUser = query.select(u)
66 .from(u)
67 .where(u.username.eq(userinfo.username)
68 .and(u.password.eq(userinfo.password)))
69 .fetchOne();
70 } else {
71 // 通过邮箱和密码查找
72 foundUser = query.select(u)
73 .from(u)
74 .where(u.email.eq(userinfo.email)
75 .and(u.password.eq(userinfo.password)))
76 .fetchOne();
77 }
78
79 // 如果找到匹配的用户则返回用户ID,否则返回null
80 return foundUser != null ? foundUser.userid : null;
81
82 } catch (Exception e) {
83 e.printStackTrace();
84 return null;
85 }
86 }
root0dbc9812025-05-19 04:41:57 +000087
88 // 返回状态:0 success,1 邮箱重复,2其他原因
89 @Override
Raverf79fdb62025-06-03 06:02:49 +000090 public int RegisterUser(User userinfo){
91 try{
TRM-codingcdfe5482025-06-06 17:31:01 +080092 // 首先检查该邮箱是否在UserInvite表中被邀请过
93 JPAQuery<String> inviteQuery = new JPAQuery<>(entitymanager);
94 QUserInvite ui = QUserInvite.userInvite;
95 List<String> invitedEmails = inviteQuery.select(ui.inviterEmail).from(ui).fetch();
96
97 // 如果邮箱不在被邀请列表中,拒绝注册
98 if(!invitedEmails.contains(userinfo.email)){
99 return 2; // 未被邀请
100 }
101
102 // 检查邮箱是否已在User表中存在
Raverf79fdb62025-06-03 06:02:49 +0000103 JPAQuery<String> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000104 QUser u = QUser.user;
105 List<String> allEmails = query.select(u.email).from(u).fetch();
106
Raverf79fdb62025-06-03 06:02:49 +0000107 if(allEmails.contains(userinfo.email)){
TRM-codingcdfe5482025-06-06 17:31:01 +0800108 return 1; // 邮箱重复
root0dbc9812025-05-19 04:41:57 +0000109 }
TRM-codingcdfe5482025-06-06 17:31:01 +0800110
111 entitymanager.getTransaction().begin();
Raverf79fdb62025-06-03 06:02:49 +0000112 entitymanager.persist(userinfo);
TRM-codingcdfe5482025-06-06 17:31:01 +0800113 entitymanager.getTransaction().commit();
114 return 0; // 注册成功
root0dbc9812025-05-19 04:41:57 +0000115
Raverf79fdb62025-06-03 06:02:49 +0000116 }catch(Exception e){
root0dbc9812025-05-19 04:41:57 +0000117 e.printStackTrace();
TRM-codingcdfe5482025-06-06 17:31:01 +0800118 if (entitymanager.getTransaction().isActive()) {
119 entitymanager.getTransaction().rollback();
120 }
root0dbc9812025-05-19 04:41:57 +0000121 return 2;
122 }
Raverf79fdb62025-06-03 06:02:49 +0000123
root0dbc9812025-05-19 04:41:57 +0000124 }
125
126 // 返回状态:0 success,1 不存在,2其他原因
127 @Override
Raverf79fdb62025-06-03 06:02:49 +0000128 public int UpdateInformation(User userinfo){
root0dbc9812025-05-19 04:41:57 +0000129 try {
130 if (userinfo.userid == null) {
131 return 2; // userid为null直接返回错误
132 }
rhjc6a4ee02025-06-06 00:45:18 +0800133
134 entitymanager.getTransaction().begin();
135
Raverf79fdb62025-06-03 06:02:49 +0000136 JPAQuery<User> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000137 QUser u = QUser.user;
138 User updateUser = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
139
Raverf79fdb62025-06-03 06:02:49 +0000140 if(updateUser == null){
rhjc6a4ee02025-06-06 00:45:18 +0800141 entitymanager.getTransaction().rollback();
root0dbc9812025-05-19 04:41:57 +0000142 return 1;
143 }
144 // 只更新需要的字段,避免破坏持久化状态和关联关系
rhjc6a4ee02025-06-06 00:45:18 +0800145 if (userinfo.email != null) updateUser.email = userinfo.email;
146 if (userinfo.username != null) updateUser.username = userinfo.username;
147 if (userinfo.password != null) updateUser.password = userinfo.password;
148 if (userinfo.sex != null) updateUser.sex = userinfo.sex;
149 if (userinfo.school != null) updateUser.school = userinfo.school;
150 if (userinfo.pictureurl != null) updateUser.pictureurl = userinfo.pictureurl;
151 if (userinfo.profile != null) updateUser.profile = userinfo.profile;
root0dbc9812025-05-19 04:41:57 +0000152 updateUser.accountstate = userinfo.accountstate;
153 updateUser.invitetimes = userinfo.invitetimes;
154 // 如有其他字段也一并赋值
Raverf79fdb62025-06-03 06:02:49 +0000155 entitymanager.merge(updateUser);
rhjc6a4ee02025-06-06 00:45:18 +0800156 entitymanager.getTransaction().commit();
root0dbc9812025-05-19 04:41:57 +0000157 return 0;
158 } catch (Exception e) {
159 e.printStackTrace();
rhjc6a4ee02025-06-06 00:45:18 +0800160 if (entitymanager.getTransaction().isActive()) {
161 entitymanager.getTransaction().rollback();
162 }
root0dbc9812025-05-19 04:41:57 +0000163 return 2;
164 }
Raverf79fdb62025-06-03 06:02:49 +0000165
root0dbc9812025-05-19 04:41:57 +0000166 }
167
168 // 返回用户的全部基本信息
169 @Override
Raverf79fdb62025-06-03 06:02:49 +0000170 public User GetInformation(String userid){
171 User user = entitymanager.find(User.class, userid);
172 return user;
root0dbc9812025-05-19 04:41:57 +0000173 }
174
175 //返回用户的全部pt站信息
176 @Override
Raverf79fdb62025-06-03 06:02:49 +0000177 public UserPT GetInformationPT(String userid){
178 UserPT userPT = entitymanager.find(UserPT.class, userid);
179 return userPT;
root0dbc9812025-05-19 04:41:57 +0000180 }
181
182 //返回状态:0 success,1 邮箱重复,2其他原因
183 @Override
Raverf79fdb62025-06-03 06:02:49 +0000184 public int UpdateInformationPT(UserPT userinfo){
185 try{
186 JPAQuery<UserPT> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000187 QUserPT u = QUserPT.userPT;
188 UserPT userPT = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
Raverf79fdb62025-06-03 06:02:49 +0000189
190 if(userPT == null){
root0dbc9812025-05-19 04:41:57 +0000191 return 1;
192 }
193 userPT = userinfo;
Raverf79fdb62025-06-03 06:02:49 +0000194 entitymanager.merge(userPT);
root0dbc9812025-05-19 04:41:57 +0000195 return 0;
196
Raverf79fdb62025-06-03 06:02:49 +0000197 }catch(Exception e){
root0dbc9812025-05-19 04:41:57 +0000198 e.printStackTrace();
199 return 2;
200 }
201 }
202
203 //返回状态:0 success,1 id重复,2其他原因
204 @Override
Raverf79fdb62025-06-03 06:02:49 +0000205 public int RegisterUserPT(UserPT userinfo){
root0dbc9812025-05-19 04:41:57 +0000206 try {
Raverf79fdb62025-06-03 06:02:49 +0000207 JPAQuery<UserPT> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000208 QUserPT u = QUserPT.userPT;
209 UserPT checkUserPT = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
210 if (checkUserPT != null) {
211 return 1;
212 }
Raverf79fdb62025-06-03 06:02:49 +0000213 entitymanager.persist(userinfo);
root0dbc9812025-05-19 04:41:57 +0000214 return 0;
215 } catch (Exception e) {
216 e.printStackTrace();
217 return 2;
218 }
219 }
220
221 //返回种子的全部信息
222 @Override
Raverf79fdb62025-06-03 06:02:49 +0000223 public Seed GetSeedInformation(String seedid){
224 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
225 QSeed s = QSeed.seed;
226 Seed seed = query.select(s).from(s).where(s.seedid.eq(seedid)).fetchOne();
227 return seed;
root0dbc9812025-05-19 04:41:57 +0000228 }
229
Raveraae06122025-06-05 08:13:35 +0000230 @Override
231 public Seed[] GetSeedListByTag(String tag){
232 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
233 QSeed s = QSeed.seed;
234 List<Seed> seeds = query.select(s).from(s).where(s.seedtag.eq(tag)).fetch();
235 return seeds.toArray(new Seed[0]);
236 }
237
rhjc6a4ee02025-06-06 00:45:18 +0800238 @Override
239 public Seed[] GetSeedListByUser(String userid){
240 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
241 QSeed s = QSeed.seed;
242 List<Seed> seeds = query.select(s).from(s).where(s.seeduserid.eq(userid)).fetch();
243 return seeds.toArray(new Seed[0]);
244 }
245
246 @Override
247 public int DeleteSeed(String seedid){
248 try {
249 entitymanager.getTransaction().begin();
250 Seed seed = entitymanager.find(Seed.class, seedid);
251 if (seed == null) {
252 entitymanager.getTransaction().rollback();
253 return 1; // 种子不存在
254 }
255 entitymanager.remove(seed);
256 entitymanager.getTransaction().commit();
257 return 0; // 成功删除
258 } catch (Exception e) {
259 e.printStackTrace();
260 if (entitymanager.getTransaction().isActive()) {
261 entitymanager.getTransaction().rollback();
262 }
263 return 2; // 其他错误
264 }
265 }
266
root0dbc9812025-05-19 04:41:57 +0000267 //添加一个新的种子,0成功,其他失败信息待定;
268 @Override
Raverf79fdb62025-06-03 06:02:49 +0000269 public int RegisterSeed(Seed seedinfo){
root0dbc9812025-05-19 04:41:57 +0000270 try {
Raveraae06122025-06-05 08:13:35 +0000271 entitymanager.getTransaction().begin();
Raverf79fdb62025-06-03 06:02:49 +0000272 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000273 QSeed s = QSeed.seed;
274 Seed seed = query.select(s).from(s).where(s.seedid.eq(seedinfo.seedid)).fetchOne();
Raveraae06122025-06-05 08:13:35 +0000275 User user = entitymanager.find(User.class, seedinfo.seeduserid);
276 if (user == null) {
277 entitymanager.getTransaction().rollback();
278 return 2; // 用户不存在
279 }
rhjc6a4ee02025-06-06 00:45:18 +0800280 seedinfo.user = user; // 设置种子的用户关联
root0dbc9812025-05-19 04:41:57 +0000281 if (seed != null) {
Raveraae06122025-06-05 08:13:35 +0000282 entitymanager.getTransaction().rollback();
root0dbc9812025-05-19 04:41:57 +0000283 return 1;
284 }
Raverf79fdb62025-06-03 06:02:49 +0000285 entitymanager.persist(seedinfo);
Raveraae06122025-06-05 08:13:35 +0000286 entitymanager.getTransaction().commit();
root0dbc9812025-05-19 04:41:57 +0000287 return 0;
288 } catch (Exception e) {
289 e.printStackTrace();
Raveraae06122025-06-05 08:13:35 +0000290 if (entitymanager.getTransaction().isActive()) {
291 entitymanager.getTransaction().rollback();
292 }
root0dbc9812025-05-19 04:41:57 +0000293 return 2;
294 }
295 }
296
297 //接收新的种子然后更新其全部属性
298 @Override
Raverf79fdb62025-06-03 06:02:49 +0000299 public int UpdateSeed(Seed seedinfo){
root0dbc9812025-05-19 04:41:57 +0000300 try {
Raverf79fdb62025-06-03 06:02:49 +0000301 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000302 QSeed s = QSeed.seed;
303 Seed seed = query.select(s).from(s).where(s.seedid.eq(seedinfo.seedid)).fetchOne();
304 if (seed == null) {
305 return 1;
306 }
307 seed = seedinfo;
Raverf79fdb62025-06-03 06:02:49 +0000308 entitymanager.merge(seed);
root0dbc9812025-05-19 04:41:57 +0000309 return 0;
310 } catch (Exception e) {
311 e.printStackTrace();
312 return 2;
313 }
314 }
315
316 //传入搜索的关键词或句子,返回搜索到的种子信息(按照公共字符数量排序)
317 @Override
Raverf79fdb62025-06-03 06:02:49 +0000318 public Seed[] SearchSeed(String userQ){
319 JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
320 QSeed s = QSeed.seed;
321 List<Seed> seeds = query.select(s).from(s).fetch();
root0dbc9812025-05-19 04:41:57 +0000322
Raverf79fdb62025-06-03 06:02:49 +0000323 if (seeds == null || userQ == null || userQ.trim().isEmpty()) {
root0dbc9812025-05-19 04:41:57 +0000324 return seeds.toArray(new Seed[0]);
325 }
Raverf79fdb62025-06-03 06:02:49 +0000326
327 String processedQuery = userQ.toLowerCase().trim();
328 Map<Seed, Integer> seedCountMap = new HashMap<>();
329 for(Seed seed : seeds){
330 String title = seed.title.toLowerCase().trim();
331 int count = countCommonCharacter(processedQuery, title);
332 seedCountMap.put(seed, count);
333 }
334 seeds.sort((s1, s2) -> {
335 int count1 = seedCountMap.getOrDefault(s1, 0);
336 int count2 = seedCountMap.getOrDefault(s2, 0);
337 return Integer.compare(count2, count1);
338 });
339
340 return seeds.toArray(new Seed[0]);
root0dbc9812025-05-19 04:41:57 +0000341 }
342
343 //计算字符串公共字符数量
Raverf79fdb62025-06-03 06:02:49 +0000344 private int countCommonCharacter(String str1, String str2){
root0dbc9812025-05-19 04:41:57 +0000345 Map<Character, Integer> map1 = new HashMap<>();
346 Map<Character, Integer> map2 = new HashMap<>();
347
Raverf79fdb62025-06-03 06:02:49 +0000348 for(char c : str1.toCharArray()){
root0dbc9812025-05-19 04:41:57 +0000349 if (!Character.isWhitespace(c)) {
350 map1.put(c, map1.getOrDefault(c, 0) + 1);
351 }
352 }
353
Raverf79fdb62025-06-03 06:02:49 +0000354 for(char c : str2.toCharArray()){
root0dbc9812025-05-19 04:41:57 +0000355 if (!Character.isWhitespace(c)) {
356 map2.put(c, map2.getOrDefault(c, 0) + 1);
357 }
358 }
359
360 int res = 0;
Raverf79fdb62025-06-03 06:02:49 +0000361 for(char c : map1.keySet()){
root0dbc9812025-05-19 04:41:57 +0000362 if (map2.containsKey(c)) {
363 res += Math.min(map1.get(c), map2.get(c));
364 }
Raverf79fdb62025-06-03 06:02:49 +0000365
root0dbc9812025-05-19 04:41:57 +0000366 }
367 return res;
368 }
369
370 //返回状态:0 success,1 重复,2其他原因
371 @Override
Raverf79fdb62025-06-03 06:02:49 +0000372 public int AddNotice(Notice notice){
root0dbc9812025-05-19 04:41:57 +0000373 try {
Raverf79fdb62025-06-03 06:02:49 +0000374 JPAQuery<Notice> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000375 QNotice n = QNotice.notice;
376 Notice checkNotice = query.select(n).from(n).where(n.noticeid.eq(notice.noticeid)).fetchOne();
377 if (checkNotice != null) {
378 return 1;
379 }
Raverf79fdb62025-06-03 06:02:49 +0000380
381 entitymanager.persist(notice);
root0dbc9812025-05-19 04:41:57 +0000382 return 0;
383 } catch (Exception e) {
384 e.printStackTrace();
385 return 2;
386 }
Raverf79fdb62025-06-03 06:02:49 +0000387
root0dbc9812025-05-19 04:41:57 +0000388 }
389
390 //返回状态:0 success,1 不存在,2其他原因
391 @Override
Raverf79fdb62025-06-03 06:02:49 +0000392 public boolean UpdateNotice(Notice notice){
root0dbc9812025-05-19 04:41:57 +0000393 try {
Raverf79fdb62025-06-03 06:02:49 +0000394 Notice oldNotice = entitymanager.find(Notice.class, notice.noticeid);
root0dbc9812025-05-19 04:41:57 +0000395 if (oldNotice == null) {
396 return false;
397 }
398 oldNotice = notice;
Raverf79fdb62025-06-03 06:02:49 +0000399 entitymanager.merge(oldNotice);
root0dbc9812025-05-19 04:41:57 +0000400 return true;
401 } catch (Exception e) {
402 e.printStackTrace();
403 return false;
404 }
405 }
406
407 //删除公告,返回状态:0 success,1 不存在,2其他原因
408 @Override
Raverf79fdb62025-06-03 06:02:49 +0000409 public boolean DeleteNotice(String noticeid){
root0dbc9812025-05-19 04:41:57 +0000410 try {
Raverf79fdb62025-06-03 06:02:49 +0000411 Notice notice = entitymanager.find(Notice.class, noticeid);
root0dbc9812025-05-19 04:41:57 +0000412 if (notice == null) {
413 return false;
414 }
Raverf79fdb62025-06-03 06:02:49 +0000415 entitymanager.remove(notice);
root0dbc9812025-05-19 04:41:57 +0000416 return true;
417 } catch (Exception e) {
418 e.printStackTrace();
419 return false;
420 }
Raverf79fdb62025-06-03 06:02:49 +0000421
root0dbc9812025-05-19 04:41:57 +0000422 }
423
424 //获取用户的剩余邀请次数
Raverf79fdb62025-06-03 06:02:49 +0000425 public int GetUserAvailableInviteTimes(String userid){
root0dbc9812025-05-19 04:41:57 +0000426 try {
Raverf79fdb62025-06-03 06:02:49 +0000427 JPAQuery<Integer> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000428 QUser u = QUser.user;
429 int invite_left = query.select(u.invitetimes).from(u).where(u.userid.eq(userid)).fetchOne();
Raverf79fdb62025-06-03 06:02:49 +0000430
root0dbc9812025-05-19 04:41:57 +0000431 return invite_left;
432 } catch (Exception e) {
433 e.printStackTrace();
434 return -1;
435 }
Raverf79fdb62025-06-03 06:02:49 +0000436
root0dbc9812025-05-19 04:41:57 +0000437 }
438
439 //邀请用户,返回状态:0 success,1 剩余次数不足,2,3其他原因
440 @Override
Raverf79fdb62025-06-03 06:02:49 +0000441 public int InviteUser(String inviterid,String inviteemail){
root0dbc9812025-05-19 04:41:57 +0000442 try {
Raverf79fdb62025-06-03 06:02:49 +0000443 User user = entitymanager.find(User.class, inviterid);
root0dbc9812025-05-19 04:41:57 +0000444 if (user == null || !user.email.equals(inviteemail)) {
445 return 3;
446 }
447 if (user.invitetimes <= 0) {
448 return 1;
449 }
450 user.invitetimes -= 1;
Raverf79fdb62025-06-03 06:02:49 +0000451 entitymanager.merge(user);
root0dbc9812025-05-19 04:41:57 +0000452 return 0;
453 } catch (Exception e) {
454 e.printStackTrace();
455 return 2;
456 }
Raverf79fdb62025-06-03 06:02:49 +0000457
root0dbc9812025-05-19 04:41:57 +0000458 }
459
460 //添加一个收藏,返回状态:0 success,1 不存在,2其他原因
461 @Override
Raverf79fdb62025-06-03 06:02:49 +0000462 public boolean AddCollect(String userid,String seedid){
463 JPAQuery<User> query2 = new JPAQuery<>(entitymanager);
464 QUser u2 = QUser.user;
465 User user = query2.select(u2).from(u2).where(u2.userid.eq(userid)).fetchOne();
466 if (user == null) {
root0dbc9812025-05-19 04:41:57 +0000467 return false;
468 }
Raverf79fdb62025-06-03 06:02:49 +0000469 JPAQuery<Seed> query3 = new JPAQuery<>(entitymanager);
470 QSeed p = QSeed.seed;
471 Seed seed = query3.select(p).from(p).where(p.seedid.eq(seedid)).fetchOne();
472 if (seed == null) {
473 return false;
474 }
475 JPAQuery<String> query = new JPAQuery<>(entitymanager);
476 QUserStar u = QUserStar.userStar;
477 List<String> allSeedId = query.select(u.seedid).from(u).where(u.userid.eq(userid)).fetch();
478
479 if (allSeedId.contains(seedid)) {
480 return false;
481 }
482 UserStar userStar = new UserStar();
483 userStar.userid = userid;
484 userStar.seedid = seedid;
485 entitymanager.persist(userStar);
486 return true;
root0dbc9812025-05-19 04:41:57 +0000487 }
488
489 //删除一个收藏,返回状态:0 success,1 不存在,2其他原因
490 @Override
Raverf79fdb62025-06-03 06:02:49 +0000491 public boolean DeleteCollect(String userid,String seedid){
root0dbc9812025-05-19 04:41:57 +0000492 try {
Raverf79fdb62025-06-03 06:02:49 +0000493 JPAQuery<UserStar> query = new JPAQuery<>(entitymanager);
root0dbc9812025-05-19 04:41:57 +0000494 QUserStar u = QUserStar.userStar;
495 UserStar userStar = query.select(u).from(u).where(u.userid.eq(userid).and(u.seedid.eq(seedid))).fetchOne();
496 if (userStar == null) {
497 return true; // 收藏不存在
498 }
Raverf79fdb62025-06-03 06:02:49 +0000499 entitymanager.remove(userStar);
root0dbc9812025-05-19 04:41:57 +0000500 return true;
501 } catch (Exception e) {
502 e.printStackTrace();
503 return false;
504 }
Raverf79fdb62025-06-03 06:02:49 +0000505
root0dbc9812025-05-19 04:41:57 +0000506 }
507
508 @Override
Raverf79fdb62025-06-03 06:02:49 +0000509 public int AddBegSeed(BegInfo info){
root0dbc9812025-05-19 04:41:57 +0000510 return 0;
511 }
512
513 @Override
Raverf79fdb62025-06-03 06:02:49 +0000514 public int UpdateBegSeed(BegInfo info){
root0dbc9812025-05-19 04:41:57 +0000515 return 0;
516 }
517
518 @Override
Raverf79fdb62025-06-03 06:02:49 +0000519 public int DeleteBegSeed(String begid){
root0dbc9812025-05-19 04:41:57 +0000520 return 0;
521 }
522
523 @Override
Raverf79fdb62025-06-03 06:02:49 +0000524 public int VoteSeed(String begId, String seedId, String userId){
root0dbc9812025-05-19 04:41:57 +0000525 return 0;
526 }
527
528 @Override
Raverf79fdb62025-06-03 06:02:49 +0000529 public int SubmitSeed(String begid,Seed seed){
root0dbc9812025-05-19 04:41:57 +0000530 return 0;
531 }
532
533 @Override
Raverf79fdb62025-06-03 06:02:49 +0000534 public void SettleBeg(){
535
root0dbc9812025-05-19 04:41:57 +0000536 }
537
538 @Override
Raverf79fdb62025-06-03 06:02:49 +0000539 public int AddPost(Post post){
root0dbc9812025-05-19 04:41:57 +0000540 return 0;
541 }
542
543 @Override
Raverf79fdb62025-06-03 06:02:49 +0000544 public int UpdatePost(Post post){
root0dbc9812025-05-19 04:41:57 +0000545 return 0;
546 }
547
548 @Override
Raverf79fdb62025-06-03 06:02:49 +0000549 public int DeletePost(String postid){
root0dbc9812025-05-19 04:41:57 +0000550 return 0;
551 }
552
553 @Override
Raverf79fdb62025-06-03 06:02:49 +0000554 public int AddComment(String postid, String userid, String comment){
root0dbc9812025-05-19 04:41:57 +0000555 return 0;
556 }
557
558 @Override
Raverf79fdb62025-06-03 06:02:49 +0000559 public int DeleteComment(String postid,String commentid){
root0dbc9812025-05-19 04:41:57 +0000560 return 0;
561 }
562
563 @Override
Raverf79fdb62025-06-03 06:02:49 +0000564 public boolean ExchangeMagicToUpload(String userid,int magic)//将魔力值兑换为上传量,返回状态:0 success,1 不存在,2其他原因
root0dbc9812025-05-19 04:41:57 +0000565 {
566 return true;
567 }
Raverf79fdb62025-06-03 06:02:49 +0000568
root0dbc9812025-05-19 04:41:57 +0000569 @Override
Raverf79fdb62025-06-03 06:02:49 +0000570 public boolean ExchangeMagicToDownload(String userid,int magic)
571 {
root0dbc9812025-05-19 04:41:57 +0000572 return true;
573 }//将魔力值兑换为下载量,返回状态:0 success,1 不存在,2其他原因
574
575 @Override
Raverf79fdb62025-06-03 06:02:49 +0000576 public boolean ExchangeMagicToVip(String userid,int magic){
root0dbc9812025-05-19 04:41:57 +0000577 return true;
578 }
579 //将魔力值兑换为VIP次数,返回状态:0 success,1 不存在,2其他原因
580
581 @Override
Raverf79fdb62025-06-03 06:02:49 +0000582 public boolean UploadTransmitProfile(Profile profile){
root0dbc9812025-05-19 04:41:57 +0000583 return true;
584 }
585
586 @Override
Raverf79fdb62025-06-03 06:02:49 +0000587 public Profile GetTransmitProfile(String profileid){
root0dbc9812025-05-19 04:41:57 +0000588 Profile profile = new Profile();
589 return profile;
590 }
591 //获取迁移信息
Raverf79fdb62025-06-03 06:02:49 +0000592
root0dbc9812025-05-19 04:41:57 +0000593 @Override
Raverf79fdb62025-06-03 06:02:49 +0000594 public boolean ExamTransmitProfile(String profileid,boolean result){
root0dbc9812025-05-19 04:41:57 +0000595 return true;
596 }
597 //审核迁移信息,0成功,1失败
598 @Override
Raverf79fdb62025-06-03 06:02:49 +0000599 public Profile[] GetTransmitProfileList(){
root0dbc9812025-05-19 04:41:57 +0000600 return new Profile[0];
601 }
602 //获取所有迁移信息
603
604}
Raverf79fdb62025-06-03 06:02:49 +0000605