| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 | <?phpnamespace App\Console\Commands\SendOrder;use App\Modules\Book\Services\BookTagsService;use App\Modules\Statistic\Services\SendStatsEmailService;use Illuminate\Console\Command;use App\Modules\Message\MessageNotify;class SendStatsEmail extends Command{    /**     * The name and signature of the console command.     *     * @var string     */    protected $signature = 'sendOrderEmail';    /**     * The console command description.     *     * @var string     */    protected $description = '发送外部派单作品分析报表';    /**     * Create a new command instance.     *     * @return void     */    public function __construct()    {        parent::__construct();    }    /**     * Execute the console command.     *     * @return mixed     */    public function handle()    {        //        $this->getSuperiorBooks();        return ;        $beginLastweek = date('Y-m-d',mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')));        $endLastweek   = date('Y-m-d',mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')));        $data = SendStatsEmailService::getOrderStats($beginLastweek,$endLastweek);        $page = view('email.weekOrderStats',['datas'=>$data]);        $html = response($page)->getContent();        //\Log::info($html);        $data_temp = array();        $header = ['书籍ID','书籍名称','UV','注册用户数','注册/UV','强关粉','强关率(强关/注册)','充值金额','付费人数','充值/UV','强关付费率(付费/强关)','UV付费率(付费/UV)','派单数','男女频'];        foreach ($data as $k=>$item) {            $title='';            switch ($k){                case 0:$title='注册UV比高于85%';break;                case 1:$title='注册UV比介于30%到85%';break;                case 2:$title='注册UV比低于30%';break;            }            $temp = array('header'=>$header,'title'=>$title,'data'=>array());            foreach ($item as $key=>$value) {                $temp['data'][] = array(                    $value['bid'],                    $value['book_name'],                    $value['UV'],                    $value['register_user_sum'],                    $value['UV']>0?(round($value['register_user_sum']/$value['UV'],4)*100).'%':0,                    $value['force_user_sum'],                    $value['register_user_sum']>0?(round($value['force_user_sum']/$value['register_user_sum'],4)*100).'%':0,                    $value['recharge_sum'],                    $value['pay_user_num'],                    $value['UV']>0?round($value['recharge_sum']/ $value['UV'],2):0,                    $value['force_user_sum']>0?(round($value['pay_user_num']/$value['force_user_sum'],4)*100).'%':0,                    $value['UV']>0?(round($value['pay_user_num']/$value['UV'],4)*100).'%':0,                    $value['send_orders_num'],                    $value['pid']                );            }            $data_temp[] = $temp;        }        $storage_file = 'app/last_week_send_order.xlsx';       saveExcelDataToMultiSheet($data_temp,storage_path($storage_file));        $to_user = array(            ['address'=>'songdb@iqiyoo.com','name'=>'songdb'],            ['address'=>'zhaojp@yqsd.net','name'=>'赵君平'],            ['address' => 'zhoulj@iqiyoo.com', 'name' => '周灵杰'],        );        $to_users = '';        foreach ($to_user as $item){            $to_users .= $item['address'].";";        }        $notify = MessageNotify::mail([            'to_emails' => $to_users,            'subject' => "上周( $beginLastweek 至 $endLastweek )外部派单作品分析报表",            'body' => $html,            'delay_times' => 0,        ]);        $notify->addAttach($storage_file);        $notify->notify();        //SendStatsEmailService::SendHtmlEmailWithAcce($to_user,['subject'=>"上周( $beginLastweek 至 $endLastweek )外部派单作品分析报表",'body'=>$html],storage_path('app/last_week_send_order.xlsx'));    }    private function getSuperiorBooks() {        $data = SendStatsEmailService::getOrderStatsNew();        $page = view('email.daySendOrderStats',['datas'=>$data]);        $html = response($page)->getContent();        //\Log::info($html);        $data_temp = array();        $header = ['书籍ID','书籍名称','是否下架','篇幅','24小时uv','24小时充值总额','72小时uv','72小时充值总额','uv','24~72小时充值增长','24小时充值比24小时UV','72小时充值比24小时UV','强关率'];        foreach ($data as $k=>$item) {            $title='';            switch ($k){                case 0:$title='注册UV比高于85%';break;                //case 1:$title='注册UV比介于30%到85%';break;                case 1:$title='注册UV比低于30%';break;            }            $temp = array('header'=>$header,'title'=>$title,'data'=>array());            foreach ($item as $key=>$value) {                $temp['data'][] = array(                    $value['bid'],                    $value['book_name'],                    $value['is_on_shelf']==1?'内部上架':'外部上架',                    $value['charge_type']=='BOOK'?'短篇':'长篇',                    $value['uv_one_day_sum'],                    $value['recharge_amount_in_one_day'],                    $value['uv_three_day_sum'],                    $value['recharge_amount_in_three_days'],                    $value['UV'],                    $value['recharge_amount_in_one_day']>0?round(($value['recharge_amount_in_three_days']-$value['recharge_amount_in_one_day'])/$value['recharge_amount_in_one_day'],2):0,                    $value['uv_one_day_sum']>0?round(($value['recharge_amount_in_one_day']/$value['uv_one_day_sum']),2):0,                    //$value['uv_three_day_sum']>0?round(($value['recharge_amount_in_three_days']/$value['uv_three_day_sum']),2):0,                    $value['uv_one_day_sum']>0?round(($value['recharge_amount_in_three_days']/$value['uv_one_day_sum']),2):0,                    $value['register_user_sum']>0?(round(($value['force_user_sum']/$value['register_user_sum']),4)*100).'%':0,                );            }            $data_temp[] = $temp;        }        $storage_file = 'app/last_week_send_order.xlsx';        saveExcelDataToMultiSheet($data_temp,storage_path($storage_file));        $to_user = array(            ['address'=>'zhangzg@iqiyoo.com','name'=>'张总'],            ['address'=>'chensj@zw88.net','name'=>'陈帅君'],            ['address'=>'zhaojp@yqsd.net','name'=>'赵君平'],            ['address'=>'liur@iqiyoo.com','name'=>'刘嵘'],            ['address'=>'panxp@zw88.net','name'=>'潘霞萍'],            ['address'=>'2711046732@qq.com','name'=>'樊柯'],//            ['address'=>'lisy@zw88.net','name'=>'test'],        );        $to_users = '';        foreach ($to_user as $item){            $to_users .= $item['address'].";";        }        $notify = MessageNotify::mail([            'to_emails' => $to_users,            'subject' => '追书云'.date('Y-m-d',strtotime('-1 day'))."优质书外部派单分析报表",            'body' => $html,            'delay_times' => 0,        ]);        $notify->addAttach($storage_file);        $notify->notify();        //SendStatsEmailService::SendHtmlEmailWithAcce($to_user,['subject'=>'追书云'.date('Y-m-d',strtotime('-1 day'))."优质书外部派单分析报表",'body'=>$html],storage_path('app/last_week_send_order.xlsx'));    }}
 |