Merge pull request 'feat(store_order): 优化订单列表和退款订单列表' (#357) from dev into main

Reviewed-on: #357
This commit is contained in:
mkm 2024-11-23 15:02:58 +08:00
commit 5729948282
2 changed files with 54 additions and 24 deletions

View File

@ -18,7 +18,7 @@ use app\common\lists\ListsExcelInterface;
* Class StoreOrderLists
* @package app\admin\listsstore_order
*/
class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
{
@ -31,7 +31,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface
public function setSearch(): array
{
return [
'=' => ['order_id','store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id','paid', 'status', 'is_writeoff','is_merge','uid','source'],
'=' => ['order_id', 'store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id', 'paid', 'status', 'is_writeoff', 'is_merge', 'uid', 'source'],
'between_time' => 'create_time'
];
}
@ -48,10 +48,10 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface
*/
public function lists(): array
{
if($this->request->get('is_delivery')>=1){
$this->searchWhere[]=['delivery_uid','>',0];
if ($this->request->get('is_delivery') >= 1) {
$this->searchWhere[] = ['delivery_uid', '>', 0];
}
return StoreOrder::with(['staff','store'])->where($this->searchWhere)
return StoreOrder::with(['staff', 'store'])->where($this->searchWhere)
->when(!empty($this->request->adminInfo['store_id']), function ($query) {
$query->where('store_id', $this->request->adminInfo['store_id']);
})
@ -63,40 +63,62 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface
$query->whereIn('status', $status);
}
})
->field(['id', 'store_id', 'staff_id', 'order_id', 'paid','source', 'pay_price','total_price', 'pay_time', 'pay_type', 'status', 'uid','refund_status','create_time','delivery_name','delivery_id','refund_price'])
->field(['id', 'store_id', 'staff_id', 'order_id', 'paid', 'source', 'pay_price', 'total_price', 'pay_time', 'pay_type', 'status', 'uid', 'refund_status', 'create_time', 'delivery_name', 'delivery_id', 'refund_price'])
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function ($item) {
$item['pay_time'] = $item['pay_time'] > 0 ? date('Y-m-d H:i:s', $item['pay_time']) : '';
if($item['status']==-1){
if ($item['status'] == -1) {
$item['status_name'] = OrderEnum::refundStatus($item['refund_status']) ?? '';
}else{
} else {
$item['status_name'] = OrderEnum::getOrderType($item['status']) ?? '';
}
if ($item['uid'] <= 0) {
$item['nickname'] = '游客';
} else {
$id = $item['uid'];
$user=User::where('id', $item['uid'])->field('real_name,nickname')->find();
if($user){
$item['nickname'] =$user['real_name']!=''?$user['real_name'].'|'.$id:$user['nickname'].'|'.$id;
$user = User::where('id', $item['uid'])->field('real_name,nickname')->find();
if ($user) {
$item['nickname'] = $user['real_name'] != '' ? $user['real_name'] . '|' . $id : $user['nickname'] . '|' . $id;
}
}
if ($item['paid'] == 0) {
$item['status_name'] = '待支付';
}
if($item['source']==4){
if ($item['source'] == 4) {
$item['source_name'] = '批发订单';
}else{
} else {
$item['source_name'] = '普通订单';
}
$product = StoreOrderCartInfo::where('oid', $item['id'])->field(['id', 'oid', 'product_id', 'cart_info'])
->limit(3)->select();
foreach ($product as &$items) {
$items['store_name'] = $items['cart_info']['name']??'';
$items['image'] = $items['cart_info']['image']??'';
}
foreach ($product as &$items) {
$items['store_name'] = $items['cart_info']['name'] ?? '';
$items['image'] = $items['cart_info']['image'] ?? '';
}
$item['product'] = $product;
$pay_type_name = '';
switch ($item['pay_type']) {
case 3:
$pay_type_name = '余额支付';
break;
case 7:
$pay_type_name = '微信支付';
break;
case 9:
$pay_type_name = '微信条码';
break;
case 13:
$pay_type_name = '支付宝条码';
break;
case 17:
$pay_type_name = '现金支付';
break;
case 18:
$pay_type_name = '采购款支付';
break;
}
$item['pay_type_name'] = $pay_type_name;
return $item;
})
->toArray();
@ -126,7 +148,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface
->count();
}
/**
/**
* @notes 导出文件名
* @return string
* @author 乔峰
@ -148,8 +170,8 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface
{
$data = [
'id' => 'ID',
'order_id'=>'订单号',
'store_name'=>'门店',
'order_id' => '订单号',
'store_name' => '门店',
'nickname' => '用户',
'total_price' => '总金额',
'pay_price' => '实际支付',

View File

@ -6,6 +6,7 @@ use app\admin\lists\BaseAdminDataLists;
use app\common\enum\OrderEnum;
use app\common\lists\ListsSearchInterface;
use app\common\model\store_order\StoreOrder;
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
use app\common\model\user\User;
class StoreRefundOrderLists extends BaseAdminDataLists implements ListsSearchInterface
@ -38,7 +39,7 @@ class StoreRefundOrderLists extends BaseAdminDataLists implements ListsSearchInt
*/
public function lists(): array
{
$this->searchWhere[] = ['refund_status','>', 0];
$this->searchWhere[] = ['refund_status', '>', 0];
return StoreOrder::with(['staff', 'product' => function ($query) {
$query->field(['id', 'oid', 'product_id', 'cart_info']);
}])
@ -51,11 +52,18 @@ class StoreRefundOrderLists extends BaseAdminDataLists implements ListsSearchInt
$item['nickname'] = '游客';
} else {
$id = $item['uid'];
$user=User::where('id', $item['uid'])->field('real_name,nickname')->find();
if($user){
$item['nickname'] =$user['real_name']!=''?$user['real_name'].'|'.$id:$user['nickname'].'|'.$id;
$user = User::where('id', $item['uid'])->field('real_name,nickname')->find();
if ($user) {
$item['nickname'] = $user['real_name'] != '' ? $user['real_name'] . '|' . $id : $user['nickname'] . '|' . $id;
}
}
$product = StoreOrderCartInfo::where('oid', $item['id'])->field(['id', 'oid', 'product_id', 'cart_info'])
->limit(3)->select();
foreach ($product as &$items) {
$items['store_name'] = $items['cart_info']['name'] ?? '';
$items['image'] = $items['cart_info']['image'] ?? '';
}
$item['product'] = $product;
$item['pay_time'] = $item['pay_time'] > 0 ? date('Y-m-d H:i:s', $item['pay_time']) : '';
$item['refund_status_name'] = OrderEnum::refundStatus($item['refund_status']) ?? '';
$item['refund_type_name'] = OrderEnum::refundType($item['refund_type']) ?? '';