Shop.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Models;
  3. use App\Services\Config;
  4. class Shop extends Model
  5. {
  6. protected $connection = "default";
  7. protected $table = "shop";
  8. public function content()
  9. {
  10. $content = json_decode($this->attributes['content'], true);
  11. $content_text="";
  12. $i = 0;
  13. foreach ($content as $key=>$value) {
  14. switch ($key) {
  15. case "bandwidth":
  16. $content_text .= "添加流量 ".$value." G ";
  17. break;
  18. case "expire":
  19. $content_text .= "为账号的有效期添加 ".$value." 天 ";
  20. break;
  21. case "class":
  22. $content_text .= "为账号升级为等级 ".$value." ,有效期 ".$content["class_expire"]." 天";
  23. break;
  24. case "reset":
  25. $content_text .= " 在 ".$content["reset_exp"]." 天内,每 ".$value." 天重置流量为 ".$content["reset_value"]." G ";
  26. break;
  27. default:
  28. }
  29. if ($i<count($content)&&$key!="reset_exp") {
  30. $content_text .= ",";
  31. }
  32. $i++;
  33. }
  34. if (substr($content_text, -1, 1)==",") {
  35. $content_text=substr($content_text, 0, -1);
  36. }
  37. return $content_text;
  38. }
  39. public function bandwidth()
  40. {
  41. $content = json_decode($this->attributes['content']);
  42. if (isset($content->bandwidth)) {
  43. return $content->bandwidth;
  44. } else {
  45. return 0;
  46. }
  47. }
  48. public function expire()
  49. {
  50. $content = json_decode($this->attributes['content']);
  51. if (isset($content->expire)) {
  52. return $content->expire;
  53. } else {
  54. return 0;
  55. }
  56. }
  57. public function reset()
  58. {
  59. $content = json_decode($this->attributes['content']);
  60. if (isset($content->reset)) {
  61. return $content->reset;
  62. } else {
  63. return 0;
  64. }
  65. }
  66. public function reset_value()
  67. {
  68. $content = json_decode($this->attributes['content']);
  69. if (isset($content->reset_value)) {
  70. return $content->reset_value;
  71. } else {
  72. return 0;
  73. }
  74. }
  75. public function reset_exp()
  76. {
  77. $content = json_decode($this->attributes['content']);
  78. if (isset($content->reset_exp)) {
  79. return $content->reset_exp;
  80. } else {
  81. return 0;
  82. }
  83. }
  84. public function user_class()
  85. {
  86. $content = json_decode($this->attributes['content']);
  87. if (isset($content->class)) {
  88. return $content->class;
  89. } else {
  90. return 0;
  91. }
  92. }
  93. public function class_expire()
  94. {
  95. $content = json_decode($this->attributes['content']);
  96. if (isset($content->class_expire)) {
  97. return $content->class_expire;
  98. } else {
  99. return 0;
  100. }
  101. }
  102. public function buy($user, $is_renew = 0)
  103. {
  104. $content = json_decode($this->attributes['content'], true);
  105. $content_text="";
  106. foreach ($content as $key=>$value) {
  107. switch ($key) {
  108. case "bandwidth":
  109. if ($is_renew == 0) {
  110. if (Config::get('enable_bought_reset') == 'true') {
  111. $user->transfer_enable=$value*1024*1024*1024;
  112. $user->u = 0;
  113. $user->d = 0;
  114. $user->last_day_t = 0;
  115. } else {
  116. $user->transfer_enable=$user->transfer_enable+$value*1024*1024*1024;
  117. }
  118. } else {
  119. if ($this->attributes['auto_reset_bandwidth'] == 1) {
  120. $user->transfer_enable=$value*1024*1024*1024;
  121. $user->u = 0;
  122. $user->d = 0;
  123. $user->last_day_t = 0;
  124. } else {
  125. $user->transfer_enable=$user->transfer_enable+$value*1024*1024*1024;
  126. }
  127. }
  128. break;
  129. case "expire":
  130. if (time()>strtotime($user->expire_in)) {
  131. $user->expire_in=date("Y-m-d H:i:s", time()+$value*86400);
  132. } else {
  133. $user->expire_in=date("Y-m-d H:i:s", strtotime($user->expire_in)+$value*86400);
  134. }
  135. break;
  136. case "class":
  137. if ($user->class==0||$user->class!=$value) {
  138. $user->class_expire=date("Y-m-d H:i:s", time());
  139. }
  140. $user->class_expire=date("Y-m-d H:i:s", strtotime($user->class_expire)+$content["class_expire"]*86400);
  141. $user->class=$value;
  142. break;
  143. default:
  144. }
  145. }
  146. $user->save();
  147. }
  148. }