14、【 商品管理模块开发】——后台商品新增保存、更新、上下架功能开发

新建ProductManageController
image.png
Controller上添加@Controller@RequestMapping("/manage/product")这两个注解。

@Controller
@RequestMapping("/manage/product")
public class ProductManageController {
    @Autowired
    private IUserService iUserService;

    @Autowired
    private IProductService iProductService;

    @Autowired
    private IFileService iFileService;
}

根据后文中要用的到Service自动注入:

   @Autowired
    private IUserService iUserService;

    @Autowired
    private IProductService iProductService;

    @Autowired
    private IFileService iFileService;

####1、修改或者添加商品(原来商品存在则是修改,不存在就是添加)
*Controller:

  //保存商品信息
    @RequestMapping("product_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()){
            //增加商品的逻辑方法
            System.out.println("执行。。。");
            return iProductService.saveOrUpdateProduct(product);
        }else {
            return ServerResponse.createByErrorMessage("当前登录者不是管理员,无权限操作");
        }

    }

*Service:

   //修改或者添加商品方法
    ServerResponse saveOrUpdateProduct(Product product);

*ServiceImpl:

 //修改或者添加商品方法
    public ServerResponse saveOrUpdateProduct(Product product){
        if(product!=null){

            if(StringUtils.isNotBlank(product.getSubImages())){
                String[] subImagesArray=product.getSubImages().split(",");
                if(subImagesArray.length>0){
                     product.setMainImage(subImagesArray[0]);
                }

            }
            if(product.getId()!=null){
                //代表是修改商品
                product.setUpdateTime(new Date());
                int rowCount =productMapper.updateByPrimaryKeySelective(product);
                if(rowCount>0){
                    return ServerResponse.createBySuccess("修改商品信息成功");
                }
                    return ServerResponse.createBySuccess("修改商品信息失败");

            }else{
//                System.out.println("开始插入新增商品");
                //代表是新增商品
                product.setCreateTime(new Date());
                product.setUpdateTime(new Date());
                int rowCount=productMapper.insertSelective(product);
//                System.out.println("执行完新增商品");
                if(rowCount>0){
//                    System.out.println("插入新增商品成功");
                    return ServerResponse.createBySuccessMessage("新增商品成功");
                }
                   return ServerResponse.createByErrorMessage("新增商品失败");
            }

        }
        return ServerResponse.createByErrorMessage("新增或者更新产品参数不正确");
    }

其中在修改商品的时候使用的是updateByPrimaryKeySelective方法;
在添加商品的时候使用的是insertSelective方法。这两个方法都是逆向工程生成的,故而不将代码贴出来~
####2、上下架功能

*Controller:

    //更新商品的在售状态
    @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("当前登录者不是管理员,无权限操作");
        }
    }

*Service:

    //更新商品的在售状态
    ServerResponse<String> setSaleStatus(Integer productId,Integer status);

*ServiceImpl:

 //更新商品的在售状态
    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.createBySuccessMessage("修改商品销售状态成功");
        }
        return ServerResponse.createByErrorMessage("修改商品销售状态失败");
    }

updateByPrimaryKeySelective方法也是使用逆向工程生成的方法,故而不作多展示~

###3、接口测试
1、添加商品
image.png
2、修改商品信息
image.png
3、产品下架
image.png
4、产品上架
image.png

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值