电商项目之商品模块理解(重点加难点)

一、客户端商品

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进行分页,并返回到前端

猜你喜欢

转载自blog.csdn.net/Richard_666/article/details/86151312