yg校园易购电商系统(Go+Vue)

校园易购二手平台系统

在这里插入图片描述

GitHub项目地址:https://github.com/xzhHas/yg

文章目录

  • 校园易购二手平台系统
    • 一、技术栈简介
    • 二、快速开始
      • 1、安装本系统使用到的插件,这里推荐使用docker安装,此操作皆在ubuntu系统下操作,如果是其他系统只需要修改一下命令即可。
      • 2、前端的配置
      • 3、后端的配置
      • 4、启动
    • 三、数据库设计
    • 四、核心系统功能
      • 1 用户功能
      • 2 用户操作功能
      • 3 库存服务
      • 4 商品服务
      • 5 订单服务
      • 6 系统架构
    • 五、效果演示
        • 前台商城系统
        • 后端管理系统
    • 六、可能出现的问题
    • 七、最后

一、技术栈简介

采用微服务架构的方式来写这个系统的相关功能,包括用户服务、商品服务、库存服务等等。

  • Golang 1.22.3
  • Gin
  • Mysql 8.0
  • Redis
  • Nodejs 14.21.3(建议使用14.21.3下载,并且使用淘宝镜像)
  • Vue
  • gRPC
  • Consul
  • Nacos

二、快速开始

1、安装本系统使用到的插件,这里推荐使用docker安装,此操作皆在ubuntu系统下操作,如果是其他系统只需要修改一下命令即可。

1、docker安装Mysql8.0

2、docker安装Redis

3、docker安装Nacos

4、docker安装Consul

5、docker安装:Elasticsearch、kibana及ik的安装

搭建系统详解网址: https://blog.csdn.net/m0_73337964/article/details/139523540

2、前端的配置

采用vue搭建一套后台管理系统和一套电商系统。

1、获取vue所需要的依赖:

npm insatll

2、启动vue项目:

npm run dev

3、后端的配置

1、protobuf的配置

我已经把文件复制到docs/protobuf文件下了,把他们直接复制到你的go安装目录的bing文件夹下即可。

然后在每一个文件目录下的proto文件下,在终端输入(生成所需要的proto文件):

protoc --go_out=. --go-grpc_out=. *.proto

2、修改config-pro.yaml文件里面的信息为nacos的模式即可。

3、最后,在每一个还有main.go的目录下进行终端启动:

go mod tidy
go build
./xxx.exe

注:这里我是打算写一个脚本一键启动的,但是还没完成,后续会修改的。

4、启动

此时,前端和后端都已经启动了,就可以点开浏览器去测试一下了。

http://xxxxxxxx:8089

http://xxxxxx:8090

三、数据库设计

在这里插入图片描述

四、核心系统功能

1 用户功能

  • 登录
    • 图形验证码:采用Go语言的图形验证码库,防止恶意登录和暴力破解。通过Redis缓存验证码,提高了系统响应速度,使用户在高峰期依然能够快速登录。
  • 注册
    • 短信验证:使用阿里云SMS服务发送短信验证码,确保用户注册的真实性。利用Redis缓存短信验证码,提高验证过程的响应速度,降低了注册时的延迟。
  • JWT鉴权
    • 安全认证:采用JWT进行用户身份验证和授权,确保通信安全。无状态认证模式,减轻了服务器的负载,提高了系统的扩展性和响应速度。
  • 用户删除功能
    • 权限控制:只有管理员可以删除用户,确保操作的安全性和数据的完整性。
    • 逻辑删除:使用逻辑删除标记,保留数据以备审计和恢复,避免数据丢失。
  • 用户详细信息
    • 信息展示:展示用户的基本信息、历史订单和收藏商品等详细数据,为用户提供全面的个人信息视图。
    • 数据安全:对敏感信息进行加密和保护,确保用户隐私和数据安全。

2 用户操作功能

  • 订单地址
    • 地址管理:用户可以添加、修改和删除收货地址,方便用户随时更新地址信息,提高用户体验。
    • 默认地址:支持设置默认收货地址,简化用户下单流程,提高购物体验的便捷性。
  • 用户收藏记录
    • 商品收藏:用户可以收藏感兴趣的商品,方便日后查看和购买,提高用户粘性和回访率。
    • 收藏夹管理:支持批量管理收藏的商品,提升用户操作的便捷性和效率。
  • 客户的留言及评论
    • 留言板:用户可以在商品页面留言,询问商品详情或发布评论,增强用户互动。

