(自用)Java学习-5.19(地址管理,三级联动,预支付)

1. 地址管理模块
  • 地址展示

    • 前端:通过 showAddress() 发起 Ajax GET 请求,动态渲染地址列表表格,使用 #{tag}#{name} 等占位符替换真实数据。

    • 后端

      • 控制器层调用 AddressService,通过 AddressMapper 查询用户地址数据。

      • SQL 按 is_default 降序排序,优先展示默认地址。

  • 设置默认地址

    • 前端:点击“设为默认”触发 setDefault(aid),发送 POST 请求。

    • 后端

      • 服务层事务操作:先将用户所有地址 is_default 设为 0,再设置指定 aid 的地址为 1。

      • SQL 通过两个 <update> 标签分别处理用户 ID 和地址 ID 的更新。

  • 三级联动地址选择

    • 前端:基于省、市、区下拉框的 change 事件,动态加载下级区域数据。

    • 后端

      • 控制器调用 DistrictService,查询 t_dict_district 表,按 parent 字段返回层级数据。

  • 地址添加

    • 前端:提交表单数据,触发 /address/saveAddress 请求。

    • 后端

      • 检查用户地址数量(上限 10 条),首次添加设为默认地址。

      • 通过 DistrictMapper 查询省市区名称,填充完整地址信息。

      • SQL 插入语句覆盖地址表全字段。


2. 购物车与订单模块
  • 购物车勾选与统计

    • 前端:通过勾选事件实时计算选中商品的总数量和总金额,同步更新隐藏域数据。

    • 后端

      • 控制器接收勾选的购物车 ID 数组,联合查询商品信息(t_cart 与 t_product 表关联)。

  • 订单确认页回显

    • 前端:解析 URL 参数(cttpids),展示商品列表和支付总金额。

    • 后端:通过 CartService 查询勾选商品详情,返回 CartVO 列表。

  • 预支付订单生成

    • 前端:提交地址和总金额,触发 /orders/createOrder 请求,跳转支付页。

    • 后端

      • 生成唯一订单号(UUID),关联用户地址信息。

      • 使用 Redis 缓存订单数据(30 分钟过期),避免重复提交。


3. 关键技术点
  • 前后端交互:Ajax 异步请求、JSON 数据格式、URL 参数传递。

  • 数据库操作

    • MyBatis 动态 SQL(如 <foreach> 遍历数组)。

    • 事务管理(@Transactional 注解)。

  • 缓存应用:Redis 存储临时订单数据,防止支付超时。

  • 安全控制:用户会话(HttpSession)管理,参数合法性校验。


4. 核心代码结构
  • 前端

    • jQuery DOM 操作(append()replace())。

    • 事件监听(changeclick)。

  • 后端

    • Spring MVC 分层架构(Controller → Service → Mapper)。

    • 实体类映射(AddressDistrictOrder)。

    • 配置文件(application.yml 定义业务参数)。

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

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

相关文章

Spring 循环依赖:从原理到解决方案的全面解析

Spring 循环依赖&#xff1a;从原理到解决方案的全面解析 一、循环依赖的定义与分类 1. 什么是循环依赖&#xff1f; 在 Spring 框架中&#xff0c;循环依赖指的是多个 Bean 之间形成了依赖闭环。例如&#xff1a; Bean A 依赖 Bean BBean B 依赖 Bean CBean C 又依赖 Bean…

n 阶矩阵 A 可逆的充分必要条件是 ∣ A ∣ ≠ 0

n 阶矩阵 A 可逆的充分必要条件是 ∣ A ∣ ≠ 0 |A| \neq 0 ∣A∣0 的几何意义 1. 行列式的几何意义回顾 行列式 ∣ A ∣ |A| ∣A∣&#xff08;或 det ⁡ ( A ) \det(A) det(A)&#xff09;表示矩阵 A A A 所对应的线性变换对空间的体积缩放因子&#xff1a; ∣ A ∣ &…

Rockey Linux 安装ffmpeg

1.环境准备 Rockey linux 9.2 ffmpeg 静态资源包 这个是我自己的&#xff1a; https://download.csdn.net/download/liudongyang123/90920340https://download.csdn.net/download/liudongyang123/90920340 这个是官网的 Releases BtbN/FFmpeg-Builds GitHub 以上两个资…

wordcount在集群上的测试

1.将louts.txt文件从cg计算机复制到master节点上面&#xff0c;存放在/usr/local/hadoop 需要输入密码&#xff1a;83953588abc scp /root/IdeaProjects/mapReduceTest/lotus.txt root172.18.0.2:/usr/local/hadoop /WordCountTest/input 2.将lotus.txt文件从master这台机器…

AI+制造:中小企业的低成本智能化转型

文章内容过长&#xff0c;可以考虑直接跳转到文章末尾查看概要图 在制造业竞争日益激烈的今天&#xff0c;中小企业正面临着前所未有的挑战&#xff1a;人力成本持续攀升、能源消耗居高不下、质量控制难度增加。与此同时&#xff0c;数字化转型已成为行业共识&#xff0c;但高…

Linux C/C++编程 —— 线程技术总结

一、线程基本概念 线程是进程内的一个执行单元&#xff0c;多个线程共享进程的资源&#xff08;如内存、文件描述符等&#xff09;&#xff0c;但每个线程拥有自己的寄存器、栈等。与进程相比&#xff0c;线程的创建、切换开销较小&#xff0c;能更高效地利用 CPU 资源。 二、…

Femap许可证与网络安全策略

