123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675 |
- <?php
- 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
- {
-
- 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();
- }
- $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);
- }
-
- 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);
- }
-
- 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 = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- ->sum('yesterday_register_user_num');
- $current_month_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- ->sum('current_month_register_user_num');
- $last_month_register_user_num = BusinessChannelStat::whereIn('distribution_channel_id', $channelIds)
- ->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;
-
- 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'
- ));
- }
-
- 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);
- }
-
- 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,
- ];
-
- $result = BusinessChannelStatService::getListNew($params);
-
- $today = date('Y-m-d');
-
- 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;
-
- $company_service_account = CompanyService::getCompanyServiceAccounts($company_id);
-
- 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;
- $month_begin_time = date('Y-m-01 00:00:00');
- $item['company_total_charge_amount_current_month'] = $recharge_data->current_month_recharge_amount_sum;
- $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'] = '';
-
- }
-
- $item['business_channel_stats_today_register_user_num'] = UserService::getCompanyDayTotal($today, $item['company_id']);
-
- $item['business_channel_stats_total_register_user_num'] = UserService::getCompanyTotal($item['company_id']);
-
- }
- }
- 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);
-
- }
- 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);
- }
- }
|