返回列表 上一筆 下一筆

📄 資料內容

package <你的package>; // 放和 ClamNoteService 相同的 package



import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

import org.springframework.context.annotation.Primary;

import org.springframework.stereotype.Service;

import java.util.*;



@Service

@Primary

@ConditionalOnProperty(name = "mock", havingValue = "true")

public class MockClamNoteService implements ClamNoteService {



    @Override

    public ClamNoticeDataCountResBean getClamNoticeDataCount(ClamNoteReqBean noticeDataCountReqBean) throws ApiException {

        // 版本 A:若是 setter 風格(有無參數建構子)

        ClamNoticeDataCountResBean res = new ClamNoticeDataCountResBean();

        // res.setTotal(3); res.setUnread(1); res.setRead(2); // ← 用你的欄位名填

        return res;



        // 版本 B:若是 Lombok @Builder

        // return ClamNoticeDataCountResBean.builder()

        //         .total(3).unread(1).read(2)

        //         .build();



        // 版本 C:若是 record

        // return new ClamNoticeDataCountResBean(3, 1, 2);

    }



    @Override

    public List<ClamNoticeDataListResBean> getClamNoticeList(ClamNoteReqBean noticeDataListReqBean) throws ApiException {

        // 版本 A:setter 風格

        ClamNoticeDataListResBean item = new ClamNoticeDataListResBean();

        // item.setNoticeId("MOCK-001");

        // item.setTitle("這是假的通知");

        // item.setStatus("UNREAD");

        // item.setCreateTime("2025-11-07T10:00:00Z");

        return Arrays.asList(item);



        // 版本 B:@Builder

        // return List.of(

        //   ClamNoticeDataListResBean.builder()

        //     .noticeId("MOCK-001").title("這是假的通知").status("UNREAD")

        //     .createTime("2025-11-07T10:00:00Z").build()

        // );

        //

        // 版本 C:record

        // return List.of(new ClamNoticeDataListResBean("MOCK-001","這是假的通知","UNREAD","2025-11-07T10:00:00Z"));

    }



    @Override

    public String getClamNoticePdf(ClamNotePdfReqBean clamNotePdfReqBean) throws ApiException {

        // 回傳固定字串即可(例如 Base64、或假 URL)

        return "MOCK_PDF_BASE64_OR_URL";

    }

}

🔐 Base64 編碼內容

