master
parent
53e0395674
commit
37ef999710
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* 定时自动完成
|
||||
*/
|
||||
namespace Admin\Controller;
|
||||
use Admin\Model\SpendModel;
|
||||
use Think\Think;
|
||||
use Org\RedisSDK\Redis;
|
||||
|
||||
class AutoController extends Think {
|
||||
|
||||
protected function _initialize()
|
||||
{
|
||||
C(api('Config/lists'));
|
||||
}
|
||||
|
||||
public function modifyUserRole()
|
||||
{
|
||||
M('user_play_info', 'tab_')->select(['game_id', 'server_id', 'role_id'])->group('game_id, server_id, role_id')->having('count(*)>1')->select();
|
||||
|
||||
}
|
||||
|
||||
public function modifyRecharge()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
namespace Base\Tool;
|
||||
|
||||
class Base62
|
||||
{
|
||||
const ENCODES = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
|
||||
|
||||
private static function getCharArray($string)
|
||||
{
|
||||
$list = [];
|
||||
$length = strlen($string);
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$list[] = $string[$i];
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
private static function getIndexChars($string) {
|
||||
$length = strlen($string);
|
||||
$chars = [];
|
||||
for($i = 0; $i < 256; $i++) {
|
||||
$chars[] = 0;
|
||||
}
|
||||
for($i = 0; $i < $length; $i++) {
|
||||
$chars[$string[$i]] = $i ;
|
||||
}
|
||||
return $chars;
|
||||
}
|
||||
|
||||
public static function encode($string)
|
||||
{
|
||||
$encodes = self::getCharArray(self::ENCODES);
|
||||
$bytes = self::stringToBytes($string);
|
||||
|
||||
$pos = 0;
|
||||
$val = 0;
|
||||
$result = [];
|
||||
for ($i = 0; $i < count($bytes); $i++) {
|
||||
$val = ($val << 8) | ($bytes[$i] & 0xFF);
|
||||
$pos += 8;
|
||||
while ($pos > 5) {
|
||||
$char = $encodes[$val >> ($pos -= 6)];
|
||||
$result[] = (
|
||||
$char == 'i' ? "ia" :
|
||||
$char == '+' ? "ib" :
|
||||
$char == '/' ? "ic" : $char
|
||||
);
|
||||
$val &= ((1 << $pos) - 1);
|
||||
}
|
||||
}
|
||||
if ($pos > 0) {
|
||||
$char = $encodes[$val << (6 - $pos)];
|
||||
$result[] = (
|
||||
$char == 'i' ? "ia" :
|
||||
$char == '+' ? "ib" :
|
||||
$char == '/' ? "ic" : $char
|
||||
);
|
||||
}
|
||||
return implode('', $result);
|
||||
}
|
||||
|
||||
public static function decode($string, $decodes)
|
||||
{
|
||||
$decodes = self::getIndexChars(self::ENCODES);
|
||||
$chars = self::getCharArray($string);
|
||||
$pos = 0;
|
||||
$val = 0;
|
||||
$bytes = [];
|
||||
for ($i = 0; $i < count($chars); $i++) {
|
||||
$char = $chars[$i];
|
||||
if ($char == 'i') {
|
||||
$char = $chars[++$i];
|
||||
$char =
|
||||
$char == 'a' ? 'i' :
|
||||
$char == 'b' ? '+' :
|
||||
$char == 'c' ? '/' : $chars[--$i];
|
||||
}
|
||||
$val = ($val << 6) | $decodes[$char];
|
||||
$pos += 6;
|
||||
while ($pos > 7) {
|
||||
$bytes[] = $val >> ($pos -= 8);
|
||||
$val &= ((1 << $pos) - 1);
|
||||
}
|
||||
}
|
||||
return self::bytesToString($bytes);
|
||||
}
|
||||
|
||||
private static function bytesToString($bytes) {
|
||||
$string = '';
|
||||
foreach($bytes as $byte) {
|
||||
$string .= chr($byte);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
private static function stringToBytes($string) {
|
||||
$length = strlen($string);
|
||||
$bytes = array();
|
||||
for($i = 0; $i < $length; $i++) {
|
||||
if(ord($string[$i]) >= 128){
|
||||
$byte = ord($string[$i]) - 256;
|
||||
}else{
|
||||
$byte = ord($string[$i]);
|
||||
}
|
||||
$bytes[] = $byte ;
|
||||
}
|
||||
return $bytes;
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
namespace Base\Tool;
|
||||
|
||||
class Printer
|
||||
{
|
||||
public static function export($content, $isExit = false)
|
||||
{
|
||||
echo $content . ' ----- ' . date('Y-m-d H:i:s') . PHP_EOL;
|
||||
if ($isExit) {
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue