外卖小程序-购物车模块表结构设计和后端代码

表结构设计

添加购物车代码

@Service
public class ShoppingCartServiceImpl implements ShoppingCartService {@Autowiredprivate ShoppingCartMapper shoppingCartMapper;@Autowiredprivate DishMapper dishMapper;@Autowiredprivate SetmealMapper setmealMapper;/*** 添加购物车** @param shoppingCartDTO*/public void addShoppingCart(ShoppingCartDTO shoppingCartDTO) {ShoppingCart shoppingCart = new ShoppingCart();BeanUtils.copyProperties(shoppingCartDTO, shoppingCart);//只能查询自己的购物车数据shoppingCart.setUserId(BaseContext.getCurrentId());//判断当前商品是否在购物车中List<ShoppingCart> shoppingCartList = shoppingCartMapper.list(shoppingCart);if (shoppingCartList != null && shoppingCartList.size() == 1) {//如果已经存在,就更新数量,数量加1shoppingCart = shoppingCartList.get(0);shoppingCart.setNumber(shoppingCart.getNumber() + 1);shoppingCartMapper.updateNumberById(shoppingCart);} else {//如果不存在,插入数据,数量就是1//判断当前添加到购物车的是菜品还是套餐Long dishId = shoppingCartDTO.getDishId();if (dishId != null) {//添加到购物车的是菜品Dish dish = dishMapper.getById(dishId);shoppingCart.setName(dish.getName());shoppingCart.setImage(dish.getImage());shoppingCart.setAmount(dish.getPrice());} else {//添加到购物车的是套餐Setmeal setmeal = setmealMapper.getById(shoppingCartDTO.getSetmealId());shoppingCart.setName(setmeal.getName());shoppingCart.setImage(setmeal.getImage());shoppingCart.setAmount(setmeal.getPrice());}shoppingCart.setNumber(1);shoppingCart.setCreateTime(LocalDateTime.now());shoppingCartMapper.insert(shoppingCart);}}

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

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

相关文章

【C#】KeyDown事件不被触发的问题。

在c#的winform工程中&#xff0c;可能会遇到创建了一个对话框&#xff0c;该对话框内包含了控件作为这个对话框的一部分。软件运行时&#xff0c;键盘输入按键&#xff0c;却没有办法触发对话框的KeyDown事件。是不是很奇怪呢&#xff1f; 首先要明白&#xff1a;主对话…

MySQL--执行一条 select 语句,期间发生了什么?

执行一条 SQL 查询语句&#xff0c;期间发生了什么&#xff1f; 连接器&#xff1a;建立连接&#xff0c;管理连接、校验用户身份&#xff1b;查询缓存&#xff1a;查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行。MySQL 8.0 已删除该模块&#xff1b;解析 …

Vue.js+SpringBoot开发APK检测管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…

Linux命令:dmesg命令

目录 1 dmesg命令1.1 简介1.2 说明1.3 案例1、显示所有内核消息2、实时监控新消息3、显示特定级别的消息4、将消息输出到文件5、搜索包含特定字符串的被检测到的硬件6、将开机信息发邮件7、打印并清除内核环形缓冲区 总结 1 dmesg命令 1.1 简介 dmesg 命令在 Linux 系统中用于…

Lord 3DMCV7-AHRS 时间同步硬件触发设置

目的:通过FPGA发送脉冲触发IMU采集数据。FPGA发送脉冲时,IMU才有数据产生。 FPGA与IMU的硬件接线就不讲了,这里主要说明的是IMU的设置以及ROS驱动的config文件更改。 1. WIN上位机设置 通过IMU在WINDOWS的上位机SensorConnect对IMU的GPIO、波特率等基本功能进行设值,具体…

通过spring boot/redis/aspect 防止表单重复提交【防抖】

一、啥是防抖 所谓防抖&#xff0c;一是防用户手抖&#xff0c;二是防网络抖动。在Web系统中&#xff0c;表单提交是一个非常常见的功能&#xff0c;如果不加控制&#xff0c;容易因为用户的误操作或网络延迟导致同一请求被发送多次&#xff0c;进而生成重复的数据记录。要针…

用pyecharts的overlap绘制叠加图时,设置的颜色不起作用

问题 用pyecharts绘制叠加图时&#xff0c;如折线图上叠加散点图时&#xff0c;分别设置了自己的颜色&#xff08;三角是绿色&#xff0c;圆形是蓝色&#xff09;&#xff0c;但是渲染颜色和图例颜色不一致&#xff0c;如下图所示&#xff0c;折线颜色和散点颜色相同。 解决…

Leet code 904 水果成篮

解题思路&#xff1a;滑动窗口 创建hash表记录水果的种类和数量 两个指针left 和 right 从数组起始位置开始滑动&#xff0c;right在循环内 hash[fruits[right]] 进窗口 然后判断 hash表中的种类是否大于2 一旦大于2就要想办法出窗口 出窗口需要将hash表中种类重回2种 …

python做筛子用

import randomdef roll_dice():roll random.randint(1,10)return roll def main():total_times 100#初始化列表result_list[0]*10for i in range(total_times):print(roll_dice())for j in range(1,11):if roll_dice() j:result_list[j-1] 1if __name__ __main__:main() 结…

基于Java (spring-boot)的个人博客系统

一、项目介绍 登录模块&#xff1a;用户登录、用户注册 普通用户&#xff1a;博客主页、博客随笔、博客留言、个人信息修改 管理员&#xff1a;系统管理、内容管理、文章管理、随笔管理、分类管理、标签管理、留言管理、评论管理、文件管理 博客编辑&#xff1a;支持富文本编辑…

Autosar教程-Mcal教程-Fls配置教程

3.11.1 FLS基础知识 flash操作中有两个术语:block和page。block是flash最小的擦除单位,page则是flash写入的最小单位。以我们使用的F1KM-S4(R7F7016533)来说,它的是64 bytes, page是4bytes。这也就意味着,如果要擦除的话,最小要擦除64 bytes,但是写入可以按4字节的大小写入…

程序员的知识宝库,100+开源书籍、文档

公众号&#xff1a;【可乐前端】&#xff0c;每天3分钟学习一个优秀的开源项目&#xff0c;分享web面试与实战知识&#xff0c;也有全栈交流学习摸鱼群&#xff0c;期待您的关注! 每天3分钟开源 hi&#xff0c;这里是每天3分钟开源&#xff0c;很高兴又跟大家见面了&#xff0…

每日五道java面试题之springMVC篇(四)

目录&#xff1a; 第一题. Spring MVC怎么样设定重定向和转发的&#xff1f;第二题.Spring MVC怎么和AJAX相互调用的&#xff1f;第三题. 如何解决POST请求中文乱码问题&#xff0c;GET的又如何处理呢&#xff1f;第四题. Spring MVC的异常处理&#xff1f;第五题. 如果在拦截请…

iOS面试题锦集

1. 问&#xff1a;一张图片所占内存大小跟什么有关&#xff1f; 图片所占内存大小&#xff0c;与图片的宽高有关 我们平时看到的png、jpg、webp这些图片格式&#xff0c;其实都是图片压缩格式。通过对应的算法来优化了大小以节省网络传输与本地保存所需的资源。 但是当我们加…

操作系统(一)

操作系统 一、操作系统的四个特性 并发性&#xff1a;并发性是指两个或多个时间在同一时间间隔发生&#xff0c;并发和并行是两个相似的概念&#xff0c;并行是指两个或多个事件在同一时刻发生。进程在宏观上并行&#xff0c;微观上串行 2.共享性&#xff1a;** 由于操作系统…

04-java基础--流程控制语句

一、switch语句 二、循环的三种结构 流程控制语句分为三种结构&#xff1a; 顺序结构&#xff08;按代码的书写顺序执行&#xff0c;从上到下依次执行&#xff09;分支结构&#xff08;if语句、if–else语句、switch语句&#xff09;循环结构&#xff08;while、for循环、do–…

H5 响应式精品网站推荐导航源码

源码名称&#xff1a;响应式精品网站推荐导航源码 源码介绍&#xff1a;一款响应式精品网站推荐导航源码&#xff0c;可以自己修改代码替换图标图片和指向网址。背景图支持自动替换&#xff0c;背景图可以在img.php中修改 需求环境&#xff1a;H5 下载地址&#xff1a; http…

python_Anaconda虚拟环境导出以及重现

文章目录 1. 场景2. 解决方案2.1 方案一&#xff1a;直接将打包&#xff0c;然后将包传输到另外一台服务器2.2 方案二&#xff1a;导出环境所有的包名及版本&#xff0c;然后重新安装 1. 场景 我们有时候需要把一个虚拟环境迁移到别的服务器上面去&#xff0c;这时候&#xff…

JavaScript基础(超详细)

目录 1.JavaScript概述 2.JavaScript的组成及其基本结构 1.JavaScript的组成 1.ECMAScript ECMAScript是一种由Ecma国际[前向为欧洲计算机制造商协会(European Computer Manufacturers Associaiton)]通过ECMA-262标准化的脚本程序设计语言。其主要描述了JavaScript的语法…

使用阿里云服务器查看网站备案的方法和注意事项

随着互联网的发展&#xff0c;网站注册已成为在中国建设网站的必要步骤。 在使用阿里云服务器时&#xff0c;我们可以通过以下步骤查看网站注册状态。 备案概述&#xff1a; 在中国&#xff0c;互联网信息服务提供者必须进行登记&#xff0c;以监管互联网内容、规范市场运营和…