商城项目服务端实践SSM(七)-------后台_商品接口(对商品增改查,商品上下架,商品列表,商品详情)

  • 商品数据表
create table 'mmall_product'(
	'id' int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
	'category_id' int(11) NOT NULL COMMENT '分类id,对应mmal_category分类表的主键',
	'name' varchar(100) NOT NULL COMMENT '商品名称',
	'subtitle' varchar(200) DEFAULT NULL COMMENT '商品副标题',
	'main_image' varchar(500) DEFAULT NULL COMMENT '产品主图,url相对地址',
	'sub_images' text COMMENT '图片地址,json格式,扩展用',
	'detail' text COMMENT '商品详情',
	'price' decimal(20,2) NOT NULL COMMENT '价格,单位-元保留两位小数',
	'stock' int(11) NOT NULL COMMENT '库存数量',
	'status int(6) DEFAULT '1' COMMENT '商品状态:1-在售,2-下架,3-删除',
	'create_time' datetime DEFAULT NULL  COMMENT '创建时间',
	'update_time' datetime DEFAULT NULL COMMENT '更新时间',
	PRIMARY KEY ('id')
)ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8
  • 设置公共常量类
//设置公共量
public class Const {
    public static final String CURRENT_USER = "currentUser";
    public static final String EMAIL="email";
    public static final String USERNAME="username";
    public interface Role{
        int ROLE_CUSTOMER=0;//普通用户
        int ROLE_ADMIN=1;//管理员
    }
}

一、增加与修改商品

  • 思路:

1、判断商品是否有图片,如果有就用String[ ] subImagArray = product.getSubImages().split(",")以逗号分割存进数组里,然后取数组的第一个值作为主图。

2、判断传来的id是否为空,不为空则进行更新操作,为空则进行增加操作。

  • controller(参数Product)
//增加商品和修改商品
    //新增商品http://localhost:8080/manage/product/save.do?categoryId=1&name=三星洗衣机&subtitle=三星大促销&subImages=test.jpg,11.jpg,2.jpg,3.jpg&detail=detailtext&price=1000&stock=100&status=1
    //修改商品 http://localhost:8080/manage/product/save.do?id=3&categoryId=1&name=三星洗衣机&subtitle=三星大促销&subImages=test.jpg&detail=detailtext&price=1000&stock=100&status=1
    @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("不是管理员,无权限操作");
        }
    }
  • Impl(参数Product)
 public ServerResponse saveOrUpdateProduct(Product product) {
        if (product != null) {
            //判断商品的图片是否为空
            if (org.apache.commons.lang3.StringUtils.isNotBlank(product.getSubImages())) {
                //不为空则把传过来的商品图片地址用逗号进行分割
                String[] subImagArray = product.getSubImages().split(",");
                if (subImagArray.length > 0) {
                    //取第一个商品的图片当做主图
                    product.setMainImage(subImagArray[0]);
                }
            }
            //如果传过来的id不为空,则对商品进行修改更新操作
            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("新增或修改商品参数不正确");
    }

二、商品上下架

  • 思路:从前台获取修改的商品id与商品上下架状态对数据库进行修改
  • controller(参数:商品id,商品状态status)
    //设置商品上下架(是否在售)
    //http://localhost:8080/manage/product/set_sale_status.do?productId=1&status=1
    @RequestMapping("set_sale_status.do")
    @ResponseBody
    public ServerResponse set_sale_status(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.set_sale_status(productId, status);
        } else {
            return ServerResponse.createByErrorMessage("不是管理员,无权限操作");
        }
    }
  • impl(参数:商品id,商品状态status)
//商品上下架
    public ServerResponse set_sale_status(Integer p
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
熟悉项目开发过程SSM、JSP、Mysql使用,知道各技术之间的如何衔接; 考虑到部分学生只需要学习前台(买家)或是后台后台),故将电商系统分为电商系统前台和电商系统后台两个项目, 当前课程包含电商系统前台和电商系统后台 该课程主要涉及到的技术有:  项目涉及的技术:  1、前端:jsp、css、javascript、jQuery(js框)、bootstrap框 2、后台:Spring MVC、Spring、Mybatis框、javaMail进行邮件发送、jstl 、jstl自定义分页标签、代码生成器等 3、数据库:Mysql 4、服务器:Tomcat项目开发涉及的功能: 1、项目以及数据库搭建 2、用户登录、退出3、用户注册、邮件发送、以及用户信息激活4、首页商品信息页面搭建以及查询功能实现5、查询商品明细6、加入商品至购物车、删除、更新、清除购物车商品信息7、确认订单信息8、订单页面搭建以及下订单功能实现9、查询我的购物车以及订单信息10、商品明细查看,商品修改,商品11、商品类型管理12、订单管理13、代码机器人使用等等其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之电子商城后台(java毕业设计SSM项目)https://edu.csdn.net/course/detail/25770 java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值