www.gusucode.com > baigo CMS PHP开源网站管理系统 v1.2.2源码程序 > baigocms_v1.2.2/bg_core/model/app.class.php
<?php /*----------------------------------------------------------------- !!!!警告!!!! 以下为系统文件,请勿修改 -----------------------------------------------------------------*/ //不能非法包含或直接执行 if(!defined("IN_BAIGO")) { exit("Access Denied"); } /*-------------应用模型-------------*/ class MODEL_APP { private $obj_db; public $appStatus = array(); function __construct() { //构造函数 $this->obj_db = $GLOBALS["obj_db"]; //设置数据库对象 } /** 创建表 * mdl_create function. * * @access public * @return void */ function mdl_create_table() { foreach ($this->appStatus as $_key=>$_value) { $_arr_status[] = $_key; } $_str_status = implode("','", $_arr_status); $_arr_appCreate = array( "app_id" => "smallint NOT NULL AUTO_INCREMENT COMMENT 'ID'", "app_name" => "varchar(30) NOT NULL COMMENT '应用名'", "app_key" => "char(64) NOT NULL COMMENT '校验码'", "app_status" => "enum('" . $_str_status . "') NOT NULL COMMENT '状态'", "app_note" => "varchar(30) NOT NULL COMMENT '备注'", "app_time" => "int NOT NULL COMMENT '创建时间'", "app_ip_allow" => "varchar(1000) NOT NULL COMMENT '允许调用IP地址'", "app_ip_bad" => "varchar(1000) NOT NULL COMMENT '禁止IP'", "app_allow" => "varchar(3000) NOT NULL COMMENT '权限'", ); $_num_mysql = $this->obj_db->create_table(BG_DB_TABLE . "app", $_arr_appCreate, "app_id", "应用"); if ($_num_mysql > 0) { $_str_alert = "y190105"; //更新成功 } else { $_str_alert = "x190105"; //更新成功 } return array( "alert" => $_str_alert, //更新成功 ); } /** 列出字段 * mdl_column function. * * @access public * @return void */ function mdl_column() { $_arr_colRows = $this->obj_db->show_columns(BG_DB_TABLE . "app"); foreach ($_arr_colRows as $_key=>$_value) { $_arr_col[] = $_value["Field"]; } return $_arr_col; } /** 修改表 * mdl_alert_table function. * * @access public * @return void */ function mdl_alert_table() { foreach ($this->appStatus as $_key=>$_value) { $_arr_status[] = $_key; } $_str_status = implode("','", $_arr_status); $_arr_col = $this->mdl_column(); $_arr_alert = array(); if (in_array("app_id", $_arr_col)) { $_arr_alert["app_id"] = array("CHANGE", "smallint NOT NULL AUTO_INCREMENT COMMENT 'ID'", "app_id"); } if (in_array("app_key", $_arr_col)) { $_arr_alert["app_key"] = array("CHANGE", "char(64) NOT NULL COMMENT '校验码'", "app_key"); } if (in_array("app_status", $_arr_col)) { $_arr_alert["app_status"] = array("CHANGE", "enum('" . $_str_status . "') NOT NULL COMMENT '状态'", "app_status"); } $_arr_appData = array( "app_status" => $_arr_status[0], ); $this->obj_db->update(BG_DB_TABLE . "app", $_arr_appData, "LENGTH(app_status) < 1"); //更新数据 $_str_alert = "y190111"; if ($_arr_alert) { $_reselt = $this->obj_db->alert_table(BG_DB_TABLE . "app", $_arr_alert); if ($_reselt) { $_str_alert = "y190106"; } } return array( "alert" => $_str_alert, ); } /** 重置 app key * mdl_reset function. * * @access public * @param mixed $num_appId * @return void */ function mdl_reset($num_appId) { $_arr_appData = array( "app_key" => fn_rand(64), ); $_num_mysql = $this->obj_db->update(BG_DB_TABLE . "app", $_arr_appData, "app_id=" . $num_appId); //更新数据 if ($_num_mysql > 0) { $_str_alert = "y190103"; //更新成功 } else { return array( "alert" => "x190103", //更新失败 ); } return array( "app_id" => $num_appId, "alert" => $_str_alert, //成功 ); } /** 提交 * mdl_submit function. * * @access public * @return void */ function mdl_submit() { $_arr_appData = array( "app_name" => $this->appSubmit["app_name"], "app_note" => $this->appSubmit["app_note"], "app_status" => $this->appSubmit["app_status"], "app_ip_allow" => $this->appSubmit["app_ip_allow"], "app_ip_bad" => $this->appSubmit["app_ip_bad"], "app_allow" => $this->appSubmit["app_allow"], ); if ($this->appSubmit["app_id"] < 1) { $_arr_insert = array( "app_key" => fn_rand(64), "app_time" => time(), ); $_arr_data = array_merge($_arr_appData, $_arr_insert); $_num_appId = $this->obj_db->insert(BG_DB_TABLE . "app", $_arr_data); //更新数据 if ($_num_appId > 0) { $_str_alert = "y190101"; //更新成功 } else { return array( "alert" => "x190101", //更新失败 ); } } else { $_num_appId = $this->appSubmit["app_id"]; $_num_mysql = $this->obj_db->update(BG_DB_TABLE . "app", $_arr_appData, "app_id=" . $_num_appId); //更新数据 if ($_num_mysql > 0) { $_str_alert = "y190103"; //更新成功 } else { return array( "alert" => "x190103", //更新失败 ); } } return array( "app_id" => $_num_appId, "alert" => $_str_alert, //成功 ); } /** 更改状态 * mdl_status function. * * @access public * @param mixed $str_status * @return void */ function mdl_status($str_status) { $_str_appId = implode(",", $this->appIds["app_ids"]); $_arr_appUpdate = array( "app_status" => $str_status, ); $_num_mysql = $this->obj_db->update(BG_DB_TABLE . "app", $_arr_appUpdate, "app_id IN (" . $_str_appId . ")"); //删除数据 //如影响行数大于0则返回成功 if ($_num_mysql > 0) { $_str_alert = "y190103"; //成功 } else { $_str_alert = "x190103"; //失败 } return array( "alert" => $_str_alert, ); } /** 读取 * mdl_read function. * * @access public * @param mixed $str_app * @param string $str_readBy (default: "app_id") * @param int $num_notId (default: 0) * @return void */ function mdl_read($str_app, $str_readBy = "app_id", $num_notId = 0) { $_arr_appSelect = array( "app_id", "app_name", "app_key", "app_note", "app_status", "app_time", "app_ip_allow", "app_ip_bad", "app_allow", ); switch ($str_readBy) { case "app_id": $_str_sqlWhere = $str_readBy . "=" . $str_app; break; default: $_str_sqlWhere = $str_readBy . "='" . $str_app . "'"; break; } if ($num_notId > 0) { $_str_sqlWhere .= " AND app_id<>" . $num_notId; } $_arr_appRows = $this->obj_db->select(BG_DB_TABLE . "app", $_arr_appSelect, $_str_sqlWhere, "", "", "", 1, 0); //检查本地表是否存在记录 if (isset($_arr_appRows[0])) { //用户名不存在则返回错误 $_arr_appRow = $_arr_appRows[0]; } else { return array( "alert" => "x190102", //不存在记录 ); } if (isset($_arr_appRow["app_allow"])) { $_arr_appRow["app_allow"] = fn_jsonDecode($_arr_appRow["app_allow"], "no"); } else { $_arr_appRow["app_allow"] = array(); } $_arr_appRow["alert"] = "y190102"; return $_arr_appRow; } /** 列出 * mdl_list function. * * @access public * @param mixed $num_appNo * @param int $num_appExcept (default: 0) * @param array $arr_search (default: array()) * @return void */ function mdl_list($num_appNo, $num_appExcept = 0, $arr_search = array()) { $_arr_appSelect = array( "app_id", "app_key", "app_name", "app_note", "app_status", "app_time", ); $_str_sqlWhere = $this->sql_process($arr_search); $_arr_appRows = $this->obj_db->select(BG_DB_TABLE . "app", $_arr_appSelect, $_str_sqlWhere, "", "app_id DESC", $num_appNo, $num_appExcept); //查询数据 return $_arr_appRows; } /** 计数 * mdl_count function. * * @access public * @param array $arr_search (default: array()) * @return void */ function mdl_count($arr_search = array()) { $_str_sqlWhere = $this->sql_process($arr_search); $_num_appCount = $this->obj_db->count(BG_DB_TABLE . "app", $_str_sqlWhere); //查询数据 return $_num_appCount; } /** 删除 * mdl_del function. * * @access public * @return void */ function mdl_del() { $_str_appId = implode(",", $this->appIds["app_ids"]); $_num_mysql = $this->obj_db->delete(BG_DB_TABLE . "app", "app_id IN (" . $_str_appId . ")"); //删除数据 //如车影响行数小于0则返回错误 if ($_num_mysql > 0) { $_str_alert = "y190104"; //成功 } else { $_str_alert = "x190104"; //失败 } return array( "alert" => $_str_alert, ); } /** 提交输入 * input_submit function. * * @access public * @return void */ function input_submit() { if (!fn_token("chk")) { //令牌 return array( "alert" => "x030206", ); } $this->appSubmit["app_id"] = fn_getSafe(fn_post("app_id"), "int", 0); if ($this->appSubmit["app_id"] > 0) { //检查用户是否存在 $_arr_appRow = $this->mdl_read($this->appSubmit["app_id"]); if ($_arr_appRow["alert"] != "y190102") { return $_arr_appRow; } } $_arr_appName = validateStr(fn_post("app_name"), 1, 30); switch ($_arr_appName["status"]) { case "too_short": return array( "alert" => "x190201", ); break; case "too_long": return array( "alert" => "x190202", ); break; case "ok": $this->appSubmit["app_name"] = $_arr_appName["str"]; break; } $_arr_appNote = validateStr(fn_post("app_note"), 0, 30); switch ($_arr_appNote["status"]) { case "too_long": return array( "alert" => "x190205", ); break; case "ok": $this->appSubmit["app_note"] = $_arr_appNote["str"]; break; } $_arr_appStatus = validateStr(fn_post("app_status"), 1, 0); switch ($_arr_appStatus["status"]) { case "too_short": return array( "alert" => "x190206", ); break; case "ok": $this->appSubmit["app_status"] = $_arr_appStatus["str"]; break; } $_arr_appIpAllow = validateStr(fn_post("app_ip_allow"), 0, 3000); switch ($_arr_appIpAllow["status"]) { case "too_long": return array( "alert" => "x190210", ); break; case "ok": $this->appSubmit["app_ip_allow"] = $_arr_appIpAllow["str"]; break; } $_arr_appIpBad = validateStr(fn_post("app_ip_bad"), 0, 3000); switch ($_arr_appIpBad["status"]) { case "too_long": return array( "alert" => "x190211", ); break; case "ok": $this->appSubmit["app_ip_bad"] = $_arr_appIpBad["str"]; break; } $this->appSubmit["app_allow"] = fn_jsonEncode(fn_post("app_allow"), "no"); $this->appSubmit["alert"] = "ok"; return $this->appSubmit; } /** 批量操作选择 * input_ids function. * * @access public * @return void */ function input_ids() { if (!fn_token("chk")) { //令牌 return array( "alert" => "x030206", ); } $_arr_appIds = fn_post("app_ids"); if ($_arr_appIds) { foreach ($_arr_appIds as $_key=>$_value) { $_arr_appIds[$_key] = fn_getSafe($_value, "int", 0); } $_str_alert = "ok"; } else { $_str_alert = "x030202"; } $this->appIds = array( "alert" => $_str_alert, "app_ids" => $_arr_appIds ); return $this->appIds; } /** 列出及统计 SQL 处理 * sql_process function. * * @access private * @param array $arr_search (default: array()) * @return void */ private function sql_process($arr_search = array()) { $_str_sqlWhere = "1=1"; if (isset($arr_search["key"]) && $arr_search["key"]) { $_str_sqlWhere .= " AND (app_name LIKE '%" . $arr_search["key"] . "%' OR app_note LIKE '%" . $arr_search["key"] . "%')"; } if (isset($arr_search["status"]) && $arr_search["status"]) { $_str_sqlWhere .= " AND app_status='" . $arr_search["status"] . "'"; } return $_str_sqlWhere; } }