Browse Source

Merge branch 'wzq-tx-fix' into test

# Conflicts:
#	modules/Channel/routes/route.php
zqwang 1 year ago
parent
commit
a1f064a0b4

+ 13 - 14
app/Console/Commands/Statistic/CompanyDayCharge.php

@@ -49,20 +49,19 @@ class CompanyDayCharge extends Command
                     DB::raw("sum(if(status <> 'unpaid' and order_type not in ('coin', 'first_coin'), 1, 0)) as vip_pay_count"),
                     DB::raw("sum(if(status <> 'unpaid' and order_type not in ('coin', 'first_coin'), 1, 0)) as vip_pay_count"),
                     DB::raw("sum(if(status = 'unpaid' and order_type not in ('coin', 'first_coin'), 1, 0)) as vip_unpay_count"),
                     DB::raw("sum(if(status = 'unpaid' and order_type not in ('coin', 'first_coin'), 1, 0)) as vip_unpay_count"),
                 )->first();
                 )->first();
-            if($info) {
-                DB::table('tj_company_day_charge')
-                    ->insert([
-                        'day_at' => $date,
-                        'pay_money' => $info->pay_money,
-                        'common_pay_count' => $info->common_pay_count,
-                        'common_unpay_count' => $info->common_unpay_count,
-                        'vip_pay_count' => $info->vip_pay_count,
-                        'vip_unpay_count' => $info->vip_unpay_count,
-                        'company_uid' => $companyUid,
-                        'created_at' => $now,
-                        'updated_at' => $now,
-                    ]);
-            }
+            DB::table('tj_company_day_charge')
+                ->insert([
+                    'day_at' => $date,
+                    'pay_money' => $info->pay_money ?? 0,
+                    'common_pay_count' => $info->common_pay_count ?? 0,
+                    'common_unpay_count' => $info->common_unpay_count ?? 0,
+                    'vip_pay_count' => $info->vip_pay_count ?? 0,
+                    'vip_unpay_count' => $info->vip_unpay_count ?? 0,
+                    'company_uid' => $companyUid,
+                    'created_at' => $now,
+                    'updated_at' => $now,
+                ]);
+
         }
         }
 
 
     }
     }

+ 12 - 15
app/Console/Commands/Statistic/CompanyMonthCharge.php

@@ -54,21 +54,18 @@ class CompanyMonthCharge extends Command
                     DB::raw("sum(vip_unpay_count) as vip_unpay_count"),
                     DB::raw("sum(vip_unpay_count) as vip_unpay_count"),
                     DB::raw("sum(vip_pay_count) as vip_pay_count"),
                     DB::raw("sum(vip_pay_count) as vip_pay_count"),
                 )->first();
                 )->first();
-            $now = date('Y-m-d H:i:s');
-            if($info) {
-                DB::table('tj_company_month_charge')
-                    ->insert([
-                        'month_at' => $month,
-                        'pay_money' => $info->pay_money,
-                        'common_pay_count' => $info->common_pay_count,
-                        'common_unpay_count' => $info->common_unpay_count,
-                        'vip_pay_count' => $info->vip_pay_count,
-                        'vip_unpay_count' => $info->vip_unpay_count,
-                        'company_uid' => $companyUid,
-                        'created_at' => $now,
-                        'updated_at' => $now,
-                    ]);
-            }
+            DB::table('tj_company_month_charge')
+                ->insert([
+                    'month_at' => $month,
+                    'pay_money' => $info->pay_money ?? 0,
+                    'common_pay_count' => $info->common_pay_count ?? 0,
+                    'common_unpay_count' => $info->common_unpay_count ?? 0,
+                    'vip_pay_count' => $info->vip_pay_count ?? 0,
+                    'vip_unpay_count' => $info->vip_unpay_count ?? 0,
+                    'company_uid' => $companyUid,
+                    'created_at' => $now,
+                    'updated_at' => $now,
+                ]);
         }
         }
     }
     }
 }
 }

