基于java+ssm的在线求医问药微信小程序系统(源码+lw+部署文档+讲解等)

详细视频演示

请联系我获取更详细的演示视频`

背景及意义

背景:
随着互联网技术的飞速发展和人们生活节奏的加快,传统医疗模式在满足人们便捷就医需求方面逐渐显露出局限性。患者常常面临着挂号难、看病时间短、就医流程繁琐等问题。同时,移动互联网的普及使得人们越来越依赖智能手机和微信等社交平台进行各种活动。在这样的背景下,基于 Java + SSM 的在线求医问药微信小程序系统应运而生,旨在为患者提供更加便捷、高效的医疗服务渠道。
意义:
该系统具有重要意义。对于患者而言,能够随时随地通过微信小程序咨询医生,获取专业的医疗建议,节省了时间和精力,尤其对于一些轻症患者或慢性病患者的日常咨询和健康管理非常有帮助。医生也可以利用碎片化时间为更多患者服务,提高医疗资源的利用效率。从医疗行业整体来看,促进了医疗服务的信息化和智能化发展,打破了地域限制,拓宽了医疗服务的覆盖范围,有助于缓解医疗资源分配不均的问题,提升全社会的医疗服务水平和健康保障能力。 这里是引用

前言

这里是 💗博主介绍:✌计算机全栈开发工作室,接各类程序定制开发,有需要的滴滴✌
💗主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
🌟文末获取源码+数据库🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人。引用

具体实现截图

在这里插入图片描述

技术栈
Java语言

本系统的开发主要用Java这一门开发语言。作为开发语言,这是一种通用的开源脚本语言。这种语法主要是将C语言、Java和Perl等语言的相关特点进行总结吸收形成自身特点,使得更加方便学习,当前广泛在Web领域进行使用。此语法的独特之处在于将C、Java、Perl这三种语言进行了归纳,并创新出Java具有自己特点的语法。它在执行动态网页方面相对于CGI和Perl语言更加高效。用动态页面如果是使用Java语言,那么相对于其它的编程语言,Java的执行主要是体现在将程序嵌入到HTML文档中,相对于其它语言,其执行的效率一般都领先于其它的语言。此外,Java编译后代码方面也是做得比较好的,一般其编译能够使代码的运行速度比一般语言都要快[7][8]。
其主要特性有以下几个方面:
1)免费性
和其它技术相比,Java本身免费且是开源代码。
2)快捷性
使用Java编程的程序一般开发比较快,而且系统运行也比较快,也易于学习[2]。嵌入于HTML的这种方式,使其相对于其它开发语言编辑起来相对简单,实用性也更加强,对初学者是比较适用的。
3)跨平台性强
由于Java是运行在服务器的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS、Android等平台
4)效率高
Java占用相当少的系统资源。
Java是面向对象且独立于架构的动态脚本语言,使用Java和HTML编写WEB页面,Java服务器先对页面的Java代码进行解析,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。Java是一种源代码开放程序,拥有很好的跨平台兼容性。Java代码可以在Window系统以及许多版本的linux系统上完美运行。
Java语言是不需要任何特殊的开发环境的,所以歌手可以直接在WEB页面中输入Java命令代码。在WEB页面中,所有的Java代码都被放置在“<?JSP”和“?>”中。。

SprigBoot框架

Spring是Java EE开发中最重要的设计层框架之一,开源、能够很好地处理业务逻辑层和其余层之间的松散耦合关系[4]。Spring Boot框架基于Spring,是Pivotal团队提供的全新的Java框架,它继承了Spring的优良特性,简化Spring应用的开发及搭建过程,实现了自动配置,使程序员全身心地投入到业务逻辑代码的编写中去,还能更快捷的部署和监控系统,是后端开发的优势工具,很大程度的提高开发效率[5]。本系统利用Spring Boot的优势进行后台管理系统的设计。

核心代码

package com.sdms.controller;

import com.sdms.bean.system.Role;
import com.sdms.bean.system.User;
import com.sdms.service.RoleService;
import com.sdms.service.UserService;
import com.sdms.util.MyStringUtils;
import com.sdms.util.QueryResult;
import com.sdms.util.ResultUtils;
import com.sdms.vo.UserVO;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@Controller
public class UserController {

@Resource
private UserService userService;

@Resource
private RoleService roleService;

//使用thymeleaf模板渲染,这里的字符串指的是URL
@RequestMapping("/admin/user-list")
public String toUserList(Model model) {
    List<Role> roleList = roleService.findAll();
    model.addAttribute("roleList", roleList);
    return "admin/user-list";//这里的字符串指的是模板 /admin/user-list.html
}

//使用ajax在前端渲染

/**
 * @param pageFromLayUI  计数方式是 1,2,3,4...,n  默认为 1 ;
 *                       但是 Pageable.page 的计数方式是 0,1,2,3,...,n-1 默认为 0
 * @param limitFromLayUI 等于 Pageable.size
 * @return 能被 layUI 接受的 JSON, 格式为 { "code": 0, "msg": "OK", count": 14, "data":[{},{},{}] }
 */
@RequestMapping("/admin/users")
@ResponseBody
public ResultUtils<UserVO> findAll(@RequestParam(value = "page", defaultValue = "1") Integer pageFromLayUI,
                                   @RequestParam(value = "limit", defaultValue = "10") Integer limitFromLayUI,
                                   @RequestParam(value = "queryParam[userId]", defaultValue = "") String userId,
                                   @RequestParam(value = "queryParam[keyWord]", defaultValue = "") String keyWord,
                                   @RequestParam(value = "queryParam[roleId]", defaultValue = "-1") String roleId,
                                   @RequestParam(value = "queryParam[queryType]", defaultValue = "1") String queryType) {
    //0精确搜索
    if ("0".equals(queryType)) {
        //精确查询
        if (MyStringUtils.isNumeric(userId)) {
            //传入的用户编号是数字
            User user = userService.findUserById(Long.parseLong(userId));
            if (null != user) {
                UserVO userVO = UserVO.convert(user);
                List<UserVO> userVOList = new ArrayList<>();
                userVOList.add(userVO);
                return ResultUtils.layUITable(1L, userVOList);
            }
        }
        //传入的用户编号不是数字 或者 null==user
        return ResultUtils.layUITable(0L, new ArrayList<>());
    } else {
        //模糊查询
        User param = new User();
        if (null == keyWord) {
            keyWord = "";
        }
        String s = StringUtils.trimAllWhitespace(keyWord);
        param.setUsername(s);
        QueryResult<UserVO> queryResult;
        if ("-1".equals(roleId) || !MyStringUtils.isNumeric(roleId)) {
            //不限用户角色
            queryResult = userService.queryByKeyWordLikeNoRole(pageFromLayUI - 1, limitFromLayUI, param);
        } else {
            //限制用户角色
            queryResult = userService.queryByKeyWordLikeWithRole(pageFromLayUI - 1, limitFromLayUI, param, Long.parseLong(roleId));
        }
        //返回JSON结果
        return ResultUtils.layUITable(queryResult.getTotalCount(), queryResult.getData());
    }
}

//使用thymeleaf模板渲染
@RequestMapping("/admin/user-input")
//@RequiresPermissions(value = {"user-update", "user-add"}, logical = Logical.OR)
public String toUserInput(Long userId, Model model) {
    if (-1 == userId) {
        model.addAttribute("operation", "添加用户");
        model.addAttribute("user", new User());
    } else {
        model.addAttribute("operation", "更新用户");
        User user = userService.findUserById(userId);
        model.addAttribute("user", user);
    }
    List<Role> roles = roleService.findAll();
    model.addAttribute("roles", roles);
    return "admin/user-input";//这里的字符串指的是 /admin/user-input.html
}

@RequestMapping("/admin/user-save")
//@RequiresPermissions(value = {"user-update", "user-add"}, logical = Logical.OR)
public String save(User user) {
    userService.save(user);
    return "redirect:/admin/user-list";
}

@RequestMapping("/admin/user-delete")
//@RequiresRoles(value = "admin")
//@RequiresPermissions({"user-delete"})
public String deleteById(Long userId) {
    userService.deleteById(userId);
    return "redirect:/admin/user-list";
}

@RequestMapping("/admin/user-deleteAll")
//@RequiresPermissions({"user-delete"})
//@RequiresRoles(value = "admin")
public String deleteById(String ids) {
    userService.deleteAll(ids);
    return "redirect:/admin/user-list";
}

@RequestMapping("/changeUserInfo")
public String changeUserInfo(User user, HttpSession session){
    userService.changeUserInfo(user);
    session.setAttribute("user",userService.findUserById(user.getId()));
    return "redirect:/login";
}

}

源码获取

文章下方名片联系我即可~
✌💗大家点赞、收藏、关注、评论啦 、查看✌💗
👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值