添加导出本地生活订单excel功能

This commit is contained in:
wangxiaowei 2024-07-31 16:15:54 +08:00
parent 1f550e58c8
commit 3d071dea75
4 changed files with 156 additions and 0 deletions

@ -7,6 +7,7 @@ use app\common\server\ConfigServer;
use app\common\enum\LocalLifeICBCEnum;
use app\admin\logic\shop\LocalStoreLogic;
use app\common\server\JsonServer;
use app\shop\logic\order\InvoiceLogic;
use think\facade\Request;
class LocalStore extends AdminBase
@ -85,4 +86,23 @@ class LocalStore extends AdminBase
return JsonServer::error('操作失败');
}
}
public function order()
{
if ($this->request->isAjax()) {
$get = $this->request->get();
return JsonServer::success('', LocalStoreLogic::getOrderList($get));
}
return view('');
}
public function exportOrderData()
{
$result = LocalStoreLogic::exportOrderData();
if(false === $result) {
return JsonServer::error(InvoiceLogic::getError() ?: '导出失败');
}
return JsonServer::success('', $result);
}
}

@ -4,10 +4,15 @@ namespace app\admin\logic\shop;
use app\common\basics\Logic;
use app\common\model\LocalStore;
use app\common\model\LocalStoreOrder;
use app\common\server\ExportExcelServer;
class LocalStoreLogic extends Logic
{
public static $STATE_ENUM = [1, 2];
private static $PAYMENT_TYPE = array(
1 => '对公银行账户'
);
public static function lists()
{
@ -43,4 +48,56 @@ class LocalStoreLogic extends Logic
{
return LocalStore::where(['store_state' => 0])->count();
}
// 获取本地生活订单列表
public static function getOrderList($get)
{
$lists = LocalStoreOrder::order('id desc')->paginate([
'page' => $get['page'] ?? 1,
'list_rows' => $get['limit'] ?? 10,
'var_page' => 'page'
])->toArray();
foreach ($lists['data'] as &$v) {
$v['payment_type'] = self::$PAYMENT_TYPE[$v['payment_type']];
}
return ['count' => $lists['total'], 'lists' => $lists['data']];
}
// 导出数据
public static function exportOrderData()
{
try {
$lists = LocalStoreOrder::order('id desc')
->select()
->toArray();
foreach ($lists as &$v) {
$v['bank_card'] = $v['bank_card'] . ' ';
$v['large_number'] = $v['large_number'] . ' ';
$v['payment_type'] = self::$PAYMENT_TYPE[$v['payment_type']];
}
$excelFields = [
'payment_type' => '收款方类型',
'account_name' => '户名',
'bank_name' => '银行名称',
'bank_card' => '银行卡号',
'large_number' => '大额行号',
'separate_account' => '分账金额',
'tips' => '交易附言',
'notes' => '备注'
];
$export = new ExportExcelServer();
$export->setFileName('本地生活订单列表');
$result = $export->createExcel($excelFields, $lists);
return ['url' => $result];
} catch (\Exception $e) {
self::$error = $e->getMessage();
return false;
}
}
}

@ -0,0 +1,69 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<!-- 操作提示 -->
<div class="layui-card-body">
<div class="layui-collapse" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*本地生活商家入驻信息列表。</p>
</div>
</div>
</div>
</div>
<!-- 主体区域 -->
<div class="layui-card-body">
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-submit lay-filter="data-export">导出</a>
</div>
</div>
</div>
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="localstore-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
</div>
</div>
<script>
layui.use(["table", "form"], function () {
var form = layui.form;
like.tableLists("#like-table-lists", "{:url()}", [
{field: "id", width: 60, title: "ID"}
, {field: "payment_type", width: 240, align: "center", title: "收款方类型"}
, {field: "account_name", width: 300, align: "center", title: "户名"}
, {field: "bank_name", width: 120, align: "center", title: "银行名称"}
, {field: "bank_card", width: 240, align: "center", title: "银行卡号"}
, {field: "large_number", width: 300, align: "center", title: "大额行号"}
, {field: "separate_account", width: 300, align: "center", title: "分账金额"}
, {field: "tips", width: 300, align: "center", title: "交易附言"}
, {field: "notes", width: 300, align: "center", title: "备注"}
, {field: "create_time", width: 300, align: "center", title: "创建时间"}
]);
// 导出
form.on('submit(data-export)', function (data) {
var field = data.field;
like.ajax({
url: '{:url("shop.LocalStore/exportOrderData")}'
, data: field
, type: 'get'
, success: function (res) {
if (res.code == 1) {
window.location.href = res.data.url;
}
}
});
});
})
</script>

@ -0,0 +1,10 @@
<?php
namespace app\common\model;
use think\Model;
class LocalStoreOrder extends Model
{
protected $name = 'local_store_order';
}