Skip to content

Commit

Permalink
feat: sms전송 서비스 구현(survey생성시 전송)
Browse files Browse the repository at this point in the history
  • Loading branch information
ibaesuyeon committed Dec 8, 2023
1 parent f40ae8f commit c72a00d
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 1 deletion.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dependencies {
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'
implementation 'net.nurigo:sdk:4.3.0'

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/aplus/insurancesystem/common/service/Esms.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package aplus.insurancesystem.common.service;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum Esms {
COMPENSATION_CLAIM_COMPLETED("보상금 청구가 완료되었습니다. 손해사정에는 수일이 걸릴 수 있습니다."),

SURVEY_COMPLETED("손해사정이 완료되었습니다. 홈페이지에서 결과를 확인해주세요."),

INSURANCE_APPLICATION_APPROVED("보험 가입 심사가 완료되었습니다. 홈페이지에서 결과를 확인해주세요.");

private final String message;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package aplus.insurancesystem.common.service;

import net.nurigo.sdk.NurigoApp;
import net.nurigo.sdk.message.model.Message;
import net.nurigo.sdk.message.request.MessageListRequest;
import net.nurigo.sdk.message.request.SingleMessageSendingRequest;
import net.nurigo.sdk.message.response.MessageListResponse;
import net.nurigo.sdk.message.response.SingleMessageSentResponse;
import net.nurigo.sdk.message.service.DefaultMessageService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;

public class MessageService {
final DefaultMessageService messageService;

@Value("${coolsms.api.key}")
private String apiKey;
@Value("${coolsms.api.secret}")
private String apiSecretKey;
@Value("${coolsms.api.from-number}")
private String fromNumber;

public MessageService(DefaultMessageService messageService) {
this.messageService = NurigoApp.INSTANCE.initialize(apiKey, apiSecretKey, "https://api.coolsms.co.kr");
}

public SingleMessageSentResponse sendOne(String to, Esms esms) {
Message message = new Message();
// 발신번호(fromNumber) 및 수신번호(to)는 반드시 01012345678 형태로 입력되어야 함
message.setFrom(fromNumber);
message.setTo(to);
message.setText("[A+보험사] " + esms.getMessage());

SingleMessageSentResponse response = this.messageService.sendOne(new SingleMessageSendingRequest(message));
return response;
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package aplus.insurancesystem.domain.compensationClaim.service;


import aplus.insurancesystem.common.service.Esms;
import aplus.insurancesystem.common.service.FileService;
import aplus.insurancesystem.common.service.MessageService;
import aplus.insurancesystem.domain.compensationClaim.dto.request.CreateCarAccidentRequest;
import aplus.insurancesystem.domain.compensationClaim.dto.request.CreateCompensationClaimRequest;
import aplus.insurancesystem.domain.compensationClaim.dto.request.CreateSurveyRequest;
Expand All @@ -21,6 +23,9 @@
import aplus.insurancesystem.domain.contract.entity.Contract;
import aplus.insurancesystem.domain.contract.exception.ContractNotFoundException;
import aplus.insurancesystem.domain.contract.repository.ContractRepository;
import aplus.insurancesystem.domain.contract.service.ContractService;
import aplus.insurancesystem.domain.customer.entity.customer.Customer;
import aplus.insurancesystem.domain.customer.service.CustomerQueryService;
import lombok.RequiredArgsConstructor;
import org.springframework.core.io.InputStreamResource;
import org.springframework.stereotype.Service;
Expand All @@ -38,7 +43,11 @@
public class SurveyServiceImpl implements SurveyService {
private final CompensationClaimRepository compensationClaimRepository;
private final SurveyRepository surveyRepository;
private final ContractRepository contractRepository;
private final ContractService contractService;
private final FileService fileService;
private final MessageService messageService;
private final CustomerQueryService customerQueryService;


@Override
Expand Down Expand Up @@ -70,6 +79,9 @@ public void createSurvey(Long ccid, CreateSurveyRequest request) {
compensationClaim.setSurveyed(true);
compensationClaimRepository.save(compensationClaim);
surveyRepository.save(survey);

String phoneNumber = compensationClaim.getReceptionistPNumber().replaceAll("-", "");
messageService.sendOne(phoneNumber, Esms.SURVEY_COMPLETED);
}

@Override
Expand Down
8 changes: 7 additions & 1 deletion src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,10 @@ spring:
decorator:
datasource:
p6spy:
enable-logging: true
enable-logging: true

coolsms:
api:
key: ${APIKEY}
secret: ${APISECRET}
from-number: ${FROMNUMBER}

0 comments on commit c72a00d

Please sign in to comment.