LiquidatedStat.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/12/7
  6. * Time: 上午9:50
  7. */
  8. namespace App\Modules\Finance\Models;
  9. use Illuminate\Database\Eloquent\Model;
  10. /**
  11. * 清算汇总表
  12. * Class LiquidatedStat
  13. * @package App\Modules\Finance\Models
  14. */
  15. class LiquidatedStat extends Model
  16. {
  17. protected $table = 'liquidated_stats';
  18. protected $fillable = ['amount', 'account_balance_amount', 'account_balance_amount_day', 'pay_merchant_source'];
  19. /**
  20. * 添加更新清算汇总
  21. * @param $amount 添加正数,减少负数
  22. * @param $pay_merchant_source
  23. * @return mixed
  24. */
  25. public static function createOrUpdate($pay_merchant_source, $amount) {
  26. $liquidatedStat = self::where('pay_merchant_source', $pay_merchant_source)->first();
  27. if($pay_merchant_source == config('common.tonglianpay') || $pay_merchant_source == config('common.officialpay')) {
  28. //官方,通联,每天自动结算,不用清算数据
  29. $amount = 0;
  30. }
  31. if(empty($liquidatedStat)) {
  32. $liquidatedStat['amount'] = $amount;
  33. $liquidatedStat['pay_merchant_source'] = $pay_merchant_source;
  34. $liquidatedStat = LiquidatedStat::create($liquidatedStat);
  35. } else {
  36. $liquidatedStat['amount'] = (float)$liquidatedStat['amount'] + (float)$amount;
  37. $liquidatedStat->save();
  38. }
  39. return $liquidatedStat;
  40. }
  41. /**
  42. * 更新支付渠道余额
  43. * @param $pay_merchant_source
  44. * @param $amount
  45. * @return mixed
  46. */
  47. public static function updateAccountBalanceAmount($pay_merchant_source, $amount) {
  48. $liquidatedStat = self::where('pay_merchant_source', $pay_merchant_source)->first();
  49. if(!empty($liquidatedStat)) {
  50. $hh = date('H');
  51. if($hh > 0 && $hh < 9) {
  52. //每天 0-9点直接更新当前渠道的 真实余额
  53. $liquidatedStat['account_balance_amount_day'] = (float)$amount;
  54. } else if($liquidatedStat['account_balance_amount'] == $liquidatedStat['account_balance_amount_day']) {
  55. //今天还没有开始打款 更新真实余额
  56. $liquidatedStat['account_balance_amount_day'] = (float)$amount;
  57. }
  58. $liquidatedStat['account_balance_amount_day'] = (float)$amount;
  59. $liquidatedStat['account_balance_amount'] = (float)$amount;
  60. $liquidatedStat->save();
  61. }
  62. return $liquidatedStat;
  63. }
  64. /**
  65. * 更新支付渠道余额当天
  66. * @param $pay_merchant_source
  67. * @param $amount
  68. * @return mixed
  69. */
  70. public static function updateAccountBalanceAmountDay($pay_merchant_source, $amount) {
  71. $liquidatedStat = self::where('pay_merchant_source', $pay_merchant_source)->first();
  72. if(!empty($liquidatedStat)) {
  73. $liquidatedStat['account_balance_amount_day'] = $liquidatedStat['account_balance_amount_day'] + (float)$amount;
  74. $liquidatedStat->save();
  75. }
  76. return $liquidatedStat;
  77. }
  78. /**
  79. * 清算汇总列表
  80. * @return mixed
  81. */
  82. public static function getLiquidatedStatList() {
  83. $search_object = LiquidatedStat::select([
  84. 'liquidated_stats.id',
  85. 'liquidated_stats.amount',
  86. 'liquidated_stats.account_balance_amount',
  87. 'liquidated_stats.pay_merchant_source'
  88. ]);
  89. return $search_object->get();
  90. }
  91. /**
  92. * 根据支付通道获取
  93. * @param $pay_merchant_source
  94. * @return mixed
  95. */
  96. public static function getLiquidatedStatSingleBySource($pay_merchant_source) {
  97. $liquidatedStat = self::where('pay_merchant_source', $pay_merchant_source)->first();
  98. return $liquidatedStat;
  99. }
  100. }