123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675 |
- <?php
- /**
- * Created by PhpStorm.
- * User: tandunzhao
- * Date: 2017/12/26
- * Time: 下午5:32
- */
- namespace App\Http\Controllers\Manage\Channel;
- use App\Http\Controllers\Manage\Channel\Transformers\BusinessChannelDayStatTransformer;
- use App\Http\Controllers\Manage\Channel\Transformers\BusinessChannelStatTransformer;
- use App\Http\Controllers\Manage\Channel\Transformers\BusinessCompanyStatTransformer;
- use App\Http\Controllers\Manage\Channel\Transformers\BusinessStatDataTransformer;
- use App\Http\Controllers\Manage\Finance\BaseController;
- use App\Modules\Channel\Models\BusinessChannelStat;
- use App\Modules\Channel\Services\BusinessChannelDayStatService;
- use App\Modules\Channel\Services\BusinessChannelStatService;
- use App\Modules\Channel\Services\ChannelService;
- use App\Modules\Channel\Services\CompanyService;
- use App\Modules\Manage\Services\ManageService;
- use App\Modules\SendOrder\Services\SendOrderService;
- use App\Modules\Trade\Services\OrderDayStatService;
- use App\Modules\Trade\Services\OrderService;
- use App\Modules\Trade\Services\OrderStatService;
- use App\Modules\User\Services\UserService;
- use DB;
- use Illuminate\Http\Request;
- class BusinessChannelController extends BaseController
- {
- /**
- * @apiVersion 1.0.0
- * @apiDescription 商务渠道数据统计每日列表
- * @api {GET} channel/getBusinessChannelDayList 商务渠道数据统计每日列表
- * @apiGroup channel
- * @apiName channel/getBusinessChannelDayList
- * @apiParam {Number} [distribution_channel_id] 渠道id.(可不传,获取所有渠道)
- * @apiParam {String} [distribution_channel_name] 渠道名称.(可不传,获取所有渠道)
- * @apiParam {String} [search_name] 搜索名称
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- * @apiParam {Number} [is_enabled] 0:待审核; 1:已审核.(可不传)
- * @apiParam {Number} [distribution_manages_id] 管理员ID.(可不传)
- * @apiSuccess {Number} id 渠道ID.
- * @apiSuccess {String} name 渠道名称.
- * @apiSuccess {String} phone 手机号码.
- * @apiSuccess {String} pay_merchant 支付商户.
- * @apiSuccess {String} nickname 昵称.
- * @apiSuccess {String} latest_login_time 最后登陆时间.
- * @apiSuccess {String} latest_login_ip 最后登陆IP.
- * @apiSuccess {String} remark 备注.
- * @apiSuccess {String} register_ip 注册IP.
- * @apiSuccess {String} person_in_charge_name 负责人.
- * @apiSuccess {String} create_time 注册时间
- * @apiSuccess {Number} distribution_manages_id 管理员ID
- * @apiSuccess {String} distribution_manages_account 管理员
- * @apiSuccess {String} distribution_manages_number 管理员
- * @apiSuccess {String} distribution_manages_nickname 管理员昵称
- * @apiSuccess {String} business_channel_day_stats_date 统计时间
- * @apiSuccess {String} business_channel_day_stats_register_user_num 注册用户数
- * @apiSuccess {String} business_channel_day_stats_send_order_num 派单数
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "id": 1,
- * "phone": "",
- * "name": "121",
- * "pay_merchant_id": 1,
- * "nickname": "是说",
- * "latest_login_time": "",
- * "latest_login_ip": "",
- * "is_enabled": 1,
- * "register_ip": "",
- * "remark": "",
- * "person_in_charge_name": "波哥帅",
- * "create_time": "2017-11-20 18:34:17",
- * "distribution_manages_id": 0,
- * "distribution_manages_account": "zsy_finance",
- * "distribution_manages_number": "",
- * "distribution_manages_nickname": "3333",
- * "business_channel_day_stats_date": "2017-12-25",
- * "business_channel_day_stats_register_user_num": 0,
- * "business_channel_day_stats_send_order_num": 0
- * }
- * ]
- * }
- */
- public function getBusinessChannelDayList(Request $request)
- {
- $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
- $distribution_channel_name = $request->has('distribution_channel_name') ? $request->input('distribution_channel_name') : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd', strtotime($request->input('start_time'))) : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd', strtotime($request->input('end_time'))) : '';
- $end_time = self::getMaxDay($end_time);
- $distribution_manages_id = $request->has('distribution_manages_id') ? $request->input('distribution_manages_id') : '';
- $isEnabled = $request->has('is_enabled') ? $request->input('is_enabled') : '';
- $search_name = $request->has('search_name') ? $request->input('search_name') : '';
- //商务,只获取到当前商务下的渠道列表
- if ($this->getLoginUserRole() == "business") {
- $distribution_manages_id = $this->getLoginUserId();
- }
- // dd($this->getLoginUserId());
- $params = [
- 'channel_id' => $distribution_channel_id,
- 'channel_name' => $distribution_channel_name,
- 'start_date' => $start_time,
- 'end_date' => $end_time,
- 'distribution_manages_id' => $distribution_manages_id,
- 'is_enabled' => $isEnabled,
- 'search_name' => $search_name,
- ];
- $result = BusinessChannelDayStatService::getList($params);
- return response()->pagination(new BusinessChannelDayStatTransformer(), $result);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获商务渠道数据统计列表
- * @api {GET} channel/getBusinessChannelList 商务渠道数据统计列表
- * @apiGroup channel
- * @apiName channel/getBusinessChannelList
- * @apiParam {Number} [distribution_channel_id] 渠道id.(可不传,获取所有渠道)
- * @apiParam {String} [distribution_channel_name] 渠道名称.(可不传,获取所有渠道)
- * @apiParam {String} [search_name] 搜索名称
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- * @apiParam {Number} [is_enabled] 0:待审核; 1:已审核.(可不传)
- * @apiParam {Number} [distribution_manages_id] 管理员ID.(可不传)
- * @apiParam {Number} [yesterday_register_user_num_sort] 昨日注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [current_month_register_user_num_sort] 当月注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [last_month_register_user_num_sort] 上月注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [total_register_user_num_sort] 总注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [total_send_order_num_sort] 总派单数 0:升序,1:降序.(可不传)
- * @apiSuccess {Number} id 渠道ID.
- * @apiSuccess {String} name 渠道名称.
- * @apiSuccess {String} phone 手机号码.
- * @apiSuccess {String} pay_merchant 支付商户.
- * @apiSuccess {String} nickname 昵称.
- * @apiSuccess {String} latest_login_time 最后登陆时间.
- * @apiSuccess {String} latest_login_ip 最后登陆IP.
- * @apiSuccess {String} remark 备注.
- * @apiSuccess {String} register_ip 注册IP.
- * @apiSuccess {String} person_in_charge_name 负责人.
- * @apiSuccess {String} create_time 注册时间
- * @apiSuccess {Number} distribution_manages_id 管理员ID
- * @apiSuccess {String} distribution_manages_account 管理员
- * @apiSuccess {String} distribution_manages_number 管理员
- * @apiSuccess {String} distribution_manages_nickname 管理员昵称
- * @apiSuccess {String} business_channel_stats_today_register_user_num 今日注册用户数
- * @apiSuccess {String} business_channel_stats_yesterday_register_user_num 昨日注册用户数
- * @apiSuccess {String} business_channel_stats_current_month_register_user_num 当月注册用户数
- * @apiSuccess {String} business_channel_stats_last_month_register_user_num 上月注册用户数
- * @apiSuccess {String} business_channel_stats_total_register_user_num 总注册用户数
- * @apiSuccess {String} business_channel_stats_total_send_order_num 总派单数
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "id": 1,
- * "phone": "",
- * "name": "121",
- * "pay_merchant_id": 1,
- * "nickname": "是说",
- * "latest_login_time": "",
- * "latest_login_ip": "",
- * "is_enabled": 1,
- * "register_ip": "",
- * "remark": "",
- * "person_in_charge_name": "波哥帅",
- * "create_time": "2017-11-20 18:34:17",
- * "distribution_manages_id": 0,
- * "distribution_manages_account": "zsy_finance",
- * "distribution_manages_number": "",
- * "distribution_manages_nickname": "3333",
- * "business_channel_stats_today_register_user_num": 4,
- * "business_channel_stats_yesterday_register_user_num": 0,
- * "business_channel_stats_current_month_register_user_num": 0,
- * "business_channel_stats_last_month_register_user_num": 0,
- * "business_channel_stats_total_register_user_num": 0,
- * "business_channel_stats_total_send_order_num": 0
- * }
- * ]
- * }
- */
- public function getBusinessChannelList(Request $request)
- {
- $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
- $distribution_channel_name = $request->has('distribution_channel_name') ? $request->input('distribution_channel_name') : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd', strtotime($request->input('start_time'))) : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd', strtotime($request->input('end_time'))) : '';
- $end_time = self::getMaxDay($end_time);
- $distribution_manages_id = $request->has('distribution_manages_id') ? $request->input('distribution_manages_id') : '';
- $isEnabled = $request->has('is_enabled') ? $request->input('is_enabled') : '';
- $search_name = $request->has('search_name') ? $request->input('search_name') : '';
- //商务,只获取到当前商务下的渠道列表
- if ($this->getLoginUserRole() == "business") {
- $distribution_manages_id = $this->getLoginUserId();
- }
- $yesterday_register_user_num_sort = $request->has('yesterday_register_user_num_sort') ? $request->input('yesterday_register_user_num_sort') : '';
- $current_month_register_user_num_sort = $request->has('current_month_register_user_num_sort') ? $request->input('current_month_register_user_num_sort') : '';
- $last_month_register_user_num_sort = $request->has('last_month_register_user_num_sort') ? $request->input('last_month_register_user_num_sort') : '';
- $total_register_user_num_sort = $request->has('total_register_user_num_sort') ? $request->input('total_register_user_num_sort') : '';
- $total_send_order_num_sort = $request->has('total_send_order_num_sort') ? $request->input('total_send_order_num_sort') : '';
- $params = [
- 'channel_id' => $distribution_channel_id,
- 'channel_name' => $distribution_channel_name,
- 'start_date' => $start_time,
- 'end_date' => $end_time,
- 'distribution_manages_id' => $distribution_manages_id,
- 'is_enabled' => $isEnabled,
- 'search_name' => $search_name,
- 'yesterday_register_user_num_sort' => $yesterday_register_user_num_sort,
- 'current_month_register_user_num_sort' => $current_month_register_user_num_sort,
- 'last_month_register_user_num_sort' => $last_month_register_user_num_sort,
- 'total_register_user_num_sort' => $total_register_user_num_sort,
- 'total_send_order_num_sort' => $total_send_order_num_sort,
- ];
- $result = BusinessChannelStatService::getList($params);
- $today = date('Y-m-d');
- if ($result) {
- foreach ($result as $item) {
- $item['business_channel_stats_today_register_user_num'] = UserService::getChannelDayTotal($item['id'], $today);
- $item['business_channel_stats_total_register_user_num'] = UserService::getChannelTotal($item['id']);
- }
- }
- return response()->pagination(new BusinessChannelStatTransformer(), $result);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获商务所有渠道数据统计汇总
- * @api {GET} channel/getBusinessChannelSingle 获商务所有渠道数据统计汇总
- * @apiGroup channel
- * @apiName channel/getBusinessChannelSingle
- * @apiParam {Number} [distribution_manages_id] 管理员ID.(可不传)
- * @apiSuccess {String} today_register_user_num 今日注册用户数
- * @apiSuccess {String} yesterday_register_user_num 昨日注册用户数
- * @apiSuccess {String} current_month_register_user_num 当月注册用户数
- * @apiSuccess {String} last_month_register_user_num 上月注册用户数
- * @apiSuccess {String} stats_total_register_user_num 总注册用户数
- * @apiSuccess {String} stats_total_send_order_num 总派单数
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": {
- * "today_register_user_num": 4,
- * "yesterday_register_user_num": 0,
- * "current_month_register_user_num": 0,
- * "last_month_register_user_num": 0,
- * "total_register_user_num": 0,
- * "total_send_order_num": 0
- * }
- * }
- */
- public function getBusinessChannelSingle(Request $request)
- {
- $distribution_manages_id = $request->has('distribution_manages_id') ? $request->input('distribution_manages_id') : '';
- //商务,只获取到当前商务下的渠道列表
- if ($this->getLoginUserRole() == "business") {
- $distribution_manages_id = $this->getLoginUserId();
- }
- if ($this->getLoginUserRole() == "admin") {
- $distribution_manages_id = '';
- }
- $channelIds = ChannelService::getChannelIdList($distribution_manages_id);
- $yesterStartDay = date('Y-m-d', strtotime(date("Y-m-d") . " -1 day")) . " 00:00:00";
- $yesterEndDay = date('Y-m-d', strtotime(date("Y-m-d"))) . " 00:00:00";
- $toDayEndDay = date('Y-m-d', strtotime(date("Y-m-d"))) . " 23:59:59";
- $last_monthStartDay = date('Y-m', strtotime(date("Y-m") . " -1 month")) . "-01 00:00:00";
- $current_monthStartDay = date('Y-m', strtotime(date("Y-m"))) . "-01 00:00:00";
- $lastMonthStart = date('Y-m-01 00:00:00',strtotime('-1 month'));
- $lastMonthEnd = date('Y-m-d 23:59:59',strtotime(date('Y-m-01').'-1 day'));
- $today_register_user_num = UserService::getChannelsDayToDayTotal($channelIds, $yesterEndDay, $toDayEndDay);
- $currentMonthStart = date('Y-m-01 00:00:00');
- // $yesterday_register_user_num = UserService::getChannelsDayToDayTotal($channelIds, $yesterStartDay, $yesterEndDay);
- // $current_month_register_user_num = UserService::getChannelsDayToDayTotal($channelIds, $current_monthStartDay, $yesterEndDay);
- // $last_month_register_user_num = UserService::getChannelsDayToDayTotal($channelIds, $last_monthStartDay, $current_monthStartDay);
- // $total_register_user_num = UserService::getChannelsDayToDayTotal($channelIds);
- // $total_send_order_num = SendOrderService::getTotalPromotionCountByChannelIds($channelIds);
- $yesterday_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- // ->where('created_at', '>=', $yesterStartDay)
- // ->where('created_at', '<', $yesterEndDay)
- ->sum('yesterday_register_user_num');
- $current_month_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- // ->where('created_at', '>=', $current_monthStartDay)
- // ->where('created_at', '<', $yesterEndDay)
- ->sum('current_month_register_user_num');
- $last_month_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- // ->where('created_at', '>=', $last_monthStartDay)
- // ->where('created_at', '<', $current_monthStartDay)
- ->sum('last_month_register_user_num');
- $total_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- ->sum('total_register_user_num');
- $total_send_order_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- ->sum('total_send_order_num');
- $yesterday_new_companies_num = BusinessChannelStat::getNewAddedCompaniesNum($yesterStartDay,$yesterEndDay,$channelIds);
- $yesterday_new_channel_num = BusinessChannelStat::getNewwAddedChannelNum($yesterStartDay,$yesterEndDay,$channelIds);
- $last_month_new_companies_num = BusinessChannelStat::getNewAddedCompaniesNum($currentMonthStart,date('Y-m-d H:i:s'),$channelIds);
- $last_month_new_channel_num = BusinessChannelStat::getNewwAddedChannelNum($currentMonthStart,date('Y-m-d H:i:s'),$channelIds);
- $recharge_data = OrderStatService::getRechargeAmount($channelIds);
- $manage_company_total_charge_amount = $recharge_data->total_recharge_amount_sum;
- $month_begin_time = date('Y-m-01 00:00:00');
- $manage_company_total_charge_amount_current_month = $recharge_data->current_month_recharge_amount_sum;//OrderDayStatService::getRechargeByChannels($channelIds,$time_range=['begin_time' => $month_begin_time, 'end_time' => $yesterEndDay]);
- //$manage_company_total_charge_amount_current_month = OrderService::getAmount($manage_order_params_current_month);
- return response()->success(compact(
- 'today_register_user_num',
- 'yesterday_register_user_num',
- 'current_month_register_user_num',
- 'last_month_register_user_num',
- 'total_register_user_num',
- 'total_send_order_num',
- 'last_month_new_companies_num',
- 'last_month_new_channel_num',
- 'yesterday_new_companies_num',
- 'yesterday_new_channel_num',
- 'manage_company_total_charge_amount',
- 'manage_company_total_charge_amount_current_month'
- ));
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获商务数据统计列表
- * @api {GET} channel/getBusinessDataList 商务数据统计列表
- * @apiGroup channel
- * @apiName channel/getBusinessDataList
- * @apiParam {String} [search_name] 搜索名称
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- * @apiParam {Number} [is_enabled]: 0:不可用; 1:可用
- *
- * @apiSuccess {Number} distribution_manages_id 管理员ID
- * @apiSuccess {String} distribution_manages_account 管理员
- * @apiSuccess {String} distribution_manages_number 管理员
- * @apiSuccess {String} distribution_manages_nickname 管理员昵称
- * @apiSuccess {String} today_register_user_num 今日注册用户数
- * @apiSuccess {String} yesterday_register_user_num 昨日注册用户数
- * @apiSuccess {String} current_month_register_user_num 当月注册用户数
- * @apiSuccess {String} last_month_register_user_num 上月注册用户数
- * @apiSuccess {String} total_register_user_num 总注册用户数
- * @apiSuccess {String} total_send_order_num 总派单数
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "distribution_manages_id": 0,
- * "distribution_manages_account": "zsy_finance",
- * "distribution_manages_nickname": "3333",
- * "distribution_manages_latest_login_time": "",
- * "distribution_manages_latest_login_ip": "",
- * "distribution_manages_is_enabled": 1,
- * "distribution_manages_remark": "",
- * "distribution_manages_register_ip": "",
- * "distribution_manages_create_time": "",
- * "distribution_manages_update_time": "",
- * "distribution_manages_number": "",
- * "today_register_user_num": 4,
- * "yesterday_register_user_num": 0,
- * "current_month_register_user_num": 0,
- * "last_month_register_user_num": 0,
- * "total_register_user_num": 0,
- * "total_send_order_num": 0
- * }
- * ]
- * }
- */
- public function getBusinessDataList(Request $request)
- {
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd', strtotime($request->input('start_time'))) : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd', strtotime($request->input('end_time'))) : '';
- $end_time = self::getMaxDay($end_time);
- $isEnabled = $request->has('is_enabled') ? $request->input('is_enabled') : '';
- $search_name = $request->has('search_name') ? $request->input('search_name') : '';
- $params = [
- 'start_date' => $start_time,
- 'end_date' => $end_time,
- 'is_enabled' => $isEnabled,
- 'search_name' => $search_name,
- ];
- $business = ManageService::getBusinessManageList($params);
- $today = date('Y-m-d');
- $todayEnd = $today . " 23:59:59";
- if ($business) {
- foreach ($business as $item) {
- $channelIds = ChannelService::getChannelIdList($item['id']);
- $business_channel_stats = BusinessChannelStatService::getBusinessChannelStatSingle($channelIds);
- $item['yesterday_register_user_num'] = $business_channel_stats->yesterday_register_user_num;
- $item['current_month_register_user_num'] = $business_channel_stats->current_month_register_user_num;
- $item['last_month_register_user_num'] = $business_channel_stats->last_month_register_user_num;
- $item['total_register_user_num'] = $business_channel_stats->total_register_user_num;
- $item['total_send_order_num'] = $business_channel_stats->total_send_order_num;
- $item['current_month_new_channels_recharge'] = $business_channel_stats->current_month_new_channels_recharge_sum;
- $item['current_month_channels_recharge'] = $business_channel_stats->current_month_channels_recharge_sum;
- $item['last_month_channels_recharge_sum'] = $business_channel_stats->last_month_channels_recharge_sum;
- $item['last_month_new_channels_recharge_sum'] = $business_channel_stats->last_month_new_channels_recharge_sum;
- $item['today_register_user_num'] = UserService::getChannelsDayToDayTotal($channelIds, $today, $todayEnd);
- $item['current_month_companies_num'] = BusinessChannelStat::getNewAddedCompaniesNum(date('Y-m-01 00:00:00', time()), date('Y-m-d H:i:s'), $channelIds);
- $item['current_month_channel_num'] = BusinessChannelStat::getNewwAddedChannelNum(date('Y-m-01 00:00:00', time()), date('Y-m-d H:i:s'), $channelIds);
- $item['last_month_companies_num'] = BusinessChannelStat::getNewAddedCompaniesNum(date('Y-m-01',strtotime('-1 month')),date('Y-m-d H:i:s',strtotime(date('Y-m-01 23:59:59').' -1 day')),$channelIds);
- $item['last_month_channel_num'] = BusinessChannelStat::getNewwAddedChannelNum(date('Y-m-01',strtotime('-1 month')),date('Y-m-d H:i:s',strtotime(date('Y-m-01 23:59:59').' -1 day')),$channelIds);
- }
- }
- return response()->pagination(new BusinessStatDataTransformer(), $business);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获商务渠道数据统计列表
- * @api {GET} channel/getBusinessChannelList2 商务渠道数据统计列表
- * @apiGroup channel
- * @apiName channel/getBusinessChannelList2
- * @apiParam {Number} [distribution_channel_id] 渠道id.(可不传,获取所有渠道)
- * @apiParam {String} [distribution_channel_name] 渠道名称.(可不传,获取所有渠道)
- * @apiParam {String} [search_name] 搜索名称
- * @apiParam {String} [start_time] 开始时间(可不传)
- * @apiParam {String} [end_time] 结束时间(可不传)
- * @apiParam {Number} [is_enabled] 0:待审核; 1:已审核.(可不传)
- * @apiParam {Number} [distribution_manages_id] 管理员ID.(可不传)
- * @apiParam {Number} [yesterday_register_user_num_sort] 昨日注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [current_month_register_user_num_sort] 当月注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [last_month_register_user_num_sort] 上月注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [total_register_user_num_sort] 总注册用户数排序 0:升序,1:降序.(可不传)
- * @apiParam {Number} [total_send_order_num_sort] 总派单数 0:升序,1:降序.(可不传)
- * @apiSuccess {Number} id 渠道ID.
- * @apiSuccess {String} name 渠道名称.
- * @apiSuccess {String} phone 手机号码.
- * @apiSuccess {String} pay_merchant 支付商户.
- * @apiSuccess {String} nickname 昵称.
- * @apiSuccess {String} latest_login_time 最后登陆时间.
- * @apiSuccess {String} latest_login_ip 最后登陆IP.
- * @apiSuccess {String} remark 备注.
- * @apiSuccess {String} register_ip 注册IP.
- * @apiSuccess {String} person_in_charge_name 负责人.
- * @apiSuccess {String} create_time 注册时间
- * company_name--公司名
- * business_channel_stats_today_register_user_num 今日注册数
- * business_channel_stats_yesterday_register_user_num 昨日注册用户数
- * business_channel_stats_current_month_register_user_num 当月注册用户数
- * business_channel_stats_last_month_register_user_num 上月注册用户数
- * business_channel_stats_total_register_user_num 总注册用户数
- * business_channel_stats_total_send_order_num 总派单数
- * business_channel_stats_service_account_sum 服务号数
- * business_channel_stats_last_week_actual_send_orders_sum 上周实际派单
- * business_channel_stats_current_week_actual_send_orders_sum 本周实际派单
- * business_channel_stats_yesterday_create_orders_sum 昨日创建派单
- * business_channel_stats_last_week_login_day_sum 上周登录天数
- * business_channel_stats_current_week_login_days_sum 本周登录天数
- * business_channel_stats_is_yesterday_login 昨日是否登录
- *
- * @apiSuccess {Number} distribution_manages_id 管理员ID
- * @apiSuccess {String} distribution_manages_account 管理员
- * @apiSuccess {String} distribution_manages_number 管理员
- * @apiSuccess {String} distribution_manages_nickname 管理员昵称
- * @apiSuccess {String} business_channel_stats_today_register_user_num 今日注册用户数
- * @apiSuccess {String} business_channel_stats_yesterday_register_user_num 昨日注册用户数
- * @apiSuccess {String} business_channel_stats_current_month_register_user_num 当月注册用户数
- * @apiSuccess {String} business_channel_stats_last_month_register_user_num 上月注册用户数
- * @apiSuccess {String} business_channel_stats_total_register_user_num 总注册用户数
- * @apiSuccess {String} business_channel_stats_total_send_order_num 总派单数
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "id": 1,
- * "phone": "",
- * "name": "121",
- * "pay_merchant_id": 1,
- * "nickname": "是说",
- * "latest_login_time": "",
- * "latest_login_ip": "",
- * "is_enabled": 1,
- * "register_ip": "",
- * "remark": "",
- * "person_in_charge_name": "波哥帅",
- * "create_time": "2017-11-20 18:34:17",
- * "distribution_manages_id": 0,
- * "distribution_manages_account": "zsy_finance",
- * "distribution_manages_number": "",
- * "distribution_manages_nickname": "3333",
- * "business_channel_stats_today_register_user_num": 4,
- * "business_channel_stats_yesterday_register_user_num": 0,
- * "business_channel_stats_current_month_register_user_num": 0,
- * "business_channel_stats_last_month_register_user_num": 0,
- * "business_channel_stats_total_register_user_num": 0,
- * "business_channel_stats_total_send_order_num": 0
- * }
- * ]
- * }
- */
- public function getBusinessCompanyList(Request $request)
- {
- $distribution_channel_id = $request->has('company_id') ? $request->input('company_id') : '';
- $distribution_channel_name = $request->has('company_name') ? $request->input('company_name') : '';
- $distribution_manages_name = $request->has('manager_name') ? $request->input('manager_name') : '';
- $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd', strtotime($request->input('start_time'))) : '';
- $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd', strtotime($request->input('end_time'))) : '';
- $end_time = self::getMaxDay($end_time);
- $distribution_manages_id = $request->has('distribution_manages_id') ? $request->input('distribution_manages_id') : '';
- $isEnabled = $request->has('is_enabled') ? $request->input('is_enabled') : '';
- $search_name = $request->has('search_name') ? $request->input('search_name') : '';
- //商务,只获取到当前商务下的渠道列表
- if ($this->getLoginUserRole() == "business") {
- $distribution_manages_id = $this->getLoginUserId();
- }
- $yesterday_register_user_num_sort = $request->has('yesterday_register_user_num_sort') ? $request->input('yesterday_register_user_num_sort') : '';
- $current_month_register_user_num_sort = $request->has('current_month_register_user_num_sort') ? $request->input('current_month_register_user_num_sort') : '';
- $last_month_register_user_num_sort = $request->has('last_month_register_user_num_sort') ? $request->input('last_month_register_user_num_sort') : '';
- $total_register_user_num_sort = $request->has('total_register_user_num_sort') ? $request->input('total_register_user_num_sort') : '';
- $total_send_order_num_sort = $request->has('total_send_order_num_sort') ? $request->input('total_send_order_num_sort') : '';
- $params = [
- 'company_id' => $distribution_channel_id,
- 'company_name' => $distribution_channel_name,
- 'manager_name' => $distribution_manages_name,
- 'start_date' => $start_time,
- 'end_date' => $end_time,
- 'distribution_manages_id' => $distribution_manages_id,
- 'is_enabled' => $isEnabled,
- 'search_name' => $search_name,
- 'yesterday_register_user_num_sort' => $yesterday_register_user_num_sort,
- 'current_month_register_user_num_sort' => $current_month_register_user_num_sort,
- 'last_month_register_user_num_sort' => $last_month_register_user_num_sort,
- 'total_register_user_num_sort' => $total_register_user_num_sort,
- 'total_send_order_num_sort' => $total_send_order_num_sort,
- ];
- //\Log::info('time_check:getListNew:before--:'.time());
- $result = BusinessChannelStatService::getListNew($params);
- // \Log::info('time_check:getListNew:after--:'.time());
- $today = date('Y-m-d');
- //\Log::info('businessChannelStats:' . json_encode($result));
- if ($result) {
- foreach ($result as $item) {
- $company = DB::table('companies')->where('id', $item['company_id'])->first();
- $distribution_channel_ids = [];
- if ($company) {
- $company_id = $company->id;
- $company_name = $company->name;
- // \Log::info('time_check:getCompanyServiceAccounts:before--'.time());
- $company_service_account = CompanyService::getCompanyServiceAccounts($company_id);
- // \Log::info('time_check:getCompanyServiceAccounts:after--'.time());
- foreach ($company_service_account as $company_service_account_item) {
- $distribution_channel_ids[] = $company_service_account_item->distribution_channel_id;
- }
- $yesterdayEnd = date('Y-m-d', strtotime(date("Y-m-d") . " -1 day")) . " 23:59:59";
- $recharge_data = OrderStatService::getRechargeAmount($distribution_channel_ids);
- $item['company_total_charge_amount'] = $recharge_data->total_recharge_amount_sum;// OrderStatService::getRechargeAmount($distribution_channel_ids);
- $month_begin_time = date('Y-m-01 00:00:00');
- $item['company_total_charge_amount_current_month'] = $recharge_data->current_month_recharge_amount_sum;//OrderDayStatService::getRechargeByChannels($distribution_channel_ids,$time_range=['begin_time' => $month_begin_time, 'end_time' => $yesterdayEnd]); //OrderService::getAmount($company_order_params_current_month);
- $item['company_name'] = $company_name;
- $fans_gender = $company->fans_gender;
- switch ($fans_gender) {
- case 1:
- $item['fans_gender'] = '男粉';
- break;
- case 2:
- $item['fans_gender'] = '女粉';
- break;
- case 3:
- $item['fans_gender'] = '混合粉';
- break;
- default:
- $item['fans_gender'] = '';
- }
- } else {
- $item['company_name'] = '';
- $item['fans_gender'] = '';
- //\Log::info('company error:' . $item['company_id']);
- }
- //\Log::info('time_check:UserService::getCompanyDayTotal:before:'.time());
- $item['business_channel_stats_today_register_user_num'] = UserService::getCompanyDayTotal($today, $item['company_id']);
- //\Log::info('time_check:UserService::getCompanyTotal:before:'.time());
- $item['business_channel_stats_total_register_user_num'] = UserService::getCompanyTotal($item['company_id']);
- //\Log::info('time_check:UserService::getCompanyTotal:after:'.time());
- }
- }
- return response()->pagination(new BusinessCompanyStatTransformer(), $result);
- }
- public function getCompanyLastWeekPromotion(Request $request)
- {
- $company_id = $request->input('company_id', '');
- if (!$company_id) {
- return response()->error('PARAM_EMPTY');
- }
- $time = $request->input('time', '');
- if (!$time) {
- return response()->error('PARAM_EMPTY');
- }
- if (!in_array($time, ['current', 'last'])) {
- return response()->error('PARAM_ERROR');
- }
- $books = [];
- if ($time == 'current') {
- $current_week_start = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y")));
- $current_week_end = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), date("d") - date("w") + 7, date("Y")));
- $books = SendOrderService::getCompanyPromotionBooks($company_id, $current_week_start, $current_week_end);
- //return response()->success($books);
- }
- if ($time == 'last') {
- $beginLastweek = date('Y-m-d H:i:s', mktime(0, 0, 0, date('m'), date('d') - date('w') + 1 - 7, date('Y')));
- $endLastweek = date('Y-m-d H:i:s', mktime(23, 59, 59, date('m'), date('d') - date('w') + 7 - 7, date('Y')));
- $books = SendOrderService::getCompanyPromotionBooks($company_id, $beginLastweek, $endLastweek);
- }
- return response()->success($books);
- }
- public function getServiceAccount(Request $request)
- {
- $company_id = $request->input('company_id', '');
- if (empty($company_id)) {
- return response()->error('PARAM_EMPTY');
- }
- $accounts = CompanyService::getCompanyServiceAccounts($company_id);
- return response()->success($accounts);
- }
- }
|