00:00
前面我们给订单服务添加了登录拦截功能,保证呢,我们现在访问订单的任何一个请求都必须先来经过登录,好,我们现在来登录一下,我还是来使用社交登录,如果我们登录了以后再来访问订单服务,那么这一块的就是好的,那现在呢,我们来回到我们的首页,现在回到首页,那继续来编写订单逻辑,首先呢,我们来编写我的购物车,我们点进来,这是我们购物车里边之前添加的商品,那我们来点击去结算,就会跳到我们这个订单确认页,那确认页里边的这些数据。这些数据呢,分为我们这么几个部分,首先第一个是要查出我们这个收货人的信息,而我们当前登录的会员所有的收货地址列表,我们可以在这进行展示,支付方式我们可以在页面呢写死,我们现在呢就支持这么两三种方式,然后还有我们的送货清单,送货清单呢主要在这儿要列出我们这个订单里边的所有商品,其实这些商品呢是来自于购物车的,唯一跟购物车里边商品信息不同的是,这一块就是我们订单商品的价格,这一块计算的这个价格一定呢是我们最新的价格,而不是我们当时这个商品加到购物车里边的价格。然后接下来还有我们的发票信息,那这一块呢,我们就不做了,然后还有我们这块优惠的信息。
01:26
那优惠信息呢,我们假设就来做上一种类似于这个京豆,这个优惠卡,优惠券之类的,我们需要查优惠系统才能得到这个优惠系统信息,那京豆呢,相当于当前会员的所有积分,我们看这个积分可不可以兑换一些现金来进行抵扣,所以我们这个订单确认页就要用到这些信息,那这些信息呢,就一定是我们要查出来的,我们一旦去来点击去结算,我们确认页就要把这些信息来进行展示,好假设呢,我们现在的CTR是这样子的,我们现在来到订单的确认页,那这个确认页它呢,就要展示我们这个订单确认的数据,那这些数据我们分为我们以前的这几个部分,我们也分析了,专门来抽取一个VO来准备封装我们确认页要用的数据,我就叫orderfor为O。
02:18
好,那么这个订单确认页要用的数据我们来放在这,这个我们来批注一下订单确认页需要用的数据,那用的数据呢,就是这么几个部分,第一个部分,用户的所有收货地址列表,那么就可以来封装成一个list类型,来查出用户的所有收货地址列表,而用户的这些收货地址它都在我们会员系统里边来看一下,我们这个用户系统里边专门有一个叫receive address,相当于在这里边来查,按照会员ID查到他的所有收货地址列表,好,那么先来封装我们的第一个list list类型的所有收货地址列表,那么最终查到的收货地址列表,那也一定是这个类型的。
03:09
我们这一块呢,专门有一个实体类,收货地址列表呢,是这种类型的实体类,我们把这一块的数值,我们这个属性我都来复制过来,然后我们接下来给我们的这一块来准备上一个VO,因为我们即将远程查询这些数据,那先把数据的这个封装VO先来抽取过来,好那这个呢,我们就叫member address address VO,这个VO里边呢,就有这么多的数据,这是会员的收货地址列表,那么希望订单确认页给我们展示的第一个数据就是会员的收货地址列表,好,我们就叫address,那么收货地址列表展示完了以后,我们订单确认页我们还要用的数据就是我们这个送货清单,支付方式什么的,我们可以在页面写死,送货清单里边主要是商品信息,那这些商品其实来源于我们购物车里边选中的这些商品,如果选中了这个商品,我去结算,那么定。
04:09
订单的价格也是这个商品最后计算后好的价格,包括我们现在这一块有一个小bug,我们现在如果我们来选中这个商品,我们来算价,我们加上这个,我们不选中,我们购物车的整个算价不应该来加上没选中的商品,所以购物车的计算价格我们可以来修改一下,之前没有做成功的,好我们来到这儿,那购物车的整个价格计算,因为购物车整个对象我们都封装成了一个cut,它的所有价格都是动态计算的,它在下边呢,来进行计算,来叠加每一个购物项的值,那我们想要叠加的前提就是这个购物项是被选中的,我们来get check,如果是被选中的,我们再来叠加,否则呢,我们就不叠加,好,那购物车这个计算价格,把这个购物车重新来启动一下,那继续来到我们的order come,那order come里边,接下来我们订单确认页需要展示的数据,我们要封装的数据。
05:09
就是我们所有购物项选中的购物项,所有选中的购物项,所有选中的购物项购物项,那这个呢,就要去购物车这个服务里边,我们才能查到我们当前用户所有选中的购物项,当然购物项可能有很多,我们继续来封装一个list。那我们所有选中的购物项,购物车最终给我们返回的这些购物项,这些购物项呢,它肯定返回的是这么一个VO,但来到我们的这个服务,我们要封装,那我们自己再来封装一个吧,好,我们在这儿先来提前写好,那我们订单里边要购买的商品这些列表信息,我们来给大家看一下,这个呢,我们其实也称为订单项的这些数据,所以我们就可以来封装一个,比如我们自己有一个order item VO,好,那这个呢,就叫it,这是我们购物车里边的所有选中的购物项,我要远程查询的,那先把这个VO准备好,那VO里边的数据,那肯定是要跟购物车里边查询到的一个个的购物项,这个数据呢,应该是一样的,好,把这个复制过来,所有值我们全部拿过来,CTRLC来到这儿。
06:25
我们这个状态就可以不用了,是否选中我们就可以不用了,剩下的我们都来加上好这一块相当于是我们购物车里边所选中的商品的数据的封装,当然我们现在都还没查询,提前呢先来写一个VO,除了我们页面要封装我们需要选中的这些购物项外,来看接下来呢,还有我们的发票信息,当然这个发票信息这一块呢,我们就不封装了,发票等等等等,比如我们这个用户呢,以前开过什么发票,我们把这个发票呢,可以快速的显示在这发票记录,以后呢,用户买商品的时候默认都关联这些发票信息,然后还有我们这个优惠券,所以我们这一块呢,应该页面还要确认我们这个优惠券,优惠券信息,那这个优惠券呢,我们就应该查出我们当前会员可用的这些优惠券,包括呢,我们的金豆等等各种信息,那么现在呢,就以它为例,那么现在就来整合一个会员的积分。
07:26
好,那这个会员积分呢,在会员系统里边,我们就把它会员的积分查出来,当我们这个优惠抵消额,那在我们的会员系统里边,每一个会员信息,每一个会员他呢,都以我们数据库保存了它的积分,我可以把这个积分呢,再拿来CTRLC,我们来到我们的这一块orderfor VO里边。好,我们就来保存一个会员的积分信息,那其他的优惠信息我们就不查了,来看页面还需要什么,那页面呢,还需要这一块,我们当前商品的总价格,然后我们优惠用了哪些优惠,它的返现以及它的运费价格,所以接下来我们这些商品呢,还要进行一些运费等等这些价格的计算,所以呢,我们给这个VO里边除了封装这个优惠券外,我们再来封装上几个,第一个是备decemma类型的,我们整个订单的总额,这有一个订单总额,几件商品订单的总额,那现在呢,我们就来写一个total,这是我们订单的总额,订单总额,但订单总额呢,是需要来进行计算的,来看应该还有一个,比如我们这个优惠的这个总额,那最终我们订单还有一个应付的总额,我们把这几个额度我们都可以让他计算一下,应付我们就将。
08:50
APA price,那这个应付的价格,应付价格所有页面需要出现的数据,我们都可以在这儿来进行封装,那这一块呢,我们就分析了,那这个订单确认页我们希望封装的一些数据,那最终我们调用这个to出的方法来到我们这个controller,我们就希望controller呢能帮我们来返回这个数据,来在页面显示好我们来就希望order service能有一个方法order service,我们来注入我们order service,我们希望呢,它有一个方法能给我们返回订单确认页要用的数据order service,好,我们有一个方法呢,叫confirmfor order,我们confirm order最终呢,给我们返回我们页面想要展示的order comefor VO o,好,Order confirmfor VO o,我就叫comefor VO o,我们把这个呢要在页面来进行展示,好,我们来写上我们的model model那页面想要展示,那我们就来写一个and attribute,添加一个我们。
09:50
这个属性,那么现在呢,就叫order comfort comfort data,那订单确认的这个数据,那订单确认数据,那就来给它放到页面,Come VO,那么希望呢,就有这么一个方法,这个方法的最终作用就是呢,给我们订单确认页返回需要用的数据,订单订单确认页返回需要用的数据,那我们来添加上这个方法呢,实现。
10:22
走,那我们要用的这个数据,那全部呢,我们最终都想要封装到这个order con VO里边,好,我们就来准备一个confirm VO,这个VO里面的所有数据,我们就按该查询的查询,该计算的来进行计算,好那下一节课呢,就来把order confirm VO里边所有的数据来给它整过来。
我来说两句