From 7b8ad61f8c99bdcdc127d6cb9b0fd07dcebf73ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 3 Apr 2025 21:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iflytop/profilometer/api/auth/AuthApi.java | 18 +++++++++++++ .../iflytop/profilometer/api/auth/AuthRoutes.kt | 4 +++ .../iflytop/profilometer/api/record/RecordApi.java | 16 ++++++++++- .../profilometer/api/record/RecordRoutes.kt | 5 ++++ .../profilometer/core/system/SystemState.java | 31 ++++++++++++++++++++++ 5 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/iflytop/profilometer/core/system/SystemState.java diff --git a/app/src/main/java/com/iflytop/profilometer/api/auth/AuthApi.java b/app/src/main/java/com/iflytop/profilometer/api/auth/AuthApi.java index 556a5f2..d8953e8 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/auth/AuthApi.java +++ b/app/src/main/java/com/iflytop/profilometer/api/auth/AuthApi.java @@ -3,6 +3,7 @@ package com.iflytop.profilometer.api.auth; import android.content.Context; import com.iflytop.profilometer.common.result.Result; +import com.iflytop.profilometer.core.system.SystemState; import com.iflytop.profilometer.dao.UserDao; import com.iflytop.profilometer.model.entity.AppUser; @@ -23,9 +24,26 @@ public class AuthApi { UserDao userDao = new UserDao(context); AppUser user = userDao.login(username, password); if (user != null) { + SystemState.getInstance().setCurrentUser(user); return Result.success(user); } else { return Result.failed(); } } + + /** + * 登出 + */ + public String logout() { + SystemState.getInstance().setCurrentUser(null); + return Result.success(); + } + + /** + * 获取当前登录用户 + */ + public String current() { + AppUser user = SystemState.getInstance().getCurrentUser(); + return Result.success(user); + } } diff --git a/app/src/main/java/com/iflytop/profilometer/api/auth/AuthRoutes.kt b/app/src/main/java/com/iflytop/profilometer/api/auth/AuthRoutes.kt index f2d272d..da10079 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/auth/AuthRoutes.kt +++ b/app/src/main/java/com/iflytop/profilometer/api/auth/AuthRoutes.kt @@ -24,12 +24,16 @@ fun Routing.authRoutes(context: Context) { * 登出 */ post("/api/auth/logout") { + val jsonResponse = api.logout() + call.respondText(jsonResponse, ContentType.Application.Json) } /** * 获取当前登录用户 */ post("/api/auth/current") { + val jsonResponse = api.current() + call.respondText(jsonResponse, ContentType.Application.Json) } } diff --git a/app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java b/app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java index aef4aa3..4543ced 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java +++ b/app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java @@ -11,6 +11,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import cn.hutool.json.JSONArray; + /** * 测量记录接口 */ @@ -35,9 +37,21 @@ public class RecordApi { /** * 测量记录详情 */ - public String detail(Long id){ + public String detail(Long id) { ProfileRecordPointSetDao profileRecordPointSetDao = new ProfileRecordPointSetDao(context); ProfileRecordPointSet pointSet = profileRecordPointSetDao.getProfileRecordPointSetById(id); return Result.success(pointSet); } + + /** + * 删除测量记录 + */ + public String delete(JSONArray ids) { + ProfileRecordDao profileRecordDao = new ProfileRecordDao(context); + for (int i = 0; i < ids.size(); i++) { + Long id = ids.getLong(i); + profileRecordDao.deleteProfileRecord(id); + } + return Result.success(); + } } diff --git a/app/src/main/java/com/iflytop/profilometer/api/record/RecordRoutes.kt b/app/src/main/java/com/iflytop/profilometer/api/record/RecordRoutes.kt index 059bd2b..c215dba 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/record/RecordRoutes.kt +++ b/app/src/main/java/com/iflytop/profilometer/api/record/RecordRoutes.kt @@ -43,6 +43,11 @@ fun Routing.recordRoutes(context: Context) { * 删除测量记录 */ post("/api/record/delete") { + val requestBody = call.receiveText() + val jsonObj = JSONUtil.parseObj(requestBody) + val ids = jsonObj.getJSONArray("ids") + val jsonResponse = api.delete(ids) + call.respondText(jsonResponse, ContentType.Application.Json) } } diff --git a/app/src/main/java/com/iflytop/profilometer/core/system/SystemState.java b/app/src/main/java/com/iflytop/profilometer/core/system/SystemState.java new file mode 100644 index 0000000..c037318 --- /dev/null +++ b/app/src/main/java/com/iflytop/profilometer/core/system/SystemState.java @@ -0,0 +1,31 @@ +package com.iflytop.profilometer.core.system; + +import com.iflytop.profilometer.model.entity.AppUser; + +/** + * 全局系统状态 + */ +public class SystemState { + private SystemState() { + } + + private static final SystemState instance = new SystemState(); + + // 提供获取单例实例的全局访问点 + public static SystemState getInstance() { + return instance; + } + + /** + * 系统当前登录用户 + */ + private AppUser currentUser; + + public synchronized AppUser getCurrentUser() { + return currentUser; + } + + public synchronized void setCurrentUser(AppUser currentUser) { + this.currentUser = currentUser; + } +}