formCoinTrait.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Models\WxClause;
  4. use App\Wen\Utils\AdminUtils;
  5. use App\Wen\Utils\GatewayUtils;
  6. use App\Wen\Utils\Settings;
  7. use App\Wen\Utils\SiteUtils;
  8. use Dcat\Admin\Form\NestedForm;
  9. use Dcat\Admin\Layout\Content;
  10. use Dcat\Admin\Widgets\Form;
  11. use Dcat\Admin\Widgets\Tooltip;
  12. use Illuminate\Http\Request;
  13. trait formCoinTrait{
  14. public function index_coin(Content $content)
  15. {
  16. return $content->title('金币系统')
  17. // ->body($this->buildPreviewButton())
  18. // ->body($this->newline())
  19. ->body(
  20. <<<HTML
  21. <div class="card">{$this->form_coin()->render()}</div>
  22. HTML
  23. );
  24. }
  25. protected function form_coin(){
  26. $form = new Form();
  27. $form->confirm('您确定要提交表单吗?', 'content');
  28. $form->disableResetButton();
  29. $form->tab('支付', function (Form $form) {
  30. $res17 = __system__paycode__tip__(17);
  31. Tooltip::make('.mini_global_admin_open_not_support_tip')
  32. ->bottom()
  33. ->title($res17['tip']);
  34. $form->html(function () {
  35. return '<img src="https://img.mini.minisns.cn/hbx/zuhezhifu.jpg" style="width: 230px;" />';
  36. }, '');
  37. $form->text('app_coin_name', '金币名称自定义')->help('只能是文字')->default(Settings::get('app_coin_name', '硬币'));
  38. $form->radio('app_coin_pay_open', '金币支付')->options([1=>'开启', 0=>'关闭'])->help($res17['text'].'允许金币抵扣人民币')->default(Settings::get('app_coin_pay_open', 0));
  39. $form->number('app_coin_pay_rate', '金币兑换比例')->help('比如100则代表100个金币可以购买余额¥1')->default(Settings::get('app_coin_pay_rate', 100));
  40. $form->rate('app_coin_pay_percent_every', '单次兑换订单比例')->help('30: 代表一次金币只可以兑换订单总额的30%')->default(Settings::get('app_coin_pay_percent_every', 30));
  41. });
  42. $form->tab('激励', function (Form $form) {
  43. $form->html(function () {
  44. return '';
  45. }, '<b>1、发帖激励</b>');
  46. $form->number('app_coin_publish_reward_every', '每次发帖奖励')->default(Settings::get('app_coin_publish_reward_every', 10));
  47. $form->number('app_coin_publish_reward_times', '每天发帖奖励次数')->default(Settings::get('app_coin_publish_reward_times', 1));
  48. $form->html(function () {
  49. return '';
  50. }, '<b>1、评论激励</b>');
  51. $form->number('app_coin_comment_reward_every', '每次评论奖励')->default(Settings::get('app_coin_comment_reward_every', 5));
  52. $form->number('app_coin_comment_reward_times', '每天评论奖励次数')->default(Settings::get('app_coin_comment_reward_times', 3));
  53. });
  54. $form->tab('投币', function (Form $form) {
  55. $form->html(function () {
  56. return '<a href="https://img.mini.minisns.cn/hbx/give_coin.jpg" target="_blank">点击查看,这里设置的是什么地方</a>';
  57. }, '');
  58. $form->switch('app_coin_give_switch', '投币开关')->help('仅影响评论框的投币是否显示')->default(Settings::get('app_coin_give_switch', 1));
  59. $form->select('app_coin_give_clause', '投币说明')->options(WxClause::pluck('title', 'id'))->help('<a href="'.admin_url('clause').'" target="_blank">进入条款管理</a>')->default(Settings::get('app_coin_give_clause', 0));
  60. $form->html(function () {
  61. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">tips:默认选中第一个,经验值的大概什么概念呢,你在线1分钟可以获得1经验值</div>';
  62. }, '');
  63. $form->table('app_coin_give_options','选项配置', function (NestedForm $table) {
  64. $table->number('num', '数量')->default(10)->required();
  65. $table->image('img', '图片')->help('建议和默认图片大小。 <a href="https://img.mini.minisns.cn/2023/06/22/3aad4861968159b3222592816cac74f6.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->autoUpload()->default('https://img.mini.minisns.cn/2023/06/22/3aad4861968159b3222592816cac74f6.png');
  66. $table->number('exp', '经验' )->default(10);
  67. })->default(Settings::get('app_coin_give_options', ''));
  68. });
  69. $form->action('settings/action/coin');
  70. return $form;
  71. }
  72. public function coin(Request $request){
  73. SiteUtils::forget_config_data();
  74. Settings::set('app_coin_name', trim($request->input('app_coin_name')), true);
  75. Settings::set('app_coin_pay_open', $request->input('app_coin_pay_open'), true);
  76. Settings::set('app_coin_pay_rate', $request->input('app_coin_pay_rate'), true);
  77. Settings::set('app_coin_pay_percent_every', _between_($request->input('app_coin_pay_percent_every'), 0, 100), true);
  78. Settings::set('app_coin_publish_reward_every', $request->input('app_coin_publish_reward_every'), true);
  79. Settings::set('app_coin_publish_reward_times', $request->input('app_coin_publish_reward_times'), true);
  80. Settings::set('app_coin_comment_reward_every', $request->input('app_coin_comment_reward_every'), true);
  81. Settings::set('app_coin_comment_reward_times', $request->input('app_coin_comment_reward_times'), true);
  82. Settings::set('app_coin_give_switch', _empty_($request->input('app_coin_give_switch')) ? 0 : 1, true);
  83. Settings::set('app_coin_give_clause', $request->input('app_coin_give_clause'), true);
  84. Settings::set('app_coin_give_options', AdminUtils::_table_data($request->input('app_coin_give_options')), true);
  85. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  86. Settings::set('__global_config_version__', $__global_config_version__);
  87. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  88. return $this->response()->success('成功!');
  89. }
  90. }