哪里做网站排名,外贸网站建设平台,厦门seo网站优化,小程序开发文档微信小程序目录 界面展示
第六章 部分代码实现
6.1 Spring boot 配置代码
6.2 用户管理及登录登出代码
6.3 Md5 加密算法代码
6.4 部分数据库代码 六、论文参考#xff1a;
七、其他案例#xff1a; 系统介绍#xff1a; 就医管理系统#xff0c;也称为医院管理系统#…目录 界面展示
第六章 部分代码实现
6.1 Spring boot 配置代码
6.2 用户管理及登录登出代码
6.3 Md5 加密算法代码
6.4 部分数据库代码 六、论文参考
七、其他案例 系统介绍 就医管理系统也称为医院管理系统HISHospital Information System是针对医院等医疗机构实施信息化管理的一种软件系统。它通过计算机技术、网络技术以及信息管理理论和方法将医院各个部门进行整合实现信息共享、业务协同和资源优化。
一、系统特点
系统化管理将医院的各个业务系统进行整合形成一个统一的管理平台包括病案管理、门诊管理、住院管理、药品管理、财务管理等。通过整合各个系统的数据和资源实现流程的可控和优化提高工作效率。信息化支持以信息化为核心将医院的各种信息进行统一收集、存储和管理。通过电子病历、电子处方、电子报告等方式实现医疗信息的电子化提高医院内部的信息共享和协作减少纸质文档的使用方便医务人员的工作。业务流程优化对医院的各个业务流程进行优化和规范化。通过工作流引擎对医疗流程进行自动化控制和监控减少人为错误和漏洞提高医疗质量和安全性。资源协调与调度通过资源调度算法实现医疗资源的合理配置和调度提高医院的资源利用效率。例如通过科室排班、手术室资源优化等功能实现医疗资源的最大化利用减少医疗资源的浪费。数据统计和分析通过数据采集和分析功能对医院的各种数据进行统计和分析为医院的决策提供科学依据。例如通过病历数据分析医院可以改进诊疗流程和提高诊疗效果。
界面展示
管理员登录界面 用户管理 医院信息管理界面 系统功能界面 第六章 部分代码实现
6.1 Spring boot 配置代码
# Tomcat
server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springboot0t8qlspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springboot0t8ql?useUnicodetruecharacterEncodingutf-8useJDBCCompliantTimezoneShifttrueuseLegacyDatetimeCodefalseserverTimezoneGMT%2B8username: rootpassword: 123456# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseNamespringboot0t8ql
# username: sa
# password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:/testStatic/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/#mybatis
mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型 0:数据库ID自增, 1:用户输入ID,2:全局唯一ID (数字类型唯一ID), 3:全局唯一ID UUID;id-type: 1#字段策略 0:忽略判断,1:非 NULL 判断),2:非空判断field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
jdbc-type-for-null: null
6.2 用户管理及登录登出代码
/*** 用户账户用于保存用户登录信息(User)表控制层*/
Slf4j
RestController
RequestMapping(user)
public class UserController extends BaseControllerUser, UserService {/*** 服务对象*/Autowiredpublic UserController(UserService service) {setService(service);}/*** Token服务*/Autowiredprivate AccessTokenService tokenService;Autowiredprivate UserGroupService userGroupService;/*** 注册* param user* return*/PostMapping(register)public MapString, Object signUp(RequestBody User user) {// 查询用户MapString, String query new HashMap();query.put(username,user.getUsername());List list service.select(query, new HashMap()).getResultList();if (list.size()0){return error(30000, 用户已存在);}user.setUserId(null);user.setPassword(service.encryption(user.getPassword()));service.save(user);return success(1);}/*** 找回密码* param form* return*/PostMapping(forget_password)public MapString, Object forgetPassword(RequestBody User form,HttpServletRequest request) {JSONObject ret new JSONObject();String username form.getUsername();String code form.getCode();String password form.getPassword();// 判断条件if(code null || code.length() 0){return error(30000, 验证码不能为空);}if(username null || username.length() 0){return error(30000, 用户名不能为空);}if(password null || password.length() 0){return error(30000, 密码不能为空);}// 查询用户MapString, String query new HashMap();query.put(username,username);Query select service.select(query, service.readConfig(request));List list select.getResultList();if (list.size() 0) {User o (User) list.get(0);JSONObject query2 new JSONObject();JSONObject form2 new JSONObject();// 修改用户密码query2.put(user_id,o.getUserId());form2.put(password,service.encryption(password));service.update(query, service.readConfig(request), form2);return success(1);}return error(70000,用户不存在);}/*** 登录* param data* param httpServletRequest* return*/PostMapping(login)public MapString, Object login(RequestBody MapString, String data, HttpServletRequest httpServletRequest) {log.info([执行登录接口]);String username data.get(username);String email data.get(email);String phone data.get(phone);String password data.get(password);List resultList null;MapString, String map new HashMap();if(username ! null .equals(username) false){map.put(username, username);resultList service.select(map, new HashMap()).getResultList();}else if(email ! null .equals(email) false){map.put(email, email);resultList service.select(map, new HashMap()).getResultList();}else if(phone ! null .equals(phone) false){map.put(phone, phone);resultList service.select(map, new HashMap()).getResultList();}else{return error(30000, 账号或密码不能为空);}if (resultList null || password null) {return error(30000, 账号或密码不能为空);}//判断是否有这个用户if (resultList.size()0){return error(30000,用户不存在);}User byUsername (User) resultList.get(0);MapString, String groupMap new HashMap();groupMap.put(name,byUsername.getUserGroup());List groupList userGroupService.select(groupMap, new HashMap()).getResultList();if (groupList.size()1){return error(30000,用户组不存在);}UserGroup userGroup (UserGroup) groupList.get(0);//查询用户审核状态if (!StringUtils.isEmpty(userGroup.getSourceTable())){String sql select examine_state from userGroup.getSourceTable() WHERE user_id byUsername.getUserId();String res String.valueOf(service.runCountSql(sql).getSingleResult());if (resnull){return error(30000,用户不存在);}if (!res.equals(已通过)){return error(30000,该用户审核未通过);}}//查询用户状态if (byUsername.getState()!1){return error(30000,用户非可用状态不能登录);}String md5password service.encryption(password);if (byUsername.getPassword().equals(md5password)) {// 存储Token到数据库AccessToken accessToken new AccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll(-, ));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);// 返回用户信息JSONObject user JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put(token, accessToken.getToken());JSONObject ret new JSONObject();ret.put(obj,user);return success(ret);} else {return error(30000, 账号或密码不正确);}}/*** 修改密码* param data* param request* return*/PostMapping(change_password)public MapString, Object change_password(RequestBody MapString, String data, HttpServletRequest request){// 根据Token获取UserIdString token request.getHeader(x-auth-token);Integer userId tokenGetUserId(token);// 根据UserId和旧密码获取用户MapString, String query new HashMap();String o_password data.get(o_password);query.put(user_id ,String.valueOf(userId));query.put(password ,service.encryption(o_password));Query ret service.count(query, service.readConfig(request));List list ret.getResultList();Object s list.get(0);int count Integer.parseInt(list.get(0).toString());if(count 0){// 修改密码MapString,Object form new HashMap();form.put(password,service.encryption(data.get(password)));service.update(query,service.readConfig(request),form);return success(1);}return error(10000,密码修改失败);}/*** 登录态* param request* return*/GetMapping(state)public MapString, Object state(HttpServletRequest request) {JSONObject ret new JSONObject();// 获取状态String token request.getHeader(x-auth-token);// 根据登录态获取用户IDInteger userId tokenGetUserId(token);log.info([返回userId] {},userId);if(userId null || userId 0){return error(10000,用户未登录!);}// 根据用户ID获取用户MapString,String query new HashMap();query.put(user_id ,String.valueOf(userId));// 根据用户ID获取Query select service.select(query,service.readConfig(request));List resultList select.getResultList();if (resultList.size() 0) {JSONObject user JSONObject.parseObject(JSONObject.toJSONString(resultList.get(0)));user.put(token,token);ret.put(obj,user);return success(ret);} else {return error(10000,用户未登录!);}}/*** 登录态* param request* return*/GetMapping(quit)public MapString, Object quit(HttpServletRequest request) {String token request.getHeader(x-auth-token);JSONObject ret new JSONObject();MapString, String query new HashMap(16);query.put(token, token);try{tokenService.delete(query,service.readConfig(request));}catch (Exception e){e.printStackTrace();}return success(退出登录成功);}/*** 获取登录用户ID* param token* return*/public Integer tokenGetUserId(String token) {log.info([获取的token] {},token);// 根据登录态获取用户IDif(token null || .equals(token)){return 0;}MapString, String query new HashMap(16);query.put(token, token);AccessToken byToken tokenService.findOne(query);if(byToken null){return 0;}return byToken.getUser_id();}/*** 重写add* return*/PostMapping(/add)Transactionalpublic MapString, Object add(HttpServletRequest request) throws IOException {MapString,Object map service.readBody(request.getReader());map.put(password,service.encryption(String.valueOf(map.get(password))));service.insert(map);return success(1);}}
6.3 Md5 加密算法代码
public class MD5Utils {private static final Logger logger LoggerFactory.getLogger(MD5Utils.class);// 全局数组private final static String[] strDigits {0, 1, 2, 3, 4, 5,6, 7, 8, 9, a, b, c, d, e, f};/*** 16进制字符*/private final static char hexdigits[] {0, 1, 2, 3, 4, 5, 6, 7, 8,9, a, b, c, d, e, f};/*** 对文件全文生成MD5摘要** param file 要加密的文件* return MD5摘要码*/public static String getMD5ForFile(String filePath) {FileInputStream fis null;MessageDigest md null;try {md MessageDigest.getInstance(MD5);File file new File(filePath);if (!file.exists()) {return ;}fis new FileInputStream(file);byte[] buffer new byte[4096];int length -1;while ((length fis.read(buffer)) ! -1) {md.update(buffer, 0, length);}byte[] b md.digest();return byteToHexString(b);} catch (Exception ex) {logger.error(获取MD5信息发生异常 ex.toString());return null;} finally {try {if (null ! fis) {fis.close();}} catch (IOException e) {logger.error(获取MD5信息发生异常 e.toString());}}}/*** 把byte[]数组转换成十六进制字符串表示形式** param tmp 要转换的byte[]* return 十六进制字符串表示形式*/private static String byteToHexString(byte[] tmp) {String s;char str[] new char[16 * 2];int k 0;for (int i 0; i 16; i) {byte byte0 tmp[i];str[k] hexdigits[byte0 4 0xf];str[k] hexdigits[byte0 0xf];}s new String(str);return s;}// 返回形式为数字跟字符串private static String byteToArrayString(byte bByte) {int iRet bByte;// System.out.println(iRetiRet);if (iRet 0) {iRet 256;}int iD1 iRet / 16;int iD2 iRet % 16;return strDigits[iD1] strDigits[iD2];}// 返回形式只为数字private static String byteToNum(byte bByte) {int iRet bByte;System.out.println(iRet1 iRet);if (iRet 0) {iRet 256;}return String.valueOf(iRet);}// 转换字节数组为16进制字串private static String byteToString(byte[] bByte) {StringBuffer sBuffer new StringBuffer();for (int i 0; i bByte.length; i) {sBuffer.append(byteToArrayString(bByte[i]));}return sBuffer.toString();}public static String GetMD5Code(String strObj) {if (StringUtils.isEmpty(strObj)) {return ;}String resultString null;try {resultString new String(strObj);MessageDigest md MessageDigest.getInstance(MD5);// md.digest() 该函数返回值为存放哈希值结果的byte数组resultString byteToString(md.digest(strObj.getBytes()));} catch (NoSuchAlgorithmException ex) {ex.printStackTrace();}return resultString;}}
6.4 部分数据库代码 六、论文参考 七、其他案例 博主介绍硕士研究生专注于信息化技术领域开发与管理会使用java、标准c/c等开发语言以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年拥有近12年的管理工作经验拥有较丰富的技术架构思想、较扎实的技术功底和资深的项目管理经验。 先后担任过技术总监、部门经理、项目经理、开发组长、java高级工程师及c工程师等职位在工业互联网、国家标识解析体系、物联网、分布式集群架构、大数据通道处理、接口开发、远程教育、办公OA、财务软件工资、记账、决策、分析、报表统计等方面、企业内部管理软件(ERP、CRM等)、arggis地图等信息化建设领域有较丰富的实战工作经验拥有BS分布式架构集群、数据库负载集群架构、大数据存储集群架构以及高并发分布式集群架构的设计、开发和部署实战经验拥有大并发访问、大数据存储、即时消息等瓶颈解决方案和实战经验。 拥有产品研发和发明专利申请相关工作经验完成发明专利构思、设计、编写、申请等工作并获得发明专利1枚。 ----------------------------------------------------------------------------------- 大家在毕设选题、项目升级、论文写作就业毕业等相关问题都可以给我留言咨询非常乐意帮助更多的人或加w 908925859。 相关博客地址 csdn专业技术博客https://blog.csdn.net/mr_lili_1986?typeblog Iteye博客: https://www.iteye.com/blog/user/mr-lili-1986-163-com 获取论文及源代码请加微908925859 注每个学校每个老师对论文的格式要求不一样故本论文只供参考本论文页数达到60页以上字数在6000及以上。