Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/java/cse/ooad/project/service/StudentService.java
  • Loading branch information
MuuuShin committed Jan 2, 2024
2 parents 980cc19 + 2760937 commit 76418e3
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 5 deletions.
68 changes: 65 additions & 3 deletions src/main/java/cse/ooad/project/service/StudentService.java
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,25 @@ public boolean sendApply(Long studentId, Long leaderId, String message) {
return true;
}


public boolean transRoomApply(Long studentId, Long studentId2, String message){
Msg msg = new Msg();
Student src = studentRepository.getStudentByStudentId(studentId);
Student dst = studentRepository.getStudentByStudentId(studentId2);
if (src.getGroup()==null&&dst.getGroup()==null){
return false;
}

msg.setStatus(MessageStatus.UNREAD.getStatusCode());
msg.setTimestamp(new Timestamp(System.currentTimeMillis()));
msg.setBody(message);
msg.setSrcId(src.getStudentId());
msg.setDstId(studentId2);
msg.setType(MessageType.isTran.typeCode);
msgService.saveAndForwardMsg(msg);
return true;
}

/**
* 获取申请消息列表,只有队长才能获取
*
Expand All @@ -315,7 +334,9 @@ public boolean sendApply(Long studentId, Long leaderId, String message) {
*/
//获取申请消息列表
public List<Msg> getApplyList(Long leaderId) {
return msgRepository.getMsgsByDstIdAndStatusAndType(leaderId, MessageStatus.UNREAD.getStatusCode(), MessageType.APPLY.typeCode);
List<Msg> msgs = msgRepository.getMsgsByDstIdAndStatusAndType(leaderId, MessageStatus.UNREAD.getStatusCode(), MessageType.isTran.typeCode);
msgs.addAll(msgRepository.getMsgsByDstIdAndStatusAndType(leaderId, MessageStatus.UNREAD.getStatusCode(), MessageType.APPLY.typeCode));
return msgs;
}


Expand All @@ -337,24 +358,65 @@ public boolean handleApply(Long msgId, boolean isAgree, Long studentId) {
return false;
}

if (msg.getType() != MessageType.APPLY.typeCode) {
if (msg.getType() != MessageType.APPLY.typeCode&&msg.getType() != MessageType.isTran.typeCode) {
return false;
}
if (msg.getStatus() == MessageStatus.READ_AND_REJECTED.getStatusCode()||msg.getStatus() == MessageStatus.READ_AND_ACCEPTED.getStatusCode()) {
return false;
}
if (isAgree) {
if (isAgree&&msg.getType() == MessageType.APPLY.typeCode) {
if (joinGroup(msg.getSrcId(), studentRepository.getStudentByStudentId(studentId).getGroupId())) {
msg.setStatus(MessageStatus.READ_AND_ACCEPTED.getStatusCode());
msgRepository.save(msg);
return true;
}
}
else if (isAgree) {
if (transRoom(msg.getSrcId(), msg.getDstId())){
msg.setStatus(MessageStatus.READ_AND_ACCEPTED.getStatusCode());
msgRepository.save(msg);
return true;
}
}
msg.setStatus(MessageStatus.READ_AND_REJECTED.getStatusCode());
msgRepository.save(msg);
return true;
}

public Boolean transRoom(Long id1, Long id2) {
Student student1 = studentRepository.getStudentByStudentId(id1);
Student student2 = studentRepository.getStudentByStudentId(id2);
if (!Objects.equals(student1.getType(), student2.getType())) {
return false;
}

Group group1 = student1.getGroup();
Group group2 = student2.getGroup();

if(group1 == null || group2 == null){
return false;
}

if (group1 != null) {
student2.setGroupId(group1.getGroupId());
if (Objects.equals(group1.getLeader(), student1.getStudentId())) {
group1.setLeader(student2.getStudentId());
}
}
if (group2 != null) {
student1.setGroupId(group2.getGroupId());
if (Objects.equals(group2.getLeader(), student2.getStudentId())) {
group2.setLeader(student1.getStudentId());
}
}
studentRepository.save(student1);
studentRepository.save(student2);
groupRepository.save(group1);
groupRepository.save(group2);
return true;
}



/**
* 进行评论评论
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/cse/ooad/project/utils/MessageType.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cse.ooad.project.utils;

public enum MessageType {
MSG(0),APPLY(1), SYSTEM(2);
MSG(0),APPLY(1), SYSTEM(2), isTran(3);

public final int typeCode;
MessageType(int typeCode){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public void setUp() throws SQLException {
void TeacherTest() {
teacherService.batchSaveStudent(new File("src/test/resources/student.csv"));
//teacherService.batchSaveRoomNew(new File("src/test/resources/Rooms.csv"));
teacherService.batchSaveRoomNew(new File("src/test/resources/university_data.csv"));
teacherService.batchSaveRoom(new File("src/test/resources/university_data.csv"));

Timeline timeline = new Timeline(null, 1, new Timestamp(10000L), new Timestamp(20000L),
new Timestamp(20000), new Timestamp(30000), new Timestamp(30000), new Timestamp(40000),
Expand Down

0 comments on commit 76418e3

Please sign in to comment.