关于验证

Redis验证更新流程

验证

  1. Field验证(是否允许修改/删除/创建)

尤其在使用redis之前,可以提高性能

  1. 归属性验证

判断从属关系,是否在一个域内

  1. 存在性验证

判断是否存在,尤其在update时

代码例子

    /**
     * @param $id
     * @param $parentId
     * @param $name
     * @param $code
     * @return int 0-success;-1-CODE_DOES_NOT_EXIST;-2-CODE_DOES_NOT_EXIST;-3-DEFAULT_CODE_CAN_NOT_UPDATE;-4-DISABLED_SYSTEM_KEYWORDS;-5-CODE_EXIST;
     */
    public function update($id,$parentId, $name, $code) {
        //check field
        $system_array = array("NEW","REGISTER","IMPORT");
        if(in_array( strtoupper($code),$system_array)){
            return -4;
        }

        $redis = $this->_context->getRedis();

        //check permission
        $rank = $redis->zRank('base:list:' . $parentId,$id);
        if ($rank === false) {
            return -2;
        }

        //check exist
        if (!$redis->exists('base:detail:' . $id)) {
            return -1;
        }

        //check code exists
        $detail = $redis->hMGet('base:detail:' . $id,array('code','isDefault'));
        $rank = $redis->zRank('base:code:list:' . $parentId, strtoupper($code));
        if ($detail['code']!==$code && $rank!==false) {
            return -5;
        }

        //check is default
        if($detail['isDefault']==="1") {
            return -3;
        }

        //delete old trackingCode
        $redis->zRem('base:code:list:' . $parentId, strtoupper($detail['code']));


        //create new trackingCode
        $redis->hMset('base:detail:' . $id,
            array(
                'name' => $name,
                'code' => $code
            )
        );
        $redis->zAdd('base:code:list:' . $parentId,$id, strtoupper($code));

        return 0;
    }

转载于:https://my.oschina.net/u/2351685/blog/596885

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值