123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- class ExportController extends Controller
- {
- //导出流水账单
- public function exportSalesWaterBills(Request $request)
- {
- $input = $request->all();
- switch ($input['type']) {
- case '0':
- $starttime = date("Y-m-d 00:00:00", strtotime($input['time'][0]));
- $endtime = date("Y-m-d 00:00:00", strtotime($input['time'][1] . "+1 days"));
- break;
- case '1':
- $starttime = date("Y-m-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-m-01 00:00:00", strtotime($input['time'] . "+1 months"));
- break;
- case '2':
- $starttime = date("Y-01-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-01-01 00:00:00", strtotime($input['time'] . "+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list = DB::table('order')
- ->select('order.id', 'order.ordersn', DB::raw('SUM(order_goods.totalprice) as account'), DB::raw('SUM(order_goods.num) as total'), 'order.created_at')
- ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id')
- ->where('order.status', 2)
- ->whereBetween('order.created_at', $time)
- ->groupBy('order.id')
- ->orderBy('account', 'desc')
- ->get()->toarray();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出流水账单成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出奖励支出(进货奖励)
- public function exportRewardSpending(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list=DB::table('rewards')
- ->select('rewards.id','uu.nickname as agent_name','users.nickname as recom_name','rewards.bonus','rewards.created_at')
- ->leftJoin('users','users.id','=','rewards.recom_id')
- ->leftJoin('users as uu','uu.id','=','rewards.agent_id')
- ->where('rewards.type',1)
- ->whereBetween('rewards.created_at',$time)
- ->orderBy('rewards.id','desc')
- ->get();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出奖励支出成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出业绩奖励
- public function exportPerformanceReward(Request $request)
- {
- $input = $request->all();
- switch ($input['type']) {
- case '0':
- $starttime = date("Y-m-d 00:00:00", strtotime($input['time'][0]));
- $endtime = date("Y-m-d 00:00:00", strtotime($input['time'][1] . "+1 days"));
- break;
- case '1':
- $starttime = date("Y-m-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-m-01 00:00:00", strtotime($input['time'] . "+1 months"));
- break;
- case '2':
- $starttime = date("Y-01-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-01-01 00:00:00", strtotime($input['time'] . "+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list= DB::table('rewards')
- ->select('rewards.id','users.nickname', 'rewards.bonus','rewards.month','rewards.created_at')
- ->leftJoin('users', 'users.id', '=', 'rewards.recom_id')
- ->where('rewards.type', 2)
- ->whereBetween('rewards.created_at', $time)
- ->orderBy('rewards.id', 'desc')
- ->get();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出业绩奖励成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出店铺奖励
- public function exportStoreReward(Request $request)
- {
- $input = $request->all();
- switch ($input['type']) {
- case '0':
- $starttime = date("Y-m-d 00:00:00", strtotime($input['time'][0]));
- $endtime = date("Y-m-d 00:00:00", strtotime($input['time'][1] . "+1 days"));
- break;
- case '1':
- $starttime = date("Y-m-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-m-01 00:00:00", strtotime($input['time'] . "+1 months"));
- break;
- case '2':
- $starttime = date("Y-01-01 00:00:00", strtotime($input['time']));
- $endtime = date("Y-01-01 00:00:00", strtotime($input['time'] . "+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list = DB::table('rewards')
- ->select('store.id', 'store.name','goods.name as goodsname','rewards.*')
- ->leftJoin('goods', 'goods.id', '=', 'rewards.goods_id')
- ->leftJoin('store', 'store.id', '=', 'rewards.store_id')
- ->where('rewards.type', 3)
- ->whereBetween('rewards.created_at', $time)
- ->orderBy('rewards.id', 'desc')
- ->get();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出店铺奖励成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出战区销售额排行
- public function exportWareaSalesResults(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list =DB::table('warea')->distinct('warea.id')
- ->select('warea.name as warea', DB::raw('SUM(order_goods.totalprice) as account'))
- ->leftJoin('users', function ($join) {
- $join->on('users.warea_id', '=', 'warea.id')
- ->where('users.level', '=', 3);
- })
- ->leftJoin('order', 'order.user_id', '=', 'users.id')
- ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id')
- ->where('order.status', 2)
- ->whereBetween('order.created_at',$time)
- ->groupBy('warea.id')
- ->orderBy('account','desc')
- ->get()->toArray();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出战区销售额排行成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出皇冠代理团队业绩排行
- public function exportCrownTeamSalesResults(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list= DB::table('users')
- ->select('users.nickname as crowteam', DB::raw('SUM(order_goods.totalprice) as account'))
- ->leftJoin('users as uu', 'users.id', '=', 'uu.agent_id')
- ->leftJoin('order', 'order.user_id', '=', 'uu.id')
- ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id')
- ->where('order.status', 2)
- ->whereBetween('order.created_at',$time)
- ->where('users.level', '=', 3)
- ->groupBy('users.id')
- ->orderBy('account','desc')
- ->get()->toArray();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出皇冠代理团队业绩排行成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出皇冠团队新增代理人数
- public function exportCrownAddAgentNum(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list = DB::table('users')
- ->select('users.nickname as teamName','users.id', DB::raw('COUNT(uu.id) as count'))
- ->where('users.level', '=', 3)
- ->leftJoin('users as uu', 'users.id', '=', 'uu.crown_id')
- ->whereBetween('uu.created_at',$time)
- ->groupBy('users.id')
- ->orderBy('count','desc')
- ->get()->toArray();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出皇冠团队新增代理人数成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success_list($list);
- } else {
- return $this->error();
- }
- }
- //导出店铺业绩排行榜
- public function exportStoreSalesResults(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $time = [$starttime, $endtime];
- $list = DB::table('store')
- ->select('store.name as storename', DB::raw('SUM(order_goods.totalprice) as account'))
- ->leftJoin('users', function ($join) {
- $join->on('users.store_id', '=', 'store.id');
- })
- ->leftJoin('order', 'order.user_id', '=', 'users.id')
- ->leftJoin('order_goods', 'order.id', '=', 'order_goods.order_id')
- ->where('order.status', 2)
- ->whereBetween('order.created_at',$time)
- ->groupBy('store.id')
- ->orderBy('account','desc')
- ->get()->toArray();
- if ($list) {
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出店铺业绩排行榜成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- } else {
- return $this->error();
- }
- }
- //导出代理业绩排行榜
- public function exportAgentSalesResults(Request $request){
- $input=$request->all();
- switch($input['type']){
- case '0':
- $starttime=date("Y-m-d 00:00:00",strtotime($input['time'][0]));
- $endtime= date("Y-m-d 00:00:00",strtotime($input['time'][1] ."+1 days"));
- break;
- case '1':
- $starttime=date("Y-m-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-m-01 00:00:00",strtotime($input['time'] ."+1 months"));
- break;
- case '2':
- $starttime=date("Y-01-01 00:00:00",strtotime($input['time']));
- $endtime= date("Y-01-01 00:00:00",strtotime($input['time'] ."+1 year"));
- break;
- }
- $search_name=$input["search_name"];
- $time = [$starttime, $endtime];
- $list=DB::table('users')
- ->select('users.nickname','users.level','warea.name as warea','uu.nickname as agent',DB::raw('SUM(order_goods.totalprice) as account'))
- ->leftJoin('order','order.user_id','=','users.id')
- ->leftJoin('order_goods','order.id','=','order_goods.order_id')
- ->leftJoin('warea','warea.id','=','users.warea_id')
- ->leftJoin('users as uu','uu.id','=','users.agent_id')
- ->where('order.status',2)
- ->whereBetween('order.created_at',$time)
- ->where('users.nickname', 'like', '%' . $search_name . '%')
- ->groupBy('users.id')
- ->orderBy('account','desc')
- ->get();
- if($list){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')导出代理业绩排行榜成功,导出时间段:'.$time[0].'-'.$time[1]);
- return $this->success($list);
- }else{
- return $this->error();
- }
- }
- }
|