123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <?php
- namespace App\Console\Commands\Dwbs;
- use App\Jobs\Dwbs\ImportOrderJob;
- use App\Repositories\Enums\Dwbs\DayTypeEnum;
- use App\Repositories\Enums\Dwbs\UserJifenTypeEnum;
- use App\Repositories\Enums\ModelStatusEnum;
- use App\Repositories\Models\Base\Setting;
- use App\Repositories\Models\Base\User;
- use App\Repositories\Models\Dwbs\Chengjiu;
- use App\Repositories\Models\Dwbs\Good;
- use App\Repositories\Models\Dwbs\Order;
- use App\Repositories\Models\Dwbs\OrderGood;
- use App\Repositories\Models\Dwbs\Ranking;
- use App\Repositories\Models\Dwbs\ShopGood;
- use App\Repositories\Models\Dwbs\ShopOrder;
- use App\Repositories\Models\Dwbs\ShopOrderGood;
- use App\Repositories\Models\Dwbs\StatisticalResource;
- use App\Repositories\Models\Dwbs\UserJifen;
- use App\Repositories\Models\Dwbs\UserXuefen;
- use Carbon\Carbon;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\Artisan;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Crypt;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Str;
- /**
- * 制造数据
- * @package Prettus\Repository\Generators\Commands
- * @author Anderson Andrade <contato@andersonandra.de>
- */
- 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)));
- }
- }
- }
- }
|