<?php /** * Created by PhpStorm. * User: tandunzhao * Date: 2017/12/26 * Time: 下午4:14 */ namespace App\Modules\Channel\Services; use App\Modules\Channel\Models\BusinessChannelStat; use DB; class BusinessChannelStatService { /** * @param $channel_id * @param $params [yesterday_register_user_num, current_month_register_user_num,last_month_register_user_num,total_register_user_num,total_send_order_num] * @return mixed */ public static function crateUpdate($channel_id, $params) { return BusinessChannelStat::crateUpdate($channel_id, $params); } /** * 商务渠道数据统计列表 * @param $params[] * channel_id:渠道ID 可选 * channel_name:渠道名称 可选 * search_name: 搜索名称 * start_date:开始时间 可选 * end_date:结束时间 可选 * is_enabled: 是否开通 0:未审核; 1:审核通过 * distribution_manages_id: 管理员 可选 * yesterday_register_user_num_sort: 0 1 * current_month_register_user_num_sort: 0 1 * last_month_register_user_num_sort: 0 1 * total_register_user_num_sort: 0 1 * total_send_order_num_sort: 0 1 * * @param string $isAll * @return mixed */ public static function getList($params, $isAll = '') { return BusinessChannelStat::getList($params, $isAll); } /** * 获取指定渠道列表汇总 * @param array $channelIds * @return mixed */ public static function getBusinessChannelStatSingle($channelIds=[]) { return BusinessChannelStat::getBusinessChannelStatSingle($channelIds); } /** * * @param $channel_id * @return int */ 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(); } /*DB::table('channel_operate_record') ->join('distribution_channels','distribution_channels.id','=','channel_operate_record.distribution_channel_id') ->join('channel_users','channel_users.id','=','distribution_channels.channel_user_id') ->where([ ['channel_users.company_id','=',$company_id], ['distribution_channels.created_at','>=',$start_time], ['distribution_channels.created_at','<=',$end_time] ]) ->select(DB::raw("count(distin)")) ->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){ /*$BusinessChannelStats = BusinessChannelStat::where('distribution_channel_id',$channel_id) ->whereNotNull('last_month_channels_recharge') ->first();*/ $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')); //if(!$BusinessChannelStats && date('d')){ $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; //} //return $BusinessChannelStats->last_month_channels_recharge; } public static function getByChannelID($channel_id) { return BusinessChannelStat::getByChannelID($channel_id); } }