——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot药房管理系统(java+springboot+vue+elementui+layui+mysql)
项目介绍
基于SpringBoot Vue的药房管理系统
角色:管理员、用户、服务人员
在系统首页可以查看首页,药品信息,疫情常识,保健品,系统公告,个人中心,购物车等内容进行详细操作
管理员:管理员登录系统后,可以对首页,个人中心,用户管理,保健品分类管理,药品分类管理,药品信息管理,疫情常识管理,保健品管理,系统管理,订单管理等进行相应的操作管理
用户:用户进入系统后能对首页,药品信息,疫情常识,保健品,系统公告,个人中心,购物车等功能进行操作
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+ElementUI+Layui+HTML+CSS+JS
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
文档介绍(课题背景与意义、系统实现功能、课题研究现状、系统相关技术、java技术、B/S架构、Mysql介绍、Mysql环境配置、Springboot框架、系统需求分析、系统功能、可行性研究、经济可行性、技术可行性、运行可行性、事件可行性、系统业务过程分析、系统业务过程分析、系统用例图、系统设计、数据库设计、系统整体设计、系统设计思想、系统流程图、系统详情设计、系统功能模块、系统功能模块、管理员功能模块):
药品信息展示页面:
系统公告展示页面:
信息详情展示:
药品订单展示详情:
后台登录展示页面:
后台药品管理列表展示:
药品信息展示页面:
——————————CodeStart——————————
用户管理控制层:
@RestController
@RequestMapping(“/user”)
@CrossOrigin
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(“/login”)
public AjaxInfo login(@RequestBody User user, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(session.getId());
User user1 = userService.findUser(user);
if (user1 != null) {
ajaxInfo.setCode(user1.getUserRight());
ajaxInfo.setMsg(“登陆成功!”);
ajaxInfo.setData(user1.getUserName());
session.setAttribute(“userName”, user1.getUserName());
System.out.println(session.getAttribute(“userName”));
} else {
ajaxInfo.setCode(-1);
ajaxInfo.setMsg(“账号或密码错误!”);
return ajaxInfo;
@RequestMapping(“/logout”)
public String login(HttpSession session) {
System.out.println(session.getId());
System.out.println(session.getAttribute(“userName”));
session.removeAttribute(“userName”);
return “success”;
@RequestMapping(“/registUser”)
public AjaxInfo regist(@RequestBody User user, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
User userByAcc = userService.getUserByAcc(user.getUserAcc());
if (session.getAttribute(“userName”) != null) {
if (userByAcc == null) {
userService.registUser(user);
ajaxInfo.setMsg(“注册成功!”);
} else {
ajaxInfo.setMsg(“账号已存在!请重新输入~”);
return ajaxInfo;
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryUser”)
public AjaxInfo queryUser(@RequestBody User user, HttpSession session) {
System.out.println(user);
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
User userByAcc = userService.getUserByAcc(user.getUserAcc());
if (userByAcc == null||userByAcc.getUserRight()!=2) {
ajaxInfo.setMsg(“该取药员不存在,请重新输入!”);
ajaxInfo.setCode(-1);
} else {
ajaxInfo.setMsg(“查询成功!”);
ajaxInfo.setCode(0);
ajaxInfo.setData(userByAcc);
return ajaxInfo;
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/deleteUser”)
public AjaxInfo deleteUser(@RequestBody User user, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
userService.deleteUser(user.getUserAcc());
ajaxInfo.setMsg(“删除成功!”);
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/registBuyer”)
public AjaxInfo registBuyer(@RequestBody Buyer buyer, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(“======”+buyer);
Buyer buyerByUserId = userService.getBuyerById(buyer.getBuyerId());
if (session.getAttribute(“userName”) != null) {
if (buyerByUserId == null) {
userService.registBuyer(buyer);
ajaxInfo.setMsg(“注册成功!”);
} else {
ajaxInfo.setMsg(“ID已存在!”);
return ajaxInfo;
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryBuyer”)
public AjaxInfo queryBuyer(@RequestBody Buyer buyer, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(buyer);
if (session.getAttribute(“userName”) != null) {
Buyer buyer1 = userService.getBuyerById(buyer.getBuyerId());
if (buyer1 == null) {
ajaxInfo.setMsg(“该采购员不存在,请重新输入!”);
ajaxInfo.setCode(-1);
} else {
ajaxInfo.setMsg(“查询成功!”);
ajaxInfo.setData(buyer1);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
System.out.println(“=================”+ajaxInfo.getCode());
return ajaxInfo;
@RequestMapping(“/deleteBuyer”)
public AjaxInfo deleteBuyer(@RequestBody Buyer buyer, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
userService.deleteBuyer(buyer.getBuyerId());
ajaxInfo.setMsg(“删除成功!”);
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/updateBuyer”)
public AjaxInfo updateBuyer(@RequestBody Buyer buyer, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
userService.updateBuyer(buyer);
ajaxInfo.setMsg(“更新成功!”);
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
后台管理员控制层:
@RestController
@CrossOrigin
@RequestMapping(“/admin”)
public class AdminController {
@Autowired
private AdminService adminService;
@RequestMapping(“/insertStorage”)
public AjaxInfo insertStroage(@RequestBody Instorage instorage, HttpSession session) {
System.out.println(instorage);
AjaxInfo ajaxInfo = new AjaxInfo();
Instorage in = new Instorage();
if (session.getAttribute(“userName”) != null) {
Medicine med = adminService.getMedicineBymedId(instorage.getMedId());
SimpleDateFormat time = new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
Date date = new Date();
in.setMedId(instorage.getMedId());
in.setBuyerId(instorage.getBuyerId());
in.setInDate(time.format(date));
in.setInStorageNum(instorage.getInStorageNum());
if (med == null) {
ajaxInfo.setCode(-1);
ajaxInfo.setMsg(“入库失败,该药品不存在!”);
} else {
adminService.insertInstorage(in);
adminService.updateMedStorage(instorage.getMedId(), instorage.getInStorageNum()+med.getMedStorage());
ajaxInfo.setMsg(“入库成功~”);
ajaxInfo.setCode(0);
return ajaxInfo;
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/insertMedicine”)
public AjaxInfo insertMedicine(@RequestBody Medicine medicine, HttpSession session) {
System.out.println(medicine);
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
Medicine med = adminService.getMedicineBymedId(medicine.getMedId());
if (med == null) {
adminService.insertMedicine(medicine);
ajaxInfo.setMsg(“插入信息成功~”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setMsg(“该药品已存在~”);
ajaxInfo.setCode(-1);
return ajaxInfo;
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryMedicine”)
public AjaxInfo queryMedicine(@RequestBody Medicine medicine, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
Medicine med = adminService.getMedicineBymedId(medicine.getMedId());
if (med == null) {
ajaxInfo.setMsg(“该药品不存在,请重新输入!”);
ajaxInfo.setCode(-1);
} else {
ajaxInfo.setMsg(“查询成功!”);
ajaxInfo.setData(med);
ajaxInfo.setCode(0);
System.out.println(med);
return ajaxInfo;
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
ajaxInfo.setCode(-2);
return ajaxInfo;
@RequestMapping(“/updateMedicine”)
public AjaxInfo updateMedicine(@RequestBody Medicine medicine, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
adminService.updateMedicine(medicine);
ajaxInfo.setMsg(“更新成功!”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/deleteMedicine”)
public AjaxInfo deleteMedicine(@RequestBody Medicine medicine, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
adminService.deleteMedicine(medicine.getMedId());
ajaxInfo.setMsg(“删除成功!”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/insertFactory”)
public AjaxInfo insertFactory(@RequestBody Factory factory, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
Factory fId = adminService.getFactoryByfactoryId(factory.getFactoryId());
if (fId == null) {
adminService.insertFactory(factory);
ajaxInfo.setMsg(“插入信息成功~”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setMsg(“该药厂已存在~”);
ajaxInfo.setCode(-1);
return ajaxInfo;
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryFactory”)
public AjaxInfo queryFactory(@RequestBody Factory factory, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
Factory fId = adminService.getFactoryByfactoryId(factory.getFactoryId());
if (fId == null) {
ajaxInfo.setMsg(“该药厂不存在,请重新输入!”);
ajaxInfo.setCode(-1);
} else {
ajaxInfo.setMsg(“查询成功!”);
ajaxInfo.setData(fId);
ajaxInfo.setCode(0);
System.out.println(fId);
return ajaxInfo;
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
ajaxInfo.setCode(-2);
return ajaxInfo;
@RequestMapping(“/updateFactory”)
public AjaxInfo updateFactory(@RequestBody Factory factory, HttpSession session) {
System.out.println(factory);
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
adminService.updateFactory(factory);
ajaxInfo.setMsg(“更新成功!”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/deleteFactory”)
public AjaxInfo deleteFactory(@RequestBody Factory factory, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
adminService.deleteFactory(factory.getFactoryId());
ajaxInfo.setMsg(“删除成功!”);
ajaxInfo.setCode(0);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
出库管理控制层:
@RestController
@CrossOrigin
@RequestMapping(“/take”)
public class TakeController {
@Autowired
private AdminService adminService;
@Autowired
private TakeService takeService;
@RequestMapping(“/insertStorage”)
public AjaxInfo outStroage(@RequestBody Outstorage outstorage, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
Outstorage o1 = new Outstorage();
if (session.getAttribute(“userName”) != null) {
Medicine med = adminService.getMedicineBymedId(outstorage.getMedId());
SimpleDateFormat time = new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
if (med == null) {
ajaxInfo.setCode(-1);
ajaxInfo.setMsg(“出库失败,该药品不存在!”);
} else {
if (med.getMedStorage()>=outstorage.getOutStorageNum()) {
o1.setMedId(outstorage.getMedId());
o1.setPatientId(outstorage.getPatientId());
o1.setOutStorageNum(outstorage.getOutStorageNum());
o1.setOutDate(time.format(new Date()));
adminService.updateMedStorage(med.getMedId(), med.getMedStorage()-outstorage.getOutStorageNum());
ajaxInfo.setMsg(“取药成功”);
ajaxInfo.setCode(0);
takeService.insertOutStorage(o1);
}else{
ajaxInfo.setCode(-1);
ajaxInfo.setMsg(“取药数量大于库存量,请重新输入!该药品当前库存量为:”+med.getMedStorage());
return ajaxInfo;
return ajaxInfo;
} else {
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
权限控制层管理控制层:
@RestController
@CrossOrigin
@RequestMapping(“/query”)
public class QueryController {
@Autowired
private QueryService queryService;
@RequestMapping(“/queryMedicine”)
public AjaxInfo queryMedicine(HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
List
ajaxInfo.setCode(0);
ajaxInfo.setMsg(“查询成功”);
ajaxInfo.setData(medicines);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryFactory”)
public AjaxInfo queryFactory(HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
List
ajaxInfo.setCode(0);
ajaxInfo.setData(factories);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryBuyer”)
public AjaxInfo queryBuyer1(HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
List
ajaxInfo.setCode(0);
ajaxInfo.setData(buyers);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/showInRecord”)
public AjaxInfo showInRecord(MedicineTable medicineTable,HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setCount(queryService.getInRecordCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(inRecord);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/showOutRecord”)
public AjaxInfo queryBuyer(MedicineTable medicineTable,HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setCount(queryService.getOutRecordCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(outRecord);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryMedicineByName”)
public AjaxInfo queryMedicineByName(MedicineTable medicineTable, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(medicineTable);
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setMsg(“查询成功”);
ajaxInfo.setCount(queryService.queryMedicineByNameCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(medicines);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryFactoryByName”)
public AjaxInfo queryFactoryByName(MedicineTable medicineTable, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(medicineTable);
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setMsg(“查询成功”);
ajaxInfo.setCount(queryService.queryFactoryByNameCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(factories);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryBuyerByName”)
public AjaxInfo queryBuyerByName(MedicineTable medicineTable, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(medicineTable);
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setMsg(“查询成功”);
ajaxInfo.setCount(queryService.queryBuyerByNameCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(buyers);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
@RequestMapping(“/queryUserByName”)
public AjaxInfo queryUserByName(MedicineTable medicineTable, HttpSession session) {
AjaxInfo ajaxInfo = new AjaxInfo();
System.out.println(medicineTable);
if (session.getAttribute(“userName”) != null) {
int page=(medicineTable.getPage()-1)*medicineTable.getLimit();
medicineTable.setPage(page);
List
ajaxInfo.setMsg(“查询成功”);
ajaxInfo.setCount(queryService.queryUserByNameCount(medicineTable));
ajaxInfo.setCode(0);
ajaxInfo.setData(users);
} else {
ajaxInfo.setCode(-2);
ajaxInfo.setMsg(“权限不足!请先登录~”);
return ajaxInfo;
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=211524190701201ke
https://javayms.pages.dev?id=211524190701201ke