语言读取支持插件自动识别,用户登录信息读取优化,插件管理支持新标签
parent
4279ae4b91
commit
c348d32266
|
|
@ -69,7 +69,7 @@
|
|||
<a href="{{:MyUrl('admin/pluginsadmin/download', array('id'=>$v['plugins']))}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-download" title="{{:MyLang('download_title')}}"></a>
|
||||
{{/if}}
|
||||
|
||||
<a href="javascript:;" data-set-url="{{:PluginsAdminUrl($v['plugins'], 'admin', 'index')}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-gear plugins-set-event" title="{{:MyLang('setup_title')}}"></a>
|
||||
<a href="javascript:;" data-set-url="{{:PluginsAdminUrl($v['plugins'], 'admin', 'index')}}" data-name="{{$v.name}}" data-key="{{$v.plugins}}" class="am-btn am-btn-default am-btn-xs am-radius am-icon-gear plugins-set-event" title="{{:MyLang('setup_title')}}"></a>
|
||||
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-circle-o submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/uninstall')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="{{:MyLang('pluginsadmin.uninstall_confirm_tips')}}" title="{{:MyLang('uninstall_title')}}"></button>
|
||||
|
||||
|
|
|
|||
|
|
@ -639,5 +639,111 @@ class Devtest extends Common
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 地区导入
|
||||
public function Region()
|
||||
{
|
||||
die('禁止访问');
|
||||
// $save_file = ROOT.'region_text.text';
|
||||
// excel读取
|
||||
// // 获取导入数据
|
||||
// $file = ROOT.'KEN_ALL_ROME.xlsx';
|
||||
// $ret = (new \base\Excel())->Import($file);
|
||||
// if($ret['code'] != 0)
|
||||
// {
|
||||
// die($ret['msg']);
|
||||
// }
|
||||
// if(empty($ret['data']) || empty($ret['data']['title']) || empty($ret['data']['data']))
|
||||
// {
|
||||
// die('导入数据为空');
|
||||
// }
|
||||
// // 数据组合
|
||||
// $data = [];
|
||||
// foreach(array_chunk($ret['data']['data'], 1000) as $v)
|
||||
// {
|
||||
// foreach($v as $vs)
|
||||
// {
|
||||
// if(!array_key_exists($vs[1], $data))
|
||||
// {
|
||||
// $data[$vs[1]] = [
|
||||
// 'name' =>$vs[1],
|
||||
// 'code' => '',
|
||||
// 'item' => [],
|
||||
// ];
|
||||
// }
|
||||
// $temp = str_replace([' ', ' '], '', $vs[2]);
|
||||
// if(!array_key_exists($temp, $data[$vs[1]]['item']))
|
||||
// {
|
||||
// $data[$vs[1]]['item'][$temp] = [
|
||||
// 'name' => $temp,
|
||||
// 'code' => '',
|
||||
// 'item' => [],
|
||||
// ];
|
||||
// }
|
||||
// $temp2 = explode('(', $vs[3]);
|
||||
// if(!array_key_exists($temp2[0], $data[$vs[1]]['item'][$temp]['item']))
|
||||
// {
|
||||
// $data[$vs[1]]['item'][$temp]['item'][$temp2[0]] = [
|
||||
// 'name' => $temp2[0],
|
||||
// 'code' => $vs[0],
|
||||
// ];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// file_put_contents($save_file, json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
|
||||
// echo 'ok';
|
||||
// echo '<pre>';
|
||||
// print_r($data);
|
||||
|
||||
// 导入
|
||||
// $data = json_decode(file_get_contents($save_file), true);
|
||||
// // echo '<pre>';
|
||||
// // print_r($data);
|
||||
// foreach(array_chunk($data, 50) as $v)
|
||||
// {
|
||||
// foreach($v as $v1)
|
||||
// {
|
||||
// $insert = [
|
||||
// 'name' => $v1['name'],
|
||||
// 'code' => empty($v1['code']) ? '' : $v1['code'],
|
||||
// 'level' => 1,
|
||||
// 'add_time' => time(),
|
||||
// ];
|
||||
// $id1 = Db::name('Region')->insertGetId($insert);
|
||||
// if($id1 > 0 && !empty($v1['item']))
|
||||
// {
|
||||
// foreach($v1['item'] as $v2)
|
||||
// {
|
||||
// $insert = [
|
||||
// 'pid' => $id1,
|
||||
// 'name' => $v2['name'],
|
||||
// 'code' => empty($v2['code']) ? '' : $v2['code'],
|
||||
// 'level' => 2,
|
||||
// 'add_time' => time(),
|
||||
// ];
|
||||
// $id2 = Db::name('Region')->insertGetId($insert);
|
||||
// if($id2 > 0 && !empty($v2['item']))
|
||||
// {
|
||||
// $all = [];
|
||||
// foreach($v2['item'] as $v3)
|
||||
// {
|
||||
// $all[] = [
|
||||
// 'pid' => $id2,
|
||||
// 'name' => $v3['name'],
|
||||
// 'code' => empty($v3['code']) ? '' : $v3['code'],
|
||||
// 'level' => 3,
|
||||
// 'add_time' => time(),
|
||||
// ];
|
||||
// }
|
||||
// Db::name('Region')->insertAll($all);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// echo 'ok';
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -195,14 +195,40 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
|
|||
APP_PATH.$request_module.DS.'lang'.DS.$current_lang.'.php',
|
||||
APP_PATH.'lang'.DS.$current_lang.'.php',
|
||||
];
|
||||
// 是否插件语言
|
||||
if(!empty($plugins) || RequestController() == 'plugins')
|
||||
|
||||
// 是否插件语言、未指定则处理
|
||||
if(empty($plugins))
|
||||
{
|
||||
$pluginsname = MyInput('pluginsname');
|
||||
if(empty($pluginsname) && RequestController() != 'plugins')
|
||||
{
|
||||
// 获取最新一条回溯跟踪
|
||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
|
||||
if(!empty($backtrace) && !empty($backtrace[0]) && !empty($backtrace[0]['file']))
|
||||
{
|
||||
$str = 'app/plugins/';
|
||||
$loc = stripos($backtrace[0]['file'], $str);
|
||||
if($loc !== false)
|
||||
{
|
||||
$temp = explode($str, $backtrace[0]['file']);
|
||||
if(count($temp) > 1)
|
||||
{
|
||||
$pluginsname = explode('/', $temp[1])[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$pluginsname = $plugins;
|
||||
}
|
||||
if(!empty($pluginsname))
|
||||
{
|
||||
$pluginsname = empty($plugins) ? MyInput('pluginsname') : $plugins;
|
||||
$plugins_dir = APP_PATH.'plugins'.DS.$pluginsname.DS.'lang'.DS;
|
||||
array_unshift($arr_file, $plugins_dir.$current_lang.'.php');
|
||||
array_unshift($arr_file, $plugins_dir.$request_module.DS.$current_lang.'.php');
|
||||
}
|
||||
|
||||
// 循环获取语言时间
|
||||
foreach($arr_file as $file)
|
||||
{
|
||||
$md5_key = md5($file);
|
||||
|
|
@ -248,13 +274,13 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
|
|||
}
|
||||
|
||||
// 未找到对应语言
|
||||
if($value == '' || $key == $value)
|
||||
if($value == '')
|
||||
{
|
||||
// 非默认语言则读取默认语言
|
||||
$default_lang = MyConfig('lang.default_lang');
|
||||
if($default_lang != $lang)
|
||||
{
|
||||
$value = MyLang($key, $vars, $default_lang);
|
||||
$value = MyLang($key, $vars, $default_lang, $pluginsname);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2937,7 +2963,7 @@ function ParamsChecked($data, $params)
|
|||
return MyLang('common_function.check_config_error_tips');
|
||||
}
|
||||
|
||||
foreach ($params as $v)
|
||||
foreach($params as $v)
|
||||
{
|
||||
if(empty($v['key_name']) || empty($v['error_msg']))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class AppMiniUserService
|
|||
if($ret['code'] == 0)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'alipay_openid', $ret['data']['user_id']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'alipay_openid', 'where_value'=>$ret['data']['user_id']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['user_id']]);
|
||||
|
|
@ -116,7 +116,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'alipay_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'alipay_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
// 字段名称不一样参数处理
|
||||
|
|
@ -162,11 +162,11 @@ class AppMiniUserService
|
|||
$unionid = empty($ret['data']['unionid']) ? '' : $ret['data']['unionid'];
|
||||
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'weixin_openid', $ret['data']['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'weixin_openid', 'where_value'=>$ret['data']['openid']]);
|
||||
if(empty($user) && !empty($unionid))
|
||||
{
|
||||
// 根据unionid获取数据
|
||||
$user = UserService::AppUserInfoHandle(null, 'weixin_unionid', $unionid);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'weixin_unionid', 'where_value'=>$unionid]);
|
||||
}
|
||||
if(empty($user))
|
||||
{
|
||||
|
|
@ -200,7 +200,7 @@ class AppMiniUserService
|
|||
// 是否重新获取用户信息
|
||||
if($status)
|
||||
{
|
||||
$user = UserService::AppUserInfoHandle($user['id']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -247,7 +247,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'weixin_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'weixin_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
// 字段名称不一样参数处理
|
||||
|
|
@ -295,7 +295,7 @@ class AppMiniUserService
|
|||
if($ret['code'] == 0)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $ret['data']['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'baidu_openid', 'where_value'=>$ret['data']['openid']]);
|
||||
if(!empty($user))
|
||||
{
|
||||
// 用户状态
|
||||
|
|
@ -341,7 +341,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'baidu_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$auth_data = is_array($params['auth_data']) ? $params['auth_data'] : json_decode(htmlspecialchars_decode($params['auth_data']), true);
|
||||
|
|
@ -418,11 +418,11 @@ class AppMiniUserService
|
|||
$unionid = empty($ret['data']['unionid']) ? '' : $ret['data']['unionid'];
|
||||
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $ret['data']['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'toutiao_openid', 'where_value'=>$ret['data']['openid']]);
|
||||
if(empty($user) && !empty($unionid))
|
||||
{
|
||||
// 根据unionid获取数据
|
||||
$user = UserService::AppUserInfoHandle(null, 'toutiao_unionid', $unionid);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'toutiao_unionid', 'where_value'=>$unionid]);
|
||||
}
|
||||
if(empty($user))
|
||||
{
|
||||
|
|
@ -447,7 +447,7 @@ class AppMiniUserService
|
|||
// 是否重新获取用户信息
|
||||
if($status)
|
||||
{
|
||||
$user = UserService::AppUserInfoHandle($user['id']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -494,7 +494,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'toutiao_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$auth_data = is_array($params['auth_data']) ? $params['auth_data'] : json_decode(htmlspecialchars_decode($params['auth_data']), true);
|
||||
|
|
@ -538,7 +538,7 @@ class AppMiniUserService
|
|||
if($ret['code'] == 0)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'kuaishou_openid', $ret['data']['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'kuaishou_openid', 'where_value'=>$ret['data']['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid']]);
|
||||
|
|
@ -584,7 +584,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'kuaishou_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'kuaishou_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$auth_data = is_array($params['auth_data']) ? $params['auth_data'] : json_decode(htmlspecialchars_decode($params['auth_data']), true);
|
||||
|
|
@ -630,11 +630,11 @@ class AppMiniUserService
|
|||
$unionid = empty($ret['data']['unionid']) ? '' : $ret['data']['unionid'];
|
||||
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $ret['data']['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'qq_openid', 'where_value'=>$ret['data']['openid']]);
|
||||
if(empty($user) && !empty($unionid))
|
||||
{
|
||||
// 根据unionid获取数据
|
||||
$user = UserService::AppUserInfoHandle(null, 'qq_unionid', $unionid);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'qq_unionid', 'where_value'=>$unionid]);
|
||||
}
|
||||
if(empty($user))
|
||||
{
|
||||
|
|
@ -659,7 +659,7 @@ class AppMiniUserService
|
|||
// 是否重新获取用户信息
|
||||
if($status)
|
||||
{
|
||||
$user = UserService::AppUserInfoHandle($user['id']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -709,7 +709,7 @@ class AppMiniUserService
|
|||
if($ret === true)
|
||||
{
|
||||
// 先从数据库获取用户信息
|
||||
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $params['openid']);
|
||||
$user = UserService::AppUserInfoHandle(['where_field'=>'qq_openid', 'where_value'=>$params['openid']]);
|
||||
if(empty($user))
|
||||
{
|
||||
$auth_data = is_array($params['auth_data']) ? $params['auth_data'] : json_decode(htmlspecialchars_decode($params['auth_data']), true);
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ class PayLogService
|
|||
'status' => 1,
|
||||
'pay_time' => time(),
|
||||
];
|
||||
if(Db::name('PayLog')->where(['id'=>intval($params['log_id']), 'status'=>0])->update($data))
|
||||
if(Db::name('PayLog')->where(['id'=>intval($params['log_id']), 'status'=>0])->update($data) !== false)
|
||||
{
|
||||
return DataReturn(MyLang('update_success'), 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ class SystemBaseService
|
|||
}
|
||||
|
||||
/**
|
||||
* 商品优化记录
|
||||
* 商品优惠记录
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
|
|
|
|||
|
|
@ -235,32 +235,38 @@ class UserService
|
|||
{
|
||||
// 静态数据避免重复读取
|
||||
static $user_login_info = null;
|
||||
if($user_login_info === null)
|
||||
if($user_login_info === null && $is_cache)
|
||||
{
|
||||
$user_login_info = self::CacheLoginUserInfo();
|
||||
}
|
||||
// 非退出操作则重新设置用户信息
|
||||
if(!empty($user_login_info) && RequestAction() != 'logout')
|
||||
|
||||
// 缓存为空则重新读取
|
||||
if(empty($user_login_info))
|
||||
{
|
||||
// 是否缓存读取
|
||||
if($is_cache)
|
||||
if(APPLICATION == 'web')
|
||||
{
|
||||
// 重新更新用户session或cookie缓存
|
||||
self::UserLoginRecord($user_login_info['id']);
|
||||
// 重新存储用户缓存
|
||||
if(!empty($user_login_info['token']))
|
||||
{
|
||||
MyCache(SystemService::CacheKey('shopxo.cache_user_info').$user_login_info['token'], $user_login_info);
|
||||
}
|
||||
// web用户session
|
||||
$user_login_info = MySession(self::$user_login_key);
|
||||
} else {
|
||||
if(APPLICATION == 'web')
|
||||
$params = input();
|
||||
if(!empty($params['token']))
|
||||
{
|
||||
self::UserLoginRecord($user_login_info['id']);
|
||||
} else {
|
||||
$user_login_info = self::UserTokenData($user_login_info['token']);
|
||||
$user_login_info = self::UserTokenData($params['token']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 非退出操作则重新设置用户信息
|
||||
if(!empty($user_login_info) && RequestAction() != 'logout' && MyInput('pluginsaction') != 'logout')
|
||||
{
|
||||
// 重新更新用户session或cookie缓存
|
||||
self::UserLoginRecord($user_login_info['id']);
|
||||
// 重新存储用户缓存
|
||||
if(!empty($user_login_info['token']))
|
||||
{
|
||||
MyCache(SystemService::CacheKey('shopxo.cache_user_info').$user_login_info['token'], $user_login_info);
|
||||
}
|
||||
}
|
||||
return $user_login_info;
|
||||
}
|
||||
|
||||
|
|
@ -283,7 +289,7 @@ class UserService
|
|||
}
|
||||
|
||||
// 数据库校验
|
||||
return self::AppUserInfoHandle(null, 'token', $token);
|
||||
return self::AppUserInfoHandle(['where_field'=>'token', 'where_value'=>$token, 'is_refresh_token'=>0]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1323,7 +1329,7 @@ class UserService
|
|||
// 成功返回
|
||||
if(APPLICATION == 'app')
|
||||
{
|
||||
$result = self::AppUserInfoHandle(0, null, null, $user);
|
||||
$result = self::AppUserInfoHandle(['user'=>$user]);
|
||||
} else {
|
||||
// 登录记录
|
||||
if(!self::UserLoginRecord(0, $user))
|
||||
|
|
@ -1489,7 +1495,7 @@ class UserService
|
|||
// 成功返回
|
||||
if(APPLICATION == 'app')
|
||||
{
|
||||
$result = self::AppUserInfoHandle($user_ret['data']['user_id']);
|
||||
$result = self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user_ret['data']['user_id']]);
|
||||
} else {
|
||||
$result = $user_ret['data'];
|
||||
}
|
||||
|
|
@ -2217,7 +2223,7 @@ class UserService
|
|||
];
|
||||
if(Db::name('User')->where(['id'=>$user['id']])->update($upd_data))
|
||||
{
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle($user['id']));
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user['id']]));
|
||||
}
|
||||
} else {
|
||||
if($user['id'] != $temp['id'])
|
||||
|
|
@ -2277,7 +2283,7 @@ class UserService
|
|||
}
|
||||
}
|
||||
}
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle($unionid_user_base['id']));
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$unionid_user_base['id']]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2309,7 +2315,7 @@ class UserService
|
|||
}
|
||||
if(self::UserPlatformInsert($user_platform_insert, $params))
|
||||
{
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle($user['id']));
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user['id']]));
|
||||
}
|
||||
} else {
|
||||
$is_insert_user = true;
|
||||
|
|
@ -2334,11 +2340,11 @@ class UserService
|
|||
{
|
||||
return DataReturn(MyLang('common_service.user.user_not_audit_tips'), -110);
|
||||
}
|
||||
return DataReturn(MyLang('auth_success'), 0, self::AppUserInfoHandle($ret['data']['user_id']));
|
||||
return DataReturn(MyLang('auth_success'), 0, self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$ret['data']['user_id']]));
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
return DataReturn(MyLang('auth_success'), 0, self::AppUserInfoHandle(null, null, null, $data));
|
||||
return DataReturn(MyLang('auth_success'), 0, self::AppUserInfoHandle(['user'=>$data]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2421,38 +2427,38 @@ class UserService
|
|||
* @version 1.0.0
|
||||
* @date 2018-11-06
|
||||
* @desc description
|
||||
* @param [int] $user_id [指定用户id]
|
||||
* @param [string] $where_field [字段名称]
|
||||
* @param [string] $where_value [字段值]
|
||||
* @param [array] $user [用户信息]
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function AppUserInfoHandle($user_id = null, $where_field = null, $where_value = null, $user = [])
|
||||
public static function AppUserInfoHandle($params = [])
|
||||
{
|
||||
// 获取用户信息
|
||||
if(!empty($user_id))
|
||||
if(!empty($params['user_id']))
|
||||
{
|
||||
$user = self::UserHandle(self::UserInfo('id', $user_id));
|
||||
} elseif(!empty($where_field) && !empty($where_value) && empty($user))
|
||||
$params['user'] = self::UserHandle(self::UserInfo('id', $params['user_id']));
|
||||
} elseif(!empty($params['where_field']) && !empty($params['where_value']) && empty($params['user']))
|
||||
{
|
||||
$user = self::UserHandle(self::UserInfo($where_field, $where_value));
|
||||
$params['user'] = self::UserHandle(self::UserInfo($params['where_field'], $params['where_value']));
|
||||
}
|
||||
|
||||
if(!empty($user))
|
||||
if(!empty($params['user']))
|
||||
{
|
||||
// 是否强制绑定手机号码
|
||||
$user['is_mandatory_bind_mobile'] = intval(MyC('common_user_is_mandatory_bind_mobile'));
|
||||
$params['user']['is_mandatory_bind_mobile'] = intval(MyC('common_user_is_mandatory_bind_mobile'));
|
||||
|
||||
// 基础处理
|
||||
if(!empty($user['id']))
|
||||
if(!empty($params['user']['id']))
|
||||
{
|
||||
// 会员码生成处理
|
||||
if(empty($user['number_code']))
|
||||
if(empty($params['user']['number_code']))
|
||||
{
|
||||
$user['number_code'] = self::UserNumberCodeCreatedHandle($user['id']);
|
||||
$params['user']['number_code'] = self::UserNumberCodeCreatedHandle($params['user']['id']);
|
||||
}
|
||||
|
||||
// 重新生成token更新到数据库并缓存
|
||||
$user = self::UserTokenUpdate($user['id'], $user);
|
||||
if(!isset($params['is_refresh_token']) || $params['is_refresh_token'] == 1)
|
||||
{
|
||||
$params['user'] = self::UserTokenUpdate($params['user']['id'], $params['user']);
|
||||
}
|
||||
}
|
||||
|
||||
// 用户信息钩子
|
||||
|
|
@ -2460,13 +2466,12 @@ class UserService
|
|||
MyEventTrigger($hook_name, [
|
||||
'hook_name' => $hook_name,
|
||||
'is_backend' => true,
|
||||
'user_id' => $user_id,
|
||||
'where_field' => $where_field,
|
||||
'where_value' => $where_value,
|
||||
'user' => &$user,
|
||||
'user_id' => $params['user']['id'],
|
||||
'user' => &$params['user'],
|
||||
'params' => $params,
|
||||
]);
|
||||
}
|
||||
return $user;
|
||||
return $params['user'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2917,7 +2922,7 @@ class UserService
|
|||
{
|
||||
// 清除验证码
|
||||
$obj->Remove();
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle($user_id));
|
||||
return DataReturn(MyLang('bind_success'), 0, self::AppUserInfoHandle(['where_field'=>'user_id', 'where_value'=>$user_id]));
|
||||
}
|
||||
return DataReturn(MyLang('bind_fail'), -100);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class WalletPay
|
|||
// 基础信息
|
||||
$base = [
|
||||
'name' => '钱包支付', // 插件名称
|
||||
'version' => '0.0.3', // 插件版本
|
||||
'version' => '0.0.4', // 插件版本
|
||||
'apply_version' => '不限', // 适用系统版本描述
|
||||
'desc' => '钱包余额支付', // 插件描述(支持html)
|
||||
'author' => 'Devil', // 开发者
|
||||
|
|
@ -122,7 +122,7 @@ class WalletPay
|
|||
}
|
||||
|
||||
// 处理支付
|
||||
$ret = WalletService::UserWalletMoneyUpdate($params['user']['id'], $params['total_price'], 0, 'normal_money', 3, '钱包余额支付[订单'.$params['order_no'].']');
|
||||
$ret = WalletService::UserWalletMoneyUpdate($params['user']['id'], $params['total_price'], 0, 'normal_money', 3, '钱包余额支付[订单'.$params['order_no'].']', ['is_consistent'=>1]);
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
// 支付方式
|
||||
|
|
@ -160,7 +160,7 @@ class WalletPay
|
|||
'order' => $order_list,
|
||||
'payment' => $payment[0],
|
||||
'pay_log_data' => $pay_log_data,
|
||||
'pay' => [
|
||||
'pay' => [
|
||||
'trade_no' => '钱包支付',
|
||||
'subject' => $pay_log_data['subject'],
|
||||
'buyer_user' => (empty($params['user']) || empty($params['user']['user_name_view'])) ? '' : $params['user']['user_name_view'],
|
||||
|
|
|
|||
|
|
@ -182,6 +182,94 @@ function StoreAccountsPopupOpen()
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理顶部菜单添加处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2023-04-24
|
||||
* @desc description
|
||||
* @param {[string]} url [url地址]
|
||||
* @param {[string]} name [展示名称]
|
||||
* @param {[string]} key [唯一key值]
|
||||
* @param {[string]} type [类型 nav 或 menu]
|
||||
* @param {[boolean]} is_reload [重新加载]
|
||||
*/
|
||||
function AdminTopNavIframeAddHandle(url, name, key, type = 'nav', is_reload = false)
|
||||
{
|
||||
if((url || null) != null)
|
||||
{
|
||||
if($('#ifcontent').length > 0)
|
||||
{
|
||||
// 先隐藏所有的iframe
|
||||
// 页面未打开则添加iframe并打开
|
||||
if($('#ifcontent .iframe-item-key-'+key).length == 0)
|
||||
{
|
||||
var html = `<div class="window-layer am-radius am-nbfc iframe-item-key-`+key+`" data-key="`+key+`">
|
||||
<div class="window-layer-tab-bar">
|
||||
<span>`+name+`</span>
|
||||
<div class="am-fr">
|
||||
<span class="refresh am-icon-refresh"></span>
|
||||
<span class="recovery am-icon-eject"></span>
|
||||
<span class="close am-icon-close"></span>
|
||||
</div>
|
||||
</div>
|
||||
<iframe src="`+url+`" width="100%" height="100%"></iframe>
|
||||
<div class="window-layer-seat"></div>
|
||||
<div class="window-layer-resize-bar">
|
||||
<div data-type="left" class="window-layer-resize-item-left"></div>
|
||||
<div data-type="right" class="window-layer-resize-item-right"></div>
|
||||
<div data-type="top" class="window-layer-resize-item-top"></div>
|
||||
<div data-type="bottom" class="window-layer-resize-item-bottom"></div>
|
||||
<div data-type="left-top" class="window-layer-resize-item-left-top"></div>
|
||||
<div data-type="right-top" class="window-layer-resize-item-right-top"></div>
|
||||
<div data-type="left-bottom" class="window-layer-resize-item-left-bottom"></div>
|
||||
<div data-type="right-bottom" class="window-layer-resize-item-right-bottom"></div>
|
||||
</div>
|
||||
</div>`;
|
||||
$('#ifcontent').append(html);
|
||||
} else {
|
||||
if(is_reload)
|
||||
{
|
||||
var $obj = $('#ifcontent .iframe-item-key-'+key+' iframe');
|
||||
$obj.attr('src', $obj.attr('src'));
|
||||
}
|
||||
}
|
||||
|
||||
// 添加快捷导航
|
||||
if($('.header-menu-open-pages-list ul li.nav-item-key-'+key).length == 0)
|
||||
{
|
||||
var html = `<li data-url="`+url+`" data-key="`+key+`" class="nav-item-key-`+key+`">
|
||||
<span>`+name+`</span>
|
||||
<a href="javascript:;" class="am-icon-close"></a>
|
||||
</li>`;
|
||||
$('.header-menu-open-pages-list ul').append(html);
|
||||
}
|
||||
// 模拟点击当前元素
|
||||
$('.header-menu-open-pages-list ul li.nav-item-key-'+key).trigger('click');
|
||||
|
||||
// 顶部菜单事件,关闭弹层
|
||||
if(type == 'nav')
|
||||
{
|
||||
if($(document).width() < 641)
|
||||
{
|
||||
$('.header-nav-submit').trigger('click');
|
||||
} else {
|
||||
$(this).parents('.admin-header-list').trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭左侧弹层
|
||||
if(type == 'menu')
|
||||
{
|
||||
$('#admin-offcanvas').offCanvas('close');
|
||||
}
|
||||
} else {
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(function()
|
||||
{
|
||||
// 插件更新操作事件
|
||||
|
|
|
|||
|
|
@ -62,69 +62,8 @@ $(function()
|
|||
var url = $(this).data('url') || null;
|
||||
var type = $(this).data('type');
|
||||
var key = $(this).data('key');
|
||||
if(url != null)
|
||||
{
|
||||
// 名称
|
||||
var name = $(this).data('node-name') || $(this).find('.nav-name').text();
|
||||
|
||||
// 先隐藏所有的iframe
|
||||
// 页面未打开则添加iframe并打开
|
||||
if($('#ifcontent .iframe-item-key-'+key).length == 0)
|
||||
{
|
||||
var html = `<div class="window-layer am-radius am-nbfc iframe-item-key-`+key+`" data-key="`+key+`">
|
||||
<div class="window-layer-tab-bar">
|
||||
<span>`+name+`</span>
|
||||
<div class="am-fr">
|
||||
<span class="refresh am-icon-refresh"></span>
|
||||
<span class="recovery am-icon-eject"></span>
|
||||
<span class="close am-icon-close"></span>
|
||||
</div>
|
||||
</div>
|
||||
<iframe src="`+url+`" width="100%" height="100%"></iframe>
|
||||
<div class="window-layer-seat"></div>
|
||||
<div class="window-layer-resize-bar">
|
||||
<div data-type="left" class="window-layer-resize-item-left"></div>
|
||||
<div data-type="right" class="window-layer-resize-item-right"></div>
|
||||
<div data-type="top" class="window-layer-resize-item-top"></div>
|
||||
<div data-type="bottom" class="window-layer-resize-item-bottom"></div>
|
||||
<div data-type="left-top" class="window-layer-resize-item-left-top"></div>
|
||||
<div data-type="right-top" class="window-layer-resize-item-right-top"></div>
|
||||
<div data-type="left-bottom" class="window-layer-resize-item-left-bottom"></div>
|
||||
<div data-type="right-bottom" class="window-layer-resize-item-right-bottom"></div>
|
||||
</div>
|
||||
</div>`;
|
||||
$('#ifcontent').append(html);
|
||||
}
|
||||
|
||||
// 添加快捷导航
|
||||
if($('.header-menu-open-pages-list ul li.nav-item-key-'+key).length == 0)
|
||||
{
|
||||
var html = `<li data-url="`+url+`" data-key="`+key+`" class="nav-item-key-`+key+`">
|
||||
<span>`+name+`</span>
|
||||
<a href="javascript:;" class="am-icon-close"></a>
|
||||
</li>`;
|
||||
$('.header-menu-open-pages-list ul').append(html);
|
||||
}
|
||||
// 模拟点击当前元素
|
||||
$('.header-menu-open-pages-list ul li.nav-item-key-'+key).trigger('click');
|
||||
|
||||
// 顶部菜单事件,关闭弹层
|
||||
if(type == 'nav')
|
||||
{
|
||||
if($(document).width() < 641)
|
||||
{
|
||||
$('.header-nav-submit').trigger('click');
|
||||
} else {
|
||||
$(this).parents('.admin-header-list').trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭左侧弹层
|
||||
if(type == 'menu')
|
||||
{
|
||||
$('#admin-offcanvas').offCanvas('close');
|
||||
}
|
||||
}
|
||||
var name = $(this).data('node-name') || $(this).find('.nav-name').text();
|
||||
AdminTopNavIframeAddHandle(url, name, key, type);
|
||||
});
|
||||
|
||||
// 菜单选择
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ $(function()
|
|||
{
|
||||
Prompt(window['lang_not_enable_tips'] || '请先点击勾勾启用');
|
||||
} else {
|
||||
window.location.href = $(this).data('set-url');
|
||||
window.parent.AdminTopNavIframeAddHandle($(this).data('set-url'), $(this).data('name'), $(this).data('key'), 'nnav', true);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue