当前位置: 首页 > news >正文

苍穹外卖--店铺营业状态设置

需求分析和设计

1.1.1 产品原型

进到苍穹外卖后台,显示餐厅的营业状态,营业状态分为营业中打烊中,若当前餐厅处于营业状态,自动接收任何订单,客户可在小程序进行下单操作;若当前餐厅处于打烊状态,不接受任何订单,客户便无法在小程序进行下单操作。

点击营业状态按钮时,弹出更改营业状态

选择营业,设置餐厅为营业中状态

选择打烊,设置餐厅为打烊中状态

1.1.2 接口设计

根据上述原型图设计接口,共包含3个接口。

接口设计:

  • 设置营业状态
  • 管理端查询营业状态
  • 用户端查询营业状态

**注:**从技术层面分析,其实管理端和用户端查询营业状态时,可通过一个接口去实现即可。因为营业状态是一致的。但是,本项目约定:

  • 管理端发出的请求,统一使用/admin作为前缀。
  • 用户端发出的请求,统一使用/user作为前缀。

因为访问路径不一致,故分为两个接口实现。

1.1.3 营业状态存储方式

虽然,可以通过一张表来存储营业状态数据,但整个表中只有一个字段,所以意义不大。

营业状态数据存储方式:基于Redis的字符串来进行存储

**约定:**1表示营业 0表示打烊

1.2 代码开发

1.2.1 设置营业状态

在sky-server模块中,创建ShopController.java

根据接口定义创建ShopController的setStatus设置营业状态方法:

package com.sky.controller.admin;import com.sky.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {public static final String KEY = "SHOP_STATUS";@Autowiredprivate RedisTemplate redisTemplate;/*** 设置店铺的营业状态* @param status* @return*/@PutMapping("/{status}")@ApiOperation("设置店铺的营业状态")public Result setStatus(@PathVariable Integer status){log.info("设置店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");redisTemplate.opsForValue().set(KEY,status);return Result.success();}
}
1.2.2 管理端查询营业状态

根据接口定义创建ShopController的getStatus查询营业状态方法:

	/*** 获取店铺的营业状态* @return*/@GetMapping("/status")@ApiOperation("获取店铺的营业状态")public Result<Integer> getStatus(){Integer status = (Integer) redisTemplate.opsForValue().get(KEY);log.info("获取到店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");return Result.success(status);}
1.2.3 用户端查询营业状态

创建com.sky.controller.user包,在该包下创建ShopController.java

根据接口定义创建ShopController的getStatus查询营业状态方法:

package com.sky.controller.user;import com.sky.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;@RestController("userShopController")
@RequestMapping("/user/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {public static final String KEY = "SHOP_STATUS";@Autowiredprivate RedisTemplate redisTemplate;/*** 获取店铺的营业状态* @return*/@GetMapping("/status")@ApiOperation("获取店铺的营业状态")public Result<Integer> getStatus(){Integer status = (Integer) redisTemplate.opsForValue().get(KEY);log.info("获取到店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");return Result.success(status);}
}
``

相关文章:

苍穹外卖--店铺营业状态设置

需求分析和设计 1.1.1 产品原型 进到苍穹外卖后台&#xff0c;显示餐厅的营业状态&#xff0c;营业状态分为营业中和打烊中&#xff0c;若当前餐厅处于营业状态&#xff0c;自动接收任何订单&#xff0c;客户可在小程序进行下单操作&#xff1b;若当前餐厅处于打烊状态&#…...

2023金盾杯线上赛-AGRT战队-WP

目录 WEB ApeCoin get_source ezupload easyphp MISC 来都来了 芙宁娜 Honor Crypto 我看看谁还不会RSA hakiehs babyrsa PWN sign-format RE Re1 WEB ApeCoin 扫描发现有源码泄露&#xff0c;访问www.tar.gz得到源码。 在源码中发现了冰蝎马。 Md5解码&am…...

Python面向对象编程——类方法、实例方法和静态方法总结

在Python面向对象编程中&#xff0c;类方法&#xff08;class methods&#xff09;、实例方法&#xff08;instance methods&#xff09;和静态方法&#xff08;static methods&#xff09;是不同类型的方法&#xff0c;它们有一些联系&#xff0c;但也存在一些明显的区别。 类…...

HarmonyOS开发(五):常用基础组件

1、组件介绍 组件&#xff08;Component&#xff09;,是界面搭建及显示的最小单元。 组件根据功能可以分为五大类&#xff1a;基础组件、容器组件、媒体组件、绘制组件、画布组件 2、基础组件 基础组件是视图层的基本组成单元&#xff0c;它包含&#xff1a;Text、Image、T…...

Hive中常出现的错误(不定时更新)

