728x90
🚀 TODAY WORK
백엔드
- 상담 신청 기능 구조 설계
- ActivityLog 엔티티 생성
- ActivityLog Repository 생성
- ActivityLog Service 생성
- 고객 중복 조회 기능 설계
- 연락처 + 생년월일 기준 고객 조회 메서드 추가
- 상담 신청 Request DTO 설계
- 상담 신청 API 구조 설계
- 상담 신청 Controller 패키지 구조 검토
🚨 TODAY ISSUE
고객 중복 생성 방지 기준 정의
- 상담 신청은 비회원도 가능하기 때문에 동일 고객이 여러 번 신청할 수 있다.
- 고객 중복 생성 방지를 위해 어떤 값을 기준으로 고객을 식별할지 검토했다.
기존 고려안
문제점 : 동명이인 존재 가능
이름 + 연락처
최종 결정
해당 기준으로 기존 고객 여부를 판단하도록 설계했다.
연락처 + 생년월일
ActivityLog 역할 분리
- 처음에는 CustomerService 내부에서 상담 기록 저장까지 처리하려고 했다.
기존 구조
- 문제점 : 고객 관리와 상담 기록 관리 책임이 혼합됨
CustomerService
├ 고객 생성
└ 상담 기록 생성
변경 구조
- 상담 기록 생성 로직을 별도 Service로 분리하여 역할을 명확히 했다.
CustomerService
└ 고객 생성/조회
ActivityLogService
└ 상담 기록 생성
상담 신청 API 패키지 구조 검토
현재 API 구조
api
├ admin
├ auth
├ common
├ consultant
└ user
상담 신청 : 별도 패키지 생성으로 결정
관리자 전용 ❌
상담사 전용 ❌
사용자 전용 ❌
예정 구조
api
├ admin
├ auth
├ consultant
├ user
└ consult
✨ TODAY RESULT
ActivityLog 엔티티 구현
- 상담 기록 테이블 매핑 완료
@Entity
@Table(name = "activity_logs")
public class ActivityLog {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long activityId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer_id")
private Customer customer;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "counselor_id")
private User counselor;
}
고객 중복 조회 기능 추가 (CustomerRepository)
Optional<Customer> findByPhoneAndBirthDate(
String phone,
LocalDate birthDate
);
상담 신청 DTO 설계
public class ConsultApplyRequest {
private String name;
private LocalDate birthDate;
private String phone;
private String email;
private String interestCourse;
private String leadSource;
private String content;
}
상담 신청 처리 흐름 설계
상담 신청
↓
연락처 + 생년월일 조회
↓
기존 고객 여부 확인
↓
신규 고객 생성 또는 기존 고객 재사용
↓
ACTIVITY_LOG 생성
↓
응답 반환
🔥 NEXT TODO
- ConsultController 생성
- POST /api/consult/apply API 구현
- CustomerService 상담 신청 로직 구현
- ActivityLog 자동 생성 연동
- Postman API 테스트
- 상담 신청 프론트 페이지(/consult/apply) 구현
- 상담 신청 API 연동
- 입력값 유효성 검증 추가
- 상담 신청 완료 메시지 처리
728x90
'SpringBoot' 카테고리의 다른 글
| [CRM 개발일지 #7] 상담 신청 기능 구현 (완료 페이지, 공통코드 연동, Validation) (0) | 2026.05.13 |
|---|---|
| [CRM 개발일지 #6] 상담 신청 기능 구현 (고객 생성, ActivityLog 자동 저장) (0) | 2026.05.12 |
| [CRM 개발일지 #4] 상담사 고객 관리와 관리자 대시보드 UI 구축 (0) | 2026.05.10 |
| [CRM 개발일지 #3] 관리자 고객 관리 API 연동 작업 (0) | 2026.05.08 |
| [CRM 개발일지 #2] 공통 코드 상태 관리 구조 개선 + Zustand 적용 (0) | 2026.05.07 |
