统计调整
parent
2ae08ffc8c
commit
f9b3fd5799
|
|
@ -6,7 +6,9 @@ use App\Model\Order;
|
|||
use App\Model\Report\ReportDaySeller;
|
||||
use App\Model\Seller\Seller;
|
||||
use App\Model\Seller\ShopBill;
|
||||
use App\Utils\Helps;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class GenerateDaySeller extends Command
|
||||
{
|
||||
|
|
@ -51,20 +53,31 @@ class GenerateDaySeller extends Command
|
|||
|
||||
public function report(Seller $seller, $cdate)
|
||||
{
|
||||
$chupiaoMoney = Order::usable()
|
||||
$chupiaoMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_money, money)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('draft_date', $cdate)
|
||||
->where('draft_user_id', $seller->id)
|
||||
->sum('money');
|
||||
|
||||
$sendMoney = Order::usable()
|
||||
->first();
|
||||
$chupiaoMoney = $chupiaoMoneyRow ? $chupiaoMoneyRow->m : 0;
|
||||
$sendMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_send_prize, lottery_send_prize)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('send_date', $cdate)
|
||||
->where('send_user_id', $seller->id)
|
||||
->sum('lottery_send_prize');
|
||||
->first();
|
||||
$sendMoney = $sendMoneyRow ? $sendMoneyRow->m : 0;
|
||||
|
||||
$winMoney = Order::usable()
|
||||
$winMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_should_send_prize, lottery_should_send_prize)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('draft_date', $cdate)
|
||||
->where('draft_user_id', $seller->id)
|
||||
->sum('lottery_should_send_prize');
|
||||
->first();
|
||||
$winMoney = $winMoneyRow ? $winMoneyRow->m : 0;
|
||||
|
||||
$incrMoney = ShopBill::where('created_date', $cdate)
|
||||
->where('type', ShopBill::TYPE_SELLER_INCR)
|
||||
|
|
@ -85,11 +98,11 @@ class GenerateDaySeller extends Command
|
|||
$report->seller_id = $seller->id;
|
||||
$report->shop_id = $seller->shop_id;
|
||||
$report->cdate = $cdate;
|
||||
$report->chupiao_money = $chupiaoMoney;
|
||||
$report->send_prize = $sendMoney;
|
||||
$report->win_prize = $winMoney;
|
||||
$report->incr_money = $incrMoney;
|
||||
$report->reduce_money = $reduceMoney;
|
||||
$report->chupiao_money = Helps::floatFormat($chupiaoMoney);
|
||||
$report->send_prize = Helps::floatFormat($sendMoney);
|
||||
$report->win_prize = Helps::floatFormat($winMoney);
|
||||
$report->incr_money = Helps::floatFormat($incrMoney);
|
||||
$report->reduce_money = Helps::floatFormat($reduceMoney);
|
||||
$report->save();
|
||||
return $report;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ use App\Model\Customer\Customer;
|
|||
use App\Model\Customer\CustomerBill;
|
||||
use App\Model\Customer\CustomerWithdraw;
|
||||
use App\Model\Order;
|
||||
use App\Model\Report\ReportDaySeller;
|
||||
use App\Model\Report\ReportDayShop;
|
||||
use App\Model\Seller\Seller;
|
||||
use App\Model\Seller\Shop;
|
||||
use App\Model\Seller\ShopBill;
|
||||
use App\Model\Seller\ShopCooperateBill;
|
||||
use App\Utils\Helps;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
|
@ -61,20 +61,32 @@ class GenerateDayShop extends Command
|
|||
|
||||
public function report(Shop $shop, $cdate)
|
||||
{
|
||||
$chupiaoMoney = Order::usable()
|
||||
$chupiaoMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_money, money)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('draft_date', $cdate)
|
||||
->where('draft_shop_id', $shop->id)
|
||||
->sum('money');
|
||||
->first();
|
||||
$chupiaoMoney = Helps::floatFormat($chupiaoMoneyRow ? $chupiaoMoneyRow->m : 0);
|
||||
|
||||
$sendMoney = Order::usable()
|
||||
$sendMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_send_prize, lottery_send_prize)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('send_date', $cdate)
|
||||
->where('draft_shop_id', $shop->id)
|
||||
->sum('lottery_send_prize');
|
||||
->first();
|
||||
$sendMoney = Helps::floatFormat($sendMoneyRow ? $sendMoneyRow->m : 0);
|
||||
|
||||
$winMoney = Order::usable()
|
||||
$winMoneyRow = Order::select([
|
||||
DB::raw('sum(IF(type = 3, union_should_send_prize, lottery_should_send_prize)) as m')
|
||||
])
|
||||
->usable()
|
||||
->where('draft_date', $cdate)
|
||||
->where('draft_shop_id', $shop->id)
|
||||
->sum('lottery_should_send_prize');
|
||||
->first();
|
||||
$winMoney = Helps::floatFormat($winMoneyRow ? $winMoneyRow->m : 0);
|
||||
|
||||
$withDraw = CustomerWithdraw::where('shop_id', $shop->id)
|
||||
->where('created_at', 'like', '%' . date('Y-m-d', strtotime($cdate)) . '%')
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Console\Commands\Report;
|
||||
|
||||
use App\Enums\OrderType;
|
||||
use App\Model\Order;
|
||||
use App\Model\Report\ReportDayWin;
|
||||
use Illuminate\Console\Command;
|
||||
|
|
@ -41,23 +42,37 @@ class GenerateDayWin extends Command
|
|||
}
|
||||
$winOrders = Order::where('win_date', $cdate)->get();
|
||||
foreach ($winOrders as $order) {
|
||||
$this->report($order);
|
||||
}
|
||||
}
|
||||
|
||||
$report = ReportDayWin::where('cdate', $cdate)
|
||||
public function report($order)
|
||||
{
|
||||
if (!$order) {
|
||||
return;
|
||||
}
|
||||
$report = ReportDayWin::where('cdate', $order->win_date)
|
||||
->where('order_id', $order->id)
|
||||
->first();
|
||||
if (!$report) {
|
||||
$report = new ReportDayWin();
|
||||
}
|
||||
$report->cdate = $cdate;
|
||||
$report->cdate = $order->win_date;
|
||||
$report->customer_id = $order->customer_id;
|
||||
$report->order_id = $order->id;
|
||||
$report->shop_id = $order->shop_id;
|
||||
$report->lottery_id = $order->lottery_id;
|
||||
if ($order->type == OrderType::UNION) {
|
||||
$report->order_money = $order->union_money;
|
||||
$report->order_prize = $order->union_should_send_prize;
|
||||
$report->order_tax_prize = $order->union_send_prize;
|
||||
$report->order_send_prize = $order->union_send_prize;
|
||||
} else {
|
||||
$report->order_money = $order->money;
|
||||
$report->order_prize = $order->lottery_prize;
|
||||
$report->order_tax_prize = $order->lottery_tax_prize;
|
||||
$report->order_send_prize = $order->lottery_send_prize;
|
||||
}
|
||||
$report->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use App\Console\Commands\Report\GenerateDaySeller;
|
||||
use App\Console\Commands\Report\GenerateDayShop;
|
||||
use App\Console\Commands\Report\GenerateDayWin;
|
||||
use App\Enums\LottState;
|
||||
use App\Model\Order;
|
||||
use App\Model\Seller\Seller;
|
||||
use App\Model\Seller\Shop;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class ReportOrderDataJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
protected $orderId;
|
||||
|
||||
public function __construct($orderId)
|
||||
{
|
||||
$this->orderId = $orderId;
|
||||
$this->queue = config('queue.names.order_attr_change');
|
||||
}
|
||||
public function handle()
|
||||
{
|
||||
Log::info('ReportOrderDataJob start ~~~, orderId:'. $this->orderId);
|
||||
$order = Order::find($this->orderId);
|
||||
if (!$order) {
|
||||
return;
|
||||
}
|
||||
$allowStates = [LottState::DRAFT, LottState::WIN, LottState::WAIT, LottState::SEND, LottState::REVOKE];
|
||||
if (in_array($order->lottery_state,$allowStates)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$daySeller = new GenerateDaySeller();
|
||||
if ($order->lottery_state == LottState::DRAFT) {
|
||||
$seller = Seller::find($order->receive_user_id);
|
||||
$date = $order->receive_date;
|
||||
} else if ($order->lottery_state == LottState::WAIT || $order->lottery_state == LottState::WIN) {
|
||||
$seller = Seller::find($order->draft_user_id);
|
||||
$date = $order->draft_date;
|
||||
} else if ($order->lottery_state == LottState::SEND) {
|
||||
$seller = Seller::find($order->send_user_id);
|
||||
$date = $order->send_date;
|
||||
} else {
|
||||
$seller = Seller::find($order->revoke_user_id);
|
||||
$date = date('Ymd', strtotime($order->revoke_at));
|
||||
}
|
||||
$daySeller->report($seller, $date);
|
||||
|
||||
$dayShop = new GenerateDayShop();
|
||||
$shop = Shop::find($order->draft_shop_id);
|
||||
$dayShop->report($shop, $order->draft_date);
|
||||
|
||||
$dayWin = new GenerateDayWin();
|
||||
$dayWin->report($order);
|
||||
Log::info('ReportOrderDataJob end ~~~, orderId:'. $this->orderId);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ use App\Enums\OrderType;
|
|||
use App\Enums\PayState;
|
||||
use App\Enums\PlayType;
|
||||
use App\Events\OrderPaySuccessEvent;
|
||||
use App\Jobs\ReportOrderDataJob;
|
||||
use App\Model\Customer\Customer;
|
||||
use App\Model\Lq\JclqOdds;
|
||||
use App\Model\Seller\Seller;
|
||||
|
|
@ -20,6 +21,7 @@ use App\Utils\Helps;
|
|||
use App\Utils\ThrowException;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class Order extends BaseModel
|
||||
{
|
||||
|
|
@ -43,7 +45,17 @@ class Order extends BaseModel
|
|||
'close_time_str',
|
||||
'enable_add',
|
||||
];
|
||||
public static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::updated(function($model) {
|
||||
if($model->wasChanged('lottery_state')) {
|
||||
Log::info('ReportOrderDataJob dispatch11111111111, orderId:'. $model->id);
|
||||
dispatch(new ReportOrderDataJob($model->id));
|
||||
}
|
||||
});
|
||||
}
|
||||
public function pOrder()
|
||||
{
|
||||
return $this->belongsTo(Order::class, 'pid', 'id');
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ return [
|
|||
'ios_generate_ipa' => 'ios_generate_ipa', // 生成ios ipa
|
||||
'generate_customer_ranking' => 'generate_customer_ranking', // 中奖后实时计算用户排名
|
||||
'handle_order_win' => 'handle_order_win', // 中奖后其他逻辑
|
||||
'order_attr_change' => 'order_attr_change', // 订单数据变更
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue