(自用)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_cartt_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 定义业务参数)。

相关推荐
nashane1 分钟前
HarmonyOS 6学习:JsCrash“闪退”法医指南——从FaultLog堆栈还原崩溃现场的终极手册
学习·华为·harmonyos
for_ever_love__4 分钟前
UI学习:UICollectionView瀑布流
学习·ui·ios·objective-c·cocoa
J-Tony115 分钟前
【JVM】三色标记法
java·jvm·算法
AOwhisky21 分钟前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
辣椒思密达32 分钟前
Python公开数据采集实战:如何解决请求高频拦截与Session会话中断问题
开发语言·python
_李小白33 分钟前
【android opencv学习笔记】Day 32:直线检测之霍夫变换
android·opencv·学习
李白的天不白39 分钟前
docker ps
java
Albart5751 小时前
Python 实战教程:用 30 分钟学会解决真实问题
开发语言·python
NE_STOP1 小时前
Docker--Docker Swarm集群
java
2301_773643621 小时前
ceph池
开发语言·ceph·python