123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?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
- {
-
-
- 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('refund_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.refund_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([
- ['refund_status', '=', 0 ],
- ['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,
- ];
- }
- }
|