文章目录

  • 1收货模块功能演示
  • 2开发收货地址模块流程
    • 2.1数据库表设计
    • 2.2设计流程
  • 3接口设计
    • 3.1新增地址接口
      • 3.1.1代码分析
    • 3.2删除地址接口
      • 3.2.1代码分析
    • 3.3地址列表信息查询接口
      • 3.3.1代码分析
  • 4个人说明
  • 5[我的个人网站](http://www.liph.fun)

好久没有写项目实战开发了,这次项目实战主要讲的是PC端电商平台,用户购买商品,选择邮寄的地址,需要用户添加收货地址,或者添加多个收货地址,以及删除收货地址。

演示地址:http://www.liph.fun/business-Admin/shop/

1收货模块功能演示

2开发收货地址模块流程

2.1数据库表设计

表字段 中文含义
user_id 用户ID
receiver_name 收货人姓名
receiver_mobile 收货人联系电话
receiver_province 收货人所在省份
receiver_city 收货人所在市
receiver_district 收货人所在区
receiver_address 收货人详细地址
receiver_zip 邮编

2.2设计流程

(1)用户购买商品,首先的选择一个用户自己的地址,也就是如下图所示的地址列表

(2)地址列表需要对应数据库表中的查询,数据库一张表中的数据必须从另外一个渠道插入进来。也就是下面的图片:

(3)有了收货地址,假如客户有的收货地址,长期不使用得给客户提供一个删除功能。

3接口设计

通过第二部分分析可得出收货地址功能后台共计提供3个接口,增加地址接口,删除地址接口,收货地址列表查询接口。
说明每个地址之前都需要判断用户是否登录,用户登录了则可以调用接口否则跳转登录页面提示用户登录

3.1新增地址接口

参数:登录用户ID,收货人,收货人手机号,收货人省市区和详细地址,收货人地址邮编

返回结果:返回成功

3.1.1代码分析

/*** 地址管理*/
@RestController
@RequestMapping("api")
public class ShipingController {@Autowiredprivate ShippingService shippingService;@RequestMapping("/add/shiping")public CommonResult addshiping(TbShipping shipping,HttpSession session){TbMember tbMember= (TbMember) session.getAttribute(Constant.CURRENT_LOGIN_USER);if(tbMember==null){//未登录返回0  啊return   CommonResult.failed(ResultCode.UNAUTHORIZED);}shipping.setUserId(tbMember.getId().intValue());int result=   shippingService.addshipping(shipping);return CommonResult.success(result);}}

3.2删除地址接口

参数:地址主键ID
返回结果:返回成功

3.2.1代码分析

    @RequestMapping("/delete/shiping")public CommonResult deleteshiping(TbShipping shipping,HttpSession session){TbMember tbMember= (TbMember) session.getAttribute(Constant.CURRENT_LOGIN_USER);if(tbMember==null){//未登录返回0  啊return   CommonResult.failed(ResultCode.UNAUTHORIZED);}int result=   shippingService.deleteshipping(shipping);return CommonResult.success(result);}

3.3地址列表信息查询接口

参数:用户ID
返回结果:返回地址信息列表
CommonResult

3.3.1代码分析

/**** 查询当前用户的所有地址信息*/@RequestMapping("/get/shipinglist")public CommonResult<List<TbShipping>> getshipinglist(HttpSession session){TbMember tbMember= (TbMember) session.getAttribute(Constant.CURRENT_LOGIN_USER);if(tbMember==null){//未登录返回0  啊return   CommonResult.failed(ResultCode.UNAUTHORIZED);}List<TbShipping> List= shippingService.getshipinglist(tbMember.getId().intValue());return CommonResult.success(List);}

4个人说明

经验是由一点一点积累的,思维也是由一天一天训练出来的。

5我的个人网站

持续更新分享此项目电商在线演示地址为:演示地址

JAVA项目实战开发电商项目案例(九)收货地址模块开发相关推荐

  1. 【项目实战】电商项目中的SPU与SKU傻傻分不清楚

    一.SPU与SKU介绍 电商里面一般对商品的单位都有 SPU 或 SKU,这两个概念有什么区别? 在电商项目中,SPU和SKU是两个常用的概念,它们分别表示不同的商品信息. 从广义上讲,类目>S ...

  2. Vue3电商项目实战-结算支付 3【05-结算-收货地址-添加、06-结算-收货地址-修改、07-结算-提交订单】

    文章目录 05-结算-收货地址-添加 06-结算-收货地址-修改 07-结算-提交订单 05-结算-收货地址-添加 目的:实现收货地址的添加. 大致步骤: 独立组件,准备一个对话框 完成表单布局 完成 ...

  3. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人配置详解与Debugging演示(八十七)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售智能业务对话机器人系统所使用的各项配置进行详细剖析,并通过debug模式来理解在下面展示的Rasa graph archite ...

  4. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售对话机器人通过Rasa interactive进行问题修正与调试演示(八十四)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人通过Rasa Interactive的调试来定位NLU的问题,并通过交互式模 ...

  5. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人业务功能微服务解析与调试演示(八十二)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人主要业务功能所使用的微服务进行解析,并通过Rasa Interactive的 ...

  6. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人业务功能微服务解析与调试演示(八十三)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人业务功能的微服务如何结合数据库使用进行解析,并通过Rasa Interact ...

  7. spark项目实战:电商分析平台之各个范围Session步长、访问时长占比统计(需求一)

    spark项目实战:电商分析平台之各个范围Session步长.访问时长占比统计(需求一) 项目基本信息,架构,需要一览 各个范围Session步长.访问时长占比统计概述 各个范围Session步长.访 ...

  8. spark项目实战:电商分析平台之项目概述

    spark项目实战:电商分析平台之项目概述 目录 项目概述 程序架构分析 需求解析 初始代码和完成代码存放在github上面 1. 项目概述 在访问电商网站时,我们的一些访问行为会产生相应的埋点日志( ...

  9. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人ResponseSelector使用详解与Debugging演示(八十八)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售智能业务对话机器人系统如何使用Rasa框架提供的ResponseSelector组件处理常见问题和用户闲聊内容的过程,以及如何 ...

  10. jssdk 获取微信收货地址_微信收货地址共享开发接口讲解

    写在前面的话:微信开发者文档写的比较清楚,也不容易出错,可是偏偏收货地址共享那儿写的比较绕,同时也会有很多坑,这里总结一下. ======正文开始====== 微信收货地址共享开发接口基本使用场景是: ...

最新文章

  1. 看完这篇文章之后,终于明白了编译到底怎么回事。
  2. KillTimer()的使用
  3. linux安装软件时提示找不到镜像的问题:Couldn't resolve host 'mirrorlist.centos.org'
  4. ASP.Net新手项目经验谈
  5. .sh文件是什么语言_关于Linux文件的一些基本命令和知识:
  6. dubbo通信协议之对比
  7. android 抽屉式滑动demo
  8. 帆软JS鼠标悬停列标题高亮显示/改变选中行行高
  9. 社团管理系统用c语言,C语言高校社团管理系统设计报告稿件.doc
  10. html5 保存页面为pdf,如何在PyQt5中将HTML页面保存为PDF
  11. 多维向量空间中点到线的距离公式
  12. 如何在图片上添加边框和文字
  13. 微信小程序 自定义控件 数字键盘
  14. PHP的介绍及应用,ajax的介绍及应用,跨域问题及jsonp解决方法
  15. 计算机专业学生社会实践,计算机专业学生社会实践报告
  16. oidc_使用OIDC和Ionic for JHipster保护您的移动应用程序
  17. SpringBoot中的html页面访问不到js,css等静态资源问题解决方案
  18. HTML——超文本标记语言
  19. iOS 微信分享整理 - 自定义分享菜单
  20. 01入门及简单应用-ReentrantReadWriteLock原理-AQS-并发编程(Java)

热门文章

  1. 7个等级 容灾等级_猫奴的10个等级 你的奴性有多高?
  2. 手动抛出异常_TestNG和SpringBoot2.1.6整合后,导致TestNG的断言异常无法抛出,是为什么?...
  3. mysqlplus 批量插入_解决SpringBoot+Druid+Mybatis Plus 执行MySQL批量插入,更新 报错的问题...
  4. Properties文件操作
  5. python标准库os中的方法startfile_如何使用Python 打开exel等各种文件或者应用,就用:os.startfile...
  6. groovy+mysql数据库_groovy - groovy连接数据库
  7. 空格表示 java_java 正则表达式 空格怎么表示
  8. java实现对称加密—数据库密码加解密
  9. 【算法总结】数学问题-高精度整数
  10. maven-聚合与继承