cGFja2FnZSA85L2g55qEcGFja2FnZT47IC8vIOaUvuWSjCBDbGFtTm90ZVNlcnZpY2Ug55u45ZCM55qEIHBhY2thZ2UKCgoKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC5hdXRvY29uZmlndXJlLmNvbmRpdGlvbi5Db25kaXRpb25hbE9uUHJvcGVydHk7CgppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0LmFubm90YXRpb24uUHJpbWFyeTsKCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKCmltcG9ydCBqYXZhLnV0aWwuKjsKCgoKQFNlcnZpY2UKCkBQcmltYXJ5CgpAQ29uZGl0aW9uYWxPblByb3BlcnR5KG5hbWUgPSAibW9jayIsIGhhdmluZ1ZhbHVlID0gInRydWUiKQoKcHVibGljIGNsYXNzIE1vY2tDbGFtTm90ZVNlcnZpY2UgaW1wbGVtZW50cyBDbGFtTm90ZVNlcnZpY2UgewoKCgogICAgQE92ZXJyaWRlCgogICAgcHVibGljIENsYW1Ob3RpY2VEYXRhQ291bnRSZXNCZWFuIGdldENsYW1Ob3RpY2VEYXRhQ291bnQoQ2xhbU5vdGVSZXFCZWFuIG5vdGljZURhdGFDb3VudFJlcUJlYW4pIHRocm93cyBBcGlFeGNlcHRpb24gewoKICAgICAgICAvLyDniYjmnKwgQe+8muiLpeaYryBzZXR0ZXIg6aKo5qC877yI5pyJ54Sh5Y+D5pW45bu65qeL5a2Q77yJCgogICAgICAgIENsYW1Ob3RpY2VEYXRhQ291bnRSZXNCZWFuIHJlcyA9IG5ldyBDbGFtTm90aWNlRGF0YUNvdW50UmVzQmVhbigpOwoKICAgICAgICAvLyByZXMuc2V0VG90YWwoMyk7IHJlcy5zZXRVbnJlYWQoMSk7IHJlcy5zZXRSZWFkKDIpOyAvLyDihpAg55So5L2g55qE5qyE5L2N5ZCN5aGrCgogICAgICAgIHJldHVybiByZXM7CgoKCiAgICAgICAgLy8g54mI5pysIELvvJroi6XmmK8gTG9tYm9rIEBCdWlsZGVyCgogICAgICAgIC8vIHJldHVybiBDbGFtTm90aWNlRGF0YUNvdW50UmVzQmVhbi5idWlsZGVyKCkKCiAgICAgICAgLy8gICAgICAgICAudG90YWwoMykudW5yZWFkKDEpLnJlYWQoMikKCiAgICAgICAgLy8gICAgICAgICAuYnVpbGQoKTsKCgoKICAgICAgICAvLyDniYjmnKwgQ++8muiLpeaYryByZWNvcmQKCiAgICAgICAgLy8gcmV0dXJuIG5ldyBDbGFtTm90aWNlRGF0YUNvdW50UmVzQmVhbigzLCAxLCAyKTsKCiAgICB9CgoKCiAgICBAT3ZlcnJpZGUKCiAgICBwdWJsaWMgTGlzdDxDbGFtTm90aWNlRGF0YUxpc3RSZXNCZWFuPiBnZXRDbGFtTm90aWNlTGlzdChDbGFtTm90ZVJlcUJlYW4gbm90aWNlRGF0YUxpc3RSZXFCZWFuKSB0aHJvd3MgQXBpRXhjZXB0aW9uIHsKCiAgICAgICAgLy8g54mI5pysIEHvvJpzZXR0ZXIg6aKo5qC8CgogICAgICAgIENsYW1Ob3RpY2VEYXRhTGlzdFJlc0JlYW4gaXRlbSA9IG5ldyBDbGFtTm90aWNlRGF0YUxpc3RSZXNCZWFuKCk7CgogICAgICAgIC8vIGl0ZW0uc2V0Tm90aWNlSWQoIk1PQ0stMDAxIik7CgogICAgICAgIC8vIGl0ZW0uc2V0VGl0bGUoIumAmeaYr+WBh+eahOmAmuefpSIpOwoKICAgICAgICAvLyBpdGVtLnNldFN0YXR1cygiVU5SRUFEIik7CgogICAgICAgIC8vIGl0ZW0uc2V0Q3JlYXRlVGltZSgiMjAyNS0xMS0wN1QxMDowMDowMFoiKTsKCiAgICAgICAgcmV0dXJuIEFycmF5cy5hc0xpc3QoaXRlbSk7CgoKCiAgICAgICAgLy8g54mI5pysIELvvJpAQnVpbGRlcgoKICAgICAgICAvLyByZXR1cm4gTGlzdC5vZigKCiAgICAgICAgLy8gICBDbGFtTm90aWNlRGF0YUxpc3RSZXNCZWFuLmJ1aWxkZXIoKQoKICAgICAgICAvLyAgICAgLm5vdGljZUlkKCJNT0NLLTAwMSIpLnRpdGxlKCLpgJnmmK/lgYfnmoTpgJrnn6UiKS5zdGF0dXMoIlVOUkVBRCIpCgogICAgICAgIC8vICAgICAuY3JlYXRlVGltZSgiMjAyNS0xMS0wN1QxMDowMDowMFoiKS5idWlsZCgpCgogICAgICAgIC8vICk7CgogICAgICAgIC8vCgogICAgICAgIC8vIOeJiOacrCBD77yacmVjb3JkCgogICAgICAgIC8vIHJldHVybiBMaXN0Lm9mKG5ldyBDbGFtTm90aWNlRGF0YUxpc3RSZXNCZWFuKCJNT0NLLTAwMSIsIumAmeaYr+WBh+eahOmAmuefpSIsIlVOUkVBRCIsIjIwMjUtMTEtMDdUMTA6MDA6MDBaIikpOwoKICAgIH0KCgoKICAgIEBPdmVycmlkZQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q2xhbU5vdGljZVBkZihDbGFtTm90ZVBkZlJlcUJlYW4gY2xhbU5vdGVQZGZSZXFCZWFuKSB0aHJvd3MgQXBpRXhjZXB0aW9uIHsKCiAgICAgICAgLy8g5Zue5YKz5Zu65a6a5a2X5Liy5Y2z5Y+v77yI5L6L5aaCIEJhc2U2NOOAgeaIluWBhyBVUkzvvIkKCiAgICAgICAgcmV0dXJuICJNT0NLX1BERl9CQVNFNjRfT1JfVVJMIjsKCiAgICB9Cgp9Cg==
返回列表 上一筆 下一筆