通知の設定


アラーム設定ビュー、ガイドバー
  • Form
  • アラートの設定
  • は、特定のWebサービスイベント(学習生成、参加申請結果、参加学習者)に関する情報を電子メールで受信するか、Web通知で受信するかを選択するために使用される.もちろん両方とも
  • を受け取ることができます
    SettingsController.java
        @GetMapping(SETTINGS_NOTIFICATIONS_URL)
        public String updateNotificationsForm(@CurrentUser Account account, Model model) {
            model.addAttribute(account);
            model.addAttribute(new Notifications(account));
            return SETTINGS_NOTIFICATIONS_VIEW_NAME;
        }
    勘定科目を表示します.
    formを入力するオブジェクトNotificationsにNotificationsタイプが作成されました.ここではaccountを使用する情報をマッピングしています.
    nullpointExceptionが表示される場合がありますので、必ず@NoArgConstructorを貼り付けてください!
    package com.yuri.studyolle.domain;
    
    import lombok.*;
    
    import javax.persistence.*;
    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.util.UUID;
    
    @Entity
    @Getter @Setter @EqualsAndHashCode(of = "id") // id만 사용하도록 함
    @Builder @AllArgsConstructor @NoArgsConstructor
    public class Account {
    
        @Id @GeneratedValue
        private Long id;
    
        @Column(unique = true)
        private String email;
    
        @Column(unique = true)
        private String nickname;
    
        private String password;
    
        private boolean emailVerified;
    
        private String emailCheckToken; // 이메일을 검색할 때 사용할 토큰값을 db에 저장해놓고 매치하는지 확인하기 위해
    
        private LocalDateTime emailCheckTokenGeneratedAt;
    
        private LocalDateTime joinedAt; // 인증이 된 사용자를 그제야 가입될 수 있도록!
    
        private String bio;
    
        private String url;
    
        private String occupation;  // 직업
    
        private String location;
    
        @Lob @Basic(fetch = FetchType.EAGER)
        private String profileImage;
    
        private boolean studyCreatedByEmail;  // study가 만들어졌다는 것을 이메일로 받을 것인지
     
        private boolean studyCreatedByWeb = true; // ... 웹으로 받을 것인지
    
        private boolean studyEnrollmentResultByEmail;  // 가입 신청 결과를 이메일로 받을 것인지
    
        private boolean studyEnrollmentResultByWeb = true;
    
        private boolean studyUpdatedByEmail; // study에 대한 업데이트를 이메일로 받을 것인지
    
        private boolean studyUpdatedByWeb = true;
    
        public void generateEmailCheckToken() {
            this.emailCheckToken = UUID.randomUUID().toString();
            this.emailCheckTokenGeneratedAt = LocalDateTime.now();
        }
    
        public void completeSignUp() {
            this.emailVerified = true;
            this.joinedAt = LocalDateTime.now();
        }
    
        public boolean isValidToken(String token) {
            return this.emailCheckToken.equals(token);
        }
    
        public boolean canSendConfirmEmail() {
            return this.emailCheckTokenGeneratedAt.isBefore(LocalDateTime.now().minusHours(1));
        }
    }
    ネットで入力したのは本物~
    本当に興味のある通知でない限り、ネットワークでしか受信できません.電子メールはfalseです.
    20220115復習
    AccountService.java
        public void updateNotifications(Account account, Notifications notifications) {
            account.setMeetCreatedByWeb(notifications.isMeetCreatedByWeb());
            account.setMeetCreatedByEmail(notifications.isMeetCreatedByEmail());
            account.setMeetUpdatedByEmail(notifications.isMeetUpdatedByEmail());
            account.setMeetUpdatedByWeb(notifications.isMeetUpdatedByWeb());
            account.setMeetEnrollmentResultByEmail(notifications.isMeetEnrollmentResultByEmail());
            account.setMeetEnrollmentResultByWeb(notifications.isMeetEnrollmentResultByWeb());
    
          
        }
    なぜオブジェクトが保存できないのか考えていましたが、最も重要なコードが漏れていることに気づきました.🙄🙄🙄🙄🙄🙄
    accountRepository.save(account);
    でもどうして.最初の値trueが無効かどうか、、、、、、
    出典:インフラストラクチャ白旗仙のSpringとJPAベースのWebアプリケーション開発