当前位置:   article > 正文

疫苗预约|疫苗管理|前后端分离Springboot+Vue儿童疫苗预约系统_selectbargroup

selectbargroup

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:

前言:

随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。

儿童疫苗预约管理,主要的模块包括查看首页、站点管理(轮播图、公告栏)用户管理(管理员、系统用户)内容管理(资讯列表、分类列表)更多管理(预约订单、疫苗信息、取消预约、疫苗采购、疫苗退货)等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。

要想实现儿童疫苗预约管理的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

本系统的开发使获取儿童疫苗预约管理信息能够更加方便快捷,同时也使儿童疫苗预约管理管理信息变的更加系统化、有序化。系统界面较友好,易于操作。

一,项目简介

儿童疫苗预约管理从功能、数据流程、可行性、运行环境等方面进行需求分析。对儿童疫苗预约管理的数据库、功能进行了详细设计。分析了主要界面设计和相关组件设计,对儿童疫苗预约管理的具体实现进行了介绍。

采用Java技术,从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种操作,在网页中加入动态内容,从而实现儿童疫苗预约管理所需要的各种基本功能。

系统用户分为前端用户和后台管理用户两类:下图展示的是各用户角色功能示例图:

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:Springboot+Mybatisplus

前台开发技术:Vue+ElementUi

三,系统展示

管理员登录,管理员通过输入用户,密码,角色等信息进行系统登录,如图3-1所示。

图3-1管理员登录界面图

管理员登录进入儿童疫苗预约管理可以查看管理员:首页、站点管理(轮播图、公告栏)用户管理(管理员、系统用户)内容管理(资讯列表、分类列表)更多管理(预约订单、疫苗信息、取消预约、疫苗采购、疫苗退货)等内容,如图3-2所示。

图3-2管理员功能首页界面图

用户管理,在用户管理页面可以查看等索引、用户账号、密码、用户姓名、性别、年龄、联系电话、电子邮箱、身份证号、家庭住址、个人照片等信息,并可根据需要进行修改或删除等操作,如图3-3所示。

图3-3用户管理界面图

疫苗信息,在疫苗信息页面可以查看索引、疫苗编号、疫苗名称、疫苗种类、疫苗详情、接种人群等信息,并可根据需要进行修改或删除等操作,如图3-4所示。

图3-4疫苗信息界面图

预约订单信息,在预约订单信息页面可以查看索引、用户编号、订单编号、疫苗编号、疫苗名称、疫苗价格、接种单位、接种医生等信息,并可根据需要进行修改或删除等操作,如图3-5所示。

图3-5预约订单信息界面图

取消预约,在取消预约页面可以查看索引、疫苗名称、疫苗编号、疫苗名称、疫苗价格、接种单位、单位地址、接种医生等信息,并可根据需要进行修改或删除等操作,如图5-6所示。

图3-6取消预约界面图

用户注册,在用户注册页面通过填写用户账号、密码、用户姓名、年龄、联系电话、电子邮箱、身份等信息完成用户注册,如图3-7所示。

图3-7用户注册界面图

用户登录进入后台可以查看首页、公告消息、疫情资讯、疫苗信息等内容,如图3-9所示。

图3-9用户功能界面图

疫苗信息,在疫苗信息页面可以查看疫苗编号、疫苗名称、疫苗图片等信息操作,如图3-10所示。

图3-10疫苗信息界面图

预约订单管理,在预约订单管理页面可以查看索引、疫苗名称、疫苗编号、接种人群、疫苗价格、接种单位、单位地址、接种医生、接种时间等信息,如图3-11所示。

图3-11预约订单界面图

四,核心代码展示

