美文网首页SSM搭建二手市场交易平台网站
SSM搭建二手市场交易平台(十三):后台商品的增加与更新

SSM搭建二手市场交易平台(十三):后台商品的增加与更新

作者: 啃饼小白 | 来源:发表于2019-01-24 08:13 被阅读5次

写在前面

本篇我们来介绍后台商品新增,更新和上下架功能开发。说的比较通俗易懂的话,其实就是后台商品的增删改查一部分功能而已。

商品模块开发

商品模块开发分为前台和后台两部分,其中前台包括产品搜索,动态排序列表和商品详情;后台包括:商品列表、商品搜索、图片上传、富文本上传、商品详情、商品上下架、增加商品以及更新商品等。

在此过程中,你将会学到一下知识:1、FTP 服务器的对接;2、SpringMVC 文件上传;3、流读取 Properties 配置文件;4、抽取 POJO、BO、VO 对象之间的转换关系及解决思路;5、joda-time 快速入门;6、静态块;7、Mybatis-PageHelper 高效准确地分页及动态排序;8、Mybatis 对 List 遍历的实现方法;9、Mybatis 对 where 语句动态拼装的几个版本演变等。

POJO、BO、VO

POJO、VO

数据表设计:

后台产品新增

在controller文件的backend包里面新建一个ProductManageController.java文件,里面写入以下代码:

package top.store.controller.backend;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import top.store.common.Const;
import top.store.common.ResponseCode;
import top.store.common.ServerResponse;
import top.store.pojo.Product;
import top.store.pojo.User;
import top.store.service.IProductService;
import top.store.service.IUserService;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/manage/product")
public class ProductManageController {

    @Autowired
    private IUserService iUserService;


    @Autowired
    private IProductService iProductService;

    /****
     *
     * 后台管理员保存商品
     * */
    @RequestMapping("save.do")
    @ResponseBody   //自动序列化json功能
    public ServerResponse productSave(HttpSession session, Product product){

        //判断一下登录情况
        User user=(User) session.getAttribute(Const.CURRENT_USER);
        if(user ==null){
            return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(),"用户未登录,请登录");
        }
        //判断一下是不是管理员身份
        if(iUserService.checkAdminRole(user).isSuccess()){
            //如果是管理员就增加我们保存商品的逻辑
            return iProductService.saveOrUpdateProduct(product);
        }else{
            return ServerResponse.createByErrorMessage("无权限操作,需要管理员权限");
        }
    }
}

这个和之前写的关于商品分类的模块其实很类似。接着我们在impl包里面新建一个ProductServiceImpl.java文件,里面写入以下代码:

package top.store.service.impl;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.store.common.ResponseCode;
import top.store.common.ServerResponse;
import top.store.dao.ProductMapper;
import top.store.pojo.Product;
import top.store.service.IProductService;

@Service("iProductService")
public class ProductServiceImpl implements IProductService {

    @Autowired
    private ProductMapper productMapper;


    /***
     * 后台管理员保存商品
     * */
    public ServerResponse saveOrUpdateProduct(Product product){
        if(product != null){
            //产品主图的选择
            if(StringUtils.isNoneBlank(product.getSubImages())){  //存在子图的情况下
                String[] subImageArray = product.getSubImages().split(",");
                if(subImageArray.length>0){
                    product.setMainImage(subImageArray[0]);
                }
            }

            //如果是更新的话,我们产品的id肯定是存在的,不能为空(与前端进行了约定)
            if(product.getId() != null){
               int rowCount = productMapper.updateByPrimaryKey(product);   //前端更新肯定是全部商品
                if(rowCount>0){
                    return ServerResponse.createBySuccessMassage("更新产品成功");
                }
                return ServerResponse.createByErrorMessage("更新产品失败");
            }else{
                //如果是新增的话,产品是没有id的,就要执行插入操作
              int rowCount =  productMapper.insert(product);   //前端更新肯定是全部商品
                if(rowCount>0){
                    return ServerResponse.createBySuccessMassage("新增产品成功");
                }
                return ServerResponse.createByErrorMessage("新增产品失败");
            }
        }
        return ServerResponse.createByErrorMessage("保存或更新产品参数不正确");
    }
}

注意几点:
1、我们首先需要判断产品是否存在,存在然后判断产品是否存在子图,如果存在,我们就取第一个子图作为产品的主图进行前台的显示。
2、我们这里把商品的修改和更新的逻辑写在一起了,我们在前端进行了声明:就是如果是进行产品的更新就必须把产品id传进来,然后依据Id来进行判断,否则就是新增产品的操作,这个应该还是比较好理解的.

接着我们在Service包里面新建一个IProductService.java文件(记住前面是I说明是接口),里面写入以下代码:

package top.store.service;

import top.store.common.ServerResponse;
import top.store.pojo.Product;

public interface IProductService  {
    ServerResponse saveOrUpdateProduct(Product product);    //后台管理员保存商品
}

这样我们关于商品的更新和新增操作就完成了,接下来是后台管理员进行商品信息的状态设置。

上下架功能开发

首先打开ProductManageController.java文件,在里面新增以下代码:

 /***
     *
     * 后台管理员进行商品的上下架状态修改
     * */
    @RequestMapping("set_sale_status.do")
    @ResponseBody   //自动序列化json功能
    public ServerResponse setSaleStatus(HttpSession session, Integer productId,Integer status){

        //判断一下登录情况
        User user=(User) session.getAttribute(Const.CURRENT_USER);
        if(user ==null){
            return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(),"用户未登录,请登录");
        }
        //判断一下是不是管理员身份
        if(iUserService.checkAdminRole(user).isSuccess()){
            //如果是管理员就增加我们进行商品上下架的逻辑
            return iProductService.setSaleStatus(productId,status);
        }else{
            return ServerResponse.createByErrorMessage("无权限操作,需要管理员权限");
        }
    }

接着打开ProductServiceImpl.java文件,里面写入以下代码:

 /***
     *
     * 后台管理员进行商品的上下架状态修改
     * */
    public ServerResponse<String> setSaleStatus(Integer productId,Integer status){
        if(productId ==null || status ==null){
            return ServerResponse.createByErrorCodeMessage(ResponseCode.ILLEGAL_ARGUMENT.getCode(),ResponseCode.ILLEGAL_ARGUMENT.getDesc());
        }
        Product product =new Product();
        product.setId(productId);
        product.setStatus(status);

        int rowCount = productMapper.updateByPrimaryKeySelective(product);    //我们这里是仅对状态进行修改,所以只需更新选中的即可
        if(rowCount>0){
            return ServerResponse.createBySuccessMassage("修改产品销售状态成功!");
        }
        return ServerResponse.createByErrorMessage("修改产品销售状态失败!");
    }

最后打开IProductService.java文件,里面写入以下代码:

 ServerResponse<String> setSaleStatus(Integer productId,Integer status);    //后台管理员进行商品的上下架状态修改

这样我们本篇关于后台商品新增,更新和上下架功能开发的介绍就到此为止了,感谢你的赏阅!

相关文章

网友评论

    本文标题:SSM搭建二手市场交易平台(十三):后台商品的增加与更新

    本文链接:https://www.haomeiwen.com/subject/japthqtx.html