You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
6.0 KiB
177 lines
6.0 KiB
<?php
|
|
defined('IN_IA') or exit('Access Denied');
|
|
|
|
class Cloud {
|
|
|
|
//获取授权信息
|
|
static function auth_info() {
|
|
global $_W;
|
|
//获取授权信息
|
|
$authinfo = self::wl_syssetting_read('authinfo');
|
|
$auth = self::api_post(['url' => $_W['siteroot'], 'code' => $authinfo['code'] ? $authinfo['code'] : '']);
|
|
//写入授权信息
|
|
if ($auth['code'] == 0 && !empty($auth['data'])) {
|
|
self::wl_syssetting_save($auth['data'], 'authinfo');
|
|
return $auth['data'];
|
|
}
|
|
return error(1, $auth['message']);
|
|
}
|
|
|
|
static function auth_db_update() {
|
|
$dbfile = PATH_CORE . "common/dbfile.php";
|
|
if (!file_exists($dbfile)) {
|
|
return error(1, 'dbfile文件不存在,请检查后再试');
|
|
}
|
|
|
|
$diff_sqls = [];
|
|
$tables = json_decode(base64_decode(file_get_contents($dbfile)), true);
|
|
foreach ($tables as $table) {
|
|
if (!strexists($table['table'], 'wlmerchant') && IMS_FAMILY != 'wl') {
|
|
continue;
|
|
}
|
|
$diff_sqls = array_merge($diff_sqls, WeliamDb::table_upgrade($table));
|
|
}
|
|
|
|
return $diff_sqls;
|
|
}
|
|
|
|
static function auth_up_data() {
|
|
//数据库更新
|
|
$sqls = Cloud::auth_db_update();
|
|
|
|
//商家分类更新
|
|
$cate_count = pdo_getcolumn('wlmerchant_merchant_cate', [], 'COUNT(sid)');
|
|
if (empty($cate_count)) {
|
|
$stores = pdo_getall('wlmerchant_merchantdata', array(), array('id'));
|
|
foreach ($stores as $store) {
|
|
$sqls[] = ['type' => 'store_cate', 'sid' => $store['id']];
|
|
}
|
|
}
|
|
|
|
return $sqls;
|
|
}
|
|
|
|
static function data_store_cate($sid) {
|
|
$store = pdo_get('wlmerchant_merchantdata', array('id' => $sid), array('onelevel', 'twolevel'));
|
|
if (!empty($store)) {
|
|
$data = array('sid' => $sid, 'onelevel' => $store['onelevel'], 'twolevel' => $store['twolevel']);
|
|
$cate = pdo_get('wlmerchant_merchant_cate', $data);
|
|
if (empty($cate)) {
|
|
pdo_insert('wlmerchant_merchant_cate', $data);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 系统设置保存
|
|
* @param $data 值
|
|
* @param $key 键
|
|
* @return bool
|
|
*/
|
|
static function wl_syssetting_save($data, $key) {
|
|
if (empty($key)) {
|
|
return FALSE;
|
|
}
|
|
$record = array();
|
|
$record['value'] = iserializer($data);
|
|
if ($key == 'taskcover') {
|
|
$record['v4flag'] = 1;
|
|
$exists = pdo_getcolumn(PDO_NAME . 'setting', array('key' => $key, 'uniacid' => -1, 'v4flag' => 1), 'id');
|
|
} else {
|
|
$exists = pdo_getcolumn(PDO_NAME . 'setting', array('key' => $key, 'uniacid' => -1), 'id');
|
|
}
|
|
if ($exists) {
|
|
$return = pdo_update(PDO_NAME . 'setting', $record, array('id' => $exists));
|
|
} else {
|
|
$record['key'] = $key;
|
|
$record['uniacid'] = -1;
|
|
$return = pdo_insert(PDO_NAME . 'setting', $record);
|
|
}
|
|
Cache::deleteCache('syssetting', $key);
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* 系统设置读取
|
|
* @param $key
|
|
* @return array|string
|
|
*/
|
|
static function wl_syssetting_read($key) {
|
|
$settings = Cache::getCache('syssetting', $key);
|
|
if (empty($settings)) {
|
|
if ($key == 'taskcover') {
|
|
$settings = pdo_get(PDO_NAME . 'setting', array('key' => $key, 'uniacid' => -1, 'v4flag' => 1), array('value'));
|
|
} else {
|
|
$settings = pdo_get(PDO_NAME . 'setting', array('key' => $key, 'uniacid' => -1), array('value'));
|
|
}
|
|
if (is_array($settings)) {
|
|
$settings = iunserializer($settings['value']);
|
|
} else {
|
|
$settings = '';
|
|
}
|
|
Cache::setCache('syssetting', $key, $settings);
|
|
}
|
|
return $settings;
|
|
}
|
|
|
|
static function files_exit() {
|
|
$file = PATH_MODULE . 'temp/upgrade_file.txt';
|
|
if (!file_exists($file)) {
|
|
return FALSE;
|
|
}
|
|
$upgrade_files = json_decode(file_get_contents($file), true);
|
|
$upgrade_files = array_column($upgrade_files, 'path');
|
|
|
|
$local_files = FilesHandle::file_tree(substr(PATH_MODULE, 0, -1));
|
|
foreach ($local_files as $sk => &$sf) {
|
|
if (strexists($sf, '.log') || strexists($sf, MODULE_NAME . '/data/') || strexists($sf, MODULE_NAME . '/temp/') || (strexists($sf, '/view/') && !strexists($sf, '/view/default/')) || strexists($sf, MODULE_NAME . '/icon.png') || strexists($sf, MODULE_NAME . '/icon-custom.jpg')) {
|
|
unset($local_files[$sk]);
|
|
continue;
|
|
}
|
|
$sf = str_replace(PATH_MODULE, "", $sf);
|
|
}
|
|
|
|
$diff_files = array_diff($local_files, $upgrade_files);
|
|
foreach ($diff_files as $key => $value) {
|
|
unlink(PATH_MODULE . $value);
|
|
}
|
|
FilesHandle::file_rm_empty_dir(PATH_MODULE);
|
|
|
|
//异常文件需要删除
|
|
$abnormal = array(PATH_CORE . '/common/func.php', IA_ROOT . '/app/func.php', IA_ROOT . '/web/func.php');
|
|
foreach ($abnormal as $k => $val) {
|
|
unlink($val);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除客户未购买的插件
|
|
* @param $plugin
|
|
*/
|
|
static function files_plugin_exit($plugin) {
|
|
$dirs = scandir(PATH_PLUGIN);
|
|
$delplugin = array_diff($dirs, $plugin, array('.', '..'));
|
|
|
|
foreach ($delplugin as $key => $value) {
|
|
if (!strexists($value, '.')) {
|
|
Util::deleteAll(PATH_PLUGIN . $value, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
static function api_post($data = array()) {
|
|
global $_W;
|
|
if (empty($data['pd'])) {
|
|
$data['pd'] = 'weliam_smartcity';
|
|
}
|
|
if (IMS_FAMILY == 'wl') {
|
|
$data['ind'] = 'true';
|
|
}
|
|
$resp = Util::httpPost(WELIAM_API, $data);
|
|
if (!is_error($resp)) {
|
|
$resp = @json_decode($resp, true);
|
|
}
|
|
return $resp;
|
|
}
|
|
|
|
}
|