Loading

商品审核与上下架

需求分析

商品新增后,审核状态为0(未审核),默认为下架状态。

审核商品,需要校验是否是被删除的商品,如果未删除则修改审核状态为1,并自动上架

下架商品,需要校验是否是被删除的商品,如果未删除则修改上架状态为0

上架商品,需要审核状态为1,如果为1,则更改上下架状态为1

实现思路

(1)按照ID查询SPU信息

(2)判断修改审核、上架下架状态

(3)保存SPU

代码实现

商品审核

需要校验是否是被删除的商品,如果未删除则修改审核状态为1,并自动上架

(1)SpuService新增方法

    /**
     * 审核
     * @param id
     */
    public void audit(String id);

(2)SpuServiceImpl实现方法

@Transactional
    public void audit(String id) {
        //查询spu对象
        Spu spu = spuMapper.selectByPrimaryKey(id);
        if (spu == null){
            throw new RuntimeException("当前商品不存在");
        }
        //判断当前spu是否处于删除状态
        if ("1".equals(spu.getIsDelete())){
            throw new RuntimeException("当前商品处于删除状态");
        }
        //不处于删除状态,修改审核状态为1,上下架状态为1
        spu.setStatus("1");
        spu.setIsMarketable("1");
        //执行修改操作
        spuMapper.updateByPrimaryKeySelective(spu);
    }

(3)SpuController新增方法

    /**
     * 审核
     * @param id
     * @return
     */
    @PutMapping("/audit/{id}")
    public Result audit(@PathVariable String id){
        spuService.audit(id);
        return new Result();
    }

下架商品

校验是否是被删除的商品,如果未删除则修改上架状态为0

(1)SpuService新增方法

    /**
     * 下架商品
     * @param id
     */
    public void pull(String id);

(2)SpuServiceImpl实现方法

@Transactional
    public void pull(String id) {
        //查询spu
        Spu spu = spuMapper.selectByPrimaryKey(id);
        if (spu == null){
            throw new RuntimeException("当前商品不存在");
        }
        //判断当前商品是否处于删除状态
        if ("1".equals(spu.getIsDelete())){
            throw new RuntimeException("当前商品处于删除状态");
        }
        //商品处于未删除状态的话,则修改上下架状态为已下架(0)
        spu.setIsMarketable("0");
        spuMapper.updateByPrimaryKeySelective(spu);
    }

(3)SpuController新增方法

    /**
     * 下架
     * @param id
     * @return
     */
    @PutMapping("/pull/{id}")
    public Result pull(@PathVariable String id){
        spuService.pull(id);
        return new Result();
    }

上架商品

必须是通过审核的商品才能上架

(1)SpuService新增方法

    /**
     * 上架商品
     * @param id
     */
    public void put(String id);

(2)SpuServiceImpl 实现此方法

    /**
     * 上架商品
     * @param id
     */
    @Override
    public void put(String id) {
        Spu spu = spuMapper.selectByPrimaryKey(id);
        if(!spu.getStatus().equals("1")){
            throw new RuntimeException("未通过审核的商品不能上架!");
        }
        spu.setIsMarketable("1");//上架状态
        spuMapper.updateByPrimaryKeySelective(spu);
    }

(3)SpuController新增方法

    /**
     * 上架
     * @param id
     * @return
     */
    @PutMapping("/put/{id}")
    public Result put(@PathVariable String id){
        spuService.put(id);
        return new Result();
    }

 

posted @ 2021-08-03 09:39  1640808365  阅读(204)  评论(0编辑  收藏  举报