Skip to content

Commit

Permalink
Merge pull request #298 from 6QuizOnTheBlock/be/feat/#294-makeRelatio…
Browse files Browse the repository at this point in the history
…nship

Be/feat/#294 make relationship
  • Loading branch information
Henry-Cha authored May 12, 2024
2 parents 92615b5 + 3b68050 commit 07dcb15
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Relationship {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public interface MemberOrganizationRepository extends JpaRepository<MemberOrgani

List<MemberOrganization> findByMember(Member member);

List<MemberOrganization> findByOrganization(Organization organization);

Optional<MemberOrganization> findByMemberIdAndOrganizationId(Long memberId,
Long organizationId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public int tagGreeting(TagGreetingRequest tagGreetingRequest) {
Member loginMember = accessUtil.getMember()
.orElseThrow(() -> new GlobalException(ErrorCode.MEMBER_NOT_FOUND));
long member1 = Math.min(loginMember.getId(), tagGreetingRequest.memberId());
long member2 = Math.min(tagGreetingRequest.memberId(), loginMember.getId());
long member2 = Math.max(loginMember.getId(), tagGreetingRequest.memberId());
Relationship relationship = relationshipRepository.findByOrganizationIdAndMember1IdAndMember2Id(
tagGreetingRequest.organizationId(), member1, member2)
.orElseThrow(() -> new GlobalException(ErrorCode.RELATION_NOT_FOUND));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
import com.quiz.ourclass.domain.organization.dto.response.UpdateOrganizationResponse;
import com.quiz.ourclass.domain.organization.entity.MemberOrganization;
import com.quiz.ourclass.domain.organization.entity.Organization;
import com.quiz.ourclass.domain.organization.entity.Relationship;
import com.quiz.ourclass.domain.organization.mapper.OrganizationMapper;
import com.quiz.ourclass.domain.organization.repository.MemberOrganizationRepository;
import com.quiz.ourclass.domain.organization.repository.OrganizationRepository;
import com.quiz.ourclass.domain.organization.repository.RelationshipRepository;
import com.quiz.ourclass.global.dto.MemberSimpleDTO;
import com.quiz.ourclass.global.exception.ErrorCode;
import com.quiz.ourclass.global.exception.GlobalException;
Expand All @@ -41,6 +43,7 @@ public class OrganizationServiceImpl implements OrganizationService {
private final OrganizationRepository organizationRepository;
private final MemberOrganizationRepository memberOrganizationRepository;
private final PostRepository postRepository;
private final RelationshipRepository relationshipRepository;
private final OrganizationMapper organizationMapper;
private final MemberMapper memberMapper;
private final RedisUtil redisUtil;
Expand Down Expand Up @@ -128,9 +131,30 @@ public Long joinOrganization(long id, InviteCodeDTO inviteCodeDTO) {
.organization(organization)
.build();
memberOrganizationRepository.save(memberOrganization);
makeRelationships(organization, member);
return organization.getId();
}

private void makeRelationships(Organization organization, Member member) {
List<MemberOrganization> orgMembers = memberOrganizationRepository.findByOrganization(
organization);
for (MemberOrganization orgMember : orgMembers) {
if (orgMember.getMember().equals(member)) {
continue;
}
Member member1 =
member.getId() < orgMember.getMember().getId() ? member : orgMember.getMember();
Member member2 =
member.getId() > orgMember.getMember().getId() ? member : orgMember.getMember();
Relationship relationship = Relationship.builder()
.organization(organization)
.member1(member1)
.member2(member2)
.build();
relationshipRepository.save(relationship);
}
}

@Override
public List<MemberSimpleDTO> getOrganizationMembers(long id) {
Organization organization = organizationRepository.findById(id)
Expand Down

0 comments on commit 07dcb15

Please sign in to comment.