| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- <?php
- /**
- * Created by PhpStorm.
- * Author: 芸众商城 www.yunzshop.com
- * Date: 2017/3/30
- * Time: 下午9:07
- */
- namespace app\frontend\modules\finance\controllers;
- use app\common\components\ApiController;
- use app\common\components\BaseController;
- use app\common\models\Income;
- use app\common\models\Store;
- use app\frontend\modules\finance\models\Withdraw;
- use Yunshop\Auction\models\AuctioneerModel;
- use Yunshop\Auction\models\AuctionOrderModel;
- use Yunshop\Hotel\common\models\CashierOrder;
- use Yunshop\Hotel\common\models\Hotel;
- use Yunshop\Hotel\common\models\HotelOrder;
- use Yunshop\StoreCashier\common\models\StoreOrder;
- use app\common\helpers\PaginationHelper;
- use Yunshop\StoreCashier\frontend\store\models\Goods;
- //use Yunshop\StoreCashier\common\models\CashierOrder;
- class WithdrawController extends ApiController
- {
- public $pageSize = 15;
- public function withdrawLog()
- {
- $status = \YunShop::request()->status;
- $request = Withdraw::getWithdrawLog($status)->orderBy('created_at', 'desc')->paginate($this->pageSize);
- if ($request) {
- return $this->successJson('获取数据成功!', $request->toArray());
- }
- return $this->errorJson('未检测到数据!');
- }
- public function withdrawInfo()
- {
- $id = \YunShop::request()->id;
- $request = Withdraw::getWithdrawInfoById($id)
- ->addSelect('reject_reason')
- ->first();
- if ($request) {
- $request = $request->toArray();
- if ($request['status'] == 0) {//未审核
- $request['actual_poundage'] = $request['poundage'];
- $request['actual_servicetax'] = $request['servicetax'];
- $request['actual_amounts'] = bcsub($request['amounts'],(bcadd($request['poundage'],$request['servicetax'],2)),2);
- }
- return $this->successJson('获取数据成功!', $request);
- }
- return $this->errorJson('未检测到数据!');
- }
- /**
- * 提成列表
- */
- public function withdrawList()
- {
- $status = \YunShop::request()->status;
- $type = \YunShop::request()->withdrawal_type;
- $date = $this->timeData();
- switch ($type){
- case 'store' :
- if (app('plugins')->isEnabled('store-cashier')) {
- return $this->storeData($date,$status);
- }
- break;
- case 'store_cashier' :
- if (app('plugins')->isEnabled('store-cashier')) {
- return $this->storeCashier($date,$status);
- }
- break;
- case 'hotel' :
- if (app('plugins')->isEnabled('hotel')) {
- return $this->hotel($date,$status);
- }
- break;
- case 'hotel_cashier' :
- if (app('plugins')->isEnabled('hotel')) {
- return $this->hotelashier($date,$status);
- }
- case 'auction' :
- if (app('plugins')->isEnabled('auction')) {
- return $this->auction($date,$status);
- }
- break;
- }
- }
- /**
- * 获取月周,昨天,今天的起始时间戳
- */
- public function timeData()
- {
- $date = [];
- //今日起始时间
- $date['begin_today'] = mktime(0,0,0,date('m'),date('d'),date('Y'));
- $date['end_today'] = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
- //获取一周的时间
- $date['begin_lastweek'] = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('Y'));
- $date['end_lastweek'] = mktime(23,59,59,date('m'),date('d')-date('w')+7,date('Y'));
- //获取昨天的时间
- $date['begin_yesterday'] = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
- $date['end_yesterday'] = mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
- //获取当前月起始时间
- $date['begin_thismonth'] = mktime(0,0,0,date('m'),1,date('Y'));
- $date['end_thismonth'] = mktime(23,59,59,date('m'),date('t'),date('Y'));
- return $date;
- }
- /**
- * 门店数据
- */
- public function storeData($date,$status)
- {
- $stro = new StoreOrder();
- $store = Store::where('uid',\YunShop::app()->getMemberId())->first();
- $store_order = StoreOrder::where(['store_id'=>$store['id']]);
- $store_search['store_id'] = $store['id'];
- if (!empty($status) && $status != 3 || $status == 0){
- $store_order->where('has_settlement',$status);
- }
- $data = $store_order->select(['yz_plugin_store_order.id','yz_plugin_store_order.order_id','yz_plugin_store_order.store_id','yz_plugin_store_order.has_settlement','yz_plugin_store_order.amount','yz_plugin_store_order.created_at','yz_order.order_sn'])->join('yz_order','yz_plugin_store_order.order_id','yz_order.id')->where('plugin_id',32)->orderBy('yz_plugin_store_order.created_at', 'desc')->paginate(15)->toArray();
- foreach ($data['data'] as $key => $item){
- $datas[$key]['order_sn'] = $item['order_sn'];
- $datas[$key]['amount'] = $item['amount'];
- $datas[$key]['status'] = $item['has_settlement'];
- switch ($item['has_settlement']){
- case 0 : $datas[$key]['settlement'] = '未结算'; break;
- case 1 : $datas[$key]['settlement'] = '已结算'; break;
- case -1 : $datas[$key]['settlement'] = '已失效'; break;
- }
- }
- $data['data'] = $datas ?: [];
- //获取一月的提成
- $data['thismonth'] = $stro->join('yz_order','yz_plugin_store_order.order_id','yz_order.id')->where('yz_order.plugin_id',32)->where(['store_id'=>$store['id']])->whereBetween('yz_plugin_store_order.created_at',[ $date['begin_thismonth'] , $date['end_thismonth'] ])->sum('yz_plugin_store_order.amount');
- //获取一周的提成
- $data['lastweek'] = $stro->join('yz_order','yz_plugin_store_order.order_id','yz_order.id')->where('yz_order.plugin_id',32)->where(['store_id'=>$store['id']])->whereBetween('yz_plugin_store_order.created_at',[ $date['begin_lastweek'] , $date['end_lastweek'] ])->sum('yz_plugin_store_order.amount');
- //获取昨天的提成
- $data['yesterday'] = $stro->join('yz_order','yz_plugin_store_order.order_id','yz_order.id')->where('yz_order.plugin_id',32)->where(['store_id'=>$store['id']])->whereBetween('yz_plugin_store_order.created_at',[ $date['begin_yesterday'] , $date['end_yesterday'] ])->sum('yz_plugin_store_order.amount');
- //获取今天的提成
- $data['today'] = $stro->join('yz_order','yz_plugin_store_order.order_id','yz_order.id')->where('yz_order.plugin_id',32)->where(['store_id'=>$store['id']])->whereBetween('yz_plugin_store_order.created_at',[ $date['begin_today'] , $date['end_today'] ])->sum('yz_plugin_store_order.amount');
- if ($data['data']){
- return $this->successJson('查询成功',$data);
- }
- return $this->errorJson('查询失败',$data);
- }
- /**
- * 收银台数据
- */
- public function storeCashier($date,$status)
- {
- $data = [];
- $store = Store::where('uid',\YunShop::app()->getMemberId())->first();
- // 找到店主
- $cashier_order = new \Yunshop\StoreCashier\common\models\CashierOrder();
- $cashier_order_builder = $cashier_order->select(['yz_plugin_cashier_order.id','yz_plugin_cashier_order.order_id','yz_plugin_cashier_order.cashier_id','yz_plugin_cashier_order.has_settlement','yz_plugin_cashier_order.amount','yz_plugin_cashier_order.created_at','yz_order.order_sn'])->where('cashier_id',$store['cashier_id']);
- if (!empty($status) && $status != 3 || $status == 0){
- $cashier_order_builder->where('has_settlement',$status);
- }
- $data = $cashier_order_builder->join('yz_order','yz_order.id','yz_plugin_cashier_order.order_id')->orderBy('yz_plugin_cashier_order.created_at', 'desc')->paginate(15)->toArray();
- foreach ($data['data'] as $key => $item){
- $datas[$key]['order_sn'] = $item['order_sn'];
- $datas[$key]['created_at'] = $item['created_at'];
- $datas[$key]['status'] = $item['has_settlement'];
- $datas[$key]['amount'] = $item['amount'];
- switch ($item['has_settlement']){
- case 0 : $datas[$key]['settlement'] = '未结算'; break;
- case 1 : $datas[$key]['settlement'] = '已结算'; break;
- case -1 : $datas[$key]['settlement'] = '已失效'; break;
- }
- }
- $data['data'] = $datas ?: [];
- //获取一月的提成
- $data['thismonth'] = $cashier_order->where('cashier_id',$store['cashier_id'])->whereBetween('yz_plugin_cashier_order.created_at',[ $date['begin_thismonth'] , $date['end_thismonth'] ])->sum('yz_plugin_cashier_order.amount');
- //获取一周的提成
- $data['lastweek'] = $cashier_order->where('cashier_id',$store['cashier_id'])->whereBetween('yz_plugin_cashier_order.created_at',[ $date['begin_lastweek'] , $date['end_lastweek'] ])->sum('yz_plugin_cashier_order.amount');
- //获取昨天的提成
- $data['yesterday'] = $cashier_order->where('cashier_id',$store['cashier_id'])->whereBetween('yz_plugin_cashier_order.created_at',[ $date['begin_yesterday'] , $date['end_yesterday'] ])->sum('yz_plugin_cashier_order.amount');
- //获取今天的提成
- $data['today'] = $cashier_order->where('cashier_id',$store['cashier_id'])->whereBetween('yz_plugin_cashier_order.created_at',[ $date['begin_today'] , $date['end_today'] ])->sum('yz_plugin_cashier_order.amount');
- if ($data['data']){
- return $this->successJson('查询成功',$data);
- }
- return $this->successJson('查询失败',$data);
- }
- /**
- * j酒店数据
- */
- public function hotel($date,$status)
- {
- $data = [];
- $hotel = Hotel::where('uid',\YunShop::app()->getMemberId())->first();
- $hotel_order = HotelOrder::with('hasOneOrder')->where('hotel_id',$hotel['id']);
- if (!empty($status) && $status != 3 || $status == 0){
- $hotel_order->where('has_settlement',$status);
- }
- $data = $hotel_order->orderBy('created_at', 'desc')->paginate(15)
- ->toArray();
- $pager = PaginationHelper::show($data['total'], $data['currentPage'], $data['perPage']);
- foreach ($data['data'] as $key => $itme){
- // dd($itme);
- $datas[$key]['order_sn'] = $itme['has_one_order']['order_sn'];
- $datas[$key]['created_at'] = $itme['created_at'];
- $datas[$key]['amount'] = $itme['amount'];
- $datas[$key]['status'] = $itme['has_settlement'];
- switch ($itme['has_settlement']){
- case 0 : $datas[$key]['settlement'] = '未结算'; break;
- case 1 : $datas[$key]['settlement'] = '已结算'; break;
- case -1 : $datas[$key]['settlement'] = '已失效'; break;
- }
- }
- $data['data'] = $datas ?: [];
- //获取一月的提成
- $data['thismonth'] = $hotel_order->whereBetween('created_at',[ $date['begin_thismonth'] , $date['end_thismonth'] ])->sum('amount');
- //获取一周的提成
- $data['lastweek'] = $hotel_order->whereBetween('created_at',[ $date['begin_lastweek'] , $date['end_lastweek'] ])->sum('amount');
- //获取昨天的提成
- $data['yesterday'] = $hotel_order->whereBetween('created_at',[ $date['begin_yesterday'] , $date['end_yesterday'] ])->sum('amount');
- //获取今天的提成
- $data['today'] = $hotel_order->whereBetween('created_at',[ $date['begin_today'] , $date['end_today'] ])->sum('amount');
- if ($data['data']){
- return $this->successJson('查询成功',$data);
- }
- return $this->successJson('查询失败',$data);
- }
- /**
- * 酒店收银台数据
- */
- public function hotelashier($date,$status)
- {
- $data = [];
- $hotel = Hotel::where('uid',\YunShop::app()->getMemberId())->first();
- $hotel_order = CashierOrder::with('hasOneOrder')->where('cashier_id',$hotel['cashier_id']);
- if (!empty($status) && $status != 3 || $status == 0){
- $hotel_order->where('has_settlement',$status);
- }
- $data = $hotel_order->orderBy('created_at', 'desc')->paginate(15)
- ->toArray();
- $pager = PaginationHelper::show($data['total'], $data['currentPage'], $data['perPage']);
- foreach ($data['data'] as $key => $itme){
- // dd($itme);
- $datas[$key]['order_sn'] = $itme['has_one_order']['order_sn'];
- $datas[$key]['created_at'] = $itme['created_at'];
- $datas[$key]['amount'] = $itme['amount'];
- $datas[$key]['status'] = $itme['has_settlement'];
- switch ($itme['has_settlement']){
- case 0 : $datas[$key]['settlement'] = '未结算'; break;
- case 1 : $datas[$key]['settlement'] = '已结算'; break;
- case -1 : $datas[$key]['settlement'] = '已失效'; break;
- }
- }
- $data['data'] = $datas ?: [];
- //获取一月的提成
- $data['thismonth'] = $hotel_order->whereBetween('created_at',[ $date['begin_thismonth'] , $date['end_thismonth'] ])->sum('amount');
- //获取一周的提成
- $data['lastweek'] = $hotel_order->whereBetween('created_at',[ $date['begin_lastweek'] , $date['end_lastweek'] ])->sum('amount');
- //获取昨天的提成
- $data['yesterday'] = $hotel_order->whereBetween('created_at',[ $date['begin_yesterday'] , $date['end_yesterday'] ])->sum('amount');
- //获取今天的提成
- $data['today'] = $hotel_order->whereBetween('created_at',[ $date['begin_today'] , $date['end_today'] ])->sum('amount');
- if ($data['data']){
- return $this->successJson('查询成功',$data);
- }
- return $this->successJson('查询失败',$data);
- }
- /**
- * 拍卖数据
- */
- public function auction($date,$status)
- {
- $data = [];
- $auction_order = AuctionOrderModel::with('hasOneOrder')->where('auctioneer_id',\YunShop::app()->getMemberId());
- if (!empty($status) && $status != 3 || $status == 0){
- $auction_order->where('has_settlement',$status);
- }
- $data = $auction_order->orderBy('created_at', 'desc')->paginate(15)
- ->toArray();
- $pager = PaginationHelper::show($data['total'], $data['currentPage'], $data['perPage']);
- foreach ($data['data'] as $key => $itme){
- // dd($itme);
- $datas[$key]['order_sn'] = $itme['has_one_order']['order_sn'];
- $datas[$key]['created_at'] = $itme['created_at'];
- $datas[$key]['amount'] = $itme['amount'];
- $datas[$key]['status'] = $itme['has_settlement'];
- switch ($itme['has_settlement']){
- case 0 : $datas[$key]['settlement'] = '未结算'; break;
- case 1 : $datas[$key]['settlement'] = '已结算'; break;
- case -1 : $datas[$key]['settlement'] = '已失效'; break;
- }
- }
- $data['data'] = $datas ?: [];
- //获取一月的提成
- $data['thismonth'] = $auction_order->whereBetween('created_at',[ $date['begin_thismonth'] , $date['end_thismonth'] ])->sum('amount');
- //获取一周的提成
- $data['lastweek'] = $auction_order->whereBetween('created_at',[ $date['begin_lastweek'] , $date['end_lastweek'] ])->sum('amount');
- //获取昨天的提成
- $data['yesterday'] = $auction_order->whereBetween('created_at',[ $date['begin_yesterday'] , $date['end_yesterday'] ])->sum('amount');
- //获取今天的提成
- $data['today'] = $auction_order->whereBetween('created_at',[ $date['begin_today'] , $date['end_today'] ])->sum('amount');
- if ($data['data']){
- return $this->successJson('查询成功',$data);
- }
- return $this->successJson('查询失败',$data);
- }
- /**
- * 提现收入列表
- * @return mixed
- */
- public function incomeList()
- {
- $id = \YunShop::request()->id;
- $request = Withdraw::getWithdrawInfoById($id)
- ->first();
- $incomeModels = Income::getIncomeByIds($request->type_id)
- ->select(['id','pay_status','amount','created_at'])->paginate(15);
- return $this->successJson('success',$incomeModels);
- }
- }
|