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

Merge branch 'wyl' into 'main'

achieve change status function

See merge request !26
parents e2b7e61e 70fb394a
Branches
No related tags found
1 merge request!26achieve change status function
......@@ -66,6 +66,7 @@ public class SuperAdminController {
*/
@PutMapping("/update")
public Result updateById(@RequestBody SelectDTO selectDTO){
System.out.println(selectDTO);
Result result= superAdminService.update(selectDTO);
return result;
}
......
......@@ -7,6 +7,7 @@ import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.entity.SuperUser;
import com.cardiff.client_project.pojo.vo.AdminVO;
import com.cardiff.client_project.pojo.vo.HospitalVO;
import com.cardiff.client_project.pojo.vo.SelectVO;
import com.cardiff.client_project.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -103,7 +104,7 @@ public class SuperAdminMapper {
public List<AdminVO> selectAllAdmin() {
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM common_admin";
String sql = "SELECT * FROM common_admin ORDER BY status DESC";
List<AdminVO> query = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(AdminVO.class));
return query;
}
......@@ -115,7 +116,7 @@ public class SuperAdminMapper {
public List<Hospital> selectAllHospital(){
// Parameterized queries avoid SQL injection
String sql = "SELECT * FROM hospital";
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;
......@@ -124,20 +125,42 @@ public class SuperAdminMapper {
/**
* update data
* @param commonAdmin
* @param o
*/
public int update(CommonAdmin commonAdmin) {
String sql = "UPDATE common_admin SET name = ?, email = ? , status = ? WHERE id = ?";
int update = jdbcTemplate.update(sql, preparedStatement -> {
preparedStatement.setString(1, commonAdmin.getName());
preparedStatement.setString(2, commonAdmin.getEmail());
preparedStatement.setInt(3, commonAdmin.getStatus());
preparedStatement.setInt(4, commonAdmin.getId());
});
return update;
public List update(Object o) {
if(o instanceof CommonAdmin){
CommonAdmin commonAdmin=(CommonAdmin)o;
String sql = "UPDATE common_admin SET name = ?, email = ? , status = ? ,phone=? WHERE id = ?";
jdbcTemplate.update(sql, preparedStatement -> {
preparedStatement.setString(1, commonAdmin.getName());
preparedStatement.setString(2, commonAdmin.getEmail());
preparedStatement.setInt(3, commonAdmin.getStatus());
preparedStatement.setString(4,commonAdmin.getPhone());
preparedStatement.setInt(5, commonAdmin.getId());
});
List<AdminVO> adminVOS = selectAllAdmin();
return adminVOS;
}
if(o instanceof Hospital){
Hospital hospital=(Hospital)o;
String sql = "UPDATE hospital SET name = ?, phone = ? , address = ?, maxAmount = ?, amountPatient = ?, status = ? WHERE id = ?";
jdbcTemplate.update(sql, preparedStatement -> {
preparedStatement.setString(1, hospital.getName());
preparedStatement.setString(2, hospital.getPhone());
preparedStatement.setString(3, hospital.getAddress());
preparedStatement.setInt(4,hospital.getMaxAmount());
preparedStatement.setInt(5, hospital.getAmountPatient());
preparedStatement.setInt(6, hospital.getStatus());
preparedStatement.setInt(7, hospital.getId());
});
List<Hospital> hospitals = selectAllHospital();
return hospitals;
}
return null;
}
/**
* fuzzy query
* @param selectDTO
......@@ -161,22 +184,22 @@ public class SuperAdminMapper {
List<Object> params = new ArrayList<>();
//Dynamic concatenation of query conditions
if (selectDTO.getName() != null) {
if (selectDTO.getName() != null && selectDTO.getName()!="") {
sql.append(" AND name LIKE ?");
params.add("%" + selectDTO.getName() + "%");
}
if (selectDTO.getPhone() != null) {
if (selectDTO.getPhone() != null && selectDTO.getPhone()!="") {
sql.append(" AND phone LIKE ?");
params.add("%" + selectDTO.getPhone() + "%");
}
if (selectDTO.getAddress() != null) {
if (selectDTO.getAddress() != null && selectDTO.getAddress()!="") {
sql.append(" AND address LIKE ?");
params.add("%" + selectDTO.getAddress() + "%");
}
//default status=1
sql.append(" AND status LIKE ?");
params.add("%" + selectDTO.getStatus() + "%");
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;
......
......@@ -9,7 +9,6 @@ import com.cardiff.client_project.pojo.dto.SelectDTO;
import com.cardiff.client_project.pojo.dto.SignUserDTO;
import com.cardiff.client_project.pojo.entity.CommonAdmin;
import com.cardiff.client_project.pojo.entity.Hospital;
import com.cardiff.client_project.pojo.entity.Patient;
import com.cardiff.client_project.pojo.vo.AdminVO;
import com.cardiff.client_project.pojo.vo.HospitalVO;
......@@ -128,23 +127,39 @@ public class SuperAdminServiceImp implements SuperAdminService {
*/
@Override
public Result update(SelectDTO selectDTO) {
int update=0;
if(selectDTO.getType().equals("commonAdmin")){
CommonAdmin commonAdmin = new CommonAdmin();
BeanUtils.copyProperties(selectDTO,commonAdmin);
update = superAdminMapper.update(commonAdmin);
List<AdminVO> adminVOS = superAdminMapper.update(commonAdmin);
adminVOS.forEach(adminVO -> {
if (adminVO.getStatus() == 1) {
adminVO.setStatus_str("ACTIVE");
}else {
adminVO.setStatus_str("INACTIVE");
}
});
return Result.success(adminVOS);
}
if(selectDTO.getType().equals("patient")){
Patient patient = new Patient();
BeanUtils.copyProperties(selectDTO,patient);
update=patientMapper.update(patient);
if(selectDTO.getType().equals("hospital")){
Hospital hospital = new Hospital();
BeanUtils.copyProperties(selectDTO,hospital);
List<Hospital> update = superAdminMapper.update(hospital);
List<HospitalVO> hospitalVOS = new ArrayList<>();
update.forEach(item->{
HospitalVO hospitalVO = new HospitalVO();
BeanUtils.copyProperties(item,hospitalVO);
if (hospitalVO.getStatus() == 1) {
hospitalVO.setStatus_str("ACTIVE");
}else {
hospitalVO.setStatus_str("INACTIVE");
}
hospitalVOS.add(hospitalVO);
});
return Result.success(hospitalVOS);
}
if(update==0){
return Result.error(ResponseCode.ERROR);
}else {
return Result.success(ResponseCode.SUCCESS);
}
return Result.error(ResponseCode.ERROR);
}
......@@ -169,7 +184,7 @@ public class SuperAdminServiceImp implements SuperAdminService {
if(selectVos.size()>0){
return Result.success(selectVos);
}else {
return Result.error(ResponseCode.ERROR);
return Result.error(ResponseCode.ACCOUNT_NOT_EXISTS);
}
}
......
......@@ -17,7 +17,7 @@
<input type="text" class="searchBox" id="searchPhone" placeholder="type phone..." />
<select class="searchBox" id="searchStatus">
<option value="" disabled selected>choose status</option>
<option value="active" selected>Active</option>
<option value="active">Active</option>
<option value="inactive">Inactive</option>
</select>
<button id="searchButton">Confirm</button>
......@@ -44,7 +44,10 @@
th:data-id="${row.id}"
th:data-name="${row.name}"
th:data-phone="${row.phone}"
th:data-address="${row.address}">
th:data-address="${row.address}"
th:data-max-amount="${row.maxAmount}"
th:data-amount-patient="${row.amountPatient}"
th:data-status="${row.status_str}">
<td th:text="${row.id}"></td>
<td th:text="${row.name}"></td>
<td th:text="${row.phone}"></td>
......@@ -53,9 +56,9 @@
<td th:text="${row.amountPatient}"></td>
<td th:text="${row.status_str}"></td>
<td class="tdOption">
<label id="btn" class="btn">Edit</label>
<label id="edit" class="btn">Edit</label>
<label id="delete" class="btn">Delete</label>
<label id="btn" class="btn">Freeze</label>
<label id="freeze" class="btn">Freeze</label>
</td>
</tr>
</tbody>
......@@ -64,6 +67,48 @@
<script th:inline="javascript">
$(document).on("click","#freeze",function (){
const row = $(this).closest('tr');
console.log(row.data('id'))
var status;
if(row.data('status')==="ACTIVE"){
status=0;
}else {
status=1
}
var data={
"id":row.data('id'),
"type":"hospital",
"name":row.data('name'),
"phone":row.data('phone'),
"address":row.data('address'),
"maxAmount":row.data('max-amount'),
"amountPatient":row.data('amount-patient'),
"status":status,
}
$.ajax({
contentType: "application/json",
url: "/superAdmin/update",
type: "PUT",
data: JSON.stringify(data),
dataType: "Json",
success: function (data) {
console.log(data)
if(data.code==1){
updateTable(data.data)
location.reload()
}else {
alert(data.msg)
}
},
});
})
$(document).on("click","#delete",function (){
const clickedLabel = this;
// remove active class
......@@ -126,6 +171,7 @@
if(data.code!=0){
updateTable(data.data);
location.reload()
}else {
alert(data.msg)
}
......@@ -140,7 +186,13 @@
// create new table
data.forEach(row => {
const tr = `
<tr data-id="${row.id}">
<tr th:data-id="${row.id}"
th:data-name="${row.name}"
th:data-phone="${row.phone}"
th:data-address="${row.address}"
th:data-max-amount="${row.maxAmount}"
th:data-amount-patient="${row.amountPatient}"
th:data-status="${row.status_str}">
<td>${row.id}</td>
<td>${row.name}</td>
<td>${row.phone}</td>
......@@ -149,9 +201,9 @@
<td>${row.amountPatient}</td>
<td>${row.status_str}</td>
<td class="tdOption">
<label id="btn" class="btn">Edit</label>
<label id="edit" class="btn">Edit</label>
<label id="delete" class="btn">Delete</label>
<label id="btn" class="btn">Freeze</label>
<label id="freeze" class="btn">Freeze</label>
</td>
</tr>
`;
......
......@@ -14,7 +14,7 @@
<input type="text" class="searchBox" id="searchPhone" placeholder="type phone..." />
<select class="searchBox" id="searchStatus">
<option value="" disabled selected>choose status</option>
<option value="active" selected>Active</option>
<option value="active">Active</option>
<option value="inactive">Inactive</option>
</select>
<button id="searchButton">Confirm</button>
......@@ -34,31 +34,67 @@
</tr>
</thead>
<tbody>
<tr th:each="row : ${tableData}">
<tr th:each="row : ${tableData}"
th:data-id="${row['id']}"
th:data-name="${row['name']}"
th:data-phone="${row['phone']}"
th:data-email="${row['email']}"
th:data-status="${row['status_str']}">
<td th:text="${row['id']}"></td>
<td th:text="${row['name']}"></td>
<td th:text="${row['phone']}"></td>
<td th:text="${row['email']}"></td>
<td th:text="${row['status_str']}"></td>
<td class="tdOption">
<label id="btn" class="btn">Edit</label>
<label id="edit" class="btn">Edit</label>
<label id="delete" class="btn">Delete</label>
<label id="btn" class="btn">Freeze</label>
<label id="freeze" class="btn">Freeze</label>
</td>
</tr>
</tbody>
</table>
</div>
<script th:inline="javascript">
$(document).on("click","#delete",function (){
const clickedLabel = this;
// remove active class
const labels = document.querySelectorAll('.tdOption .btn');
labels.forEach(label => label.classList.remove('active'));
$(document).on("click","#freeze",function (){
const row = $(this).closest('tr');
console.log(row.data('id'))
var status;
if(row.data('status')==="ACTIVE"){
status=0;
}else {
status=1
}
var data={
"id":row.data('id'),
"type":"commonAdmin",
"name":row.data('name'),
"phone":row.data('phone'),
"email":row.data('email'),
"status":status,
}
$.ajax({
contentType: "application/json",
url: "/superAdmin/update",
type: "PUT",
data: JSON.stringify(data),
dataType: "Json",
success: function (data) {
console.log(data)
if(data.code==1){
updateTable(data.data)
location.reload()
}else {
alert(data.msg)
}
},
});
})
// add active class
clickedLabel.classList.add('active');
$(document).on("click","#delete",function (){
const row = $(this).closest('tr');
// get data in row
......@@ -111,6 +147,7 @@
if(data.code!=0){
updateTable(data.data);
location.reload()
}else {
alert(data.msg)
}
......@@ -125,16 +162,20 @@
// create new table
data.forEach(row => {
const tr = `
<tr data-id="${row.id}">
<tr data-id="${row.id}"
th:data-name="${row['name']}"
th:data-phone="${row['phone']}"
th:data-email="${row['email']}"
th:data-status="${row['status_str']}">
<td>${row.id}</td>
<td>${row.name}</td>
<td>${row.phone}</td>
<td>${row.email}</td>
<td>${row.status_str}</td>
<td class="tdOption">
<label id="btn" class="btn">Edit</label>
<td class="tdOption">
<label id="edit" class="btn">Edit</label>
<label id="delete" class="btn">Delete</label>
<label id="btn" class="btn">Freeze</label>
<label id="freeze" class="btn">Freeze</label>
</td>
</tr>
`;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment