当前位置: 首页 > news >正文

基于SpringBoot+Vue的药品管理系统【源码+文档+部署讲解】

系统介绍

基于SpringBoot+Vue实现的药品管理系统采用前后端分离的架构方式,系统实现了用户登录、数据中心、药库管理、药房管理、物资管理、挂号管理、系统管理、基础设置等功能模块。

技术选型

开发工具:idea2020.3+Webstorm2020.3

运行环境:jdk1.8+maven3.6.0+MySQL5.7+nodejs14.21.3

服务端技术:Springboot+Mybatis-Plus+SpringSecurity+Fastjson

前端技术:html+css+Vue+axios+Element-UI+echarts

成果展示

用户登录

image-20250117171349594

数据中心

image-20250117171550993

药库管理->药库库存

image-20250117171759876

药库管理->药库操作

image-20250117171729733

药房管理->药房库存

image-20250117171812715

物资管理->物资列表

image-20250117171841454

挂号管理->挂号列表

image-20250117171904583

系统管理->账号管理

image-20250117171918491

系统管理->角色设置

image-20250117172007442

系统管理->权限列表

image-20250117172015601

系统管理->登录日志

image-20250117172025297

系统管理->数据库备份

image-20250117172036288

基础设置->药品管理

image-20250117172048141

源码展示

@Api(tags="用户相关控制类")
@RestController
@RequestMapping("/user")
public class UserCtrl extends BaseCtrl {@Autowiredprivate UserService userService;@Autowiredprivate UserLoginLogService  userLoginLogService;@Autowiredprivate RoleService roleService;/*** 前台每次请求(如果VUEX没有)都需要获取最新的用户信息 包含权限* @param request* @param response* @return*/@ApiOperation(value = "获取最新的用户信息 包含权限")@RequestMapping(value="/info/", method= RequestMethod.POST)@ResponseBodypublic User info(HttpServletRequest request, HttpServletResponse response) {//获取当前登录用户User user = UserUtil.getCurrentPrincipal();user.setRoles(new HashSet<>(roleService.getRolesByUserId(user.getId())));return user;}@ApiOperation(value = "根据ID获取用户")@ApiImplicitParam(dataType="int", example="1", required=true, name="id", allowEmptyValue=false, value="用户ID")@GetMapping(value="/get/")@ResponseBodypublic User get() {//根据用户ID获取用户对象User user = userService.getById(UserUtil.getCurrentPrincipal().getId());return user;}/*** @param userRequest* @param request* @param response* @return*/@ApiOperation(value = "保存用户对象")@RequestMapping(value="/save/", method=RequestMethod.POST)@ResponseBodypublic APIResult<?> save(@RequestBody UserRequest userRequest, HttpServletRequest request, HttpServletResponse response) {//保存用户对象User user = userService.getById(userRequest.getId());user = UserRequest.parseUserRequest(userRequest, user);userService.saveUserAndRoles(user, userRequest.getRoleIds());return APIResult.newSuccessResult();}@ApiOperation(value = "根据ID停用账户")@ApiImplicitParam(dataType="int", example="1", required=true, name="id", allowEmptyValue=false, value="用户ID")@GetMapping(value="/close/{id:[0-9]+}")@ResponseBodypublic String close(@PathVariable(name="id") Integer id, HttpServletRequest request, HttpServletResponse response) {User user = userService.getById(id);User newUser = new User();newUser.setId(user.getId());newUser.setIsEnable(false);userService.updateById(newUser);return "";}@ApiOperation(value = "根据ID启用账户")@ApiImplicitParam(dataType="int", example="1", required=true, name="id", allowEmptyValue=false, value="用户ID")@GetMapping(value="/open/{id:[0-9]+}")@ResponseBodypublic String open(@PathVariable(name="id") Integer id, HttpServletRequest request, HttpServletResponse response) {User user = userService.getById(id);User newUser = new User();newUser.setId(user.getId());newUser.setIsEnable(true);userService.updateById(newUser);return "";}@ApiOperation(value = "根据ID加载用户详情")@ApiImplicitParam(dataType="int", example="1", required=true, name="id", allowEmptyValue=false, value="用户ID")@GetMapping(value="/detail/{id:[0-9]+}")@ResponseBodypublic UserFromResponse loadDateil(@PathVariable(name="id") Integer id, HttpServletRequest request, HttpServletResponse response) {//获取用户信息User user = userService.getById(id);//将用户信息放入reponse中UserResponse userResponse = new UserResponse(user);List<Role> userRoles = roleService.getRolesByUserId(user.getId());userResponse.setRoleId(userRoles.size() == 0 ? null : userRoles.get(0).getId());UserFromResponse userFromResponse = new UserFromResponse();//将用户reponse放入userFromReponse中userFromResponse.setUser(userResponse);//获取全部角色集合放入userFromReponse中List<Role> roles = roleService.list();
//        //放入reponse对象userFromResponse.setRoles(roles);return userFromResponse;}......
}

账号地址及其他说明

1、地址说明

登录页:http://localhost:8889

2、账号说明

管理员:admin/123456

http://www.lryc.cn/news/522764.html

相关文章:

  • 【CompletableFuture实战】
  • Redis 缓存穿透、击穿、雪崩 的区别与解决方案
  • Python自动化测试中定位隐藏菜单元素的策略
  • 【张雪峰高考志愿填报】合集
  • 53,【3】BUUCTF WEB october 2019 Twice SQLinjection
  • 【Linux系统】分区挂载
  • Oracle 可观测最佳实践
  • Ubuntu本地部署网站
  • 图数据库 | 18、高可用分布式设计(中)
  • Java 读取 Windows 设备的唯一性标识及定位
  • Spring boot框架下的RabbitMQ消息中间件
  • 1 行命令引发的 Go 应用崩溃
  • ScratchLLMStepByStep:训练自己的Tokenizer
  • G1原理—10.如何优化G1中的FGC
  • Java基础——概念和常识(语言特点、JVM、JDK、JRE、AOT/JIT等介绍)
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 浅谈计算机网络03 | 现代网络组成
  • Red Hat8:搭建FTP服务器
  • EWM 批次管理 / Batch Management
  • Java 面试题 - ArrayList 和 LinkedList 的区别,哪个集合是线程安全的?
  • 初学SpringBoot
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操解析
  • AWS S3 跨账户访问 Cross Account Access
  • Ubuntu20.4和docker终端指令、安装Go环境、安装搜狗输入法、安装WPS2019:保姆级图文详解
  • Kotlin语言的正则表达式
  • npm的包管理
  • 深度学习在文本情感分析中的应用
  • 【大模型系列篇】数字人音唇同步模型——腾讯开源MuseTalk
  • Formality:参考设计/实现设计以及顶层设计
  • RPA赋能内容创作:打造小红书入门词语图片的全自动化流程