MiniprogramController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. $result = $this->miniprogram->where($where)->paginate(20);
  36. foreach($result as $item){
  37. $item->type_name = MiniprogramType::from($item->type)->name();
  38. $item->status_name = $item->status == 1 ?'启用':'禁用';
  39. }
  40. return $result;
  41. }
  42. /**
  43. * 添加小程序
  44. *
  45. * @param MiniprogramRequest $request
  46. * @return void
  47. */
  48. public function store(MiniprogramRequest $request)
  49. {
  50. $validate_result = $request->validated();
  51. $validate_result['remark'] = $request->post('remark','') ?? '';
  52. return $this->miniprogram->create($validate_result)->toArray();
  53. }
  54. /**
  55. * 小程序详情
  56. *
  57. * @param [type] $id
  58. * @return void
  59. */
  60. public function show($id)
  61. {
  62. return $this->miniprogram->find($id)->toArray();
  63. }
  64. /**
  65. * 更新小程序
  66. *
  67. * @param [type] $id
  68. * @param MiniprogramUpdateRequest $request
  69. * @return void
  70. */
  71. public function update($id, MiniprogramUpdateRequest $request)
  72. {
  73. $validate_result = $request->validated();
  74. if($request->post('remark','')){
  75. $validate_result['remark'] = $request->post('remark','');
  76. }
  77. $this->miniprogram->where('id',$id)->update($validate_result);
  78. return [];
  79. }
  80. /**
  81. * 小程序类型列表
  82. *
  83. * @return array [ ['name'=>'微信小程序','id'=>1],[],[] ]
  84. */
  85. public function typeList(){
  86. $type_list = MiniprogramType::cases();
  87. $data = array_map( fn($item)=>['name'=>$item->name(),'value'=>$item->value()],$type_list );
  88. return $data;
  89. }
  90. }