05、SpringCloud -- 秒杀按钮、秒杀请求流程(各种请求到后台的判断、减库存、下单数据和次数保存)

news2024/12/28 19:03:02

目录

  • 秒杀按钮
      • 代码实现:
        • vue的JS实现:
  • 秒杀请求
    • 需求:
    • 代码
      • 前端
      • 后端
        • Seckill-api
          • domain
        • Seckill-server
          • WebConfig
        • 1、秒杀请求判断
          • controller
        • 2、重复下单判断
          • Mapper
          • Service 接口
          • Impl 实现类
          • controller
        • 3、库存判断
        • 4、秒杀涉及到的操作
          • _01、减库存
          • _02、创建订单对象并保存
          • _03、用户下单次数数据存储
      • 出现的问题:
      • 订单编号生成使用雪花算法的代码

秒杀按钮

需求:点击抢购的按钮,在未规定的时间段内不可点击
在这里插入图片描述

代码实现:

vue的JS实现:

在vue的js中 , prop 是父组件用来传递数据的一个自定义属性

在这里插入图片描述

秒杀请求

需求:

点击立即秒杀后,从前端发送请求到后端接受的一系列判断

代码

前端

携带数据发送到后端
在这里插入图片描述

后端

Seckill-api
domain

添加两个实体类,秒杀订单信息类和订单详情信息类

在这里插入图片描述

Seckill-server
WebConfig

把自定义参数解析器的配置类拷贝一份到秒杀服务里面。
在这里插入图片描述

1、秒杀请求判断
controller

开始对秒杀的操作进行一系列的判断:是否登录、数据库是否有该商品id、后端再次判断秒杀时间是否已经开始
在这里插入图片描述

2、重复下单判断

判断用户是否重复下单,如果重复下单,提醒不要重复下单

Mapper

先写个Mapper,写数据库查询是否重复下单的语句
在这里插入图片描述

Service 接口

在这里插入图片描述

Impl 实现类

在这里插入图片描述

controller

在这里插入图片描述

3、库存判断

判断是否有库存,如果没有提醒库存不足
在这里插入图片描述

4、秒杀涉及到的操作
_01、减库存

重新建一个秒杀用的service业务层来做秒杀的业务逻辑判断,秒杀的数据会放在t_order_info 订单信息表里面

在这里插入图片描述

创建一个service接口,专门用来处理秒杀订单信息的业务逻辑

在这里插入图片描述
SeckillOrderInfoServiceImpl

在实现里面,因为减库存是减 t_seckill-goods 表的数据,所以得把减库存的实际业务逻辑写在ISeckillGoodService接口那边

在这里插入图片描述

ISeckillGoodService接口,写减库存的实际业务逻辑方法的接口

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mycat2.X读写分离

一、数据库中间件介绍 二、下载安装包 2.1下载地址: 下载两个一个是mycat程序,一个是mycat的驱动 http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.20.zip http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies-2…

电子邮件钓鱼攻击的防范:如何识别并避免网络诈骗

在数字化的今天,电子邮件成为我们日常工作和生活中不可或缺的通讯工具。然而,电子邮件钓鱼攻击也随之成为网络诈骗的常见手法。通过识别和避免电子邮件钓鱼攻击,我们可以在很大程度上保护自己的网络安全。本文将为您提供一些实用的识别和防范…

nacos在linux中的安装、集群的配置、mysql生产配置

1.下载和安装 官方下载地址:https://github.com/alibaba/nacos/releases,根据自己需要的本版去下载就行 下载的是 .tar.gz 后缀的文件是linux版本的 使用tar命令解压,完成之后是一个nacos的文件夹 和windows下的文件夹目录是一样的 要启…

小黑子—spring:第三章 AOP开发

spring入门3.0 三 小黑子的springAOP开发1. AOP简介1.1 AOP的概念1.2 AOP思想的实现方案1.3 模拟AOP思想实现的基础代码1.4 AOP的相关概念 2. 基于xml配置的AOP2.1 XML方式AOP快速入门2.2 XML方式AOP配置详解2.3 xml方式AOP的原理解析2.3.1 AOP底层两种生成Proxy的方式 3. 基于…

一个老旧优盘从2M变回8G的逆袭之路

前言 最近收拾资料,发现了一个比较老的优盘,上面标记8G内存,就好奇里边存了点啥。用电脑打开,啥内容都没有,结果大小还显示2M???看看今天能不能救活吧。 正文 步骤一、清空磁盘 …

并发安全问题之超卖问题

并发安全问题之超卖问题 乐观锁总结: 优点:不加锁性能好。 缺点:同时请求成功率低(即只要发现数据变了就放弃了)。 乐观锁思想的具体体现:一共两步,第一步,先查询状态。第二步&…

Java VMTranslator Part I

