最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

疫苗預(yù)約|疫苗管理|前后端分離Springboot+Vue兒童疫苗預(yù)約系統(tǒng)

2023-05-10 09:45 作者:指南針畢業(yè)設(shè)計  | 我要投稿


項(xiàng)目編號:

前言:

隨著社會的發(fā)展,社會的各行各業(yè)都在利用信息化時代的優(yōu)勢。計算機(jī)的優(yōu)勢和普及使得各種信息系統(tǒng)的開發(fā)成為必需。

兒童疫苗預(yù)約管理,主要的模塊包括查看首頁、站點(diǎn)管理(輪播圖、公告欄)用戶管理(管理員、系統(tǒng)用戶)內(nèi)容管理(資訊列表、分類列表)更多管理(預(yù)約訂單、疫苗信息、取消預(yù)約、疫苗采購、疫苗退貨)等功能。系統(tǒng)中管理員主要是為了安全有效地存儲和管理各類信息,還可以對系統(tǒng)進(jìn)行管理與更新維護(hù)等操作,并且對后臺有相應(yīng)的操作權(quán)限。

要想實(shí)現(xiàn)兒童疫苗預(yù)約管理的各項(xiàng)功能,需要后臺數(shù)據(jù)庫的大力支持。管理員驗(yàn)證注冊信息,收集的用戶信息,并由此分析得出的關(guān)聯(lián)信息等大量的數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務(wù)器端采用了Mysql作為后臺數(shù)據(jù)庫,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。在設(shè)計過程中,充分保證了系統(tǒng)代碼的良好可讀性、實(shí)用性、易擴(kuò)展性、通用性、便于后期維護(hù)、操作方便以及頁面簡潔等特點(diǎn)。

本系統(tǒng)的開發(fā)使獲取兒童疫苗預(yù)約管理信息能夠更加方便快捷,同時也使兒童疫苗預(yù)約管理管理信息變的更加系統(tǒng)化、有序化。系統(tǒng)界面較友好,易于操作。

一,項(xiàng)目簡介

兒童疫苗預(yù)約管理從功能、數(shù)據(jù)流程、可行性、運(yùn)行環(huán)境等方面進(jìn)行需求分析。對兒童疫苗預(yù)約管理的數(shù)據(jù)庫、功能進(jìn)行了詳細(xì)設(shè)計。分析了主要界面設(shè)計和相關(guān)組件設(shè)計,對兒童疫苗預(yù)約管理的具體實(shí)現(xiàn)進(jìn)行了介紹。

采用Java技術(shù),從數(shù)據(jù)庫中獲取數(shù)據(jù)、向數(shù)據(jù)庫中寫入數(shù)據(jù),實(shí)現(xiàn)系統(tǒng)直接對數(shù)據(jù)庫進(jìn)行各種操作,在網(wǎng)頁中加入動態(tài)內(nèi)容,從而實(shí)現(xiàn)兒童疫苗預(yù)約管理所需要的各種基本功能。

系統(tǒng)用戶分為前端用戶和后臺管理用戶兩類:下圖展示的是各用戶角色功能示例圖:

編輯


二,環(huán)境介紹

語言環(huán)境:Java:? jdk1.8

數(shù)據(jù)庫:Mysql: mysql5.7

應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31

開發(fā)工具:IDEA或eclipse

后臺開發(fā)技術(shù):Springboot+Mybatisplus

前臺開發(fā)技術(shù):Vue+ElementUi

三,系統(tǒng)展示

管理員登錄,管理員通過輸入用戶,密碼,角色等信息進(jìn)行系統(tǒng)登錄,如圖3-1所示。

編輯



圖3-1管理員登錄界面圖

管理員登錄進(jìn)入兒童疫苗預(yù)約管理可以查看管理員:首頁、站點(diǎn)管理(輪播圖、公告欄)用戶管理(管理員、系統(tǒng)用戶)內(nèi)容管理(資訊列表、分類列表)更多管理(預(yù)約訂單、疫苗信息、取消預(yù)約、疫苗采購、疫苗退貨)等內(nèi)容,如圖3-2所示。

編輯

圖3-2管理員功能首頁界面圖


用戶管理,在用戶管理頁面可以查看等索引、用戶賬號、密碼、用戶姓名、性別、年齡、聯(lián)系電話、電子郵箱、身份證號、家庭住址、個人照片等信息,并可根據(jù)需要進(jìn)行修改或刪除等操作,如圖3-3所示。