+ 6 - 5
app/Console/Commands/Statistic/OptimizerMonthCharge.php

@@ -59,7 +59,12 @@ class OptimizerMonthCharge extends Command
                 ->get();
                 ->get();
             $insertData = [];
             $insertData = [];
             foreach ($result as $item) {
             foreach ($result as $item) {
-                $info = (array)$item;
+                $info['pay_money'] = $item->pay_money ?? 0;
+                $info['common_pay_count'] = $item->common_pay_count ?? 0;
+                $info['common_unpay_count'] = $item->common_unpay_count ?? 0;
+                $info['vip_unpay_count'] = $item->vip_unpay_count ?? 0;
+                $info['vip_pay_count'] = $item->vip_pay_count ?? 0;
+                $info['miniprogram_id'] = $item->miniprogram_id ?? 0;
                 $info['created_at'] = $info['updated_at'] = $now;
                 $info['created_at'] = $info['updated_at'] = $now;
                 $info['month_at'] = $month;
                 $info['month_at'] = $month;
                 $info['user_id'] = $userId;
                 $info['user_id'] = $userId;
@@ -70,9 +75,5 @@ class OptimizerMonthCharge extends Command
             DB::table('tj_optimizer_month_charge')
             DB::table('tj_optimizer_month_charge')
                 ->insert($insertData);
                 ->insert($insertData);
         }
         }
-
-
-        DB::table('tj_optimizer_month_charge')
-            ->insert($insertData);
     }
     }
 }
 }

+ 58 - 0
app/Console/Commands/Statistic/PromotionDayCharge.php

@@ -81,6 +81,64 @@ class PromotionDayCharge extends Command
             DB::table('tj_optimizer_day_charge')
             DB::table('tj_optimizer_day_charge')
                 ->insert($items->values()->toArray());
                 ->insert($items->values()->toArray());
         }
         }
