123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- namespace App\Modules\Finance\Models;
- use Illuminate\Database\Eloquent\Model;
- class FinanceMerchantStat extends Model
- {
- protected $table = 'finance_merchant_stats';
- protected $fillable = ['distribution_channel_id', 'pay_merchant_source', 'enable_withdrawal_amount'];
-
- public static function getFinanceMerchantStatSingle($channel_id = '', $pay_merchant_source = '') {
- $search_object = self::orderBy('enable_withdrawal_amount','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_source) {
- $search_object->where('pay_merchant_source', $pay_merchant_source);
- }
- return $search_object->first();
- }
-
- public static function getFinanceMerchantStatList($channel_id = '', $pay_merchant_source = '') {
- $search_object = self::orderBy('enable_withdrawal_amount','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_source) {
- $search_object->where('pay_merchant_source', $pay_merchant_source);
- }
- return $search_object->get();
- }
-
- public static function getFinanceMerchantStatListIgnoreSourceArray($channel_id = '', $pay_merchant_sources = []) {
- $search_object = self::orderBy('enable_withdrawal_amount','asc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_sources) {
- $search_object->whereNotIn('pay_merchant_source', $pay_merchant_sources);
- }
- return $search_object->get();
- }
-
- public static function getFinanceMerchantStatListIgnoreSource($channel_id = '', $pay_merchant_source = '') {
- $search_object = self::orderBy('enable_withdrawal_amount','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_source) {
- $search_object->where('pay_merchant_source', '<>',$pay_merchant_source);
- }
- return $search_object->get();
- }
-
- public static function createOrUpdate($channel_id, $pay_merchant_source, $amount) {
- $financeMerchantStat = self::where('distribution_channel_id', $channel_id)->where('pay_merchant_source', $pay_merchant_source)->first();
- if(empty($financeMerchantStat)) {
- $financeMerchantStat['distribution_channel_id'] = $channel_id;
- $financeMerchantStat['pay_merchant_source'] = $pay_merchant_source;
- $financeMerchantStat['enable_withdrawal_amount'] = (float)$amount;
- $financeMerchantStat = FinanceMerchantStat::create($financeMerchantStat);
- } else {
- $financeMerchantStat['enable_withdrawal_amount'] = (float)$financeMerchantStat['enable_withdrawal_amount'] + (float)$amount;
- $financeMerchantStat->save();
- }
- return $financeMerchantStat;
- }
-
- public static function getEnableWithdrawalAmountSumIgnoreSource($channel_id = '', $pay_merchant_source = '') {
- $search_object = self::orderBy('id','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_source) {
- $search_object->where('pay_merchant_source', '<>', $pay_merchant_source);
- }
- return $search_object->sum('enable_withdrawal_amount');
- }
-
- public static function getEnableWithdrawalAmountSumIgnoreSourceArray($channel_id = '', $pay_merchant_sources = []) {
- $search_object = self::orderBy('id','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_sources) {
- $search_object->whereNotIn('pay_merchant_source', $pay_merchant_sources);
- }
- return $search_object->sum('enable_withdrawal_amount');
- }
-
- public static function getEnableWithdrawalAmountSum($channel_id = '', $pay_merchant_source = '') {
- $search_object = self::orderBy('id','desc');
- if($channel_id) {
- $search_object->where('distribution_channel_id', $channel_id);
- }
- if($pay_merchant_source) {
- $search_object->where('pay_merchant_source', $pay_merchant_source);
- }
- return $search_object->sum('enable_withdrawal_amount');
- }
- }
|