サービスモジュール化


今日は芝生とカカオ情報サービスをモジュール化しました
モジュール化と言えば、状況に応じて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