系统抽像的顶层Controller:

  1. package com.project.demo.controller.base;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.project.demo.service.base.BaseService;
  5. import lombok.Setter;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestParam;
  12. import org.springframework.web.multipart.MultipartFile;
  13. import javax.persistence.Query;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.io.File;
  17. import java.io.IOException;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. */
  23. @Slf4j
  24. public class BaseController<E, S extends BaseService<E>> {
  25. @Setter
  26. protected S service;
  27. @PostMapping("/add")
  28. @Transactional
  29. public Map<String, Object> add(HttpServletRequest request) throws IOException {
  30. service.insert(service.readBody(request.getReader()));
  31. return success(1);
  32. }
  33. @Transactional
  34. public Map<String, Object> addMap(Map<String,Object> map){
  35. service.insert(map);
  36. return success(1);
  37. }
  38. @PostMapping("/set")
  39. @Transactional
  40. public Map<String, Object> set(HttpServletRequest request) throws IOException {
  41. service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
  42. return success(1);
  43. }
  44. @RequestMapping(value = "/del")
  45. @Transactional
  46. public Map<String, Object> del(HttpServletRequest request) {
  47. service.delete(service.readQuery(request), service.readConfig(request));
  48. return success(1);
  49. }
  50. @RequestMapping("/get_obj")
  51. public Map<String, Object> obj(HttpServletRequest request) {
  52. Query select = service.select(service.readQuery(request), service.readConfig(request));
  53. List resultList = select.getResultList();
  54. if (resultList.size() > 0) {
  55. JSONObject jsonObject = new JSONObject();
  56. jsonObject.put("obj",resultList.get(0));
  57. return success(jsonObject);
  58. } else {
  59. return success(null);
  60. }
  61. }
  62. @RequestMapping("/get_list")
  63. public Map<String, Object> getList(HttpServletRequest request) {
  64. Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
  65. return success(map);
  66. }
  67. @RequestMapping("/list_group")
  68. public Map<String, Object> listGroup(HttpServletRequest request) {
  69. Map<String, Object> map = service.selectToList(service.readQuery(request), service.readConfig(request));
  70. return success(map);
  71. }
  72. @RequestMapping("/bar_group")
  73. public Map<String, Object> barGroup(HttpServletRequest request) {
  74. Map<String, Object> map = service.selectBarGroup(service.readQuery(request), service.readConfig(request));
  75. return success(map);
  76. }
  77. @RequestMapping(value = {"/count_group", "/count"})
  78. public Map<String, Object> count(HttpServletRequest request) {
  79. Query count = service.count(service.readQuery(request), service.readConfig(request));
  80. return success(count.getResultList());
  81. }
  82. @RequestMapping(value = {"/sum_group", "/sum"})
  83. public Map<String, Object> sum(HttpServletRequest request) {
  84. Query count = service.sum(service.readQuery(request), service.readConfig(request));
  85. return success(count.getResultList());
  86. }
  87. @RequestMapping(value = {"/avg_group", "/avg"})
  88. public Map<String, Object> avg(HttpServletRequest request) {
  89. Query count = service.avg(service.readQuery(request), service.readConfig(request));
  90. return success(count.getResultList());
  91. }
  92. @PostMapping("/upload")
  93. public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
  94. log.info("进入方法");
  95. if (file.isEmpty()) {
  96. return error(30000, "没有选择文件");
  97. }
  98. try {
  99. //判断有没路径,没有则创建
  100. String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\";
  101. File targetDir = new File(filePath);
  102. if (!targetDir.exists() && !targetDir.isDirectory()) {
  103. if (targetDir.mkdirs()) {
  104. log.info("创建目录成功");
  105. } else {
  106. log.error("创建目录失败");
  107. }
  108. }
  109. // String path = ResourceUtils.getURL("classpath:").getPath() + "static/upload/";
  110. // String filePath = path.replace('/', '\\').substring(1, path.length());
  111. String fileName = file.getOriginalFilename();
  112. File dest = new File(filePath + fileName);
  113. log.info("文件路径:{}", dest.getPath());
  114. log.info("文件名:{}", dest.getName());
  115. file.transferTo(dest);
  116. JSONObject jsonObject = new JSONObject();
  117. jsonObject.put("url", "/api/upload/" + fileName);
  118. return success(jsonObject);
  119. } catch (IOException e) {
  120. log.info("上传失败:{}", e.getMessage());
  121. }
  122. return error(30000, "上传失败");
  123. }
  124. @PostMapping("/import_db")
  125. public Map<String, Object> importDb(@RequestParam("file") MultipartFile file) throws IOException {
  126. service.importDb(file);
  127. return success(1);
  128. }
  129. @RequestMapping("/export_db")
  130. public void exportDb(HttpServletRequest request, HttpServletResponse response) throws IOException {
  131. HSSFWorkbook sheets = service.exportDb(service.readQuery(request), service.readConfig(request));
  132. response.setContentType("application/octet-stream");
  133. response.setHeader("Content-disposition", "attachment;filename=employee.xls");
  134. response.flushBuffer();
  135. sheets.write(response.getOutputStream());
  136. sheets.close();
  137. }
  138. public Map<String, Object> success(Object o) {
  139. Map<String, Object> map = new HashMap<>();
  140. if (o == null) {
  141. map.put("result", null);
  142. return map;
  143. }
  144. if (o instanceof List) {
  145. if (((List) o).size() == 1) {
  146. o = ((List) o).get(0);
  147. map.put("result", o);
  148. }else {
  149. String jsonString = JSONObject.toJSONString(o);
  150. JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
  151. map.put("result", objects);
  152. }
  153. } else if (o instanceof Integer || o instanceof String) {
  154. map.put("result", o);
  155. } else {
  156. String jsonString = JSONObject.toJSONString(o);
  157. JSONObject jsonObject = JSONObject.parseObject(jsonString);
  158. JSONObject j = service.covertObject(jsonObject);
  159. map.put("result", j);
  160. }
  161. return map;
  162. }
  163. public Map<String, Object> error(Integer code, String message) {
  164. Map<String, Object> map = new HashMap<>();
  165. map.put("error", new HashMap<String, Object>(4) {{
  166. put("code", code);
  167. put("message", message);
  168. }});
  169. return map;
  170. }
  171. }