1.加载数据失败 hive> load data local inpath /home/user/hive.txt into table studentl> ; FAILED: SemanticException [Error 10001]: Line 1:56 Table not found studentl hive> load data local inpath /home/user/hive.txt into table student; Loading data to…...

c++ 重写 多态

1 重写(继承后(拼接基类后)) 1.1 非虚函数 同名成员函数 (各自有一个xFunction() 内存 ) #include <iostream> #include <String> class BaseClass { public:void xFunction() {std::cout << "BaseClass::xFunction()\n"; } };class Subclass1 …...

Git如何修改提交(commit)用户名称(user.name)和邮箱(user.email)

Git用户名 Git查看用户名 git config user.name修改Git提交用户名 修改全局Git用户名 git config --global user.name "xx" 修改当前服务/项目Git用户名 git config user.name "xx"如果出现以下错误&#xff0c;解决方案如下&#xff1a; 错误案例&am…...

知行之桥EDI系统HTTP签名验证

本文简要概述如何在知行之桥EDI系统中使用 HTTP 签名身份验证&#xff0c;并将使用 CyberSource 作为该集成的示例。 API 概述 首字母缩略词 API 代表“应用程序编程接口”。这听起来可能很复杂&#xff0c;但真正归结为 API 是一种允许两个不同实体相互通信的软件。自开发以…...

C++ DAY08 异常

概念 异常事件&#xff08;如&#xff1a;除 0 溢出&#xff0c;数组下标越界&#xff0c;所要读取的文件不存在 , 空指针&#xff0c;内存不足 等等&#xff09; 在 C 语言对错误的处理是两种方法&#xff1a; 一是使用整型的返回值标识错误&#xff1b; 二是使用 errn…...

vscode导入STM32CubeIDE工程文件夹未定义警告清除方法

0 前言 在我们使用vscode去编辑STM32CubeIDE的工程文件时&#xff0c;经常会出现一些类型未定义、头文件路径无效的问题&#xff0c;无法正常使用且非常影响观感。本文介绍如何设置vscode导入的STM32CubeIDE配置文件&#xff0c;解决这一问题。 1 vscode导入STM32CubeIDE工程…...

SparkSQL之Optimized LogicalPlan生成过程

经过Analyzer的处理&#xff0c;Unresolved LogicalPlan已经解析成为Analyzed LogicalPlan。Analyzed LogicalPlan中自底向上节点分别对应Relation、Subquery、Filter和Project算子。   Analyzed LogicalPlan基本上是根据Unresolved LogicalPlan一对一转换过来的&#xff0c;…...

Java中有几种基本数据类型以及转换方式【Java面经(1)】

问&#xff1a;Java中有几种基本数据类型呢&#xff1f;以及它们之间的转换方式。详细介绍下 总共有8种基本数据类型 byte 、short 、long 、float 、double 、boolean 、char 详细类型以及字节数&#xff1a; 基本数据类型的转换方式 自动类型转换&#xff1a;小–>大 byt…...

JVM虚拟机:JVM调优第一步,了解JVM常用命令行参数

本文重点 从本文课程开始&#xff0c;我们将用几篇文章来介绍JVM中常用的命令行的参数&#xff0c;这个非常重要&#xff0c;第一我们可以通过参数了解JVM的配置&#xff0c;第二我们可以通过参数完成对JVM的调参。以及后面的JVM的调优也需要用到这些参数&#xff0c;所以我们…...

CSS特效019:图标图片悬浮旋转一周

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…...

requests请求django接口跨域问题处理

参考&#xff1a; https://zhuanlan.zhihu.com/p/416978320 https://blog.csdn.net/SweetHeartHuaZai/article/details/130983179 使用httpx代替requests import httpxheaders {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…...

#Js篇:Promise

定义 Promise是异步操作解决方案&#xff0c;为异步操作提供统一接口。 Promise英文意思是“承诺”&#xff0c;表示其他手段无法改变。 返回 所有异步任务都返回一个Promise实例。 Promise实例有一个then方法&#xff0c;用于指定下一步的回调函数。 状态 异步操作未完…...

【数据库篇】关系模式的表示——(2)规范化

范式&#xff1a;范式是符合某一种级别的关系模式的集合 规范化&#xff1a;是指一个低一级的范式的关系模式&#xff0c;通过模式的分解转换为若干个高一级范式的关系模式的集合。 1NF 每个分量必须是不可分开的数据项&#xff0c;满足这个条件的关系模式就是1NF。 2NF 若…...

【C++那些事儿】类与对象(3)

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;我之前看过一套书叫做《明朝那些事儿》&#xff0c;把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言&#xff0c;无疑是抽象且难度颇…...

spark的算子

spark的算子 1.spark的单Value算子 Spark中的单Value算子是指对一个RDD中的每个元素进行操作&#xff0c;并返回一个新的RDD。下面详细介绍一些常用的单Value算子及其功能&#xff1a; map&#xff1a;逐条映射&#xff0c;将RDD中的每个元素通过指定的函数转换成另一个值&am…...

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷7

