$model->bike_no, 'box_no' => $model->box_no, 'battery_power' => $model->battery_power, 'riding_bike_mileage' => (new BatteryHandler())->byElectricGetMileage($model->battery_power), 'is_link' => $model->is_link, 'put_status' => $model->put_status, 'is_low_battery_power' => $model->is_low_battery_power, 'is_trouble' => $model->is_trouble, 'is_riding' => $model->is_riding, 'status' => $model->status, 'activity' => $this->activity($model->put_area_id) ]; } public function activity($bike_area_id) { $key = sprintf(CacheMap::AREA_SETTING_AREA_ID, $bike_area_id);; $areaSetting = Cache::remember($key, CacheMap::CACHE_TIME, function () use ($bike_area_id) { return AreaSetting::query()->where('area_id', $bike_area_id)->first(); }); if (empty($areaSetting)) return ''; if ($areaSetting->is_minute_free == AreaSetting::FREE_MINUTE_OK) { $times = ''; if ($areaSetting->minute_free_times > 0) { $times = "(每日限制 " . $areaSetting->minute_free_times . "次)"; } return $areaSetting->many_minute_free . '分钟(包含)内免费骑行' . $times; } else { return ''; } } public function isLowBatteryPower($model) { $area_id = $model->put_area_id; if ($area_id && !$model->is_low_battery_power) { $batteryPower = (new AreaSettingRepository(new AreaSetting()))->byAreaIdGetBatteryPower($area_id); if ($batteryPower > $model->battery_power) { return Bike::BATTERY_POWER_LOW; } return Bike::BATTERY_POWER_OK; } return $model->is_low_battery_power; } }