Java毕业设计基于Springboot+vue的宠物领养宠物商品购物商城系统

  • Post author:
  • Post category:java




项目介绍

随着迅速的发展,宠物饲养也较以前发生很大的变化,宠物救助网站系统以其独有的优势脱颖而出。“宠物领养系统”是以JAVA程序设计语言课为基础的设计出适合宠物救助网站,其开发过程主要包括后台数据库的建立与维护、中间业务逻辑的处理及前端界面数据的显示与交互。

本系统从用户的角度出发,结合当前的环境而开发的,在开发语言上是使用的Java语言,在框架上我们是使用的springboot框架,数据库方面使用的是MySQL数据库,开发工具为IDEA。

宠物领养系统根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页 ,宠物信息,宠物用品,宠物资讯,留言板,后台管理,购物车等功能;后台部分主要给管理员使用的,主要功能包括系统首页,个人中心,用户管理,宠物分类管理,宠物信息管理,宠物领养管理,宠物用品管理,留言板,系统管理,订单管理等功能。通过这些功能基本可以满足宠物领养的需求。

随着国内经济的不断发展,人民收入水平的提高以及对于情感需求的日益强,宠物饲养成为了一种流行趋势。随我国已经把宠物作为一种生活的方式已得到普遍认可,伴随着人民精神文明的提高,越来越多的宠物已经和我们成为了好朋友。但是,宠物商品的相关信息已经成为重要的话题。宠物的增多不可避免地造成了流浪宠物的泛滥,它们大多来自被主人遗弃的动物或这些动物繁衍的后代。它们没有管束,游走在人类居住区的边缘,给人们的生活带来了不小的困扰。如今也存在由爱心人士组织的流浪动物救助站收养一些流浪狗,但有时救助站的宠物过多,难以应付以致很多宠物都只能被执行“安乐死”。目前养宠物的人数增加的非常迅速,越来越多的宠物信息的网站应运而生。为了解决当前的宠物领养问题,传统低效的线下登记领养逐渐被取代,随之而来的是使用终端设备便可浏览访问的宠物领养平台。将传统宣传与日益成熟的网络宣传结合在一起,打造一个兼具传统和电子商务特色的宠物销售网站,极具意义。宠物领养平台通过网络完成了整体智能化操作,为了实现系统,需要管理和保存的数据非常多,例如网站的首页、个人中心、科普信息等信息模块以及系统管理模块。对于用户而言,不仅节省了时间,而且可以随时查询各种流浪动物的信息;对于管理员而言,线上宠物信息管理扩大了信息传播范围,使流浪动物能更早的被发现和救助,同时也方便管理员对动物信息和用户信息的整理和修改,极大地提高了效率。。



技术介绍

1、管理员账号:abo 密码:abo

2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。

3.配置好Tomcat并点击启动按钮即可运行

4.数据库连接src\main\resources\application.yml中修改

5.maven包版本apache-maven-3.3.9.

开发语言:Java

框架:SSM

前端框架:vue.js

JDK版本:JDK1.8+

服务器:tomcat8+

数据库工具:Navicat

开发软件:idea 支持eclipse

Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。

Springboot的基础结构共三个文件,具体如下:

src/main/java:程序开发以及主程序入口;

src/main/resources:配置文件;

src/test/java:测试程序。

ssm的数据库配置默认支持两种格式的配置文件

1,application.properties

2,application.yaml



项目界面

宠物领养系统根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页 ,宠物信息,宠物用品,宠物资讯,留言板,后台管理,购物车等功能;后台部分主要给管理员使用的,主要功能包括系统首页,个人中心,用户管理,宠物分类管理,宠物信息管理,宠物领养管理,宠物用品管理,留言板,系统管理,订单管理等功能。通过这些功能基本可以满足宠物领养的需求。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

宠物领养系统根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页 ,宠物信息,宠物用品,宠物资讯,留言板,后台管理,购物车等功能;后台部分主要给管理员使用的,主要功能包括系统首页,个人中心,用户管理,宠物分类管理,宠物信息管理,宠物领养管理,宠物用品管理,留言板,系统管理,订单管理等功能。通过这些功能基本可以满足宠物领养的需求。宠物领养系统具体功能如下图所示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



关键代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}



目录

目 录

目 录 III

1 绪论 1

1.1 研究背景 1

1.2 目的和意义 1

1.3 论文结构安排 2

2 相关技术 3

2.1 Springboot框架介绍 3

2.2 B/S结构介绍 3

2.3 Mysql数据库介绍 4

3 系统分析 6

3.1 系统可行性分析 6

3.1.1 技术可行性分析 6

3.1.2 经济可行性分析 6

3.1.3 运行可行性分析 6

3.2 系统性能分析 7

3.2.1 易用性指标 7

3.2.2 可扩展性指标 7

3.2.3 健壮性指标 7

3.2.4 安全性指标 8

3.3 系统流程分析 8

3.3.1 操作流程分析 8

3.3.2 登录流程分析 9

3.3.3 信息添加流程分析 10

3.3.4 信息删除流程分析 11

4 系统设计 12

4.1 系统概要设计 12

4.2 系统功能结构设计 12

4.3 数据库设计 13

4.3.1 数据库E-R图设计 13

4.3.2 数据库表结构设计 14

5 系统实现 17

5.1用户部分功能17

5.2 管理员部分功能展示

6 系统测试

6.1 系统测试的特点

6.2 系统功能测试

6.2.1 登录功能测试

6.2.2 添加类别功能测试

6.3 测试结果分析

结 论

致 谢

参考文献



版权声明:本文为QQ123311197原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。