'timestamp', 'remind_time' => 'timestamp', 'express_time' => 'timestamp', 'confirm_time' => 'timestamp', 'cancel_time' => 'timestamp', 'user_delete_time' => 'timestamp', ]; /** * 获取状态名称 * @date 2021-03-01 */ public function getStatusTextAttr($value, $data) { return INTEGRAL_STATUS[$data['status']]['name']; } /** * 获取付款方式名称 * @date 2021-03-01 */ public function getPayTypeTextAttr($value, $data) { $pay_type_text = [ 0 => '0元单', 1 => '微信支付', 2 => '支付宝支付', 3 => '余额支付', 4 => '付呗微信', 5 => '付呗支付宝', ]; return $pay_type_text[$data['pay_type']]; } /** * 获取配送方式名称 * @date 2021-03-01 */ public function getDeliveryTypeTextAttr($value, $data) { $delivery_type_text = [ 0 => '无需配送', 1 => '邮寄', 2 => '自提' ]; return $delivery_type_text[$data['delivery_type']]; } /** * 通过last_id获取我的订单列表 * @param array $where 查询条件 * @param string $field 查询字段 * @date 2022-11-21 */ public function listMyOrderByLastId($where = [], $field = '*') { // 排序条件 $order = 'id desc'; // 每页加载条数 $per_page_number = 10; $data_list = $this->with(['integralOrderProduct']) ->where($where)->order($order)->field($field) ->limit($per_page_number)->select()->each(function ($item) { $item['status_text'] = $item->status_text; // 释放无用数据 foreach ($item['integralOrderProduct'] as $k => &$v) { // unset($v['refund_total_number']); // unset($v['refund_cur_number']); // unset($v['total_price']); } }); return $data_list; } /** * API-获取商品详情 * @date 2022-11-21 */ public function getMyOrder($where = [], $field = '*') { // 排序条件 $order = 'id desc'; $data = $this->with(['integralOrderProduct']) ->field($field)->where($where)->order($order) ->find(); if(isset($data['status'])){ // 状态显示文案 $data['status_text'] = $data->status_text; } if(isset($data['pay_type'])){ // 支付方式显示文案 $data['pay_type_text'] = $data->pay_type_text; } if(isset($data['delivery_type'])){ // 到货方式显示文案 $data['delivery_type_text'] = $data->delivery_type_text; } return $data; } /** * 下单人信息 * @date 2021-03-01 */ public function userInfo() { return $this->hasOne(UserInfo::class, 'user_id', 'user_id')->bind(['nick_name']); } /** * 一对多关联订单产品 * @date 2022-11-21 */ public function integralOrderProduct() { return $this->hasMany('IntegralOrderProduct', 'order_id', 'id') ->field('id,order_id,product_id,product_name,product_cover_img,product_type,is_product_spec_open,product_sku_name,product_integral,product_price,number'); } }