From f4e3f1bf43b76aea52e1c0bb55e10ded53efdec8 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Wed, 5 Jun 2024 11:04:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=AF=A6=E6=83=85=E6=8E=A7=E5=88=B6=E5=99=A8?= =?UTF-8?q?=E5=8F=8A=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StoreOrderCartInfoController.php | 29 +++++++ .../StoreOrderCartInfoLists.php | 66 ++++++++++++++++ .../logic/store_order/StoreOrderLogic.php | 10 +-- app/common/enum/OrderEnum.php | 75 ++++++++++++++----- app/common/model/store_order/StoreOrder.php | 14 +++- 5 files changed, 167 insertions(+), 27 deletions(-) create mode 100644 app/admin/controller/store_order_cart_info/StoreOrderCartInfoController.php create mode 100644 app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php diff --git a/app/admin/controller/store_order_cart_info/StoreOrderCartInfoController.php b/app/admin/controller/store_order_cart_info/StoreOrderCartInfoController.php new file mode 100644 index 000000000..fd4516519 --- /dev/null +++ b/app/admin/controller/store_order_cart_info/StoreOrderCartInfoController.php @@ -0,0 +1,29 @@ +dataLists(new StoreOrderCartInfoLists()); + } + +} \ No newline at end of file diff --git a/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php b/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php new file mode 100644 index 000000000..93387ee20 --- /dev/null +++ b/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php @@ -0,0 +1,66 @@ + ['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(); + } +} diff --git a/app/admin/logic/store_order/StoreOrderLogic.php b/app/admin/logic/store_order/StoreOrderLogic.php index e515e6383..83f6aba10 100644 --- a/app/admin/logic/store_order/StoreOrderLogic.php +++ b/app/admin/logic/store_order/StoreOrderLogic.php @@ -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(); } } \ No newline at end of file diff --git a/app/common/enum/OrderEnum.php b/app/common/enum/OrderEnum.php index 43dceeedd..170738636 100644 --- a/app/common/enum/OrderEnum.php +++ b/app/common/enum/OrderEnum.php @@ -36,16 +36,36 @@ class OrderEnum * @EXPENDITURE 支出 * @INCOME 收入 */ - const EXPENDITURE =0; - const INCOME =1; - + 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; /** * 核销 @@ -61,11 +81,11 @@ class OrderEnum * @SUPPLIER 供应链 * @SYSTEM 系统 */ - const USER =0; - const MERCHANT =1; - const PLATFORM =2; - const SUPPLIER =3; - const SYSTEM=4; + const USER = 0; + const MERCHANT = 1; + const PLATFORM = 2; + const SUPPLIER = 3; + const SYSTEM = 4; /** * @notes 获取支付类型 @@ -77,14 +97,14 @@ class OrderEnum public static function getFinancialType($value = true) { $data = [ - self::USER_ORDER_PAY=>'用户订单支付', - self::MERCHANT_ORDER_PAY=>'商户订单支付', - self::PLATFORM_ORDER_PAY=>'平台订单支付', - self::MERCHANT_ORDER_OBTAINS=>'商户订单获得', - self::ORDER_HANDLING_FEES=>'订单手续费', - self::PLATFORM_ORDER_OBTAINS=>'平台订单获得', - self::SUPPLIER_ORDER_OBTAINS=>'供应商订单获得', - self::SYSTEM_SET=>'平台设置', + self::USER_ORDER_PAY => '用户订单支付', + self::MERCHANT_ORDER_PAY => '商户订单支付', + self::PLATFORM_ORDER_PAY => '平台订单支付', + self::MERCHANT_ORDER_OBTAINS => '商户订单获得', + self::ORDER_HANDLING_FEES => '订单手续费', + self::PLATFORM_ORDER_OBTAINS => '平台订单获得', + self::SUPPLIER_ORDER_OBTAINS => '供应商订单获得', + self::SYSTEM_SET => '平台设置', ]; @@ -94,5 +114,22 @@ class OrderEnum return $data[$value] ?? ''; } - -} \ No newline at end of file + /** + * @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] ?? ''; + } +} diff --git a/app/common/model/store_order/StoreOrder.php b/app/common/model/store_order/StoreOrder.php index cdd968394..14fea056d 100644 --- a/app/common/model/store_order/StoreOrder.php +++ b/app/common/model/store_order/StoreOrder.php @@ -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; + } }