store(商城项目)Springboot+springmvc+ajax+mybatis(12)

本文详细解析了电商系统中收货地址删除的全过程,包括SQL语句设计、异常处理、业务逻辑实现及前后端交互策略,确保用户体验与数据一致性。

50. 收货地址-删除-持久层

(a) 规划所需要执行的SQL语句

删除收货地址需要执行的SQL语句大致是:

delete from t_address where aid=?

在执行删除之前,还应该检查数据是否存在、数据归属是否正确,相关功能已经完成,无需重复开发!

如果删除的是默认收货地址,基于“每个用户始终有且仅有1条默认收货地址”的数据规则,还需要考虑“自动将剩余的某条收货地址设置为默认”,到底是哪一条,可以添加规则“将最后修改的收货地址设置为默认”,那么,就需要找出“最后修改的收货地址”,需要执行的SQL语句大致是:

select * from t_address where uid=? order by modified_time desc limit 0,1

同时,如果用户删除的是默认收货地址,但是,这也是该用户的最后一条收货地址,则不需要执行以上操作!可以通过此前已经完成的countByUid()来实现!

最后,如果需要将剩余的某条收货地址设置为默认,可以直接通过此前已经完成的updateDefaultByAid()来实现!

(b) 接口与抽象方法

AddressMapper接口中添加:

Integer deleteByAid(Integer aid);

Address findLastModifiedByUid(Integer uid);

(c) 配置映射

51. 收货地址-删除-业务层

(a) 规划可能出现的异常

需要创建DeleteException

(b) 业务接口及抽象方法

IAddressService中添加:

void delete(Integer aid, Integer uid, String username);

(c) 实现抽象方法

AddressServiceImpl中实现抽象方法,分析步骤:

@Transactional
public void delete(Integer aid, Integer uid, String username) {
    // 根据aid查询收货地址数据
    // 判断查询结果是否为null
    // 是:AddressNotFoundException

    // 判断查询结果中的uid与参数uid是否不同
    // 是:AccessDeniedException

    // 执行删除,并获取返回值
    // 判断返回值是否不为1
    // 是:DeleteException

    // 判断查询结果(对应刚刚删除的数据)中的isDefault是否不为1
    // return;

    // 统计当前用户还有多少收货地址
    // 判断统计结果是否为0
    // return;

    // 查询当前用户的最后修改的那一条收货地址
    // 从本次查询中取出数据的aid
    // 执行设置默认收货地址,获取返回值
    // 判断返回值是否不为1
    // 是:UpdateException
}

52. 收货地址-删除-控制器层

(a) 处理新创建的异常

(b) 设计所需要处理的请求

请求路径:
请求参数:
请求方式:
响应结果:JsonResult<?>

(c) 处理请求

53. 收货地址-删除-前端页面

当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 9900 多个 Star,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。商城项目所涉及的功能结构图整理如下: 作者寄语本课程录制于2019年,距今已有一段时间。期间,Spring Boot技术栈也有一些版本升级,比如Spring Boot 2.7.x发版、Spring Boot 3.x版本正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。新蜂商城的优化和迭代工作不会停止,不仅仅是功能的优化,在技术栈上也会不断的增加,截止2023年,新蜂商城已经发布了 7 个重要的版本,版本记录及开发计划如下图所示。 课程特色 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择实践项目页面美观且实用,交互效果完美教程详细开发教程详细完整、文档资源齐全代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 课程预览 以下为商城项目的页面和功能展示,分别为:商城首页 1商城首页 2购物车订单结算订单列表支付页面后台管理系统登录页商品管理商品编辑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西城男孩(0t0)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值