一、客户端商品
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;
}