264 lines
7.9 KiB
PHP
Raw Permalink Normal View History

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 应用公共文件
use think\facade\Config;
function get_mail_item_array($item_string)
{
$key = ['item_id', 'item_count'];
foreach(explode('|', $item_string) as $vo) {
$result[] = array_combine($key, explode(',', $vo));
}
return $result;
}
function searchServerArray($server_id){
$array = Config::get('game.server');
foreach($array as $key=>$value){
if($value['id']==$server_id){
return ($array[$key]);
} else {
return false;
}
}
}
function array_string($array, $field)
{
$array = array_column($array,$field);
$string = implode(',',$array);
return $string;
}
if (!function_exists('get_role_agency_info')) {
function get_role_agency_info(int $role_id)
{
$result = \think\Db::view(['qy_role' => 'role'], 'roleid,accountid')
->view(['qy_account' => 'account'], 'accountid,account,invite', 'account.accountid=role.accountid')
->view(['agency_admin_user' => 'agency'], 'username as agency_account,invite', 'agency.invite=account.invite')
->where(['role.roleid' => $role_id])
->find();
return $result;
}
}
if (!function_exists('get_role_agency_account')) {
function get_role_agency_account(int $role_id)
{
$result = \think\Db::view(['qy_role' => 'role'], 'roleid')
->view(['qy_account' => 'account'], 'accountid', 'account.accountid=role.accountid')
->view(['agency_admin_user' => 'agency'], 'username as agency_account', 'agency.invite=account.invite')
->where(['role.roleid' => $role_id])
->find();
if (isset($result['agency_account'])) {
return $result['agency_account'];;
} else {
return false;
}
}
}
if (!function_exists('get_agency_info')) {
function get_agency_info($agency_id) {
$result = \think\Db::name('admin_user')->whereIn('id', $agency_id)->find();
return $result;
}
}
if (!function_exists('mend_invite_length')) {
function mend_invite_length($invite)
{
if (strlen($invite) != 5) {
$result = str_pad($invite, 5, 0, STR_PAD_LEFT);
} else {
$result = $invite;
}
return $result;
}
}
if (!function_exists('get_middle_str')) {
/**
* 获取两个字符串中间的字符
* @param $str
* @param $leftStr
* @param $rightStr
* @return bool|string
*/
function get_middle_str($str, $leftStr, $rightStr)
{
$left = strpos($str, $leftStr);
$right = strpos($str, $rightStr, $left);
if ($right < $left || $left < 0) {
return '';
}
return substr($str, $left + strlen($leftStr), $right - $left - strlen($leftStr));
}
}
if (!function_exists('get_rand_str')) {
/**
* 生产随机数
* @param integer $length 随机数长度
* @param integer $style 产生随机数方法默认4
* @return integer 返回根据规则产生的指定随机数
* Author修缘
* 联系QQ278896498
* Date: 2021/12/24 4:20
*/
function get_rand_str($length = 5, $style = 5)
{
switch ($style) {
case 1:
$arr = range(0, 9);
break;
case 2:
$arr = array_merge(range('a', 'z'), range('A', 'Z'));
break;
case 3:
$arr = array_merge(range('a', 'z'), range(0, 9));
break;
case 4:
$arr = array_merge(range('A', 'Z'), range(0, 9));
break;
case 5:
$arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
break;
case 6:
$arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9), ['!', '@', '#', '$', '%', '^', '&', '*']);
break;
case 7:
$arr = array_merge(range('A', 'Z'));
break;
default:
$arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9), ['!', '@', '#', '$', '%', '^', '&', '*']);
}
shuffle($arr);
$sub_arr = array_slice($arr, 0, $length);
return implode($sub_arr);
}
}
if (!function_exists('format_size')) {
/**
* 格式化文件大小单位
* @param $size
* @param string $delimiter
* @return string
*/
function format_size($size, $delimiter = '')
{
$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
for ($i = 0; $size >= 1024 && $i < 5; $i++) {
$size /= 1024;
}
return round($size, 2) . $delimiter . $units[$i];
}
}
if (!function_exists('setting')) {
/**
* 设置相关助手函数
* @param string $name
* @param null $value
* @return array|bool|mixed|null
*/
function setting($name = '', $value = null)
{
if ($value === null && is_string($name)) {
//获取一级配置
if ('.' === substr($name, -1)) {
$result = Config::pull(substr($name, 0, -1));
if (count($result) == 0) {
//如果文件不存在,查找数据库
$result = get_database_setting(substr($name, 0, -1));
}
return $result;
}
//判断配置是否存在或读取配置
if (0 === strpos($name, '?')) {
$result = Config::has(substr($name, 1));
if (!$result) {
//如果配置不存在,查找数据库
if ($name && false === strpos($name, '.')) {
return [];
}
if ('.' === substr($name, -1)) {
return get_database_setting(substr($name, 0, -1));
}
$name = explode('.', $name);
$name[0] = strtolower($name[0]);
$result = get_database_setting($name[0]);
if ($result) {
$config = $result;
// 按.拆分成多维数组进行判断
foreach ($name as $val) {
if (isset($config[$val])) {
$config = $config[$val];
} else {
return null;
}
}
return $config;
}
return $result;
}
return $result;
}
$result = Config::get($name);
if (!$result) {
$result = get_database_setting($name);
}
return $result;
}
return Config::set($name, $value);
}
}
if (!function_exists('get_database_setting')) {
function get_database_setting($name)
{
$result = [];
$group = \app\common\model\SettingGroup::where('code', $name)->find();
if ($group) {
$result = [];
foreach ($group->setting as $key => $setting) {
$key_setting = [];
foreach ($setting->content as $content) {
$key_setting[$content['field']] = $content['content'];
}
$result[$setting->code] = $key_setting;
}
}
return $result;
}
}