MiniprogramController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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 Illuminate\Support\Facades\DB;
  10. use Log;
  11. class MiniprogramController extends Controller
  12. {
  13. public function __construct(protected readonly Miniprogram $miniprogram)
  14. {
  15. }
  16. /**
  17. * 小程序列表
  18. * @param Request $request
  19. * @return void
  20. */
  21. public function index(Request $request)
  22. {
  23. $name = $request->get('name');
  24. $play_name = $request->get('play_name');
  25. $company = $request->get('company');
  26. $page_size = $request->input('limit', 15);
  27. $where = [];
  28. if($name){
  29. $where[] = ['name','like','%'.$name.'%'];
  30. }
  31. if($play_name){
  32. $where[] = ['play_name','like','%'.$play_name.'%'];
  33. }
  34. if($company){
  35. $where[] = ['company','like','%'.$company.'%'];
  36. }
  37. $result = $this->miniprogram->where($where)->paginate($page_size);
  38. foreach($result as $item){
  39. $item->type_name = MiniprogramType::from($item->type)->name();
  40. $item->status_name = $item->status == 1 ?'启用':'禁用';
  41. }
  42. return $result;
  43. }
  44. /**
  45. * 添加小程序
  46. *
  47. * @param MiniprogramRequest $request
  48. * @return void
  49. */
  50. public function store(MiniprogramRequest $request)
  51. {
  52. $validate_result = $request->validated();
  53. $validate_result['remark'] = $request->post('remark','') ?? '';
  54. return $this->miniprogram->create($validate_result)->toArray();
  55. }
  56. /**
  57. * 小程序详情
  58. *
  59. * @param [type] $id
  60. * @return void
  61. */
  62. public function show($id)
  63. {
  64. return $this->miniprogram->find($id)->toArray();
  65. }
  66. /**
  67. * 更新小程序
  68. *
  69. * @param [type] $id
  70. * @param MiniprogramUpdateRequest $request
  71. * @return void
  72. */
  73. public function update($id, MiniprogramUpdateRequest $request)
  74. {
  75. $validate_result = $request->validated();
  76. if($request->post('remark','')){
  77. $validate_result['remark'] = $request->post('remark','');
  78. }
  79. $this->miniprogram->where('id',$id)->update($validate_result);
  80. return [];
  81. }
  82. /**
  83. * 小程序类型列表
  84. *
  85. * @return array [ ['name'=>'微信小程序','id'=>1],[],[] ]
  86. */
  87. public function typeList(){
  88. $type_list = MiniprogramType::cases();
  89. $data = array_map( fn($item)=>['name'=>$item->name(),'value'=>$item->value()],$type_list );
  90. return $data;
  91. }
  92. /**
  93. * 获取所有公司
  94. *
  95. * @return void
  96. */
  97. public function companyList(){
  98. return $this->miniprogram->select(DB::raw('distinct company'))->get()->pluck('company');
  99. }
  100. }