| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2017/12/26 * Time: 下午4:05 */namespace App\Modules\Channel\Services;use App\Modules\Channel\Models\BusinessChannelDayStat;use DB;class BusinessChannelDayStatService{    /**     * 创建商务渠道日报表数据     * @param $params [distribution_channel_id, date, register_user_num, send_order_num]     * @return mixed     */    public static function createBusinessChannelDayStat($params) {        $data = BusinessChannelDayStat::create($params);        return $data;    }    /**     * 商务渠道数据日统计列表     * @param $params[]     *                  channel_id:渠道ID 可选     *                  channel_name:渠道名称 可选     *                  search_name: 搜索名称     *                  start_date:开始时间 可选     *                  end_date:结束时间 可选     *                  start_dateA:统计开始时间 可选     *                  end_dateA:统计结束时间 可选     *                  is_enabled: 是否开通 0:未审核; 1:审核通过     *                  distribution_manages_id: 管理员 可选     * @param $isAll     * @return mixed     */    public static function getList($params, $isAll = '') {        $data = BusinessChannelDayStat::getList($params, $isAll);        return $data;    }    public static function getAutoForceSubUserNum($channel_id,$start,$end){        return DB::table('force_subscribe_users')            ->where('distribution_channel_id',$channel_id)            ->whereBetween('created_at',[$start,$end])            ->where('official_account_id','<>',1)            ->where('is_subscribed',1)            ->count();    }    public static function getSelfForceSubUserNum($channel_id,$start,$end){        return DB::table('force_subscribe_users')            ->where('distribution_channel_id',$channel_id)            ->whereBetween('created_at',[$start,$end])            ->where('official_account_id','=',1)            ->where('is_subscribed',1)            ->count();    }    public static function getChannelSubscribeNum($channelId,$start,$end){        $users = DB::table('users')            ->where('distribution_channel_id',$channelId)            ->get();        $user_num = 0;        foreach ($users as $user){            $uid = ($user->id)%512;            $chapter_orders = DB::connect('chapter_order_mysql')                ->table('chapter_orders'.$uid)                ->where('uid',$user->id)                ->whereBetween('created_at',[$start,$end])                ->first();            if($chapter_orders){                $user_num++;                continue;            }            $book_orders = DB::table('book_orders')                ->where('uid',$user->id)                ->whereBetween('created_at',[$start,$end])                ->first();            if($book_orders){                $user_num++;            }        }        return $user_num;    }     public static function getChannelSubscribeRecharge($channelId,$start,$end){        $users = DB::table('users')            ->where('distribution_channel_id',$channelId)            ->get();        $fee = 0;        foreach ($users as $user){            $uid = ($user->id)%512;            $chapter_orders = DB::connect('chapter_order_mysql')                ->table('chapter_orders'.$uid)                ->where('uid',$user->id)                ->whereBetween('created_at',[$start,$end])                ->sum('fee');            $book_orders = DB::table('book_orders')                ->where('uid',$user->id)                ->whereBetween('created_at',[$start,$end])                ->sum('fee');            $fee=$fee+$chapter_orders+$book_orders;        }        return $fee;    }}
 |