關於驗證

驗證

  1. Field驗證(是否容許修改/刪除/建立)

尤爲在使用redis以前,能夠提升性能redis

  1. 歸屬性驗證

判斷從屬關係,是否在一個域內性能

  1. 存在性驗證

判斷是否存在,尤爲在update時this

代碼例子code

/**
     * @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;
    }
相關文章
相關標籤/搜索