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

  • Post author:
  • Post category:其他



一、客户端商品



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



6、文件上传到ftp服务器上(请求参数:HttpSession session,MultipartFile file ,HttpServletRequest request)

a、在springmvc.xml上配置文件上传的配置

   <!-- 文件上传 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760"/> <!-- 10m -->
        <property name="maxInMemorySize" value="4096" />
        <property name="defaultEncoding" value="UTF-8"></property>
    </bean>

b、判断用户是否登陆

c、判断用户的角色

d、从request里面获得session的上下文获的


上传路径path

e、拿到上传文件的文件名

String fileName=file.getOriginalFilename();

f、获取上传文件的扩展名

String fileExtensionName=fileName.substring(fileName.lastIndexOf(".")+1);

g、上传后的文件名

 String uploadFileName= UUID.randomUUID().toString()+"."+fileExtensionName;

h、声明目录的file

 File fileDir = new File(path);
        if(!fileDir.exists()){
            fileDir.setWritable(true);//使这文件有写的权限
            fileDir.mkdirs();//创建目录
        }

i、声明我们的文件(路径加我们的新的文件名)

 File targetFile = new File(path,uploadFileName);
        try {
            file.transferTo(targetFile);
            //到这里,文件已经上传成功
            //将targetFile上传到问们的FTP服务器上
            FTPUtil.uploadFile(Lists.<File>newArrayList(targetFile));
            //已经上传到ftp服务器上
            //上传完之后,删除upload下面的文件
            targetFile.delete();
        } catch (IOException e) {
           logger.error("文件上传异常",e);
           return null;
        }



版权声明:本文为Richard_666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。