(自用)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 参数(ct、tp、ids),展示商品列表和支付总金额。

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

  • 预支付订单生成

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

    • 后端:

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

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


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

  • 数据库操作:

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

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

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

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


4. 核心代码结构
  • 前端:

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

    • 事件监听(change、click)。

  • 后端:

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

    • 实体类映射(Address、District、Order)。

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

相关推荐
SL_staff12 分钟前
JVS数字底座实践:构建企业级统一内容管理平台的技术路径
java·产品
nice_lcj52025 分钟前
【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端
java·后端·spring·spring ai·ai应用开发
fengci.34 分钟前
CTF2MISC中等部分
开发语言·前端·学习
桦说编程1 小时前
TransmittableThreadLocal 解读:从 CRR 机制到上下文所有权
java·后端·源码
xys_6782 小时前
JavaEE通关手册:初识Java
java·开发语言
文丑颜不良啊2 小时前
LeetCode2461~2480题目解析
java·leetcode
YueTann2 小时前
mgtv5th-baseline学习
学习
ShineWinsu3 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
文丑颜不良啊3 小时前
LeetCode2441~2460题目解析
java·leetcode
阿屿4 小时前
从零手搓 AI 伴侣(二):好感度通胀危机,与它的「货币政策」
java·人工智能