function Login($user, $pass, $loginas) { LogUtils::clear_log(); LogUtils::log_str('Login Begin'); LogUtils::log_obj(func_get_args()); $logret = false; $sys =& $GLOBALS['system']; $db = $sys->database(); $sql = "select * from sdb_operators where status=1 and username=" . $db->quote($user); $row = $db->selectrow($sql); LogUtils::log_obj($row); if ($row && strtolower($row['userpass']) == strtolower($pass)) { $logret = true; if (isset($row['super']) && $row['super'] != $loginas) { $logret = false; } if (isset($row['status']) && !$row['status']) { $logret = false; } if (isset($row['disabled']) && $row['disabled'] == 'true') { $logret = false; } } LogUtils::log_str('Login Return:' . ($logret ? 'true' : 'false')); return $logret; }
function csv2array($csvfile, $fields, $delimiter = ',', $enclosure = '"', $callback = NULL) { LogUtils::log_str('csv2array'); $handle = fopen($csvfile, "r"); LogUtils::log_obj($handle); if (!$handle) { return array(); } $row = 1; $list = array(); while ($data = fgetcsv($handle, 262144, $delimiter, $enclosure)) { if (count($data) > count($fields)) { $data = array_slice($data, 0, count($fields)); } if (count($fields) > count($data)) { $fields = array_slice($fields, 0, count($data)); } foreach ($data as $key => $item) { $data[$key] = str_replace("'", "\\'", $item); } $v = array(); for ($i = 0; $i < count($fields); $i++) { $v[$fields[$i]] = $data[$i]; } //$v = array_combine($fields, $data); $list[] = $v; if ($callback) { call_user_func($callback, $v); } } fclose($handle); return $list; }
function GetShopInfo() { LogUtils::log_str('GetShopInfo Begin'); $server =& $GLOBALS['as_server']; $sys =& $GLOBALS['system']; $db = $sys->database(); $info = array('timezone' => defined('SERVER_TIMEZONE') ? SERVER_TIMEZONE : 8); LogUtils::log_str('GetShopInfo Return:'); LogUtils::log_obj($info); return $info; }
function validate_soap($clientid, &$body, $signature, $DigestMethod, $methodname, $DigestOpts) { if (@ini_get('magic_quotes_gpc')) { $data = stripcslashes($data); } $auth_method_list = array('cert', 'role'); $auth_method = 'cert'; $clintid_arr = split(':', $clientid); if (is_array($clintid_arr) && count($clintid_arr) > 1) { $sMethod = strtolower($clintid_arr[0]); if (in_array($sMethod, $auth_method_list)) { $auth_method = $sMethod; array_shift($clintid_arr); } if (md5($clintid_arr[count($clintid_arr) - 1]) == '2331b2ae67da3312f33dd4c79bd1c49a') { $GLOBALS['as_debug'] = true; array_pop($clintid_arr); } } LogUtils::log_str('start set sql_mode'); $sys =& $GLOBALS['system']; $db = $sys->database(); if ($db) { $db->exec("set sql_mode=''"); } LogUtils::log_str('start auth:' . $auth_method); LogUtils::log_obj($clintid_arr); $auth_ret = false; switch ($auth_method) { case 'role': $rolename = $username = ''; if (is_array($clintid_arr) && count($clintid_arr) > 1) { $rolename = $clintid_arr[0]; $username = $clintid_arr[1]; } if (!empty($rolename) && !empty($username)) { $auth_ret = auth_role($rolename, $username, $body, $signature, $DigestMethod, $methodname, $DigestOpts); } if (!$auth_ret) { $GLOBALS['validate_signatrue_errmsg'] = '用户认证失败,没有操作权限。'; } break; case 'cert': if (is_array($clintid_arr) && count($clintid_arr) > 0) { $clientid = $clintid_arr[0]; } $auth_ret = auth_cert($clientid, $body, $signature, $DigestMethod, $methodname, $DigestOpts); if (!$auth_ret) { $GLOBALS['validate_signatrue_errmsg'] = '证书验证失败,请使用正确的ShopEx证书。'; } break; } LogUtils::log_str('auth ret:' . ($auth_ret ? 'true' : 'false')); return $auth_ret; }
function UploadGoodsImage($goods_id, $gimage_ids) { LogUtils::log_str('UploadGoodsImage Begin'); LogUtils::log_obj(func_get_args()); @set_time_limit(0); $server =& $GLOBALS['as_server']; $sys =& $GLOBALS['system']; //$db = $sys->database(); if (is_array($gimage_ids)) { $o = $sys->loadModel('goods/gimage'); if ($o) { LogUtils::log_str("gimage saveImage:{$goods_id},(" . implode(',', $gimage_ids) . ')'); $newThumbnail = array(); //$o->_gen_all_size('gimage_id in ('.implode(',',$gimage_ids).')',$goods_id, false, true); $ret = $o->saveImage($goods_id, '', $gimage_ids[0], $gimage_ids, false, $newThumbnail); LogUtils::log_obj($ret); } } else { LogUtils::log_str('parm gimage_ids is not array'); } LogUtils::log_str('UploadGoodsImage Return'); }
function EvalModel($modelName, $methodName, $args, $args_desc) { LogUtils::log_str('EvalModel Begin'); LogUtils::log_obj(func_get_args()); $sys =& $GLOBALS['system']; $call_args = array(); for ($i = 0; $i < count($args); $i++) { $desc = isset($args_desc[$i]) ? strtolower($args_desc[$i]) : 'string'; if ($desc == 'string') { $call_args[] = $args[$i]; } else { if ($desc == 'int') { $call_args[] = intval($args[$i]); } else { if ($desc == 'float') { $call_args[] = floatval($args[$i]); } else { if ($desc == 'bool') { $call_args[] = strtolower($args[$i]) == 'true'; } else { if ($desc == 'array') { parse_str($args[$i], $arr); $call_args[] = $arr; } else { if ($desc == 'array2') { parse_str($args[$i], $arr); $arr2 = array(); foreach ($arr as $k => $v) { $arr2[$k] = split(':', $v); } $call_args[] = $arr2; } } } } } } } $result = ''; $model = $sys->loadModel($modelName); if (is_object($model) && method_exists($model, $methodName)) { LogUtils::log_str('model and method found'); LogUtils::log_obj($call_args); $result = call_user_func_array(array(&$model, $methodName), $call_args); } LogUtils::log_str('EvalModel Return:'); LogUtils::log_obj($result); return serialize($result); }
function UploadRecord($table, $fields, $guidfield, $idfield, $syncfield, $delimiter = ',', $enclosure = '"') { LogUtils::log_str('UploadRecord Begin'); LogUtils::log_obj(func_get_args()); $server =& $GLOBALS['as_server']; $sys =& $GLOBALS['system']; $db = $sys->database(); $syncitems = array(); $atts = $server->getAttachments(); LogUtils::log_obj($atts); if (count($atts) > 0) { $att = null; foreach ($atts as $attitem) { $att = $attitem; break; } $csvfile = ServerUtils::formalPath(ServerUtils::buildPath(AS_TMP_DIR, 'tmpcsv' . time() . '.txt')); file_put_contents($csvfile, $att['data']); LogUtils::log_str($csvfile); $list = TextUtils::csv2array($csvfile, $fields, $delimiter, $enclosure); unlink($csvfile); $validators = BaseValidator::loadValidators(AS_VALIDATOR_DIR, $table, $sys); $idcolarr = split(',', $idfield); foreach ($list as $row) { LogUtils::log_obj($row); $sync_item = array(); $sync_item['guid'] = ''; $sync_item['id'] = ''; $sync_item['succ'] = false; $sync_item['errmsg'] = ''; $sync_item['syncstate'] = AS_SYNC_ADDED; if (array_key_exists($guidfield, $row)) { $sync_item['guid'] = $row[$guidfield]; } if (array_key_exists($syncfield, $row)) { $sync_item['syncstate'] = $row[$syncfield]; } $idcnd = array(); $idcndstr = ''; foreach ($idcolarr as $idcol) { if (array_key_exists($idcol, $row)) { $idcnd[$idcol] = $row[$idcol]; if (!empty($idcndstr)) { $idcndstr .= ' and '; } $idcndstr .= $idcol . "=" . $db->quote($row[$idcol]); } } $sync_item['id'] = implode(',', $idcnd); LogUtils::log_obj($idcnd); switch ($sync_item['syncstate']) { case AS_SYNC_DELETED: if (count($idcnd) > 0) { if (BaseValidator::runValidateBefore($validators, 'delete', $row)) { $sql = "delete from sdb_{$table} where {$idcndstr}"; LogUtils::log_str($sql); if ($db->exec($sql)) { $sync_item['succ'] = true; BaseValidator::runValidateAfter($validators, 'delete', $row); } } } break; case AS_SYNC_UNCHANGED: case AS_SYNC_MODIFIED: if (count($idcnd) > 0) { $sql = "select * from sdb_{$table} where {$idcndstr}"; LogUtils::log_str($sql); $count = $db->_count($sql); if ($count > 0) { if (BaseValidator::runValidateBefore($validators, 'update', $row)) { $rs = $db->query($sql); $sql = $db->getUpdateSql($rs, $row, true); LogUtils::log_str($sql); if ($sql && $db->exec($sql)) { $sync_item['succ'] = true; BaseValidator::runValidateAfter($validators, 'update', $row); } } } else { if (BaseValidator::runValidateBefore($validators, 'insert', $row)) { $rs = $db->query($sql); $sql = $db->getInsertSQL($rs, $row); LogUtils::log_str($sql); if ($sql && $db->exec($sql)) { if (count($idcnd) == 1) { $sync_item['id'] = $db->lastInsertId(); } $sync_item['succ'] = true; BaseValidator::runValidateAfter($validators, 'insert', $row); } } } } break; case AS_SYNC_ADDED: $count = 0; if (count($idcnd) > 0) { $sql = "select * from sdb_{$table} where {$idcndstr}"; LogUtils::log_str($sql); $count = $db->_count($sql); } if ($count > 0) { if (BaseValidator::runValidateBefore($validators, 'update', $row)) { $rs = $db->query($sql); $sql = $db->getUpdateSql($rs, $row, true); LogUtils::log_str($sql); if ($sql && $db->exec($sql)) { $sync_item['succ'] = true; BaseValidator::runValidateAfter($validators, 'update', $row); } } } else { if (BaseValidator::runValidateBefore($validators, 'insert', $row)) { $sql = "select * from sdb_{$table} where 0=1"; LogUtils::log_str($sql); $rs = $db->query($sql); $sql = $db->getInsertSQL($rs, $row); LogUtils::log_str($sql); if ($sql && $db->exec($sql)) { if (count($idcnd) == 1) { $sync_item['id'] = $db->lastInsertId(); } $sync_item['succ'] = true; BaseValidator::runValidateAfter($validators, 'insert', $row); } } } break; } LogUtils::log_obj($sync_item); $syncitems[] = $sync_item; } } $pack = array('items' => $syncitems); LogUtils::log_str('UploadRecord Return'); return $pack; }
function validateUpdateBefore(&$row) { if (isset($row['disabled'])) { $row['disabled'] = $row['disabled'] ? 'true' : 'false'; } if (isset($row['marketable'])) { $row['marketable'] = $row['marketable'] ? 'true' : 'false'; } if (isset($row['udfimg'])) { $row['udfimg'] = $row['udfimg'] ? 'true' : 'false'; } if (isset($row['score_setting']) && empty($row['score_setting'])) { $row['score_setting'] = 'number'; } if (isset($row['goods_type']) && empty($row['goods_type'])) { $row['goods_type'] = 'normal'; } if (isset($row['last_modify']) && empty($row['last_modify'])) { $row['last_modify'] = time(); } unset($row['buy_count']); unset($row['buy_w_count']); unset($row['notify_num']); unset($row['comments_count']); unset($row['view_w_count']); unset($row['view_count']); unset($row['buy_w_count']); unset($row['rank']); unset($row['rank_count']); unset($row['goods_info_update_status']); unset($row['stock_update_status']); unset($row['marketable_update_status']); unset($row['img_update_status']); if (isset($row['bn']) && isset($row['goods_id'])) { $r = $this->_db->selectrow("select count(*) recordcount from " . $this->_tbpre . "goods where goods_id!=" . $this->_db->quote($row['goods_id']) . " and bn=" . $this->_db->quote($row['bn'])); if ($r && $r['recordcount'] > 0) { $row['bn'] = $this->genGoodsBn($row); } LogUtils::log_str($row['bn']); } LogUtils::log_obj($row); return true; }