| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2017/12/7 * Time: 上午9:46 */namespace App\Modules\Finance\Models;use Illuminate\Database\Eloquent\Model;/** * 渠道支付通道相关金钱统计 * Class FinanceMerchantStat * @package App\Modules\Finance\Models */class FinanceMerchantStat extends Model{    protected $table = 'finance_merchant_stats';    protected $fillable = ['distribution_channel_id', 'pay_merchant_source', 'enable_withdrawal_amount'];    /**     * 获取一条记录     * @param string $channel_id     * @param string $pay_merchant_source     * @return mixed     */    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();    }    /**     * 获取列表     * @param string $channel_id 可空     * @param string $pay_merchant_source 可空     * @return mixed     */    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();    }    /**     * 获取列表     * @param string $channel_id 可空     * @param array $pay_merchant_sources 可空     * @return mixed     */    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();    }    /**     * 获取列表     * @param string $channel_id 可空     * @param string $pay_merchant_source 可空     * @return mixed     */    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();    }    /**     * 添加更新渠道支付通道相关金钱统计     * @param $channel_id     * @param $pay_merchant_source     * @param $amount  添加正数,减少负数     * @return mixed     */    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;    }    /**     * 获取除了$pay_merchant_source之外的渠道总额     * @param string $channel_id     * @param string $pay_merchant_source     * @return mixed     */    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');    }    /**     * 获取除了$pay_merchant_source之外的渠道总额     * @param string $channel_id     * @param array $pay_merchant_sources     * @return mixed     */    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');    }    /**     * 获取支付渠道总额     * @param string $channel_id     * @param string $pay_merchant_source     * @return mixed     */    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');    }}
 |