From 35177cbc623c35ced5c20724a13168b699a6556a Mon Sep 17 00:00:00 2001
From: Chen Mingyuan <ChenM53@cardiff.ac.uk>
Date: Mon, 2 Dec 2024 14:38:48 +0000
Subject: [PATCH] admin select information(service and mapper layer)

---
 .../mapper/CommonAdminHospitalMapper.java     | 40 +++++++++++++++++
 .../service/CommonAdminHospitalService.java   | 15 +++++++
 .../imp/CommonAdminHospitalServiceImp.java    | 43 +++++++++++++++++++
 3 files changed, 98 insertions(+)
 create mode 100644 src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
 create mode 100644 src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
 create mode 100644 src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java

diff --git a/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
new file mode 100644
index 0000000..9eee82c
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
@@ -0,0 +1,40 @@
+package com.cardiff.client_project.mapper;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public class CommonAdminHospitalMapper {
+
+    @Autowired
+    JdbcTemplate jdbcTemplate;
+
+    // 查询所有医院信息
+    public List<HospitalDTO> findAll() {
+        String sql = "SELECT * FROM hospital";
+        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class));
+    }
+
+    // 添加医院信息
+    public int save(HospitalDTO hospital) {
+        String sql = "INSERT INTO hospital (name, location, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
+        return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
+    }
+
+    // 更新医院信息
+    public int update(HospitalDTO hospital) {
+        String sql = "UPDATE hospital SET name=?, location=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
+        return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
+    }
+
+    // 根据 ID 删除医院信息
+    public int deleteById(int id) {
+        String sql = "DELETE FROM hospital WHERE id=?";
+        return jdbcTemplate.update(sql, id);
+    }
+}
diff --git a/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
new file mode 100644
index 0000000..9981461
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
@@ -0,0 +1,15 @@
+package com.cardiff.client_project.service;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+
+import java.util.List;
+
+public interface CommonAdminHospitalService {
+    List<HospitalDTO> getAllHospitals();
+
+    void addHospital(HospitalDTO hospital);
+
+    void updateHospital(HospitalDTO hospital);
+
+    void deleteHospital(int id);
+}
diff --git a/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
new file mode 100644
index 0000000..90a14b5
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
@@ -0,0 +1,43 @@
+package com.cardiff.client_project.service.imp;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+import com.cardiff.client_project.service.CommonAdminHospitalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    @Override
+    public List<HospitalDTO> getAllHospitals() {
+        String sql = "SELECT * FROM hospital";
+        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class));
+    }
+
+    @Override
+    public void addHospital(HospitalDTO hospital) {
+        String sql = "INSERT INTO hospital (name, location, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
+        jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(),
+                hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
+    }
+
+    @Override
+    public void updateHospital(HospitalDTO hospital) {
+        String sql = "UPDATE hospital SET name=?, location=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
+        jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(),
+                hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
+    }
+
+    @Override
+    public void deleteHospital(int id) {
+        String sql = "DELETE FROM hospital WHERE id=?";
+        jdbcTemplate.update(sql, id);
+    }
+}
-- 
GitLab