HomeController.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Metrics\Home\HomeDashboard;
  4. use App\Admin\Metrics\Posts\AllCircle;
  5. use App\Admin\Metrics\Posts\PostsTickets;
  6. use App\Admin\Metrics\Users\AllUsers;
  7. use App\Admin\Metrics\Users\AuthUsers;
  8. use App\Admin\Metrics\Users\VipUsers;
  9. use App\Http\Controllers\Controller;
  10. use App\Jobs\System\CheckAllTableCharsetJob;
  11. use App\Jobs\System\CheckBatchCahceDataLossJob;
  12. use App\Jobs\System\SettingImgToJpgJob;
  13. use App\Jobs\System\StrReplaceStrJob;
  14. use App\Jobs\System\SubMenuPermissionCheck;
  15. use App\Models\WxUniversity;
  16. use App\Wen\Utils\Settings;
  17. use Dcat\Admin\Layout\Column;
  18. use Dcat\Admin\Layout\Content;
  19. use Dcat\Admin\Layout\Row;
  20. class HomeController extends Controller
  21. {
  22. public function index(Content $content)
  23. {
  24. global $__MINI_GLOBAL_TENANT_ID__;
  25. $this->init_pay_codes();
  26. if($__MINI_GLOBAL_TENANT_ID__ > 0){
  27. return $content
  28. ->header('分站控制台')
  29. ->description('')
  30. ->body(function (Row $row) {
  31. $row->column(6, function (Column $column) {
  32. $column->row(HomeDashboard::title());
  33. $column->row(new PostsTickets());
  34. });
  35. $row->column(6, function (Column $column) {
  36. $column->row(function (Row $row) {
  37. $row->column(6, new AuthUsers());
  38. $row->column(6, new VipUsers());
  39. });
  40. $column->row(new AllUsers());
  41. $column->row(new AllCircle());
  42. });
  43. });
  44. }else{
  45. return $content
  46. ->header('统计控制台')
  47. ->description('')
  48. ->body(function (Row $row) {
  49. $row->column(6, function (Column $column) {
  50. $column->row(HomeDashboard::title());
  51. $column->row(new PostsTickets());
  52. });
  53. $row->column(6, function (Column $column) {
  54. $column->row(function (Row $row) {
  55. $row->column(6, new AuthUsers());
  56. $row->column(6, new VipUsers());
  57. });
  58. $column->row(new AllUsers());
  59. $column->row(new AllCircle());
  60. });
  61. });
  62. }
  63. }
  64. public function init_pay_codes(){
  65. global $__MINI_GLOBAL_VERSION__;
  66. if(Settings::get('init_pay_codes:version', '001 000 000 000') < $__MINI_GLOBAL_VERSION__){
  67. CheckAllTableCharsetJob::dispatch();
  68. CheckBatchCahceDataLossJob::dispatch();
  69. if(_empty_(Settings::get('mini_pay_code_1', ''))) {
  70. Settings::set('mini_pay_code_1', 'https://img.mini.minisns.cn/2023/05/06/3a8150e0c552f7b5649932339da1ca1b.jpg', true);
  71. }
  72. if(_empty_(Settings::get('mini_pay_code_2', ''))) {
  73. Settings::set('mini_pay_code_2', 'https://img.mini.minisns.cn/2023/05/04/ec15503cbea2075128b81c2ab98b64fe.jpg', true);
  74. }
  75. if(_empty_(Settings::get('mini_pay_code_3', ''))) {
  76. Settings::set('mini_pay_code_3', 'https://img.mini.minisns.cn/2023/05/06/271945d1229c94c4f16f850b9b8bb0bf.jpg', true);
  77. }
  78. if(_empty_(Settings::get('mini_pay_code_4', ''))) {
  79. Settings::set('mini_pay_code_4', 'https://img.mini.minisns.cn/2023/05/06/29200f83e9019f1b3c5bbdcd779040b9.jpg', true);
  80. }
  81. if(_empty_(Settings::get('mini_pay_code_5', ''))) {
  82. Settings::set('mini_pay_code_5', 'https://img.mini.minisns.cn/2023/05/06/0c3c850b2b97a9cb035a14bd772e1deb.jpg', true);
  83. }
  84. if(_empty_(Settings::get('mini_pay_code_6', ''))) {
  85. Settings::set('mini_pay_code_6', 'https://img.mini.minisns.cn/2023/05/06/cc056fa268fb069885db46cfde03c00b.jpg', true);
  86. }
  87. if(_empty_(Settings::get('mini_pay_code_7', ''))) {
  88. Settings::set('mini_pay_code_7', 'https://img.mini.minisns.cn/2023/05/06/3b4bf890baf838241e06013d4773a83d.jpg', true);
  89. }
  90. if(_empty_(Settings::get('mini_pay_code_8', ''))) {
  91. Settings::set('mini_pay_code_8', 'https://img.mini.minisns.cn/2023/05/06/2b44259261a4ecdfc014124442061e4e.jpg', true);
  92. }
  93. if(_empty_(Settings::get('mini_pay_code_9', ''))) {
  94. Settings::set('mini_pay_code_9', 'https://img.mini.minisns.cn/2023/05/06/2b3b4497a3197e8552f61e93ae902fee.jpg', true);
  95. }
  96. if(_empty_(Settings::get('mini_pay_code_10', ''))) {
  97. Settings::set('mini_pay_code_10', 'https://img.mini.minisns.cn/2023/05/06/fbea86d62bb267c9a3b501010f1f5c19.jpg', true);
  98. }
  99. if(_empty_(Settings::get('mini_pay_code_11', ''))) {
  100. Settings::set('mini_pay_code_11', 'https://img.mini.minisns.cn/2023/05/06/2c05553eacc02ba730f02889198181e1.jpg', true);
  101. }
  102. if(_empty_(Settings::get('mini_pay_code_12', ''))) {
  103. Settings::set('mini_pay_code_12', 'https://img.mini.minisns.cn/2023/05/06/e32c4861fb43f8fe59008b13f64806ca.jpg', true);
  104. }
  105. if(_empty_(Settings::get('mini_pay_code_13', ''))) {
  106. Settings::set('mini_pay_code_13', 'https://img.mini.minisns.cn/2023/09/04/38292f7ea53932fb984d38756989d434.png', true);
  107. }
  108. if(_empty_(Settings::get('mini_pay_code_14', ''))) {
  109. Settings::set('mini_pay_code_14', 'https://img.mini.minisns.cn/2023/05/05/0074a494fc254d722488fdd41863aa54.jpg', true);
  110. }
  111. if(_empty_(Settings::get('mini_pay_code_16', ''))) {
  112. Settings::set('mini_pay_code_16', 'https://img.mini.minisns.cn/2023/06/02/1c47e36d1d134c18b53accc13250d5a9.jpg', true);
  113. }
  114. if(_empty_(Settings::get('mini_pay_code_17', ''))) {
  115. Settings::set('mini_pay_code_17', 'https://img.mini.minisns.cn/2023/05/06/afdb97216a837dcdd1c8665c3c05ee7f.jpg', true);
  116. }
  117. if(_empty_(Settings::get('mini_pay_code_18', ''))) {
  118. Settings::set('mini_pay_code_18', 'https://img.mini.minisns.cn/2023/05/20/f5103e7535efd5119dfce095fc169c43.jpg', true);
  119. }
  120. if(_empty_(Settings::get('mini_pay_code_19', ''))) {
  121. Settings::set('mini_pay_code_19', 'https://img.mini.minisns.cn/2023/05/20/94c0fc874823266cf0b56c385ad2d9eb.jpg', true);
  122. }
  123. if(_empty_(Settings::get('mini_pay_code_20', ''))) {
  124. Settings::set('mini_pay_code_20', 'https://img.mini.minisns.cn/2023/05/31/48d47b6f319126513410698920bf7eb7.jpg', true);
  125. }
  126. if(_empty_(Settings::get('mini_pay_code_21', ''))) {
  127. Settings::set('mini_pay_code_21', 'https://img.mini.minisns.cn/2023/10/29/60b4cf33768e86b1dc09d79d51ee25cc.png', true);
  128. }
  129. if(_empty_(Settings::get('mini_pay_code_22', ''))) {
  130. Settings::set('mini_pay_code_22', 'https://img.mini.minisns.cn/2023/10/29/7a984bbb2df19ac2f506bf504947eae5.png', true);
  131. }
  132. if(_empty_(Settings::get('mini_pay_code_23', ''))) {
  133. Settings::set('mini_pay_code_23', 'https://img.mini.minisns.cn/2023/08/11/93e6430f6ffca8205bc1c50e2429d3bc.png', true);
  134. }
  135. if(_empty_(Settings::get('mini_pay_code_24', ''))) {
  136. Settings::set('mini_pay_code_24', 'https://img.mini.minisns.cn/2023/08/27/f33f453d12705f1ce41597f1f13112ac.png', true);
  137. }
  138. if(_empty_(Settings::get('mini_pay_code_26', ''))) {
  139. Settings::set('mini_pay_code_26', 'https://img.mini.minisns.cn/2023/09/05/9a59b7cec7b43d18ec96456b5ddace13.png', true);
  140. }
  141. if(_empty_(Settings::get('mini_pay_code_27', ''))) {
  142. Settings::set('mini_pay_code_27', 'https://img.mini.minisns.cn/2023/10/29/8517d17169a01fdb609d1b079408c10d.png', true);
  143. }
  144. // todo:
  145. if(_empty_(Settings::get('mini_pay_code_30', ''))) {
  146. Settings::set('mini_pay_code_30', 'https://img.mini.minisns.cn/2024/01/22/1c6966ad4a85a7062c4ee476c1623d9d.png', true);
  147. }
  148. if(_empty_(Settings::get('mini_pay_code_31', ''))) {
  149. Settings::set('mini_pay_code_31', 'https://img.mini.minisns.cn/2024/03/02/0/5071fc26ab0e7e31aeef59e35196c663.png', true);
  150. }
  151. if(_empty_(Settings::get('mini_pay_code_32', ''))) {
  152. Settings::set('mini_pay_code_32', 'https://img.mini.minisns.cn/2024/04/05/0/8ece49e0ff75217fe6a33459d48067b2.png', true);
  153. }
  154. if(_empty_(Settings::get('mini_pay_code_33', ''))) {
  155. Settings::set('mini_pay_code_33', 'https://img.mini.minisns.cn/2024/04/21/0/5532bab95b8051dfa9a82043d67fadbd.png', true);
  156. }
  157. if(_empty_(Settings::get('mini_pay_code_34', ''))) {
  158. Settings::set('mini_pay_code_34', 'https://img.mini.minisns.cn/2024/05/28/0/43aab398869588ecfd810a537578c4da.png', true);
  159. }
  160. if(_empty_(Settings::get('mini_access_token', '', false, false))){
  161. Settings::set('mini_access_token', md5(time()));
  162. }
  163. $is_official = \App\Models\User\WxUser::where('is_official', 1)->pluck('id')->toArray();
  164. if($is_official){
  165. _update_env([
  166. 'APP_ADMIN_USER_ID' => implode(',', $is_official),
  167. ], [], 1);
  168. }else{
  169. _update_env([
  170. 'APP_ADMIN_USER_ID' => '',
  171. ], [], 1);
  172. }
  173. SubMenuPermissionCheck::dispatch();
  174. if(_empty_(Settings::get('app_balance_recharge_list', ''))){
  175. Settings::set('app_balance_recharge_list', '[{"balance":"1","rmb":"1"},{"balance":"3","rmb":"3"},{"balance":"6","rmb":"6"},{"balance":"12","rmb":"12"},{"balance":"28","rmb":"28"},{"balance":"48","rmb":"48"},{"balance":"78","rmb":"78"},{"balance":"98","rmb":"98"},{"balance":"128","rmb":"128"},{"balance":"168","rmb":"168"},{"balance":"198","rmb":"198"},{"balance":"228","rmb":"228"},{"balance":"300","rmb":"300"}]', true);
  176. }
  177. SettingImgToJpgJob::dispatch(['used_mall_index_share_image', 'img_share_default']);
  178. $this->school_data_init();
  179. Settings::set('init_pay_codes:version', $__MINI_GLOBAL_VERSION__, true);
  180. if(strpos(Settings::get('user_background_maps', ''), 'img.mini.chongyeapp.com') !== false){
  181. StrReplaceStrJob::dispatch('img.mini.chongyeapp.com', 'img.mini.minisns.cn');
  182. }
  183. }
  184. }
  185. private function school_data_init(){
  186. if(file_exists(storage_path('app/school/2013_school_3072.ini')) && WxUniversity::doesntExist()){
  187. $content = file_get_contents(storage_path('app/school/2013_school_3072.ini'));
  188. $content = explode("\n", $content);
  189. $schools = [];
  190. if($content){
  191. $order = 1;
  192. foreach ($content as $line){
  193. if($line){
  194. $schol = explode(',', $line);
  195. if(_array_key($schol, 1, null)){
  196. $schools[] = [
  197. 'sid' => $schol[1],
  198. 'name' => $schol[0],
  199. 'order' => $order,
  200. 'charge' => _array_key($schol, 2, null),
  201. 'location' => _array_key($schol, 3, null),
  202. 'level' => strpos(_array_key($schol, 4, ''), '本科') !== false ? 1 : ( strpos(_array_key($schol, 4, ''), '专科') !== false ? 2 : 3),
  203. 'private' => strpos(_array_key($schol, 4, ''), '民办') !== false ? 1 : 0,
  204. 'is_certify' => 0
  205. ];
  206. $order += 1;
  207. }
  208. }
  209. }
  210. }
  211. if($schools){
  212. $chunks = array_chunk($schools, 500); // 将数组分割为每500个一组
  213. foreach ($chunks as $chunk) {
  214. WxUniversity::insert($chunk);
  215. }
  216. }
  217. }
  218. }
  219. }