formGroupPushTrait.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Models\WxTenant;
  4. use App\Wen\Utils\GatewayUtils;
  5. use App\Wen\Utils\Settings;
  6. use App\Wen\Utils\SiteUtils;
  7. use Dcat\Admin\Layout\Content;
  8. use Dcat\Admin\Widgets\Form;
  9. use Illuminate\Http\Request;
  10. trait formGroupPushTrait{
  11. public function index_group_push(Content $content)
  12. {
  13. return $content->title('群推送配置')
  14. // ->body($this->buildPreviewButton())
  15. // ->body($this->newline())
  16. ->body(
  17. <<<HTML
  18. <div class="card">{$this->form_group_push()->render()}</div>
  19. HTML
  20. );
  21. }
  22. protected function form_group_push(){
  23. $form = new Form();
  24. $form->confirm('您确定要提交表单吗?', 'content');
  25. $form->disableResetButton();
  26. $form->html(function () {
  27. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">群推送教程:<a href="https://doc.minisns.cn/project-13/" target="_blank">https://doc.minisns.cn/project-13/</a></div>';
  28. }, '');
  29. $form->number('group_push_min_post_id', '笔记最小推送id')->help('如果过于旧的笔记不想被推送,则可以配置这个,小于这个id的笔记都不会被推送')->default(Settings::get('group_push_min_post_id', 0));
  30. $form->number('group_push_min_used_id', '闲置最小推送id')->help('如果过于旧的闲置不想被推送,则可以配置这个,小于这个id的闲置都不会被推送')->default(Settings::get('group_push_min_used_id', 0));
  31. $form->divider();
  32. $form->html(function () {
  33. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">输入uid,那么对应的分站推送到群时,会自动带上该用户的推广标识</div>';
  34. }, '');
  35. $tenants = WxTenant::all();
  36. if($tenants){
  37. foreach ($tenants as $tenant){
  38. if($tenant->tenant_id > 0){
  39. $form->text('tenant_'.$tenant->tenant_id.'_push_with_uid', $tenant->name)->default(Settings::get('tenant_'.$tenant->tenant_id.'_push_with_uid', 0));
  40. }
  41. }
  42. }
  43. $form->action('settings/action/group_push');
  44. return $form;
  45. }
  46. public function group_push(Request $request){
  47. SiteUtils::forget_config_data();
  48. Settings::set('group_push_min_post_id', trim($request->input('group_push_min_post_id')), true);
  49. Settings::set('group_push_min_used_id', trim($request->input('group_push_min_used_id')), true);
  50. $tenants = WxTenant::all();
  51. if($tenants){
  52. $env_updates = [];
  53. foreach ($tenants as $tenant){
  54. if($tenant->tenant_id > 0){
  55. Settings::set('tenant_'.$tenant->tenant_id.'_push_with_uid', $request->input('tenant_'.$tenant->tenant_id.'_push_with_uid'), true);
  56. $env_updates['TENANT_'.$tenant->tenant_id.'_PUSH_WITH_UID'] = (int)(trim_all_space($request->input('tenant_'.$tenant->tenant_id.'_push_with_uid')));
  57. }
  58. }
  59. _update_env($env_updates, [], 1);
  60. }
  61. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  62. Settings::set('__global_config_version__', $__global_config_version__);
  63. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  64. return $this->response()->success('成功!');
  65. }
  66. }