7.商品上架,下架以及删除

1.首先,我们需要添加这个功能,肯定要与数据库进行交流,那么我们就肯定需要在dubbo中完成一部分的代码。

2.其次,我们要思考,商品的上架,下架,删除是指什么的改变。是的,只是商品状态的改变,也就是调用mapper里面合适的update方法就可以了。

3.下面我们开始写代码,首先在,ego-service里面的TbItemDubboService里面写,也就是添加一个

int updItemStatus(TbItem tbItem);

4.接下来我们写它的实现类。


	public int updItemStatus(TbItem tbItem) {
		
		return tbItemMapper.updateByPrimaryKeySelective(tbItem);
	}

5.现在我们的dubbo里面已经写好了。现在就要针对后台项目,也就是manage来写对应的代码了。我们先在service的接口里面来写对应的方法。

int update(String ids,Byte status);

为什么这么写呢?因为我们是根据前台传过来的ids来执行对应的操作,在TBItem表里面我们可以看到对应的字段,也就是status来表示是上架,下架,还是删除。

6.我们再就是在对应的实现类里面写对应的实现代码就可以了。

public int update(String ids, Byte status) {
		// TODO Auto-generated method stub
		int index=0;
		TbItem item=new TbItem();
		String[] idStrings=ids.split(",");
		for(String id:idStrings) {
			item.setId(Long.parseLong(id));
			item.setStatus(status);
			index+=tbItemDubboServiceImpl.updItemStatus(item);
			
		}
		if(index==idStrings.length) {
			return 1;
		}
		return 0;
	}

因为我们是可以批量删除,所以前台是可以一次传多个id过来的,他们之间使用逗号隔开的,所以我们开始就用一个string数组来装这些id。我们发现,我们在dubbo里面写的代码是需要传一个对象的。所以我们创建一个TbItem对象,循环遍历字符数组,每次把id和status传进去,然后调用对应的dubbo,每次成功是返回1,用index记录,如果最后index等于字符数组的长度,那么就成功了。

7.现在serviceImpl的代码也写好了,接下来,我们只需要在控制器里面调用它们就够了。可是我们在写控制器代码的时候发现,我们的前台需要我们返回什么数据么?只有弄明了这一点,我们才可以确定控制器里面的方法的类型。

首先我们复制对应的请求头,在JSP中搜索,找出对应的代码:

我们先点击上架按钮,然后看发出的请求头:

 

复制下来,然后任意打开一个JSP,,按住Ctrl+H,粘贴进去进行搜索,找到对应的代码:

 

我们发现,我们需要返回给前台一个status字段。于是我们就需要在控制器里面的方法里面的返回值设置为这个。它是用传的数据调用的status,所以我们需要在Commons里面建议一个pojo类,专门的来存放结果。如下:

public class EgoResult {
	private int status;

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}
}

 

然后我们就可以写出我们的控制器代码了:

/**
	 * 商品删除
	 */
	@RequestMapping("rest/item/delete")
	@ResponseBody
	public EgoResult delete(String ids) {
		EgoResult er=new EgoResult();
		int index=tbItemServiceImpl.update(ids, (byte)3);
		if(index==1) {
			er.setStatus(200);
		}
		return er;
	}
	/**
	 * 商品下架
	 */
	@RequestMapping("rest/item/instock")
	@ResponseBody
	public EgoResult instock(String ids) {
		EgoResult er=new EgoResult();
		int index=tbItemServiceImpl.update(ids, (byte)2);
		if(index==1) {
			er.setStatus(200);
		}
		return er;
		
	}
	/**
	 * 商品上架
	 */
	@RequestMapping("rest/item/reshelf")
	@ResponseBody
	public EgoResult reshelf(String ids){
		EgoResult er=new EgoResult();
		int index=tbItemServiceImpl.update(ids, (byte)1);
		if (index==1) {
			er.setStatus(200);
		}
		return er;
	}
}

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值