Skip to content
Snippets Groups Projects
Commit b91d3344 authored by Yulong Wang's avatar Yulong Wang
Browse files

Merge branch...

Merge branch '20-as-a-user-when-i-login-this-system-i-want-to-have-a-page-to-show-information-so-that-i-can' into 'main'

Show and search hospitals and device

Closes #20

See merge request !60
parents c570f004 37e33a9c
No related branches found
No related tags found
1 merge request!60Show and search hospitals and device
Showing
with 750 additions and 226 deletions
package com.cardiff.client_project.controller;
import com.cardiff.client_project.service.DeviceService;
import com.cardiff.client_project.service.HospitalService;
import com.cardiff.client_project.service.SuperAdminService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@Controller
......@@ -14,6 +16,10 @@ public class ViewController {
@Autowired
private SuperAdminService superAdminService;
@Autowired
private HospitalService hospitalService;
@Autowired
private DeviceService deviceService;
@GetMapping("/loadLeft")
public String loadLeftView() {
......@@ -21,6 +27,11 @@ public class ViewController {
return "leftView";
}
@GetMapping("/loadLeft2")
public String loadLeftView2() {
return "leftView2";
}
@GetMapping("/defaultLoadMain")
public String loadMainView_1(Model model) {
Result result = superAdminService.selectAllAdmin();
......@@ -39,8 +50,24 @@ public class ViewController {
// System.out.println("result"+result.getData());
return "mainHospitalView";
}
@GetMapping("/beds")
public String bedsView() {
return "beds";
@GetMapping("/deviceLoadMain/{hospitalId}")
public String loadMainView_4(Model model, @PathVariable int hospitalId) {
Result result = deviceService.selectAllDevice(hospitalId);
System.out.println("result" + result.getData());
model.addAttribute("tableData", result.getData());
return "mainDeviceView";
}
@GetMapping("/hospitalLoadMain2")
public String loadMainView_3(Model model) {
System.out.println("hospitalLoadMain2");
//System.out.println("loadMainView_2");
Result result = superAdminService.selectAllHospital();
// Add data to the model
System.out.println("result"+result.getData());
model.addAttribute("tableData", result.getData());
// System.out.println("result"+result.getData());
return "mainHospitalView2";
}
}
package com.cardiff.client_project.controller.admin;
import com.cardiff.client_project.pojo.dto.SelectDTO;
import com.cardiff.client_project.pojo.dto.SignUserDTO;
import com.cardiff.client_project.service.HospitalAdminService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/hospitalAdmin")
public class HospitalAdminController {
@Autowired
private HospitalAdminService hospitalAdminService;
/**
* fuzzy query
* @param
* @return
*/
@PostMapping("/select")
public Result selectByItem(@RequestBody SelectDTO selectDTO){
System.out.println(selectDTO);
Result result = hospitalAdminService.selectByItem(selectDTO);
return result;
}
}
package com.cardiff.client_project.controller.device;
import com.cardiff.client_project.pojo.entity.Device;
import com.cardiff.client_project.pojo.entity.Patient;
import com.cardiff.client_project.service.DeviceService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/device")
public class DeviceController {
@Autowired
private DeviceService deviceService;
/**
* select all
*
* @return
*/
@PostMapping("/selectAll")
public Result SelectAll(int hospitalId) {
Result result = deviceService.selectAllDevice(hospitalId);
return result;
}
/**
* fuzzy query
*
* @param
* @return
*/
@PostMapping("/select")
public Result selectByItem(@RequestBody Device device) {
System.out.println(device);
Result result = deviceService.selectByItem(device);
return result;
}
}
package com.cardiff.client_project.controller.hospital;
import com.cardiff.client_project.pojo.dto.HospitalDTO;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.service.HospitalService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/hospitals")
@PreAuthorize("hasAnyRole('ADMIN', 'HOSPITAL', 'SUPER')")
@RequestMapping("/hospital")
public class HospitalController {
@Autowired
private HospitalService hospitalService;
@GetMapping("/available")
public Result getAvailableBeds(
@RequestParam(required = false, defaultValue = "") String name) {
return hospitalService.getAvailableBeds(name);
/**
* select all
*
* @return
*/
@PostMapping("/selectAll")
public Result SelectAll() {
Result result = hospitalService.selectAllHospital();
return result;
}
@PostMapping
public Result addHospital(@RequestBody HospitalDTO hospitalDTO) {
return hospitalService.insertHospitalInfo(hospitalDTO);
}
@PutMapping("/{id}")
public Result updateHospital(@PathVariable Integer id, @RequestBody HospitalDTO hospitalDTO) {
hospitalDTO.setId(id);
return hospitalService.updateHospital(hospitalDTO);
}
@DeleteMapping
public Result deleteHospitals(@RequestBody List<Integer> ids) {
return hospitalService.deleteHospitalById(ids);
}
@GetMapping
public Result getAllHospitals() {
return hospitalService.getAllHospitals();
/**
* fuzzy query
*
* @param
* @return
*/
@PostMapping("/select")
public Result selectByItem(@RequestBody Hospital hospital) {
System.out.println(hospital);
Result result = hospitalService.selectByItem(hospital);
return result;
}
}
package com.cardiff.client_project.mapper;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.pojo.entity.Device;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository
public class DeviceMapper {
@Autowired
JdbcTemplate jdbcTemplate;
/**
* select device
* @return
*/
public List<Device> selectAllDevice(int hospitalId){
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM device WHERE hospitalId = ?";
List<Device> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Device.class), hospitalId);
System.out.println(query);
return query;
}
/**
* fuzzy query
* @param device
* @return
*/
public List<Device> selectByItem(Device device) {
System.out.println("test:" + device);
// Build the basic SQL and parameter list
StringBuilder sql = new StringBuilder("SELECT * FROM device");
//Dynamic table name stitching
sql.append(" WHERE 1=1 ");
List<Object> params = new ArrayList<>();
//Dynamic concatenation of query conditions
if (device.getName() != null && device.getName() != "") {
sql.append(" AND name LIKE ?");
params.add("%" + device.getName() + "%");
}
if (device.getType() != null && device.getType() != "") {
sql.append(" AND type LIKE ?");
params.add("%" + device.getType() + "%");
}
System.out.println("sql: "+sql.toString());
List<Device> query = jdbcTemplate.query(sql.toString(), params.toArray(), new BeanPropertyRowMapper<>(Device.class));
System.out.println("query" + query);
return query;
}
/**
* Query data by name
* @param name
* @return
*/
public Object getDeviceByName(String name){
try {
// 1. 查询 device 表
String sql = "select * from device where name=?";
return jdbcTemplate.queryForObject(sql, new Object[]{name}, new BeanPropertyRowMapper<>(Device.class));
} catch (Exception e) {
e.printStackTrace();
}
// 如果所有查询都为空,返回 null
return null;
}
}
package com.cardiff.client_project.mapper;
import com.cardiff.client_project.constant.Authority;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.pojo.dto.SelectDTO;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.vo.HospitalAdminVO;
import com.cardiff.client_project.pojo.vo.SelectVO;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository
public class HospitalAdminMapper {
@Autowired
JdbcTemplate jdbcTemplate;;
/**
* select admin
* @return
*/
public List<HospitalAdminVO> selectAllAdmin() {
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM common_admin ORDER BY status DESC";
List<HospitalAdminVO> query = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(HospitalAdminVO.class));
return query;
}
/**
* select hospital
* @return
*/
public List<Hospital> selectAllHospital(){
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM hospital ORDER BY status DESC";
List<Hospital> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Hospital.class));
System.out.println(query);
return query;
}
/**
* fuzzy query
* @param selectDTO
* @return
*/
public List<SelectVO> selectByItem(SelectDTO selectDTO) {
System.out.println("test:"+selectDTO);
// Get query type
String type = selectDTO.getType();
// Build the basic SQL and parameter list
StringBuilder sql = new StringBuilder("SELECT * FROM");
if(type.contains("hospital")){
sql.append(" hospital ");
}
//Dynamic table name stitching
sql.append(" WHERE 1=1 ");
List<Object> params = new ArrayList<>();
//Dynamic concatenation of query conditions
if (selectDTO.getName() != null && selectDTO.getName()!="") {
sql.append(" AND name LIKE ?");
params.add("%" + selectDTO.getName() + "%");
}
if (selectDTO.getPhone() != null && selectDTO.getPhone()!="") {
sql.append(" AND phone LIKE ?");
params.add("%" + selectDTO.getPhone() + "%");
}
if (selectDTO.getAddress() != null && selectDTO.getAddress()!="") {
sql.append(" AND address LIKE ?");
params.add("%" + selectDTO.getAddress() + "%");
}
if (Integer.valueOf(selectDTO.getStatus())!=null) {
sql.append(" AND status = ?, ");
params.add(selectDTO.getStatus());
}
sql.setLength(sql.length() - 2);
System.out.println("sql: "+sql.toString());
List<SelectVO> query = jdbcTemplate.query(sql.toString(), params.toArray(), new BeanPropertyRowMapper<>(SelectVO.class));
System.out.println("quert"+query);
return query;
}
/**
* Query data by name
* @param username
* @return
*/
public Object getInforByName(String username){
try {
// 1. 查询 hospital 表
String sql = "select * from hospital where email=?";
return jdbcTemplate.queryForObject(sql, new Object[]{username}, new BeanPropertyRowMapper<>(Hospital.class));
} catch (Exception s) {
}
// 如果所有查询都为空,返回 null
return null;
}
/**
* Get role permissions based on id
* @param roleId
* @return
*/
public String getTypeById(int roleId) {
String sql="SELECT type from role where roleId=?;";
String type= jdbcTemplate.queryForObject(sql, new Object[]{roleId}, String.class);
return type;
}
}
package com.cardiff.client_project.mapper;
import com.cardiff.client_project.pojo.dto.HospitalDTO;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;
@Repository
public class HospitalMapper {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<HospitalDTO> findAvailableBeds(String name, String location, Integer minBeds) {
String sql = """
SELECT
h.id AS hospital_id,
h.name AS hospital_name,
h.address AS location,
h.phone,
h.maxAmount AS total_beds,
(h.maxAmount - h.amountPatient) AS available_beds,
ROUND(((h.amountPatient * 1.0) / h.maxAmount * 100), 1) AS occupancy_rate
FROM
hospital h
WHERE
h.status = 1
AND (h.maxAmount - h.amountPatient) > ?
AND (? IS NULL OR h.name LIKE ?)
AND (? IS NULL OR h.address LIKE ?)
ORDER BY
available_beds DESC,
occupancy_rate ASC
""";
return jdbcTemplate.query(sql,
ps -> {
int paramIndex = 1;
ps.setInt(paramIndex++, minBeds != null ? minBeds : 0);
ps.setString(paramIndex++, name);
ps.setString(paramIndex++, name != null ? "%" + name + "%" : "%");
ps.setString(paramIndex++, location);
ps.setString(paramIndex++, location != null ? "%" + location + "%" : "%");
},
(rs, rowNum) -> {
HospitalDTO hospital = new HospitalDTO();
hospital.setId(rs.getInt("hospital_id"));
hospital.setName(rs.getString("hospital_name"));
hospital.setLocation(rs.getString("location"));
hospital.setPhone(rs.getString("phone"));
hospital.setTotalBeds(rs.getInt("total_beds"));
hospital.setAvailableBeds(rs.getInt("available_beds"));
hospital.setOccupancyRate(rs.getDouble("occupancy_rate"));
return hospital;
});
}
JdbcTemplate jdbcTemplate;
public int insertHospital(HospitalDTO hospitalDTO) {
String sql = """
INSERT INTO hospital (name, address, phone, maxAmount, amountPatient, status)
VALUES (?, ?, ?, ?, 0, 1)
""";
return jdbcTemplate.update(sql,
hospitalDTO.getName(),
hospitalDTO.getLocation(),
hospitalDTO.getPhone(),
hospitalDTO.getTotalBeds()
);
/**
* select hospital
* @return
*/
public List<Hospital> selectAllHospital(){
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM hospital";
List<Hospital> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Hospital.class));
System.out.println(query);
return query;
}
public int updateHospital(HospitalDTO hospitalDTO) {
String sql = """
UPDATE hospital
SET name = ?,
address = ?,
phone = ?,
maxAmount = ?
WHERE id = ?
""";
return jdbcTemplate.update(sql,
hospitalDTO.getName(),
hospitalDTO.getLocation(),
hospitalDTO.getPhone(),
hospitalDTO.getTotalBeds(),
hospitalDTO.getId()
);
}
public int[] deleteHospitalByIds(List<Integer> ids) {
String sql = "DELETE FROM hospital WHERE id = ?";
List<Object[]> batchArgs = ids.stream()
.map(id -> new Object[]{id})
.collect(Collectors.toList());
return jdbcTemplate.batchUpdate(sql, batchArgs);
/**
* fuzzy query
* @param hospital
* @return
*/
public List<Hospital> selectByItem(Hospital hospital) {
System.out.println("test:" + hospital);
// Build the basic SQL and parameter list
StringBuilder sql = new StringBuilder("SELECT * FROM hospital");
//Dynamic table name stitching
sql.append(" WHERE 1=1 ");
List<Object> params = new ArrayList<>();
//Dynamic concatenation of query conditions
if (hospital.getName() != null && hospital.getName() != "") {
sql.append(" AND name LIKE ?");
params.add("%" + hospital.getName() + "%");
}
if (hospital.getPhone() != null && hospital.getPhone() != "") {
sql.append(" AND phone LIKE ?");
params.add("%" + hospital.getPhone() + "%");
}
if (hospital.getAddress() != null && hospital.getAddress() != "") {
sql.append(" AND address LIKE ?");
params.add("%" + hospital.getAddress() + "%");
}
if (Integer.valueOf(hospital.getStatus()) != null) {
sql.append(" AND status = ?, ");
params.add(hospital.getStatus());
}
sql.setLength(sql.length() - 2);
System.out.println("sql: " + sql.toString());
List<Hospital> query = jdbcTemplate.query(sql.toString(), params.toArray(), new BeanPropertyRowMapper<>(Hospital.class));
System.out.println("quert" + query);
return query;
}
public List<HospitalDTO> findAllHospitals() {
String sql = """
SELECT
h.id AS hospital_id,
h.name AS hospital_name,
h.address AS location,
h.phone,
h.maxAmount AS total_beds,
(h.maxAmount - h.amountPatient) AS available_beds,
ROUND(((h.amountPatient * 1.0) / h.maxAmount * 100), 1) AS occupancy_rate
FROM hospital h
WHERE h.status = 1
ORDER BY h.name
""";
return jdbcTemplate.query(sql, (rs, rowNum) -> {
HospitalDTO hospital = new HospitalDTO();
hospital.setId(rs.getInt("hospital_id"));
hospital.setName(rs.getString("hospital_name"));
hospital.setLocation(rs.getString("location"));
hospital.setPhone(rs.getString("phone"));
hospital.setTotalBeds(rs.getInt("total_beds"));
hospital.setAvailableBeds(rs.getInt("available_beds"));
hospital.setOccupancyRate(rs.getDouble("occupancy_rate"));
return hospital;
});
/**
* Query data by name
* @param name
* @return
*/
public Object getHospitalByName(String name){
try {
// 1. 查询 hospital 表
String sql = "select * from hospital where name=?";
return jdbcTemplate.queryForObject(sql, new Object[]{name}, new BeanPropertyRowMapper<>(Hospital.class));
} catch (Exception e) {
e.printStackTrace();
}
// 如果所有查询都为空,返回 null
return null;
}
public int updateBedCount(int hospitalId, int currentPatients) {
String sql = """
UPDATE hospital
SET amountPatient = ?
WHERE id = ?
AND maxAmount >= ?
""";
return jdbcTemplate.update(sql,
currentPatients,
hospitalId,
currentPatients);
/**
* Get role permissions based on id
* @param roleId
* @return
*/
public String getTypeById(int roleId) {
String sql="SELECT type from role where roleId=?;";
String type= jdbcTemplate.queryForObject(sql, new Object[]{roleId}, String.class);
return type;
}
}
\ No newline at end of file
......@@ -11,4 +11,4 @@ public class HospitalDTO {
private int totalBeds;
private int availableBeds;
private double occupancyRate;
}
\ No newline at end of file
}
package com.cardiff.client_project.pojo.entity;
import lombok.Data;
import lombok.ToString;
import java.sql.Date;
@Data
@ToString
public class Device {
private int id;
private int hospitalId;
private String name;
private String type;
private Date freeTime;
}
package com.cardiff.client_project.pojo.entity;
import lombok.*;
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class HospitalUser {
private String name;
private String password;
private int roleId;
}
......@@ -17,4 +17,5 @@ public class Patient {
private int age;
private String email;
private String phone;
private String status_str;
}
package com.cardiff.client_project.pojo.vo;
import lombok.Data;
import lombok.ToString;
import java.sql.Date;
@Data
@ToString
public class DeviceVO {
private int id;
private int hospitalId;
private String name;
private String type;
private Date freeTime;
}
package com.cardiff.client_project.pojo.vo;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class HospitalAdminVO {
private int id;
private String name;
private String password;
private String phone;
private String email;
private String status_str;
private int status;
}
package com.cardiff.client_project.service;
import com.cardiff.client_project.pojo.entity.Device;
import com.cardiff.client_project.utils.Result;
import java.util.List;
public interface DeviceService {
/**
* Query device information
* @return
*/
Result selectAllDevice(int hospitalId);
/**
* fuzzy query
* @param device
* @return
*/
Result selectByItem(Device device);
}
package com.cardiff.client_project.service;
import com.cardiff.client_project.pojo.dto.SelectDTO;
import com.cardiff.client_project.pojo.dto.SignUserDTO;
import com.cardiff.client_project.utils.Result;
import java.util.List;
public interface HospitalAdminService {
/**
* Query admin information
* @return
*/
Result selectAllAdmin();
/**
* Query hospital information
* @return
*/
Result selectAllHospital();
/**
* fuzzy query
* @param selectDTO
* @return
*/
Result selectByItem(SelectDTO selectDTO);
}
\ No newline at end of file
package com.cardiff.client_project.service;
import com.cardiff.client_project.pojo.dto.HospitalDTO;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.utils.Result;
import java.util.List;
public interface HospitalService {
Result getAvailableBeds(String name);
Result insertHospitalInfo(HospitalDTO hospitalDTO);
Result updateHospital(HospitalDTO hospitalDTO);
Result deleteHospitalById(List<Integer> ids);
Result getAllHospitals();
Result updateBedCount(int hospitalId, int currentPatients);
/**
* Query hospital information
* @return
*/
Result selectAllHospital();
/**
* fuzzy query
* @param hospital
* @return
*/
Result selectByItem(Hospital hospital);
}
\ No newline at end of file
......@@ -2,7 +2,9 @@ package com.cardiff.client_project.service;
import com.cardiff.client_project.mapper.SuperAdminMapper;
import com.cardiff.client_project.pojo.entity.CommonAdmin;
import com.cardiff.client_project.mapper.HospitalAdminMapper;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.entity.HospitalUser;
import com.cardiff.client_project.pojo.entity.Patient;
import com.cardiff.client_project.pojo.entity.SuperUser;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,6 +20,8 @@ public class UserLogin implements UserDetailsService {
@Autowired
SuperAdminMapper superAdminMapper;
@Autowired
HospitalAdminMapper hospitalAdminMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
......@@ -25,6 +29,7 @@ public class UserLogin implements UserDetailsService {
System.out.println(username);
Object object = superAdminMapper.getInforByName(username);
if(object instanceof SuperUser){
SuperUser inforByName = (SuperUser) object;
String type = superAdminMapper.getTypeById(inforByName.getRoleId());
......@@ -41,12 +46,19 @@ public class UserLogin implements UserDetailsService {
userDetails = User.withUsername(inforByName.getName()).password(inforByName.getPassword()).authorities(authority).build();
}
if(object instanceof HospitalUser){
HospitalUser inforByName = (HospitalUser) object;
String type = hospitalAdminMapper.getTypeById(inforByName.getRoleId());
SimpleGrantedAuthority authority = new SimpleGrantedAuthority(type);
userDetails = User.withUsername(inforByName.getName()).password(inforByName.getPassword()).authorities(authority).build();
}
if(object instanceof Hospital){
Hospital inforByName = (Hospital) object;
if(inforByName.getStatus()==0){
return User.withUsername(inforByName.getName()).password(inforByName.getPassword()).authorities(new SimpleGrantedAuthority("NULL")).build();
}
String type = superAdminMapper.getTypeById(inforByName.getRoleId());
String type = hospitalAdminMapper.getTypeById(inforByName.getRoleId());
SimpleGrantedAuthority authority = new SimpleGrantedAuthority(type);
userDetails = User.withUsername(inforByName.getName()).password(inforByName.getPassword()).authorities(authority).build();
}
......
package com.cardiff.client_project.service.imp;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.mapper.DeviceMapper;
import com.cardiff.client_project.pojo.entity.Device;
import com.cardiff.client_project.pojo.vo.DeviceVO;
import com.cardiff.client_project.service.DeviceService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class DeviceServiceImpl implements DeviceService {
@Autowired
private DeviceMapper deviceMapper;
@Override
public Result selectAllDevice(int hospitalId) {
List<Device> selectVOS = deviceMapper.selectAllDevice(hospitalId);
List<DeviceVO> deviceVOS = new ArrayList<>();
selectVOS.forEach(selectVO -> {
DeviceVO deviceVO = new DeviceVO();
BeanUtils.copyProperties(selectVO, deviceVO);
deviceVOS.add(deviceVO);
});
return Result.success(deviceVOS);
}
@Override
public Result selectByItem(Device device) {
List<Device> selectVos = deviceMapper.selectByItem(device);
selectVos.forEach(selectVO -> {
DeviceVO deviceVO = new DeviceVO();
BeanUtils.copyProperties(selectVO, deviceVO);
});
if(!selectVos.isEmpty()){
return Result.success(selectVos);
}else {
return Result.error(ResponseCode.ACCOUNT_NOT_EXISTS);
}
}
}
package com.cardiff.client_project.service.imp;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.mapper.HospitalAdminMapper;
import com.cardiff.client_project.pojo.dto.SelectDTO;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.vo.HospitalAdminVO;
import com.cardiff.client_project.pojo.vo.HospitalVO;
import com.cardiff.client_project.pojo.vo.SelectVO;
import com.cardiff.client_project.service.HospitalAdminService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class HospitalAdminServiceImpl implements HospitalAdminService {
@Autowired
private HospitalAdminMapper hospitalAdminMapper;
@Autowired
PasswordEncoder passwordEncoder;
/**
* Query admin information
* @return
*/
public Result selectAllAdmin() {
List<HospitalAdminVO> allAdmins = hospitalAdminMapper.selectAllAdmin().stream()
.map(this::convertToAdminVO)
.collect(Collectors.toList());
return allAdmins.isEmpty() ? Result.error(ResponseCode.ERROR) : Result.success(allAdmins);
}
private HospitalAdminVO convertToAdminVO(HospitalAdminVO adminVO) {
adminVO.setStatus_str(adminVO.getStatus() == 1 ? "ACTIVE" : "INACTIVE");
return adminVO;
}
/**
* Query hospital information
* @return
*/
public Result selectAllHospital() {
List<Hospital> hospitals = hospitalAdminMapper.selectAllHospital();
List<HospitalVO> hospitalVOS = hospitals.stream()
.map(this::convertToHospitalVO)
.collect(Collectors.toList());
System.out.println("HospitalVO List: " + hospitalVOS);
return hospitalVOS.isEmpty() ? Result.error(ResponseCode.ERROR) : Result.success(hospitalVOS);
}
private HospitalVO convertToHospitalVO(Hospital hospital) {
HospitalVO hospitalVO = new HospitalVO();
BeanUtils.copyProperties(hospital, hospitalVO);
hospitalVO.setStatus_str(hospital.getStatus() == 1 ? "ACTIVE" : "INACTIVE");
return hospitalVO;
}
/**
* fuzzy query
* @param selectDTO
* @return
*/
public Result selectByItem(SelectDTO selectDTO) {
List<SelectVO> selectVos = hospitalAdminMapper.selectByItem(selectDTO);
selectVos.forEach(selectVO -> {
if (selectVO.getStatus() == 1) {
selectVO.setStatus_str("ACTIVE");
}
if (selectVO.getStatus() == 0) {
selectVO.setStatus_str("INACTIVE");
}
});
if(!selectVos.isEmpty()){
return Result.success(selectVos);
}else {
return Result.error(ResponseCode.ACCOUNT_NOT_EXISTS);
}
}
}
\ No newline at end of file
package com.cardiff.client_project.service.imp;
import com.cardiff.client_project.constant.Authority;
import com.cardiff.client_project.constant.ResponseCode;
import com.cardiff.client_project.mapper.HospitalMapper;
import com.cardiff.client_project.pojo.dto.HospitalDTO;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.vo.HospitalVO;
import com.cardiff.client_project.service.HospitalService;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
......@@ -15,78 +21,40 @@ public class HospitalServiceImpl implements HospitalService {
@Autowired
private HospitalMapper hospitalMapper;
@Override
public Result getAvailableBeds(String name) {
try {
List<HospitalDTO> hospitals = hospitalMapper.findAvailableBeds(name,"",0);
if (hospitals.isEmpty()) {
return Result.error("No hospitals with available beds found.");
}
return Result.success(hospitals);
} catch (Exception e) {
return Result.error("Error fetching available beds: " + e.getMessage());
}
}
@Override
public Result insertHospitalInfo(HospitalDTO hospitalDTO) {
try {
int result = hospitalMapper.insertHospital(hospitalDTO);
if (result > 0) {
return Result.success("Hospital added successfully.");
}
return Result.error("Failed to add hospital.");
} catch (Exception e) {
return Result.error("Error adding hospital: " + e.getMessage());
}
}
public Result selectAllHospital() {
List<Hospital> selectVOS = hospitalMapper.selectAllHospital();
@Override
public Result updateHospital(HospitalDTO hospitalDTO) {
try {
int result = hospitalMapper.updateHospital(hospitalDTO);
if (result > 0) {
return Result.success("Hospital updated successfully.");
}
return Result.error("Failed to update hospital.");
} catch (Exception e) {
return Result.error("Error updating hospital: " + e.getMessage());
}
}
List<HospitalVO> hospitalVOS = new ArrayList<>();
selectVOS.forEach(selectVO -> {
HospitalVO hospitalVO = new HospitalVO();
BeanUtils.copyProperties(selectVO, hospitalVO);
@Override
public Result deleteHospitalById(List<Integer> ids) {
try {
int[] results = hospitalMapper.deleteHospitalByIds(ids);
if (results.length > 0) {
return Result.success("Hospitals deleted successfully.");
// Set the corresponding status string according to status
if (hospitalVO.getStatus() == 1) {
hospitalVO.setStatus_str("ACTIVE");
}
return Result.error("No hospitals were deleted.");
} catch (Exception e) {
return Result.error("Error deleting hospitals: " + e.getMessage());
}
if (hospitalVO.getStatus() == 0) {
hospitalVO.setStatus_str("INACTIVE");
}
hospitalVOS.add(hospitalVO);
});
return Result.success(hospitalVOS);
}
@Override
public Result getAllHospitals() {
try {
List<HospitalDTO> hospitals = hospitalMapper.findAllHospitals();
return Result.success(hospitals);
} catch (Exception e) {
return Result.error("Error fetching hospitals: " + e.getMessage());
}
}
@Override
public Result updateBedCount(int hospitalId, int currentPatients) {
try {
int result = hospitalMapper.updateBedCount(hospitalId, currentPatients);
if (result > 0) {
return Result.success("Bed count updated successfully");
}
return Result.error("Failed to update bed count - check capacity limits");
} catch (Exception e) {
return Result.error("Error updating bed count: " + e.getMessage());
public Result selectByItem(Hospital hospital) {
List<Hospital> selectVos = hospitalMapper.selectByItem(hospital);
selectVos.forEach(selectVO -> {
HospitalVO hospitalVO = new HospitalVO();
BeanUtils.copyProperties(selectVO, hospitalVO);
});
if(!selectVos.isEmpty()){
return Result.success(selectVos);
}else {
return Result.error(ResponseCode.ACCOUNT_NOT_EXISTS);
}
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment