123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- namespace App\Modules\Channel\Services;
- use App\Modules\Channel\Models\BusinessChannelStat;
- use DB;
- class BusinessChannelStatService
- {
-
- public static function crateUpdate($channel_id, $params) {
- return BusinessChannelStat::crateUpdate($channel_id, $params);
- }
-
- public static function getList($params, $isAll = '') {
- return BusinessChannelStat::getList($params, $isAll);
- }
-
- public static function getBusinessChannelStatSingle($channelIds=[]) {
- return BusinessChannelStat::getBusinessChannelStatSingle($channelIds);
- }
-
- public static function getServiceAccountNum($channel_id){
- $account = DB::table('official_accounts')
- ->join('distribution_channels','official_accounts.distribution_channel_id','=','distribution_channels.id')
- ->select(DB::raw('count(*) as account_num'))
- ->where([
- ['official_accounts.is_auth','=',1],
- ['distribution_channels.id','=',$channel_id]
- ])
- ->first();
- return $account?$account->account_num:0;
- }
- public static function getLoginDays($channel_id,$start_time,$end_time){
- $start_date = date('Y-m-d',strtotime($start_time.' +1 day'));
- $end_date = date('Y-m-d',strtotime($end_time.' +1 day'));
- $company = DB::table('distribution_channels')
- ->select('channel_users.company_id')
- ->where('distribution_channels.id',$channel_id)
- ->join('channel_users','channel_users.id','=','distribution_channels.channel_user_id')
- ->first();
- $login_info = '';
- if($company){
- $company_id = $company->company_id;
- $login_info = DB::table('business_channel_day_stats')
- ->join('distribution_channels','distribution_channels.id','=','business_channel_day_stats.distribution_channel_id')
- ->join('channel_users','channel_users.id','=','distribution_channels.channel_user_id')
- ->select(DB::raw("count(distinct business_channel_day_stats.date) as login_user_num"))
- ->where([
- ['business_channel_day_stats.is_login_yesterday','=',1],
- ['business_channel_day_stats.date','>=',$start_date],
- ['business_channel_day_stats.date','<=',$end_date],
- ['channel_users.company_id','=',$company_id]
- ])
- ->first();
- }
-
- if($login_info) {
- return $login_info->login_user_num;
- }
- return $login_info;
- }
- public static function getListNew($params, $isAll = '') {
- return BusinessChannelStat::getListNew($params, $isAll);
- }
- public static function getLastMonthChannelRecharge($channel_id){
-
- $last_month_start = date('Y-m-01',strtotime('-1 month'));
- $last_month_end = date('Y-m-d H:i:s',strtotime(date('Y-m-01 23:59:59').' -1 day'));
-
- $order_sum = DB::table('orders')
- ->where('distribution_channel_id',$channel_id)
- ->where('status','PAID')
- ->whereBetween('created_at',[$last_month_start,$last_month_end])
- ->sum('price');
- return $order_sum?$order_sum:0;
-
-
- }
- public static function getByChannelID($channel_id)
- {
- return BusinessChannelStat::getByChannelID($channel_id);
- }
- }
|