目录 堆栈运算命令 基本思路 核心代码 Parser Code Writer Main 实验结果,使用SimpleAdd、StackTest进行验证 内存访问命令 基本思路 核心代码 Parser Code Writer Main 实验结果,使用进行验证。对比生成的二进制代码文件。 用Java写一个翻…

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效 索引使用原则列的离散(sdn)度 联合索引创建联合…

【C++初探:简单易懂的入门指南】二

【C初探:简单易懂的入门指南】二 1.引用1.1引用做函数的参数1.2 引用做返回值1.2.1 关于引用做返回值的几点补充 1.3 多引用(对一个变量取多个别名)1.4 引用类型一致性原则以及权限的问题阐述1.5引用的效率问题1.6引用和指针的比较 2.auto关键字2.1 auto关键字的使用…

BSTree二叉树讲解

二叉搜索树的概念: 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值…

重置 VCSA 6.7 root密码和SSO密码

原贴地址:https://www.cnblogs.com/airoot/p/16059033.html 问题描述 1、用root用户登录 VMware vCenter Server Appliance虚拟机失败,无法登录 2、vCenter Server Appliance 6.7 U1的root帐户错误尝试次数超过3次已锁定或帐户已过期 官方说明 在VC…

【Spring Boot 源码学习】RedisAutoConfiguration 详解

Spring Boot 源码学习系列 RedisAutoConfiguration 详解 引言往期内容主要内容1. Spring Data Redis2. RedisAutoConfiguration2.1 加载自动配置组件2.2 过滤自动配置组件2.2.1 涉及注解2.2.2 redisTemplate 方法2.2.3 stringRedisTemplate 方法 总结 引言 上篇博文&#xff0…

【C++基础入门】44.C++中对象模型分析(上)

一、回归本质 class 是一种特殊的 struct 在内存中 class 依旧可以看作变量的集合class 与 struct 遵循相同的内存对齐规则class 中的成员函数与成员变量是分开存放的 每个对象有独立的成员变量所有对象共享类中的成员函数值得思考的问题 下面看一个对象内存布局的代码&#x…

Go学习第十七章——Gin中间件与路由

Go web框架——Gin中间件与路由 1 单独注册中间件1.1 入门案例1.2 多个中间件1.3 中间件拦截响应1.4 中间件放行 2 全局注册中间件3 自定义参数传递4 路由分组4.1 入门案例4.2 路由分组注册中间件4.3 综合使用 5 使用内置的中间件6 中间件案例权限验证耗时统计 1 单独注册中间件…

Java项目之网络考试系统

视频教程: 01-创建数据库_哔哩哔哩_bilibili 源码下载:百度网盘 请输入提取码 准备工作 创建数据库配置IDEA后端导入前端 前言: 把代码掰开写进博客里,主要是让自己在整理笔记的过程中,多去思考完成这个功能的核心…

基于深度学习的单图像人群计数研究:网络设计、损失函数和监控信号

摘要 https://arxiv.org/pdf/2012.15685v2.pdf 单图像人群计数是一个具有挑战性的计算机视觉问题,在公共安全、城市规划、交通管理等领域有着广泛的应用。近年来,随着深度学习技术的发展,人群计数引起了广泛的关注并取得了巨大的成功。通过系统地回顾和总结2015年以来基于深…

rust学习——智能指针Rc

文章目录 Rc 与 ArcRcRc::clone观察引用计数的变化不可变引用一个综合例子Rc 简单总结 多线程无力的 RcArcArc 的性能损耗 总结 Rc 与 Arc Rust 所有权机制要求一个值只能有一个所有者,在大多数情况下,都没有问题,但是考虑以下情况&#xff1…

二维码智慧门牌管理系统升级解决方案:采集要素为智慧城市建设提供精准数据支持

文章目录 前言一、二维码智慧门牌管理系统的升级需求二、采集要素在系统升级中的应用三、消防栓、井盖等采集要素的应用 前言 随着城市化进程的加速,智慧城市的建设已成为未来城市发展的必然趋势。其中,二维码智慧门牌管理系统作为智慧城市的重要组成部…

基于Spring Boot的大学课程排课系统设计与实现

摘 要 大学课程排课是现代教育管理中重要的一环。目前,传统的排课方式已经无法满足日益增长的课程需求和学生个性化的诉求。因此,研究一种基于遗传算法的大学课程排课系统是非常必要的。本研究旨在开发一种基于SpringBoot Vue的大学课程排课系统&#x…

【Java 进阶篇】在Java Web应用中获取ServletContext对象详解

在Java Web应用开发中,ServletContext对象扮演着重要的角色,它允许你在整个Web应用程序中存储和共享数据。ServletContext对象是Servlet容器提供的一种用于管理Web应用程序的全局信息的方式。本文将详细探讨ServletContext对象的概念、用途以及如何在Jav…