|
@@ -12,7 +12,7 @@ class OptimizerMonthCharge extends Command
|
|
|
*
|
|
|
* @var string
|
|
|
*/
|
|
|
- protected $signature = 'Statistic:OptimizerMonthCharge {--month= : 统计月份}';
|
|
|
+ protected $signature = 'Statistic:OptimizerMonthCharge {--month= : 统计月份} {--user_ids= : 投手uids}';
|
|
|
|
|
|
/**
|
|
|
* The console command description.
|
|
@@ -26,33 +26,52 @@ class OptimizerMonthCharge extends Command
|
|
|
*/
|
|
|
public function handle(): void
|
|
|
{
|
|
|
- //tj_optimizer_month_charge
|
|
|
- $month = $this->option('month');
|
|
|
+ $month = $this->option('month') ?? date('Y-m', strtotime('last month'));
|
|
|
$monthStart = $month. '-01';
|
|
|
$montEnd = date_sub(date_add(date_create($monthStart),
|
|
|
date_interval_create_from_date_string('1 month')),
|
|
|
date_interval_create_from_date_string('1 day'))->format('Y-m-d');
|
|
|
|
|
|
- $result = DB::table('tj_optimizer_day_charge')
|
|
|
- ->whereBetween('day_at', [$monthStart, $montEnd])
|
|
|
- ->select(
|
|
|
- 'user_id', 'miniprogram_id','puser_id',
|
|
|
- DB::raw("sum(pay_money) as pay_money"),
|
|
|
- DB::raw("sum(common_pay_count) as common_pay_count"),
|
|
|
- DB::raw("sum(common_unpay_count) as common_unpay_count"),
|
|
|
- DB::raw("sum(vip_unpay_count) as vip_unpay_count"),
|
|
|
- DB::raw("sum(vip_pay_count) as vip_pay_count"),
|
|
|
- )->groupBy(['user_id', 'puser_id','miniprogram_id'])
|
|
|
- ->get();
|
|
|
- $insertData = [];
|
|
|
+ $user_ids = $this->option('user_ids');
|
|
|
+ if($user_ids) {
|
|
|
+ $userIds = explode(',', $user_ids);
|
|
|
+ } else {
|
|
|
+ $userIds = DB::table('user_has_roles')
|
|
|
+ ->where(['role_id' => 2])
|
|
|
+ ->select('user_id')
|
|
|
+ ->get()->pluck('user_id');
|
|
|
+ }
|
|
|
+
|
|
|
$now = date('Y-m-d H:i:s');
|
|
|
- foreach ($result as $item) {
|
|
|
- $info = (array)$item;
|
|
|
- $info['created_at'] = $info['updated_at'] = $now;
|
|
|
- $info['month_at'] = $month;
|
|
|
- $insertData[] = $info;
|
|
|
+ foreach ($userIds as $userId) {
|
|
|
+ $puser_id = DB::table('users')->where('id', $userId)->value('pid');
|
|
|
+ $result = DB::table('tj_optimizer_day_charge')
|
|
|
+ ->whereBetween('day_at', [$monthStart, $montEnd])
|
|
|
+ ->where('user_id', $userId)
|
|
|
+ ->select(
|
|
|
+ 'miniprogram_id',
|
|
|
+ DB::raw("sum(pay_money) as pay_money"),
|
|
|
+ DB::raw("sum(common_pay_count) as common_pay_count"),
|
|
|
+ DB::raw("sum(common_unpay_count) as common_unpay_count"),
|
|
|
+ DB::raw("sum(vip_unpay_count) as vip_unpay_count"),
|
|
|
+ DB::raw("sum(vip_pay_count) as vip_pay_count"),
|
|
|
+ )->groupBy('miniprogram_id')
|
|
|
+ ->get();
|
|
|
+ $insertData = [];
|
|
|
+ foreach ($result as $item) {
|
|
|
+ $info = (array)$item;
|
|
|
+ $info['created_at'] = $info['updated_at'] = $now;
|
|
|
+ $info['month_at'] = $month;
|
|
|
+ $info['user_id'] = $userId;
|
|
|
+ $info['puser_id'] = $puser_id;
|
|
|
+ $insertData[] = $info;
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::table('tj_optimizer_month_charge')
|
|
|
+ ->insert($insertData);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
DB::table('tj_optimizer_month_charge')
|
|
|
->insert($insertData);
|
|
|
}
|