WalletLog.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Support\Facades\DB;
  4. use Illuminate\Support\Facades\Log;
  5. class WalletLog extends Model
  6. {
  7. protected $guarded = [];
  8. const STATUS_OK = 1;
  9. const STATUS_PAUSE = 0;
  10. public static $statusMaps = [
  11. self::STATUS_OK => '正常',
  12. self::STATUS_PAUSE => '暂停'
  13. ];
  14. const OPERATE_TYPE_ADD = 1;
  15. const OPERATE_TYPE_SUB = 0;
  16. public static $operateTypeMaps = [
  17. self::OPERATE_TYPE_ADD => '充值',
  18. self::OPERATE_TYPE_SUB => '消费'
  19. ];
  20. //充值(微信)
  21. const TYPE_ADD_WECHAT_TO_WALLET = 0;
  22. //骑车消费(从余额)
  23. const TYPE_SUB_WALLET_BIKE_ORDER = 1;
  24. // 后台管理员结算订单(从余额扣除)
  25. const TYPE_ADMIN_SUB_BIKE_ORDER = 2;
  26. // 后台管理员返还(增加到钱包余额)
  27. const TYPE_ADMIN_ADD_TO_WALLET = 3;
  28. //租金消费
  29. const TYPE_SUB_WALLET_RENT_ORDER = 7;
  30. //租车订单消费
  31. const TYPE_SUB_WALLET_RENT_ORDER_MONEY = 5;
  32. // 企业支付 退余额
  33. const TYPE_SUB_WALLET = 9;
  34. //充值(微信)
  35. const TYPE_ADD_ADMIN_TO_WALLET = 11;
  36. // 微信支付订单
  37. const TYPE_ADD_WECHAT_PAY_ORDER = 20;
  38. // 微信订单消费(直接)
  39. const TYPE_SUB_WECHAT_PAY_ORDER = 21;
  40. // 微信支付订单
  41. const TYPE_ADD_WECHAT_PAY_PUNISHMENT_ORDER = 22;
  42. // 微信订单消费(直接)
  43. const TYPE_SUB_WECHAT_PAY_PUNISHMENT_ORDER = 23;
  44. //微信直接支付租金
  45. const TYPE_ADD_WECHAT_PAY_RENT_ORDER = 30;
  46. //微信直接支付租金
  47. const TYPE_SUB_WECHAT_PAY_RENT_ORDER = 31;
  48. //微信直接支付租金
  49. const TYPE_ADD_WECHAT_PAY_RENT_ORDER_MONEY = 32;
  50. //微信直接支付租金
  51. const TYPE_SUB_WECHAT_PAY_RENT_ORDER_MONEY = 33;
  52. //订单返现
  53. const TYPE_ADD_WECHAT_PAY_ORDER_MONEY = 34;
  54. const TYPE_SUB_ORDER_MONEY_PAY_WECHAT = 35;
  55. // 骑行卡
  56. const TYPE_ADD_WECHAT_PAY_CARD_RIDING_ORDER = 40;
  57. const TYPE_SUB_WECHAT_PAY_CARD_RIDING_ORDER = 41;
  58. // 免押金卡
  59. const TYPE_ADD_WECHAT_PAY_CARD_DEPOSIT_ORDER = 50;
  60. const TYPE_SUB_WECHAT_PAY_CARD_DEPOSIT_ORDER = 51;
  61. //充值赠送
  62. const TYPE_ADD_WECHAT_PREFERENTIAL_TO_WALLET = 10;
  63. //邀新赠送
  64. const TYPE_ADD_INVITE_NEW_TO_WELLET = 12;
  65. public static $typeMaps = [
  66. //微信
  67. self::TYPE_ADD_WECHAT_TO_WALLET => '【充值】用户充值(微信/支付宝)',
  68. self::TYPE_SUB_WALLET_BIKE_ORDER => '【消费】用户消费(骑车)',
  69. self::TYPE_SUB_WALLET_RENT_ORDER => '【消费】用户支付租金',
  70. self::TYPE_SUB_WALLET_RENT_ORDER_MONEY => '【消费】用户支付租车超时金额',
  71. self::TYPE_ADD_WECHAT_PAY_ORDER => '【充值】微信/支付宝直接支付订单',
  72. self::TYPE_SUB_WECHAT_PAY_ORDER => '【消费】微信/支付宝直接支付订单',
  73. self::TYPE_ADD_WECHAT_PAY_PUNISHMENT_ORDER => '【充值】微信/支付宝直接支付罚单',
  74. self::TYPE_SUB_WECHAT_PAY_PUNISHMENT_ORDER => '【消费】微信/支付宝直接支付罚单',
  75. self::TYPE_ADD_ADMIN_TO_WALLET => '【充值】系统充值余额',
  76. self::TYPE_ADD_WECHAT_PAY_RENT_ORDER => '【充值】微信/支付宝直接支付租金',
  77. self::TYPE_SUB_WECHAT_PAY_RENT_ORDER => '【消费】微信/支付宝直接支付租金',
  78. self::TYPE_ADD_WECHAT_PAY_RENT_ORDER_MONEY => '【充值】微信/支付宝直接支付租车超时金额',
  79. self::TYPE_SUB_WECHAT_PAY_RENT_ORDER_MONEY => '【消费】微信/支付宝直接支付租车超时金额',
  80. self::TYPE_ADD_WECHAT_PAY_ORDER_MONEY => '【充值】订单支付金额直接返用户',
  81. self::TYPE_SUB_ORDER_MONEY_PAY_WECHAT => '【消费】订单支付金额直接返用户',
  82. self::TYPE_ADD_WECHAT_PAY_CARD_RIDING_ORDER => '【充值】微信/支付宝支付购买骑行卡',
  83. self::TYPE_SUB_WECHAT_PAY_CARD_RIDING_ORDER => '【消费】微信/支付宝支付购买骑行卡',
  84. self::TYPE_ADD_WECHAT_PREFERENTIAL_TO_WALLET => '【充值】用户充值赠送(微信/支付宝)',
  85. self::TYPE_ADD_INVITE_NEW_TO_WELLET => '【赠送】邀请新用户赠送',
  86. self::TYPE_ADD_WECHAT_PAY_CARD_DEPOSIT_ORDER => '【充值】微信/支付宝支付购买免押金卡',
  87. self::TYPE_SUB_WECHAT_PAY_CARD_DEPOSIT_ORDER => '【消费】微信/支付宝支付购买免押金卡',
  88. self::TYPE_SUB_WALLET => '【消费】平余额退到用户微信',
  89. ];
  90. // 用户可看到钱包记录
  91. public static $userShowTypeMaps = [
  92. self::TYPE_ADD_WECHAT_TO_WALLET,//=> '【充值】用户充值(微信/支付宝)',
  93. self::TYPE_SUB_WALLET_BIKE_ORDER,//=> '【消费】用户消费(骑车)',
  94. self::TYPE_SUB_WALLET_RENT_ORDER,//=> '【消费】用户支付租金',
  95. self::TYPE_SUB_WALLET_RENT_ORDER_MONEY,//=> '【消费】用户支付租车超时金额',
  96. self::TYPE_SUB_WECHAT_PAY_ORDER,//=> '【消费】微信/支付宝直接支付订单',
  97. self::TYPE_SUB_WECHAT_PAY_RENT_ORDER,//=> '【消费】微信/支付宝直接支付租金',
  98. self::TYPE_SUB_WECHAT_PAY_RENT_ORDER_MONEY,// => '【消费】微信/支付宝直接支付租车超时金额',
  99. self::TYPE_ADD_WECHAT_PAY_ORDER_MONEY,//=> '【充值】订单支付金额直接返用户',
  100. self::TYPE_SUB_WECHAT_PAY_CARD_RIDING_ORDER,//=> '【消费】微信/支付宝支付购买骑行卡',
  101. self::TYPE_ADD_WECHAT_PREFERENTIAL_TO_WALLET,//【充值】用户充值赠送(微信/支付宝)
  102. self::TYPE_ADD_INVITE_NEW_TO_WELLET, // '【赠送】邀请新用户赠送'
  103. self::TYPE_SUB_WECHAT_PAY_CARD_DEPOSIT_ORDER,//'【消费】微信/支付宝支付购买免押金卡',
  104. self::TYPE_ADD_ADMIN_TO_WALLET, // '【充值】系统充值余额',
  105. self::TYPE_SUB_WECHAT_PAY_PUNISHMENT_ORDER, // '消费】微信/支付宝直接支付罚单',
  106. self::TYPE_SUB_WALLET,//消费】平余额退到用户微信/支付宝
  107. ];
  108. public static function log($operate_type, $money, $user_id, $type, $area_id, $log_id = false, $log_type = false, $ext = false, $name = false)
  109. {
  110. if (!$name) $name = self::$typeMaps[$type];
  111. if (!$operate_type) {
  112. $money = -$money;
  113. }
  114. $data = [
  115. 'area_id' => $area_id,
  116. 'money' => $money,
  117. 'operate_type' => $operate_type,
  118. 'user_id' => $user_id,
  119. 'type' => $type,
  120. 'name' => $name,
  121. 'status' => self::STATUS_OK,
  122. 'merchant_id' => Area::byIdGetMerchantId($area_id)
  123. ];
  124. if ($log_id && $log_type) {
  125. $data['log_id'] = $log_id;
  126. $data['log_type'] = $log_type;
  127. }
  128. if ($ext) {
  129. $data['data'] = $ext;
  130. }
  131. self::create($data);
  132. if ($type < 20) {
  133. User::where('id', $user_id)->increment('wallet_money', $money);
  134. if (in_array( $type , [self::TYPE_ADD_WECHAT_TO_WALLET] )) {
  135. // 充值
  136. User::where('id', $user_id)->increment('recharge', $money);
  137. }
  138. }
  139. }
  140. }