随着科技的快速发展&#xff0c;网络安全问题已成为各行各业关注的焦点。在电磁仿真领域&#xff0c;Femap作为一款领先的软件&#xff0c;其许可证的安全性和网络策略的重要性不言而喻。本文将探讨Femap许可证与网络安全策略的关系&#xff0c;确保您的电磁仿真工作能够在一个…

深度解析:SQLynx 如何筑牢数据库安全防线​

在数据驱动业务发展的时代&#xff0c;数据库作为企业核心资产的 “保险箱”&#xff0c;其安全性至关重要。一旦数据库遭遇攻击、数据泄露或被误操作&#xff0c;将给企业带来不可估量的损失。而 SQLynx 作为一款专注于数据库安全管理的工具&#xff0c;凭借其多项创新技术与功…

更新时间相差8个小时

下面的java代码在updateFill方法里面生成的modifiedTime时间是当前时间是正确的&#xff0c;为什么到service层testCommonFieldAutoUpdate方法里面去更新的时候modifiedTime就差8个小时呢&#xff1f;代码如下所示&#xff1a; Slf4j Component public class MpMetaObjectHand…

Windows逆向工程提升之IMAGE_TLS_DIRECTORY

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 TLS的作用 TLS的实现 静态 TLS​​ 动态 TLS​​ 内部实现 回调机制 TLS Directory 的结构 TLS的作用 TLS (Thread Local Storage) 是一种用于为多线程应用程序提供线程独立存储空…

云效流水线Flow使用记录

概述 最近在频繁使用阿里云云效的几款产品&#xff0c;如流水线。之前写过一篇&#xff0c;参考云效流水线缓存问题。 这篇文章来记录更多问题。 环境变量 不管是云效流水线Flow还是应用交付AppStack&#xff08;基于流水线&#xff0c;后文不再赘述&#xff09;&#xff0…

Android中获取控件尺寸进阶方案

在Android开发中,很多场景都需要获取控件(View)的宽高信息,比如动态布局调整、动画效果实现等。然而,直接在Activity的onCreate()中调用控件的getWidth()或getHeight()`方法,得到结果却是0,因为控件还没完成布局测量。 本文总结了几种获取控件大小的实用方法,并对各方…

android 输入系统

一、输入系统的核心角色与分层架构 Android 输入系统的本质是桥梁&#xff1a;一端连接硬件驱动产生的原始事件&#xff0c;另一端将事件精准派发给应用窗口。整个过程涉及三层架构和多个关键组件&#xff0c;可类比为 “快递分拣系统”&#xff1a; 1. 硬件与内核层&#xf…

ubuntu中,c和c+程序,预编译、编译、链接和运行命令

目录 安装编译器一.c编译运行&#xff08;粗暴简单&#xff09;1.编写 C 程序&#xff1a;2. 预处理&#xff1a;3.编译&#xff1a;4. 汇编&#xff1a;5. 链接&#xff1a;6.运行 二.c编译运行&#xff08;粗暴简单&#xff09;1.编写 C 程序&#xff1a;2.预处理&#xff1a…

【FastAPI】--2.进阶教程(一)

【FastAPI】--基础教程-CSDN博客 app.get和post的参数&#xff1a; 参数类型说明pathstr路由路径&#xff08;如 "/marks"&#xff09;&#xff0c;必填。response_modelType[T]定义响应数据的模型&#xff08;如 percent&#xff09;&#xff0c;会自动校验和序列…

KT6368A通过蓝牙芯片获取手机时间详细说明,对应串口指令举例

一、功能简介 KT6368A双模蓝牙芯片支持连接手机&#xff0c;获取手机的日期、时间信息&#xff0c;可以同步RTC时钟 1、无需安装任何app&#xff0c;直接使用系统蓝牙即可实现 2、同时它不影响音频蓝牙&#xff0c;还支持一些简单的AT指令进行操作 3、实现的方式&#xff1…

【平面波导外腔激光器专题系列】用于光纤传感的低噪声PLC外腔窄线宽激光器

----翻译自Mazin Alalusi等人的文章 摘要 高性价比的 1550 nm DWDM平面外腔 &#xff08;PLANEX&#xff09; 激光器是干涉测量、布里渊、LIDAR 和其他光传感应用的最佳选择。其线宽<3kHz、低相位/频率噪声和极低的RIN。 简介 高性能光纤分布式传感技术是在过去几年中开发…

企业微信内部网页开发流程笔记

背景 基于ai实现企微侧边栏和工作台快速问答小助&#xff0c;需要h5开发&#xff0c;因为流程不清楚摸索半天&#xff0c;所以记录一下 一、网页授权登录 1. 配置步骤 1.1 设置可信域名 登录企业微信管理后台 进入"应用管理" > 选择开发的具体应用 > “网…

WORD 转 PDF 工具:排版 / 图片 / 表格批量转换提升办公效率

各位办公小能手们&#xff0c;今天来聊聊文档工具里的WORD转PDF工具&#xff01;这玩意儿到底是干啥的呢&#xff1f;咱来好好说道说道。 先说核心功能。第一个就是格式转换&#xff0c;能把Word文档转换成PDF&#xff0c;不管是格式、排版&#xff0c;还是图片、表格啥的&…

从逆流监测到智慧用电:ADL200N-CT系列单相导轨表赋能家庭绿色能源

在新能源浪潮席卷全球的当下&#xff0c;阳台光伏以及家庭储能&#xff08;户储&#xff09;系统逐渐成为众多追求绿色生活、渴望实现能源自主家庭的新选择。它不仅能有效利用太阳能等清洁能源&#xff0c;还能在用电高峰时段为家庭提供稳定电力支持&#xff0c;降低用电成本。…