diff --git a/app.db b/app.db index a4b9ca8..7219975 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/com/iflytop/digester/underframework/controller/UfApiNotification.java b/src/main/java/com/iflytop/digester/underframework/controller/UfApiNotification.java new file mode 100644 index 0000000..2407dc6 --- /dev/null +++ b/src/main/java/com/iflytop/digester/underframework/controller/UfApiNotification.java @@ -0,0 +1,26 @@ +package com.iflytop.digester.underframework.controller; +import com.iflytop.digester.underframework.dao.model.UfMdbNotification; +import com.iflytop.digester.underframework.dao.record.UfActiveRecord; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import java.util.Map; +@Controller +public class UfApiNotification extends UfApiControllerBase { + @ResponseBody + @PostMapping("/api/notification/fetch-one") + public UfApiResponse notificationFetchOne() { + var notification = UfActiveRecord.findOne(UfMdbNotification.class, Map.of("status", "new")); + return this.success(notification); + } + + @ResponseBody + @PostMapping("/api/notification/mark-read") + public UfApiResponse notificationMarkRead(@RequestBody UfMdbNotification notification) { + notification.reload(); + notification.status = "read"; + notification.save(); + return this.success(); + } +} diff --git a/src/main/java/com/iflytop/digester/underframework/dao/record/UfActiveRecord.java b/src/main/java/com/iflytop/digester/underframework/dao/record/UfActiveRecord.java index b3604cf..c87e991 100644 --- a/src/main/java/com/iflytop/digester/underframework/dao/record/UfActiveRecord.java +++ b/src/main/java/com/iflytop/digester/underframework/dao/record/UfActiveRecord.java @@ -202,4 +202,17 @@ public class UfActiveRecord { } return data; } + + // reload model + public void reload() { + if ( null == this.id ) { + throw new RuntimeException("Model id is null"); + } + var model = UfActiveRecord.findOne(this.getClass(), this.id); + if ( null == model ) { + throw new RuntimeException("Model not found: " + this.id); + } + this.setAttributes(model.toMap()); + this.isNewRecord = false; + } } diff --git a/web b/web index 5a0d772..1281f43 160000 --- a/web +++ b/web @@ -1 +1 @@ -Subproject commit 5a0d77238339189b0fc83e950c0f12d02fff9d2d +Subproject commit 1281f43be8a5de2f98d83c2a32506bb878eb5495