| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | <?php/** * OptionModel.php UTF-8 * 配置表Model * * @date    : 2018/1/20 15:31 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : linjiebin <ljb@huosdk.com> * @version : HUOSDK 8.0 */namespace huo\model\option;use huo\model\common\CommonModel;class OptionModel extends CommonModel {    protected $name = 'option';    /**     * 获取配置值     *     * @param string $option_name   配置名     * @param int    $autoload      是否自动加载 1是  0否     * @param bool   $auto_add      是否自动添加     * @param string $auto_add_data 自动添加配置值     *     * @return string     * @throws \think\Exception     * @throws \think\db\exception\DataNotFoundException     * @throws \think\db\exception\ModelNotFoundException     * @throws \think\exception\DbException     */    public function getOptionData($option_name = '', $autoload = 1, $auto_add = false, $auto_add_data = '') {        if (empty($option_name)) {            return '';        }        $_map['option_name'] = trim($option_name);        $_count = $_option_data = $this->where($_map)->count();        if (empty($_count)) {            if ($auto_add) {                $_option_data = [                    'autoload'     => $autoload,                    'option_name'  => $option_name,                    'option_value' => $auto_add_data                ];                $this->insert($_option_data);            } else {                return null;            }        }else{            $_option_data = $this->where($_map)->find()->toArray();        }        return $_option_data;    }    /**     * 保存配置值     * @param string $option_name     * @param string $option_value     *     * @return bool|string     */    public function saveOptionData($option_name = '',$option_value=''){        if (empty($option_name)) {            return '';        }        $_map['option_name'] = trim($option_name);        $_data['option_value'] = $option_value;        $res = $this->where($_map)->update($_data);        if(false === $res) {            return false;        }        return true;    }    public function getValue($option_name) {        if (empty($option_name)) {            return '';        }        $_map['option_name'] = $option_name;        $_data = $this->where($_map)->value('option_value');        if (!empty($_data)) {            $_data = json_decode($_data, true);        }        return $_data;    }    public function getValues($option_names) {        if (empty($option_names) || !is_array($option_names)) {            return '';        }        $_map['option_name'] = ['in', $option_names];        $_data = $this->where($_map)->column('option_value', 'option_name');        if (!empty($_data)) {            foreach ($_data as $_key => $value) {                if (!empty($value)) {                    $_data[$_key] = json_decode($value, true);                }            }        }        return $_data;    }    public function getInfoByName($option_name) {        $_info = $this->where(['option_name' => $option_name])->find();        if (empty($_info)) {            return null;        }        if (is_object($_info)) {            $_info = $_info->toArray();        }        return $_info;    }}
 |