JAVA Synchronized和Lock实现原理

本文介绍了一个用于更新仓库类型的业务逻辑,其中包括参数校验、检查仓库是否已关联商品以及更新仓库状态的过程。通过CollectorItemExample查询相关联的商品,并利用updateStatus方法来改变仓库的状态。
一、Synchronized实现
try {
            if (!MsOnionRegexUtils.checkDigit(idxStr)) {
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", idxStr=" + idxStr);
            }
            if (!MsOnionRegexUtils.isNumeric(statusStr)) {
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400,
                        MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", statusStr=" + statusStr);
            }
            idx = Long.parseLong(idxStr);
            status = Short.parseShort(statusStr);

            // 查询仓库是否关联商品,不能删除
            CollectorItemExample example = new CollectorItemExample();
            CollectorItemExample.Criteria criteria = example.createCriteria();
            criteria.andWarehouseTypeIdxEqualTo(idx);
            List<CollectorItem> list = itemService.queryByExample(msOnionApiVersion, example);
            if (MsOnionCollectionUtils.isNotEmpty(list)) {
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, "仓库已关联商品,不能删除");
            }
            int result = warehouseTypeService.updateStatus(msOnionApiVersion, idx, status);
            if (result > 0) {
                return MsOnionResult.ok();
            }
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_SERVER_ERROR);

        } catch (MsOnionIllegalArgumentException e) {
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL);
        } catch (MsOnionException e) {
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_500, MessageConstants.MESSAGE_SERVER_ERROR);
        }
 
1
try {
2
            if (!MsOnionRegexUtils.checkDigit(idxStr)) {
3
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", idxStr=" + idxStr);
4
            }
5
            if (!MsOnionRegexUtils.isNumeric(statusStr)) {
6
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400,
7
                        MessageConstants.MESSAGE_PARAMETER_ILLEGAL + ", statusStr=" + statusStr);
8
            }
9
            idx = Long.parseLong(idxStr);
10
            status = Short.parseShort(statusStr);
11

          
12
            // 查询仓库是否关联商品,不能删除
13
            CollectorItemExample example = new CollectorItemExample();
14
            CollectorItemExample.Criteria criteria = example.createCriteria();
15
            criteria.andWarehouseTypeIdxEqualTo(idx);
16
            List<CollectorItem> list = itemService.queryByExample(msOnionApiVersion, example);
17
            if (MsOnionCollectionUtils.isNotEmpty(list)) {
18
                return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, "仓库已关联商品,不能删除");
19
            }
20
            int result = warehouseTypeService.updateStatus(msOnionApiVersion, idx, status);
21
            if (result > 0) {
22
                return MsOnionResult.ok();
23
            }
24
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_SERVER_ERROR);
25

          
26
        } catch (MsOnionIllegalArgumentException e) {
27
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_400, MessageConstants.MESSAGE_PARAMETER_ILLEGAL);
28
        } catch (MsOnionException e) {
29
            return MsOnionResult.build(MsOnionStatusConstants.STATUS_500, MessageConstants.MESSAGE_SERVER_ERROR);
30
        }




转载于:https://www.cnblogs.com/apescode/p/9111976.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值