サービスモジュール化
今日は芝生とカカオ情報サービスをモジュール化しました
モジュール化と言えば、状況に応じてifに脂を塗って粉を塗りますが、実際の操作では、これは非常に少ないように見えますので、既存のソースコードを参考にしました.
ソースコードを表示すると、代表的なソーシャルログインが表示されます.
ソーシャルタイプ(Provider)で接続し、対応するソーシャルサイトにログインし、enumとして実装
だから私もenumで実現します
私は以前、私が実現した芝生情報をenumとして、その中に入る伝言名と目覚まし時計の色を指定して、私はenumを作成することにしました.それはココアと芝生を統合することができます.
ステップをenumとして指定し、ステップメッセージとアラートの色、および呼び出すテンプレートコードを保存しました.
ブランチを使用して次のメッセージを送信するMessageServiceが作成されました
そして、サービスを呼び出す必要があるapiで
注意:https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html
モジュール化と言えば、状況に応じてifに脂を塗って粉を塗りますが、実際の操作では、これは非常に少ないように見えますので、既存のソースコードを参考にしました.
ソースコードを表示すると、代表的なソーシャルログインが表示されます.
ソーシャルタイプ(Provider)で接続し、対応するソーシャルサイトにログインし、enumとして実装
だから私もenumで実現します
私は以前、私が実現した芝生情報をenumとして、その中に入る伝言名と目覚まし時計の色を指定して、私はenumを作成することにしました.それはココアと芝生を統合することができます.
public enum Status {
REQ(value -> "주문확인 고객님의 주문을 매장에서 확인중입니다. 주문이 접수되면 안내드리겠습니다. \\n\\n\n\n- 주문일시 : 11월30일 \\n\n- 주문번호 : 23R2G9923J23 \\n\n- 가게 : 청정수산 \\n\n- 메뉴 : 연어회 \\n\n- 배달주소 : 경기도 광명시 \\n\n",
"퀵서비스 주문이 들어왔습니다",
"tp-0000000003",
"#66ff99"),
RCV(value -> "템플릿 테스트 " + value.getName() + " " + value.getStoreName(),
"jMessage",
"tp-0000000001",
"#66ff99"),
SND(value -> "템플릿 테스트 " + value.getName() + " " + value.getStoreName(),
"jMessage",
"tp-0000000001",
"#66ff99"),
SNT(value -> "템플릿 테스트 " + value.getName() + " " + value.getStoreName(),
"퀵서비스 상품이 배송되었습니다",
"tp-0000000001",
"#ffff66"),
CXL(value -> "템플릿 테스트 " + value.getName() + " " + value.getStoreName(),
"퀵서비스 주문이 취소되었습니다",
"tp-0000000001",
"#FF0000");
private final Function<QuickOrderMessageVO, String> kMessage;
private final String jMessage;
private final String templateCode;
private final String color;
Status(Function<QuickOrderMessageVO, String> kMessage, String jMessage, String templateCode, String color) {
this.kMessage = kMessage;
this.jMessage = jMessage;
this.templateCode = templateCode;
this.color = color;
}
public String getKMessage(QuickOrderMessageVO value) {
return kMessage.apply(value);
}
public String getJMessage(){
return jMessage;
}
public String getTemplateCode(){
return templateCode;
}
public String getColor(){
return color;
}
public static Status of(String name) {
return valueOf(name.toUpperCase());
}
}
まず、中身はまだテスト段階なので気になります.ステップをenumとして指定し、ステップメッセージとアラートの色、および呼び出すテンプレートコードを保存しました.
ブランチを使用して次のメッセージを送信するMessageServiceが作成されました
public class MessageService {
...
public void sendMessage(String orderCode, Status status){
/*
각 상태별 메세지 전송
정확히 어떤 상태일때 메세지를 보낼지 정립 필요
*/
QuickOrderMessageVO orderMessage = cmsWriteMapper.selectOrder(orderCode);
kakaoMessage.sendMessage(status, orderMessage);
switch (status){
case REQ:
case CXL:
jandiMessage.sendMessage(status, orderMessage);
break;
case RCV:
break;
case SND:
break;
case SNT:
break;
default:
throw new RuntimeException("Not supported status!!!");
}
}
}
状態固有のメッセージをどのように送信するかはまだ決定されていないので、Kakaoメッセージを全状態で送信し、REQ、CXL状態でラフメッセージを送信するのは初めての実施である.そして、サービスを呼び出す必要があるapiで
messageService.sendMessage(code, Status.of(status.get("status")));
クライアントからのステータス値を使用してメッセージを送信するためにサービスを呼び出す注意:https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html
Reference
この問題について(サービスモジュール化), 我々は、より多くの情報をここで見つけました https://velog.io/@rkdals213/서비스-모듈화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol