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。
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章