Shop.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  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. case "speedlimit":
  28. $content_text .= "用户端口限速变为".$content["speedlimit"]." Mbps";
  29. break;
  30. case "connector":
  31. $content_text .= "用户IP限制变为".$content["connector"]." 个";
  32. break;
  33. default:
  34. }
  35. if ($i<count($content)&&$key!="connector") {
  36. $content_text .= ",";
  37. }
  38. $i++;
  39. }
  40. if (substr($content_text, -1, 1)==",") {
  41. $content_text=substr($content_text, 0, -1);
  42. }
  43. return $content_text;
  44. }
  45. public function bandwidth()
  46. {
  47. $content = json_decode($this->attributes['content']);
  48. if (isset($content->bandwidth)) {
  49. return $content->bandwidth;
  50. } else {
  51. return 0;
  52. }
  53. }
  54. public function expire()
  55. {
  56. $content = json_decode($this->attributes['content']);
  57. if (isset($content->expire)) {
  58. return $content->expire;
  59. } else {
  60. return 0;
  61. }
  62. }
  63. public function reset()
  64. {
  65. $content = json_decode($this->attributes['content']);
  66. if (isset($content->reset)) {
  67. return $content->reset;
  68. } else {
  69. return 0;
  70. }
  71. }
  72. public function reset_value()
  73. {
  74. $content = json_decode($this->attributes['content']);
  75. if (isset($content->reset_value)) {
  76. return $content->reset_value;
  77. } else {
  78. return 0;
  79. }
  80. }
  81. public function reset_exp()
  82. {
  83. $content = json_decode($this->attributes['content']);
  84. if (isset($content->reset_exp)) {
  85. return $content->reset_exp;
  86. } else {
  87. return 0;
  88. }
  89. }
  90. public function user_class()
  91. {
  92. $content = json_decode($this->attributes['content']);
  93. if (isset($content->class)) {
  94. return $content->class;
  95. } else {
  96. return 0;
  97. }
  98. }
  99. public function class_expire()
  100. {
  101. $content = json_decode($this->attributes['content']);
  102. if (isset($content->class_expire)) {
  103. return $content->class_expire;
  104. } else {
  105. return 0;
  106. }
  107. }
  108. public function speedlimit()
  109. {
  110. $content = json_decode($this->attributes['content']);
  111. if (isset($content->speedlimit)) {
  112. return $content->speedlimit;
  113. } else {
  114. return 0;
  115. }
  116. }
  117. public function connector()
  118. {
  119. $content = json_decode($this->attributes['content']);
  120. if (isset($content->connector)) {
  121. return $content->connector;
  122. } else {
  123. return 0;
  124. }
  125. }
  126. public function buy($user, $is_renew = 0)
  127. {
  128. $content = json_decode($this->attributes['content'], true);
  129. $content_text="";
  130. foreach ($content as $key=>$value) {
  131. switch ($key) {
  132. case "bandwidth":
  133. if ($is_renew == 0) {
  134. if (Config::get('enable_bought_reset') == 'true') {
  135. $user->transfer_enable=$value*1024*1024*1024;
  136. $user->u = 0;
  137. $user->d = 0;
  138. $user->last_day_t = 0;
  139. } else {
  140. $user->transfer_enable=$user->transfer_enable+$value*1024*1024*1024;
  141. }
  142. } else {
  143. if ($this->attributes['auto_reset_bandwidth'] == 1) {
  144. $user->transfer_enable=$value*1024*1024*1024;
  145. $user->u = 0;
  146. $user->d = 0;
  147. $user->last_day_t = 0;
  148. } else {
  149. $user->transfer_enable=$user->transfer_enable+$value*1024*1024*1024;
  150. }
  151. }
  152. break;
  153. case "expire":
  154. if (time()>strtotime($user->expire_in)) {
  155. $user->expire_in=date("Y-m-d H:i:s", time()+$value*86400);
  156. } else {
  157. $user->expire_in=date("Y-m-d H:i:s", strtotime($user->expire_in)+$value*86400);
  158. }
  159. break;
  160. case "class":
  161. if ($user->class==0||$user->class!=$value) {
  162. $user->class_expire=date("Y-m-d H:i:s", time());
  163. }
  164. $user->class_expire=date("Y-m-d H:i:s", strtotime($user->class_expire)+$content["class_expire"]*86400);
  165. $user->class=$value;
  166. break;
  167. case "speedlimit":
  168. $user->node_speedlimit=$value;
  169. break;
  170. case "connector":
  171. $user->node_connector=$value;
  172. break;
  173. default:
  174. }
  175. }
  176. $user->save();
  177. }
  178. }