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, //下单赠送积分
|
|
];
|
|
}
|
|
}
|