对封装类的新增

代码如下

ShopServiceImpl类

@Service
public class ShopServiceImpl implements ShopService {
	
	@Autowired
	TbShopMapper shopMapper;
	
	@Transactional
	@Override
	public ShopExecution addShop(TbShop shop, File shopImg) {
		//空值判断
		if(shop == null) {
			return new ShopExecution(ShopStateEnum.NULL_SHOP);
		}
		try {
			//给店铺信息赋初始值
			shop.setEnableStatus(0);
			shop.setCreateTime(new Date());
			shop.setLastEditTime(new Date());
			//添加店铺信息
			int effectedNum = shopMapper.insert(shop);
			if(effectedNum <= 0) {
			//用RuntimeException原因而不用Exception,因为用RuntimeException时遇到异常时会回滚,而Exception不会
				throw new ShopOperationException("店铺创建失败");
			}else {
				if(shopImg != null) {
					//存储图片
					try {
						addShopImg(shop,shopImg);
					} catch (Exception e) {
						throw new ShopOperationException("addShopImg error:"+e.getMessage()+shopImg.getName());
					}
					//更新图片地址
					effectedNum = shopMapper.updateByPrimaryKey(shop);
					if(effectedNum <= 0) {
						throw new ShopOperationException("更新图片地址失败");
					}
				}
			}
		} catch (Exception e) {
			throw new ShopOperationException("addShop error:" + e.getMessage());
		}
		return new ShopExecution(ShopStateEnum.CHECK,shop);
	}

	private void addShopImg(TbShop shop, File shopImg) {
		//获取shop图片目录的相对值路径
		String dest = PathUtil.getShopImagePath(shop.getShopId());//"E:/project/upload/item/shop/" + shopId + "/"
		String shopImgAddr = ImageUtil.generateThumbnail(shopImg, dest);//这里的工能看另一篇博客
		shop.setShopImg(shopImgAddr);
	}

}

注意:ShopExecution异常类是对RuntimeException的封装异常类,为了直观的观察异常类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值