基于springboot+vue的宠物商城系统(前后端分离)

news/2024/5/19 4:04:22/文章来源:https://blog.csdn.net/mtyedu/article/details/128996637

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

本系统以宠物商城为主题,采用前后端分离,项目代码工整,结构清晰,适合选题:宠物、商城、宠物商城、前后端分离类其他宠物系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis。

数据库设计:

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是首页

买卖专区,可以根据条件筛选

求购专区,可以根据条件筛选

宠物详情

 聊天室

登录注册

 

 个人信息

地址管理

 我的订单

我的宠物

 

后台-用户管理

 

 后台-宠物管理

 后台-类型维护

 后台-订单管理

 后台-地址管理

部分代码:

宠物操作

 //发布宠物出售或购买请求@PostMapping("/addPet")public String addPet(@RequestParam(name = "files",required = false) MultipartFile[] files,Pet pet) throws IOException {Date date = new Date();pet.setDate(date);petService.addPet(pet);Photo photo = new Photo();photo.setPid(pet.getPid());if (files != null){if (files.length > 0){for (int i=0;i< files.length;i++){//获取当前项目路径//前面拼接uiid是为了防止名字重复,获取文件的后缀名,不使用原文件名是防止文件名格式导致无法显示String filename = createUUID.getUUID() + files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf("."));//创建文件对象,设置文件保存路径File dest = new File(uploadDir +"\\petimg\\"+ filename);//将文件对象转化为文件files[i].transferTo(dest);photo.setUrl("petimg/" + filename);photoService.addPhoto(photo);}}else {photo.setUrl("defaultpetimg/nodata.jpg");photoService.addPhoto(photo);}}return "发布成功";}//删除宠物@GetMapping("/deletePet")public String deletePet(@RequestParam(name = "uid",required = false) Long uid, @RequestParam(name = "pid",required = false) Long pid){Map map = new HashMap();if(uid != null){map.put("uid",uid);}else{map.put("pid",pid);map.put("postatu",0);}List<Petorder> petorder = petorderService.querypetorder(map);map.remove("postatu");if(petorder.size() == 0){petService.deletePet(map);photoService.deletePhoto(map);return "删除成功";}else {return "该宠物已被购买,无法删除";}}//更新宠物信息@PostMapping("/updatePet")public String updatePet(@RequestParam(name = "files",required = false) MultipartFile[] files,@RequestParam(name = "ppid",required = false) Long[] ppid, Pet pet) throws IOException {Date date = new Date();pet.setDate(date);Photo photo = new Photo();photo.setPid(pet.getPid());//删除图片if(ppid != null) {if(ppid.length > 0) {Map photomap = new HashMap();for(int i=0; i < ppid.length; i++) {photomap.put("ppid",ppid[i]);photoService.deletePhoto(photomap);photomap.remove("ppid");}}}//增加图片if(files != null) {if(files.length > 0) {for (int i=0;i< files.length;i++){//获取当前项目路径//获取文件名字,前面拼接uiid是为了防止名字重复String filename = createUUID.getUUID() + files[i].getOriginalFilename();//创建文件对象,设置文件保存路径File dest = new File(uploadDir +"\\petimg\\" + filename);//将文件对象转化为文件files[i].transferTo(dest);photo.setUrl("petimg/" + filename);photoService.addPhoto(photo);}} else {System.out.println("没有新加图片");}}//宠物为求购时,若没有图片,增加无数据图片if(pet.getPk() == 3) {List<Photo> photos = photoService.queryPhotobypid(pet.getPid());if(photos.size() == 0) {photo.setUrl("defaultpetimg/nodata.jpg");photoService.addPhoto(photo);}}petService.updatePet(pet);return "修改完成";}

用户操作

