Java之品优购课程讲义_day07(6)

2.1 保存数据
2.1.1 后端代码
修改 pinyougou-sellergoods-interface 的 GoodsService.java

public void update(Goods goods);
修改 pinyougou-sellergoods-service 的 GoodsServiceImpl ,将 SKU 列表插入的代码提取出来,封装到私有方法中

/**

*插入 SKU 列表数据

*@param  goods

*/

private  void  saveItemList(Goods  goods){

if("1".equals(goods.getGoods().getIsEnableSpec())){
for(TbItem  item  :goods.getItemList()){

.........中间代码略

}

}else{

TbItem  item=new  TbItem();

.........中间代码略itemMapper.insert(item);

}

}

在 add 方法中调用 此方法,修改如下:

public  void  add(Goods  goods)  {
goods.getGoods().setAuditStatus("0"); goodsMapper.insert(goods.getGoods());  //插入商品表

goods.getGoodsDesc().setGoodsId(goods.getGoods().getId());

goodsDescMapper.insert(goods.getGoodsDesc());//插入商品扩展数据

saveItemList(goods);//插入商品 SKU 列表数据

}

怎么样,是不是比原来更加清爽了呢?
接下来,我们修改 update 方法,实现修改

public void update(Goods goods){

goods.getGoods().setAuditStatus("0");//设置未申请状态:如果是经过修改的商品,需要重新设置状态
goodsMapper.updateByPrimaryKey(goods.getGoods());//保存商品表 goodsDescMapper.updateByPrimaryKey(goods.getGoodsDesc());//保存商品扩展表
//删除原有的 sku 列表数据

TbItemExample example=new TbItemExample(); com.pinyougou.pojo.TbItemExample.Criteria criteria = example.createCriteria(); criteria.andGoodsIdEqualTo(goods.getGoods().getId()); itemMapper.deleteByExample(example);
//添加新的 sku 列表数据

saveItemList(goods);//插入商品 SKU 列表数据

}
修改 pinyougou-manager-web 工程的 GoodsController.java
Java之品优购课程讲义_day07(6)
修改 pinyougou-shop-web 工程的 GoodsController.java

/**

*修改

*@param goods

*@return

*/ @RequestMapping("/update")
public Result update(@RequestBody Goods goods){

//校验是否是当前商家的 id

Goods goods2 = goodsService.findOne(goods.getGoods().getId());
//获取当前登录的商家 ID

String sellerId = SecurityContextHolder.getContext().getAuthentication().getName();
//如果传递过来的商家 ID 并不是当前登录的用户的 ID,则属于非法操作if(!goods2.getGoods().getSellerId().equals(sellerId)
|| !goods.getGoods().getSellerId().equals(sellerId) ){

return new Result(false, "操作非法");

}

try {

goodsService.update(goods);

return new Result(true, "修改成功");

} catch (Exception e) { e.printStackTrace();
return new Result(false, "修改失败");

}

}

代码解释:出于安全考虑,在商户后台执行的商品修改,必须要校验提交的商品属于该商户

转载于:https://blog.51cto.com/13517854/2165979

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值