最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • 从零到企业级SSM电商项目实战教程(二十六)后台商品新增,保存,更新,上下架功能开发

    商品模块

    前台功能

    1、产品搜索

    2、动态排序列表

    3、商品详情

    后台功能

    1、商品列表

    2、商品搜索

    3、图片上传

    4、富文本上传

    5、商品详情

    6、商品上下架

    7、增加商品

    8、更新商品

    学习目标

    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

    ProductManageController.java

    controller.backend包下新建一个ProductManageController.java

    package com.mmall.controller.backend;
    
    import com.mmall.common.Const;
    import com.mmall.common.ResponseCode;
    import com.mmall.common.ServerResponse;
    import com.mmall.pojo.Product;
    import com.mmall.pojo.User;
    import com.mmall.service.IProductService;
    import com.mmall.service.IUserService;
    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 javax.servlet.http.HttpSession;
    
    /**
     * @Author: Geekerstar(jikewenku.com)
     * @Date: 2018/6/23 14:13
     * @Description:
     */
    @Controller
    @RequestMapping("/manage/product")
    public class ProductManageController {
    
        @Autowired
        private IUserService iUserService;
    
        @Autowired
        private IProductService iProductService;
    
        @RequestMapping("save.do")
        @ResponseBody
        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("无权限操作");
            }
    
        }
    
        @RequestMapping("set_sale-status.do")
        @ResponseBody
        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("无权限操作");
            }
    
        }
    
    }
    

    IProductService.java

    service包下新建IProductService.java接口文件

    package com.mmall.service;
    
    import com.mmall.common.ServerResponse;
    import com.mmall.pojo.Product;
    
    /**
     * @Author: Geekerstar(jikewenku.com)
     * @Date: 2018/6/23 14:19
     * @Description:
     */
    public interface IProductService {
    
        ServerResponse saveOrUpdateProduct(Product product);
    
        ServerResponse setSaleStatus(Integer productId,Integer status);
    }
    

    ProductServiceImpl.java

    编写实现类

    package com.mmall.service.impl;
    
    import com.mmall.common.ResponseCode;
    import com.mmall.common.ServerResponse;
    import com.mmall.dao.ProductMapper;
    import com.mmall.pojo.Product;
    import com.mmall.service.IProductService;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    /**
     * @Author: Geekerstar(jikewenku.com)
     * @Date: 2018/6/23 14:20
     * @Description:
     */
    @Service("iProductService")
    
    public class ProductServiceImpl implements IProductService {
    
        @Autowired
        private ProductMapper productMapper;
    
        public ServerResponse saveOrUpdateProduct(Product product){
            if(product != null)
            {
                if(StringUtils.isNotBlank(product.getSubImages())){
                    String[] subImageArray = product.getSubImages().split(",");
                    if(subImageArray.length > 0){
                        product.setMainImage(subImageArray[0]);
                    }
                }
    
                if(product.getId() != null){
                    int rowCount = productMapper.updateByPrimaryKey(product);
                    if(rowCount > 0){
                        return ServerResponse.createBySuccess("更新产品成功");
                    }
                    return ServerResponse.createByErrorMessage("更新产品失败");
                }else{
                    int rowCount = productMapper.insert(product);
                    if(rowCount > 0){
                        return ServerResponse.createBySuccess("新增产品成功");
                    }
                    return ServerResponse.createByErrorMessage("新增产品失败");
                }
            }
            return ServerResponse.createByErrorMessage("新增或更新产品参数不正确");
        }
    
        public ServerResponse 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.createBySuccess("修改产品销售状态成功");
            }
            return ServerResponse.createByErrorMessage("修改产品销售状态失败");
        }
    }
    
    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 从零到企业级SSM电商项目实战教程(二十六)后台商品新增,保存,更新,上下架功能开发

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 184会员总数(位)
    • 3737资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 572稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级