1. 程式人生 > >電商專案之商品模組理解(重點加難點)

電商專案之商品模組理解(重點加難點)

一、客戶端商品

1、查詢商品詳情(請求引數:Integer productId)

a、通過商品id查詢商品

b、判斷查詢出來的商品的狀態是否下架

c、如下架,提示下架,沒下架,將查出來的商品進行組裝成ProductDetailVo返回給前端

2、通過關鍵詞查詢商品詳情(請求參數:String keyword,Integer categoryId,int pageNum,int pageSize, String orderBy)-重點加難點(選擇分類後,進行查詢,都會有分類的,最根的分類是0)

a、判斷關鍵字是否為空(空與不為空)

b、通過分類id查詢分類物件

c、如查詢分類為空並且關鍵詞為空,則返回一個空的結果集

d、如查詢分類不為空,通過分類id查詢分類的子類並遞迴,查出的分類的id集合放到categoryIdList

---------------------------------------------------------------------------------------------------------------

e、如關鍵字不為空,重新拼接關鍵詞

f、通過關鍵詞和所有的分類id查詢商品

 

二、後臺端商品

1、商品新增和更新(請求引數:HttpSession session, Product product)

a、判斷使用者是否登陸

b、判斷使用者的角色

c、商品有id就更新,商品沒有id就新增

2、商品上下架(請求引數:HttpSession session,Integer productId,Integer status)

a、判斷使用者是否登陸

b、判斷使用者的角色

c、判斷productId或status不為空

d、通過productId和status更新這商品的物件

3、獲取商品詳情(請求引數:Integer productId,HttpSession session

a、判斷使用者是否登陸

b、判斷使用者的角色

c、通過商品id查詢商品

d、將查出來的商品進行拼裝成productDetailVo物件,然後進行返回

4、獲取商品列表(請求引數:HttpSession session,int pageNum,int pageSize)

a、判斷使用者是否登陸

b、判斷使用者的角色

c、使用startPage進行開始分頁

d、將商品全部查詢出來,並放入到productList集合裡面

e、新建一個集合productListVoList用來放詳情商品的

f、將productList集合用來遍歷,遍歷的時候對每個商品進行拼裝

g、將拼裝好的商品詳情放到新建的productListVoList集合裡面

h、然後用PageInfo對productListVoList進行分頁,並返回到前端

5、商品搜尋(請求引數:HttpSession session,String productName,Integer productId,int pageNum,int pageSize)

a、判斷使用者是否登陸

b、判斷使用者的角色

c、使用startPage進行開始分頁

d、將productName進行拼接

e、通過商品名和商品id進行查詢

<select id="selectByNameAndProductId" resultMap="BaseResultMap" parameterType="map">
    select
    <include refid="Base_Column_List"></include>
    from mmall_product
    <where>
      <if test="productName!=null">
        and  name like #{productName}
      </if>
      <if test="productId!=null">
        and id=#{productId}
      </if>
    </where>
  </select>

f、將查出來的商品集合放入到productList

g、新建一個集合productListVoList

h、對productList進行遍歷,對遍歷的每一個商品物件進行拼裝成productListVo

i、將拼裝的新物件productListVo放入到productListVoList集合裡面去

j、然後用PageInfo對productListVoList進行分頁,並返回到前端