formPageMineTrait.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Admin\Renderable\DayTaskRender;
  4. use App\Admin\Renderable\IconRender;
  5. use App\Admin\Renderable\PlateRender;
  6. use App\Jobs\UserBgColorUpdateJob;
  7. use App\Models\WxClause;
  8. use App\Models\WxIcon;
  9. use App\Models\WxPlate;
  10. use App\Models\WxTask;
  11. use App\Wen\Utils\AdminUtils;
  12. use App\Wen\Utils\FieldUtils;
  13. use App\Wen\Utils\GatewayUtils;
  14. use App\Wen\Utils\Settings;
  15. use App\Wen\Utils\SiteUtils;
  16. use Dcat\Admin\Form\NestedForm;
  17. use Dcat\Admin\Layout\Content;
  18. use Dcat\Admin\Widgets\Form;
  19. use Illuminate\Http\Request;
  20. use Illuminate\Support\Facades\Cache;
  21. trait formPageMineTrait{
  22. public function index_pagemine(Content $content)
  23. {
  24. return $content->title('“我”相关')
  25. // ->body($this->buildPreviewButton())
  26. // ->body($this->newline())
  27. ->body(
  28. <<<HTML
  29. <div class="card">{$this->form_pagemine()->render()}</div>
  30. HTML
  31. );
  32. }
  33. protected function form_pagemine(){
  34. $form = new Form();
  35. $form->confirm('您确定要提交表单吗?', 'content');
  36. $form->disableResetButton();
  37. $form->tab('我', function (Form $form) {
  38. $form->multipleSelectTable('app_mine_header_icon', '头部左右侧')
  39. ->title('图标库')
  40. ->max(2)
  41. ->from(IconRender::make())
  42. ->model(WxIcon::class, 'id', 'name', 'selectTable:formPageMineTrait:app_mine_header_icon')
  43. ->help('添加两个,分别是左右侧,小程序不显示右侧, <a href="'.admin_url('settings/icons').'" target="_blank">管理图标库>></a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')
  44. ->default(Settings::get('app_mine_header_icon', ''));
  45. $form->textarea('app_user_introduce', '默认简介')->help('用户默认简介')->default(Settings::get('app_user_introduce', '这个人很懒,还没有简介'));
  46. $form->html(function () {
  47. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">格子菜单:除了强制显示以外,其他菜单需要一定的条件才会显示,例如:在用户购物车里有商品时才显示购物车</div>';
  48. }, '');
  49. $form->html(function () {
  50. return '<img src="https://img.mini.minisns.cn/hbx/tabbar/bg/mine_tip.jpg" style="width: 200px;border-radius: 10px;"/>';
  51. }, '');
  52. $form->checkbox('app_user_grid_display_force', '强制显示')->options(['my_wallet'=>'我的钱包', 'my_used'=>'我的闲置' ,'my_vip'=>'我的会员', 'my_shop_order'=>'我的买入', 'my_shop_bag'=>'我的购物车', 'my_voter' => '我的选票', 'my_pets_adoption'=>'领养、送养', 'my_pets_xiangqin'=>'我的相亲'])->default(Settings::get('app_user_grid_display_force', ['my_shop_order', 'my_shop_bag']));
  53. $form->checkbox('app_user_grid_three_display_force', '强制显示')->help('ta人视角')->options(['my_used' => 'Ta的闲置', 'my_voter' => 'Ta的选票', 'my_pets_adoption'=>'Ta的送养','my_pets_xiangqin'=>'Ta的相亲'])->default(Settings::get('app_user_grid_three_display_force', ['my_pets_adoption']));
  54. $form->html(function () {
  55. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">内容列表样式</div>';
  56. }, '');
  57. $form->radio('app_user_list_style', '内容列表样式')->options([0=>'默认',1=>'瀑布流'])->default(Settings::get('app_user_list_style', 0));
  58. });
  59. $form->tab('左侧栏', function (Form $form) {
  60. $form->listbox('app_user_left_panel', '左侧栏菜单')->options([
  61. 'my_wallet'=>'我的钱包',
  62. 'payment_password'=>'支付密码',
  63. 'consumption_records'=>'消费记录',
  64. 'my_order'=>'我的买入',
  65. 'my_sales'=>'我的卖出',
  66. 'my_shopping_bag'=>'我的购物袋',
  67. 'address'=>'收货地址',
  68. 'my_certification'=>'我的认证',
  69. 'my_members'=>'我的会员',
  70. 'my_circle'=>'我的圈子',
  71. 'my_team'=>'我的团队',
  72. ])->help('右边代表选中')->customFormat(function ($value){
  73. return Settings::get('app_user_left_panel', [], true);
  74. });
  75. });
  76. $form->tab('资料', function (Form $form) {
  77. $form->list('app_user_labels','用户标签')->default(Settings::get('app_user_labels', []));
  78. });
  79. $form->tab('等级', function (Form $form) {
  80. $form->html(function () {
  81. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">综合考虑: 不做太复杂的权限控制,为了常常遇到的审查,可以对敏感功能做一些限制</div>';
  82. }, '');
  83. $form->radio('app_user_lv_watch_video', '视频浏览')->options([0=>'未登录',1=>'lv1', 2=>'lv2', 3=>'lv3', 4=>'lv4', 5=>'lv5', 6=>'lv6'])->help('未达到该等级时,则不会显示视频贴')->default(Settings::get('app_user_lv_watch_video', 0));
  84. $form->radio('app_user_lv_publish_video', '发布视频')->options([0=>'未登录',1=>'lv1', 2=>'lv2', 3=>'lv3', 4=>'lv4', 5=>'lv5', 6=>'lv6'])->help('未达到该等级时,则不会显示发布视频的按钮')->default(Settings::get('app_user_lv_publish_video', 1));
  85. $form->radio('app_user_lv_open_chat', '发起聊天')->options([0=>'未登录',1=>'lv1', 2=>'lv2', 3=>'lv3', 4=>'lv4', 5=>'lv5', 6=>'lv6'])->help('未达到该等级时,则不会在ta人主页显示私信按钮')->default(Settings::get('app_user_lv_open_chat', 1));
  86. });
  87. $form->tab('认证', function (Form $form) {
  88. $form->radio('app_user_authenticate_permissions', '发起认证所需权限')->options(FieldUtils::userPermissions('user_authenticate'))->default(Settings::get('app_user_authenticate_permissions', 0));
  89. $form->divider();
  90. $form->radio('app_user_authenticate_img_require', '发起认证必须传图')->options([0=>'关闭', 1=>'开启'])->default(Settings::get('app_user_authenticate_img_require', 1));
  91. $form->list('app_user_authenticate_img_tip', '上传图片提示语')->default(Settings::get('app_user_authenticate_img_tip', ['1.个人自媒体用户可上传身份证正反面照片或其他app个人中心认证页面', '2.企业或其他主体可上传营业执照或其他app个人中心认证页面']));
  92. });
  93. $form->tab('登录', function (Form $form) {
  94. $form->html(function () {
  95. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">系统会自动处理在当前平台不支持的方式,比如在小程序不支持苹果登录,h5页面也不支持苹果登录等</div>';
  96. }, '');
  97. $form->html(function () {
  98. return '<div>---------------------------------------------------------------------------------</div>';
  99. }, '<b>小程序</b>');
  100. $form->checkbox('app_login_style', '登录方式')->options([0=>'微信', 2=>'手机号'])->default(Settings::get('app_login_style', ''));
  101. $form->checkbox('app_register_style', '注册方式')->options([0=>'微信', 2=>'手机号'])->default(Settings::get('app_register_style', ''));
  102. $form->html(function () {
  103. return '<div>---------------------------------------------------------------------------------</div>';
  104. }, '<b>H5</b>');
  105. $form->checkbox('app_h5_login_style', '登录方式')->options([0=>'微信', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_h5_login_style', ''));
  106. $form->checkbox('app_h5_register_style', '注册方式')->options([0=>'微信', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_h5_register_style', ''));
  107. $form->html(function () {
  108. return '<div>---------------------------------------------------------------------------------</div>';
  109. }, '<b>安卓App</b>');
  110. $form->checkbox('app_app_android_login_style', '登录方式')->options([0=>'微信', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_app_android_login_style', ''));
  111. $form->checkbox('app_app_android_register_style', '注册方式')->options([0=>'微信', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_app_android_register_style', ''));
  112. $form->html(function () {
  113. return '<div>---------------------------------------------------------------------------------</div>';
  114. }, '<b>苹果App</b>');
  115. $form->checkbox('app_app_ios_login_style', '登录方式')->options([0=>'微信', 1=>'苹果', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_app_ios_login_style', ''));
  116. $form->checkbox('app_app_ios_register_style', '注册方式')->options([0=>'微信', 1=>'苹果', 2=>'手机号', 3=>'QQ'])->default(Settings::get('app_app_ios_register_style', ''));
  117. $form->html(function () {
  118. return '<br/>';
  119. }, '');
  120. $form->divider();
  121. $form->radio('app_login_force', '强制登录')->options([0 => '关闭', 1=> '开启'])->help('若开启,移动端所有页面都强制登录,不登录则浏览不了所有页面')->default(Settings::get('app_login_force', 0));
  122. $form->image('app_login_bg', '登录背景图')->help('建议和默认图片大小。 <a href="https://img.mini.minisns.cn/2023/03/25/68b11834f85f49711ae1ba875f7d7ab1.jpg" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_login_bg', 'https://img.mini.minisns.cn/2023/03/25/68b11834f85f49711ae1ba875f7d7ab1.jpg'));
  123. $form->radio('app_login_bg_scroll', '背景')->options([0=>'静止', 1=>'滚动'])->default(Settings::get('app_login_bg_scroll', 1));
  124. $form->divider();
  125. $form->text('default_user_name', '用户默认昵称')->default(Settings::get('default_user_name', '微信用户'));
  126. $form->image('user_background_maps', '用户默认背景')->help('<a href="https://img.mini.minisns.cn/icons/back.jpg" download="user_background_maps.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('user_background_maps', 'https://img.mini.minisns.cn/icons/back.jpg'));
  127. $form->multipleSelectTable('app_login_default_plates', '用户默认选择的板块')->title('板块库')
  128. ->max(10)
  129. ->from(PlateRender::make())
  130. ->model(WxPlate::class, 'id', 'plate_name', 'selectTable:formPageMineTrait:app_login_default_plates')
  131. ->help('也就是第一次注册后,默认选择的板块,<a href="'.admin_url('plate').'" target="_blank">管理板块>></a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')->default(Settings::get('app_login_default_plates', ''));
  132. $form->text('app_login_first_welcome_title', '欢迎语-标题')->help('第一次注册时以系统通知的方式发送给客户')->default(Settings::get('app_login_first_welcome_title', '欢迎来到'.Settings::get('app_title', '宠也')));
  133. if(__system_is_model_enable('laradocs', 'dcat-neditor')){
  134. $form->neditor('app_login_first_welcome', '欢迎语-内容')->help('以系统通知的方式')->default(Settings::get('app_login_first_welcome', '祝你在这里找到自己的朋友,并且玩的开心'));
  135. }else{
  136. $form->editor('app_login_first_welcome', '欢迎语-内容')->width(4)->help('以系统通知的方式')->default(Settings::get('app_login_first_welcome', '祝你在这里找到自己的朋友,并且玩的开心'));
  137. }
  138. });
  139. $form->tab('匿名', function (Form $form) {
  140. $form->table('anonymous_name_avatar','匿名资料库', function (NestedForm $table) {
  141. $table->text('name', '用户名')->placeholder('如:阿白,momo')->required();
  142. $table->image('avatar', '头像')->url('files/uploads')->uniqueName()->autoUpload();
  143. })->default(Settings::get('anonymous_name_avatar', ''));
  144. });
  145. $form->tab('签到与任务', function (Form $form) {
  146. $form->html(function () {
  147. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">小提示: 不多不少,添加7个,分别是星期一到星期日</div>';
  148. }, '');
  149. $form->table('app_user_sign','签到配置', function (NestedForm $table) {
  150. $table->select('type', '类型')->options(FieldUtils::getGiftTypes())->default(0)->required();
  151. $table->number('num', '数量')->default(1)->required();
  152. })->default(Settings::get('app_user_sign', ''));
  153. $form->multipleSelectTable('app_sign_day_task', '每日任务')
  154. ->title('每日任务库')
  155. ->max(100)
  156. ->from(DayTaskRender::make())
  157. ->model(WxTask::class, 'id', 'name', 'selectTable:formPageMineTrait:app_sign_day_task')
  158. ->help('可至<a href="'.admin_url('tasks/day').'" target="_blank">[任务系统-每日任务]</a>进行管理或者新添加<a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')
  159. ->default(Settings::get('app_sign_day_task', ''));
  160. });
  161. $form->tab('帮助与反馈', function (Form $form) {
  162. $form->listbox('app_qa_types', '常见问题')->options(FieldUtils::getQuestionTypes())->customFormat(function ($value){
  163. return Settings::get('app_qa_types', []);
  164. })->help('右边代表选中,请至<a href="'.admin_url('qa/question').'" target="_blank">用户管理-帮助</a>进行管理帮助问题');
  165. });
  166. $form->tab('收益排行榜', function (Form $form) {
  167. $form->image('app_earnings_rank_bg', '背景图')->help('建议图片 600*518 px。 <a href="https://img.mini.minisns.cn/images/rank/rank_bg.png" download="app_share_vip_img.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_earnings_rank_bg', 'https://img.mini.minisns.cn/images/rank/rank_bg.png'));
  168. });
  169. $form->tab('手机号弹窗', function (Form $form) {
  170. $form->html(function () {
  171. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">暂时仅可在小程序完成</div>';
  172. }, '');
  173. $form->image('img_get_phone_popup', '获得手机号弹窗')->help('默认的获得手机号图片:<a href="https://img.mini.minisns.cn/images/phone.jpg" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_get_phone_popup', 'https://img.mini.minisns.cn/images/phone.jpg'));
  174. $form->listbox('app_force_phone_pages', '弹窗页面')->options([1=>'首页',3=>'发布', 4=>'消息', 5=>'我的', 6=>'圈子页', 7=>'话题页', 9=>'内容详情页', 10=>'搜索', 14=>'登录页', 15=>'聊天详情', 16=>'更新资料',17 => '新建圈子页', 18=>'举报', 40 =>'提交反馈页', 98=>'闲置发布'])->customFormat(function ($value){
  175. return Settings::get('app_force_phone_pages', []);
  176. })->help('右边代表选中');
  177. $form->radio('app_force_phone_hard', '强制获取')->options([0=>'关闭', 1=>'开启'])->help('默认用户可以关闭,如果强制的话用户就关闭不了,必须获取手机号')->default(Settings::get('app_force_phone_hard', 0));
  178. });
  179. $form->tab('关于我们', function (Form $form) {
  180. $form->html(function () {
  181. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">小提示: 我希望minisns可以得到你的支持,这也是间接在维护你自己的权益,市面上很多产品都停更,坚持不了多久,我希望minisns更man一点</div>';
  182. }, '');
  183. $form->radio('app_user_about_mine_minisns_show', '展示“迷你SNS驱动”')->options([0=>'不展示', 1=>'展示'])->help('未授权用户强制展示,已获得授权用户可以选择是否展示')->default(Settings::get('app_user_about_mine_minisns_show', 1));
  184. $form->text('app_user_about_mine_minisns_id', '官网用户id')->help('可去宠也小程序[我]tab查看,配置了用户id,则可以产生有效推广')->default(Settings::get('app_user_about_mine_minisns_id', 11691));
  185. $form->divider();
  186. $form->table('app_user_about_mine_list','展示列表', function (NestedForm $table) {
  187. $table->text('name', '文本')->default('文字');
  188. $table->radio('type', '类型')->options(FieldUtils::getUrlTypes())->default(0);
  189. $table->text('target', '跳转id')->help('<a href="https://doc.minisns.cn/doc/44/" target="_blank">路径大全</a>');
  190. })->default(Settings::get('app_user_about_mine_list', ''));
  191. });
  192. $form->tab('名片', function (Form $form) {
  193. $form->radio('app_user_qrcode_way', '名片生成')->options([1=>'方案一', 2=>'方案二'])->help('鉴于总有人说名片生成不了,如果默认的方案一生成不了,请切换方案二,方案二需要把官方的cdn域名: img.mini.minisns.cn 加入小程序的域名白名单')->default(Settings::get('app_user_qrcode_way', 1));
  194. });
  195. $form->tab('用户海报', function (Form $form) {
  196. $form->html(function () {
  197. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">路径:/pagesB/playbill/userPoster</div>';
  198. }, '');
  199. $form->html(function () {
  200. return '<a href="https://img.mini.minisns.cn/images/bg/user_poster.png" target="_blank">查看效果</a>';
  201. }, '');
  202. $form->table('app_share_poster','图片样式', function (NestedForm $table) {
  203. $table->text('text1', '文本一')->default('我的二维码');
  204. $table->text('text2', '文本二')->default('邀请你加入女厕');
  205. $table->text('text3', '文本三')->default('躺着就能赚钱');
  206. $table->image('url', '背景')->help('建议图片 560*800 px。 <a href="https://img.mini.minisns.cn/2022/11/04/cc09ed8e1e17689b81a27aec1e471fe8.png" download="app_share_vip_img.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload();
  207. })->default(Settings::get('app_share_poster', ''));
  208. });
  209. $form->tab('钱包-充值', function (Form $form) {
  210. $form->table('app_balance_recharge_list','充值套餐', function (NestedForm $table) {
  211. $table->number('balance', '增加余额');
  212. $table->number('rmb', '消耗人民币')->help('注意,配置的价格不能有重复');
  213. })->default(Settings::get('app_balance_recharge_list', ''));
  214. $form->select('app_balance_recharge_clause', '《余额服务协议》')->options(WxClause::pluck('title', 'id'))->help('<a href="'.admin_url('clause').'" target="_blank">进入条款管理</a>')->default(Settings::get('app_balance_recharge_clause', 0));
  215. $form->select('app_balance_recharge_child_refund_clause', '《未成年人退款申请》')->options(WxClause::pluck('title', 'id'))->help('<a href="'.admin_url('clause').'" target="_blank">进入条款管理</a>')->default(Settings::get('app_balance_recharge_child_refund_clause', 0));
  216. });
  217. $form->tab('钱包-提现', function (Form $form) {
  218. $form->radio('is_withdrawal', '是否开启提现')->options([1=>'是', 0=>'否'])->help('提现申请管理:<a href="'.admin_url('withdrawal').'" target="_blank">[运营管理]-[提现]</a>')->default(Settings::get('is_withdrawal', 1));
  219. $form->rate('app_withdrawal_platform_percent', '提现手续费')->default(Settings::get('app_withdrawal_platform_percent', 10.0));
  220. $form->divider();
  221. $form->html(function () {
  222. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">1、提现到微信:需要在<a style="color: blue;" href="https://pay.weixin.qq.com/index.php/public/product/detail?pid=108&productType=0&category=2" target="_blank">微信商户平台</a>开通“商家转账到零钱”产品,若未开通,则需要你根据提现申请,手动打款
  223. <br/>
  224. 2、提现到支付宝:需要在<a href="https://b.alipay.com/page/product-mall/product-detail/I1080300001000046143?" target="_blank" style="color: blue;">支付宝商家平台</a>开通“转账到支付宝账户”产品,若未开通,则需要你根据提现申请,手动打款<br/>
  225. 3、开启<a href="'.admin_url('settings/pay').'" target="_balck" style="color: blue;">[全局配置-支付-微信-《商家转账到零钱》产品]</a>的开关,支付宝同理
  226. </div>';
  227. }, '');
  228. $form->checkbox('app_balance_withdrawal_way', '提现方式')->options(['wechat'=>'提现到微信零钱', 'alipay'=>'提现到支付宝'])->default(Settings::get('app_balance_withdrawal_way', ['wechat', 'alipay']));
  229. $form->divider();
  230. $form->radio('app_balance_withdrawal_force_bind_phone', '强制绑定手机号')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('app_balance_withdrawal_force_bind_phone', 0));
  231. $form->radio('app_balance_withdrawal_force_real_name', '强制实名')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('app_balance_withdrawal_force_real_name', 0));
  232. global $__MINI_GLOBAL_TENANT_ID__;
  233. $form->radio('app_balance_withdrawal_force_subscribe_mp', '强制关注公众号')->options([0=>'不强制', 1=>'强制'])->help($__MINI_GLOBAL_TENANT_ID__ > 0 ? '必须开启服务器地址' : '必须开启服务器地址,具体请去[全局配置-支付-微信-公众号]')->default(Settings::get('app_balance_withdrawal_force_subscribe_mp', 0));
  234. $form->divider();
  235. $form->number('app_balance_withdrawal_day_times', '每日最多几次提现')->default(Settings::get('app_balance_withdrawal_day_times', 3));
  236. $form->number('app_balance_withdrawal_max_once', '一次最多提现')->default(Settings::get('app_balance_withdrawal_max_once', 200));
  237. $form->number('app_balance_withdrawal_min_once', '一次最少提现')->default(Settings::get('app_balance_withdrawal_min_once', 1));
  238. $form->divider();
  239. $form->list('app_balance_withdrawal_tips','补充说明')->default(Settings::get('app_balance_withdrawal_tips', []));
  240. });
  241. $form->tab('自助解封', function (Form $form) {
  242. $form->decimal('app_unban_one_hour_balance', '解除封号消耗余额/小时')->help('请自行换算到一天多少钱,一天24小时')->default(Settings::get('app_unban_one_hour_balance', 1.0));
  243. $form->decimal('app_unmute_one_hour_balance', '解除禁言消耗余额/小时')->help('请自行换算到一天多少钱,一天24小时')->default(Settings::get('app_unmute_one_hour_balance', 0.5));
  244. });
  245. $form->tab('付费获取联系方式', function (Form $form) {
  246. $form->rate('app_contact_pay_platform_percent', '平台分成')->default(Settings::get('app_contact_pay_platform_percent', 30.0));
  247. });
  248. $form->action('settings/action/pagemine');
  249. return $form;
  250. }
  251. public function pagemine(Request $request){
  252. $app_balance_recharge_list = AdminUtils::_table_data($request->input('app_balance_recharge_list'));
  253. if($app_balance_recharge_list){
  254. $app_balance_recharge_list_arr = json_decode($app_balance_recharge_list, true);
  255. $cache_list = [];
  256. foreach ($app_balance_recharge_list_arr as $item){
  257. if(in_array($item['rmb'], $cache_list)){
  258. return $this->response()->error('充值套餐的人民币不能有重复');
  259. }else if($item['rmb'] <= 0){
  260. return $this->response()->error('充值套餐的人民币不能为0');
  261. }else{
  262. $cache_list[] = $item['rmb'];
  263. }
  264. }
  265. }
  266. SiteUtils::forget_config_data();
  267. Settings::set('app_user_introduce', $request->input('app_user_introduce'), true);
  268. Settings::set('app_user_grid_display_force', $request->input('app_user_grid_display_force'), true);
  269. Settings::set('app_user_grid_three_display_force', $request->input('app_user_grid_three_display_force'), true);
  270. Settings::set('app_user_authenticate_permissions', $request->input('app_user_authenticate_permissions'), true);
  271. Settings::set('app_user_authenticate_img_require', $request->input('app_user_authenticate_img_require'), true);
  272. Settings::set('app_user_authenticate_img_tip', AdminUtils::list_fiele_process($request->input('app_user_authenticate_img_tip')), true);
  273. Settings::set('app_user_list_style', $request->input('app_user_list_style'), true);
  274. Settings::set('app_user_labels', AdminUtils::list_fiele_process($request->input('app_user_labels')), true);
  275. Settings::set('app_mine_header_icon', AdminUtils::_multipleSelectTable_order_process('selectTable:formPageMineTrait:app_mine_header_icon', $request->input('app_mine_header_icon')) , true);
  276. // 3
  277. $app_login_style = $request->input('app_login_style');
  278. $app_login_style_ = [];
  279. if($app_login_style){
  280. foreach ($app_login_style as $i){
  281. if($i === null){
  282. continue;
  283. }
  284. $app_login_style_[] = (int)$i;
  285. }
  286. }
  287. $app_h5_login_style = $request->input('app_h5_login_style');
  288. $app_h5_login_style_ = [];
  289. if($app_h5_login_style){
  290. foreach ($app_h5_login_style as $i){
  291. if($i === null){
  292. continue;
  293. }
  294. $app_h5_login_style_[] = (int)$i;
  295. }
  296. }
  297. $app_app_android_login_style = $request->input('app_app_android_login_style');
  298. $app_app_android_login_style_ = [];
  299. if($app_app_android_login_style){
  300. foreach ($app_app_android_login_style as $i){
  301. if($i === null){
  302. continue;
  303. }
  304. $app_app_android_login_style_[] = (int)$i;
  305. }
  306. }
  307. $app_app_ios_login_style = $request->input('app_app_ios_login_style');
  308. $app_app_ios_login_style_ = [];
  309. if($app_app_ios_login_style){
  310. foreach ($app_app_ios_login_style as $i){
  311. if($i === null){
  312. continue;
  313. }
  314. $app_app_ios_login_style_[] = (int)$i;
  315. }
  316. }
  317. $app_register_style = $request->input('app_register_style');
  318. $app_register_style_ = [];
  319. if($app_register_style){
  320. foreach ($app_register_style as $i){
  321. if($i === null){
  322. continue;
  323. }
  324. $app_register_style_[] = (int)$i;
  325. }
  326. }
  327. $app_h5_register_style = $request->input('app_h5_register_style');
  328. $app_h5_register_style_ = [];
  329. if($app_h5_register_style){
  330. foreach ($app_h5_register_style as $i){
  331. if($i === null){
  332. continue;
  333. }
  334. $app_h5_register_style_[] = (int)$i;
  335. }
  336. }
  337. $app_app_android_register_style = $request->input('app_app_android_register_style');
  338. $app_app_android_register_style_ = [];
  339. if($app_app_android_register_style){
  340. foreach ($app_app_android_register_style as $i){
  341. if($i === null){
  342. continue;
  343. }
  344. $app_app_android_register_style_[] = (int)$i;
  345. }
  346. }
  347. $app_app_ios_register_style = $request->input('app_app_ios_register_style');
  348. $app_app_ios_register_style_ = [];
  349. if($app_app_ios_register_style){
  350. foreach ($app_app_ios_register_style as $i){
  351. if($i === null){
  352. continue;
  353. }
  354. $app_app_ios_register_style_[] = (int)$i;
  355. }
  356. }
  357. Settings::set('app_login_style', $app_login_style_, true);
  358. Settings::set('app_h5_login_style', $app_h5_login_style_, true);
  359. Settings::set('app_app_android_login_style', $app_app_android_login_style_, true);
  360. Settings::set('app_app_ios_login_style', $app_app_ios_login_style_, true);
  361. Settings::set('app_register_style', $app_register_style_, true);
  362. Settings::set('app_h5_register_style', $app_h5_register_style_, true);
  363. Settings::set('app_app_android_register_style', $app_app_android_register_style_, true);
  364. Settings::set('app_app_ios_register_style', $app_app_ios_register_style_, true);
  365. Settings::set('app_user_left_panel', $request->input('app_user_left_panel'), true);
  366. Settings::set('app_login_force', $request->input('app_login_force'), true);
  367. Settings::set('app_login_bg_scroll', $request->input('app_login_bg_scroll'), true);
  368. Settings::set('app_login_bg', $request->input('app_login_bg'), true);
  369. Settings::set('anonymous_name_avatar', AdminUtils::_table_data($request->input('anonymous_name_avatar')), true);
  370. Settings::set('default_user_name', $request->input('default_user_name'), true);
  371. if($request->input('default_user_name') == '微信用户' || $request->input('default_user_name') == '普通用户'){
  372. Settings::set('default_user_name_', '', true);
  373. }else{
  374. Settings::set('default_user_name_', $request->input('default_user_name'), true);
  375. }
  376. Settings::set('user_background_maps', $request->input('user_background_maps'), true);
  377. Settings::set('app_login_default_plates', AdminUtils::_multipleSelectTable_order_process('selectTable:formPageMineTrait:app_login_default_plates', $request->input('app_login_default_plates')) , true);
  378. Settings::set('app_login_first_welcome_title', $request->input('app_login_first_welcome_title'), true);
  379. Settings::set('app_login_first_welcome', $request->input('app_login_first_welcome'), true);
  380. Settings::set('app_user_lv_watch_video', $request->input('app_user_lv_watch_video'), true);
  381. Settings::set('app_user_lv_publish_video', $request->input('app_user_lv_publish_video'), true);
  382. Settings::set('app_user_lv_open_chat', $request->input('app_user_lv_open_chat'), true);
  383. Settings::set('app_user_sign', AdminUtils::_table_data($request->input('app_user_sign')), true);
  384. Settings::set('app_sign_day_task', AdminUtils::_multipleSelectTable_order_process('selectTable:formPageMineTrait:app_sign_day_task', $request->input('app_sign_day_task')) , true);
  385. Settings::set('app_qa_types', $request->app_qa_types, true);
  386. Settings::set('app_earnings_rank_bg', $request->input('app_earnings_rank_bg'), true);
  387. Settings::set('app_user_about_mine_minisns_show', $request->input('app_user_about_mine_minisns_show'), true);
  388. Settings::set('app_user_about_mine_minisns_id', $request->input('app_user_about_mine_minisns_id'), true);
  389. Settings::set('app_user_about_mine_list', AdminUtils::_table_data($request->input('app_user_about_mine_list')), true);
  390. $pages_ = [];
  391. $pages = $request->input('app_force_phone_pages');
  392. if($pages){
  393. foreach ($pages as $page){
  394. if($page){
  395. $pages_[] = (int)$page;
  396. }
  397. }
  398. }
  399. Settings::set('img_get_phone_popup', $request->input('img_get_phone_popup'), true);
  400. Settings::set('app_force_phone_pages', $pages_, true);
  401. Settings::set('app_force_phone_hard', $request->input('app_force_phone_hard'), true);
  402. Settings::set('app_user_qrcode_way', $request->input('app_user_qrcode_way'), true);
  403. $app_share_poster = AdminUtils::_table_data($request->input('app_share_poster'));
  404. Settings::set('app_share_poster', $app_share_poster, true);
  405. Settings::set('app_balance_recharge_list', $app_balance_recharge_list, true);
  406. Settings::set('app_balance_recharge_clause', $request->input('app_balance_recharge_clause'), true);
  407. Settings::set('app_balance_recharge_child_refund_clause', $request->input('app_balance_recharge_child_refund_clause'), true);
  408. Settings::set('is_withdrawal', $request->input('is_withdrawal'), true);
  409. Settings::set('app_withdrawal_platform_percent', _between_($request->input('app_withdrawal_platform_percent'), 0, 100), true);
  410. Settings::set('app_contact_pay_platform_percent', _between_($request->input('app_contact_pay_platform_percent'), 0, 100), true);
  411. Settings::set('app_balance_withdrawal_force_bind_phone', $request->input('app_balance_withdrawal_force_bind_phone'), true);
  412. Settings::set('app_balance_withdrawal_force_real_name', $request->input('app_balance_withdrawal_force_real_name'), true);
  413. Settings::set('app_balance_withdrawal_force_subscribe_mp', $request->input('app_balance_withdrawal_force_subscribe_mp'), true);
  414. Settings::set('app_balance_withdrawal_way', $request->input('app_balance_withdrawal_way'), true);
  415. Settings::set('app_balance_withdrawal_day_times', $request->input('app_balance_withdrawal_day_times'), true);
  416. Settings::set('app_balance_withdrawal_min_once', $request->input('app_balance_withdrawal_min_once'), true);
  417. Settings::set('app_balance_withdrawal_max_once', $request->input('app_balance_withdrawal_max_once'), true);
  418. Settings::set('app_balance_withdrawal_tips', AdminUtils::list_fiele_process($request->input('app_balance_withdrawal_tips')), true);
  419. Settings::set('app_unban_one_hour_balance', $request->input('app_unban_one_hour_balance'), true);
  420. Settings::set('app_unmute_one_hour_balance', $request->input('app_unmute_one_hour_balance'), true);
  421. UserBgColorUpdateJob::dispatch(0, true);
  422. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  423. Settings::set('__global_config_version__', $__global_config_version__);
  424. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  425. return $this->response()->success('成功!');
  426. }
  427. }