基于SpringBoot+Vue的逍遥大药房管理系统设计与实现

news/2024/11/26 1:28:10/

博主介绍:

大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。
我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下进行项目开发,具有丰富的项目经验和开发技能。我的代码风格规范、优美、易读性强,同时也注重性能优化、代码重构等方面的实践和经验总结。
我有丰富的成品Java毕设项目经验,能够为学生提供各类个性化的开题框架和实际运作方案。同时我也提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。

🍅文末获取联系方式🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

Java项目精品实战案例(200套)

逍遥大药房管理系统源码下载地址:

https://download.csdn.net/download/weixin_54828627/87670073

一、效果演示

基于SpringBoot+Vue的逍遥大药房管理系统演示视频

二、前言介绍

伴随着全球信息化发展,行行业业都与计算机技术相衔接,计算机技术普遍运用于药房管理行业。实施计算机系统来管理可以降低逍遥大药房管理成本,使整个逍遥大药房行业的发展有显著提升。

本论文主要面向逍遥大药房管理中出现的一些常见问题,将其与计算机管理系统结合起来。通过这个系统,管理员可以更加方便的管理逍遥大药房信息;可以清楚的了解逍遥大药房信息管理情况;以管理员登录系统,通过首页,个人中心,用户管理,保健品分类管理,药品分类管理,药品信息管理,疫情常识管理,保健品管理,系统管理,订单管理等功能模板,可以有效的分配各用户的权限。逍遥大药房管理系统在逍遥大药房管理中的应用,可以很大程度上提高管理水平,获得更好的经济效益。

三、主要技术

技术名作用
SpringBoot后端框架
Vue前端框架
MySQL数据库

四、系统设计(部分)

4.1、主要功能模块设计         

统分为管理员功能模块,用户功能模块。

用户登录系统,可以实现首页,药品信息,疫情常识,保健品,系统公告,个人中心,购物车等内容进行操作;

管理员功能模块为管理员操作界面,主要包括首页,个人中心,用户管理,保健品分类管理,药品分类管理,药品信息管理,疫情常识管理,保健品管理,系统管理,订单管理等功能;

​​

4.2、系统登录设计 

​​

五、运行截图

5.1、系统功能模块

逍遥大药房管理系统,在系统首页可以查看首页,药品信息,疫情常识,保健品,系统公告,个人中心,购物车等内容进行详细操作,如图5-1所示。

图5-1系统首页界面图

5.1.1、药品信息

图5-2药品信息界面图

5.1.2、疫情常识

图5-3疫情常识界面图

5.1.3、保健品

图5-4保健品界面图

5.1.4、用户注册

图5-5用户注册界面图

5.1.5、个人中心

图5-6个人中心界面图

5.2、管理员功能模块

管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,等信息点击登录进行登录操作,如图5-7所示。

图5-7管理员登录界面图

管理员登录系统后,可以对首页,个人中心,用户管理,保健品分类管理,药品分类管理,药品信息管理,疫情常识管理,保健品管理,系统管理,订单管理等进行相应的操作管理,如图5-8所示。

图5-8管理员功能界面图

5.2.1、用户管理

图5-9用户管理界面图

5.2.2、保健品分类管理

图5-10保健品分类管理界面图

5.2.3、药品信息管理

图5-11药品信息管理界面图

5.2.4、疫情常识管理

图5-12疫情常识管理界面图

5.2.5、保健品管理

图5-13保健品管理界面图

5.2.6、系统管理

图5-14系统管理界面图

5.2.7、订单管理

图5-15订单管理界面图

六、数据库设计(部分)

1)根据用户需求,确定数据库信息进行保存

对用户的需求分析是数据库设计的第一阶段,用户的需求调研,熟悉药房运作流程,系统要求,这些都是以概念模型为基础的。

(2)设计数据的概念模型

概念模型与数据建模用户的观点一致,用于信息世界的建模工具。通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

用户管理实体图如图所示:

​​

图用户管理实体图

药品信息管理实体图如图所示:

 ​​

 药品信息管理实体图