3 库存服务

  • 库存管理
    • 实时库存更新:根据订单和退货情况实时更新库存数据,确保数据准确。通过RocketMQ处理库存更新请求,保证在高并发场景下系统的性能和可靠性。
    • 预警机制:当库存低于预设阈值时,自动触发预警。
    • 分布式锁:采用Redis分布式锁,防止超卖现象,确保库存操作的原子性和一致性,提高数据的准确性。
  • 订单超时管理
    • 订单过期:未支付订单超过设定时间自动取消,并恢复库存。通过消息队列发布延迟消息,确保订单超时处理的及时性。
    • 通知机制:订单即将过期时提醒用户,减少订单取消率,提升订单完成率和用户满意度。

4 商品服务

  • 商品展示
    • 分类展示:展示热门商品、新品推荐、特价商品等分类信息,提升用户购物体验。
    • 高性能:利用缓存和异步加载技术,确保页面加载速度快。通过整合Sentinel,实现流量控制和熔断降级,确保系统在高并发情况下的稳定性,减少页面加载时间,提升用户体验。
  • 搜索功能
    • Elasticsearch集成:采用Elasticsearch实现高效的商品搜索和过滤功能,支持全文搜索、模糊搜索、筛选和排序等高级功能,提升搜索结果的相关性和准确性。

5 订单服务

  • 订单管理
    • 订单创建:用户下单后,生成订单记录并扣减库存。使用分布式事务管理确保订单创建和库存扣减的一致性,减少订单生成的延迟,提高订单处理效率。
    • 订单状态:支持订单状态的多种变更,如待支付、已支付、已发货、已完成、已取消等,通过消息队列实现订单状态的异步更新,减少订单状态变更的延迟。
  • 支付集成
    • 支付方式:采用支付宝支付。

6 系统架构

  • gRPC微服务
    • 高效通信:采用gRPC框架进行微服务间的通信,具有高性能和低延迟的特点,提升系统的响应速度。
    • 接口定义:使用Protocol Buffers定义服务接口和消息格式,确保跨语言的兼容性和高效的序列化性能。
    • 负载均衡:集成负载均衡机制,分散请求压力,提高系统的可用性和稳定性,减少系统响应时间。
  • 服务发现
    • Consul:使用Consul进行服务注册和发现,确保各微服务之间的互联互通,提高系统的可靠性和可扩展性。
    • **Nacos:**使用Nacos进行配置文件信息,做到了配置信息的动态更改,提高了实际操作的效率。
    • 健康检查:定期检查服务的健康状态,及时发现和处理故障服务,提高系统的稳定性和可靠性。

五、效果演示

前台商城系统

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

在这里插入图片描述

后端管理系统

在这里插入图片描述

在这里插入图片描述

六、可能出现的问题

1、在使用oss服务的时候可能出现服务未发现的问题,这是因为oos的回调服务必须是公网IP,如果你用的本地计算机,那么就需要内网穿透解决。

2、在使用阿里云支付的回调服务同上,也许哟啊内网穿透。

3、使用ubuntu系统,在本地可能无法访问虚拟机的IP地址或者连接不上,请修改虚拟机为桥接模式。

4、前端在npm insatll的时候报错,请看错误信息,出现错误的极大概率就是本地的微软运行库不全,那你自己在网上找一个修复一下就可了。

七、最后

感谢大家观看我这个小菜g的内容。

我的公共号也可以关注看一看,以后会发一些自己的学习资源以及自己的日常。0.o

在这里插入图片描述

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

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

相关文章

回首二篇旧博客再看一篇新博客

交流 旧博客 https://www.zhihu.com/question/390894125 从2050回顾2020,职业规划与技术路径(节选) 行业发展好,与我能在这个行业找到工作是两回事; 同理,行业发展好,与我能在这个行业赚到钱…

从数据采集到部署,手把手带你训练一个高质量的图像分类模型

本文来自社区投稿,作者李剑锋 MMPreTrain 是一款基于 PyTorch 的开源深度学习预训练工具箱,本文将从数据采集到部署,手把手带大家使用 MMPreTrain 算法库训练一个高质量的图像分类模型。 MMPreTrain 项目链接: https://github.co…

易保全网络赋强公证系统,“公证赋强+科技赋能”双重增信

网络赋强公证系统是一种创新的法律服务模式,旨在通过线上方式赋予债权文书强制执行效力。具体来说,该系统结合了互联网技术与公证业务,允许公证机构根据当事人的申请,利用互联网公证技术手段对互联网上的债权文书进行公证&#xf…

移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)

1. 实现功能 类似扫一扫的功能,自动识别到画面中的二维码并进行识别,也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库,该库接收原始…

Activity->Activity中动态添加Fragment->add和replace方式添加的区别

XML文件 Activity布局文件R.layout.activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/root_ll"android:orientation"v…

操作系统期末复习(大题)

1. 进程调度 周转时间作业完成时刻-作业到达时刻 带权周转时间周转时间/服务时间 平均周转时间各个作业周转时间之和/作业个数 操作系统&#xff1a;周转时间和其他时间_系统为作业提供的时间-CSDN博客 2. 进程调度 3. 调度算法 4. 临界区互斥访问问题 即证明是否满足互斥&a…

