Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
phpchina
ShopXO
比较版本
47eae4577bf97025336b5eee5971a5609946dd2c...c348d32266126ed025c68454b6cca84dbe9ab369
ShopXO
项目概览
phpchina
/
ShopXO
9 个月 前同步成功
通知
12
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
源分支
c348d32266126ed025c68454b6cca84dbe9ab369
选择Git版本
...
目标分支
47eae4577bf97025336b5eee5971a5609946dd2c
选择Git版本
比较
Commits (2)
https://gitcode.net/phpchina/shopxo/-/commit/4279ae4b91542e6ddad32fa8c102af477d75a5b2
语言文字错误修复
2023-04-27T21:06:06+08:00
gongfuxiang
fuxiang.gong@qq.com
https://gitcode.net/phpchina/shopxo/-/commit/c348d32266126ed025c68454b6cca84dbe9ab369
语言读取支持插件自动识别,用户登录信息读取优化,插件管理支持新标签
2023-04-27T21:06:47+08:00
gongfuxiang
fuxiang.gong@qq.com
隐藏空白更改
内联
并排
Showing
24 changed file
with
316 addition
and
152 deletion
+316
-152
app/admin/lang/de.php
app/admin/lang/de.php
+1
-1
app/admin/lang/en.php
app/admin/lang/en.php
+1
-1
app/admin/lang/fra.php
app/admin/lang/fra.php
+1
-1
app/admin/lang/it.php
app/admin/lang/it.php
+1
-1
app/admin/lang/jp.php
app/admin/lang/jp.php
+1
-1
app/admin/lang/kor.php
app/admin/lang/kor.php
+1
-1
app/admin/lang/nl.php
app/admin/lang/nl.php
+1
-1
app/admin/lang/ru.php
app/admin/lang/ru.php
+1
-1
app/admin/lang/spa.php
app/admin/lang/spa.php
+1
-1
app/admin/lang/swe.php
app/admin/lang/swe.php
+1
-1
app/admin/lang/th.php
app/admin/lang/th.php
+1
-1
app/admin/lang/vie.php
app/admin/lang/vie.php
+1
-1
app/admin/lang/zh.php
app/admin/lang/zh.php
+1
-1
app/admin/view/default/pluginsadmin/index.html
app/admin/view/default/pluginsadmin/index.html
+1
-1
app/api/controller/Devtest.php
app/api/controller/Devtest.php
+106
-0
app/common.php
app/common.php
+32
-6
app/service/AppMiniUserService.php
app/service/AppMiniUserService.php
+18
-18
app/service/PayLogService.php
app/service/PayLogService.php
+1
-1
app/service/SystemBaseService.php
app/service/SystemBaseService.php
+1
-1
app/service/UserService.php
app/service/UserService.php
+50
-45
extend/payment/WalletPay.php
extend/payment/WalletPay.php
+3
-3
public/static/admin/default/js/common.js
public/static/admin/default/js/common.js
+88
-0
public/static/admin/default/js/index.js
public/static/admin/default/js/index.js
+2
-63
public/static/admin/default/js/pluginsadmin.js
public/static/admin/default/js/pluginsadmin.js
+1
-1
未找到文件。
app/admin/lang/de.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Zahlungsmethode'
,
'base_nav_title'
=>
'Zahlungsmethode'
,
'nav_store_payment_name'
=>
'Weitere
Theme-
Downloads'
,
'nav_store_payment_name'
=>
'Weitere
Zahlungsmethode
Downloads'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'"Der Klassenname muss mit dem Dateinamen übereinstimmen (remove.php). Wenn Alipay.php verwendet wird, wird Alipay verwendet."'
,
'name'
=>
'"Der Klassenname muss mit dem Dateinamen übereinstimmen (remove.php). Wenn Alipay.php verwendet wird, wird Alipay verwendet."'
,
...
...
app/admin/lang/en.php
浏览文件 @
c348d322
...
@@ -856,7 +856,7 @@ return [
...
@@ -856,7 +856,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'PaymentMethod'
,
'base_nav_title'
=>
'PaymentMethod'
,
'nav_store_payment_name'
=>
'More
topic
downloads'
,
'nav_store_payment_name'
=>
'More
PaymentMethod
downloads'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1. The class name must be consistent with the file name (remove. php). If Alipay.php, Alipay is used'
'name'
=>
'1. The class name must be consistent with the file name (remove. php). If Alipay.php, Alipay is used'
...
...
app/admin/lang/fra.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Mode de paiement'
,
'base_nav_title'
=>
'Mode de paiement'
,
'nav_store_payment_name'
=>
'Plus de
thèmes à
télécharger'
,
'nav_store_payment_name'
=>
'Plus de
paiement
télécharger'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'Le nom de la classe doit correspondre au nom du fichier (supprimer.Php), comme alipay.php prend AliPay'
,
'name'
=>
'Le nom de la classe doit correspondre au nom du fichier (supprimer.Php), comme alipay.php prend AliPay'
,
...
...
app/admin/lang/it.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Metodo di pagamento'
,
'base_nav_title'
=>
'Metodo di pagamento'
,
'nav_store_payment_name'
=>
'Altri download
dei temi
'
,
'nav_store_payment_name'
=>
'Altri download
pagamento
'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'"Il nome della classe deve essere coerente con il nome del file (remove. php). Se Alipay.php è usato, Alipay è usato."'
,
'name'
=>
'"Il nome della classe deve essere coerente con il nome del file (remove. php). Se Alipay.php è usato, Alipay è usato."'
,
...
...
app/admin/lang/jp.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'支払い方法'
,
'base_nav_title'
=>
'支払い方法'
,
'nav_store_payment_name'
=>
'その他の
トピック
のダウンロード'
,
'nav_store_payment_name'
=>
'その他の
支払い方法
のダウンロード'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1.クラス名はファイル名に一致している必要があります(.phpを除く)、Alipay.phpの場合はAlipay'
,
'name'
=>
'1.クラス名はファイル名に一致している必要があります(.phpを除く)、Alipay.phpの場合はAlipay'
,
...
...
app/admin/lang/kor.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'지불 방식'
,
'base_nav_title'
=>
'지불 방식'
,
'nav_store_payment_name'
=>
'추가
테마
다운로드'
,
'nav_store_payment_name'
=>
'추가
결제 방법
다운로드'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1. 클래스 이름은 파일 이름과 일치해야 합니다 (.php 제거). Alipay.php의 경우 Alipay'
,
'name'
=>
'1. 클래스 이름은 파일 이름과 일치해야 합니다 (.php 제거). Alipay.php의 경우 Alipay'
,
...
...
app/admin/lang/nl.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Betalingsmethode'
,
'base_nav_title'
=>
'Betalingsmethode'
,
'nav_store_payment_name'
=>
'Meer
thema
downloads'
,
'nav_store_payment_name'
=>
'Meer
Betalingsmethode
downloads'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'"De klassenaam moet consistent zijn met de bestandsnaam (remove.php). Als Alipay.php wordt gebruikt, wordt Alipay gebruikt."'
,
'name'
=>
'"De klassenaam moet consistent zijn met de bestandsnaam (remove.php). Als Alipay.php wordt gebruikt, wordt Alipay gebruikt."'
,
...
...
app/admin/lang/ru.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'форма платежа'
,
'base_nav_title'
=>
'форма платежа'
,
'nav_store_payment_name'
=>
'
Загрузить больше тем
'
,
'nav_store_payment_name'
=>
'
Скачать больше способов оплаты
'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'Имя класса должно соответствовать имени файла (удалить.php), если Alipay.php берет Alipay'
,
'name'
=>
'Имя класса должно соответствовать имени файла (удалить.php), если Alipay.php берет Alipay'
,
...
...
app/admin/lang/spa.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Método de pago'
,
'base_nav_title'
=>
'Método de pago'
,
'nav_store_payment_name'
=>
'Descarga de más
temas
'
,
'nav_store_payment_name'
=>
'Descarga de más
métodos de pago
'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1. el nombre de la clase debe ser consistente con el nombre del archivo (eliminar. php), como alipay.php, Alipay'
,
'name'
=>
'1. el nombre de la clase debe ser consistente con el nombre del archivo (eliminar. php), como alipay.php, Alipay'
,
...
...
app/admin/lang/swe.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Betalningsmetod'
,
'base_nav_title'
=>
'Betalningsmetod'
,
'nav_store_payment_name'
=>
'
Fler temahämtninga
r'
,
'nav_store_payment_name'
=>
'
Ladda ner fler betalningsmetode
r'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'"Klassnamnet måste överensstämma med filnamnet (remove. php). Om Alipay.php används används Alipay."'
,
'name'
=>
'"Klassnamnet måste överensstämma med filnamnet (remove. php). Om Alipay.php används används Alipay."'
,
...
...
app/admin/lang/th.php
浏览文件 @
c348d322
...
@@ -843,7 +843,7 @@ return [
...
@@ -843,7 +843,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'วิธีการชำระเงิน'
,
'base_nav_title'
=>
'วิธีการชำระเงิน'
,
'nav_store_payment_name'
=>
'
หัวข้อ
เพิ่มเติม ดาวน์โหลด'
,
'nav_store_payment_name'
=>
'
วิธีการชำระเงิน
เพิ่มเติม ดาวน์โหลด'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1. ชื่อคลาสต้องสอดคล้องกับชื่อไฟล์ (ถอด .php) เช่น Alipay.php ใช้ Alipay'
,
'name'
=>
'1. ชื่อคลาสต้องสอดคล้องกับชื่อไฟล์ (ถอด .php) เช่น Alipay.php ใช้ Alipay'
,
...
...
app/admin/lang/vie.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'Phương thức thanh toán'
,
'base_nav_title'
=>
'Phương thức thanh toán'
,
'nav_store_payment_name'
=>
'Thêm
chủ đề Download
'
,
'nav_store_payment_name'
=>
'Thêm
phương thức thanh toán Tải về
'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'Tên lớp phải phù hợp với tên tệp (loại bỏ.php), chẳng hạn như Alipay.php hoặc Alipay.php'
,
'name'
=>
'Tên lớp phải phù hợp với tên tệp (loại bỏ.php), chẳng hạn như Alipay.php hoặc Alipay.php'
,
...
...
app/admin/lang/zh.php
浏览文件 @
c348d322
...
@@ -841,7 +841,7 @@ return [
...
@@ -841,7 +841,7 @@ return [
// 支付方式
// 支付方式
'payment'
=>
[
'payment'
=>
[
'base_nav_title'
=>
'支付方式'
,
'base_nav_title'
=>
'支付方式'
,
'nav_store_payment_name'
=>
'更多
主题
下载'
,
'nav_store_payment_name'
=>
'更多
支付方式
下载'
,
'upload_top_list_tips'
=>
[
'upload_top_list_tips'
=>
[
[
[
'name'
=>
'1. 类名必须于文件名一致(去除 .php ),如 Alipay.php 则取 Alipay'
,
'name'
=>
'1. 类名必须于文件名一致(去除 .php ),如 Alipay.php 则取 Alipay'
,
...
...
app/admin/view/default/pluginsadmin/index.html
浏览文件 @
c348d322
...
@@ -69,7 +69,7 @@
...
@@ -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>
<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}}
{{/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>
<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>
...
...
app/api/controller/Devtest.php
浏览文件 @
c348d322
...
@@ -639,5 +639,111 @@ class Devtest extends Common
...
@@ -639,5 +639,111 @@ class Devtest extends Common
}
}
return
$result
;
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';
}
}
}
?>
?>
\ No newline at end of file
app/common.php
浏览文件 @
c348d322
...
@@ -195,14 +195,40 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
...
@@ -195,14 +195,40 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
APP_PATH
.
$request_module
.
DS
.
'lang'
.
DS
.
$current_lang
.
'.php'
,
APP_PATH
.
$request_module
.
DS
.
'lang'
.
DS
.
$current_lang
.
'.php'
,
APP_PATH
.
'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
;
$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
.
$current_lang
.
'.php'
);
array_unshift
(
$arr_file
,
$plugins_dir
.
$request_module
.
DS
.
$current_lang
.
'.php'
);
array_unshift
(
$arr_file
,
$plugins_dir
.
$request_module
.
DS
.
$current_lang
.
'.php'
);
}
}
// 循环获取语言时间
foreach
(
$arr_file
as
$file
)
foreach
(
$arr_file
as
$file
)
{
{
$md5_key
=
md5
(
$file
);
$md5_key
=
md5
(
$file
);
...
@@ -248,13 +274,13 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
...
@@ -248,13 +274,13 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
}
}
// 未找到对应语言
// 未找到对应语言
if
(
$value
==
''
||
$key
==
$value
)
if
(
$value
==
''
)
{
{
// 非默认语言则读取默认语言
// 非默认语言则读取默认语言
$default_lang
=
MyConfig
(
'lang.default_lang'
);
$default_lang
=
MyConfig
(
'lang.default_lang'
);
if
(
$default_lang
!=
$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)
...
@@ -2937,7 +2963,7 @@ function ParamsChecked($data, $params)
return
MyLang
(
'common_function.check_config_error_tips'
);
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'
]))
if
(
empty
(
$v
[
'key_name'
])
||
empty
(
$v
[
'error_msg'
]))
{
{
...
...
app/service/AppMiniUserService.php
浏览文件 @
c348d322
...
@@ -67,7 +67,7 @@ class AppMiniUserService
...
@@ -67,7 +67,7 @@ class AppMiniUserService
if
(
$ret
[
'code'
]
==
0
)
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
))
if
(
empty
(
$user
))
{
{
$ret
=
DataReturn
(
MyLang
(
'common_service.appminiuser.auth_login_success_tips'
),
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$ret
[
'data'
][
'user_id'
]]);
$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
...
@@ -116,7 +116,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
// 字段名称不一样参数处理
// 字段名称不一样参数处理
...
@@ -162,11 +162,11 @@ class AppMiniUserService
...
@@ -162,11 +162,11 @@ class AppMiniUserService
$unionid
=
empty
(
$ret
[
'data'
][
'unionid'
])
?
''
:
$ret
[
'data'
][
'unionid'
];
$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
))
if
(
empty
(
$user
)
&&
!
empty
(
$unionid
))
{
{
// 根据unionid获取数据
// 根据unionid获取数据
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'weixin_unionid'
,
$unionid
);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'weixin_unionid'
,
'where_value'
=>
$unionid
]
);
}
}
if
(
empty
(
$user
))
if
(
empty
(
$user
))
{
{
...
@@ -200,7 +200,7 @@ class AppMiniUserService
...
@@ -200,7 +200,7 @@ class AppMiniUserService
// 是否重新获取用户信息
// 是否重新获取用户信息
if
(
$status
)
if
(
$status
)
{
{
$user
=
UserService
::
AppUserInfoHandle
(
$user
[
'id'
]);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'user_id'
,
'where_value'
=>
$user
[
'id'
]
]);
}
}
}
}
...
@@ -247,7 +247,7 @@ class AppMiniUserService
...
@@ -247,7 +247,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
// 字段名称不一样参数处理
// 字段名称不一样参数处理
...
@@ -295,7 +295,7 @@ class AppMiniUserService
...
@@ -295,7 +295,7 @@ class AppMiniUserService
if
(
$ret
[
'code'
]
==
0
)
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
))
if
(
!
empty
(
$user
))
{
{
// 用户状态
// 用户状态
...
@@ -341,7 +341,7 @@ class AppMiniUserService
...
@@ -341,7 +341,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
...
@@ -418,11 +418,11 @@ class AppMiniUserService
...
@@ -418,11 +418,11 @@ class AppMiniUserService
$unionid
=
empty
(
$ret
[
'data'
][
'unionid'
])
?
''
:
$ret
[
'data'
][
'unionid'
];
$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
))
if
(
empty
(
$user
)
&&
!
empty
(
$unionid
))
{
{
// 根据unionid获取数据
// 根据unionid获取数据
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'toutiao_unionid'
,
$unionid
);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'toutiao_unionid'
,
'where_value'
=>
$unionid
]
);
}
}
if
(
empty
(
$user
))
if
(
empty
(
$user
))
{
{
...
@@ -447,7 +447,7 @@ class AppMiniUserService
...
@@ -447,7 +447,7 @@ class AppMiniUserService
// 是否重新获取用户信息
// 是否重新获取用户信息
if
(
$status
)
if
(
$status
)
{
{
$user
=
UserService
::
AppUserInfoHandle
(
$user
[
'id'
]);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'user_id'
,
'where_value'
=>
$user
[
'id'
]
]);
}
}
}
}
...
@@ -494,7 +494,7 @@ class AppMiniUserService
...
@@ -494,7 +494,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
...
@@ -538,7 +538,7 @@ class AppMiniUserService
...
@@ -538,7 +538,7 @@ class AppMiniUserService
if
(
$ret
[
'code'
]
==
0
)
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
))
if
(
empty
(
$user
))
{
{
$ret
=
DataReturn
(
MyLang
(
'common_service.appminiuser.auth_login_success_tips'
),
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$ret
[
'data'
][
'openid'
]]);
$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
...
@@ -584,7 +584,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
...
@@ -630,11 +630,11 @@ class AppMiniUserService
...
@@ -630,11 +630,11 @@ class AppMiniUserService
$unionid
=
empty
(
$ret
[
'data'
][
'unionid'
])
?
''
:
$ret
[
'data'
][
'unionid'
];
$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
))
if
(
empty
(
$user
)
&&
!
empty
(
$unionid
))
{
{
// 根据unionid获取数据
// 根据unionid获取数据
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'qq_unionid'
,
$unionid
);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'qq_unionid'
,
'where_value'
=>
$unionid
]
);
}
}
if
(
empty
(
$user
))
if
(
empty
(
$user
))
{
{
...
@@ -659,7 +659,7 @@ class AppMiniUserService
...
@@ -659,7 +659,7 @@ class AppMiniUserService
// 是否重新获取用户信息
// 是否重新获取用户信息
if
(
$status
)
if
(
$status
)
{
{
$user
=
UserService
::
AppUserInfoHandle
(
$user
[
'id'
]);
$user
=
UserService
::
AppUserInfoHandle
(
[
'where_field'
=>
'user_id'
,
'where_value'
=>
$user
[
'id'
]
]);
}
}
}
}
...
@@ -709,7 +709,7 @@ class AppMiniUserService
...
@@ -709,7 +709,7 @@ class AppMiniUserService
if
(
$ret
===
true
)
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
))
if
(
empty
(
$user
))
{
{
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
$auth_data
=
is_array
(
$params
[
'auth_data'
])
?
$params
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$params
[
'auth_data'
]),
true
);
...
...
app/service/PayLogService.php
浏览文件 @
c348d322
...
@@ -150,7 +150,7 @@ class PayLogService
...
@@ -150,7 +150,7 @@ class PayLogService
'status'
=>
1
,
'status'
=>
1
,
'pay_time'
=>
time
(),
'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
);
return
DataReturn
(
MyLang
(
'update_success'
),
0
);
}
}
...
...
app/service/SystemBaseService.php
浏览文件 @
c348d322
...
@@ -339,7 +339,7 @@ class SystemBaseService
...
@@ -339,7 +339,7 @@ class SystemBaseService
}
}
/**
/**
* 商品优
化
记录
* 商品优
惠
记录
* @author Devil
* @author Devil
* @blog http://gong.gg/
* @blog http://gong.gg/
* @version 1.0.0
* @version 1.0.0
...
...
app/service/UserService.php
浏览文件 @
c348d322
...
@@ -235,32 +235,38 @@ class UserService
...
@@ -235,32 +235,38 @@ class UserService
{
{
// 静态数据避免重复读取
// 静态数据避免重复读取
static
$user_login_info
=
null
;
static
$user_login_info
=
null
;
if
(
$user_login_info
===
null
)
if
(
$user_login_info
===
null
&&
$is_cache
)
{
{
$user_login_info
=
self
::
CacheLoginUserInfo
();
$user_login_info
=
self
::
CacheLoginUserInfo
();
}
}
// 非退出操作则重新设置用户信息
if
(
!
empty
(
$user_login_info
)
&&
RequestAction
()
!=
'logout'
)
// 缓存为空则重新读取
if
(
empty
(
$user_login_info
))
{
{
// 是否缓存读取
if
(
APPLICATION
==
'web'
)
if
(
$is_cache
)
{
{
// 重新更新用户session或cookie缓存
// web用户session
self
::
UserLoginRecord
(
$user_login_info
[
'id'
]);
$user_login_info
=
MySession
(
self
::
$user_login_key
);
// 重新存储用户缓存
if
(
!
empty
(
$user_login_info
[
'token'
]))
{
MyCache
(
SystemService
::
CacheKey
(
'shopxo.cache_user_info'
)
.
$user_login_info
[
'token'
],
$user_login_info
);
}
}
else
{
}
else
{
if
(
APPLICATION
==
'web'
)
$params
=
input
();
if
(
!
empty
(
$params
[
'token'
]))
{
{
self
::
UserLoginRecord
(
$user_login_info
[
'id'
]);
$user_login_info
=
self
::
UserTokenData
(
$params
[
'token'
]);
}
else
{
$user_login_info
=
self
::
UserTokenData
(
$user_login_info
[
'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
;
return
$user_login_info
;
}
}
...
@@ -283,7 +289,7 @@ class UserService
...
@@ -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
...
@@ -1323,7 +1329,7 @@ class UserService
// 成功返回
// 成功返回
if
(
APPLICATION
==
'app'
)
if
(
APPLICATION
==
'app'
)
{
{
$result
=
self
::
AppUserInfoHandle
(
0
,
null
,
null
,
$user
);
$result
=
self
::
AppUserInfoHandle
(
[
'user'
=>
$user
]
);
}
else
{
}
else
{
// 登录记录
// 登录记录
if
(
!
self
::
UserLoginRecord
(
0
,
$user
))
if
(
!
self
::
UserLoginRecord
(
0
,
$user
))
...
@@ -1489,7 +1495,7 @@ class UserService
...
@@ -1489,7 +1495,7 @@ class UserService
// 成功返回
// 成功返回
if
(
APPLICATION
==
'app'
)
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
{
}
else
{
$result
=
$user_ret
[
'data'
];
$result
=
$user_ret
[
'data'
];
}
}
...
@@ -2217,7 +2223,7 @@ class UserService
...
@@ -2217,7 +2223,7 @@ class UserService
];
];
if
(
Db
::
name
(
'User'
)
->
where
([
'id'
=>
$user
[
'id'
]])
->
update
(
$upd_data
))
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
{
}
else
{
if
(
$user
[
'id'
]
!=
$temp
[
'id'
])
if
(
$user
[
'id'
]
!=
$temp
[
'id'
])
...
@@ -2277,7 +2283,7 @@ class UserService
...
@@ -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
...
@@ -2309,7 +2315,7 @@ class UserService
}
}
if
(
self
::
UserPlatformInsert
(
$user_platform_insert
,
$params
))
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
{
}
else
{
$is_insert_user
=
true
;
$is_insert_user
=
true
;
...
@@ -2334,11 +2340,11 @@ class UserService
...
@@ -2334,11 +2340,11 @@ class UserService
{
{
return
DataReturn
(
MyLang
(
'common_service.user.user_not_audit_tips'
),
-
110
);
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
$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
...
@@ -2421,38 +2427,38 @@ class UserService
* @version 1.0.0
* @version 1.0.0
* @date 2018-11-06
* @date 2018-11-06
* @desc description
* @desc description
* @param [int] $user_id [指定用户id]
* @param [array] $params [输入参数]
* @param [string] $where_field [字段名称]
* @param [string] $where_value [字段值]
* @param [array] $user [用户信息]
*/
*/
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
));
$
params
[
'user'
]
=
self
::
UserHandle
(
self
::
UserInfo
(
'id'
,
$params
[
'user_id'
]
));
}
elseif
(
!
empty
(
$
where_field
)
&&
!
empty
(
$where_value
)
&&
empty
(
$user
))
}
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更新到数据库并缓存
// 重新生成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
...
@@ -2460,13 +2466,12 @@ class UserService
MyEventTrigger
(
$hook_name
,
[
MyEventTrigger
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'is_backend'
=>
true
,
'user_id'
=>
$user_id
,
'user_id'
=>
$params
[
'user'
][
'id'
],
'where_field'
=>
$where_field
,
'user'
=>
&
$params
[
'user'
],
'where_value'
=>
$where_value
,
'params'
=>
$params
,
'user'
=>
&
$user
,
]);
]);
}
}
return
$
user
;
return
$
params
[
'user'
]
;
}
}
/**
/**
...
@@ -2917,7 +2922,7 @@ class UserService
...
@@ -2917,7 +2922,7 @@ class UserService
{
{
// 清除验证码
// 清除验证码
$obj
->
Remove
();
$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
);
return
DataReturn
(
MyLang
(
'bind_fail'
),
-
100
);
}
}
...
...
extend/payment/WalletPay.php
浏览文件 @
c348d322
...
@@ -55,7 +55,7 @@ class WalletPay
...
@@ -55,7 +55,7 @@ class WalletPay
// 基础信息
// 基础信息
$base
=
[
$base
=
[
'name'
=>
'钱包支付'
,
// 插件名称
'name'
=>
'钱包支付'
,
// 插件名称
'version'
=>
'0.0.
3
'
,
// 插件版本
'version'
=>
'0.0.
4
'
,
// 插件版本
'apply_version'
=>
'不限'
,
// 适用系统版本描述
'apply_version'
=>
'不限'
,
// 适用系统版本描述
'desc'
=>
'钱包余额支付'
,
// 插件描述(支持html)
'desc'
=>
'钱包余额支付'
,
// 插件描述(支持html)
'author'
=>
'Devil'
,
// 开发者
'author'
=>
'Devil'
,
// 开发者
...
@@ -122,7 +122,7 @@ class WalletPay
...
@@ -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
)
if
(
$ret
[
'code'
]
==
0
)
{
{
// 支付方式
// 支付方式
...
@@ -160,7 +160,7 @@ class WalletPay
...
@@ -160,7 +160,7 @@ class WalletPay
'order'
=>
$order_list
,
'order'
=>
$order_list
,
'payment'
=>
$payment
[
0
],
'payment'
=>
$payment
[
0
],
'pay_log_data'
=>
$pay_log_data
,
'pay_log_data'
=>
$pay_log_data
,
'pay'
=>
[
'pay'
=>
[
'trade_no'
=>
'钱包支付'
,
'trade_no'
=>
'钱包支付'
,
'subject'
=>
$pay_log_data
[
'subject'
],
'subject'
=>
$pay_log_data
[
'subject'
],
'buyer_user'
=>
(
empty
(
$params
[
'user'
])
||
empty
(
$params
[
'user'
][
'user_name_view'
]))
?
''
:
$params
[
'user'
][
'user_name_view'
],
'buyer_user'
=>
(
empty
(
$params
[
'user'
])
||
empty
(
$params
[
'user'
][
'user_name_view'
]))
?
''
:
$params
[
'user'
][
'user_name_view'
],
...
...
public/static/admin/default/js/common.js
浏览文件 @
c348d322
...
@@ -182,6 +182,94 @@ function StoreAccountsPopupOpen()
...
@@ -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
()
$
(
function
()
{
{
// 插件更新操作事件
// 插件更新操作事件
...
...
public/static/admin/default/js/index.js
浏览文件 @
c348d322
...
@@ -62,69 +62,8 @@ $(function()
...
@@ -62,69 +62,8 @@ $(function()
var
url
=
$
(
this
).
data
(
'
url
'
)
||
null
;
var
url
=
$
(
this
).
data
(
'
url
'
)
||
null
;
var
type
=
$
(
this
).
data
(
'
type
'
);
var
type
=
$
(
this
).
data
(
'
type
'
);
var
key
=
$
(
this
).
data
(
'
key
'
);
var
key
=
$
(
this
).
data
(
'
key
'
);
if
(
url
!=
null
)
var
name
=
$
(
this
).
data
(
'
node-name
'
)
||
$
(
this
).
find
(
'
.nav-name
'
).
text
();
{
AdminTopNavIframeAddHandle
(
url
,
name
,
key
,
type
);
// 名称
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
'
);
}
}
});
});
// 菜单选择
// 菜单选择
...
...
public/static/admin/default/js/pluginsadmin.js
浏览文件 @
c348d322
...
@@ -53,7 +53,7 @@ $(function()
...
@@ -53,7 +53,7 @@ $(function()
{
{
Prompt
(
window
[
'
lang_not_enable_tips
'
]
||
'
请先点击勾勾启用
'
);
Prompt
(
window
[
'
lang_not_enable_tips
'
]
||
'
请先点击勾勾启用
'
);
}
else
{
}
else
{
window
.
location
.
href
=
$
(
this
).
data
(
'
set-url
'
);
window
.
parent
.
AdminTopNavIframeAddHandle
(
$
(
this
).
data
(
'
set-url
'
),
$
(
this
).
data
(
'
name
'
),
$
(
this
).
data
(
'
key
'
),
'
nnav
'
,
true
);
}
}
});
});
...
...