关于modifyShop方法的两个疑问

来源:6-2 店铺信息编辑之Service层的实现

慕沐8221787

2020-04-13

疑问一:针对以下代码
Shop tempShop = shopDao.queryByShopId(shop.getShopId());
if (tempShop.getShopImg() != null) {
ImageUtil.deleteFileOrPath(tempShop.getShopImg());
}
上面这段代码可以修改吗?第一行删掉,另外两行修改如下,可以达到精简的效果:
if (shop.getShopImg()!=null){
ImageUtil.deleteFileOrPath(shop.getShopImg());
}

疑问二:针对以下代码
//2.更新店铺信息
shop.setLastEditTime(new Date());
int effetedNum = shopDao.updateShop(shop);
if (effetedNum <= 0) {
return new ShopExecution(ShopStateEnum.INNER_ERROR);
} else {
shop=shopDao.queryByShopId(shop.getShopId());
return new ShopExecution(ShopStateEnum.SUCCESS, shop);
}
如果出现effetedNum <= 0成立,事务将不会回退,返回一个ShopExecution对象,而此时店铺图片已换、但数据库中图片名称未修改成功,怎么办?另外,倒数第二行的代码( shop=shopDao.queryByShopId(shop.getShopId());)是不是没有必要?

写回答

1回答

翔仔

2020-04-14

同学好,第一个没懂,为什么要删掉?你如果不获取到原先的值,和前端的值做merge的话,原来的数据是不是可能会被覆盖掉了?

第二个,确实这部分没有完善,<0需要抛出异常才可以。倒数第二行代码,针对这里来讲,确实没必要,但是如果你要给前端返回一个完整的更新信息的话,就需要了。这里可以去掉

0
3
慕沐8221787
非常感谢!
2020-04-14
共3条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程