1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- /*
- * This file is part of the Jiannei/lumen-api-starter.
- *
- * (c) Jiannei <longjian.huang@foxmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace App\Repositories\Transformers;
- use App\Models\Device;
- use App\Models\Order;
- use App\Repositories\Enums\DeviceLineEnum;
- use App\Repositories\Enums\DeviceLuTypeEnum;
- use App\Repositories\Enums\DeviceStatusEnum;
- use App\Repositories\Enums\DeviceUseStatusEnum;
- use App\Repositories\Enums\DeviceWaterLevelEnum;
- use App\Repositories\Enums\OrderStatusEnum;
- use League\Fractal\TransformerAbstract;
- class DeviceTransformer extends TransformerAbstract
- {
- public function transform(Device $device)
- {
- $data = [
- 'id' => $device->id,
- 'no' => $device->no,
- 'type' => $device->type,
- 'temperature' => $device->temperature ?? '未知',
- 'water_level_warning' => $device->water_level_warning,
- 'water_level_warning_text' => DeviceWaterLevelEnum::getDescription($device->water_level_warning),
- 'water_quality' => $device->water_quality ?? '未知',
- 'last_update_time' => $device->last_update_time,
- 'a' => $device->a,
- 'a_test' => DeviceLuTypeEnum::getDescription($device->a),
- 'b' => $device->b,
- 'b_test' => DeviceLuTypeEnum::getDescription($device->b),
- 'is_use' => $device->is_use,
- 'is_use_text' => DeviceUseStatusEnum::getDescription($device->is_use),
- 'is_line' => $device->is_line,
- 'is_line_text' => DeviceLineEnum::getDescription($device->is_line),
- 'shop_id' => $device->shop_id,
- 'status' => $device->status,
- 'status_text' => DeviceStatusEnum::getDescription($device->status),
- 'day_money' => Order::query()->whereDate('pay_time', date("Y-m-d"))->where('device_id', $device->id)->where('status', OrderStatusEnum::ORDER_OVER)->sum('pay_money'),
- 'work_time' => Order::query()->whereDate('pay_time', date("Y-m-d"))->where('device_id', $device->id)->where('status', OrderStatusEnum::ORDER_OVER)->sum('work_time'),
- 'shop' => $this->shop($device)
- ];
- return $data;
- }
- public function shop($device)
- {
- if (!$device->shop) return [];
- return $device->shop->only(['a_minute_money', 'b_minute_money', 'ab_minute_money', 'times', 'name']);
- }
- }
|