mac环境基于llama3和metaGPT自动开发2048游戏

1.准备虚拟环境 conda create -n metagpt python3.9 && conda activate metagpt 2.安装metagpt pip install --upgrade metagpt 3.初始化配置文件 metagpt --init-config 4. 安装llama3 5. 修改配置文件 6.让metegpt自动开发2048游戏 7.经过多轮迭代&#xff0c;最终…

抖音 根据sec uid获取个人详细信息(性别、年龄、属地、关注数、粉丝数、简介等)

本文带来用户的secuid获取用户信息以及其他基本信息&#xff1a; 话不多说看效果&#xff1a; 第一步输入用户sec_uid 根据secuid获取到用户基本信息&#xff1a; 可以支持接口批量转换&#xff0c;欢迎咨询

国内著名的四个“大模型”

关于您提到的国内四大模型&#xff0c;这里为您详细介绍&#xff1a; 文心大模型&#xff1a;文心大模型是百度自主研发的产业级知识增强大模型。它以创新性的知识增强技术为核心&#xff0c;从单模态大模型发展到跨模态&#xff0c;从通用基础大模型到跨领域、跨行业&#xff…

05 Linux 内核启动流程

1、阅读 Linux 内核源码 学习 Linux 有两种路线&#xff1a; 1&#xff09;按照 Linux 启动流程&#xff0c;梳理每个子系统。 2&#xff09;把 Linux 所有用到的子系统学会&#xff0c;再组合起来。 博主选择第一种方式&#xff0c;可以快速上手&#xff0c;知道自己在学什…

5.mongodb 备份与恢复

mongodb备份工具介绍&#xff1a; 1.mongoexport(备份)/mongoimport(恢复) mongoexport是MongoDB提供的一个工具&#xff0c;用于将数据从MongoDB实例导出到JSON或CSV格式的文件中&#xff0c;这个工具对于数据迁移、数据备份或者在不同的数据库之间同步数据非常有用 2.mongodu…

鱼泡-伙伴匹配系统

第一次直播 项目介绍 帮助找到志同道合的伙伴 需求分析 标签分类 主动搜索 组队 创建队伍加入队伍根据标签查询队伍 前端项目初始化 项目初始化文件夹中一定不要带空格&#xff01; 使用npm&#xff08;node包管理器&#xff09;来安装 Vite 脚手架&#xff1a; vue cl…

USB (5)

USB是一个poll的总线。并且数据传输是对齐到time-line的。 对于比如鼠标这样的设备&#xff0c;主机会最快125us poll一次&#xff0c;看是否有输入。这也就是interrupt transfer类型。 对于isochronous transfer类型&#xff0c;数据是在固定的时隙传输的&#xff0c;但不保证…

Python魔法之旅-魔法方法(22)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

怎么改图片分辨率的dpi数值?简单调整图片dpi的方法

图片分辨率的dpi是目前使用图片时比较常见的要求之一&#xff0c;在网上上传图片时比如证件照类型&#xff0c;都经常会对图片dpi数值有要求。在使用图片的时候&#xff0c;如果dpi的数值不满足用户使用&#xff0c;那么就会无法正常上传使用&#xff0c;那么修改图片api具体该…

42.vue-element-admin界面上的search字段配置

vue-element-admin界面上的search字段&#xff08;下图红色部分&#xff09;是可配置&#xff0c;使用*.vue里的search关键字进行配置。 一、配置方法 1.如果这个字段要放到search区域&#xff0c;则&#xff1a; search: {hidden: false}, 2.如果这个字段不要放到search区域…

实验七、创建小型实验拓扑《计算机网络》

早检到底是谁发明出来的。 一、实验目的 完成本实验后&#xff0c;您将能够&#xff1a; • 设计逻辑网络。 • 配置物理实验拓扑。 • 配置 LAN 逻辑拓扑。 • 验证 LAN 连通性。 二、实验任务 在本实验中&#xff0c;将要求您连接网络设备并配置主机实现基本的网络…

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式&#xff0c;找到所有可能的走步方式&#xff0c;并记录递归深度&#xff08;也就是走步次数&#x…

【AI法官】人工智能判官在线判案?

概述 AI法官是一款为用户提供专业法律分析和判决建议的智能体应用。用户只需简要描述案情&#xff0c;AI法官便会利用其强大的法律知识和逻辑推理能力&#xff0c;快速且准确地梳理出判决结果。该应用的目标是为用户提供高效、准确、合法的判决建议。 角色任务 任务描述 作为…

小程序 UI 风格魅力非凡

小程序 UI 风格魅力非凡