1、一袋小球中有15个白球&#xff0c;3个红球和2个黑球。在随机从袋子中拿出至少&#xff08;&#xff09;个小球后&#xff0c;才可以保证至少拿出了5个白球 A、5 B、10 C、8 D、15 答案&#xff1a;B 2、以下选项中&#xff0c;数值最接近十进制数114的是&#xff08; &…...

CSS如何用Less实现多维度的样式复用_结合混合与继承技术实现

真正复用Less混合需参数化条件分支作用域隔离&#xff1a;带默认参数的混合&#xff08;如.btn-style(color: #007bff)&#xff09;、when条件判断、显式传参避免外部变量污染&#xff1b;extend用于静态语义归类&#xff0c;mixin用于动态样式生成&#xff1b;&表示当前层…...

多尺度地理加权回归:解决空间异质性的完整指南

多尺度地理加权回归&#xff1a;解决空间异质性的完整指南 【免费下载链接】mgwr Multiscale Geographically Weighted Regression (MGWR) 项目地址: https://gitcode.com/gh_mirrors/mg/mgwr 你是否曾在地理数据分析中遇到过这样的困境&#xff1a;某些影响因素在城市中…...

联想平板实用技巧|已连 WiFi 一键分享,不用密码也能快速联网

出门在外、朋友聚会或是办公场景&#xff0c;经常会遇到他人想要连接同一 WiFi&#xff0c;却忘记密码、不方便手动输入的尴尬情况。尤其是使用联想平板的用户&#xff0c;大多习惯用平板连接常用网络&#xff0c;想要把已连接的 WiFi 分享给手机、电脑或同伴设备&#xff0c;却…...

05华夏之光永存:(院士视角)华为未来十年算力生态前瞻 昇腾+盘古·算力与大模型端边云协同落地

华夏之光永存&#xff1a;华为未来十年算力生态前瞻系列第5篇 昇腾盘古算力与大模型端边云协同落地 一、摘要 昇腾芯片提供底层算力支撑&#xff0c;盘古大模型输出智能决策能力&#xff0c;二者协同是华为未来十年算力生态实现规模化、高效化、全场景落地的核心组合。本文聚焦…...

WinUtil:Windows系统优化与程序管理的终极工具箱完整指南

WinUtil&#xff1a;Windows系统优化与程序管理的终极工具箱完整指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil WinUtil是一款由Chris T…...

从匿名飞控换到PIXhawk 4,我踩过的坑和避坑指南(附完整ROS2配置流程)

从匿名飞控迁移到PIXhawk 4的实战指南&#xff1a;ROS2环境配置与避坑手册 当无人机开发者从匿名飞控转向PIXhawk 4时&#xff0c;硬件架构、软件生态和开发流程的差异常常带来意料之外的挑战。本文将分享我在Jetson Orin Nano&#xff08;Ubuntu 22.04&#xff09;平台上&…...

避坑指南:在ultralytics YOLO中集成Mamba-2或Vision Mamba时,如何搞定那个烦人的CUDA张量检查报错

深度解析&#xff1a;当Mamba架构遇上YOLO框架时的CUDA张量陷阱与工程化解决方案 在计算机视觉领域&#xff0c;YOLO系列模型因其卓越的实时检测性能而广受欢迎&#xff0c;而Mamba架构作为序列建模的新星&#xff0c;其线性复杂度优势让研究者们跃跃欲试地将它引入视觉任务。然…...

【多模态大模型容灾备份黄金标准】:20年AI基础设施专家亲授3层异构备份架构与RTO<2分钟实战方案

第一章&#xff1a;多模态大模型容灾备份策略 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型&#xff08;如融合视觉、语音、文本与结构化数据的统一架构&#xff09;在训练与推理过程中对存储一致性、状态可恢复性及跨模态特征对齐提出了远超单模态模型的容灾要…...

FPGA配置失败诊断指南:从状态寄存器到问题定位

1. FPGA配置失败诊断的核心思路 当你第一次遇到FPGA配置失败时&#xff0c;看着板子上纹丝不动的指示灯&#xff0c;那种感觉就像面对一台突然罢工的老式电视机——明明昨天还好好的&#xff0c;今天怎么就开不了机了&#xff1f;这时候千万别急着拆电路板&#xff0c;FPGA厂商…...

分布式强化学习实战:DPPO算法在复杂环境中的高效训练策略

1. DPPO算法核心概念解析 在强化学习领域&#xff0c;DPPO&#xff08;Distributed Proximal Policy Optimization&#xff09;正逐渐成为处理复杂环境任务的利器。这个算法名字听起来可能有些 intimidating&#xff0c;但拆解开来其实很好理解——它本质上就是PPO算法的分布式…...