インターネット上での WeChat の急速な発展と継続的な普及に伴い、多くの WeChat ミニ プログラムが開始され、従来の病院の順番待ち登録方法を廃止するだけでなく、すべてのインターネット方法の中でも傑出しており、効率の向上に役立ちます。病院の医療サービスの向上、通院時間の短縮。
このシステムは、病院の医師と患者の関係における実際のニーズに基づいて、WeChat アプレットとバックエンド管理システムに分割され、システム データベースの設計と分析には Mysql データベースが使用されます。データの取得は、主にオンライン予約機能、アナウンス クエリ機能、WeChat ユーザー ログイン機能、予約クエリなどの機能を含むデータ インタラクションを通じて実現でき、各モジュールの機能が具体的に設計および分析され、WeChat アプレットが設計されます。全体的なアーキテクチャと機能フレームワーク。
このプロジェクトでは、WeChat開発者ツール、IDEA、Navicatを開発に使用し、SpringBootフレームワークを使用して機能改善を行っており、プロジェクトの完了により、実用的な意味を持つ現在の予約モデルを実際に開発することができます。
キーワード:予約登録 WeChat アプレット SpringBoot 病院情報化
【599】WeChatアプレットをベースにした病院予約登録システムのソースコードと論文
抽象的な
インターネット微信端末の急速な発展と継続的な普及に伴い、多くの微信アプレットがオンラインで宣伝されています。病院の行列や登録という従来の方法をなくすだけでなく、あらゆる方法をインターネットで行うことができるため、病院の医療サービスの効率化と診察時間の短縮につながります。
鳳港病院の医師と患者の関係の実際のニーズに応じて、このシステムは WeChat 小規模プログラムとバックグラウンド管理システムに分割され、Mysql データベースを使用してシステム データベースの設計と分析が実現されます。データの取得は、主にオンライン予約機能、アナウンスクエリ機能、WeChat ユーザーログイン機能、予約クエリなどの機能を含むデータインタラクションを通じて実現できます。さらに、各モジュールの機能が具体的に設計および分析され、その後、WeChat アプレットの全体的なアーキテクチャと機能フレームワークが設計されます。
このプロジェクトは、開発に WeChat 開発者ツール、IDEA、Navicat を採用し、機能改善に SpringBoot フレームワークを使用し、プロジェクトの完了から実際の開発の現在の予定モードまでを経て、実用的な意義を持っています。
キーワード: 予約登録 WeChat ちょっとした手続き SpringBoot 病院情報
package com.hospital.system.controller;
import com.hospital.common.annotation.Log;
import com.hospital.common.config.Constant;
import com.hospital.common.controller.BaseController;
import com.hospital.common.domain.Tree;
import com.hospital.common.service.DictService;
import com.hospital.common.utils.*;
import com.hospital.system.domain.DeptDO;
import com.hospital.system.domain.RoleDO;
import com.hospital.system.domain.UserDO;
import com.hospital.system.service.RoleService;
import com.hospital.system.service.UserService;
import com.hospital.system.vo.UserVO;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RequestMapping("/sys/user")
@Controller
public class UserController extends BaseController {
private String prefix="system/user" ;
@Autowired
UserService userService;
@Autowired
RoleService roleService;
@Autowired
DictService dictService;
@RequiresPermissions("sys:user:user")
@GetMapping("")
String user(Model model) {
return prefix + "/user";
}
@GetMapping("/list")
@ResponseBody
PageUtils list(@RequestParam Map<String, Object> params) {
// 查询列表数据
Query query = new Query(params);
List<UserDO> sysUserList = userService.list(query);
int total = userService.count(query);
PageUtils pageUtil = new PageUtils(sysUserList, total);
return pageUtil;
}
@RequiresPermissions("sys:user:add")
@Log("添加用户")
@GetMapping("/add")
String add(Model model) {
List<RoleDO> roles = roleService.list();
model.addAttribute("roles", roles);
return prefix + "/add";
}
@RequiresPermissions("sys:user:edit")
@Log("编辑用户")
@GetMapping("/edit/{id}")
String edit(Model model, @PathVariable("id") Long id) {
UserDO userDO = userService.get(id);
model.addAttribute("user", userDO);
List<RoleDO> roles = roleService.list(id);
model.addAttribute("roles", roles);
return prefix+"/edit";
}
@RequiresPermissions("sys:user:add")
@Log("保存用户")
@PostMapping("/save")
@ResponseBody
R save(UserDO user) {
user.setPassword(MD5Utils.encrypt(user.getUsername(), user.getPassword()));
if (userService.save(user) > 0) {
return R.ok();
}
return R.error();
}
@RequiresPermissions("sys:user:edit")
@Log("更新用户")
@PostMapping("/update")
@ResponseBody
R update(UserDO user) {
if (userService.update(user) > 0) {
return R.ok();
}
return R.error();
}
@RequiresPermissions("sys:user:edit")
@Log("更新用户")
@PostMapping("/updatePeronal")
@ResponseBody
R updatePeronal(UserDO user) {
if (userService.updatePersonal(user) > 0) {
return R.ok();
}
return R.error();
}
@RequiresPermissions("sys:user:remove")
@Log("删除用户")
@PostMapping("/remove")
@ResponseBody
R remove(Long id) {
if (userService.remove(id) > 0) {
return R.ok();
}
return R.error();
}
@RequiresPermissions("sys:user:batchRemove")
@Log("批量删除用户")
@PostMapping("/batchRemove")
@ResponseBody
R batchRemove(@RequestParam("ids[]") Long[] userIds) {
int r = userService.batchremove(userIds);
if (r > 0) {
return R.ok();
}
return R.error();
}
@PostMapping("/exit")
@ResponseBody
boolean exit(@RequestParam Map<String, Object> params) {
// 存在,不通过,false
return !userService.exit(params);
}
@RequiresPermissions("sys:user:resetPwd")
@Log("请求更改用户密码")
@GetMapping("/resetPwd/{id}")
String resetPwd(@PathVariable("id") Long userId, Model model) {
UserDO userDO = new UserDO();
userDO.setUserId(userId);
model.addAttribute("user", userDO);
return prefix + "/reset_pwd";
}
@Log("提交更改用户密码")
@PostMapping("/resetPwd")
@ResponseBody
R resetPwd(UserVO userVO) {
try{
userService.resetPwd(userVO,getUser());
return R.ok();
}catch (Exception e){
return R.error(1,e.getMessage());
}
}
@RequiresPermissions("sys:user:resetPwd")
@Log("admin提交更改用户密码")
@PostMapping("/adminResetPwd")
@ResponseBody
R adminResetPwd(UserVO userVO) {
try{
userService.adminResetPwd(userVO);
return R.ok();
}catch (Exception e){
return R.error(1,e.getMessage());
}
}
@GetMapping("/tree")
@ResponseBody
public Tree<DeptDO> tree() {
Tree<DeptDO> tree = new Tree<DeptDO>();
tree = userService.getTree();
return tree;
}
@GetMapping("/treeView")
String treeView() {
return prefix + "/userTree";
}
@GetMapping("/personal")
String personal(Model model) {
UserDO userDO = userService.get(getUserId());
model.addAttribute("user",userDO);
model.addAttribute("hobbyList",dictService.getHobbyList(userDO));
model.addAttribute("sexList",dictService.getSexList());
return prefix + "/personal";
}
@ResponseBody
@PostMapping("/uploadImg")
R uploadImg(@RequestParam("avatar_file") MultipartFile file, String avatar_data, HttpServletRequest request) {
Map<String, Object> result = new HashMap<>();
try {
result = userService.updatePersonalImg(file, avatar_data, getUserId());
} catch (Exception e) {
return R.error("更新图像失败!");
}
if(result!=null && result.size()>0){
return R.ok(result);
}else {
return R.error("更新图像失败!");
}
}
}
package com.hospital.system.controller;
import com.hospital.common.annotation.Log;
import com.hospital.common.config.HospitalConfig;
import com.hospital.common.controller.BaseController;
import com.hospital.common.domain.FileDO;
import com.hospital.common.domain.Tree;
import com.hospital.common.service.FileService;
import com.hospital.common.utils.*;
import com.hospital.system.domain.MenuDO;
import com.hospital.system.service.MenuService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@Controller
public class LoginController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
MenuService menuService;
@Autowired
FileService fileService;
@Autowired
HospitalConfig hospitalConfig;
@GetMapping({"/", ""})
String welcome(Model model) {
return "redirect:/blog";
}
@Log("请求访问主页")
@GetMapping({"/index"})
String index(Model model) {
List<Tree<MenuDO>> menus = menuService.listMenuTree(getUserId());
model.addAttribute("menus", menus);
model.addAttribute("name", getUser().getName());
FileDO fileDO = fileService.get(getUser().getPicId());
if (fileDO != null && fileDO.getUrl() != null) {
if (fileService.isExist(fileDO.getUrl())) {
model.addAttribute("picUrl", fileDO.getUrl());
} else {
model.addAttribute("picUrl", "/img/photo_s.jpg");
}
} else {
model.addAttribute("picUrl", "/img/photo_s.jpg");
}
model.addAttribute("username", getUser().getUsername());
return "index_v1";
}
@GetMapping("/login")
String login(Model model) {
model.addAttribute("username", hospitalConfig.getUsername());
model.addAttribute("password", hospitalConfig.getPassword());
return "login";
}
@Log("登录")
@PostMapping("/login")
@ResponseBody
R ajaxLogin(String username, String password,String verify,HttpServletRequest request) {
try {
//从session中获取随机数
String random = (String) request.getSession().getAttribute(RandomValidateCodeUtil.RANDOMCODEKEY);
if (StringUtils.isBlank(verify)) {
return R.error("请输入验证码");
}
if (random.equals(verify)) {
} else {
return R.error("请输入正确的验证码");
}
} catch (Exception e) {
logger.error("验证码校验失败", e);
return R.error("验证码校验失败");
}
password = MD5Utils.encrypt(username, password);
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
Subject subject = SecurityUtils.getSubject();
try {
subject.login(token);
return R.ok();
} catch (AuthenticationException e) {
return R.error("用户或密码错误");
}
}
@GetMapping("/logout")
String logout() {
ShiroUtils.logout();
return "redirect:/login";
}
@GetMapping("/main")
String main() {
return "main";
}
/**
* 生成验证码
*/
@GetMapping(value = "/getVerify")
public void getVerify(HttpServletRequest request, HttpServletResponse response) {
try {
response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片
response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expire", 0);
RandomValidateCodeUtil randomValidateCode = new RandomValidateCodeUtil();
randomValidateCode.getRandcode(request, response);//输出验证码图片方法
} catch (Exception e) {
logger.error("获取验证码失败>>>> ", e);
}
}
}