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

基于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 {
    @Autowired
    private UserService userService;

    @Autowired
    private UserLoginLogService  userLoginLogService;

    @Autowired
    private RoleService roleService;

    /**
     * 前台每次请求(如果VUEX没有)都需要获取最新的用户信息 包含权限
     * @param request
     * @param response
     * @return
     */
    @ApiOperation(value = "获取最新的用户信息 包含权限")
    @RequestMapping(value="/info/", method= RequestMethod.POST)
    @ResponseBody
    public 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/")
    @ResponseBody
    public 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)
    @ResponseBody
    public 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]+}")
    @ResponseBody
    public 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]+}")
    @ResponseBody
    public 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]+}")
    @ResponseBody
    public 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.kler.cn/a/508431.html

相关文章:

  • C#表达式和运算符
  • 浅谈云计算21 | Docker容器技术
  • 精选算法合集
  • 第34天:Web开发-PHP应用鉴别修复AI算法流量检测PHP.INI通用过滤内置函数
  • 贪心算法(题1)区间选点
  • 【机器学习实战入门】使用OpenCV和Keras的驾驶员疲劳检测系统
  • 记一次linux下的c++ arm程序调试
  • c语言中单引号和双引号用法详解
  • cmake foreach 条件判断
  • SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理
  • 商用车电子电气零部件电磁兼容条件和试验(8)—辐射抗干扰(ALSE)和便携式发射机抗干扰(HPT)
  • (01)STM32—GPIO
  • Django MySQL数据库配置完全指南
  • pytorch张量复制方法介绍
  • 自动化之Ansible
  • AUTOSAR通信篇 - PDU和收发数据
  • PMML和XML-标记语言异同
  • %.*s——C语言中printf 函数中的一种格式化输出方式
  • 介绍UDP协议
  • PCL 点云按时间进行渲染赋色【2025最新版】
  • 图像处理|闭运算
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 快慢指针:链表问题的利器
  • unity免费资源2025-1-17
  • Java合并多个List集合的方法
  • AUTOSAR从入门到精通专栏总目录