電商專案之商品模組理解(重點加難點)
一、客戶端商品
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進行分頁,並返回到前端