glhcp/server/app/admin/logic/finance/FinanceLogic.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, //下单赠送积分
];
}
}