編輯



圖3-3用戶管理界面圖

疫苗信息,在疫苗信息頁面可以查看索引、疫苗編號、疫苗名稱、疫苗種類、疫苗詳情、接種人群等信息,并可根據(jù)需要進(jìn)行修改或刪除等操作,如圖3-4所示。

編輯


圖3-4疫苗信息界面圖

預(yù)約訂單信息,在預(yù)約訂單信息頁面可以查看索引、用戶編號、訂單編號、疫苗編號、疫苗名稱、疫苗價格、接種單位、接種醫(yī)生等信息,并可根據(jù)需要進(jìn)行修改或刪除等操作,如圖3-5所示。

編輯



圖3-5預(yù)約訂單信息界面圖

取消預(yù)約,在取消預(yù)約頁面可以查看索引、疫苗名稱、疫苗編號、疫苗名稱、疫苗價格、接種單位、單位地址、接種醫(yī)生等信息,并可根據(jù)需要進(jìn)行修改或刪除等操作,如圖5-6所示。

編輯



圖3-6取消預(yù)約界面圖

用戶注冊,在用戶注冊頁面通過填寫用戶賬號、密碼、用戶姓名、年齡、聯(lián)系電話、電子郵箱、身份等信息完成用戶注冊,如圖3-7所示。

編輯



圖3-7用戶注冊界面圖

用戶登錄進(jìn)入后臺可以查看首頁、公告消息、疫情資訊、疫苗信息等內(nèi)容,如圖3-9所示。

編輯


圖3-9用戶功能界面圖

疫苗信息,在疫苗信息頁面可以查看疫苗編號、疫苗名稱、疫苗圖片等信息操作,如圖3-10所示。

編輯



圖3-10疫苗信息界面圖

預(yù)約訂單管理,在預(yù)約訂單管理頁面可以查看索引、疫苗名稱、疫苗編號、接種人群、疫苗價格、接種單位、單位地址、接種醫(yī)生、接種時間等信息,如圖3-11所示。

編輯



圖3-11預(yù)約訂單界面圖


四,核心代碼展示

系統(tǒng)抽像的頂層Controller:

package com.project.demo.controller.base;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.project.demo.service.base.BaseService;import lombok.Setter;import lombok.extern.slf4j.Slf4j;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.springframework.transaction.annotation.Transactional;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;import javax.persistence.Query;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;/** */@Slf4jpublic class BaseController<E, S extends BaseService<E>> { ? ?@Setter ? ?protected S service; ? ?@PostMapping("/add") ? ?@Transactional ? ?public Map<String, Object> add(HttpServletRequest request) throws IOException { ? ? ? ?service.insert(service.readBody(request.getReader())); ? ? ? ?return success(1); ? ?} ? ?@Transactional ? ?public Map<String, Object> addMap(Map<String,Object> map){ ? ? ? ?service.insert(map); ? ? ? ?return success(1); ? ?} ? ?@PostMapping("/set") @Transactional ? ?public Map<String, Object> set(HttpServletRequest request) throws IOException { ? ? ? ?service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); ? ? ? ?return success(1); ? ?} ? ?@RequestMapping(value = "/del") ? ?@Transactional ? ?public Map<String, Object> del(HttpServletRequest request) { ? ? ? ?service.delete(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(1); ? ?} ? ?@RequestMapping("/get_obj") ? ?public Map<String, Object> obj(HttpServletRequest request) { ? ? ? ?Query select = service.select(service.readQuery(request), service.readConfig(request)); ? ? ? ?List resultList = select.getResultList(); ? ? ? ?if (resultList.size() > 0) { ? ? ? ? ? ?JSONObject jsonObject = new JSONObject(); ? ? ? ? ? ?jsonObject.put("obj",resultList.get(0)); ? ? ? ? ? ?return success(jsonObject); ? ? ? ?} else { ? ? ? ? ? ?return success(null); ? ? ? ?} ? ?} ? ?@RequestMapping("/get_list") ? ?public Map<String, Object> getList(HttpServletRequest request) { ? ? ? ?Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(map); ? ?} ? ?@RequestMapping("/list_group") ? ?public Map<String, Object> listGroup(HttpServletRequest request) { ? ? ? ?Map<String, Object> map = service.selectToList(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(map); ? ?} ? ?@RequestMapping("/bar_group") ? ?public Map<String, Object> barGroup(HttpServletRequest request) { ? ? ? ?Map<String, Object> map = service.selectBarGroup(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(map); ? ?} ? ?@RequestMapping(value = {"/count_group", "/count"}) ? ?public Map<String, Object> count(HttpServletRequest request) { ? ? ? ?Query count = service.count(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(count.getResultList()); ? ?} ? ?@RequestMapping(value = {"/sum_group", "/sum"}) ? ?public Map<String, Object> sum(HttpServletRequest request) { ? ? ? ?Query count = service.sum(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(count.getResultList()); ? ?} ? ?@RequestMapping(value = {"/avg_group", "/avg"}) public Map<String, Object> avg(HttpServletRequest request) { ? ? ? ?Query count = service.avg(service.readQuery(request), service.readConfig(request)); ? ? ? ?return success(count.getResultList()); ? ?} ? ?@PostMapping("/upload") ? ?public Map<String, Object> upload(@RequestParam("file") MultipartFile file) { ? ? ? ?log.info("進(jìn)入方法"); ? ? ? ?if (file.isEmpty()) { ? ? ? ? ? ?return error(30000, "沒有選擇文件"); ? ? ? ?} ? ? ? ?try { ? ? ? ? ? ?//判斷有沒路徑,沒有則創(chuàng)建 ? ? ? ? ? ?String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\"; ? ? ? ? ? ?File targetDir = new File(filePath); ? ? ? ? ? ?if (!targetDir.exists() && !targetDir.isDirectory()) { ? ? ? ? ? ? ? ?if (targetDir.mkdirs()) { ? ? ? ? ? ? ? ? ? ?log.info("創(chuàng)建目錄成功"); ? ? ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ? ? ?log.error("創(chuàng)建目錄失敗"); ? ? ? ? ? ? ? ?} ? ? ? ? ? ?}// ? ? ? ? ? ?String path = ResourceUtils.getURL("classpath:").getPath() + "static/upload/";// ? ? ? ? ? ?String filePath = path.replace('/', '\\').substring(1, path.length()); ? ? ? ? ? ?String fileName = file.getOriginalFilename(); ? ? ? ? ? ?File dest = new File(filePath + fileName); ? ? ? ? ? ?log.info("文件路徑:{}", dest.getPath()); ? ? ? ? ? ?log.info("文件名:{}", dest.getName()); ? ? ? ? ? ?file.transferTo(dest); ? ? ? ? ? ?JSONObject jsonObject = new JSONObject(); ? ? ? ? ? ?jsonObject.put("url", "/api/upload/" + fileName); ? ? ? ? ? ?return success(jsonObject); ? ? ? ?} catch (IOException e) { ? ? ? ? ? ?log.info("上傳失?。簕}", e.getMessage()); ? ? ? ?} ? ? ? ?return error(30000, "上傳失敗"); ? ?} ? ?@PostMapping("/import_db") ? ?public Map<String, Object> importDb(@RequestParam("file") MultipartFile file) throws IOException { ? ? ? ?service.importDb(file); ? ? ? ?return success(1); ? ?} ? ?@RequestMapping("/export_db") ? ?public void exportDb(HttpServletRequest request, HttpServletResponse response) throws IOException { ? ? ? ?HSSFWorkbook sheets = service.exportDb(service.readQuery(request), service.readConfig(request)); ? ? ? ?response.setContentType("application/octet-stream"); ? ? ? ?response.setHeader("Content-disposition", "attachment;filename=employee.xls"); ? ? ? ?response.flushBuffer(); ? ? ? ?sheets.write(response.getOutputStream()); ? ? ? ?sheets.close(); ? ?} ? ?public Map<String, Object> success(Object o) { ? ? ? ?Map<String, Object> map = new HashMap<>(); ? ? ? ?if (o == null) { ? ? ? ? ? ?map.put("result", null); ? ? ? ? ? ?return map; ? ? ? ?} ? ? ? ?if (o instanceof List) { ? ? ? ? ? ?if (((List) o).size() == 1) { ? ? ? ? ? ? ? o = ?((List) o).get(0); ? ? ? ? ? ? ? ?map.put("result", o); ? ? ? ? ? ?}else { ? ? ? ? ? ? ? ?String jsonString = JSONObject.toJSONString(o); ? ? ? ? ? ? ? ?JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString)); ? ? ? ? ? ? ? ?map.put("result", objects); ? ? ? ? ? ?} ? ? ? ?} else if (o instanceof Integer || o instanceof String) { ? ? ? ? ? ?map.put("result", o); ? ? ? ?} else { ? ? ? ? ? ?String jsonString = JSONObject.toJSONString(o); ? ? ? ? ? ?JSONObject jsonObject = JSONObject.parseObject(jsonString); ? ? ? ? ? ?JSONObject j = service.covertObject(jsonObject); ? ? ? ? ? ?map.put("result", j); ? ? ? ?} ? ? ? ?return map; ? ?} ? ?public Map<String, Object> error(Integer code, String message) { ? ? ? ?Map<String, Object> map = new HashMap<>(); ? ? ? ?map.put("error", new HashMap<String, Object>(4) {{ ? ? ? ? ? ?put("code", code); ? ? ? ? ? ?put("message", message); ? ? ? ?}}); ? ? ? ?return map; ? ?} }

系統(tǒng)抽像的頂層Service:

package com.project.demo.service.base;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.project.demo.constant.FindConfig;import lombok.extern.slf4j.Slf4j;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.transaction.annotation.Transactional;import org.springframework.web.multipart.MultipartFile;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.persistence.Query;import javax.servlet.http.HttpServletRequest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.lang.reflect.ParameterizedType;import java.net.URLDecoder;import java.security.MessageDigest;import java.util.*;/** */@Slf4jpublic class BaseService <E>{ ? ?@Autowired ? ?@PersistenceContext ? ?private EntityManager entityManager; ? ?Class<E> eClass = (Class<E>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; ? ?private final String table = humpToLine(eClass.getSimpleName()); ? ?public Query runEntitySql(String sql){ ? ? ? ?return entityManager.createNativeQuery(sql, eClass); ? ?} ? ?public Query runCountSql(String sql){ ? ? ? ?return entityManager.createNativeQuery(sql); ? ?} ? ?public void insert(Map<String,Object> body){ ? ? ? ?StringBuffer sql = new StringBuffer("INSERT INTO "); ? ? ? ?sql.append("`").append(table).append("`").append(" ("); ? ? ? ?for (Map.Entry<String,Object> entry:body.entrySet()){ ? ? ? ? ? ?sql.append("`"+humpToLine(entry.getKey())+"`").append(","); ? ? ? ?} ? ? ? ?sql.deleteCharAt(sql.length()-1); ? ? ? ?sql.append(") VALUES ("); ? ? ? ?for (Map.Entry<String,Object> entry:body.entrySet()){ ? ? ? ? ? ?Object value = entry.getValue(); ? ? ? ? ? ?if (value instanceof String){ ? ? ? ? ? ? ? ?sql.append("'").append(entry.getValue()).append("'").append(","); ? ? ? ? ? ?}else { ? ? ? ? ? ? ? ?sql.append(entry.getValue()).append(","); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?sql.deleteCharAt(sql.length() - 1); ? ? ? ?sql.append(")"); ? ? ? ?log.info("[{}] - 插入操作:{}",table,sql); ? ? ? ?Query query = runCountSql(sql.toString()); ? ? ? ?query.executeUpdate(); ? ?} ? ?@Transactional ? ?public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){ ? ? ? ?StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET "); ? ? ? ?for (Map.Entry<String,Object> entry:body.entrySet()){ ? ? ? ? ? ?Object value = entry.getValue(); ? ? ? ? ? ?if (value instanceof String){ ? ? ? ? ? ? ? ?sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(","); ? ? ? ? ? ?}else { ? ? ? ? ? ? ? ?sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(","); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?sql.deleteCharAt(sql.length()-1); ? ? ? ?sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));// ? ? ? ?sql.append(";"); ? ? ? ?log.info("[{}] - 更新操作:{}",table,sql); ? ? ? ?Query query1 = runCountSql(sql.toString()); ? ? ? ?query1.executeUpdate(); ? ?} ? ?public Map<String,Object> selectToPage(Map<String,String> query,Map<String,String> config){ ? ? ? ?Query select = select(query, config); ? ? ? ?Map<String,Object> map = new HashMap<>(); ? ? ? ?map.put("list",select.getResultList()); ? ? ? ?map.put("count",count(query,config).getSingleResult()); ? ? ? ?return map; ? ?} ? ?public Map<String,Object> selectToList(Map<String,String> query,Map<String,String> config){ ? ? ? ?Query select = selectGroupCount(query, config); ? ? ? ?Map<String,Object> map = new HashMap<>(); ? ? ? ?map.put("list",select.getResultList()); ? ? ? ?return map; ? ?} ? ?public Map<String,Object> selectBarGroup(Map<String,String> query,Map<String,String> config){ ? ? ? ?Query select = barGroup(query, config); ? ? ? ?Map<String,Object> map = new HashMap<>(); ? ? ? ?map.put("list",select.getResultList()); ? ? ? ?return map; ? ?} ? ?public Query barGroup(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer(" SELECT "); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append(config.get(FindConfig.GROUP_BY)); ? ? ? ? ? ?if (config.get(FindConfig.FIELD) != null && !"".equals(config.get(FindConfig.FIELD))){ ? ? ? ? ? ? ? ?String[] fieldList = config.get(FindConfig.FIELD).split(","); ? ? ? ? ? ? ? ?for (int i=0;i<fieldList.length;i++) ? ? ? ? ? ? ? ? ? ?sql.append(" ,SUM(").append(fieldList[i]).append(")"); ? ? ? ? ? ?} ? ? ? ? ? ?sql.append(" FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ? ? ?sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY)); ? ? ? ?}else { ? ? ? ? ? ?sql.append(" SUM(").append(config.get(FindConfig.GROUP_BY)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?} ? ? ? ?log.info("[{}] - 查詢操作,sql: {}",table,sql); ? ? ? ?return runCountSql(sql.toString()); ? ?} ? ?public Query selectGroupCount(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer("select COUNT(*) AS count_value, "); ? ? ? ?sql.append(config.get(FindConfig.GROUP_BY)).append(" "); ? ? ? ?sql.append("from ").append("`").append(table).append("` "); ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" "); ? ? ? ?} ? ? ? ?log.info("[{}] - 查詢操作,sql: {}",table,sql); ? ? ? ?return runCountSql(sql.toString()); ? ?} ? ?public Query select(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer("select "); ? ? ? ?sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" "); ? ? ? ?sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" "); ? ? ? ?} ? ? ? ?if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){ ? ? ? ? ? ?sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" "); ? ? ? ?} ? ? ? ?if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){ ? ? ? ? ? ?int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1; ? ? ? ? ? ?int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10; ? ? ? ? ? ?sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit); ? ? ? ?} ? ? ? ?log.info("[{}] - 查詢操作,sql: {}",table,sql); ? ? ? ?return runEntitySql(sql.toString()); ? ?} ? ?@Transactional ? ?public void delete(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" "); ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY)))); ? ? ? ?log.info("[{}] - 刪除操作:{}",table,sql); ? ? ? ?Query query1 = runCountSql(sql.toString()); ? ? ? ?query1.executeUpdate(); ? ?} ? ?public Query count(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer("SELECT ");// ? ? ? ?log.info("拼接統(tǒng)計函數(shù)前"); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append(config.get(FindConfig.GROUP_BY)).append(" ,COUNT(").append(config.get(FindConfig.GROUP_BY)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));// ? ? ? ? ? ?sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY)); ? ? ? ?}else { ? ? ? ? ? ?sql.append("COUNT(*) FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?} ? ? ? ?log.info("[{}] - 統(tǒng)計操作,sql: {}",table,sql); ? ? ? ?return runCountSql(sql.toString()); ? ?} ? ?public Query sum(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer(" SELECT "); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append(config.get(FindConfig.GROUP_BY)).append(" ,SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ? ? ?sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY)); ? ? ? ?}else { ? ? ? ? ? ?sql.append(" SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?} ? ? ? ?log.info("[{}] - 查詢操作,sql: {}",table,sql); ? ? ? ?return runCountSql(sql.toString()); ? ?} ? ?public Query avg(Map<String,String> query,Map<String,String> config){ ? ? ? ?StringBuffer sql = new StringBuffer(" SELECT "); ? ? ? ?if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){ ? ? ? ? ? ?sql.append(config.get(FindConfig.GROUP_BY)).append(" ,AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ? ? ?sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY)); ? ? ? ?}else { ? ? ? ? ? ?sql.append(" AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`"); ? ? ? ? ? ?sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)))); ? ? ? ?} ? ? ? ?log.info("[{}] - 查詢操作,sql: {}",table,sql); ? ? ? ?return runCountSql(sql.toString()); ? ?} ? ?public String toWhereSql(Map<String,String> query, Boolean like) { ? ? ? ?if (query.size() > 0) { ? ? ? ? ? ?try { ? ? ? ? ? ? ? ?StringBuilder sql = new StringBuilder(" WHERE "); ? ? ? ? ? ? ? ?for (Map.Entry<String, String> entry : query.entrySet()) { ? ? ? ? ? ? ? ? ? ?if (entry.getKey().contains(FindConfig.MIN_)) { ? ? ? ? ? ? ? ? ? ? ? ?String min = humpToLine(entry.getKey()).replace("_min", ""); ? ? ? ? ? ? ? ? ? ? ? ?sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and "); ? ? ? ? ? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ? ?if (entry.getKey().contains(FindConfig.MAX_)) { ? ? ? ? ? ? ? ? ? ? ? ?String max = humpToLine(entry.getKey()).replace("_max", ""); ? ? ? ? ? ? ? ? ? ? ? ?sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and "); ? ? ? ? ? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ? ?if (like == true) { ? ? ? ? ? ? ? ? ? ? ? ?sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and "); ? ? ? ? ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ? ? ? ? ?sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and "); ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?sql.delete(sql.length() - 4, sql.length()); ? ? ? ? ? ? ? ?sql.append(" "); ? ? ? ? ? ? ? ?return sql.toString(); ? ? ? ? ? ?} catch (UnsupportedEncodingException e) { ? ? ? ? ? ? ? ?log.info("拼接sql 失?。簕}", e.getMessage()); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return ""; ? ?} ? ?public Map<String,Object> readBody(BufferedReader reader){ ? ? ? ?BufferedReader br = null; ? ? ? ?StringBuilder sb = new StringBuilder(""); ? ? ? ?try{ ? ? ? ? ? ?br = reader; ? ? ? ? ? ?String str; ? ? ? ? ? ?while ((str = br.readLine()) != null){ ? ? ? ? ? ? ? ?sb.append(str); ? ? ? ? ? ?} ? ? ? ? ? ?br.close(); ? ? ? ? ? ?String json = sb.toString(); ? ? ? ? ? ?return JSONObject.parseObject(json, Map.class); ? ? ? ?}catch (IOException e){ ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?}finally{ ? ? ? ? ? ?if (null != br){ ? ? ? ? ? ? ? ?try{ ? ? ? ? ? ? ? ? ? ?br.close(); ? ? ? ? ? ? ? ?}catch (IOException e){ ? ? ? ? ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ? ? ?} ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return null; ? ?} ? ?public Map<String,String> readQuery(HttpServletRequest request){ ? ? ? ?String queryString = request.getQueryString(); ? ? ? ?if (queryString != null && !"".equals(queryString)) { ? ? ? ? ? ?String[] querys = queryString.split("&"); ? ? ? ? ? ?Map<String, String> map = new HashMap<>(); ? ? ? ? ? ?for (String query : querys) { ? ? ? ? ? ? ? ?String[] q = query.split("="); ? ? ? ? ? ? ? ?map.put(q[0], q[1]); ? ? ? ? ? ?} ? ? ? ? ? ?map.remove(FindConfig.PAGE); ? ? ? ? ? ?map.remove(FindConfig.SIZE); ? ? ? ? ? ?map.remove(FindConfig.LIKE); ? ? ? ? ? ?map.remove(FindConfig.ORDER_BY); ? ? ? ? ? ?map.remove(FindConfig.FIELD); ? ? ? ? ? ?map.remove(FindConfig.GROUP_BY); ? ? ? ? ? ?map.remove(FindConfig.MAX_); ? ? ? ? ? ?map.remove(FindConfig.MIN_); ? ? ? ? ? ?return map; ? ? ? ?}else { ? ? ? ? ? ?return new HashMap<>(); ? ? ? ?} ? ?} ? ?public Map<String,String> readConfig(HttpServletRequest request){ ? ? ? ?Map<String,String> map = new HashMap<>(); ? ? ? ?map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE)); ? ? ? ?map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE)); ? ? ? ?map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE)); ? ? ? ?map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY)); ? ? ? ?map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD)); ? ? ? ?map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY)); ? ? ? ?map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_)); ? ? ? ?map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_)); ? ? ? ?return map; ? ?} ? ?public void importDb(MultipartFile file) throws IOException { ? ? ? ?if (file.isEmpty()) { ? ? ? ? ? ?return; ? ? ? ?} ? ? ? ?List<Map<String,String>> body = new ArrayList<>(); ? ? ? ?String fileName = file.getOriginalFilename(); ? ? ? ?if (fileName == null){ ? ? ? ? ? ?return; ? ? ? ?} ? ? ? ?String suffix = fileName.substring(fileName.lastIndexOf(".")+1); ? ? ? ?InputStream ins = file.getInputStream(); ? ? ? ?Workbook wb = null; ? ? ? ?if(suffix.equals("xlsx")){ ? ? ? ? ? ?wb = new XSSFWorkbook(ins); ? ? ? ?}else{ ? ? ? ? ? ?wb = new HSSFWorkbook(ins); ? ? ? ?} ? ? ? ?Sheet sheet = wb.getSheetAt(0); ? ? ? ?if(null != sheet){ ? ? ? ? ? ?for(int line = 0; line <= sheet.getLastRowNum();line++){ ? ? ? ? ? ? ? ?Row row = sheet.getRow(line); ? ? ? ? ? ? ? ?if(null == row){ ? ? ? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?Iterator<Cell> cellIterator = row.cellIterator(); ? ? ? ? ? ? ? ?StringBuffer sql = new StringBuffer("INSERT INTO ").append(table).append(" VALUES (null,"); ? ? ? ? ? ? ? ?while (cellIterator.hasNext()){ ? ? ? ? ? ? ? ? ? ?sql.append(cellIterator.next().getStringCellValue()).append(","); ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?sql.deleteCharAt(sql.length()); ? ? ? ? ? ? ? ?sql.append(")"); ? ? ? ? ? ? ? ?runCountSql(sql.toString()); ? ? ? ? ? ?} ? ? ? ?} ? ?} ? ?public HSSFWorkbook exportDb(Map<String,String> query,Map<String,String> config){ ? ? ? ?Query select = select(query, config); ? ? ? ?List<Map<String,String>> resultList = select.getResultList(); ? ? ? ?HSSFWorkbook workbook = new HSSFWorkbook(); ? ? ? ?HSSFSheet sheet = workbook.createSheet(table); ? ? ? ?HSSFCellStyle headerStyle = workbook.createCellStyle(); ? ? ? ?headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index); ? ? ? ?headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); ? ? ? ?for (int i = 0; i < resultList.size(); i++) { ? ? ? ? ? ?HSSFRow row = sheet.createRow(i); ? ? ? ? ? ?Map<String,String> map = resultList.get(i); ? ? ? ? ? ?int j = 0; ? ? ? ? ? ?for (Map.Entry<String,String> entry:map.entrySet()){ ? ? ? ? ? ? ? ?row.createCell(j).setCellValue(new HSSFRichTextString(entry.getValue())); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return workbook; ? ?} ? ?@Transactional ? ?public void save(E e){ ? ? ? ?String s = JSONObject.toJSONString(e); ? ? ? ?Map map = JSONObject.parseObject(s, Map.class); ? ? ? ?insert(map); ? ?} ? ?public E findOne(Map<String, String> map){ ? ? ? ?try { ? ? ? ? ? ?Query select = select(map, new HashMap<>()); ? ? ? ? ? ?return (E) select.getSingleResult(); ? ? ? ?}catch (Exception e){ ? ? ? ? ? ?return null; ? ? ? ?} ? ?} ? ?public String encryption(String plainText) { ? ? ? ?String re_md5 = new String(); ? ? ? ?try { ? ? ? ? ? ?MessageDigest md = MessageDigest.getInstance("MD5"); ? ? ? ? ? ?md.update(plainText.getBytes()); ? ? ? ? ? ?byte b[] = md.digest(); ? ? ? ? ? ?int i; ? ? ? ? ? ?StringBuffer buf = new StringBuffer(""); ? ? ? ? ? ?for (int offset = 0; offset < b.length; offset++) { ? ? ? ? ? ? ? ?i = b[offset]; ? ? ? ? ? ? ? ?if (i < 0) ? ? ? ? ? ? ? ? ? ?i += 256; ? ? ? ? ? ? ? ?if (i < 16) ? ? ? ? ? ? ? ? ? ?buf.append("0"); ? ? ? ? ? ? ? ?buf.append(Integer.toHexString(i)); ? ? ? ? ? ?} ? ? ? ? ? ?re_md5 = buf.toString(); ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?} ? ? ? ?return re_md5; ? ?} ? ?public static String humpToLine(String str) { ? ? ? ?if (str == null) { ? ? ? ? ? ?return null; ? ? ? ?} ? ? ? ?// 將駝峰字符串轉(zhuǎn)換成數(shù)組 ? ? ? ?char[] charArray = str.toCharArray(); ? ? ? ?StringBuilder buffer = new StringBuilder(); ? ? ? ?//處理字符串 ? ? ? ?for (int i = 0, l = charArray.length; i < l; i++) { ? ? ? ? ? ?if (charArray[i] >= 65 && charArray[i] <= 90) { ? ? ? ? ? ? ? ?buffer.append("_").append(charArray[i] += 32); ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?buffer.append(charArray[i]); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?String s = buffer.toString(); ? ? ? ?if (s.startsWith("_")){ ? ? ? ? ? ?return s.substring(1); ? ? ? ?}else { ? ? ? ? ? ?return s; ? ? ? ?} ? ?} ? ?public JSONObject covertObject(JSONObject object) { ? ? ? ?if (object == null) { ? ? ? ? ? ?return null; ? ? ? ?} ? ? ? ?JSONObject newObject = new JSONObject(); ? ? ? ?Set<String> set = object.keySet(); ? ? ? ?for (String key : set) { ? ? ? ? ? ?Object value = object.get(key); ? ? ? ? ? ?if (value instanceof JSONArray) { ? ? ? ? ? ? ? ?//數(shù)組 ? ? ? ? ? ? ? ?value = covertArray(object.getJSONArray(key)); ? ? ? ? ? ?} else if (value instanceof JSONObject) { ? ? ? ? ? ? ? ?//對象 ? ? ? ? ? ? ? ?value = covertObject(object.getJSONObject(key)); ? ? ? ? ? ?} ? ? ? ? ? ?//這個方法自己寫的改成下劃線 ? ? ? ? ? ?key = humpToLine(key); ? ? ? ? ? ?newObject.put(key, value); ? ? ? ?} ? ? ? ?return newObject; ? ?} ? ?public JSONArray covertArray(JSONArray array) { ? ? ? ?if (array == null) { ? ? ? ? ? ?return null; ? ? ? ?} ? ? ? ?JSONArray newArray = new JSONArray(); ? ? ? ?for (int i = 0; i < array.size(); i++) { ? ? ? ? ? ?Object value = array.get(i); ? ? ? ? ? ?if (value instanceof JSONArray) { ? ? ? ? ? ? ? ?//數(shù)組 ? ? ? ? ? ? ? ?value = covertArray(array.getJSONArray(i)); ? ? ? ? ? ?} else if (value instanceof JSONObject) { ? ? ? ? ? ? ? ?//對象 ? ? ? ? ? ? ? ?value = covertObject(array.getJSONObject(i)); ? ? ? ? ? ?} ? ? ? ? ? ?newArray.add(value); ? ? ? ?} ? ? ? ?return newArray; ? ?} }

五,項(xiàng)目總結(jié)

 隨著社會的快速發(fā)展,計算機(jī)的影響是全面且深入的。人們生活水平的不斷提高,日常生活中人們兒童疫苗預(yù)約信息管理方面的要求也在不斷提高,需要兒童疫苗預(yù)約的人數(shù)更是不斷增加,使得兒童疫苗預(yù)約管理的開發(fā)成為必需而且緊迫的事情。兒童疫苗預(yù)約管理主要是借助計算機(jī),通過對兒童疫苗預(yù)約管理所需的信息管理,增加用戶選擇,同時也方便對廣大用戶信息的及時查詢、修改以及對用戶信息的及時了解。兒童疫苗預(yù)約管理對用戶帶來了更多的便利, 該系統(tǒng)通過和數(shù)據(jù)庫管理系統(tǒng)軟件協(xié)作來滿足用戶的需求。

1.2課題意義


疫苗預(yù)約|疫苗管理|前后端分離Springboot+Vue兒童疫苗預(yù)約系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
广灵县| 海宁市| 前郭尔| 江口县| 德清县| 鹤庆县| 衡东县| 科技| 无为县| 喀什市| 上林县| 巍山| 方山县| 唐海县| 洛南县| 栖霞市| 丽水市| 奈曼旗| 横山县| 武山县| 安达市| 彩票| 通城县| 土默特右旗| 万山特区| 石首市| 高州市| 定襄县| 韶关市| 清水河县| 昌宁县| 南充市| 灵璧县| 元江| 德州市| 安康市| 绥化市| 故城县| 山西省| 吉首市| 洮南市|