Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9cbdfc5
Merge pull request #44 from mannabom/develop
kimjuneon Feb 21, 2026
df43034
[Feature] 사용자 사진 관리 기능 구현 및 GCP 배포 전환
kimjuneon May 8, 2026
675a954
Merge pull request #51 from mannabom/develop
kimjuneon May 8, 2026
1d7791d
Merge pull request #52 from mannabom/develop
kimjuneon May 8, 2026
53b0d66
Merge pull request #53 from mannabom/fix/deploy-image-uri-in-deploy-step
kimjuneon May 8, 2026
4f9d23a
Merge pull request #54 from mannabom/fix/deploy-image-uri-in-deploy-step
kimjuneon May 8, 2026
98273c9
Merge pull request #55 from mannabom/fix/deploy-image-uri-in-deploy-step
kimjuneon May 8, 2026
0b42a24
Merge pull request #57 from mannabom/develop
kimjuneon May 16, 2026
e7f96f9
Merge pull request #59 from mannabom/develop
kimjuneon May 16, 2026
e10931d
Merge pull request #61 from mannabom/develop
kimjuneon May 16, 2026
90061af
Merge pull request #63 from mannabom/develop
kimjuneon May 16, 2026
e535650
Merge pull request #65 from mannabom/develop
kimjuneon May 16, 2026
655527f
Merge pull request #70 from mannabom/develop
Sehi55 Jun 25, 2026
263637c
feat: 프로필 공개 요청 api 구현
Sehi55 Jul 1, 2026
5d432e2
fix: 프로필 공개 요청 시 ready 상태 검증 로직 추가
Sehi55 Jul 1, 2026
b669f43
fix: 알림 타입 개수 증가
Sehi55 Jul 1, 2026
c5643a8
fix: db migration version 수정
Sehi55 Jul 1, 2026
a0033f5
fix: 알림 타입을 문자열 enum으로 저장하도록 변경
Sehi55 Jul 2, 2026
6209297
[Feature] 관리자 CS 기간 정지 및 팅 지급 처리 추가
kimjuneon Jun 25, 2026
fb00612
[Feature] 관리자 신고 조회 및 처리 API 추가
kimjuneon Jun 25, 2026
7177123
[Feature] 관리자 신고 CS 화면 추가
kimjuneon Jun 25, 2026
a48856f
[Fix] 관리자 신고 CS 리뷰 반영
kimjuneon Jun 25, 2026
b48b587
fix: stabilize meeting matching redis flow
Sehi55 Jul 8, 2026
09cceea
feat: add meeting verification flow
Sehi55 Jul 8, 2026
ade8a7d
fix: 만남인증요청 request dto 입력값 검증
Sehi55 Jul 8, 2026
7de76eb
fix: harden meeting verification review issues
Sehi55 Jul 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
@Getter
@NoArgsConstructor
public class AdminAdjustWalletRequest {
private final Integer tingDelta = 0;
private final Integer eventTingDelta = 0;
private Integer tingDelta = 0;
private Integer eventTingDelta = 0;

@NotBlank(message = "reason은 필수입니다.")
private String reason;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package mannabom_server.manabom.application.admin.dto.request;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Getter;
import lombok.NoArgsConstructor;
import mannabom_server.manabom.domain.admin.enums.UserAccountStatus;
import mannabom_server.manabom.domain.report.entity.ReportStatus;

import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
public class AdminProcessReportRequest {
@NotNull(message = "status는 필수입니다.")
private ReportStatus status;

private String adminComment;

private UserAccountStatus targetAccountStatus;

private LocalDateTime targetSuspendedUntil;

private String targetAccountReason;

@PositiveOrZero(message = "tingGrant는 0 이상이어야 합니다.")
private Integer tingGrant = 0;

@PositiveOrZero(message = "eventTingGrant는 0 이상이어야 합니다.")
private Integer eventTingGrant = 0;

private String walletReason;

public boolean isTargetSuspensionRequested() {
return targetAccountStatus == UserAccountStatus.SUSPENDED;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
import lombok.NoArgsConstructor;
import mannabom_server.manabom.domain.admin.enums.UserAccountStatus;

import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
public class AdminUpdateUserStatusRequest {
@NotNull(message = "status는 필수입니다.")
private UserAccountStatus status;

private LocalDateTime suspendedUntil;

private String reason;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package mannabom_server.manabom.application.admin.dto.response;

import lombok.Builder;
import lombok.Getter;
import mannabom_server.manabom.domain.admin.enums.UserAccountStatus;
import mannabom_server.manabom.domain.report.entity.ReportReason;
import mannabom_server.manabom.domain.report.entity.ReportStatus;
import mannabom_server.manabom.domain.report.entity.ReportType;
import mannabom_server.manabom.domain.user.enums.Gender;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Map;

@Getter
@Builder
public class AdminReportDetailResponse {
private final Long reportId;
private final ReportType type;
private final Long contextId;
private final ReportReason reason;
private final String additionalDetail;
private final ReportStatus status;
private final String adminComment;
private final Instant processedAt;
private final Instant createdAt;
private final UserSnapshot reporter;
private final UserSnapshot target;
private final Map<String, Object> referenceContext;

@Getter
@Builder
public static class UserSnapshot {
private final Long userId;
private final Long profileId;
private final String kakaoId;
private final String userName;
private final String phoneNum;
private final String nickName;
private final Gender gender;
private final LocalDate birthDate;
private final String universityName;
private final String regionSidoName;
private final String regionSigunguName;
private final Boolean verified;
private final UserAccountStatus accountStatus;
private final String statusReason;
private final LocalDateTime statusSuspendedUntil;
private final Integer ting;
private final Integer eventTing;
private final LocalDateTime membershipActiveUntil;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package mannabom_server.manabom.application.admin.dto.response;

import lombok.Builder;
import lombok.Getter;

import java.util.List;

@Getter
@Builder
public class AdminReportListResponse {
private final List<AdminReportSummaryResponse> reports;
private final long totalCount;
private final int totalPages;
private final int page;
private final int size;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package mannabom_server.manabom.application.admin.dto.response;

import lombok.Getter;
import mannabom_server.manabom.domain.report.entity.ReportReason;
import mannabom_server.manabom.domain.report.entity.ReportStatus;
import mannabom_server.manabom.domain.report.entity.ReportType;

import java.time.Instant;

@Getter
public class AdminReportSummaryResponse {
private final Long reportId;
private final ReportType type;
private final Long contextId;
private final Long reporterId;
private final String reporterName;
private final String reporterNickName;
private final Long targetId;
private final String targetName;
private final String targetNickName;
private final ReportReason reason;
private final ReportStatus status;
private final Instant createdAt;
private final Instant processedAt;

public AdminReportSummaryResponse(Long reportId,
ReportType type,
Long contextId,
Long reporterId,
String reporterName,
String reporterNickName,
Long targetId,
String targetName,
String targetNickName,
ReportReason reason,
ReportStatus status,
Instant createdAt,
Instant processedAt) {
this.reportId = reportId;
this.type = type;
this.contextId = contextId;
this.reporterId = reporterId;
this.reporterName = reporterName;
this.reporterNickName = reporterNickName;
this.targetId = targetId;
this.targetName = targetName;
this.targetNickName = targetNickName;
this.reason = reason;
this.status = status;
this.createdAt = createdAt;
this.processedAt = processedAt;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class AdminUserDetailResponse {
private final Boolean membership;
private final UserAccountStatus accountStatus;
private final String statusReason;
private final LocalDateTime statusSuspendedUntil;
private final Instant createdAt;
private final Profile profile;
private final Wallet wallet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package mannabom_server.manabom.application.admin.dto.response;

import lombok.Getter;
import mannabom_server.manabom.domain.admin.entity.UserAccountRestriction;
import mannabom_server.manabom.domain.admin.enums.UserAccountStatus;
import mannabom_server.manabom.domain.user.enums.Gender;

import java.time.Instant;
import java.time.LocalDateTime;

@Getter
public class AdminUserSummaryResponse {
Expand All @@ -20,6 +22,7 @@ public class AdminUserSummaryResponse {
private Boolean verified;
private Boolean membership;
private UserAccountStatus accountStatus;
private LocalDateTime statusSuspendedUntil;
private Instant createdAt;

public AdminUserSummaryResponse(Long userId,
Expand All @@ -34,7 +37,9 @@ public AdminUserSummaryResponse(Long userId,
Boolean verified,
Boolean membership,
UserAccountStatus accountStatus,
Instant createdAt) {
LocalDateTime statusSuspendedUntil,
Instant createdAt,
LocalDateTime now) {
this.userId = userId;
this.profileId = profileId;
this.kakaoId = kakaoId;
Expand All @@ -46,7 +51,8 @@ public AdminUserSummaryResponse(Long userId,
this.regionSigunguName = regionSigunguName;
this.verified = verified;
this.membership = membership;
this.accountStatus = accountStatus == null ? UserAccountStatus.ACTIVE : accountStatus;
this.accountStatus = UserAccountRestriction.effectiveStatus(accountStatus, statusSuspendedUntil, now);
this.statusSuspendedUntil = statusSuspendedUntil;
this.createdAt = createdAt;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
Expand All @@ -29,7 +28,7 @@ public class AdminAuditService {
private final AdminAuditLogRepository adminAuditLogRepository;
private final AdminAccountRepository adminAccountRepository;

@Transactional(propagation = Propagation.REQUIRES_NEW)
@Transactional
public void log(Long adminId,
AdminAuditActionType actionType,
AdminAuditTargetType targetType,
Expand Down
Loading