FinancialPayMerchantBalance.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Modules\Finance\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use DB;
  5. /**
  6. * Class Bill 账单
  7. * @package App\Modules\Finance\Models
  8. */
  9. class FinancialPayMerchantBalance extends Model
  10. {
  11. protected $table = 'financial_pay_merchant_balance';
  12. //recharge_amount:充值金额
  13. protected $fillable = ['distribution_channel_id','pay_merchant_company_id', 'accumulative_withdrawal_amount','enable_withdrawal_amount', 'latest_withdrawal_amount', 'latest_withdraw_time','withdraw_pending_amount','commission_rate'];
  14. public static function getOne($distribution_channel_id,$pay_merchant_company_id){
  15. return self::where('distribution_channel_id',$distribution_channel_id)->where('pay_merchant_company_id',$pay_merchant_company_id)->first();
  16. }
  17. static function getChannelEnableWithdraw($channel_id,$is_company){
  18. $obj = self::orderBy('enable_withdrawal_amount','desc')->where('distribution_channel_id',$channel_id);
  19. if($is_company == 0){
  20. //TODO 将1替换成掌维公司id
  21. $obj->whereNotIn('pay_merchant_company_id',explode(',',env('ZW_COMPANY_ID')));
  22. }
  23. $res = $obj->first();
  24. return $res;
  25. }
  26. static function getFinancialStatSingle($channelId,$pay_merchant_company_id) {
  27. return self::where('distribution_channel_id',$channelId)->where('pay_merchant_company_id',$pay_merchant_company_id)->first();
  28. }
  29. static function updateBalanceByWithdraw($money,$channelId,$pay_merchant_company_id){
  30. $financialStat = self::getFinancialStatSingle($channelId,$pay_merchant_company_id);
  31. if(!empty($financialStat)) {
  32. $enable_amount = $financialStat['enable_withdrawal_amount'] - $money;
  33. $withdraw_pending_amount = $financialStat['withdraw_pending_amount'] + $money;
  34. //修改可提现总额
  35. $financialStat['enable_withdrawal_amount'] = round($enable_amount,2);
  36. //修改提现中金额
  37. $financialStat['withdraw_pending_amount'] = $withdraw_pending_amount;
  38. //修改最近提现金额
  39. $dataFinancialStat['latest_withdrawal_amount'] = $money;
  40. //修改提现时间
  41. $financialStat['latest_withdraw_time'] = date('Y-m-d H:i:s');
  42. $financialStat->save();
  43. }
  44. }
  45. static function getChannelEnableWithdrawByCompanyId($channel_id) {
  46. $obj = self::orderBy('enable_withdrawal_amount','desc')
  47. ->where('distribution_channel_id',$channel_id);
  48. return $obj->get();
  49. }
  50. }