//修改用户信息@PostMapping("/updateuser")public Map updateuser(@RequestParam(name = "file",required = false) MultipartFile file, User user) throws IOException {Map map = new HashMap();User uuser = null;if(user.getTelphone() != null){map.put("telphone",user.getTelphone());uuser = userService.queryUser(map);map.remove("telphone");if(uuser != null && uuser.getUid() != user.getUid()){map.put("flag",0);map.put("msg","该手机号已被注册");return map;}}if(user.getUsername() != null){map.put("username",user.getUsername());uuser = userService.queryUser(map);map.remove("username");}if(uuser == null || uuser.getUid() == user.getUid()){if(file != null) {if(!file.isEmpty()) {//获取当前项目路径//获取文件名字,前面拼接uiid是为了防止名字重复String filename = createUUID.getUUID() + file.getOriginalFilename();//创建文件对象,设置文件保存路径File dest = new File(uploadDir +"\\avatar\\" + filename);//将文件对象转化为文件file.transferTo(dest);//存入头像地址user.setAvatar("avatar/" + filename);//查找旧的用户信息map.put("uid",user.getUid());uuser = userService.queryUser(map);map.remove("uid");String oldavatar = uuser.getAvatar();int index = oldavatar.indexOf("defaultavatar/");//判断旧头像是否为默认头像,不是则删除旧头像if(index == -1) {//得到旧头像的地址String oldpath = uploadDir +"\\avatar\\" + oldavatar.replace("/", "\\");File olddest = new File(oldpath);//删除旧头像olddest.delete();}}}userService.updateUser(user);map.put("avatar",user.getAvatar());map.put("flag",1);map.put("msg","修改成功");}else {map.put("flag",0);map.put("msg","用户名已存在");}return map;}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_257048.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新能源汽车PK燃油汽车,首次胜出,输赢真的那么重要?

新能源汽车PK燃油汽车&#xff0c;输赢真的那么重要&#xff1f;是的。【科技明说 &#xff5c; 每日看点】今天看到一个新能源汽车领域的消息&#xff0c;我觉得很有意思&#xff0c;是说中国新能源汽车满意度水平首次超过了燃油汽车&#xff0c;你们觉得是这样么&#xff1f;…

ubuntu部署quark-5

下载源代码 解压zip sudo apt-get install unzip unzip xxxxx.zip安装所需要的包 sudo apt install python2 # 查看是否配置了默认的python sudo update-alternatives --list python若没有设置&#xff0c;会显示&#xff1a; # update-alternatives: error: no alterna…

Netty零拷贝机制

Netty零拷贝机制一&#xff1a;用户空间与内核空间二&#xff1a;传统IO流程三&#xff1a;零拷贝常见的实现方式1. mmap write2. sendfile四&#xff1a;Java中零拷贝五&#xff1a;Netty 中如何实现零拷贝1. CompositeByteBuf 实现零拷贝2. wrap 实现零拷贝3. slice 实现零拷…

CSP-《I‘m stuck!》-感悟

题目 做题过程 注&#xff1a;黄色高亮表示需要注意的地方&#xff0c;蓝色粗体表示代码思路 好久没有写过代码了&#xff0c;今天做这道编程题&#xff0c;简直是灾难现场。 上午编程完后发现样例没有通过&#xff0c;检查发现算法思路出现了问题&#xff1a;我计数了S不能到…

神经网络基础知识

神经网络基础知识 文章目录神经网络基础知识一、人工神经网络1.激活函数sigmod函数Tanh函数Leaky Relu函数分析2.过拟合和欠拟合二、学习与感知机1.损失函数与代价函数2. 线性回归和逻辑回归3. 监督学习与无监督学习三、优化1.梯度下降法2.随机梯度下降法(SGD)3. 批量梯度下降法…

Leetcode.1138 字母板上的路径

题目链接 Leetcode.1138 字母板上的路径 Rating &#xff1a; 1411 题目描述 我们从一块字母板上的位置 (0, 0)出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board ["abcde", "fghij", "klmno", "pqr…

第02章_MySQL环境搭建

第02章_MySQL环境搭建 讲师&#xff1a;尚硅谷 宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 1. MySQL的卸载 1.1 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。按键盘上的“Ctrl …

应对新的挑战!ChatGPT将如何改变多域作战?

​公众号博主推送内容&#xff0c;未经许可&#xff0c;不得转载或者引用。 原文&#xff1a;Exploring the Possibilities of ChatGPT in Rugged Military AI Applications 《ChatGPT&#xff1a;利用最先进的技术支撑多域作战》 ChatGPT是一款基于GPT-3大型自然语言模型的…

