mirror of
https://gitee.com/technical-laohu/mpay.git
synced 2025-09-17 17:26:40 +08:00
更新码钱、小Y经营等插件
This commit is contained in:
parent
93f0e79632
commit
3d402cdbd6
@ -22,6 +22,12 @@
|
||||
|
||||
这样,只要账户、密码没有问题,就不存在监听掉线的情况,也就非常稳定了。
|
||||
|
||||
|
||||
目前已支持的收款平台:收钱吧、码钱、小Y经营、数字门店等。
|
||||
|
||||
正在开发的收款平台:拉卡拉、云闪付盛意旺
|
||||
|
||||
|
||||
#### 软件架构
|
||||
|
||||
项目采用 THINKPHP8 + layui 2.9 + PearAdmin后台UI 开发
|
||||
|
@ -14,5 +14,6 @@ class BaseModel extends Model
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $deleteTime = 'delete_time';
|
||||
protected $autoWriteTimestamp = 'timestamp';
|
||||
|
||||
}
|
||||
|
44
app/controller/api/ConsoleController.php
Normal file
44
app/controller/api/ConsoleController.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\controller\api;
|
||||
|
||||
use think\Request;
|
||||
use app\model\Order;
|
||||
|
||||
class ConsoleController
|
||||
{
|
||||
public function orderinfo(Request $request)
|
||||
{
|
||||
$date = (int)$request->get('time') ?: 0;
|
||||
$time = match ($date) {
|
||||
0 => [date('Y') . '-01-01 00:00:00', date('Y-m-d 23:59:59')],
|
||||
1 => [date('Y-m-d H:i:s', strtotime('-30 days')), date('Y-m-d 23:59:59')],
|
||||
2 => [date('Y-m-d H:i:s', strtotime('-6 months')), date('Y-m-d 23:59:59')],
|
||||
3 => [date('Y-m-d H:i:s', strtotime('-1 year')), date('Y-m-d 23:59:59')],
|
||||
default => []
|
||||
};
|
||||
if (!$time) {
|
||||
return json(['code' => 400, 'msg' => '参数错误']);
|
||||
}
|
||||
$orders = Order::whereBetweenTime('create_time', $time[0], $time[1])->where('state', 1)->field('id,type,really_price')->select();
|
||||
$data = [
|
||||
'ordernum' => count($orders),
|
||||
'totalmoney' => \number_format(array_sum(array_column($orders->toArray(), 'really_price')), 2),
|
||||
'wxpay' => [
|
||||
'num' => count($orders->where('type', 'wxpay')),
|
||||
'money' => \number_format(array_sum(array_column($orders->where('type', 'wxpay')->toArray(), 'really_price')), 2)
|
||||
],
|
||||
'alipay' => [
|
||||
'num' => count($orders->where('type', 'alipay')),
|
||||
'money' => \number_format(array_sum(array_column($orders->where('type', 'alipay')->toArray(), 'really_price')), 2)
|
||||
],
|
||||
'unionpay' => [
|
||||
'num' => count($orders->where('type', 'unionpay')),
|
||||
'money' => \number_format(array_sum(array_column($orders->where('type', 'unionpay')->toArray(), 'really_price')), 2)
|
||||
]
|
||||
];
|
||||
return json($data);
|
||||
}
|
||||
}
|
@ -53,7 +53,8 @@ class PayManageController extends BaseController
|
||||
{
|
||||
$ids = $this->request->post('ids');
|
||||
$res = PayAccount::destroy($ids);
|
||||
if ($res) {
|
||||
$res2 = PayChannel::destroy($ids);
|
||||
if ($res && $res2) {
|
||||
return \json(\backMsg(0, '已删除'));
|
||||
} else {
|
||||
return \json(\backMsg(1, '失败'));
|
||||
|
BIN
extend/payclient/payclient.zip
Normal file
BIN
extend/payclient/payclient.zip
Normal file
Binary file not shown.
BIN
public/component/payClient.zip
Normal file
BIN
public/component/payClient.zip
Normal file
Binary file not shown.
3
public/test.php
Normal file
3
public/test.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
|
||||
echo '测试用例';
|
@ -252,11 +252,11 @@
|
||||
<div id="app" class="layui-card-body">
|
||||
<div class="layui-row order-total">
|
||||
<div class="layui-col-xs6">
|
||||
<p>1433</p>
|
||||
<p>{{ data.ordernum }}</p>
|
||||
<p>总订单(笔)</p>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<p>12900</p>
|
||||
<p>{{ data.totalmoney }}</p>
|
||||
<p>总金额(元)</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -276,8 +276,8 @@
|
||||
<p>全渠道统计</p>
|
||||
</div>
|
||||
</div>
|
||||
<div><strong @click="add(100)">{{ data.ordernum }}</strong> 笔</div>
|
||||
<div><strong>{{ data.totalmoney }}</strong> 元</div>
|
||||
<div><strong>{{ data.wxpay.num }}</strong> 笔</div>
|
||||
<div><strong>{{ data.wxpay.money }}</strong> 元</div>
|
||||
</div>
|
||||
<div class="layui-col-xs12 order-channel">
|
||||
<div class="info-channel">
|
||||
@ -294,8 +294,8 @@
|
||||
<p>全渠道统计</p>
|
||||
</div>
|
||||
</div>
|
||||
<div><strong>50</strong> 笔</div>
|
||||
<div><strong>490</strong> 元</div>
|
||||
<div><strong>{{ data.alipay.num }}</strong> 笔</div>
|
||||
<div><strong>{{ data.alipay.money }}</strong> 元</div>
|
||||
</div>
|
||||
<div class="layui-col-xs12 order-channel">
|
||||
<div class="info-channel">
|
||||
@ -321,8 +321,8 @@
|
||||
<p>全渠道统计</p>
|
||||
</div>
|
||||
</div>
|
||||
<div><strong>31</strong> 笔</div>
|
||||
<div><strong>68</strong> 元</div>
|
||||
<div><strong>{{ data.unionpay.num }}</strong> 笔</div>
|
||||
<div><strong>{{ data.unionpay.money }}</strong> 元</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -428,19 +428,24 @@
|
||||
elem: '#order-data',
|
||||
data: [{
|
||||
title: '今年',
|
||||
id: 'this-year',
|
||||
id: 0,
|
||||
}, {
|
||||
title: '近30天',
|
||||
id: 'near-30days',
|
||||
id: 1,
|
||||
}, {
|
||||
title: '近半年',
|
||||
id: 'near-halfyear',
|
||||
id: 2,
|
||||
}, {
|
||||
title: '近一年',
|
||||
id: 'near-year',
|
||||
id: 3,
|
||||
}],
|
||||
click: function (obj) {
|
||||
this.elem.find('span').text(obj.title);
|
||||
(async () => {
|
||||
const data = await fetch(`/api/Console/orderinfo?time=${obj.id}`).then(res => res.json());
|
||||
const updateOrderInfo = new CustomEvent("updateOrderInfo", { detail: data });
|
||||
window.dispatchEvent(updateOrderInfo);
|
||||
})()
|
||||
}
|
||||
});
|
||||
|
||||
@ -459,7 +464,7 @@
|
||||
cols: cols,
|
||||
skin: 'line',
|
||||
});
|
||||
|
||||
// 折线图
|
||||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||
const colorList = ["#9E87FF", '#73DDFF', '#fe9a8b', '#F56948', '#9E87FF']
|
||||
var option = {
|
||||
@ -556,14 +561,15 @@
|
||||
|
||||
createApp({
|
||||
setup() {
|
||||
const data = ref({ ordernum: 100, totalmoney: 1500 });
|
||||
function add(num) {
|
||||
data.value.ordernum += num;
|
||||
}
|
||||
return {
|
||||
data,
|
||||
add
|
||||
}
|
||||
const data = ref({ ordernum: 0, totalmoney: 0, wxpay: { num: 0, money: 0 }, alipay: { num: 0, money: 0 }, unionpay: { num: 0, money: 0 } });
|
||||
(async () => {
|
||||
const info = await fetch(`/api/Console/orderinfo?time=0`).then(res => res.json());
|
||||
data.value = info;
|
||||
})()
|
||||
window.addEventListener("updateOrderInfo", (event) => {
|
||||
data.value = event.detail;
|
||||
});
|
||||
return { data }
|
||||
}
|
||||
}).mount('#app')
|
||||
</script>
|
||||
|
@ -245,7 +245,7 @@
|
||||
}
|
||||
const rec_info = await res.json();
|
||||
if (rec_info.code === 0) {
|
||||
layer.msg(rec_info.msg, { icon: 1, time: 1200 }, () => { table.reload('orders-table') });
|
||||
layer.msg(rec_info.msg, { icon: 1, time: 1200 }, () => { table.reload('account-table') });
|
||||
} else {
|
||||
layer.msg(rec_info.msg, { icon: 2, time: 1200 });
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user