| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Game\WebThemeConfig;
- use App\Game\WebRegionConfig;
- use Illuminate\Http\Request;
- class WebThemeConfigController
- {
- public function index(Request $request)
- {
- $list = WebThemeConfig::orderBy('id', 'asc')->paginate(40);
- return view('admin.web_theme_config.index', [
- 'list' => $list,
- ]);
- }
- public function add(Request $request)
- {
- if ($request->isMethod('post')) {
- $post = $request->post();
- // 处理 BindRegions,将字符串转换为数组
- if (isset($post['BindRegions']) && is_string($post['BindRegions'])) {
- $regionIds = array_filter(array_map('trim', explode(',', $post['BindRegions'])));
- $post['BindRegions'] = array_map('intval', $regionIds);
- }
- WebThemeConfig::create($post);
- // 更新对应 Region 的 ThemeKey
- if (!empty($post['BindRegions']) && !empty($post['ThemeKey'])) {
- WebRegionConfig::whereIn('id', $post['BindRegions'])
- ->update(['ThemeKey' => $post['ThemeKey']]);
- }
- return apiReturnSuc();
- }
- $regions = WebRegionConfig::orderBy('GroupID', 'asc')->orderBy('id', 'asc')->get();
- return view('admin.web_theme_config.add', ['regions' => $regions]);
- }
- public function edit(Request $request, $id)
- {
- $info = WebThemeConfig::findOrFail($id);
- if ($request->isMethod('post')) {
- $post = $request->post();
- // 处理 BindRegions
- if (isset($post['BindRegions']) && is_string($post['BindRegions'])) {
- $regionIds = array_filter(array_map('trim', explode(',', $post['BindRegions'])));
- $post['BindRegions'] = array_map('intval', $regionIds);
- }
- // 清除原有绑定的 Region 的 ThemeKey
- if (!empty($info->BindRegions)) {
- WebRegionConfig::whereIn('id', $info->BindRegions)
- ->update(['ThemeKey' => '']);
- }
- $info->update($post);
- // 更新新绑定的 Region 的 ThemeKey
- if (!empty($post['BindRegions']) && !empty($post['ThemeKey'])) {
- WebRegionConfig::whereIn('id', $post['BindRegions'])
- ->update(['ThemeKey' => $post['ThemeKey']]);
- }
- return apiReturnSuc();
- }
- $regions = WebRegionConfig::orderBy('GroupID', 'asc')->orderBy('id', 'asc')->get();
- return view('admin.web_theme_config.edit', [
- 'info' => $info,
- 'regions' => $regions
- ]);
- }
- public function delete($id)
- {
- $info = WebThemeConfig::findOrFail($id);
- // 清除绑定的 Region 的 ThemeKey
- if (!empty($info->BindRegions)) {
- WebRegionConfig::whereIn('id', $info->BindRegions)
- ->update(['ThemeKey' => '']);
- }
- $info->delete();
- return apiReturnSuc();
- }
- }
|