JVM学习02:内存结构

JVM学习02&#xff1a;内存结构 1. 程序计数器 1.1、定义 Program Counter Register 程序计数器&#xff08;寄存器&#xff09; 作用&#xff1a;是记住下一条jvm指令的执行地址 特点&#xff1a; 是线程私有的不会存在内存溢出 1.2、作用 程序计数器物理上是由寄存器来实…

rar压缩文件暴力破解

1. 简介 rar 压缩文件资源又不少是被加密的&#xff0c;密码通常也比较简单&#xff0c;我们可以通过暴力破解的方式来获取&#xff0c;通常耗时也比较小 程序地址&#xff1a;rar压缩密码暴力破解程序 2. 使用说明 2.1 基本语法 rar-bruteforce-crack.py [--start START] …

RocketMQ5.0.0消息存储<三>_消息转发与恢复机制

目录 一、消息转发 1. ReputMessageService线程初始化 2. 消息转发更新ConsumeQueue 3. 消息转发更新IndexFile 二、恢复机制 1. Broker加载存储文件 2. Broker正常退出的文件恢复 3. Broker异常退出的文件恢复 三、参考资料 一、消息转发 消息消费队列文件、索引文件…

DNS 原理入门指南(一)

DNS 是互联网核心协议之一。不管是上网浏览&#xff0c;还是编程开发&#xff0c;都需要了解一点它的知识。 本文详细介绍DNS的原理&#xff0c;以及如何运用工具软件观察它的运作。我的目标是&#xff0c;读完此文后&#xff0c;你就能完全理解DNS。 一、DNS 是什么&#xff1…

Java中导入、导出Excel——HSSFWorkbook 使用

一、介绍 当前B/S模式已成为应用开发的主流&#xff0c;而在企业办公系统中&#xff0c;常常有客户这样子要求&#xff1a;你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是&#xff1a;我们已经习惯用Excel打印。这样在我们实际的开发中&#xff0c;很多时候需要…

字母板上的路径 题解,力扣官方出来挨打(小声)

字母板上的路径 我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]&#xff0c;如下所示。 我们可以按下面的指令规则行动&#xff1a…

Python:路径之谜(DFS剪枝)

题目描述 小张冒充 X 星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。如下图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或纵向移动&#xff0c;但不能斜着走&#xf…

【微信小游戏开发笔记】第二节:Cocos开发界面常用功能简介

Cocos开发界面常用功能简介 本章只介绍微信小游戏开发时常用的功能&#xff0c;其他功能不常用&#xff0c;写多了记不住&#xff08;其实是懒 -_-!&#xff09;&#xff1a; 层级管理器&#xff0c;用于操作各个节点。资源管理器&#xff0c;用于操作各种文件资源。场景编辑…

C/C++工业数据分析与文件信息管理系统[2023-02-12]

C/C工业数据分析与文件信息管理系统[2023-02-12] 程序设计基础A课程设计 工业数据分析与文件信息管理系统 题目背景 智能制造是以工业生产数据分析、自动化技术为基础&#xff0c;具有信息深度自感知、智慧优化自决策、精准控制自执行等功能&#xff0c;使制造活动达到安全…

sg3_utils arm64 静态编译

需求背景 在进行ufs等scsi device测试时&#xff0c;需要进行power mode切换等测试&#xff0c;因此需要有一个简单地工具集来向scsi device&#xff08;ufs接口&#xff09;发送scsi命令&#xff0c;比如 scsi reset命令等。在网上调研后发现sg3_utils是一个比较全面的工具。…

使用Python,Opencv检测图像,视频中的猫

使用Python&#xff0c;Opencv检测图像&#xff0c;视频中的猫&#x1f431; 这篇博客将介绍如何使用Python&#xff0c;OpenCV库附带的默认Haar级联检测器来检测图像中的猫。同样的技术也可以应用于视频流。这些哈尔级联由约瑟夫豪斯&#xff08;Joseph Howse&#xff09;训练…

17万字数字化医院信息化建设大数据平台建设方案WORD

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 目录 第1章 医院信息化概述 1.…