Skip to content

Commit

Permalink
feat: 계약 전체/상세 조회, 납부 조회 API 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
hongkikii authored Dec 1, 2023
2 parents ee17f25 + a51407a commit 1db515c
Show file tree
Hide file tree
Showing 120 changed files with 2,972 additions and 890 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ dependencies {
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation "com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0"
implementation 'org.springframework.boot:spring-boot-starter-security'

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
Expand Down
114 changes: 60 additions & 54 deletions ddl.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,28 @@ CREATE TABLE Insurance(
type VARCHAR(255),
maxCompensation INT,
periodOfInsurance VARCHAR(255),
paymentCycle VARCHAR(255),
paymentPeriod VARCHAR(255),
ageOfTarget VARCHAR(255),
basicPremium INT,
rate VARCHAR(255),
distributionStatus BOOL,
insuranceClausePeriod VARCHAR(255),
precaution VARCHAR(255),
authorization BOOL
authorization BOOL,
deletedAt DATETIME
);

CREATE TABLE Customer (
customerID BIGINT AUTO_INCREMENT PRIMARY KEY,
id VARCHAR(255),
loginId VARCHAR(255),
customerName VARCHAR(255),
job VARCHAR(255),
pnumber VARCHAR(255),
birth VARCHAR(255),
eGender VARCHAR(255),
address VARCHAR(255)
address VARCHAR(255),
deletedAt DATETIME,
password VARCHAR(255),
role VARCHAR(255)
);

CREATE TABLE CompensationClaim (
Expand Down Expand Up @@ -75,6 +77,7 @@ CREATE TABLE InsuranceApplication (
createdAt DATE,
insurancePeriod VARCHAR(255),
paymentCycle VARCHAR(255),
paymentPeriod VARCHAR(255),
subscriptionFilePath VARCHAR(255),
premium INT,
maxCompensation INT,
Expand Down Expand Up @@ -128,12 +131,13 @@ CREATE TABLE Guarantee(
);

CREATE TABLE Contract (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
contractID BIGINT AUTO_INCREMENT PRIMARY KEY,
insuranceID BIGINT,
customerID BIGINT,
insurancePeriod VARCHAR(255),
premium INT,
paymentCycle VARCHAR(255),
paymentPeriod VARCHAR(255),
maxCompensation INT,
dateOfSubscription DATE,
dateOfMaturity DATE,
Expand All @@ -145,13 +149,15 @@ CREATE TABLE Contract (
);

CREATE TABLE Payment (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
paymentID BIGINT AUTO_INCREMENT PRIMARY KEY,
customerID BIGINT,
insuranceID BIGINT,
contractID BIGINT,
dateOfPayment DATE,
whetherPayment BOOLEAN,
FOREIGN KEY (customerID) REFERENCES Customer(customerID),
FOREIGN KEY (insuranceID) REFERENCES Insurance(insuranceID)
FOREIGN KEY (insuranceID) REFERENCES Insurance(insuranceID),
FOREIGN KEY (contractID) REFERENCES Contract(contractID)
);

INSERT INTO Terms (termsName, calculatedMoneyMethod, termsContent) VALUES
Expand All @@ -173,27 +179,27 @@ INSERT INTO Terms (termsName, calculatedMoneyMethod, termsContent) VALUES
('자동차보험 약관 D', '실비지급', '자동차 사고로 인한 손해배상'),
('건강보험 약관 D', '정액지급', '입원비용 및 수술비용 보장');

INSERT INTO Insurance (insuranceName, type, maxCompensation, periodOfInsurance, paymentCycle, paymentPeriod, ageOfTarget, basicPremium, rate, distributionStatus, insuranceClausePeriod, precaution, authorization) VALUES
('자동차보험A', 'Car', 10000000, '10년', '3년', '매월', '30세', 200000, 1.1, False, '2년', '사고 발생시 보험금 지급을 위해 경찰 보고서 필요', True),
('건강보험A', 'Health', 5000000, '10년', '5년', '매월', '40세', 100000, 1.2, False, '없음', '선처리 요구사항 확인 필요', True),
('재물보험A', 'Property', 50000000, '5년', '일시납', '-', '35세', 500000, 1.3, False, '없음', '가입 후 30일 이내에 보험금 청구서 제출 필요', True),
('자동차보험B', 'Car', 1000000, '4년', '일시납', '-', '25세', 200000, 1.1, False, '없음', '사고 발생시 보험금 지급을 위해 경찰 보고서 필요', True),
('화재보험A', 'Fire', 100000000, '20년', '10년', '매년', '45세', 1000000, 1.2, False, '없음', '화재 발생 시 경찰과의 협조 필요', True),
('종신보험A', 'Life', 500000000, '평생', '20년', '매년', '35세', 1000000, 1.2, False, '2년', '보험가입 후 2년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('자동차보험C', 'Car', 20000000, '3년', '일시납', '-', '28세', 150000, 1.1, False, '없음', '운전 중 음주로 인한 사고는 보험 적용 제한', True),
('건강보험B', 'Health', 3000000, '5년', '5년', '매월', '35세', 80000, 1.3, False, '없음', '의료기관 방문 시 의사소견서 필요', True),
('재물보험B', 'Property', 20000000, '1년', '일시납', '-', '40세', 300000, 1.2, False, '없음', '보험금 지급을 위해 재물 명세서 필요', True),
('종신보험B', 'Life', 200000000, '8년', '일시납', '-', '32세', 3000000, 1.1, False, '2년', '보험가입 후 2년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('화재보험B', 'Fire', 200000000, '15년', '10년', '매년', '50세', 800000, 1.2, False, '없음', '화재 발생 시 보험금 지급을 위해 화재 경찰 조사 필요', True),
('종신보험C', 'Life', 1000000000, '평생', '30년', '매년', '40세', 2000000, 1.2, False, '5년', '보험 가입 후 3년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('자동차보험D', 'Car', 5000000, '1년', '일시납', '-', '27세', 120000, 1.1, False, '없음', '운전 중 교통법규 위반으로 인한 사고는 보험 적용 제한', True),
('건강보험C', 'Health', 1000000, '3년', '3년', '매월', '32세', 50000, 1.3, False, '1년', '일부 질병은 면책 기간이 적용될 수 있음', True),
('재물보험C', 'Property', 30000000, '3년', '일시납', '-', '38세', 350000, 1.2, False, '없음', '보험금 청구 시 사고 경위에 대한 상세한 설명 필요', True),
('자동차보험D', 'Car', 30000000, '5년', '일시납', '-', '30세', 400000, 1.1, False, '없음', '운전 중 음주로 인한 사고는 보험 적용 제한', False),
('화재보험C', 'Fire', 150000000, '10년', '5년', '매년', '55세', 700000, 1.2, False, '없음', '화재 발생 시 화재 경찰 조사 결과 필요', False),
('종신보험D', 'Life', 800000000, '평생', '40년', '매년', '42세', 1500000, 1.2, False, '없음', '7년 보험 가입 후 5년 동안 자살에 의한 사망은 보험금 지급 제한', False),
('자동차보험E', 'Car', 15000000, '2년', '일시납', '-', '31세', 180000, 1.1, False, '없음', '운전 중 음주, 도주로 인한 사고는 보험 적용 제한', False),
('건강보험D', 'Health', 2500000, '7년', '7년', '매월', '37세', 90000, 1.3, False, '없음', '의료비 청구 시 영수증 및 진단서 제출 필요', False);
INSERT INTO Insurance (insuranceName, type, maxCompensation, periodOfInsurance, ageOfTarget, basicPremium, rate, distributionStatus, insuranceClausePeriod, precaution, authorization) VALUES
('자동차보험A', 'Car', 10000000, '10년', '30세', 200000, 1.1, False, '2년', '사고 발생시 보험금 지급을 위해 경찰 보고서 필요', True),
('건강보험A', 'Health', 5000000, '10년', '40세', 100000, 1.2, False, '없음', '선처리 요구사항 확인 필요', True),
('재물보험A', 'Property', 50000000, '5년', '35세', 500000, 1.3, False, '없음', '가입 후 30일 이내에 보험금 청구서 제출 필요', True),
('자동차보험B', 'Car', 1000000, '4년', '25세', 200000, 1.1, False, '없음', '사고 발생시 보험금 지급을 위해 경찰 보고서 필요', True),
('화재보험A', 'Fire', 100000000, '20년', '45세', 1000000, 1.2, False, '없음', '화재 발생 시 경찰과의 협조 필요', True),
('종신보험A', 'Life', 500000000, '평생', '35세', 1000000, 1.2, False, '2년', '보험가입 후 2년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('자동차보험C', 'Car', 20000000, '3년', '28세', 150000, 1.1, False, '없음', '운전 중 음주로 인한 사고는 보험 적용 제한', True),
('건강보험B', 'Health', 3000000, '5년', '35세', 80000, 1.3, False, '없음', '의료기관 방문 시 의사소견서 필요', True),
('재물보험B', 'Property', 20000000, '1년', '40세', 300000, 1.2, False, '없음', '보험금 지급을 위해 재물 명세서 필요', True),
('종신보험B', 'Life', 200000000, '8년', '32세', 3000000, 1.1, False, '2년', '보험가입 후 2년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('화재보험B', 'Fire', 200000000, '15년', '50세', 800000, 1.2, False, '없음', '화재 발생 시 보험금 지급을 위해 화재 경찰 조사 필요', True),
('종신보험C', 'Life', 1000000000, '평생', '40세', 2000000, 1.2, False, '5년', '보험 가입 후 3년 동안 자살에 의한 사망은 보험금 지급 제한', True),
('자동차보험D', 'Car', 5000000, '1년', '27세', 120000, 1.1, False, '없음', '운전 중 교통법규 위반으로 인한 사고는 보험 적용 제한', True),
('건강보험C', 'Health', 1000000, '3년', '32세', 50000, 1.3, False, '1년', '일부 질병은 면책 기간이 적용될 수 있음', True),
('재물보험C', 'Property', 30000000, '3년', '38세', 350000, 1.2, False, '없음', '보험금 청구 시 사고 경위에 대한 상세한 설명 필요', True),
('자동차보험D', 'Car', 30000000, '5년', '30세', 400000, 1.1, False, '없음', '운전 중 음주로 인한 사고는 보험 적용 제한', False),
('화재보험C', 'Fire', 150000000, '10년', '55세', 700000, 1.2, False, '없음', '화재 발생 시 화재 경찰 조사 결과 필요', False),
('종신보험D', 'Life', 800000000, '평생', '42세', 1500000, 1.2, False, '없음', '7년 보험 가입 후 5년 동안 자살에 의한 사망은 보험금 지급 제한', False),
('자동차보험E', 'Car', 15000000, '2년', '31세', 180000, 1.1, False, '없음', '운전 중 음주, 도주로 인한 사고는 보험 적용 제한', False),
('건강보험D', 'Health', 2500000, '7년', '37세', 90000, 1.3, False, '없음', '의료비 청구 시 영수증 및 진단서 제출 필요', False);

INSERT INTO Guarantee (insuranceID, termsID)
VALUES
Expand All @@ -220,7 +226,7 @@ VALUES
(19, 16),
(20, 17);

INSERT INTO Customer (id, customerName, job, pnumber, birth, eGender, address)
INSERT INTO Customer (loginId, customerName, job, pnumber, birth, eGender, address)
VALUES ('id1', '김철수', '회사원', '01012345678', '1997-11-19', '', '서울특별시 서대문구 거북골로 12'),
('id2', '김영희', '학생', '01023456789', '1997-11-19', '', '서울특별시 서대문구 거북골로 23'),
('id3', '김가나', '학생', '01034567891', '1997-04-19', '', '서울특별시 서대문구 거북골로 34'),
Expand All @@ -231,33 +237,33 @@ VALUES ('id1', '김철수', '회사원', '01012345678', '1997-11-19', '남', '
('id8', '김사아', '회계사', '01089123456', '1997-11-09', '', '서울특별시 서대문구 거북골로 89'),
('id9', '김아자', '교수', '01091234567', '1997-11-19', '', '서울특별시 서대문구 거북골로 90');

INSERT INTO Contract (insuranceID, insurancePeriod, premium, paymentCycle, maxCompensation, dateOfSubscription, dateOfMaturity, maturity, resurrection, cancellation, customerID)
INSERT INTO Contract (insuranceID, insurancePeriod, premium, paymentCycle, paymentPeriod, maxCompensation, dateOfSubscription, dateOfMaturity, maturity, resurrection, cancellation, customerID)
VALUES
(1, '72주', 200000, '4주', 3000000, '2019-02-22', '2024-08-20', 0, 0, 0, 1),
(2, '72주', 100000, '4주', 3000000, '2019-03-29', '2024-05-23', 0, 0, 0, 1),
(3, '72주', 500000 , '4주', 3000000, '2019-06-29', '2024-03-23', 0, 0, 0, 1),
(1, '72주', 200000, '4주', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 3),
(3, '72주', 500000 , '4주', 3000000, '2019-06-29', '2024-03-23', 1, 0, 0, 4),
(2, '72주', 100000, '4주', 3000000, '2019-07-29', '2024-03-23', 1, 1, 1, 5),
(1, '72주', 200000, '4주', 3000000, '2019-08-29', '2024-03-23', 1, 1, 0, 6),
(2, '72주', 100000, '4주', 3000000, '2019-03-29', '2024-03-23', 1, 0, 0, 7),
(1, '72주', 200000, '4주', 3000000, '2019-02-22', '2024-03-23', 0, 1, 0, 8),
(1, '72주', 24001, '4주', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 9),
(2, '72주', 100000, '4주', 3000000, '2019-07-29', '2024-03-23', 1, 1, 1, 2),
(1, '72주', 200000, '4주', 3000000, '2019-08-29', '2024-03-23', 1, 1, 0, 3),
(2, '72주', 100000, '4주', 3000000, '2019-03-29', '2024-03-23', 1, 0, 0, 4),
(1, '72주', 200000, '4주', 3000000, '2019-02-22', '2024-03-23', 0, 1, 0, 5),
(1, '72주', 200000, '4주', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 6);
(1, '72주', 200000, '4주', '1년', 3000000, '2019-02-22', '2024-08-20', 0, 0, 0, 1),
(2, '72주', 100000, '4주', '1년', 3000000, '2019-03-29', '2024-05-23', 0, 0, 0, 1),
(3, '72주', 500000 , '4주', '1년', 3000000, '2019-06-29', '2024-03-23', 0, 0, 0, 1),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 3),
(3, '72주', 500000 , '4주', '1년', 3000000, '2019-06-29', '2024-03-23', 1, 0, 0, 4),
(2, '72주', 100000, '4주', '1년', 3000000, '2019-07-29', '2024-03-23', 1, 1, 1, 5),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-08-29', '2024-03-23', 1, 1, 0, 6),
(2, '72주', 100000, '4주', '1년', 3000000, '2019-03-29', '2024-03-23', 1, 0, 0, 7),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-02-22', '2024-03-23', 0, 1, 0, 8),
(1, '72주', 24001, '4주', '1년', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 9),
(2, '72주', 100000, '4주', '1년', 3000000, '2019-07-29', '2024-03-23', 1, 1, 1, 2),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-08-29', '2024-03-23', 1, 1, 0, 3),
(2, '72주', 100000, '4주', '1년', 3000000, '2019-03-29', '2024-03-23', 1, 0, 0, 4),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-02-22', '2024-03-23', 0, 1, 0, 5),
(1, '72주', 200000, '4주', '1년', 3000000, '2019-01-29', '2024-03-23', 1, 1, 0, 6);

INSERT INTO Payment (customerID, insuranceID, dateOfPayment, whetherPayment)
INSERT INTO Payment (customerID, insuranceID, ContractID, dateOfPayment, whetherPayment)
VALUES
(1, 1, '2023-06-22', 0),
(1, 2, '2023-05-20', 1),
(1, 3, '2023-06-25', 0),
(2, 2, '2023-05-30', 0),
(3, 1, '2023-05-29', 1),
(4, 3, '2023-05-29', 1),
(5, 2, '2023-05-28', 0);
(1, 1, 4, '2023-06-22', 0),
(1, 2, 5,'2023-05-20', 1),
(1, 3, 6, '2023-06-25', 0),
(2, 2, 14, '2023-05-30', 0),
(3, 1, 15, '2023-05-29', 1),
(4, 3, 8, '2023-05-29', 1),
(5, 2, 9, '2023-05-28', 0);

INSERT INTO CounselApplication(counselID, category, customerID, dateOfFirst, dateOfSecond, requirement)
VALUES
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package aplus.insurancesystem2.common.config;

import java.io.IOException;

import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class AplusAuthenticationEntryPoint implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
}
}
Loading

0 comments on commit 1db515c

Please sign in to comment.