基于Java+SpringBoot+vue的口腔管家平台设计与实现

 博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战

文末获取源码联系

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

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

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计(部分)

4.1、主要功能模块设计         

4.2、系统登录设计

五、运行截图

5.1、管理员功能模块

5.1.1、管理员登录

5.1.2、个人中心

5.1.3、个人信息

5.1.4、会员管理

5.1.5、病例就诊信息管理

5.1.6、牙齿保健产品管理

5.1.7、轮播图

5.1.8、预约挂号管理

5.1.9、药品信息管理

5.1.10、留言板管理

5.2、会员功能模块

5.2.1、个人信息

5.2.2、我的收藏管理

5.2.3、预约挂号管理

5.2.4、订单管理

5.3、前台首页功能模块

5.3.1、口腔管理平台

5.3.2、登录、会员注册

5.3.3、牙齿保健产品

5.3.4、确认下单

5.3.5、收货地址添加

六、数据库设计(部分)

七、代码参考

八、源码获取


一、效果演示

SpringBoot+vue的口腔管家平台演示视频

二、前言介绍

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,口腔管理平台当然也不能排除在外。口腔管理平台是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。

三、主要技术

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

四、系统设计(部分)

4.1、主要功能模块设计         

4.2、系统登录设计

五、运行截图

5.1、管理员功能模块

5.1.1、管理员登录

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第1张图片

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

管理员登录进入口腔管理平台可以查看首页、个人中心、会员管理、病例就诊信息管理、牙齿保健产品管理、复查提醒管理、预约挂号管理、药品信息管理、留言板管理、系统管理、订单管理等信息。

5.1.2、个人中心

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第2张图片

图5-2个人中心界面图

5.1.3、个人信息

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第3张图片

图5-3个人信息界面图

5.1.4、会员管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第4张图片

图5-4会员管理界面图

5.1.5、病例就诊信息管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第5张图片

图5-5病例就诊信息管理界面图

5.1.6、牙齿保健产品管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第6张图片

图5-6牙齿保健产品管理界面图

5.1.7、轮播图

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第7张图片

图5-7轮播图管理界面图

5.1.8、预约挂号管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第8张图片

图5-8预约挂号管理界面图

5.1.9、药品信息管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第9张图片

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

5.1.10、留言板管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第10张图片

图5-10留言板管理界面图

5.2、会员功能模块

会员登录进入口腔管理平台可以查看首页、个人中心、病例就诊信息管理、复查提醒管理、预约挂号管理、我的收藏管理、订单管理等内容。

5.2.1、个人信息

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第11张图片

图5-11个人信息界面图

5.2.2、我的收藏管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第12张图片

图5-12我的收藏管理界面图

5.2.3、预约挂号管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第13张图片

图5-13预约挂号管理界面图

5.2.4、订单管理

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第14张图片

图5-14订单管理界面图

5.3、前台首页功能模块

5.3.1、口腔管理平台

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第15张图片

图5-15前台首页界面图

5.3.2、登录、会员注册

图5-16登录、会员注册界面图

5.3.3、牙齿保健产品

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第16张图片

图5-17牙齿保健产品界面图

5.3.4、确认下单

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第17张图片

图5-18确认下单界面图

5.3.5、收货地址添加

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第18张图片

图5-19收货地址添加界面图

六、数据库设计(部分)

通过口腔管理平台的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:

管理员信息属性图如图所示。

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第19张图片

管理员信息实体属性图

会员管理实体属性图如图所示。

基于Java+SpringBoot+vue的口腔管家平台设计与实现_第20张图片

会员管理属性图

七、代码参考

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.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.MPUtil;
import com.utils.CommonUtil;


/**
 * 地址
 * 后端接口
 * @author 
 * @email 
 * @date 2021-01-13 16:52:48
 */
@RestController
@RequestMapping("/address")
public class AddressController {
    @Autowired
    private AddressService addressService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map params,AddressEntity address, HttpServletRequest request){
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		address.setUserid((Long)request.getSession().getAttribute("userId"));
    	}
        EntityWrapper ew = new EntityWrapper();
		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 params,AddressEntity address, HttpServletRequest request){
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		address.setUserid((Long)request.getSession().getAttribute("userId"));
    	}
        EntityWrapper ew = new EntityWrapper();
		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 ew = new EntityWrapper();
      	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);
    }

    /**
     * 前端详情
     */
    @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().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().eq("userid", userId));
    	}
    	address.setUserid(userId);
        addressService.insert(address);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody AddressEntity address, HttpServletRequest request){
        //ValidatorUtils.validateEntity(address);
        if(address.getIsdefault().equals("是")) {
    		addressService.updateForSet("isdefault='否'", new EntityWrapper().eq("userid", request.getSession().getAttribute("userId")));
    	}
        addressService.updateById(address);//全部更新
        return R.ok();
    }
    
    /**
     * 获取默认地址
     */
    @RequestMapping("/default")
    public R defaultAddress(HttpServletRequest request){
    	Wrapper wrapper = new EntityWrapper().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 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 wrapper = new EntityWrapper();
		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项目精品实战案例(300套)

你可能感兴趣的:(Java精品项目实战,java,springboot,vue.js,大学生项目实战,mysql数据库)