+
+
+        DB::table('promotions')
+            ->leftJoin('users', 'users.id', '=' , 'promotions.uid')
+            ->select('promotions.id', 'promotions.uid', 'promotions.miniprogram_id', 'users.pid as puid')
+            ->orderBy('promotions.id')
+            ->chunk(100, function ($items) use ($date){
+                $promotionIds = $items->pluck('id');
+                $now = date('Y-m-d H:i:s');
+                $alreadyExistsPromotionIds = DB::table('tj_promotion_day_charge')
+                    ->where('day_at', $date)
+                    ->whereIn('promotion_id', $promotionIds)
+                    ->select('promotion_id')
+                    ->get()->pluck('promotion_id');
+                foreach ($items as $item) {
+                    if($alreadyExistsPromotionIds->contains($item->id)) {
+                        continue;
+                    }
+                    DB::table('tj_promotion_day_charge')
+                        ->insert([
+                            'promotion_id' => $item->id, 'day_at' => $date,
+                            'created_at' => $now, 'updated_at' => $now,
+                            'user_id' => $item->uid, 'puser_id' => $item->puid,
+                            'miniprogram_id' => $item->miniprogram_id
+                        ]);
+                }
+            });
+
+        DB::table('users')
+            ->join('user_has_roles', 'users.id', 'user_has_roles.user_id')
+            ->where(['user_has_roles.role_id' => 2, 'users.deleted_at' => 0])
+            ->distinct()
+            ->select('users.id', 'users.pid')
+            ->orderBy('users.id')
+            ->chunk(50, function ($items) use($date) {
+                $now = date('Y-m-d H:i:s');
+                foreach ($items as $item) {
+                    $miniprogramIds = DB::table('user_has_miniprograms')
+                        ->where('uid', $item->id)
+                        ->where('is_enabled', 1)
+                        ->select('miniprogram_id')
+                        ->get()->pluck('miniprogram_id');
+                    foreach ($miniprogramIds as $miniprogramId) {
+                        if(DB::table('tj_optimizer_day_charge')
+                            ->where([
+                                'day_at' => $date,
+                                'user_id' => $item->id, 'miniprogram_id' => $miniprogramId,
+                            ])->exists()) {
+                            continue;
+                        }
+                        DB::table('tj_optimizer_day_charge')
+                            ->insert([
+                                'day_at' => $date, 'user_id' => $item->id, 'miniprogram_id' => $miniprogramId,
+                                'puser_id' => $item->pid, 'created_at' => $now, 'updated_at' => $now
+                            ]);
+                    }
+                }
+            });
     }
     }
 
 
     /**
     /**

+ 4 - 0
modules/Channel/routes/route.php

@@ -50,6 +50,10 @@ Route::prefix('channel')->group(function () {
     Route::any('miniprogram/use_list', [\Modules\Channel\Http\Controllers\OrdersController::class, 'userUseList']);
     Route::any('miniprogram/use_list', [\Modules\Channel\Http\Controllers\OrdersController::class, 'userUseList']);
     Route::any('promotions/users', [\Modules\Channel\Http\Controllers\OrdersController::class, 'promotionsUsers']);
     Route::any('promotions/users', [\Modules\Channel\Http\Controllers\OrdersController::class, 'promotionsUsers']);
 
 
+    Route::prefix('companyUser')->group(function(){
+        Route::get('list', [CompanyUserController::class, 'list']);
+    });
+
 
 
     /**
     /**
      * 第三方开放平台
      * 第三方开放平台

+ 1 - 0
modules/Statistic/routes/route.php

@@ -35,6 +35,7 @@ Route::prefix('statistic')->group(function(){
         Route::get('lastMonthCharge', [ChargeTJController::class, 'lastMonthCharge']);
         Route::get('lastMonthCharge', [ChargeTJController::class, 'lastMonthCharge']);
         Route::get('totalCharge', [ChargeTJController::class, 'totalCharge']);
         Route::get('totalCharge', [ChargeTJController::class, 'totalCharge']);
     });
     });
+
     // 投入产出
     // 投入产出
     Route::prefix('roi')->group(function(){
     Route::prefix('roi')->group(function(){
         Route::get('list', [ROITJController::class, 'list']);
         Route::get('list', [ROITJController::class, 'list']);

+ 1 - 1
modules/System/Services/Notice/NoticesService.php

@@ -149,7 +149,7 @@ class NoticesService
             $where[] = ['notices.title', 'like', "%" . $title . "%"];
             $where[] = ['notices.title', 'like', "%" . $title . "%"];
         }
         }
 
 
-        $list = UserNotice::leftJoin('notices', 'notices.id', "user_notice.notice_id")->where($where)->select('notices.id', 'notices.title', 'notices.is_popup', "user_notice.is_read", 'notices.created_at')
+        $list = DB::table('user_notice')->leftJoin('notices', 'notices.id', "user_notice.notice_id")->where($where)->select('notices.id', 'notices.title', 'notices.is_popup', "user_notice.is_read", 'notices.created_at')
             ->orderBy('notices.created_at', 'desc')->orderBy('sort', 'desc')->paginate($pageSize);
             ->orderBy('notices.created_at', 'desc')->orderBy('sort', 'desc')->paginate($pageSize);
         if (!$list->isEmpty()) {
         if (!$list->isEmpty()) {
             foreach ($list as $val) {
             foreach ($list as $val) {

+ 19 - 0
tests/Console/Commands/Statistic/PromotionDayChargeTest.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace Tests\Console\Commands\Statistic;
+
+use App\Console\Commands\Statistic\PromotionDayCharge;
+use PHPUnit\Framework\TestCase;
+
+class PromotionDayChargeTest extends \Tests\TestCase
+{
+
+    public function testHandle()
+    {
+        for($i = 0; $i > -27; $i--) {
+            $date = date('Y-m-d', strtotime(sprintf('%s day', $i)));
+            $data[] = 'php artisan Statistic:CompanyDayCharge --date='.$date;
+        }
+        dump(join(' && ', $data));
+    }
+}