You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/dingdingcallback/util/Cache.php

232 lines
6.0 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
class Cache
{
public static function setSuiteTicket($ticket)
{
$memcache = self::getMemcache();
$memcache->set("suite_ticket", $ticket);
}
public static function getSuiteTicket()
{
$memcache = self::getMemcache();
return $memcache->get("suite_ticket");
}
public static function setJsTicket($key,$ticket)
{
$memcache = self::getMemcache();
$memcache->set($key, $ticket, 0, time() + 7000); // js ticket有效期为7200秒这里设置为7000秒
}
public static function getJsTicket($key)
{
$memcache = self::getMemcache();
return $memcache->get($key);
}
public static function setSuiteAccessToken($accessToken)
{
$memcache = self::getMemcache();
$memcache->set("suite_access_token", $accessToken, 0, time() + 7000); // suite access token有效期为7200秒这里设置为7000秒
}
public static function getSuiteAccessToken()
{
$memcache = self::getMemcache();
return $memcache->get("suite_access_token");
}
public static function setIsvCorpAccessToken($key,$accessToken)
{
$memcache = self::getMemcache();
$memcache->set($key, $accessToken, 0, time() + 7000);
}
public static function getIsvCorpAccessToken($key)
{
$memcache = self::getMemcache();
return $memcache->get($key);
}
public static function setTmpAuthCode($tmpAuthCode){
$memcache = self::getMemcache();
$memcache->set("tmp_auth_code", $tmpAuthCode);
}
public static function getTmpAuthCode(){
$memcache = self::getMemcache();
return $memcache->get("tmp_auth_code");
}
public static function setPermanentCode($key,$value){
$memcache = self::getMemcache();
$memcache->set($key, $value);
}
public static function getPermanentCode($key){
$memcache = self::getMemcache();
return $memcache->get($key);
}
public static function setActiveStatus($corpKey){
$memcache = self::getMemcache();
$memcache->set($corpKey,100);
}
public static function getActiveStatus($key){
$memcache = self::getMemcache();
return $memcache->get($key);
}
public static function setCorpInfo($data){
$memcache = self::getMemcache();
$memcache->set('dingding_corp_info',$data);
}
public static function getCorpInfo(){
$memcache = self::getMemcache();
$corpInfo = $memcache->get('dingding_corp_info');
return $corpInfo;
}
public static function setAuthInfo($key,$authInfo){
$memcache = self::getMemcache();
$memcache->set($key,$authInfo);
}
public static function getAuthInfo($key){
$memcache = self::getMemcache();
return $memcache->get($key);
}
public static function removeByKeyArr($arr){
$memcache = self::getMemcache();
foreach($arr as $a){
$memcache->set($a,'');
}
}
private static function getMemcache()
{
/*if (class_exists("Memcache"))
{
$memcache = new Memcache;
if ($memcache->connect('localhost', 11211))
{
return $memcache;
}
}*/
return new FileCache;
}
public static function get($key)
{
return self::getMemcache()->get($key);
}
public static function set($key, $value)
{
self::getMemcache()->set($key, $value);
}
}
/**
* fallbacks
*/
class FileCache
{
function __call($name, $args)
{
if($name=='set')
{
switch(count($args))
{
case 0:break;
case 1: break;
case 2: $this->setComm($args[0], $args[1]); break;
case 4: $this->setLimit($args[0], $args[1],$args[2],$args[3]); break;
default: //do something
break;
}
}
}
function setComm($key, $value)
{
if($key){
$data = json_decode($this->get_file(DIR_ROOT ."filecache.php"),true);
if(!$value){
unset($data["$key"]);
}else{
$item = array();
$item["$key"] = $value;
$item['expire_time'] = 0;
$item['create_time'] = time();
$data["$key"] = $item;
}
$this->set_file("filecache.php",json_encode($data));
}
}
function setLimit($key, $value,$tag,$time)
{
if($key){
$data = json_decode($this->get_file(DIR_ROOT ."filecache.php"),true);
if(!$value){
unset($data["$key"]);
}else{
$item = array();
$item["$key"] = $value;
$item['expire_time'] = $time;
$item['create_time'] = time();
$data["$key"] = $item;
}
$this->set_file("filecache.php",json_encode($data));
}
}
function get($key)
{
if($key){
$data = json_decode($this->get_file(DIR_ROOT ."filecache.php"),true);
if($data&&array_key_exists($key,$data)){
$item = $data["$key"];
if(!$item){
return false;
}
if($item['expire_time']>0&&$item['expire_time'] < time()){
return false;
}
return $item["$key"];
}else{
return false;
}
}
}
function get_file($filename) {
if (!file_exists($filename)) {
$fp = fopen($filename, "w");
fwrite($fp, "<?php exit();?>" . '');
fclose($fp);
return false;
}else{
$content = trim(substr(file_get_contents($filename), 15));
}
return $content;
}
function set_file($filename, $content) {
$fp = fopen($filename, "w");
fwrite($fp, "<?php exit();?>" . $content);
fclose($fp);
}
}