仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在:

【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客


全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码分析,源码读起来也不复杂~

谨慎:源代码中有一些注释是错误的,有的注释意思完全相反,有的注释对不上号,我在阅读过程中就顺手更新了,并且在我不会的地方添加了新的注释,所以在读源代码过程中一定要谨慎啊!

目录

A1.接口入参

B1.新增类型

B2.修改类型

C1.修改业务全信息

C2.修改某几项信息

B3.删除类型

B4.查找类型

A2.接口出参

B1.新增、修改、删除类型

B2.查找类型

A3.各种pojo类型(可跳过)

B1.PO=entity 实体类(必包含)

B2.BO 业务对象(可省略)

B3.BTO 数据传输对象

B4.VO 视图模型对象(可省略)


在前面的 No4 里面没有讲过这个,是因为前面重点是登录逻辑,比较散,所以就放到这一篇单独记录接口入参出参,后面的商品模块会用到。【有遗漏的,后面随时修改记录~~~】

接口基本就是四种:增、删、改、查。我们也从这四种分析。

A1.接口入参

B1.新增类型

接口入参主要分为一下三种类型:

  1. 与其他表无关联的,基本数据类型的业务基本信息;
  2. 与其他表关联的业务基本信息,可理解为外键;
  3. 业务校验/判断的字段;
  4. 引用类型的业务基本信息(可以包含以上三种);

1.与其他表无关联的,基本数据类型的业务基本信息;

这些属性字段是属于基本数据类型的(String、Double、Integer 等等),并且是在数据表里有对应的字段的,例如:商品的商品名称、商品价格等;

2.与其他表关联的业务基本信息,可理解为外键;

这些属性字段是属于其他表的唯一标识的,可以理解为外键,这类属性大多用于有单独业务表的字段。因为主要保存外键信息,所以大多是 String 类型的,也可以使用集合、数组接收。例如:商品的商品分类、商品图册等;

3.业务校验/判断的字段;

这类属性字段,不是业务基本信息,不会存到数据表里面,大多是为了简化判断、提供校验而添加的字段,有的是前端控制传值,有的是后端处理时赋值;

4.引用类型的业务基本信息;

这个放到了最后来说,首先他肯定是业务基本信息的,也就是必要的信息,主要用于复杂的数据或者批量数据。可以直接使用引用对象来表示,也可以结合集合(List、Map等)来使用。例如:商品的商品参数、商品sku信息等;

这一类型可以包含以上三种类型,因为他是使用引用对象类型的嘛,所以属于pojo类,所以是可以结合以上三种类型的哦~~~


我们先以商品的信息为例,下面截图说明:

具体的看代码 GoodsStoreController 类。

B2.修改类型

修改的接口会有些多,主要分为以下两类;

C1.修改业务全信息

这个就是我们常见的"编辑",与新增参入参是相似的,就是修改业务的全部信息,这里就不再复述了,参照 A1 .B1 .。

C2.修改某几项信息

这个顾名思义就是修改几项信息,比如修该商品状态,只需要商品唯一标识和状态值就可以,所以可以直接传参指定几项字段,如果字段很多也可以传值引用对象。

例如:GoodsStoreController#freight 修改运费模板,这个方法,就是传递商品id和模板id。        GoodsStoreController#updateStocks 修改库存,这个方法,就是传递的引用类型的数据。

B3.删除类型

这个就很简单啦,只需要传参业务唯一标识就好了,后端直接硬删除,后端也可以软删除~

例如:GoodsStoreController#deleteGoods 删除商品,这个方法,就是传递商品id和模板id。

B4.查找类型

查找类型的,使用引用对象类型或者所参数都行,但是如果查找的字段条件可以复用,那么我们肯定要是用pojo引用对象类来接收参数了。

例如:分页的查找中,页码、页数等都是统一会有的,所以可以复用的。 GoodsStoreController#getByPage 方法入参就是引用类型的,其中里面的引用类型还继承了公共的分页VO~

A2.接口出参

出参主要分为两类,新增、修改、删除是一类,查找是一类;

B1.新增、修改、删除类型

这一类主要有两种情况操作成功返回成功信息、操作失败返回异常,一般不需要返回数据,也就是不返回data,只需要返回code和msg即可。

例如:GoodsStoreController#save 方法,成功返回 ResultUtil.success(),异常会被 GlobalControllerExceptionHandler 拦截,返回 ResultUtil.error(ResultCode.ERROR.code(), errorMsg)

B2.查找类型

这一类也是主要有两种情况操作成功返回成功信息、操作失败返回异常,操作成功一定会返回数据的,也就是会返回data,同时也需要返回code和msg。

例如:GoodsStoreController#get 方法,成功返回 ResultUtil.data(goods),操作异常和上方一样

A3.各种pojo类型(可跳过)

