0, 11 => 1, 12 => 2]; public function handle() { $datetime = $this->getDateTime(); $basePackages = $this->getBasePackages()->toArray(); $renewalPackages = $this->getRenewalPackages()->toArray(); $flowPackages = $this->getFlowPackages()->toArray(); $packages = array_merge($basePackages, $renewalPackages, $flowPackages); foreach ($packages as &$item) { $item['id'] = ($item['type'] + 1) * 1000000 + $item['id']; } Package::upsert($packages, 'id'); app(PackageRepository::class)->forgetCached(); } // 基础包 protected function getBasePackages() { $packages = DB::connection('vd_old')->table('ckb_package')->get(); return $packages->map(function ($item) { return [ 'id' => $item->id, 'sn' => $item->package_sn, 'name' => $item->name, 'type' => 0, 'carrier_operator' => self::$carrier_operator[$item->carrieroperator], 'cost_price' => $item->price * 100, 'guide_price' => intval($item->package_rp) * 100, 'flows' => ($item->tag == 10) ? intval($item->package_value) : 0, 'voices' => ($item->tag == 11) ? intval($item->package_value) : 0, 'messages' => 0, 'has_messages' => 0, 'has_lbs' => 0, 'reset_months' => ($item->unit === 'year') ? $item->value * 12 : $item->value, 'service_months' => ($item->cycle_unit === 'year') ? $item->cycle_value * 12 : $item->cycle_value, 'effect_months' => 0, 'delay_months' => 0, 'description' => $item->description ?: '', 'created_at' => date('Y-m-d H:i:s', $item->create_time), 'updated_at' => date('Y-m-d H:i:s', $item->update_time), 'deleted_at' => $item->del ? date('Y-m-d H:i:s', $item->update_time) : null, ]; }); } // 续费包 protected function getRenewalPackages() { $packages = DB::connection('vd_old')->table('ckb_add_value_package')->where('type', 1)->get(); return $packages->map(function ($item) { return [ 'id' => $item->id, 'sn' => $item->package_sn, 'name' => $item->package_name, 'type' => 1, 'carrier_operator' => self::$carrier_operator[$item->operator], 'cost_price' => floatval($item->price) * 100, 'guide_price' => floatval($item->guide_price) * 100, 'flows' => empty($item->flows) ? 0 : $item->flows, 'voices' => empty($item->voice_num) ? 0 : $item->voice_num, 'messages' => empty($item->sms_num) ? 0 : $item->sms_num, 'has_messages' => empty($item->sms_num) ? 0 : 1, 'has_lbs' => ($item->LBS === 10) ? 1 : 0, 'reset_months' => $item->flows_cycle, 'service_months' => $item->service_cycle, 'effect_months' => ($item->buy_enabled == 10) ? 0 : 1, 'delay_months' => ($item->service_extend == 10) ? 1 : 0, 'description' => $item->package_text ?: '', 'created_at' => date('Y-m-d H:i:s', $item->create_time), 'updated_at' => date('Y-m-d H:i:s', $item->update_time), 'deleted_at' => $item->del ? date('Y-m-d H:i:s', $item->update_time) : null, ]; }); } // 加油包 protected function getFlowPackages() { $packages = DB::connection('vd_old')->table('ckb_add_value_package')->where('type', 2)->get(); return $packages->map(function ($item) { return [ 'id' => $item->id, 'sn' => $item->package_sn, 'name' => $item->package_name, 'type' => 2, 'carrier_operator' => self::$carrier_operator[$item->operator], 'cost_price' => floatval($item->price) * 100, 'guide_price' => floatval($item->guide_price) * 100, 'flows' => empty($item->flows) ? 0 : $item->flows, 'voices' => empty($item->voice_num) ? 0 : $item->voice_num, 'messages' => empty($item->sms_num) ? 0 : $item->sms_num, 'has_messages' => empty($item->sms_num) ? 0 : 1, 'has_lbs' => ($item->LBS === 10) ? 1 : 0, 'reset_months' => $item->flows_cycle, 'service_months' => $item->service_cycle, 'effect_months' => ($item->buy_enabled == 10) ? 0 : 1, 'delay_months' => ($item->service_extend == 10) ? 1 : 0, 'description' => $item->package_text ?: '', 'created_at' => date('Y-m-d H:i:s', $item->create_time), 'updated_at' => date('Y-m-d H:i:s', $item->update_time), 'deleted_at' => $item->del ? date('Y-m-d H:i:s', $item->update_time) : null, ]; }); } }