233 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			233 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| 
 | |
| namespace app\admin\logic\finance;
 | |
| 
 | |
| 
 | |
| use app\common\basics\Logic;
 | |
| use app\common\model\AccountLog;
 | |
| use app\common\model\order\Order;
 | |
| use app\common\enum\PayEnum;
 | |
| use app\common\enum\OrderEnum;
 | |
| use app\common\enum\OrderRefundEnum;
 | |
| use app\common\enum\AfterSaleEnum;
 | |
| use app\common\enum\WithdrawalEnum;
 | |
| use app\common\enum\DistributionOrderGoodsEnum;
 | |
| use app\common\enum\WithdrawEnum;
 | |
| use app\common\model\user\User;
 | |
| use app\common\model\shop\Shop;
 | |
| use app\common\model\shop\ShopWithdrawal;
 | |
| use app\common\model\shop\ShopSettlement;
 | |
| use app\common\model\WithdrawApply;
 | |
| 
 | |
| 
 | |
| class FinanceLogic extends Logic
 | |
| {
 | |
|     /**
 | |
|      * @Notes: 商家汇总
 | |
|      */
 | |
|     public static function shop()
 | |
|     {
 | |
| 
 | |
|         $model = new Order();
 | |
|         $modelShopSettlement = new ShopSettlement();
 | |
|         $modelShopWithdrawal = new ShopWithdrawal();
 | |
|         $modelWithdrawApply  = new WithdrawApply();
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         //已结算交易服务费(平台收入)、(商家)已结算交易服务费
 | |
|         $shopAmount = $settlePoundageAmount = $modelShopSettlement
 | |
|             ->sum('trade_service_fee');
 | |
| 
 | |
|         //会员提现手续费(平台收入
 | |
|         $userPoundage =  $modelWithdrawApply
 | |
|             ->where([
 | |
|                 ['status', '=', WithdrawEnum::STATUS_SUCCESS]
 | |
|             ])
 | |
|             ->sum('poundage');
 | |
| 
 | |
|         //商家提现手续费(平台收入)
 | |
|         $commissionAmount =  $modelShopWithdrawal
 | |
|             ->sum('poundage_amount');
 | |
| 
 | |
|         //成交订单笔数
 | |
|         $orderNum = $model
 | |
|             ->where([
 | |
|                 ['pay_status', '>', PayEnum::UNPAID]
 | |
|             ])
 | |
|             ->count('id');
 | |
| 
 | |
|         //营业额
 | |
|         $orderAmount = $model
 | |
|             ->where([
 | |
|                 ['pay_status', '>', PayEnum::UNPAID]
 | |
|             ])
 | |
|             ->sum('order_amount');
 | |
| 
 | |
| 
 | |
|         //退款订单金额
 | |
|         $refundAmount = $model
 | |
|             ->where([
 | |
|                 ['shipping_status', '=', OrderEnum::SHIPPING_NO],
 | |
|                 ['pay_status', '=', PayEnum::REFUNDED],
 | |
|                 ['refund_status', 'in', [OrderEnum::REFUND_STATUS_PART_REFUND, OrderEnum::REFUND_STATUS_ALL_REFUND]],
 | |
|             ])
 | |
|             ->sum('order_amount');
 | |
| 
 | |
|         //待退款订单金额
 | |
|         $refundAmountIng = $model->alias('o')
 | |
|             ->join('order_refund or', 'or.order_id = o.id')
 | |
|             ->where([
 | |
|                 ['o.shipping_status', '=', OrderEnum::SHIPPING_NO],
 | |
|                 ['or.refund_status', '<>', OrderRefundEnum::REFUND_STATUS_COMPLETE]
 | |
|             ])
 | |
|             ->sum('or.order_amount');
 | |
| 
 | |
|         //售后退款金额
 | |
|         $salesRefundAmount = $model->alias('o')
 | |
|             ->join('after_sale as', 'as.order_id = o.id')
 | |
|             ->where([
 | |
|                 ['o.shipping_status', '=', OrderEnum::SHIPPING_FINISH],
 | |
|                 ['as.status', '=', AfterSaleEnum::STATUS_COMPLETE]
 | |
|             ])
 | |
|             ->sum('as.refund_price');
 | |
| 
 | |
|         //待售后退款金额
 | |
|         $salesRefundAmountIng = $model->alias('o')
 | |
|             ->join('after_sale as', 'as.order_id = o.id')
 | |
|             ->where([
 | |
|                 ['o.shipping_status', '=', OrderEnum::SHIPPING_FINISH],
 | |
|                 ['as.status', '=', AfterSaleEnum::STATUS_WAITING]
 | |
|             ])
 | |
|             ->sum('as.refund_price');
 | |
| 
 | |
| 
 | |
|         //已结算成交订单数
 | |
|         $settleOrederNum = $modelShopSettlement
 | |
|             ->sum('deal_order_count');
 | |
| 
 | |
|         //已结算营业额
 | |
|         $settleOrederAmount = $modelShopSettlement
 | |
|             ->sum('business_money');
 | |
| 
 | |
|         //待结算营业额
 | |
|         $settleOrederAmountWait = $model
 | |
|             ->where([
 | |
|                 ['pay_status', '>', PayEnum::UNPAID],
 | |
|                 ['settle_id', '=', OrderEnum::SETTLE_WAIT]
 | |
|             ])
 | |
|             ->sum('order_amount');
 | |
| 
 | |
|         //已结算分销佣金金额
 | |
|         $settleDistributionAmount = $modelShopSettlement
 | |
|             ->sum('distribution_money');
 | |
| 
 | |
|         //已结算入账金额
 | |
|         $settleWithdrawalAmount = $modelShopSettlement
 | |
|             ->sum('entry_account_money');
 | |
| 
 | |
|         //已提现金额
 | |
|         $withdrawaLeftamount = $modelShopWithdrawal
 | |
|             ->where([
 | |
|                 ['status', '=', WithdrawalEnum::SUCCESS_STATUS]
 | |
|             ])
 | |
|             ->sum('apply_amount');
 | |
| 
 | |
|         //提现中金额
 | |
|         $withdrawaLeftamountIng = $modelShopWithdrawal
 | |
|             ->where([
 | |
|                 ['status', '=', WithdrawalEnum::HANDLE_STATUS]
 | |
|             ])
 | |
|             ->sum('apply_amount');
 | |
| 
 | |
|         //可提现金额       
 | |
|         $modelShop = new Shop();
 | |
|         $shopWallet = $modelShop->sum('wallet');
 | |
| 
 | |
|         //会员余额
 | |
|         $modelUser = new User();
 | |
|         $userMoney = $modelUser
 | |
|             ->where([
 | |
|                 ['del', '=', 0]
 | |
|             ])
 | |
|             ->sum('user_money');
 | |
| 
 | |
| 
 | |
|         //会员已结算分销佣金金额                   
 | |
|         $userSettleDistributionAmount = $model->alias('o')
 | |
|             ->join('order_goods og', 'og.order_id = o.id')
 | |
|             ->join('distribution_order_goods dog', 'dog.order_goods_id = og.id')
 | |
|             ->where([
 | |
|                 ['o.settle_id', '=', OrderEnum::SETTLE_FINISH],
 | |
|                 ['dog.status', '=', DistributionOrderGoodsEnum::STATUS_SUCCESS]
 | |
|             ])
 | |
|             ->sum('dog.money');
 | |
| 
 | |
|         //已提现佣金金额
 | |
|         $userDistributionMoney = $modelWithdrawApply
 | |
|             ->where([
 | |
|                 ['status', '=', WithdrawEnum::STATUS_SUCCESS]
 | |
|             ])
 | |
|             ->sum('money');
 | |
| 
 | |
|         //提现中佣金金额
 | |
|         $userDistributionMoneyIng = $modelWithdrawApply
 | |
|             ->where([
 | |
|                 ['status', '=', WithdrawEnum::STATUS_ING]
 | |
|             ])
 | |
|             ->sum('money');
 | |
| 
 | |
|         //可提现佣金金额
 | |
|         $userDistributionMoneyWait = $modelUser
 | |
|             ->where([
 | |
|                 ['del', '=', 0]
 | |
|             ])
 | |
|             ->sum('earnings');
 | |
| 
 | |
| 
 | |
|         //总积分
 | |
|         $all_integral = AccountLog::where(['change_type'=>1,'source_type'=>AccountLog::integral_change])->sum('change_amount');
 | |
| 
 | |
|         //签到送出积分
 | |
|         $sign_in_integral = AccountLog::where(['source_type'=>AccountLog::sign_in_integral])->sum('change_amount');
 | |
| 
 | |
|         //使用积分
 | |
|         $use_integral = AccountLog::where(['change_type'=>2,'source_type'=>AccountLog::integral_change])->sum('change_amount');
 | |
| 
 | |
|         //下单赠送积分
 | |
|         $consume_award_integral = AccountLog::where(['source_type'=>AccountLog::consume_award_integral])->sum('change_amount');
 | |
| 
 | |
|         return [
 | |
|             'shopAmount'                    =>  $shopAmount, //已结算交易服务费(平台收入)
 | |
|             'userPoundage'                  =>  $userPoundage, //会员提现手续费(平台收入)
 | |
|             'commissionAmount'              =>  $commissionAmount, //提现中佣金金额
 | |
|             'orderNum'                      =>  $orderNum, //成交订单笔数
 | |
|             'orderAmount'                   =>  $orderAmount, //营业额
 | |
|             'refundAmount'                  =>  $refundAmount, //退款订单金额
 | |
|             'refundAmountIng'               =>  $refundAmountIng, //待退款订单金额
 | |
|             'salesRefundAmount'             =>  $salesRefundAmount, //售后退款金额
 | |
|             'salesRefundAmountIng'          =>  $salesRefundAmountIng, //待售后退款金额
 | |
|             'settleOrederNum'               =>  $settleOrederNum, //已结算成交订单数
 | |
|             'settleOrederAmount'            =>  $settleOrederAmount, //已结算营业额
 | |
|             'settleOrederAmountWait'        =>  $settleOrederAmountWait, //待结算营业额
 | |
|             'settleDistributionAmount'      =>  $settleDistributionAmount, //已结算分销佣金金额
 | |
|             'settleWithdrawalAmount'        =>  $settleWithdrawalAmount, //已结算入账金额
 | |
|             'settlePoundageAmount'          =>  $settlePoundageAmount, //已结算交易服务费
 | |
|             'withdrawaLeftamount'           =>  $withdrawaLeftamount, //已提现金额
 | |
|             'withdrawaLeftamountIng'        =>  $withdrawaLeftamountIng, //提现中金额
 | |
|             'shopWallet'                    =>  $shopWallet, //可提现金额
 | |
|             'userMoney'                     =>  $userMoney, //会员余额
 | |
|             'userSettleDistributionAmount'  =>  $userSettleDistributionAmount, //会员已结算分销佣金金额
 | |
|             'userDistributionMoney'         =>  $userDistributionMoney, //已提现佣金金额
 | |
|             'userDistributionMoneyIng'      =>  $userDistributionMoneyIng, //提现中佣金金额
 | |
|             'userDistributionMoneyWait'     =>  $userDistributionMoneyWait, //可提现佣金金额
 | |
|             'all_integral'                  =>  $all_integral, //总积分
 | |
|             'sign_in_integral'              =>  $sign_in_integral, //签到送出积分
 | |
|             'use_integral'                  =>  $use_integral, //使用积分
 | |
|             'consume_award_integral'        =>  $consume_award_integral, //下单赠送积分
 | |
|         ];
 | |
|     }
 | |
| }
 |