七、代码参考

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.AddressEntity;
import com.entity.view.AddressView;import com.service.AddressService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 地址* 后端接口* @author * @email * @date 2022-04-24 10:26:04*/
@RestController
@RequestMapping("/address")
public class AddressController {@Autowiredprivate AddressService addressService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,AddressEntity address,HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {address.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();PageUtils page = addressService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, address), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,AddressEntity address, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {address.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();PageUtils page = addressService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, address), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( AddressEntity address){EntityWrapper<AddressEntity> ew = new EntityWrapper<AddressEntity>();ew.allEq(MPUtil.allEQMapPre( address, "address")); return R.ok().put("data", addressService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(AddressEntity address){EntityWrapper< AddressEntity> ew = new EntityWrapper< AddressEntity>();ew.allEq(MPUtil.allEQMapPre( address, "address")); AddressView addressView =  addressService.selectView(ew);return R.ok("查询地址成功").put("data", addressView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){AddressEntity address = addressService.selectById(id);return R.ok().put("data", address);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){AddressEntity address = addressService.selectById(id);return R.ok().put("data", address);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody AddressEntity address, HttpServletRequest request){address.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(address);address.setUserid((Long)request.getSession().getAttribute("userId"));Long userId = (Long)request.getSession().getAttribute("userId");if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", userId));}address.setUserid(userId);addressService.insert(address);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody AddressEntity address, HttpServletRequest request){address.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(address);address.setUserid((Long)request.getSession().getAttribute("userId"));Long userId = (Long)request.getSession().getAttribute("userId");if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", userId));}address.setUserid(userId);addressService.insert(address);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody AddressEntity address, HttpServletRequest request){//ValidatorUtils.validateEntity(address);if(address.getIsdefault().equals("是")) {addressService.updateForSet("isdefault='否'", new EntityWrapper<AddressEntity>().eq("userid", request.getSession().getAttribute("userId")));}addressService.updateById(address);//全部更新return R.ok();}/*** 获取默认地址*/@RequestMapping("/default")public R defaultAddress(HttpServletRequest request){Wrapper<AddressEntity> wrapper = new EntityWrapper<AddressEntity>().eq("isdefault", "是").eq("userid", request.getSession().getAttribute("userId"));AddressEntity address = addressService.selectOne(wrapper);return R.ok().put("data", address);}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){addressService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<AddressEntity> wrapper = new EntityWrapper<AddressEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}if(!request.getSession().getAttribute("role").toString().equals("管理员")) {wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));}int count = addressService.selectCount(wrapper);return R.ok().put("count", count);}}

七、技术交流

大家点赞、收藏、关注、评论啦 、查看文章结尾👇🏻获取联系方式👇🏻

精彩专栏推荐订阅:下方专栏👇🏻👇🏻👇🏻👇🏻

Java项目精品实战案例(200套)

​​

​​​​​


http://www.ppmy.cn/news/161056.html

相关文章

尼康d7200拍照_尼康摄像机好吗 尼康D7200摄像机测评【图文】

导语&#xff1a;在这个科技发展迅速的时代&#xff0c;数码产品在现在的市场上面越来越多&#xff0c;而我们也因为更多的数码产品为生活增添了不一样的乐趣。说到这不得不提的数码产品就是摄像机&#xff0c;摄像机在市场上面不乏有很多的品牌&#xff0c;但今天小编想让大家…

JavaWeb17(过滤器监听器)

目录 1.过滤器/拦截器-Filter. 1.1过滤器介绍. 1.2过滤器使用步骤. 1.2.1创建过滤器. 1.2.2映射配置. 1.3案例1-编码设置. 1.4案例2-登陆状态验证. 1.4过滤链-略带. 2.监听器-Listener. 2.1监听器介绍. 2.2案例演示1-统计在线人数. 2.3案例演示2-统计历史在线人数.…

灵性·挖掘:自我迭代之路

灵性挖掘&#xff1a;自我迭代之路 灵性的起点强者三关破情关破情关一&#xff0c;人都活在自己心情和感受中&#xff0c;没有活在结果中破情关二&#xff0c;强者对做事也不动情&#xff0c;从来没有对某一件事百分百动情&#xff0c;没有感受和心情破情关三&#xff0c;我不是…

T9键盘

/* 重庆第5届ACM题 &#xff1a; T9键盘&#xff1a;在手机上输入字符串&#xff0c;求手指移动的次数 */ #include<stdio.h> main() {char s[501];int b[50],i,k,T,count,n1;scanf("%d", &T); //有T组输入 while(n<T){scanf("%s", s); /…

达人评测 i9 13900k和i9 12900k差距

i9-13900K采用5nm工艺24 核 32 线程&#xff0c;睿频 5.8GHz&#xff0c;基础功耗 125W&#xff0c;最大睿频功耗 253W; 组装电脑选i9 13900K还是i9 12900k怎么搭配更合适这些点很重要 http://www.adiannao.cn/du i9-12900K 处理器默频 3.2GHz&#xff0c;最大睿频 5.2GHz&…

r9 7845hx和i9 13900hx选哪个 锐龙r97845hx和酷睿i913900hx对比

i9 13900Hx采用10nm制作工艺最高睿频5.4GHz二十四核心三十二线程三级缓存36MB 热设计功耗(TDP) 157W 选i9 13900hx和r9 7845hx这些点很重要看过你就懂了 http://www.adiannao.cn/dy 锐龙9 7845HX采用Zen4架构&#xff0c;十二核心二十四线程&#xff0c;基础频率3.0GHz&#…

达人评测 i5 13600kf和i7 13700kf选哪个好

i5-13600KF采用10工艺 14 核 20 线程&#xff0c;睿频 5.1GHz&#xff0c;三级缓存 24.00 MB基础功耗 125W&#xff0c;最大睿频功耗 181W F组装电脑选 i5 13600kf还是7 13700kf怎么搭配更合适这些点很重要 http://www.adiannao.cn/du i7-13700KF采用10 nm工艺 16 核 24 线程&…

bay trail android 平板,英特尔再推9款平板专用BayTrail-T处理器

英特尔专为平板电脑所研发的BayTrail-T高效能芯片&#xff0c;能够为平板电脑产品提供超长电池续航和卓越的性能表现&#xff0c;并且支持Windows 和Android软件。大部分的10英寸以及更小尺寸的Windows平板电脑产品都采用BayTrail-T芯片&#xff0c;而选用BayTrail-T芯片的Andr…