SpringBoot+uniApp宠物领养小程序系统 附带详细运行指导视频

文章目录

  • 一、项目演示
  • 二、项目介绍
  • 三、运行截图
  • 四、主要代码
    • 1.保存宠物信息代码
    • 2.提交订单信息代码
    • 3.查询评论信息代码

一、项目演示

项目演示地址: 视频地址

二、项目介绍

项目描述:这是一个基于SpringBoot+uniApp框架开发的宠物领养微信小程序系统。首先,这是一个前后端分离的项目,前端分为用户端管理端用户端使用微信小程序(uniApp开发)管理端使用Web页面(Vue开发)。然后这项目代码简洁规范,注释说明详细,易于理解和学习。其次,这项目功能丰富,具有一个宠物领养微信小程序系统该有的所有功能。

项目功能:此项目分为两个角色:普通用户管理员普通用户有登录注册、浏览宠物信息、浏览论坛帖子信息、管理自己发布的宠物信息、管理个人基本信息、管理自己发布的论坛帖子信息、评论帖子、收藏宠物、拍下宠物、管理自己的订单信息等等功能。管理员有管理所有用户信息、管理所有轮播图信息、管理所有首页板块信息、管理所有宠物分类信息、管理所有宠物信息、管理所有订单信息、管理所有论坛帖子信息、管理所有评论信息、查看收益数据图表等等功能。

应用技术:SpringBoot + uniApp + Vue3 + MySQL + MyBatis + Redis + ElementUI-Plus + uni-ui + Vite + TypeScript

运行环境:IntelliJ IDEA2019.3.5 + MySQL5.7(项目压缩包中自带) + Redis5.0.5(项目压缩包中自带) + JDK1.8 + Maven3.6.3(项目压缩包中自带)+ Node16.20.2(项目压缩包中自带)+ 微信开发者工具(项目压缩包中自带)+ Visual Studio Code(项目压缩包中自带)

三、运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、主要代码

