1009-确认订单-订单流程梳理与订单状态

一、

二、线程同步问题:

扣除商品库存与订单状态保存:

  1. synchronized 不推荐使用,集群下无用,性能低下。
  2. 锁数据库:不推荐,导致数据库性能低下。
  3. 分布式锁:zookeeper Redis

三、如何调用另外一个系统,在我们的java代码里发起restful请求?

  1. 使用http的方式。
  2. 使用spring提供的restemplate的方式。

四、内网穿透

把本地项目发布到互联网,任何一个服务器,任何一个第三方系统,都可以访问到本地项目。(把自己本地IP,映射到外网)
【https://natapp.cn/】
暴露了本地IP,进行了映射,根据映射的地址,访问本地的接口。

五、在线Cron 表达式生成器:

【http://cron.qqe2.com/】

六、实现单体电商-个人中心

  1. 用户个人信息维护
  2. 用户头像上传
  3. 用户收获地址维护
  4. 用户订单管理
  5. 用户评价模块

七、前端文件仓库

(比如jquery.js等引用文件地址,都可找到)
https://www.bootcdn.cn/

八、使用分页插件进行查询,需要注意:

在这里插入图片描述在这里插入图片描述有2种解决方案:

  1. 前端:先查询出所有订单,根据查询出来的订单编号,利用懒加载的方式,进行请求查询出所有的关联商品信息,再次在网页上渲染。
  2. 后端:mabatis方式,先查询订单信息,再根据orderId查询出来对应的商品信息。

方案2:正确代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imooc.mapper.OrdersMapperCustom" >

  <resultMap id="myOrdersVo" type="com.imooc.pojo.vo.MyOrdersVo">
    <id column="orderId" property="orderId"/>
    <result column="createdTime" property="createdTime"/>
    <result column="payMethod" property="payMethod"/>
    <result column="realPayAmount" property="realPayAmount"/>
      <result column="postAmount" property="postAmount"/>
      <result column="orderStatus" property="orderStatus"/>
      <result column="isComment" property="isComment"/>

    <collection property="subOrderItemList"
                select="getSubItems"
                column="orderId"
                ofType="com.imooc.pojo.vo.MySubOrderItemVo">
      <result column="itemId" property="itemId"/>
      <result column="itemName" property="itemName"/>
      <result column="itemImg" property="itemImg"/>
        <result column="itemSpecId" property="itemSpecId"/>
        <result column="itemSpecName" property="itemSpecName"/>
        <result column="buyCounts" property="buyCounts"/>
        <result column="price" property="price"/>
    </collection>
  </resultMap>

  <select id="queryMyOrders" resultMap="myOrdersVo" parameterType="Map">
    SELECT
        od.id as orderId,
        od.created_time as createdTime,
        od.pay_method as payMethod,
        od.real_pay_amount as realPayAmount,
        od.post_amount as postAmount,
        os.order_status as orderStatus,
        od.is_comment as isComment
    FROM
        orders od
    LEFT JOIN
        order_status os
    on od.id = os.order_id
    WHERE
        od.user_id = #{paramsMap.userId}
    AND
        od.is_delete = 0
        <if test="paramsMap.orderStatus != null">
          and os.order_status = #{paramsMap.orderStatus}
        </if>
    ORDER BY
        od.updated_time ASC
  </select>
</mapper>

备注:collection 标签中,属性column对应的值,是上方获得的订单编号orderId。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值