feat: 添加订单购物详情控制器及列表功能

This commit is contained in:
mkm 2024-06-05 11:04:37 +08:00
parent 516078ead1
commit f4e3f1bf43
5 changed files with 167 additions and 27 deletions

View File

@ -0,0 +1,29 @@
<?php
namespace app\admin\controller\store_order_cart_info;
use app\admin\controller\BaseAdminController;
use app\admin\lists\store_order_cart_info\StoreOrderCartInfoLists;
/**
* 订单购物详情控制器
* Class StoreOrderCartInfoController
* @package app\admin\controller\store_order_cart_info
*/
class StoreOrderCartInfoController extends BaseAdminController
{
/**
* @notes 获取订单购物详情列表
* @return \think\response\Json
* @author admin
* @date 2024/05/31 16:02
*/
public function lists()
{
return $this->dataLists(new StoreOrderCartInfoLists());
}
}

View File

@ -0,0 +1,66 @@
<?php
namespace app\admin\lists\store_order_cart_info;
use app\admin\lists\BaseAdminDataLists;
use app\common\enum\PayEnum;
use app\common\lists\ListsSearchInterface;
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
/**
* 订单购物详情列表
* Class StoreOrderCartInfoLists
* @package app\admin\store_order_cart_info
*/
class StoreOrderCartInfoLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
* @notes 设置搜索条件
* @return \string[][]
* @author admin
* @date 2024/05/31 16:02
*/
public function setSearch(): array
{
return [
'=' => ['oid'],
];
}
/**
* @notes 获取订单购物详情列表
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author admin
* @date 2024/05/31 16:02
*/
public function lists(): array
{
return StoreOrderCartInfo::where($this->searchWhere)
->field('cart_info')->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function ($item) {
$item['cart_info'] = json_decode($item['cart_info'], true); //将json字符串转换为数组方便使用其中的数据。
return $item; //返回处理后的数据。
})
->toArray();
}
/**
* @notes 获取订单购物详情数量
* @return int
* @author admin
* @date 2024/05/31 16:02
*/
public function count(): int
{
return StoreOrderCartInfo::where($this->searchWhere)->count();
}
}

View File

@ -90,14 +90,10 @@ class StoreOrderLogic extends BaseLogic
*/
public static function detail($params): array
{
$data= StoreOrder::findOrEmpty($params['id'])->toArray();
$data= StoreOrder::findOrEmpty($params['id']);
if($data){
$data['_info']=StoreOrderCartInfo::where('oid',$data['id'])->field('cart_info')
->select()->each(function ($item){
$item['cart_info']=json_decode($item['cart_info'],true);//将json字符串转换为数组方便使用其中的数据。
return $item;//返回处理后的数据。
});
$data['status_name']=$data->status_name_Text;
}
return $data;
return $data?->toArray();
}
}

View File

@ -39,13 +39,33 @@ class OrderEnum
const EXPENDITURE = 0;
const INCOME = 1;
//-----------------------物流状态-----------------------//
/**
* 状态
* @RECEIVED_GOODS 已收货
*/
const RECEIVED_GOODS = 2;
/**
* @WAIT_EVALUATION 待评价
*/
const WAIT_EVALUATION = 3;
/**
* @WAIT_DELIVERY 待发货
*/
const WAIT_DELIVERY = 0;
/**
* @WAIT_RECEIVING 待收货
*/
const WAIT_RECEIVING = 1;
/**
* @ALREADY_REFUND 申请退款
*/
const ALREADY_REFUND = -1;
/**
* @RETURN_SUCCESS 退款成功
*/
const RETURN_SUCCESS = -2;
/**
* 核销
@ -94,5 +114,22 @@ class OrderEnum
return $data[$value] ?? '';
}
/**
* @notes 获取订单状态类型
*/
public static function getOrderType($value = true)
{
$data = [
self::RECEIVED_GOODS => '已收货',
self::WAIT_EVALUATION => '待评价',
self::WAIT_DELIVERY => '待发货',
self::WAIT_RECEIVING => '待收货',
self::RETURN_SUCCESS => '退货成功',
self::ALREADY_REFUND => '已退款',
];
if ($value === true) {
return $data;
}
return $data[$value] ?? '';
}
}

View File

@ -2,7 +2,8 @@
namespace app\common\model\store_order;
use app\common\enum\OrderEnum;
use app\common\enum\PayEnum;
use app\common\model\BaseModel;
use app\common\model\system_store\SystemStore;
use think\model\concern\SoftDelete;
@ -24,4 +25,15 @@ class StoreOrder extends BaseModel
return $this->hasOne(SystemStore::class, 'id','store_id');
}
public function getPayTypeAttr($value, $data)
{
$status = PayEnum::getPaySceneDesc($value)??'';
return $status;
}
public function getStatusNameTextAttr($value, $data)
{
$status = OrderEnum::getOrderType($data['status'])??'';
return $status;
}
}