1.保存宠物信息代码

	/*** 保存宠物信息* @param petDTO* @return*/@Overridepublic ResponseDTO<Boolean> savePet(PetDTO petDTO) {// 进行统一表单验证CodeMsg validate = ValidateEntityUtil.validate(petDTO);if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {return ResponseDTO.errorByMsg(validate);}Pet pet = CopyUtil.copy(petDTO, Pet.class);if(CommonUtil.isEmpty(pet.getId())) {// 添加操作pet.setId(UuidUtil.getShortUuid());pet.setCreateTime(new Date());pet.setState(PetStateEnum.WAIT.getCode());batchInsertPicture(petDTO.getPhotoList(), pet.getId());if(petMapper.insertSelective(pet) == 0) {return ResponseDTO.errorByMsg(CodeMsg.PET_ADD_ERROR);}} else {// 修改操作pet.setState(Optional.ofNullable(pet.getState()).orElse(PetStateEnum.WAIT.getCode()));PictureExample pictureExample = new PictureExample();pictureExample.createCriteria().andRefIdEqualTo(pet.getId());pictureMapper.deleteByExample(pictureExample);batchInsertPicture(petDTO.getPhotoList(), pet.getId());if(petMapper.updateByPrimaryKeySelective(pet) == 0) {return ResponseDTO.errorByMsg(CodeMsg.PET_EDIT_ERROR);}}return ResponseDTO.successByMsg(true, "保存成功!");}

2.提交订单信息代码

	/*** 提交订单信息* @param orderDTO* @return*/@Overridepublic ResponseDTO<Boolean> submitOrder(OrderDTO orderDTO) {// 进行统一表单验证CodeMsg validate = ValidateEntityUtil.validate(orderDTO);if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {return ResponseDTO.errorByMsg(validate);}Order order = CopyUtil.copy(orderDTO, Order.class);Pet pet = petMapper.selectByPrimaryKey(order.getPetId());if(pet.getUserId().equals(order.getUserId())) {return ResponseDTO.errorByMsg(CodeMsg.ORDER_REPEAT_ERROR);}if(!PetStateEnum.SUCCESS.getCode().equals(pet.getState())) {return ResponseDTO.errorByMsg(CodeMsg.ORDER_PET_STATE_ERROR);}Category category = categoryMapper.selectByPrimaryKey(pet.getCategoryId());order.setCategoryName(Optional.ofNullable(category.getName()).orElse(""));Plate plate = plateMapper.selectByPrimaryKey(pet.getPlateId());order.setPlateName(Optional.ofNullable(plate.getName()).orElse(""));order.setId(UuidUtil.getShortUuid());order.setTotalPrice(pet.getPrice());order.setPetName(pet.getName());order.setPetInfo(pet.getInfo());PictureExample pictureExample = new PictureExample();pictureExample.createCriteria().andTypeEqualTo(PictureTypeEnum.PET.getCode()).andRefIdEqualTo(pet.getId());pictureExample.setOrderByClause("sort asc");List<Picture> pictureList = pictureMapper.selectByExample(pictureExample);if(pictureList.size() > 0) {order.setPetPhoto(pictureList.get(0).getPhoto());}order.setSellerId(pet.getUserId());order.setCreateTime(new Date());if(orderMapper.insertSelective(order) == 0) {return ResponseDTO.errorByMsg(CodeMsg.ORDER_ADD_ERROR);}pet.setState(PetStateEnum.SELL.getCode());petMapper.updateByPrimaryKeySelective(pet);return ResponseDTO.successByMsg(true, "下单成功!");}

3.查询评论信息代码

	/*** 查询评论信息* @param commentDTO* @return*/@Overridepublic ResponseDTO<List<CommentDTO>> getCommentList(CommentDTO commentDTO) {CommentExample commentExample = new CommentExample();CommentExample.Criteria criteria = commentExample.createCriteria();int total = 0;if(!CommonUtil.isEmpty(commentDTO.getPostId())) {criteria.andPostIdEqualTo(commentDTO.getPostId());total = commentMapper.countByExample(commentExample);}// 先查所有父级评论criteria.andParentIdEqualTo("");commentExample.setOrderByClause("create_time desc");List<Comment> commentList = commentMapper.selectByExample(commentExample);List<CommentDTO> commentDTOList = CopyUtil.copyList(commentList, CommentDTO.class);for(CommentDTO comment : commentDTOList) {User user = userMapper.selectByPrimaryKey(comment.getUserId());comment.setUserDTO(CopyUtil.copy(user, UserDTO.class));// 查询子评论CommentExample childCommentExample = new CommentExample();childCommentExample.createCriteria().andParentIdEqualTo(comment.getId());childCommentExample.setOrderByClause("create_time desc");List<Comment> childCommentList = commentMapper.selectByExample(childCommentExample);// 查询子评论List<CommentDTO> childCommentDTOList = CopyUtil.copyList(childCommentList, CommentDTO.class);for(CommentDTO childComment : childCommentDTOList) {childComment.setUserDTO(CopyUtil.copy(userMapper.selectByPrimaryKey(childComment.getUserId()), UserDTO.class));childComment.setReplyUserDTO(CopyUtil.copy(userMapper.selectByPrimaryKey(childComment.getReplyId()), UserDTO.class));}comment.setChildCommentDTOList(childCommentDTOList);}return ResponseDTO.successByMsg(commentDTOList, String.valueOf(total));}

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

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

相关文章

R语言,数据类型转换

原文链接&#xff1a;R语言技能 | 不同数据类型的转换 本期教程 写在前面 今天是4月份的第一天&#xff0c;再过2天后再一次迎来清明小假期。木鸡大家是否正常放假呢&#xff1f; 我们在使用R语言做数据分析时&#xff0c;会一直对数据进行不同类型的转换&#xff0c;有时候…

【Java】API——Calendar日期类使用+题目演示

目录 Calendar日期类简单介绍 导入对应包&#xff1a; 获取 Calendar 对象&#xff1a; 设置日期和时间&#xff1a; 获取日期和时间的各个部分&#xff1a; 日期和时间的加减操作&#xff1a; 例题&#xff1a;世纪末的星期 题目描述 题目代码 Calendar日期类简单介绍…

typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存

Manjaro安装RabbitMQ 安装 sudo pacman -S rabbitmq rabbitmqadmin启动管理模块 sudo rabbitmq-plugins enable rabbitmq_managementsudo rabbitmq-server管理界面 http://127.0.0.1:15672/ 默认用户名和密码都是guest。 要使用 rabbitmqctl 命令添加用户并分配权限&#xf…

Java类和对象练习题

练习一 下面代码的运行结果是&#xff08;&#xff09; public static void main(String[] args){String s;System.out.println("s"s);} 解析&#xff1a;本题中的代码不能编译通过&#xff0c;因为在Java当中局部变量必须先初始化&#xff0c;后使用。所以此处编译不…

【Python刷题】将有序数组转换为二叉搜索树

问题描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 高度平衡的意思是&#xff1a;二叉树是一颗满足“每个结点的左右两个子树的高度差的绝对值不超过1”的二叉树。 示例 1&#xff1a; 输入&#xf…

农村集中式生活污水分质处理及循环利用技术指南

立项单位&#xff1a;生态环境部土壤与农业农村生态环境监管技术中心、山东文远环保科技股份有限公司、北京易境创联环保有限公司、中国环境科学研究院、广东省环境科学研究院、中铁第五勘察设计院集团有限公司、中华环保联合会水环境治理专业委员会 本文件规定了集中式村镇生活…

Stable Diffusion 模型下载:epiCPhotoGasm(真实、照片)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八下载地址模型介绍

语音克隆技术浪潮:探索OpenAI Voice Engine的奇妙之旅

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

基于SpringBoot的“校园志愿者管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园志愿者管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 系统首页界面图 志愿者注册…

游戏引擎中的声音系统

一、声音基础 1.1 音量 声音振幅的大小 压强p&#xff1a;由声音引起的与环境大气压的局部偏差 1.2 音调 1.3 音色 1.4 降噪 1.5 人的听觉范围 1.6 电子音乐 将自然界中连续的音乐转换成离散的信号记录到内存中 采样 - 量化 - 编码 香农定理&#xff1a;采样频率是信…

探究云手机的海外原生IP优势

随着全球数字化进程的加速&#xff0c;企业越来越依赖于网络来扩展其业务。在这个数字时代&#xff0c;云手机作为一种创新的通信技术&#xff0c;已经成为了企业网络优化的重要组成部分。云手机支持海外原生IP的特性&#xff0c;为企业在国际市场上的拓展提供了全新的可能性。…

idea中 错误:找不到或无法加载主类

很神奇的就是maven打包是正常的&#xff0c;本来也是好好的&#xff0c;突然启动就报错了&#xff0c;我百度了很急&#xff0c;没什么结果&#xff0c;找了公司6年工作经验的老员工&#xff0c;还是搞了好久&#xff0c;我站了好久也是没解决。后来我也是在想maven的jar包都能…

【每日一题】2810. 故障键盘-2024.4.1

题目&#xff1a; 2810. 故障键盘 你的笔记本键盘存在故障&#xff0c;每当你在上面输入字符 i 时&#xff0c;它会反转你所写的字符串。而输入其他字符则可以正常工作。 给你一个下标从 0 开始的字符串 s &#xff0c;请你用故障键盘依次输入每个字符。 返回最终笔记本屏幕…

ROS2从入门到精通1-2:详解ROS2服务通信机制与自定义服务

目录 0 专栏介绍1 服务通信模型2 服务模型实现(C)3 服务模型实现(Python)4 自定义服务5 话题、服务通信的异同 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。…

vscode通过ssh连接服务器(吐血总结)

一、通过ssh连接服务器 1、打开vscode&#xff0c;进入拓展&#xff08;CtrlShiftX&#xff09;&#xff0c;下载拓展Remote - SSH。 2、点击远程资源管理器选项卡&#xff0c;选择远程&#xff08;隧道/SSH&#xff09;类别。 3、点击SSH配置。 4、在中间上部分弹出的配置文件…

目标检测:数据集划分 XML数据集转YOLO标签

文章目录 1、前言&#xff1a;2、生成对应的类名3、xml转为yolo的label形式4、优化代码5、划分数据集6、画目录树7、目标检测系列文章 1、前言&#xff1a; 本文演示如何划分数据集&#xff0c;以及将VOC标注的xml数据转为YOLO标注的txt格式&#xff0c;且生成classes的txt文件…

Navicat工具使用

Navicat的本质&#xff1a; 在创立连接时提前拥有了数据库用户名和密码 双击数据库时&#xff0c;相当于建立了一个链接关系 点击运行时&#xff0c;远程执行命令&#xff0c;就像在xshell上操作Linux服务器一样&#xff0c;将图像化操作转换成SQL语句去后台执行 一、打开Navi…

文生图大模型三部曲:DDPM、LDM、SD 详细讲解!

1、引言 跨模态大模型是指能够在不同感官模态(如视觉、语言、音频等)之间进行信息转换的大规模语言模型。当前图文跨模态大模型主要有&#xff1a; 文生图大模型&#xff1a;如 Stable Diffusion系列、DALL-E系列、Imagen等 图文匹配大模型&#xff1a;如CLIP、Chinese CLIP、…

【TensorRT】TensorRT C# API 项目介绍:基于C#与TensorRT部署深度学习模型(下篇)

文章目录 4. 接口调用4.1 创建并配置C#项目4.2 添加推理代码4.3 项目演示 5. 总结 4. 接口调用 4.1 创建并配置C#项目 首先创建一个简单的C#项目&#xff0c;然后添加项目配置。 首先是添加TensorRT C# API 项目引用&#xff0c;如下图所示&#xff0c;添加上文中C#项目生成的…

Intel Arc显卡安装Stable Diffusion

StableDiffusion是一种基于深度学习的文本到图像生成模型&#xff0c;于2022年发布。它主要用于根据文本描述生成详细图像&#xff0c;也可应用于其他任务&#xff0c;如内补绘制、外补绘制和在提示词指导下生成图像翻译。通过给定文本提示词&#xff0c;该模型会输出一张匹配提…