MiniprogramController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace Modules\Manage\Http\Controllers;
  3. use Illuminate\Routing\Controller;
  4. use Illuminate\Http\Request;
  5. use Modules\Manage\Enmus\MiniprogramType;
  6. use Modules\Manage\Http\Requests\MiniprogramRequest;
  7. use Modules\Manage\Http\Requests\MiniprogramUpdateRequest;
  8. use Modules\Manage\Models\Miniprogram;
  9. use Log;
  10. class MiniprogramController extends Controller
  11. {
  12. public function __construct(protected readonly Miniprogram $miniprogram)
  13. {
  14. }
  15. /**
  16. * 小程序列表
  17. * @param Request $request
  18. * @return void
  19. */
  20. public function index(Request $request)
  21. {
  22. $name = $request->get('name');
  23. $play_name = $request->get('play_name');
  24. $company = $request->get('company');
  25. $where = [];
  26. if($name){
  27. $where[] = ['name','like','%'.$name.'%'];
  28. }
  29. if($play_name){
  30. $where[] = ['play_name','like','%'.$play_name.'%'];
  31. }
  32. if($company){
  33. $where[] = ['company','like','%'.$company.'%'];
  34. }
  35. return $this->miniprogram->where($where)->paginate(20)->map(function($item,$k){
  36. $item->type_name = MiniprogramType::from($item->type)->name();
  37. $item->status_name = $item->status == 1 ?'启用':'禁用';
  38. return $item;
  39. });
  40. }
  41. /**
  42. * 添加小程序
  43. *
  44. * @param MiniprogramRequest $request
  45. * @return void
  46. */
  47. public function store(MiniprogramRequest $request)
  48. {
  49. $validate_result = $request->validated();
  50. $validate_result['remark'] = $request->post('remark','') ?? '';
  51. return $this->miniprogram->create($validate_result)->toArray();
  52. }
  53. /**
  54. * 小程序详情
  55. *
  56. * @param [type] $id
  57. * @return void
  58. */
  59. public function show($id)
  60. {
  61. return $this->miniprogram->find($id)->toArray();
  62. }
  63. /**
  64. * 更新小程序
  65. *
  66. * @param [type] $id
  67. * @param MiniprogramUpdateRequest $request
  68. * @return void
  69. */
  70. public function update($id, MiniprogramUpdateRequest $request)
  71. {
  72. $validate_result = $request->validated();
  73. if($request->post('remark','')){
  74. $validate_result['remark'] = $request->post('remark','');
  75. }
  76. $this->miniprogram->where('id',$id)->update($validate_result);
  77. return [];
  78. }
  79. /**
  80. * 小程序类型列表
  81. *
  82. * @return array [ ['name'=>'微信小程序','id'=>1],[],[] ]
  83. */
  84. public function typeList(){
  85. $type_list = MiniprogramType::cases();
  86. $data = array_map( fn($item)=>['name'=>$item->name(),'value'=>$item->value()],$type_list );
  87. return $data;
  88. }
  89. }