From 8a42e4d667b7e4f05ba32be37dc6eb015995d35f Mon Sep 17 00:00:00 2001 From: qmstyle Date: Mon, 17 Mar 2025 17:54:50 +0800 Subject: [PATCH] =?UTF-8?q?2025=E5=B9=B43=E6=9C=8817=E6=97=A517:54:40?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/exam/ui/api/ApiUtils.java | 10 +- .../ui/api/model/QuestionOptionDataLoad.java | 109 ++++++++++++++++++ .../exam/ui/api/model/SubjectDataLoad.java | 109 ++++++++++++++++++ .../online/exam/ui/layouts/SideMenu.java | 1 + 4 files changed, 225 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java create mode 100644 src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java index 9392427..0bcc99b 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java @@ -9,10 +9,7 @@ import com.alibaba.fastjson.JSONObject; import com.zhangmeng.online.exam.ui.api.form.RoleForm; import com.zhangmeng.online.exam.ui.api.form.UserForm; -import com.zhangmeng.online.exam.ui.api.model.PermissionDataLoad; -import com.zhangmeng.online.exam.ui.api.model.QuestionDataLoad; -import com.zhangmeng.online.exam.ui.api.model.RoleDataLoad; -import com.zhangmeng.online.exam.ui.api.model.UserDataLoad; +import com.zhangmeng.online.exam.ui.api.model.*; import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBack; import com.zhangmeng.online.exam.ui.layouts.SideMenu; import com.zhangmeng.online.exam.ui.utils.HttpUtils; @@ -84,6 +81,11 @@ public class ApiUtils { return dataLoad.loadData(PAGE_NUM,PAGE_SIZE); } + public static DataView getSubjectList() { + DataLoad dataLoad = new SubjectDataLoad(); + return dataLoad.loadData(PAGE_NUM,PAGE_SIZE); + } + public static class DataView { private List keys; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java new file mode 100644 index 0000000..f07bd27 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java @@ -0,0 +1,109 @@ +package com.zhangmeng.online.exam.ui.api.model; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.api.form.UserForm; +import com.zhangmeng.online.exam.ui.utils.AlertUtils; +import com.zhangmeng.online.exam.ui.utils.HttpUtils; +import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; +import javafx.stage.Stage; + +import java.util.*; + +/** + * @author zm + * @date 2025/3/17 17:51 + * @version: 1.0 + */ +public class QuestionOptionDataLoad implements DataLoad { + + private Parent form; + + @Override + public ApiUtils.DataView loadData(Integer pageNum, Integer pageSize) { + Map params = new HashMap<>(); + params.put("pageNum", pageNum.toString()); + params.put("pageSize", pageSize.toString()); + String userListData = HttpUtils.GET(ApiUtils.API_URL + "/option/list", params); + JSONObject jsonObject = JSON.parseObject(userListData); + JSONArray data = jsonObject.getJSONArray("data"); + int total = jsonObject.getIntValue("total"); + List> userMapList = new ArrayList<>(); + for (Object datum : data) { + JSONObject user = (JSONObject) datum; + Map userMap = new HashMap<>(); + userMap.put("序号", new SimpleStringProperty(user.getString("id"))); + userMap.put("用户名", new SimpleStringProperty(user.getString("username"))); + userMap.put("手机号码", new SimpleStringProperty(user.getString("phone"))); + userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email"))); + userMap.put("id", new SimpleStringProperty(user.getString("id"))); + userMapList.add(userMap); + } + + ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "用户名","手机号码", "电子邮箱" ), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); + dataView.setDataLoad(this); + return dataView; + } + + @Override + public void setForm(Parent view) { + this.form = view; + } + + @Override + public Parent getForm() { + return this.form; + } + + @Override + public Map saveForm(Map map) { + String result = HttpUtils.POST(ApiUtils.API_URL + "/user/save", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("保存成功!"); + }else { + AlertUtils.alert_warning("保存失败!"); + } + return null; + } + + @Override + public void deleteData(String id) { + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.POST(ApiUtils.API_URL + "/user/delete", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("删除成功!"); + }else { + AlertUtils.alert_warning("删除失败!"); + } + } + + @Override + public void editData(String id, Stage stage) { + + UserForm userForm = new UserForm(); + + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.GET(ApiUtils.API_URL + "/user/getUser", map); + JSONObject jsonObject = JSON.parseObject(result); + JSONObject data = jsonObject.getJSONObject("data"); + String username = data.getString("username"); + userForm.getUsername_field().setText(username); + String email = data.getString("email"); + userForm.getEmail_field().setText(email); + String phone = data.getString("phone"); + userForm.getPhone_field().setText(phone); + String password = data.getString("password"); + userForm.getPassword_field().setText(password); + AlertUtils.alert("编辑用户信息", (Parent) userForm, stage); + } + + +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java new file mode 100644 index 0000000..86f8c20 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java @@ -0,0 +1,109 @@ +package com.zhangmeng.online.exam.ui.api.model; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.api.form.UserForm; +import com.zhangmeng.online.exam.ui.utils.AlertUtils; +import com.zhangmeng.online.exam.ui.utils.HttpUtils; +import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; +import javafx.stage.Stage; + +import java.util.*; + +/** + * @author zm + * @date 2025/3/17 16:39 + * @version: 1.0 + */ +public class SubjectDataLoad implements DataLoad { + + private Parent form; + + @Override + public ApiUtils.DataView loadData(Integer pageNum, Integer pageSize) { + Map params = new HashMap<>(); + params.put("pageNum", pageNum.toString()); + params.put("pageSize", pageSize.toString()); + String userListData = HttpUtils.GET(ApiUtils.API_URL + "/subject/list", params); + JSONObject jsonObject = JSON.parseObject(userListData); + JSONArray data = jsonObject.getJSONArray("data"); + int total = jsonObject.getIntValue("total"); + List> userMapList = new ArrayList<>(); + for (Object datum : data) { + JSONObject user = (JSONObject) datum; + Map userMap = new HashMap<>(); + userMap.put("序号", new SimpleStringProperty(user.getString("id"))); + userMap.put("学科名称", new SimpleStringProperty(user.getString("name"))); + userMap.put("学科代码", new SimpleStringProperty(user.getString("code"))); + userMap.put("学科描述", new SimpleStringProperty(user.getString("description"))); + userMap.put("id", new SimpleStringProperty(user.getString("id"))); + userMapList.add(userMap); + } + + ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "学科名称", "学科代码", "学科描述" ), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); + dataView.setDataLoad(this); + return dataView; + } + + @Override + public void setForm(Parent view) { + this.form = view; + } + + @Override + public Parent getForm() { + return this.form; + } + + @Override + public Map saveForm(Map map) { + String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/save", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("保存成功!"); + }else { + AlertUtils.alert_warning("保存失败!"); + } + return null; + } + + @Override + public void deleteData(String id) { + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/delete", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("删除成功!"); + }else { + AlertUtils.alert_warning("删除失败!"); + } + } + + @Override + public void editData(String id,Stage stage) { + + UserForm userForm = new UserForm(); + + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.GET(ApiUtils.API_URL + "/subject/getUser", map); + JSONObject jsonObject = JSON.parseObject(result); + JSONObject data = jsonObject.getJSONObject("data"); + String username = data.getString("username"); + userForm.getUsername_field().setText(username); + String email = data.getString("email"); + userForm.getEmail_field().setText(email); + String phone = data.getString("phone"); + userForm.getPhone_field().setText(phone); + String password = data.getString("password"); + userForm.getPassword_field().setText(password); + AlertUtils.alert("编辑用户信息", (Parent) userForm, stage); + } + + +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java index 1cae559..5e86b1b 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java @@ -129,6 +129,7 @@ public class SideMenu extends VBox { case "/role/list" -> init_table(hbox, ApiUtils.getRoleList()); case "/permission/list" -> init_table(hbox, ApiUtils.getPermissionList()); case "/question/list" -> init_table(hbox, ApiUtils.getQuestionList()); + case "/subject/list" -> init_table(hbox, ApiUtils.getSubjectList()); } });