系统抽像的顶层Service:

  1. package com.project.demo.service.base;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.project.demo.constant.FindConfig;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.apache.poi.hssf.usermodel.*;
  7. import org.apache.poi.ss.usermodel.*;
  8. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import org.springframework.web.multipart.MultipartFile;
  12. import javax.persistence.EntityManager;
  13. import javax.persistence.PersistenceContext;
  14. import javax.persistence.Query;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.io.BufferedReader;
  17. import java.io.IOException;
  18. import java.io.InputStream;
  19. import java.io.UnsupportedEncodingException;
  20. import java.lang.reflect.ParameterizedType;
  21. import java.net.URLDecoder;
  22. import java.security.MessageDigest;
  23. import java.util.*;
  24. /**
  25. */
  26. @Slf4j
  27. public class BaseService <E>{
  28. @Autowired
  29. @PersistenceContext
  30. private EntityManager entityManager;
  31. Class<E> eClass = (Class<E>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
  32. private final String table = humpToLine(eClass.getSimpleName());
  33. public Query runEntitySql(String sql){
  34. return entityManager.createNativeQuery(sql, eClass);
  35. }
  36. public Query runCountSql(String sql){
  37. return entityManager.createNativeQuery(sql);
  38. }
  39. public void insert(Map<String,Object> body){
  40. StringBuffer sql = new StringBuffer("INSERT INTO ");
  41. sql.append("`").append(table).append("`").append(" (");
  42. for (Map.Entry<String,Object> entry:body.entrySet()){
  43. sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
  44. }
  45. sql.deleteCharAt(sql.length()-1);
  46. sql.append(") VALUES (");
  47. for (Map.Entry<String,Object> entry:body.entrySet()){
  48. Object value = entry.getValue();
  49. if (value instanceof String){
  50. sql.append("'").append(entry.getValue()).append("'").append(",");
  51. }else {
  52. sql.append(entry.getValue()).append(",");
  53. }
  54. }
  55. sql.deleteCharAt(sql.length() - 1);
  56. sql.append(")");
  57. log.info("[{}] - 插入操作:{}",table,sql);
  58. Query query = runCountSql(sql.toString());
  59. query.executeUpdate();
  60. }
  61. @Transactional
  62. public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){
  63. StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");
  64. for (Map.Entry<String,Object> entry:body.entrySet()){
  65. Object value = entry.getValue();
  66. if (value instanceof String){
  67. sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");
  68. }else {
  69. sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");
  70. }
  71. }
  72. sql.deleteCharAt(sql.length()-1);
  73. sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));
  74. // sql.append(";");
  75. log.info("[{}] - 更新操作:{}",table,sql);
  76. Query query1 = runCountSql(sql.toString());
  77. query1.executeUpdate();
  78. }
  79. public Map<String,Object> selectToPage(Map<String,String> query,Map<String,String> config){
  80. Query select = select(query, config);
  81. Map<String,Object> map = new HashMap<>();
  82. map.put("list",select.getResultList());
  83. map.put("count",count(query,config).getSingleResult());
  84. return map;
  85. }
  86. public Map<String,Object> selectToList(Map<String,String> query,Map<String,String> config){
  87. Query select = selectGroupCount(query, config);
  88. Map<String,Object> map = new HashMap<>();
  89. map.put("list",select.getResultList());
  90. return map;
  91. }
  92. public Map<String,Object> selectBarGroup(Map<String,String> query,Map<String,String> config){
  93. Query select = barGroup(query, config);
  94. Map<String,Object> map = new HashMap<>();
  95. map.put("list",select.getResultList());
  96. return map;
  97. }
  98. public Query barGroup(Map<String,String> query,Map<String,String> config){
  99. StringBuffer sql = new StringBuffer(" SELECT ");
  100. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  101. sql.append(config.get(FindConfig.GROUP_BY));
  102. if (config.get(FindConfig.FIELD) != null && !"".equals(config.get(FindConfig.FIELD))){
  103. String[] fieldList = config.get(FindConfig.FIELD).split(",");
  104. for (int i=0;i<fieldList.length;i++)
  105. sql.append(" ,SUM(").append(fieldList[i]).append(")");
  106. }
  107. sql.append(" FROM ").append("`").append(table).append("`");
  108. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  109. sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
  110. }else {
  111. sql.append(" SUM(").append(config.get(FindConfig.GROUP_BY)).append(") FROM ").append("`").append(table).append("`");
  112. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  113. }
  114. log.info("[{}] - 查询操作,sql: {}",table,sql);
  115. return runCountSql(sql.toString());
  116. }
  117. public Query selectGroupCount(Map<String,String> query,Map<String,String> config){
  118. StringBuffer sql = new StringBuffer("select COUNT(*) AS count_value, ");
  119. sql.append(config.get(FindConfig.GROUP_BY)).append(" ");
  120. sql.append("from ").append("`").append(table).append("` ");
  121. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  122. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  123. sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
  124. }
  125. log.info("[{}] - 查询操作,sql: {}",table,sql);
  126. return runCountSql(sql.toString());
  127. }
  128. public Query select(Map<String,String> query,Map<String,String> config){
  129. StringBuffer sql = new StringBuffer("select ");
  130. sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
  131. sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  132. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  133. sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
  134. }
  135. if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
  136. sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
  137. }
  138. if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
  139. int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
  140. int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
  141. sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
  142. }
  143. log.info("[{}] - 查询操作,sql: {}",table,sql);
  144. return runEntitySql(sql.toString());
  145. }
  146. @Transactional
  147. public void delete(Map<String,String> query,Map<String,String> config){
  148. StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
  149. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
  150. log.info("[{}] - 删除操作:{}",table,sql);
  151. Query query1 = runCountSql(sql.toString());
  152. query1.executeUpdate();
  153. }
  154. public Query count(Map<String,String> query,Map<String,String> config){
  155. StringBuffer sql = new StringBuffer("SELECT ");
  156. // log.info("拼接统计函数前");
  157. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  158. sql.append(config.get(FindConfig.GROUP_BY)).append(" ,COUNT(").append(config.get(FindConfig.GROUP_BY)).append(") FROM ").append("`").append(table).append("`");
  159. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  160. // sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
  161. }else {
  162. sql.append("COUNT(*) FROM ").append("`").append(table).append("`");
  163. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  164. }
  165. log.info("[{}] - 统计操作,sql: {}",table,sql);
  166. return runCountSql(sql.toString());
  167. }
  168. public Query sum(Map<String,String> query,Map<String,String> config){
  169. StringBuffer sql = new StringBuffer(" SELECT ");
  170. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  171. sql.append(config.get(FindConfig.GROUP_BY)).append(" ,SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
  172. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  173. sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
  174. }else {
  175. sql.append(" SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
  176. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  177. }
  178. log.info("[{}] - 查询操作,sql: {}",table,sql);
  179. return runCountSql(sql.toString());
  180. }
  181. public Query avg(Map<String,String> query,Map<String,String> config){
  182. StringBuffer sql = new StringBuffer(" SELECT ");
  183. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  184. sql.append(config.get(FindConfig.GROUP_BY)).append(" ,AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
  185. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  186. sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
  187. }else {
  188. sql.append(" AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
  189. sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  190. }
  191. log.info("[{}] - 查询操作,sql: {}",table,sql);
  192. return runCountSql(sql.toString());
  193. }
  194. public String toWhereSql(Map<String,String> query, Boolean like) {
  195. if (query.size() > 0) {
  196. try {
  197. StringBuilder sql = new StringBuilder(" WHERE ");
  198. for (Map.Entry<String, String> entry : query.entrySet()) {
  199. if (entry.getKey().contains(FindConfig.MIN_)) {
  200. String min = humpToLine(entry.getKey()).replace("_min", "");
  201. sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");
  202. continue;
  203. }
  204. if (entry.getKey().contains(FindConfig.MAX_)) {
  205. String max = humpToLine(entry.getKey()).replace("_max", "");
  206. sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");
  207. continue;
  208. }
  209. if (like == true) {
  210. sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");
  211. } else {
  212. sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");
  213. }
  214. }
  215. sql.delete(sql.length() - 4, sql.length());
  216. sql.append(" ");
  217. return sql.toString();
  218. } catch (UnsupportedEncodingException e) {
  219. log.info("拼接sql 失败:{}", e.getMessage());
  220. }
  221. }
  222. return "";
  223. }
  224. public Map<String,Object> readBody(BufferedReader reader){
  225. BufferedReader br = null;
  226. StringBuilder sb = new StringBuilder("");
  227. try{
  228. br = reader;
  229. String str;
  230. while ((str = br.readLine()) != null){
  231. sb.append(str);
  232. }
  233. br.close();
  234. String json = sb.toString();
  235. return JSONObject.parseObject(json, Map.class);
  236. }catch (IOException e){
  237. e.printStackTrace();
  238. }finally{
  239. if (null != br){
  240. try{
  241. br.close();
  242. }catch (IOException e){
  243. e.printStackTrace();
  244. }
  245. }
  246. }
  247. return null;
  248. }
  249. public Map<String,String> readQuery(HttpServletRequest request){
  250. String queryString = request.getQueryString();
  251. if (queryString != null && !"".equals(queryString)) {
  252. String[] querys = queryString.split("&");
  253. Map<String, String> map = new HashMap<>();
  254. for (String query : querys) {
  255. String[] q = query.split("=");
  256. map.put(q[0], q[1]);
  257. }
  258. map.remove(FindConfig.PAGE);
  259. map.remove(FindConfig.SIZE);
  260. map.remove(FindConfig.LIKE);
  261. map.remove(FindConfig.ORDER_BY);
  262. map.remove(FindConfig.FIELD);
  263. map.remove(FindConfig.GROUP_BY);
  264. map.remove(FindConfig.MAX_);
  265. map.remove(FindConfig.MIN_);
  266. return map;
  267. }else {
  268. return new HashMap<>();
  269. }
  270. }
  271. public Map<String,String> readConfig(HttpServletRequest request){
  272. Map<String,String> map = new HashMap<>();
  273. map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));
  274. map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));
  275. map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));
  276. map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));
  277. map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));
  278. map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));
  279. map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));
  280. map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));
  281. return map;
  282. }
  283. public void importDb(MultipartFile file) throws IOException {
  284. if (file.isEmpty()) {
  285. return;
  286. }
  287. List<Map<String,String>> body = new ArrayList<>();
  288. String fileName = file.getOriginalFilename();
  289. if (fileName == null){
  290. return;
  291. }
  292. String suffix = fileName.substring(fileName.lastIndexOf(".")+1);
  293. InputStream ins = file.getInputStream();
  294. Workbook wb = null;
  295. if(suffix.equals("xlsx")){
  296. wb = new XSSFWorkbook(ins);
  297. }else{
  298. wb = new HSSFWorkbook(ins);
  299. }
  300. Sheet sheet = wb.getSheetAt(0);
  301. if(null != sheet){
  302. for(int line = 0; line <= sheet.getLastRowNum();line++){
  303. Row row = sheet.getRow(line);
  304. if(null == row){
  305. continue;
  306. }
  307. Iterator<Cell> cellIterator = row.cellIterator();
  308. StringBuffer sql = new StringBuffer("INSERT INTO ").append(table).append(" VALUES (null,");
  309. while (cellIterator.hasNext()){
  310. sql.append(cellIterator.next().getStringCellValue()).append(",");
  311. }
  312. sql.deleteCharAt(sql.length());
  313. sql.append(")");
  314. runCountSql(sql.toString());
  315. }
  316. }
  317. }
  318. public HSSFWorkbook exportDb(Map<String,String> query,Map<String,String> config){
  319. Query select = select(query, config);
  320. List<Map<String,String>> resultList = select.getResultList();
  321. HSSFWorkbook workbook = new HSSFWorkbook();
  322. HSSFSheet sheet = workbook.createSheet(table);
  323. HSSFCellStyle headerStyle = workbook.createCellStyle();
  324. headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
  325. headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
  326. for (int i = 0; i < resultList.size(); i++) {
  327. HSSFRow row = sheet.createRow(i);
  328. Map<String,String> map = resultList.get(i);
  329. int j = 0;
  330. for (Map.Entry<String,String> entry:map.entrySet()){
  331. row.createCell(j).setCellValue(new HSSFRichTextString(entry.getValue()));
  332. }
  333. }
  334. return workbook;
  335. }
  336. @Transactional
  337. public void save(E e){
  338. String s = JSONObject.toJSONString(e);
  339. Map map = JSONObject.parseObject(s, Map.class);
  340. insert(map);
  341. }
  342. public E findOne(Map<String, String> map){
  343. try {
  344. Query select = select(map, new HashMap<>());
  345. return (E) select.getSingleResult();
  346. }catch (Exception e){
  347. return null;
  348. }
  349. }
  350. public String encryption(String plainText) {
  351. String re_md5 = new String();
  352. try {
  353. MessageDigest md = MessageDigest.getInstance("MD5");
  354. md.update(plainText.getBytes());
  355. byte b[] = md.digest();
  356. int i;
  357. StringBuffer buf = new StringBuffer("");
  358. for (int offset = 0; offset < b.length; offset++) {
  359. i = b[offset];
  360. if (i < 0)
  361. i += 256;
  362. if (i < 16)
  363. buf.append("0");
  364. buf.append(Integer.toHexString(i));
  365. }
  366. re_md5 = buf.toString();
  367. } catch (Exception e) {
  368. e.printStackTrace();
  369. }
  370. return re_md5;
  371. }
  372. public static String humpToLine(String str) {
  373. if (str == null) {
  374. return null;
  375. }
  376. // 将驼峰字符串转换成数组
  377. char[] charArray = str.toCharArray();
  378. StringBuilder buffer = new StringBuilder();
  379. //处理字符串
  380. for (int i = 0, l = charArray.length; i < l; i++) {
  381. if (charArray[i] >= 65 && charArray[i] <= 90) {
  382. buffer.append("_").append(charArray[i] += 32);
  383. } else {
  384. buffer.append(charArray[i]);
  385. }
  386. }
  387. String s = buffer.toString();
  388. if (s.startsWith("_")){
  389. return s.substring(1);
  390. }else {
  391. return s;
  392. }
  393. }
  394. public JSONObject covertObject(JSONObject object) {
  395. if (object == null) {
  396. return null;
  397. }
  398. JSONObject newObject = new JSONObject();
  399. Set<String> set = object.keySet();
  400. for (String key : set) {
  401. Object value = object.get(key);
  402. if (value instanceof JSONArray) {
  403. //数组
  404. value = covertArray(object.getJSONArray(key));
  405. } else if (value instanceof JSONObject) {
  406. //对象
  407. value = covertObject(object.getJSONObject(key));
  408. }
  409. //这个方法自己写的改成下划线
  410. key = humpToLine(key);
  411. newObject.put(key, value);
  412. }
  413. return newObject;
  414. }
  415. public JSONArray covertArray(JSONArray array) {
  416. if (array == null) {
  417. return null;
  418. }
  419. JSONArray newArray = new JSONArray();
  420. for (int i = 0; i < array.size(); i++) {
  421. Object value = array.get(i);
  422. if (value instanceof JSONArray) {
  423. //数组
  424. value = covertArray(array.getJSONArray(i));
  425. } else if (value instanceof JSONObject) {
  426. //对象
  427. value = covertObject(array.getJSONObject(i));
  428. }
  429. newArray.add(value);
  430. }
  431. return newArray;
  432. }
  433. }

五,项目总结

 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们儿童疫苗预约信息管理方面的要求也在不断提高,需要儿童疫苗预约的人数更是不断增加,使得儿童疫苗预约管理的开发成为必需而且紧迫的事情。儿童疫苗预约管理主要是借助计算机,通过对儿童疫苗预约管理所需的信息管理,增加用户选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。儿童疫苗预约管理对用户带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足用户的需求。

1.2课题意义

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/173061
推荐阅读
相关标签
  

闽ICP备14008679号