详细的可以看看这篇,很详细也有举例说明,就是看起来有点标题党~~~:一篇文章讲清楚VO,BO,PO,DO,DTO的区别 - 知乎

按照我的理解总结一下

B1.PO=entity 实体类(必包含)

就是实体类,对应数据表,没啥好说的

B2.BO 业务对象(可省略)

是属于后端业务逻辑的辅助数据,是在PO对象基础上添加了其他数据的,或者多个PO对象结合的,复杂业务的会使用到,简单的基本用不到。

B3.BTO 数据传输对象

通常是用于前后端之间的数据传输,可以作为请求入参和出参。他的意义是要能够完整的表达一个业务模块,所以通常用于接口入参。

B4.VO 视图模型对象(可省略)

就是需要展示的数据,是由后端传给前端的,在前后端分离架构中,通常是json类型的数据。如果不复杂或者展示的数据与业务本身差距不大,可以直接使用PO或者DTO的。

【Lilishop商城】No4-6.业务逻辑的代码开发,涉及到:接口入参、出参开发逻辑,及POJO的各种总结相关推荐

  1. android底部滑出view,Android CoordinatorLayout与NestedScrollView基于Behavior几行代码实现底部View滑入滑出...

    Android CoordinatorLayout与NestedScrollView基于Behavior几行代码实现底部View滑入滑出 在CoordinatorLayout的Behavior出现之前 ...

  2. 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)

    仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口 ...

  3. 【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发

    仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口 ...

  4. 痛入爽出 HTTP/2:代码实战1

    这一期全是干货.干得你口渴想喝水. 环境搭建 安装 Python.你可以选择官网安装.Anaconda安装或者你已经有了 Python3.5 以上的版本.PyPy也可以的. 可选:创建一个 Pytho ...

  5. 【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计

     仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接 ...

  6. 【Lilishop商城】No2-1.确定项目结构和数据结构(用户、商品、订单、促销等模块)

    仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 首先先看一下项目的开发架构,都需要哪些技术,都按 ...

  7. 【Lilishop商城】No3-3.模块详细设计,会员信息(会员基本信息)、店铺设置(店铺信息、配送模板)的详细设计

      仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括 ...

  8. 【Lilishop商城】No3-2.模块详细设计,运营用户模块的详细设计

    仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口 ...

  9. 【Lilishop商城】No3-5.模块详细设计,商品模块-1(商品分类、品牌管理、规格管理、参数、计量单位、店铺分类)的详细设计

      仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括 ...

最新文章

  1. Visual Studio 2010 Ultimate敏捷利剑:详解Scrum
  2. Angular 依赖注入的一个常见错误 NullInjectorError, No provider for XXX
  3. Java中的外观设计模式
  4. C#编写TensorFlow人工智能应用 TensorFlowSharp
  5. 【ES10(2019)】JSON扩展 superset / stringify() 增强能力
  6. 中国移动开通eSIM 一号双终端将要取代传统SIM卡?
  7. 你可能小赚,但苹果永远不亏!华强北老板说一台新iPhone只赚10块钱?
  8. IDM无法连接到目标服务器
  9. 学计算机仓库管理一定打字吗,仓库管理员要会电脑吗?需要哪些电脑操作呢?...
  10. 基于Pytorch的YoLoV4模型代码及作品欣赏
  11. 车道线检测数据集介绍
  12. editplus怎么运行java程序
  13. 手机科普(软硬件简介——android)看了会懂很多东西的!
  14. tcp图片13包java怎么接收_13. TCP协议中的动态数据传输:应对小数据包
  15. MySQL基础系列之 记一次利用存储过程实现2600万数据水平分表
  16. Django 2.1.7 项目技巧 - 创建apps应用目录归纳所有应用
  17. 模具分类以及塑胶模具设计流程
  18. 借呗提前还款算法模拟
  19. 程序猿(媛)实用颜色表 [颜色图示,英文代码,形象颜色,HEX格式,RGB格式]
  20. c语言微分方程离散化,PID算法的C语言实现二 PID算法的离散化

热门文章

  1. 【深度学习之美】局部连接来减参,权值共享肩并肩(入门系列之十一)
  2. Grade for Android 之八: Groovy入门
  3. UI课程(TabBarController)
  4. 机器学习中的数学——常用概率分布(五):高斯分布(Gaussian分布)/正态分布(Normal分布)
  5. 数据库视图是什么,和表有什么区别和联系
  6. 模拟滤波器的电路图分析
  7. 2021年最新的安防芯片方案
  8. Linux进程和计划任务管理|ू・ω・` )
  9. 支持无线连接的头戴式耳机,双音腔结构很好听,雷柏VH800上手
  10. xp/ win 7 如何设置电脑的保护色(绿豆沙色)以及Chrome浏览器