*/ class MakeDataCommand extends Command { /** * The name of command. * * @var string */ protected $name = 'make:data'; /** * The description of command. * * @var string */ protected $description = '制造数据'; /** * The type of class being generated. * * @var string */ protected $type = 'permission'; /** * Execute the command. * * @return void * @see fire() */ public function handle() { $days = 5; $startD = Carbon::now()->subDay($days); UserXuefen::query()->truncate(); UserJifen::query()->truncate(); Ranking::query()->truncate(); StatisticalResource::query()->truncate(); Order::query()->truncate(); OrderGood::query()->truncate(); ShopOrder::query()->truncate(); ShopOrderGood::query()->truncate(); Chengjiu::query()->truncate(); ShopGood::query()->update([ 'duihuan_nums' => 0, 'nums' => 1, ]); User::query()->update([ 'xuefen' => 0, 'jifen' => 0, 'yesterday_mingci' => 0, 'tag' => 0, 'tag_star' => 0, 'is_read_xin' => 0, 'xiaofei_jifen' => 0, 'last_update_time' => null, ]); Cache::flush(); // $day = '2024-11-02'; // $this->makeUserOrder($day); // sleep(10); // Artisan::call("statistical:user {$day}"); for ($i = 0; $i <= $days; $i++) { $day = $startD->clone()->addDays($i)->toDateString(); $this->line("数据:{$day}"); $this->makeUserOrder(Carbon::parse($day)->subDay()->toDateString()); Artisan::call("statistical:user {$day}"); $password = $this->secret('is Run'); } for ($i = 0; $i <= $days; $i++) { $day = $startD->clone()->addDays($i)->toDateString(); $this->line("数据:{$day}"); // if (in_array($day, ['2024-10-01', '2024-11-01', '2024-10-28', '2024-11-04'])) Artisan::call("make:statistical-resource {$day}"); Artisan::call("make:statistical-resource {$day}"); } $this->line('ok'); } public function makeUser($day, $is_init = false) { // $users = User::query()->inRandomOrder()->where('id', '<=', 4)->limit(50)->get(); $users = User::query()->where('id', '<=', 4)->get(); foreach ($users as $user) { $txf = random_int(100, 200); $isW = true; $utxf = 0; while ($isW) { $dxf = random_int(10, 100); if (($dxf + $utxf) <= $txf) { $utxf += $dxf; $xuefen = UserXuefen::query()->create([ 'day' => $day, 'user_id' => $user->id, 'user_xuefen' => ($user->xuefen + $utxf), 'xuefen' => $dxf, 'status' => ModelStatusEnum::OK, 'source_id' => 1, 'source_type' => Order::class, 'created_at' => Carbon::parse($day), 'updated_at' => Carbon::parse($day) ]); UserJifen::query()->create([ 'day' => $day, 'type' => UserJifenTypeEnum::xuefenduihuan, 'user_id' => $user->id, 'user_jifen' => ($user->jifen + $utxf), 'jifen' => $dxf, 'status' => ModelStatusEnum::OK, 'source_id' => 1, 'source_type' => Order::class, 'created_at' => Carbon::parse($day), 'updated_at' => Carbon::parse($day) ]); } else { $sy = $txf - $utxf; if ($sy) { $utxf += $sy; $xuefen = UserXuefen::query()->create([ 'day' => $day, 'user_id' => $user->id, 'user_xuefen' => ($user->xuefen + $utxf), 'xuefen' => $sy, 'status' => ModelStatusEnum::OK, 'source_id' => 1, 'source_type' => Order::class, 'created_at' => Carbon::parse($day), 'updated_at' => Carbon::parse($day) ]); UserJifen::query()->create([ 'day' => $day, 'type' => UserJifenTypeEnum::xuefenduihuan, 'user_id' => $user->id, 'user_jifen' => ($user->jifen + $utxf), 'jifen' => $sy, 'status' => ModelStatusEnum::OK, 'source_id' => 1, 'source_type' => Order::class, 'created_at' => Carbon::parse($day), 'updated_at' => Carbon::parse($day) ]); } else { $isW = false; } } } $user->xuefen += $txf; $user->jifen += $txf; $user->last_update_time = Carbon::parse($day); $user->save(); } } public function makeUserOrder($day, $is_init = false) { // $users = User::query()->limit(1)->get(); $users = User::query()->where('id', '<=', 50)->inRandomOrder()->limit(10)->get(); $startDate = Carbon::parse($day)->startOfDay(); $endDate = Carbon::parse($day)->endOfDay(); foreach ($users as $user) { $orderNums = random_int(1, 3); for ($i = 0; $i < $orderNums; $i++) { $randomDate = Carbon::instance( $startDate->copy()->addSeconds(random_int(0, $endDate->diffInSeconds($startDate))) ); $txf = random_int(1, 3); $da = []; $goods = Good::query()->inRandomOrder()->limit($txf)->get(); foreach ($goods as $good) { $da[] = [ 'ProductGroupID' => 9, 'ProductGroupSKUID' => 9, 'ProductName' => "大卫博士罐装内裤(青春版)", 'ProductCode' => $good['name'], 'SKUCode' => "青春版", 'AttributesVales' => [], 'Qty' => random_int(1, 10), ]; } $data = [ 'Type' => 1, 'RetailID' => 134, 'Code' => Order::makeNo(), 'OrderTime' => $randomDate->toDateTimeString(), 'AuthorizationCode' => $user->code, 'Domain' => "http://hnsystemse.njjinhao.top/", 'data' => $da ]; dispatch(new ImportOrderJob(json_encode($data, true))); } } } }