package com.atguigu.hospital.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.atguigu.hospital.mapper.HospitalSetMapper;
import com.atguigu.hospital.mapper.ScheduleMapper;
import com.atguigu.hospital.model.HospitalSet;
import com.atguigu.hospital.model.Schedule;
import com.atguigu.hospital.service.ApiService;
import com.atguigu.hospital.util.BeanUtils;
import com.atguigu.hospital.util.HttpRequestHelper;
import com.atguigu.hospital.util.MD5;
import com.atguigu.hospital.util.YyghException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
@Service
@Slf4j
public class ApiServiceImpl implements ApiService {
@Autowired
private ScheduleMapper scheduleMapper;
@Autowired
private HospitalSetMapper hospitalSetMapper;
@Autowired
private ApiService apiService;
@Value("classpath:hospital.json")
private Resource hospitalResource;
@Override
public String getHoscode() {
HospitalSet hospitalSet = hospitalSetMapper.selectById(1);
return hospitalSet.getHoscode();
}
@Override
public String getSignKey() {
HospitalSet hospitalSet = hospitalSetMapper.selectById(1);
return hospitalSet.getSignKey();
}
private String getApiUrl() {
HospitalSet hospitalSet = hospitalSetMapper.selectById(1);
return hospitalSet.getApiUrl();
}
/**
* 查询医院信息
* @return
*/
@Override
public JSONObject getHospital() {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("hoscode",this.getHoscode());
paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
paramMap.put("sign", MD5.encrypt(this.getSignKey()));
JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/hospital/show");
System.out.println(respone.toJSONString());
if(null != respone && 200 == respone.getIntValue("code")) {
JSONObject jsonObject = respone.getJSONObject("data");
return jsonObject;
}
return null;
}
/**
* 上传医院信息
* @param data
* @return
*/
@Override
public boolean saveHospital(String data) {
JSONObject jsonObject = JSONObject.parseObject(data);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("hoscode",this.getHoscode());
paramMap.put("hosname",jsonObject.getString("hosname"));
paramMap.put("hostype",jsonObject.getString("hostype"));
paramMap.put("provinceCode",jsonObject.getString("provinceCode"));
paramMap.put("cityCode", jsonObject.getString("cityCode"));
paramMap.put("districtCode",jsonObject.getString("districtCode"));
paramMap.put("address",jsonObject.getString("address"));
paramMap.put("intro",jsonObject.getString("intro"));
paramMap.put("route",jsonObject.getString("route"));
//图片
paramMap.put("logoData", jsonObject.getString("logoData"));
JSONObject bookingRule = jsonObject.getJSONObject("bookingRule");
paramMap.put("bookingRule",bookingRule.toJSONString());
paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
paramMap.put("sign", MD5.encrypt(this.getSignKey()));
JSONObject respone =
HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/saveHospital");
System.out.println(respone.toJSONString());
if(null != respone && 200 == respone.getIntValue("code")) {
return true;
} else {
throw new YyghException(respone.getString("message"), 201);
}
}
/**
* 查询医院科室信息
* @param pageNum
* @param pageSize
* @return
*/
@Override
public Map<String, Object> findDepartment(int pageNum, int pageSize) {
Map<String, Object> result = new HashMap();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("hoscode",this.getHoscode());
//paramMap.put("depcode",depcode);
paramMap.put("page",pageNum);
paramMap.put("limit",pageSize);
paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
paramMap.put("sign", HttpRequestHelper.getSign(paramMap, this.getSignKey()));
JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/department/list");
if(null != respone && 200 == respone.getIntValue("code")) {
JSONObject jsonObject = respone.getJSONObject("data");
result.put("total", jsonObject.getLong("totalElements"));
result.put("pageNum", pageNum);
result.put("list", jsonObject.getJSONArray("content"));
} else {
throw new YyghException(respone.getString("message"), 201);
}
return result;
}
/**
* 上传医院科室信息
* @param data
* @return
*/
@Override
public boolean saveDepartment(String data) {
JSONArray jsonArray = new JSONArray();
if(!data.startsWith("[")) {
JSONObject jsonObject = JSONObject.parseObject(data);
jsonArray.add(jsonObject);
} else {
jsonArray = JSONArray.parseArray(data);
}
for(int i=0, len=jsonArray.size(); i<len; i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("hoscode",this.getHoscode());
paramMap.put("depcode",jsonObject.getString("depcode"));
paramMap.put("depname",jsonObject.getString("depname"));
paramMap.put("intro",jsonObject.getString("intro"));
paramMap.put("bigcode", jsonObject.getString("bigcode"));
paramMap.put("bigname",jsonObject.getString("bigname"));
paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
paramMap.put("sign",MD5.encrypt(this.getSignKey()));
JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/saveDepartment");
System.out.println(respone.toJSONString());
if(null == respone || 200 != respone.getIntValue("code")) {
throw new YyghException(respone.getString("message"), 201);
}
}
return true;
}
/**
* 删除科室接口
* @param depcode
* @return
*/
@Override
public boolean removeDepartment(String depcode) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("hoscode",this.getHoscode());
paramMap.put("depcode",depcode);
paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
paramMap.put("sign", HttpRequestHelper.getSign(paramMap, this.getSignKey()));
JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/department/remove");
System.out.println(respone.toJSONString());
if(null != respone && 200 == respone.getIntValue("code")) {
return true;
} else {
throw new YyghException(respone.getString("message"), 201);
}
}
/**
* 查询排班接口
* @param pageNum
* @param pageSize
* @return
*/
@Override
public Map<String, Object> findSchedule(int pageNum, int pageSize) {
Map<Strin
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Spring Boot的预约挂号系统可以通过以下步骤来实现: 1. 确定需求:明确系统的功能和需求,包括用户注册、登录、医生和科室信息管理、预约挂号、就诊记录管理等。 2. 创建项目:使用Spring Initializr创建一个新的Spring Boot项目,选择需要的依赖,如Spring Web、Spring Data JPA、Spring Security等。 3. 配置数据库连接:在项目的配置文件中配置数据库连接信息,包括数据库类型、地址、用户名和密码等。 4. 设计数据库:根据系统需求设计数据库表结构,包括用户表、医生表、科室表、预约表、就诊记录表等。 5. 创建实体类和DAO类:根据数据库表结构创建对应的实体类,并使用Spring Data JPA创建对应的DAO接口。 6. 创建服务层:创建服务层的接口和实现类,实现业务逻辑,如用户注册、登录验证、医生和科室信息查询、预约挂号等。 7. 创建控制层:创建控制层的接口和实现类,处理前端请求,调用服务层的方法,并返回结果给前端。 8. 创建用户认证和授权模块:使用Spring Security实现用户认证和
资源推荐
资源详情
资源评论
收起资源包目录
java毕业设计&课程设计-基于SprigBoot+vue的医院预约挂号系统(源码+数据库).zip文件 (420个子文件)
index.css 227KB
summernote-bs3.css 143KB
bootstrap.min14ed.css 118KB
bootstrap.min.css 118KB
style.min862f.css 98KB
style.min.css 97KB
animate.min.css 46KB
datepicker3.css 33KB
vis.css 32KB
vis.css 32KB
font-awesome.min93e3.css 26KB
ambiance.css 25KB
style.min.css 25KB
vis.min.css 23KB
vis.min.css 23KB
sweetalert.css 18KB
simditor.css 17KB
ui.jqgridffe4.css 16KB
vis-timeline-graph2d.min.css 15KB
vis-timeline-graph2d.min.css 15KB
vis-network.min.css 14KB
vis-network.min.css 14KB
jasny-bootstrap.min.css 14KB
chosen.css 12KB
dropzone.css 11KB
layer.css 11KB
fullcalendar.css 11KB
summernote.css 10KB
plyr.css 10KB
awesome.css 8KB
layout-sd.css 8KB
codemirror.css 7KB
blueimp-gallery.min.css 7KB
awesome-bootstrap-checkbox.css 7KB
toastr.min.css 7KB
metroStyle.css 6KB
zTreeStyle.css 6KB
webuploader-demo.min.css 6KB
jquery.steps.css 6KB
footable.core.css 5KB
dataTables.bootstrap.css 5KB
bootstrap-table.min.css 4KB
clockpicker.css 4KB
basic.css 4KB
style.css 4KB
datepicker.css 4KB
bootstrap-colorpicker.min.css 3KB
datepicker.css 3KB
cropper.min.css 3KB
ion.rangeSlider.css 3KB
jquery.nouislider.css 3KB
layer.ext.css 3KB
bootstrap-markdown.min.css 3KB
layout.css 2KB
demo.css 2KB
ion.rangeSlider.skinFlat.css 2KB
login.min.css 1KB
custom.css 1KB
show.css 1KB
bootstrap-treeview.css 1KB
fullcalendar.print.css 660B
switchery.css 611B
createTest.css 557B
base.css 540B
webuploader.css 515B
morris-0.4.3.min.css 443B
WdatePicker.css 149B
xuetong_main.css 81B
main.css 81B
sso.css 0B
fontawesome-webfontd41d.eot 67KB
fontawesome-webfont93e3.eot 67KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regulard41d.eot 20KB
footable.eot 5KB
footabled41d.eot 5KB
loading-0.gif 6KB
zTreeStandard.gif 5KB
metro.gif 5KB
loading.gif 4KB
loading-2.gif 2KB
loading-upload.gif 2KB
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
loading-1.gif 701B
loading.gif 381B
loading.gif 381B
loading.gif 381B
line_conn.gif 45B
.gitignore 395B
My97DatePicker.htm 1KB
index.html 7KB
index.html 5KB
index.html 4KB
meta.html 3KB
index.html 3KB
index.html 3KB
login.html 3KB
pagination.html 3KB
共 420 条
- 1
- 2
- 3
- 4
- 5
资源评论
荒野大飞
- 粉丝: 9148
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功