Skip to content

Commit bc88673

Browse files
authored
Merge pull request #313 from MT-TEAM-Org/dev
Dev
2 parents 18ef4aa + 443b224 commit bc88673

File tree

88 files changed

+543
-1232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+543
-1232
lines changed

build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,6 @@ dependencies {
3131
implementation 'org.springframework.boot:spring-boot-starter-web'
3232
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
3333

34-
// CHAT
35-
// web socket
36-
implementation 'org.springframework.boot:spring-boot-starter-websocket'
37-
implementation 'org.webjars:webjars-locator-core'
38-
implementation 'org.webjars:sockjs-client:1.5.1'
39-
implementation 'org.webjars:stomp-websocket:2.3.4'
4034
// kafka
4135
// implementation 'org.springframework.kafka:spring-kafka'
4236

src/main/java/org/myteam/server/aop/CommonCountAspect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.aspectj.lang.annotation.Around;
88
import org.aspectj.lang.annotation.Aspect;
99
import org.aspectj.lang.reflect.MethodSignature;
10-
import org.myteam.server.global.util.redis.RedisCountService;
10+
import org.myteam.server.global.util.redis.service.RedisCountService;
1111
import org.myteam.server.global.util.redis.ServiceType;
1212
import org.springframework.stereotype.Component;
1313

src/main/java/org/myteam/server/auth/service/TokenService.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@
55
import java.time.Duration;
66
import java.util.UUID;
77

8+
import org.myteam.server.chat.info.domain.UserInfo;
89
import org.myteam.server.global.exception.ErrorCode;
910
import org.myteam.server.global.exception.PlayHiveJwtException;
1011
import org.myteam.server.global.security.jwt.JwtProvider;
11-
import org.myteam.server.global.util.redis.RedisService;
12+
import org.myteam.server.global.util.redis.service.RedisService;
13+
import org.myteam.server.global.util.redis.service.RedisUserInfoService;
14+
import org.myteam.server.member.entity.Member;
15+
import org.myteam.server.member.service.MemberReadService;
1216
import org.springframework.stereotype.Service;
1317
import org.springframework.transaction.annotation.Transactional;
1418

@@ -24,6 +28,8 @@
2428
public class TokenService {
2529
private final JwtProvider jwtProvider;
2630
private final RedisService redisService;
31+
private final RedisUserInfoService redisUserInfoService;
32+
private final MemberReadService memberReadService;
2733

2834
/**
2935
* Refresh Token 검증
@@ -40,7 +46,13 @@ public void regenerateAccessToken(HttpServletRequest request, HttpServletRespons
4046
existRefreshToken(refreshToken);
4147
expireRefreshToken(refreshToken);
4248

43-
generateAccessToken(refreshToken, response);
49+
String newAccessToken = generateAccessToken(refreshToken, response);
50+
log.info("member: {} regenerated new Access Token", publicId);
51+
Member member = memberReadService.findById(publicId);
52+
53+
redisUserInfoService.saveUserInfo(newAccessToken,
54+
new UserInfo(member.getPublicId(), member.getNickname(), member.getImgUrl()));
55+
log.info("member: {} caching user info", publicId);
4456
}
4557

4658
private void existRefreshToken(String refreshToken) {
@@ -57,7 +69,7 @@ private void expireRefreshToken(String refreshToken) {
5769
}
5870
}
5971

60-
private void generateAccessToken(String refreshToken, HttpServletResponse response) {
72+
private String generateAccessToken(String refreshToken, HttpServletResponse response) {
6173
UUID publicId = jwtProvider.getPublicId(refreshToken);
6274
String role = jwtProvider.getRole(refreshToken);
6375
String status = jwtProvider.getStatus(refreshToken);
@@ -66,5 +78,7 @@ private void generateAccessToken(String refreshToken, HttpServletResponse respon
6678
status);
6779

6880
response.addHeader(HEADER_AUTHORIZATION, TOKEN_PREFIX + newAccessToken);
81+
82+
return newAccessToken;
6983
}
7084
}

src/main/java/org/myteam/server/board/repository/BoardQueryRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import org.myteam.server.global.domain.Category;
3939
import org.myteam.server.global.util.domain.TimePeriod;
4040
import org.myteam.server.global.util.redis.CommonCountDto;
41-
import org.myteam.server.global.util.redis.RedisCountService;
41+
import org.myteam.server.global.util.redis.service.RedisCountService;
4242
import org.myteam.server.global.util.redis.ServiceType;
4343
import org.myteam.server.home.dto.HotBoardDto;
4444
import org.myteam.server.home.dto.NewBoardDto;

src/main/java/org/myteam/server/board/service/BoardCountService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.myteam.server.board.service;
22

33
import lombok.RequiredArgsConstructor;
4-
import org.myteam.server.global.util.redis.RedisCountService;
4+
import org.myteam.server.global.util.redis.service.RedisCountService;
55
import org.myteam.server.global.util.redis.ServiceType;
66
import org.myteam.server.report.domain.DomainType;
77
import org.springframework.stereotype.Service;

src/main/java/org/myteam/server/board/service/BoardService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.myteam.server.global.exception.ErrorCode;
2020
import org.myteam.server.global.exception.PlayHiveException;
2121
import org.myteam.server.global.util.redis.CommonCountDto;
22-
import org.myteam.server.global.util.redis.RedisCountService;
22+
import org.myteam.server.global.util.redis.service.RedisCountService;
2323
import org.myteam.server.global.util.redis.ServiceType;
2424
import org.myteam.server.member.entity.Member;
2525
import org.myteam.server.member.service.MemberReadService;

src/main/java/org/myteam/server/board/util/RedisBoardRankingReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import lombok.RequiredArgsConstructor;
44
import org.myteam.server.global.util.redis.CommonCountDto;
55
import org.myteam.server.global.util.redis.RankingCacheReader;
6-
import org.myteam.server.global.util.redis.RedisCountService;
6+
import org.myteam.server.global.util.redis.service.RedisCountService;
77
import org.myteam.server.global.util.redis.ServiceType;
88
import org.myteam.server.report.domain.DomainType;
99
import org.springframework.stereotype.Component;

src/main/java/org/myteam/server/chat/controller/BanController.java renamed to src/main/java/org/myteam/server/chat/block/controller/BlockController.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
package org.myteam.server.chat.controller;
1+
package org.myteam.server.chat.block.controller;
22

33
import lombok.RequiredArgsConstructor;
4-
import org.myteam.server.chat.dto.request.BanRequest;
5-
import org.myteam.server.chat.dto.response.BanResponse;
6-
import org.myteam.server.chat.service.BanService;
4+
import org.myteam.server.chat.block.dto.request.BlockRequest.*;
5+
import org.myteam.server.chat.block.dto.response.BlockResponse.*;
6+
import org.myteam.server.chat.block.dto.response.BlockedMembersResponse;
7+
import org.myteam.server.chat.block.service.BlockReadService;
8+
import org.myteam.server.chat.block.service.BlockService;
79
import org.myteam.server.global.web.response.ResponseDto;
810
import org.springframework.http.ResponseEntity;
911
import org.springframework.web.bind.annotation.*;
1012

13+
import java.util.UUID;
14+
1115
import static org.myteam.server.global.web.response.ResponseStatus.SUCCESS;
1216

1317
/**
@@ -16,16 +20,17 @@
1620
@RestController
1721
@RequiredArgsConstructor
1822
@RequestMapping("/api/bans")
19-
public class BanController {
23+
public class BlockController {
2024

21-
private final BanService banService;
25+
private final BlockService blockService;
26+
private final BlockReadService blockReadService;
2227

2328
/**
2429
* 유저 밴하기
2530
*/
2631
@PostMapping
27-
public ResponseEntity<ResponseDto<BanResponse>> banUser(@RequestBody BanRequest request) {
28-
BanResponse response = banService.banUser(request);
32+
public ResponseEntity<ResponseDto<SuccessBlockResponse>> banUser(@RequestBody BlockUserRequest request) {
33+
SuccessBlockResponse response = blockService.banUser(request);
2934
return ResponseEntity.ok(new ResponseDto(
3035
SUCCESS.name(),
3136
"Ban Success",
@@ -36,22 +41,22 @@ public ResponseEntity<ResponseDto<BanResponse>> banUser(@RequestBody BanRequest
3641
/**
3742
* 유저 밴 해제
3843
*/
39-
@DeleteMapping("/{username}")
40-
public ResponseEntity<ResponseDto<String>> unbanUser(@PathVariable String username) {
41-
String deleteName = banService.unbanUser(username);
44+
@DeleteMapping("/{blockedId}")
45+
public ResponseEntity<ResponseDto<String>> unbanUser(@PathVariable UUID blockedId) {
46+
blockService.unblockUser(blockedId);
4247
return ResponseEntity.ok(new ResponseDto(
4348
SUCCESS.name(),
4449
"Delete Ban Successfully",
45-
deleteName
50+
null
4651
));
4752
}
4853

4954
/**
5055
* 특정 유저 밴 정보 조회
5156
*/
52-
@GetMapping("/{username}")
53-
public ResponseEntity<ResponseDto<BanResponse>> getBanByUsername(@PathVariable String username) {
54-
BanResponse response = banService.findBanByUsername(username);
57+
@GetMapping("/{blockerId}/blocked")
58+
public ResponseEntity<ResponseDto<BlockedMembersResponse>> getBanByPublicId(@PathVariable UUID blockerId) {
59+
BlockedMembersResponse response = blockReadService.getBlockedUsers(blockerId);
5560
return ResponseEntity.ok(new ResponseDto(
5661
SUCCESS.name(),
5762
"Find Ban Reason Successfully",

src/main/java/org/myteam/server/chat/domain/BanReason.java renamed to src/main/java/org/myteam/server/chat/block/domain/BanReason.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.myteam.server.chat.domain;
1+
package org.myteam.server.chat.block.domain;
22

33
public enum BanReason {
44
HARASSMENT("회원에 대한 상습 비방"),
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package org.myteam.server.chat.block.domain;
2+
3+
import jakarta.persistence.*;
4+
import lombok.AccessLevel;
5+
import lombok.Builder;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
import org.myteam.server.global.domain.BaseTime;
9+
import org.myteam.server.member.entity.Member;
10+
11+
import java.time.LocalDateTime;
12+
import java.util.ArrayList;
13+
import java.util.List;
14+
15+
@Getter
16+
@Entity
17+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
18+
@Table(name = "member_block",
19+
uniqueConstraints = @UniqueConstraint(columnNames = {"blocker_id", "blocked_id"}))
20+
public class MemberBlock extends BaseTime {
21+
22+
@Id
23+
@GeneratedValue(strategy = GenerationType.IDENTITY)
24+
private Long id;
25+
26+
@ManyToOne(fetch = FetchType.LAZY)
27+
@JoinColumn(name = "blocker_id", nullable = false)
28+
private Member blocker;
29+
30+
@ManyToOne(fetch = FetchType.LAZY)
31+
@JoinColumn(name = "blocked_id", nullable = false)
32+
private Member blocked;
33+
34+
@ElementCollection(fetch = FetchType.LAZY)
35+
@Enumerated(EnumType.STRING)
36+
private List<BanReason> reasons = new ArrayList<>(); // 밴 사유
37+
38+
private String message;
39+
40+
@Builder
41+
private MemberBlock(Member blocker, Member blocked, List<BanReason> reasons, LocalDateTime bannedAt, String message) {
42+
this.blocker = blocker;
43+
this.blocked = blocked;
44+
if (reasons != null) {
45+
this.reasons.addAll(reasons);
46+
}
47+
this.message = message;
48+
}
49+
50+
/**
51+
* 차단 엔티티 생성
52+
*/
53+
public static MemberBlock createMemberBlock(Member blocker, Member blocked, List<BanReason> reasons, String message) {
54+
return MemberBlock.builder()
55+
.blocker(blocker)
56+
.blocked(blocked)
57+
.reasons(reasons)
58+
.bannedAt(LocalDateTime.now())
59+
.message(message)
60+
.build();
61+
}
62+
63+
}

0 commit comments

Comments
 (0)