一、客户端商品
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进行分页,并返回到前端